diff options
Diffstat (limited to 'src/drivers')
| -rw-r--r-- | src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H | 1 | ||||
| -rw-r--r-- | src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H | 1 | ||||
| -rw-r--r-- | src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx | 16 | ||||
| -rw-r--r-- | src/drivers/X11/Fl_X11_Window_Driver.H | 1 |
4 files changed, 19 insertions, 0 deletions
diff --git a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H index 5414401d0..b43cd9830 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H +++ b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H @@ -74,6 +74,7 @@ public: virtual void draw_begin(); virtual void draw_end(); virtual void make_current(); + virtual void label(const char *name, const char *mininame); virtual void shape(const Fl_Image* img); // that one is implemented in Fl_Cocoa.mm because it uses Objective-c diff --git a/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H b/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H index c7726d170..d5abdd54e 100644 --- a/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H +++ b/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H @@ -77,6 +77,7 @@ public: virtual void flush_overlay(); virtual void draw_begin(); virtual void make_current(); + virtual void label(const char *name,const char *iname); virtual void shape(const Fl_Image* img); virtual void icons(const Fl_RGB_Image *icons[], int count); diff --git a/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx index f259b62ac..a0a4e57c0 100644 --- a/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx +++ b/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx @@ -394,6 +394,22 @@ void Fl_WinAPI_Window_Driver::make_current() { fl_graphics_driver->clip_region(0); } +void Fl_WinAPI_Window_Driver::label(const char *name,const char *iname) { + if (pWindow->shown() && !pWindow->parent()) { + if (!name) name = ""; + size_t l = strlen(name); + // WCHAR *lab = (WCHAR*) malloc((l + 1) * sizeof(short)); + // l = fl_utf2unicode((unsigned char*)name, l, (xchar*)lab); + unsigned wlen = fl_utf8toUtf16(name, (unsigned) l, NULL, 0); // Pass NULL to query length + wlen++; + unsigned short * lab = (unsigned short*)malloc(sizeof(unsigned short)*wlen); + wlen = fl_utf8toUtf16(name, (unsigned) l, lab, wlen); + lab[wlen] = 0; + SetWindowTextW(fl_xid(pWindow), (WCHAR *)lab); + free(lab); + } +} + // // End of "$Id$". // diff --git a/src/drivers/X11/Fl_X11_Window_Driver.H b/src/drivers/X11/Fl_X11_Window_Driver.H index 61d3d4073..ac3d35269 100644 --- a/src/drivers/X11/Fl_X11_Window_Driver.H +++ b/src/drivers/X11/Fl_X11_Window_Driver.H @@ -82,6 +82,7 @@ public: virtual void flush_overlay(); virtual void draw_begin(); virtual void make_current(); + virtual void label(const char *name, const char *mininame); virtual void shape(const Fl_Image* img); virtual void icons(const Fl_RGB_Image *icons[], int count); |
