diff options
| author | Manolo Gouy <Manolo> | 2010-06-21 15:49:45 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2010-06-21 15:49:45 +0000 |
| commit | 449b99dd86c7bdc08f98dd603ee6d18ff1a025dd (patch) | |
| tree | cdbf50671097f0d9c24bf6c1e551fea0f2d62080 | |
| parent | 6c2274f011b7fafa346626913e2c440b22f16a24 (diff) | |
Fix STR 2339 by defining new member function rtl_draw of class Fl_Graphics_Driver
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7652 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
| -rw-r--r-- | FL/Fl_Device.H | 3 | ||||
| -rw-r--r-- | FL/fl_draw.H | 2 | ||||
| -rw-r--r-- | src/fl_font_mac.cxx | 4 | ||||
| -rw-r--r-- | src/fl_font_win32.cxx | 2 | ||||
| -rw-r--r-- | src/fl_font_x.cxx | 2 | ||||
| -rw-r--r-- | src/fl_font_xft.cxx | 2 |
6 files changed, 9 insertions, 6 deletions
diff --git a/FL/Fl_Device.H b/FL/Fl_Device.H index 21251f6c6..b1eaea341 100644 --- a/FL/Fl_Device.H +++ b/FL/Fl_Device.H @@ -129,6 +129,7 @@ protected: friend void fl_line(int x, int y, int x1, int y1, int x2, int y2); friend void fl_draw(const char *str, int n, int x, int y); friend void fl_draw(int angle, const char *str, int n, int x, int y); + friend void fl_rtl_draw(const char *str, int n, int x, int y); friend void fl_font(Fl_Font face, Fl_Fontsize size); friend void fl_color(Fl_Color c); friend void fl_color(uchar r, uchar g, uchar b); @@ -193,6 +194,8 @@ protected: virtual void draw(const char *str, int n, int x, int y); /** \brief see fl_draw(int angle, const char *str, int n, int x, int y). */ virtual void draw(int angle, const char *str, int n, int x, int y); + /** \brief see fl_rtl_draw(const char *str, int n, int x, int y). */ + virtual void rtl_draw(const char *str, int n, int x, int y); /** \brief see fl_font(Fl_Font face, Fl_Fontsize size). */ virtual void font(Fl_Font face, Fl_Fontsize size); /** \brief see fl_color(Fl_Color c). */ diff --git a/FL/fl_draw.H b/FL/fl_draw.H index f416d7363..4ce91f03f 100644 --- a/FL/fl_draw.H +++ b/FL/fl_draw.H @@ -563,7 +563,7 @@ inline void fl_draw(int angle,const char* str, int n, int x, int y) {fl_device-> /** Draws an array of \p n characters right to left starting at given location. */ -FL_EXPORT void fl_rtl_draw(const char*, int n, int x, int y); +inline void fl_rtl_draw(const char* str, int n, int x, int y) {fl_device->rtl_draw(str,n,x,y); }; FL_EXPORT void fl_measure(const char* str, int& x, int& y, int draw_symbols = 1); FL_EXPORT void fl_draw(const char* str, int x, int y, int w, int h, diff --git a/src/fl_font_mac.cxx b/src/fl_font_mac.cxx index cb6887827..1a67bf558 100644 --- a/src/fl_font_mac.cxx +++ b/src/fl_font_mac.cxx @@ -488,8 +488,8 @@ void Fl_Graphics_Driver::draw(int angle, const char *str, int n, int x, int y) { CGContextRestoreGState(fl_gc); } -void fl_rtl_draw(const char* c, int n, int x, int y) { - fl_draw(c, n, x - fl_width(c, n), y); //to check; +void Fl_Graphics_Driver::rtl_draw(const char* c, int n, int x, int y) { + draw(c, n, x - fl_width(c, n), y); } // diff --git a/src/fl_font_win32.cxx b/src/fl_font_win32.cxx index 7220eb3b9..b6079444a 100644 --- a/src/fl_font_win32.cxx +++ b/src/fl_font_win32.cxx @@ -386,7 +386,7 @@ void Fl_Graphics_Driver::draw(int angle, const char* str, int n, int x, int y) { fl_font(fl_font_, fl_size_); } -void fl_rtl_draw(const char* c, int n, int x, int y) { +void Fl_Graphics_Driver::rtl_draw(const char* c, int n, int x, int y) { int wn; int i = 0; int lx = 0; diff --git a/src/fl_font_x.cxx b/src/fl_font_x.cxx index e6ccea79c..2f56e39ef 100644 --- a/src/fl_font_x.cxx +++ b/src/fl_font_x.cxx @@ -335,7 +335,7 @@ void Fl_Graphics_Driver::draw(int angle, const char *str, int n, int x, int y) { // fl_draw(str, n, (int)x, (int)y); //} -void fl_rtl_draw(const char* c, int n, int x, int y) { +void Fl_Graphics_Driver::rtl_draw(const char* c, int n, int x, int y) { if (font_gc != fl_gc) { if (!current_font) fl_font(FL_HELVETICA, 12); font_gc = fl_gc; diff --git a/src/fl_font_xft.cxx b/src/fl_font_xft.cxx index bf2ca3ee8..c249bc52a 100644 --- a/src/fl_font_xft.cxx +++ b/src/fl_font_xft.cxx @@ -584,7 +584,7 @@ static void fl_drawUCS4(const FcChar32 *str, int n, int x, int y) { } -void fl_rtl_draw(const char* c, int n, int x, int y) { +void Fl_Graphics_Driver::rtl_draw(const char* c, int n, int x, int y) { #if defined(__GNUC__) #warning Need to improve this XFT right to left draw function |
