From 6a5feafe23e6e37009312aa40b63d19ad9cff886 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Sun, 6 Feb 2011 12:32:23 +0000 Subject: Replaced global variable fl_color_ by a private member of the Fl_Graphics_Driver class, and a public getter to it: Fl_Graphics_Driver::color(). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8384 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_PostScript.cxx | 2 +- src/Fl_cocoa.mm | 3 +-- src/fl_color.cxx | 7 ++----- src/fl_color_mac.cxx | 6 ++---- src/fl_color_win32.cxx | 6 ++---- src/fl_font_xft.cxx | 8 ++++---- 6 files changed, 12 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/Fl_PostScript.cxx b/src/Fl_PostScript.cxx index 178d2b479..6aea75ba7 100644 --- a/src/Fl_PostScript.cxx +++ b/src/Fl_PostScript.cxx @@ -940,7 +940,7 @@ void Fl_PostScript_Graphics_Driver::color(Fl_Color c) { } void Fl_PostScript_Graphics_Driver::color(unsigned char r, unsigned char g, unsigned char b) { - fl_color_ = fl_rgb_color(r, g, b); + Fl_Graphics_Driver::color( fl_rgb_color(r, g, b) ); cr_ = r; cg_ = g; cb_ = b; if (r == g && g == b) { double gray = r/255.0; diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index ae328930a..2783f7673 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -2238,7 +2238,6 @@ void Fl_Window::make_current() } // helper function to manage the current CGContext fl_gc -extern Fl_Color fl_color_; extern class Fl_Font_Descriptor *fl_fontsize; extern void fl_font(class Fl_Font_Descriptor*); extern void fl_quartz_restore_line_style_(); @@ -2253,7 +2252,7 @@ void Fl_X::q_fill_context() { CGContextScaleCTM(fl_gc, 1.0f, -1.0f); // now 0,0 is top-left point of the context } fl_font(fl_fontsize); - fl_color(fl_color_); + fl_color(fl_graphics_driver->color()); fl_quartz_restore_line_style_(); } diff --git a/src/fl_color.cxx b/src/fl_color.cxx index bac31d189..04a56f0a4 100644 --- a/src/fl_color.cxx +++ b/src/fl_color.cxx @@ -124,22 +124,19 @@ Fl_XColor fl_xmap[1][256]; # define fl_overlay 0 # endif -/** Current color for drawing operations */ -Fl_Color fl_color_; - void Fl_Xlib_Graphics_Driver::color(Fl_Color i) { if (i & 0xffffff00) { unsigned rgb = (unsigned)i; fl_color((uchar)(rgb >> 24), (uchar)(rgb >> 16), (uchar)(rgb >> 8)); } else { - fl_color_ = i; + Fl_Graphics_Driver::color(i); if(!fl_gc) return; // don't get a default gc if current window is not yet created/valid XSetForeground(fl_display, fl_gc, fl_xpixel(i)); } } void Fl_Xlib_Graphics_Driver::color(uchar r,uchar g,uchar b) { - fl_color_ = fl_rgb_color(r, g, b); + Fl_Graphics_Driver::color( fl_rgb_color(r, g, b) ); if(!fl_gc) return; // don't get a default gc if current window is not yet created/valid XSetForeground(fl_display, fl_gc, fl_xpixel(r,g,b)); } diff --git a/src/fl_color_mac.cxx b/src/fl_color_mac.cxx index 77d7daabe..b01bc6f25 100644 --- a/src/fl_color_mac.cxx +++ b/src/fl_color_mac.cxx @@ -47,10 +47,8 @@ Fl_XMap fl_xmap[256]; Fl_XMap* fl_current_xmap; -Fl_Color fl_color_; - void Fl_Quartz_Graphics_Driver::color(Fl_Color i) { - fl_color_ = i; + Fl_Graphics_Driver::color(i); int index; uchar r, g, b; if (i & 0xFFFFFF00) { @@ -75,7 +73,7 @@ void Fl_Quartz_Graphics_Driver::color(Fl_Color i) { } void Fl_Quartz_Graphics_Driver::color(uchar r, uchar g, uchar b) { - fl_color_ = fl_rgb_color(r, g, b); + Fl_Graphics_Driver::color( fl_rgb_color(r, g, b) ); float fr = r/255.0f; float fg = g/255.0f; float fb = b/255.0f; diff --git a/src/fl_color_win32.cxx b/src/fl_color_win32.cxx index 945466ce7..badb00a4c 100644 --- a/src/fl_color_win32.cxx +++ b/src/fl_color_win32.cxx @@ -92,14 +92,12 @@ static void set_xmap(Fl_XMap& xmap, COLORREF c) { xmap.brush = -1; } -Fl_Color fl_color_; - void Fl_GDI_Graphics_Driver::color(Fl_Color i) { if (i & 0xffffff00) { unsigned rgb = (unsigned)i; fl_color((uchar)(rgb >> 24), (uchar)(rgb >> 16), (uchar)(rgb >> 8)); } else { - fl_color_ = i; + Fl_Graphics_Driver::color(i); Fl_XMap &xmap = fl_xmap[i]; if (!xmap.pen) { #if USE_COLORMAP @@ -121,7 +119,7 @@ void Fl_GDI_Graphics_Driver::color(Fl_Color i) { void Fl_GDI_Graphics_Driver::color(uchar r, uchar g, uchar b) { static Fl_XMap xmap; COLORREF c = RGB(r,g,b); - fl_color_ = fl_rgb_color(r, g, b); + Fl_Graphics_Driver::color( fl_rgb_color(r, g, b) ); if (!xmap.pen || c != xmap.rgb) { clear_xmap(xmap); set_xmap(xmap, c); diff --git a/src/fl_font_xft.cxx b/src/fl_font_xft.cxx index e6036f9a5..d1411ffc5 100644 --- a/src/fl_font_xft.cxx +++ b/src/fl_font_xft.cxx @@ -614,8 +614,8 @@ void Fl_Xlib_Graphics_Driver::draw(const char *str, int n, int x, int y) { // Use fltk's color allocator, copy the results to match what // XftCollorAllocValue returns: XftColor color; - color.pixel = fl_xpixel(fl_color_); - uchar r,g,b; Fl::get_color(fl_color_, r,g,b); + color.pixel = fl_xpixel(fl_graphics_driver->color()); + uchar r,g,b; Fl::get_color(fl_graphics_driver->color(), r,g,b); color.color.red = ((int)r)*0x101; color.color.green = ((int)g)*0x101; color.color.blue = ((int)b)*0x101; @@ -659,8 +659,8 @@ static void fl_drawUCS4(const FcChar32 *str, int n, int x, int y) { // Use fltk's color allocator, copy the results to match what // XftCollorAllocValue returns: XftColor color; - color.pixel = fl_xpixel(fl_color_); - uchar r,g,b; Fl::get_color(fl_color_, r,g,b); + color.pixel = fl_xpixel(fl_graphics_driver->color()); + uchar r,g,b; Fl::get_color(fl_graphics_driver->color(), r,g,b); color.color.red = ((int)r)*0x101; color.color.green = ((int)g)*0x101; color.color.blue = ((int)b)*0x101; -- cgit v1.2.3