Add sort function as optional argument to Fl_File_Browser::load().

Add docos for sort functions and changes to fl_filename_list() and
Fl_File_Browser::load().


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2176 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Michael R Sweet
2002-05-02 14:31:10 +00:00
parent 47e7de17bc
commit ae0a956f2e
4 changed files with 58 additions and 25 deletions

View File

@@ -1,5 +1,5 @@
//
// "$Id: Fl_File_Browser.H,v 1.1.2.2 2002/01/01 15:11:27 easysw Exp $"
// "$Id: Fl_File_Browser.H,v 1.1.2.3 2002/05/02 14:31:10 easysw Exp $"
//
// FileBrowser definitions.
//
@@ -32,6 +32,7 @@
# include "Fl_Browser.H"
# include "Fl_File_Icon.H"
# include "filename.H"
//
@@ -62,7 +63,7 @@ public:
FL_EXPORT void filter(const char *pattern);
const char *filter() const { return (pattern_); };
FL_EXPORT int load(const char *directory);
FL_EXPORT int load(const char *directory, Fl_File_Sort_F *sort = fl_numericsort);
uchar textsize() const { return (Fl_Browser::textsize()); };
void textsize(uchar s) { Fl_Browser::textsize(s); iconsize_ = 3 * s / 2; };
@@ -74,5 +75,5 @@ public:
#endif // !_Fl_File_Browser_H_
//
// End of "$Id: Fl_File_Browser.H,v 1.1.2.2 2002/01/01 15:11:27 easysw Exp $".
// End of "$Id: Fl_File_Browser.H,v 1.1.2.3 2002/05/02 14:31:10 easysw Exp $".
//

View File

@@ -69,10 +69,13 @@ int filetype() const</A></H4>
files and directories are shown. Otherwise only directories are
shown.
<H4><A NAME="Fl_File_Browser.load">int load(const char *directory)</A></H4>
<H4><A NAME="Fl_File_Browser.load">int load(const char *directory, Fl_File_Sort_F *sort = fl_numeric_sort)</A></H4>
<P>Loads the specified directory into the browser. If icons have been
loaded then the correct icon is associated with each file in the list.
<P>The <tt>sort</tt> argument specifies a sort function to be used with
<A HREF="functions.html#fl_filename_list"><tt>fl_filename_list()</tt></A>.
</BODY>
</HTML>

View File

@@ -579,7 +579,7 @@ int fl_filename_isdir(const char *f);
<H3>Prototype</H3>
<UL><PRE>
int fl_filename_list(const char *d, dirent ***list);
int fl_filename_list(const char *d, dirent ***list, Fl_File_Sort_F *sort = fl_numericsort);
</PRE></UL>
<H3>Description</H3>
@@ -595,9 +595,37 @@ pointer to the array is returned in <tt>*list</tt>. The number
of entries is given as a return value. If there is an error
reading the directory a number less than zero is returned, and
<tt>errno</tt> has the reason; <tt>errno</tt> does not work
under WIN32. The files are sorted in &quot;alphanumeric&quot;
order, where an attempt is made to put unpadded numbers in
consecutive order.
under WIN32.
<P>The <tt>sort</tt> argument specifies a sort function to be used
when on the array of filenames. The following standard sort functions
are provided with FLTK:
<UL>
<LI><TT>fl_alphasort</tt> - The files are sorted in
ascending alphabetical order; upper- and lowercase
letters are compared according to their ASCII ordering -
uppercase before lowercase.
<LI><TT>fl_casealphasort</tt> - The files are sorted in
ascending alphabetical order; upper- and lowercase
letters are compared equally - case is not significant.
<LI><TT>fl_casenumericsort</TT> - The files are sorted
in ascending &quot;alphanumeric&quot; order, where an
attempt is made to put unpadded numbers in consecutive
order; upper- and lowercase letters are compared equally
- case is not significant.
<LI><TT>fl_numericsort</TT> - The files are sorted in
ascending &quot;alphanumeric&quot; order, where an
attempt is made to put unpadded numbers in consecutive
order; upper- and lowercase letters are compared
according to their ASCII ordering - uppercase before
lowercase.
</UL>
<P>You can free the returned list of files with the following
code:

View File

@@ -1,5 +1,5 @@
//
// "$Id: Fl_File_Browser.cxx,v 1.1.2.13 2002/05/01 20:05:19 easysw Exp $"
// "$Id: Fl_File_Browser.cxx,v 1.1.2.14 2002/05/02 14:31:10 easysw Exp $"
//
// Fl_File_Browser routines.
//
@@ -24,13 +24,13 @@
//
// Contents:
//
// Fl_File_Browser::full_height() - Return the height of the list.
// Fl_File_Browser::item_height() - Return the height of a list item.
// Fl_File_Browser::item_width() - Return the width of a list item.
// Fl_File_Browser::item_draw() - Draw a list item.
// Fl_File_Browser::full_height() - Return the height of the list.
// Fl_File_Browser::item_height() - Return the height of a list item.
// Fl_File_Browser::item_width() - Return the width of a list item.
// Fl_File_Browser::item_draw() - Draw a list item.
// Fl_File_Browser::Fl_File_Browser() - Create a Fl_File_Browser widget.
// Fl_File_Browser::load() - Load a directory into the browser.
// Fl_File_Browser::filter() - Set the filename filter.
// Fl_File_Browser::load() - Load a directory into the browser.
// Fl_File_Browser::filter() - Set the filename filter.
//
//
@@ -394,14 +394,15 @@ Fl_File_Browser::Fl_File_Browser(int x, // I - Upper-lefthand X coordinat
// 'Fl_File_Browser::load()' - Load a directory into the browser.
//
int // O - Number of files loaded
Fl_File_Browser::load(const char *directory)// I - Directory to load
int // O - Number of files loaded
Fl_File_Browser::load(const char *directory,// I - Directory to load
Fl_File_Sort_F *sort) // I - Sort function to use
{
int i; // Looping var
int num_files; // Number of files in directory
int num_dirs; // Number of directories in list
char filename[4096]; // Current file
Fl_File_Icon *icon; // Icon to use
int i; // Looping var
int num_files; // Number of files in directory
int num_dirs; // Number of directories in list
char filename[4096]; // Current file
Fl_File_Icon *icon; // Icon to use
// printf("Fl_File_Browser::load(\"%s\")\n", directory);
@@ -559,9 +560,9 @@ Fl_File_Browser::load(const char *directory)// I - Directory to load
else if (filename[i] != '/' && filename[i] != '\\')
strcat(filename, "/");
num_files = fl_filename_list(filename, &files);
num_files = fl_filename_list(filename, &files, sort);
#else
num_files = fl_filename_list(directory_, &files);
num_files = fl_filename_list(directory_, &files, sort);
#endif /* WIN32 || __EMX__ */
if (num_files <= 0)
@@ -626,5 +627,5 @@ Fl_File_Browser::filter(const char *pattern) // I - Pattern string
//
// End of "$Id: Fl_File_Browser.cxx,v 1.1.2.13 2002/05/01 20:05:19 easysw Exp $".
// End of "$Id: Fl_File_Browser.cxx,v 1.1.2.14 2002/05/02 14:31:10 easysw Exp $".
//