diff options
| author | Greg Ercolano <erco@seriss.com> | 2020-07-10 21:49:00 -0700 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2020-07-14 12:52:56 +0200 |
| commit | 0693c70f577624e66fd660a888f2d2bcd3fc180b (patch) | |
| tree | e3b4161c0516ebacaf84e9b58852f48d4e4b6357 /FL | |
| parent | 9925b0f12852dc37fb7fb773a525486c258d2c62 (diff) | |
First pass at fixing issue 99
A lot of code touched because low level functions needed to pass up
error messages reliably, and this had to propagate up the entire
driver hierarchy.
Tested OK *in English* on:
> Linux
> OSX 10.10.x
> Windows VS2017
> Windows mingw64
I have no way to test on Android, but it might work.
TODO: Needs testing in other languages to verify proper UTF8 error messages,
esp. with Windows VS, due to complexities with FormatMessage() -- see get_ms_errmsg()
Diffstat (limited to 'FL')
| -rw-r--r-- | FL/Fl_File_Browser.H | 20 | ||||
| -rw-r--r-- | FL/Fl_File_Chooser.H | 3 |
2 files changed, 10 insertions, 13 deletions
diff --git a/FL/Fl_File_Browser.H b/FL/Fl_File_Browser.H index 67b0a9d81..40d328093 100644 --- a/FL/Fl_File_Browser.H +++ b/FL/Fl_File_Browser.H @@ -40,6 +40,7 @@ class FL_EXPORT Fl_File_Browser : public Fl_Browser { const char *directory_; uchar iconsize_; const char *pattern_; + const char *errmsg_; int full_height() const; int item_height(void *) const; @@ -50,11 +51,8 @@ class FL_EXPORT Fl_File_Browser : public Fl_Browser { public: enum { FILES, DIRECTORIES }; - /** - The constructor creates the Fl_File_Browser widget at the specified position and size. - The destructor destroys the widget and frees all memory that has been allocated. - */ Fl_File_Browser(int, int, int, int, const char * = 0); + ~Fl_File_Browser(); /** Sets or gets the size of the icons. The default size is 20 pixels. */ uchar iconsize() const { return (iconsize_); }; @@ -73,16 +71,7 @@ public: function in FLTK. */ const char *filter() const { return (pattern_); }; - - /** - 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 sort argument specifies a sort function to be used with - fl_filename_list(). - */ int load(const char *directory, Fl_File_Sort_F *sort = fl_numericsort); - Fl_Fontsize textsize() const { return Fl_Browser::textsize(); }; void textsize(Fl_Fontsize s) { Fl_Browser::textsize(s); iconsize_ = (uchar)(3 * s / 2); }; @@ -100,6 +89,11 @@ public: shown. */ void filetype(int t) { filetype_ = t; }; + void errmsg(const char *emsg); + /** + Returns OS error messages, or NULL if none. Use when advised. + */ + const char* errmsg() const { return errmsg_; } }; #endif // !_Fl_File_Browser_H_ diff --git a/FL/Fl_File_Chooser.H b/FL/Fl_File_Chooser.H index 702c4ff9f..341b8e683 100644 --- a/FL/Fl_File_Chooser.H +++ b/FL/Fl_File_Chooser.H @@ -85,6 +85,7 @@ private: Fl_File_Browser *fileList; inline void cb_fileList_i(Fl_File_Browser*, void*); static void cb_fileList(Fl_File_Browser*, void*); + Fl_Box *errorBox; Fl_Box *previewBox; public: Fl_Check_Button *previewButton; @@ -231,6 +232,8 @@ private: Fl_Widget* ext_group; public: Fl_Widget* add_extra(Fl_Widget* gr); +protected: + void show_error_box(int val); }; FL_EXPORT char *fl_dir_chooser(const char *message,const char *fname,int relative=0); FL_EXPORT char *fl_file_chooser(const char *message,const char *pat,const char *fname,int relative=0); |
