diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 1998-10-06 18:21:25 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 1998-10-06 18:21:25 +0000 |
| commit | f9039b2ae21988783feae9b362818e7923e82d14 (patch) | |
| tree | 6d6fe3679d73448758f9794e7d4d4f6b22a4adad /src/forms_fselect.cxx | |
| parent | 67e89232f9ba067825a158734a09e0fa21aacbe3 (diff) | |
Initial revision
git-svn-id: file:///fltk/svn/fltk/trunk@2 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/forms_fselect.cxx')
| -rw-r--r-- | src/forms_fselect.cxx | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/forms_fselect.cxx b/src/forms_fselect.cxx new file mode 100644 index 000000000..077f69f32 --- /dev/null +++ b/src/forms_fselect.cxx @@ -0,0 +1,38 @@ +// fselect.C + +// Emulate the Forms file chooser using the fltk file chooser. + +#include <FL/forms.H> +#include <string.h> + +static char fl_directory[1024]; +static const char *fl_pattern; // assummed passed value is static +static char fl_filename[256]; + +char* fl_show_file_selector(const char *message,const char *dir, + const char *pat,const char *fname) { + if (dir && dir[0]) strncpy(fl_directory,dir,1023); + if (pat && pat[0]) fl_pattern = pat; + if (fname && fname[0]) strncpy(fl_filename,fname,255); + char *p = fl_directory+strlen(fl_directory); + if (p > fl_directory && *(p-1)!='/' +#ifdef WIN32 + && *(p-1)!='\\' && *(p-1)!=':' +#endif + ) *p++ = '/'; + strcpy(p,fl_filename); + const char *q = fl_file_chooser(message,fl_pattern,fl_directory); + if (!q) return 0; + strcpy(fl_directory, q); + p = (char *)filename_name(fl_directory); + strcpy(fl_filename, p); + if (p > fl_directory+1) p--; + *p = 0; + return (char *)q; +} + +char* fl_get_directory() {return fl_directory;} + +char* fl_get_pattern() {return (char *)fl_pattern;} + +char* fl_get_filename() {return fl_filename;} |
