mirror of
https://github.com/fltk/fltk.git
synced 2026-02-06 08:21:40 +08:00
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:
@@ -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 $".
|
||||
//
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 "alphanumeric"
|
||||
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 "alphanumeric" 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 "alphanumeric" 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:
|
||||
|
||||
@@ -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 $".
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user