summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2016-03-21 17:55:10 +0000
committerManolo Gouy <Manolo>2016-03-21 17:55:10 +0000
commit3f34aba828983bc783529a30c0fa22c55b7abc05 (patch)
tree847fd89384088285bafc22e461a507c0d68e8d78 /src/drivers
parent9ba3889ae5a7054b4d75c0ccb0f54e16b9b99159 (diff)
Rewrite Fl_Window::label(const char *name, const char *mininame) under the driver model.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11394 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H1
-rw-r--r--src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H1
-rw-r--r--src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx16
-rw-r--r--src/drivers/X11/Fl_X11_Window_Driver.H1
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);