From d8822aa74af1c886f7ef4df58e42f52af397042d Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Wed, 23 Feb 2011 14:36:18 +0000 Subject: [PATCH] Fl_Device: removed class_name(char *) member function and set class_name(void) virtual. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8467 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- FL/Fl_Device.H | 31 ++++++++++++------------------- FL/Fl_Paged_Device.H | 3 ++- FL/Fl_PostScript.H | 2 ++ FL/Fl_Printer.H | 7 +++++-- src/Fl_GDI_Printer.cxx | 1 - src/Fl_PostScript.cxx | 2 -- src/Fl_Printer.cxx | 1 - src/Fl_Quartz_Printer.mm | 1 - 8 files changed, 21 insertions(+), 27 deletions(-) diff --git a/FL/Fl_Device.H b/FL/Fl_Device.H index afd9def3d..41428e434 100644 --- a/FL/Fl_Device.H +++ b/FL/Fl_Device.H @@ -82,26 +82,19 @@ typedef short COORD_T; \brief All graphical output devices and all graphics systems. */ class FL_EXPORT Fl_Device { -private: - const char *type_; // pointer to class name -protected: - /** \brief Sets the class name */ - inline void class_name(const char *name) { type_ = name;}; - /** \brief A string that identifies each subclass of Fl_Device. - - Function class_name() applied to a device of this class returns this string. +public: + /** A string that identifies each subclass of Fl_Device. + Function class_name() applied to a device of this class returns this string. */ static const char *class_id; -public: /** - \brief Returns the name of the class of this object. - * + Returns the name of the class of this object. The class of an instance of an Fl_Device subclass can be checked with code such as: \code if ( instance->class_name() == Fl_Printer::class_id ) { ... } \endcode */ - inline const char *class_name() {return type_;}; + virtual const char *class_name() {return class_id;}; }; /** @@ -369,6 +362,7 @@ protected: public: static const char *class_id; + virtual const char *class_name() {return class_id;}; /** \brief see fl_font(Fl_Font face, Fl_Fontsize size). */ virtual void font(Fl_Font face, Fl_Fontsize size) {font_ = face; size_ = size;} /** \brief see fl_font(void). */ @@ -403,9 +397,8 @@ public: */ class FL_EXPORT Fl_Quartz_Graphics_Driver : public Fl_Graphics_Driver { public: - /** \brief The constructor. */ - Fl_Quartz_Graphics_Driver() { class_name( class_id); }; static const char *class_id; + const char *class_name() {return class_id;}; void color(Fl_Color c); void color(uchar r, uchar g, uchar b); void draw(const char* str, int n, int x, int y); @@ -437,9 +430,8 @@ public: */ class FL_EXPORT Fl_GDI_Graphics_Driver : public Fl_Graphics_Driver { public: - /** \brief The constructor. */ - Fl_GDI_Graphics_Driver() { class_name ( class_id); }; static const char *class_id; + const char *class_name() {return class_id;}; void color(Fl_Color c); void color(uchar r, uchar g, uchar b); void draw(const char* str, int n, int x, int y); @@ -468,9 +460,8 @@ public: */ class Fl_Xlib_Graphics_Driver : public Fl_Graphics_Driver { public: - /** \brief The constructor. */ - Fl_Xlib_Graphics_Driver() { class_name ( class_id); }; static const char *class_id; + const char *class_name() {return class_id;}; void color(Fl_Color c); void color(uchar r, uchar g, uchar b); void draw(const char* str, int n, int x, int y); @@ -504,6 +495,7 @@ protected: Fl_Surface_Device(Fl_Graphics_Driver *graphics_driver) {_driver = graphics_driver; }; public: static const char *class_id; + const char *class_name() {return class_id;}; virtual void set_current(void); /** \brief Sets the graphics driver of this drawing surface. */ inline void driver(Fl_Graphics_Driver *graphics_driver) {_driver = graphics_driver;}; @@ -522,8 +514,9 @@ class FL_EXPORT Fl_Display_Device : public Fl_Surface_Device { static Fl_Display_Device *_display; // the platform display device public: static const char *class_id; + const char *class_name() {return class_id;}; /** \brief A constructor that sets the graphics driver used by the display */ - Fl_Display_Device(Fl_Graphics_Driver *graphics_driver) : Fl_Surface_Device( graphics_driver) { class_name( class_id); }; + Fl_Display_Device(Fl_Graphics_Driver *graphics_driver) : Fl_Surface_Device( graphics_driver) { }; /** Returns the platform display device. */ static inline Fl_Display_Device *display_device() {return _display;}; }; diff --git a/FL/Fl_Paged_Device.H b/FL/Fl_Paged_Device.H index 5504b5192..bdc448925 100644 --- a/FL/Fl_Paged_Device.H +++ b/FL/Fl_Paged_Device.H @@ -115,11 +115,12 @@ protected: /** \brief vertical offset to the origin of graphics coordinates */ int y_offset; /** \brief The constructor */ - Fl_Paged_Device() : Fl_Surface_Device(NULL) {class_name( class_id);}; + Fl_Paged_Device() : Fl_Surface_Device(NULL) {}; /** \brief The destructor */ virtual ~Fl_Paged_Device() {}; public: static const char *class_id; + const char *class_name() {return class_id;}; virtual int start_job(int pagecount, int *frompage = NULL, int *topage = NULL); virtual int start_page(void); virtual int printable_rect(int *w, int *h); diff --git a/FL/Fl_PostScript.H b/FL/Fl_PostScript.H index 61f7faecc..a7d30f1c7 100644 --- a/FL/Fl_PostScript.H +++ b/FL/Fl_PostScript.H @@ -64,6 +64,7 @@ class Fl_PostScript_Graphics_Driver : public Fl_Graphics_Driver { public: static const char *class_id; + const char *class_name() {return class_id;}; Fl_PostScript_Graphics_Driver(); #ifndef FL_DOXYGEN enum SHAPE{NONE=0, LINE, LOOP, POLYGON, POINTS}; @@ -224,6 +225,7 @@ protected: Fl_PostScript_Graphics_Driver *driver(); public: static const char *class_id; + const char *class_name() {return class_id;}; Fl_PostScript_File_Device(); ~Fl_PostScript_File_Device(); int start_job(int pagecount, enum Fl_Paged_Device::Page_Format format = Fl_Paged_Device::A4, diff --git a/FL/Fl_Printer.H b/FL/Fl_Printer.H index 7b68a459b..9eff9fbd7 100644 --- a/FL/Fl_Printer.H +++ b/FL/Fl_Printer.H @@ -79,6 +79,7 @@ protected: Fl_System_Printer(void); public: static const char *class_id; + const char *class_name() {return class_id;}; int start_job(int pagecount, int *frompage = NULL, int *topage = NULL); int start_page (void); int printable_rect(int *w, int *h); @@ -108,10 +109,11 @@ public: class Fl_PostScript_Printer : public Fl_PostScript_File_Device { friend class Fl_Printer; protected: - /** \brief The constructor */ - Fl_PostScript_Printer(void) {class_name(class_id);}; + /** The constructor */ + Fl_PostScript_Printer(void) {}; public: static const char *class_id; + const char *class_name() {return class_id;}; int start_job(int pages, int *firstpage = NULL, int *lastpage = NULL); }; @@ -152,6 +154,7 @@ public: class Fl_Printer : public Fl_Paged_Device { public: static const char *class_id; + const char *class_name() {return class_id;}; /** \brief The constructor */ Fl_Printer(void); int start_job(int pagecount, int *frompage = NULL, int *topage = NULL); diff --git a/src/Fl_GDI_Printer.cxx b/src/Fl_GDI_Printer.cxx index b02c8ecab..9b3c59e20 100644 --- a/src/Fl_GDI_Printer.cxx +++ b/src/Fl_GDI_Printer.cxx @@ -36,7 +36,6 @@ extern HWND fl_window; Fl_System_Printer::Fl_System_Printer(void) : Fl_Paged_Device() { hPr = NULL; - class_name(class_id); driver(Fl_Display_Device::display_device()->driver()); } diff --git a/src/Fl_PostScript.cxx b/src/Fl_PostScript.cxx index c8e59cd8c..4ec1c654a 100644 --- a/src/Fl_PostScript.cxx +++ b/src/Fl_PostScript.cxx @@ -54,7 +54,6 @@ Fl_PostScript_Graphics_Driver::Fl_PostScript_Graphics_Driver(void) lang_level_ = 2; mask = 0; ps_filename_ = NULL; - class_name(class_id); scale_x = scale_y = 1.; bg_r = bg_g = bg_b = 255; } @@ -69,7 +68,6 @@ Fl_PostScript_Graphics_Driver::~Fl_PostScript_Graphics_Driver() { */ Fl_PostScript_File_Device::Fl_PostScript_File_Device(void) { - class_name(class_id); #ifdef __APPLE__ gc = fl_gc; // the display context is used by fl_text_extents() #endif diff --git a/src/Fl_Printer.cxx b/src/Fl_Printer.cxx index 2ff206eff..be4afe991 100644 --- a/src/Fl_Printer.cxx +++ b/src/Fl_Printer.cxx @@ -108,7 +108,6 @@ Fl_Printer::Fl_Printer(void) { #else printer = new Fl_PostScript_Printer(); #endif - class_name(class_id); } int Fl_Printer::start_job(int pagecount, int *frompage, int *topage) diff --git a/src/Fl_Quartz_Printer.mm b/src/Fl_Quartz_Printer.mm index 153aef14a..b5fafbe31 100644 --- a/src/Fl_Quartz_Printer.mm +++ b/src/Fl_Quartz_Printer.mm @@ -40,7 +40,6 @@ Fl_System_Printer::Fl_System_Printer(void) x_offset = 0; y_offset = 0; scale_x = scale_y = 1.; - class_name(class_id); gc = 0; driver(Fl_Display_Device::display_device()->driver()); }