FLTK logo

[master] 81a4b73 - Remove warnings about hidden virtual member functions.

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.commit  ]
 
Previous Message ]Next Message ]

[master] 81a4b73 - Remove warnings about hidden virtual member functions. "ManoloFLTK" Mar 01, 2021  
 
commit 81a4b7329c631ce337d8dee8b98ab602aa5f8525
Author:     ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
AuthorDate: Mon Mar 1 11:20:03 2021 +0100
Commit:     ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
CommitDate: Mon Mar 1 11:20:15 2021 +0100

    Remove warnings about hidden virtual member functions.

 FL/Fl_SVG_File_Surface.H                           |  1 +
 src/Fl_Graphics_Driver.cxx                         |  5 +++-
 src/drivers/OpenGL/Fl_OpenGL_Graphics_Driver.H     | 12 ++++------
 .../OpenGL/Fl_OpenGL_Graphics_Driver_arci.cxx      |  4 ++++
 .../OpenGL/Fl_OpenGL_Graphics_Driver_font.cxx      | 13 ++++++++++
 src/drivers/PostScript/Fl_PostScript.cxx           |  4 ++++
 .../PostScript/Fl_PostScript_Graphics_Driver.H     |  2 ++
 src/drivers/SVG/Fl_SVG_File_Surface.cxx            | 28 +++++++++++++++++++++-
 8 files changed, 60 insertions(+), 9 deletions(-)

diff --git FL/Fl_SVG_File_Surface.H FL/Fl_SVG_File_Surface.H
index 67d0aa4..3599199 100644
--- FL/Fl_SVG_File_Surface.H
+++ FL/Fl_SVG_File_Surface.H
@@ -66,6 +66,7 @@ public:
   /** Returns the underlying FILE pointer */
   FILE *file();
   virtual void origin(int x, int y);
+  virtual void origin(int *x, int *y);
   virtual void translate(int x, int y);
   virtual void untranslate();
   virtual int printable_rect(int *w, int *h);
diff --git src/Fl_Graphics_Driver.cxx src/Fl_Graphics_Driver.cxx
index 43e7541..547526e 100644
--- src/Fl_Graphics_Driver.cxx
+++ src/Fl_Graphics_Driver.cxx
@@ -575,7 +575,10 @@ Fl_Fontsize Fl_Graphics_Driver::size() {return size_; }
 double Fl_Graphics_Driver::width(const char *str, int nChars) { return 0; }
 
 /** Compute the width of Unicode character \p c if drawn with current font */
-double Fl_Graphics_Driver::width(unsigned int c) { char ch = (char)c; return width(&ch, 1); }
+double Fl_Graphics_Driver::width(unsigned int c) {
+  char buf[4];
+  return width(buf, fl_utf8encode (c, buf));
+}
 
 /** Return the current line height */
 int Fl_Graphics_Driver::height() { return size(); }
diff --git src/drivers/OpenGL/Fl_OpenGL_Graphics_Driver.H src/drivers/OpenGL/Fl_OpenGL_Graphics_Driver.H
index f5de053..46dba53 100644
--- src/drivers/OpenGL/Fl_OpenGL_Graphics_Driver.H
+++ src/drivers/OpenGL/Fl_OpenGL_Graphics_Driver.H
@@ -50,8 +50,6 @@ public:
   int clip_box(int x, int y, int w, int h, int &X, int &Y, int &W, int &H);
   int not_clipped(int x, int y, int w, int h);
   void restore_clip();
-  // --- implementation is in src/fl_vertex.cxx which includes src/cfg_gfx/xxx_rect.cxx
-  //void transformed_vertex0(double x, double y);
   void transformed_vertex(double xf, double yf);
   void vertex(double x, double y);
   void begin_points();
@@ -67,21 +65,21 @@ public:
   void end_complex_polygon();
   void fixloop();
   void circle(double x, double y, double r);
-  // --- implementation is in src/fl_arc.cxx which includes src/cfg_gfx/xxx_arc.cxx if needed
-  // using void Fl_Graphics_Driver::arc(double x, double y, double r, double start, double end);
-  // --- implementation is in src/fl_arci.cxx which includes src/cfg_gfx/xxx_arci.cxx
   void arc(int x, int y, int w, int h, double a1, double a2);
+  void arc(double x, double y, double r, double start, double end);
   void pie(int x, int y, int w, int h, double a1, double a2);
-  // --- implementation is in src/fl_line_style.cxx which includes src/cfg_gfx/xxx_line_style.cxx
   void line_style(int style, int width=0, char* dashes=0);
-  // --- implementation is in src/fl_color.cxx which includes src/cfg_gfx/xxx_color.cxx
   void color(Fl_Color c);
   Fl_Color color() { return color_; }
   void color(uchar r, uchar g, uchar b);
   // --- implementation is in Fl_OpenGL_Graphics_Driver_font.cxx
   void font(Fl_Font face, Fl_Fontsize fsize);
+  Fl_Font font();
   void draw(const char *str, int n, int x, int y);
+  void draw(const char *str, int n, float x, float y);
+  void draw(int angle, const char *str, int n, int x, int y);
   double width(const char *str, int n);
+  double width(unsigned int c);
   void text_extents(const char*, int n, int& dx, int& dy, int& w, int& h);
   int height();
   int descent();
diff --git src/drivers/OpenGL/Fl_OpenGL_Graphics_Driver_arci.cxx src/drivers/OpenGL/Fl_OpenGL_Graphics_Driver_arci.cxx
index ba5a7e7..f933d10 100644
--- src/drivers/OpenGL/Fl_OpenGL_Graphics_Driver_arci.cxx
+++ src/drivers/OpenGL/Fl_OpenGL_Graphics_Driver_arci.cxx
@@ -46,6 +46,10 @@ void Fl_OpenGL_Graphics_Driver::arc(int x,int y,int w,int h,double a1,double a2)
   glEnd();
 }
 
+void Fl_OpenGL_Graphics_Driver::arc(double x, double y, double r, double start, double end) {
+  Fl_Graphics_Driver::arc(x, y, r, start, end);
+}
+
 void Fl_OpenGL_Graphics_Driver::pie(int x,int y,int w,int h,double a1,double a2) {
   if (w <= 0 || h <= 0) return;
   while (a2<a1) a2 += 360.0;  // TODO: write a sensible fmod angle alignment here
diff --git src/drivers/OpenGL/Fl_OpenGL_Graphics_Driver_font.cxx src/drivers/OpenGL/Fl_OpenGL_Graphics_Driver_font.cxx
index fc6bc48..c6a266b 100644
--- src/drivers/OpenGL/Fl_OpenGL_Graphics_Driver_font.cxx
+++ src/drivers/OpenGL/Fl_OpenGL_Graphics_Driver_font.cxx
@@ -172,11 +172,22 @@ FL_EXPORT int glutStrokeWidth(void *font, int character);
 // use gl_font()/gl_draw() to draw GL text
 
 void Fl_OpenGL_Graphics_Driver::font(Fl_Font face, Fl_Fontsize fsize) {
+  Fl_Graphics_Driver::font(face, fsize);
   Fl_Surface_Device::push_current(Fl_Display_Device::display_device());
   gl_font(face, fsize);
   Fl_Surface_Device::pop_current();
 }
 
+Fl_Font Fl_OpenGL_Graphics_Driver::font() {
+  return Fl_Graphics_Driver::font();
+}
+
+void Fl_OpenGL_Graphics_Driver::draw(const char *str, int n, float x, float y) {
+  this->draw(str, n, int(x), int(y));
+}
+
+void Fl_OpenGL_Graphics_Driver::draw(int angle, const char *str, int n, int x, int y) {}
+
 void Fl_OpenGL_Graphics_Driver::draw(const char* str, int n, int x, int y) {
   Fl_Surface_Device::push_current(Fl_Display_Device::display_device());
   gl_draw(str, n, x, y);
@@ -190,6 +201,8 @@ double Fl_OpenGL_Graphics_Driver::width(const char *str, int n) {
   return w;
 }
 
+double Fl_OpenGL_Graphics_Driver::width(unsigned int c) { return Fl_Graphics_Driver::width(c); }
+
 int Fl_OpenGL_Graphics_Driver::descent() {
   Fl_Surface_Device::push_current(Fl_Display_Device::display_device());
   int d = fl_descent();
diff --git src/drivers/PostScript/Fl_PostScript.cxx src/drivers/PostScript/Fl_PostScript.cxx
index a2d17ff..4ddd1f4 100644
--- src/drivers/PostScript/Fl_PostScript.cxx
+++ src/drivers/PostScript/Fl_PostScript.cxx
@@ -174,6 +174,8 @@ void Fl_PostScript_Graphics_Driver::font(int f, int s) {
 #endif
 }
 
+Fl_Font Fl_PostScript_Graphics_Driver::font() { return Fl_Graphics_Driver:: font(); }
+
 double Fl_PostScript_Graphics_Driver::width(const char *s, int n) {
   return Fl_Graphics_Driver::default_driver().width(s, n);
 }
@@ -200,6 +202,8 @@ void Fl_PostScript_Graphics_Driver::color(Fl_Color c) {
   color(cr_, cg_, cb_);
 }
 
+Fl_Color Fl_PostScript_Graphics_Driver::color() { return Fl_Graphics_Driver::color(); }
+
 void Fl_PostScript_Graphics_Driver::point(int x, int y){
   rectf(x,y,1,1);
 }
diff --git src/drivers/PostScript/Fl_PostScript_Graphics_Driver.H src/drivers/PostScript/Fl_PostScript_Graphics_Driver.H
index d41a0a5..829e09d 100644
--- src/drivers/PostScript/Fl_PostScript_Graphics_Driver.H
+++ src/drivers/PostScript/Fl_PostScript_Graphics_Driver.H
@@ -133,6 +133,7 @@ public:
   // implementation of drawing methods
   void color(Fl_Color c);
   void color(uchar r, uchar g, uchar b);
+  Fl_Color color();
 
   void push_clip(int x, int y, int w, int h);
   int clip_box(int x, int y, int w, int h, int &X, int &Y, int &W, int &H);
@@ -191,6 +192,7 @@ public:
   void draw(int angle, const char *str, int n, int x, int y);
   void rtl_draw(const char* s, int n, int x, int y);
   void font(int face, int size);
+  Fl_Font font();
   double width(const char *, int);
   double width(unsigned int u);
   void text_extents(const char *c, int n, int &dx, int &dy, int &w, int &h);
diff --git src/drivers/SVG/Fl_SVG_File_Surface.cxx src/drivers/SVG/Fl_SVG_File_Surface.cxx
index c3aa3ce..af63f22 100644
--- src/drivers/SVG/Fl_SVG_File_Surface.cxx
+++ src/drivers/SVG/Fl_SVG_File_Surface.cxx
@@ -78,15 +78,19 @@ protected:
   void compute_dasharray(float s, char *dashes=0);
   void line_style(int style, int width, char *dashes=0);
   void line(int x1, int y1, int x2, int y2);
+  void line(int x1, int y1, int x2, int y2, int x3, int y3);
   void font_(int f, int s);
   void font(int f, int s);
+  Fl_Font font();
   void draw(const char *str, int n, int x, int y);
   void draw(const char*, int, float, float) ;
   void draw(int, const char*, int, int, int) ;
   void rtl_draw(const char *str, int n, int x, int y);
   void color(uchar r, uchar g, uchar b);
   void color(Fl_Color c);
-  double width(const char*, int) ;
+  Fl_Color color();
+  double width(const char*, int);
+  double width(unsigned int c);
   void text_extents(const char*, int n, int& dx, int& dy, int& w, int& h);
   int height() ;
   int descent() ;
@@ -122,6 +126,7 @@ protected:
   void end_complex_polygon();
   void circle(double x, double y,double r);
   void arc(int x,int y,int w,int h,double a1,double a2);
+  void arc(double x, double y, double r, double start, double end);
   void pie(int x,int y,int w,int h,double a1,double a2);
   void arc_pie(char AorP, int x, int y, int w, int h, double a1, double a2);
 };
@@ -179,6 +184,13 @@ void Fl_SVG_Graphics_Driver::line(int x1, int y1, int x2, int y2) {
           x1,y1,x2,y2, red_, green_, blue_, width_, linecap_, linejoin_, dasharray_);
 }
 
+void Fl_SVG_Graphics_Driver::line(int x1, int y1, int x2, int y2, int x3, int y3) {
+  fprintf(out_,
+          "<path d=\"M %d %d L %d %d L %d %d \" "
+          "style=\"stroke:rgb(%u,%u,%u);fill:none;stroke-width:%d;stroke-linecap:%s;stroke-linejoin:%s;stroke-dasharray:%s\" />\n",
+  x1, y1, x2, y2, x3, y3, red_, green_, blue_, width_, linecap_, linejoin_, dasharray_);
+}
+
 void Fl_SVG_Graphics_Driver::font_(int ft, int s) {
   Fl_Graphics_Driver::font(ft, s);
   int famnum = ft/4;
@@ -198,6 +210,8 @@ void Fl_SVG_Graphics_Driver::font(int ft, int s) {
   font_(ft, s);
 }
 
+Fl_Font Fl_SVG_Graphics_Driver::font() { return Fl_Graphics_Driver::font(); }
+
 void Fl_SVG_Graphics_Driver::compute_dasharray(float s, char *dashes) {
   if (user_dash_array_ && user_dash_array_ != dashes) {free(user_dash_array_); user_dash_array_ = NULL;}
   if (dashes && *dashes) {
@@ -288,10 +302,16 @@ void Fl_SVG_Graphics_Driver::color(uchar r, uchar g, uchar b) {
   blue_ = b;
 }
 
+Fl_Color Fl_SVG_Graphics_Driver::color() { return Fl_Graphics_Driver::color(); }
+
 double Fl_SVG_Graphics_Driver::width(const char* str, int l) {
  return Fl_Display_Device::display_device()->driver()->width(str, l);
 }
 
+double Fl_SVG_Graphics_Driver::width(unsigned int c) {
+  return Fl_Display_Device::display_device()->driver()->width(c);
+}
+
 void Fl_SVG_Graphics_Driver::text_extents(const char *c, int n, int& dx, int& dy, int& w, int& h) {
   Fl::first_window()->make_current(); // to get a valid drawing gc
   Fl_Display_Device::display_device()->driver()->text_extents(c, n, dx, dy, w, h);
@@ -950,6 +970,10 @@ void Fl_SVG_Graphics_Driver::end_complex_polygon() {
   fprintf(out_, " z\" fill=\"rgb(%u,%u,%u)\" />\n", red_, green_, blue_);
 }
 
+void Fl_SVG_Graphics_Driver::arc(double x, double y, double r, double start, double end) {
+  Fl_Graphics_Driver::arc(x, y, r, start, end);
+}
+
 void Fl_SVG_Graphics_Driver::arc(int x, int y, int w, int h, double a1, double a2) {
   arc_pie('A', x, y, w, h, a1, a2);
 }
@@ -1018,3 +1042,5 @@ void Fl_SVG_File_Surface::untranslate() {}
 int Fl_SVG_File_Surface::printable_rect(int *w, int *h) {return 0;}
 
 #endif // FLTK_USE_SVG
+
+void Fl_SVG_File_Surface::origin(int *x, int *y) { Fl_Widget_Surface::origin(x, y);}
Direct Link to Message ]
 
     
Previous Message ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.