summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2002-05-02 14:31:10 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2002-05-02 14:31:10 +0000
commitae0a956f2e7ad36f5aab55aa030d6a0d9a82d97b (patch)
tree004bc1a77a3c83b06ffba425decb8f6baa8c0d3c
parent47e7de17bc515581d85a6f1d57341d0ce14131ad (diff)
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
-rw-r--r--FL/Fl_File_Browser.H7
-rw-r--r--documentation/Fl_File_Browser.html5
-rw-r--r--documentation/functions.html36
-rw-r--r--src/Fl_File_Browser.cxx35
4 files changed, 58 insertions, 25 deletions
diff --git a/FL/Fl_File_Browser.H b/FL/Fl_File_Browser.H
index c312077cd..67c33e179 100644
--- a/FL/Fl_File_Browser.H
+++ b/FL/Fl_File_Browser.H
@@ -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 $".
//
diff --git a/documentation/Fl_File_Browser.html b/documentation/Fl_File_Browser.html
index 6137bdddc..82447904a 100644
--- a/documentation/Fl_File_Browser.html
+++ b/documentation/Fl_File_Browser.html
@@ -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>
diff --git a/documentation/functions.html b/documentation/functions.html
index 24d42a23d..f35a31fbe 100644
--- a/documentation/functions.html
+++ b/documentation/functions.html
@@ -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:
diff --git a/src/Fl_File_Browser.cxx b/src/Fl_File_Browser.cxx
index c5b7835a7..06a5b2ba3 100644
--- a/src/Fl_File_Browser.cxx
+++ b/src/Fl_File_Browser.cxx
@@ -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 $".
//