# HG changeset patch # User John W. Eaton # Date 1296324318 18000 # Node ID 45c97076c161aed84f2770ed4b0682d82c5080af # Parent db14b8095eddcb081154d7ff1c24130f78b09d8a __fltk_uigetfile__.cc: style fixes diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2011-01-29 John W. Eaton + + * DLD-FUNCTIONS/__fltk_uigetfile__.cc (__fltk_uigetfile__): + Don't allocate Fl_File_Chooser object with new. Delete unused + variable fargs. Allocate default retval values in initial + declaration. + 2011-01-29 John W. Eaton * DLD-FUNCTIONS/__init_fltk__.cc: Undefine Complex after diff --git a/src/DLD-FUNCTIONS/__fltk_uigetfile__.cc b/src/DLD-FUNCTIONS/__fltk_uigetfile__.cc --- a/src/DLD-FUNCTIONS/__fltk_uigetfile__.cc +++ b/src/DLD-FUNCTIONS/__fltk_uigetfile__.cc @@ -38,22 +38,21 @@ #include "defun-dld.h" #include "file-ops.h" - DEFUN_DLD (__fltk_uigetfile__, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __fltk_uigetfile__ (@dots{})\n\ Undocumented internal function.\n\ @end deftypefn") { - - // Expected argument list - // args(0) ... FileFilter in fltk format - // args(1) ... Title - // args(2) ... Default Filename - // args(3) ... PostionValue [x,y] - // args(4) ... SelectValue "on"/"off"/"dir"/"create" + // Expected argument list: + // + // args(0) ... FileFilter in fltk format + // args(1) ... Title + // args(2) ... Default Filename + // args(3) ... PostionValue [x,y] + // args(4) ... SelectValue "on"/"off"/"dir"/"create" - octave_value_list fargs, retval; + octave_value_list retval (3, octave_value (0)); std::string file_filter = args(0).string_value(); std::string title = args(1).string_value(); @@ -62,7 +61,7 @@ int multi_type = Fl_File_Chooser::SINGLE; std::string flabel = "Filename:"; - + std::string multi = args(4).string_value(); if (multi == "on") multi_type = Fl_File_Chooser::MULTI; @@ -75,31 +74,30 @@ multi_type = Fl_File_Chooser::CREATE; Fl_File_Chooser::filename_label = flabel.c_str (); - Fl_File_Chooser *fc = new Fl_File_Chooser (default_name.c_str (), file_filter.c_str (), multi_type, title.c_str ()); - fc->preview (0); + + Fl_File_Chooser fc (default_name.c_str (), file_filter.c_str (), + multi_type, title.c_str ()); + + fc.preview (0); if (multi_type == Fl_File_Chooser::CREATE) - fc->ok_label ("Save"); + fc.ok_label ("Save"); - fc->show (); + fc.show (); - while (fc->shown ()) + while (fc.shown ()) Fl::wait (); - retval(0) = octave_value(0); - retval(1) = octave_value(0); - retval(2) = octave_value(0); - - if (fc->value()) + if (fc.value()) { - int file_count = fc->count (); + int file_count = fc.count (); std::string fname; std::string sep = file_ops::dir_sep_str (); std::size_t idx; if (file_count == 1 && multi_type != Fl_File_Chooser::DIRECTORY) { - fname = fc->value (); + fname = fc.value (); idx = fname.find_last_of (sep); retval(0) = fname.substr (idx + 1); } @@ -108,7 +106,7 @@ Cell file_cell = Cell(file_count, 1); for (octave_idx_type n = 1; n <= file_count; n++) { - fname = fc->value (n); + fname = fc.value (n); idx = fname.find_last_of (sep); file_cell(n - 1) = fname.substr (idx + 1); } @@ -116,17 +114,16 @@ } if (multi_type == Fl_File_Chooser::DIRECTORY) - retval(0) = std::string (fc->value ()); + retval(0) = std::string (fc.value ()); else { - retval(1) = std::string (fc->directory ()) + sep; - retval(2) = fc->filter_value () + 1; + retval(1) = std::string (fc.directory ()) + sep; + retval(2) = fc.filter_value () + 1; } } - fc->hide (); + fc.hide (); Fl::flush (); - delete fc; return retval; }