diff --git a/FL/Fl_Copy_Surface.H b/FL/Fl_Copy_Surface.H index 5bf679789..57630b126 100644 --- a/FL/Fl_Copy_Surface.H +++ b/FL/Fl_Copy_Surface.H @@ -63,6 +63,8 @@ public: /** Returns the pixel height of the copy surface */ int h(); void origin(int *x, int *y); + void origin(int x, int y); + int printable_rect(int *w, int *h); }; #endif // Fl_Copy_Surface_H diff --git a/src/Fl_Copy_Surface.cxx b/src/Fl_Copy_Surface.cxx index c3f2886bc..7b7b0fc8b 100644 --- a/src/Fl_Copy_Surface.cxx +++ b/src/Fl_Copy_Surface.cxx @@ -28,18 +28,19 @@ #elif defined(FL_PORTING) && !defined(FL_DOXYGEN) # pragma message "FL_PORTING: implement class Fl_Copy_Surface::Helper for your platform" -class Fl_Copy_Surface::Helper : public Fl_Widget_Surface { // model +class Fl_Copy_Surface::Helper : public Fl_Widget_Surface { // class model friend class Fl_Copy_Surface; private: int width; int height; - Helper(int w, int h) : Fl_Widget_Surface(NULL) {} - ~Helper() {} - void set_current(){} - void translate(int x, int y) {} - void untranslate() {} + Helper(int w, int h) : Fl_Widget_Surface(NULL), width(w), height(h) {} // to implement + ~Helper() {} // to implement + void set_current(){} // to implement + void translate(int x, int y) {} // to implement + void untranslate() {} // to implement int w() {return width;} int h() {return height;} + int printable_rect(int *w, int *h) {*w = width; *h = height; return 0;} }; #else @@ -59,6 +60,8 @@ Fl_Copy_Surface::Fl_Copy_Surface(int w, int h) : Fl_Widget_Surface(NULL) { Fl_Copy_Surface::~Fl_Copy_Surface() { delete platform_surface; } +void Fl_Copy_Surface::origin(int x, int y) {platform_surface->origin(x, y);} + void Fl_Copy_Surface::origin(int *x, int *y) {platform_surface->origin(x, y);} void Fl_Copy_Surface::set_current() {platform_surface->set_current();} @@ -71,6 +74,8 @@ int Fl_Copy_Surface::w() {return platform_surface->w();} int Fl_Copy_Surface::h() {return platform_surface->h();} +int Fl_Copy_Surface::printable_rect(int *w, int *h) {return platform_surface->printable_rect(w, h);} + // // End of "$Id$". // diff --git a/src/drivers/GDI/Fl_GDI_Copy_Surface.H b/src/drivers/GDI/Fl_GDI_Copy_Surface.H index 739bb4962..18b4f00f4 100644 --- a/src/drivers/GDI/Fl_GDI_Copy_Surface.H +++ b/src/drivers/GDI/Fl_GDI_Copy_Surface.H @@ -37,6 +37,7 @@ private: void untranslate(); int w() {return width;} int h() {return height;} + int printable_rect(int *w, int *h) {*w = width; *h = height; return 0;} }; #endif /* Fl_GDI_Copy_Surface_h */ diff --git a/src/drivers/GDI/Fl_GDI_Copy_Surface.cxx b/src/drivers/GDI/Fl_GDI_Copy_Surface.cxx index bb05377ff..77203da73 100644 --- a/src/drivers/GDI/Fl_GDI_Copy_Surface.cxx +++ b/src/drivers/GDI/Fl_GDI_Copy_Surface.cxx @@ -18,9 +18,7 @@ #include "Fl_GDI_Copy_Surface.H" -Fl_Copy_Surface::Helper::Helper(int w, int h) : Fl_Widget_Surface(NULL) { - width = w; - height = h; +Fl_Copy_Surface::Helper::Helper(int w, int h) : Fl_Widget_Surface(NULL), width(w), height(h) { driver(new Fl_Translated_GDI_Graphics_Driver); oldgc = (HDC)Fl_Surface_Device::surface()->driver()->gc(); // exact computation of factor from screen units to EnhMetaFile units (0.01 mm) diff --git a/src/drivers/Quartz/Fl_Quartz_Copy_Surface.H b/src/drivers/Quartz/Fl_Quartz_Copy_Surface.H index 3d7f4c6cf..45c3d4b41 100644 --- a/src/drivers/Quartz/Fl_Quartz_Copy_Surface.H +++ b/src/drivers/Quartz/Fl_Quartz_Copy_Surface.H @@ -40,6 +40,7 @@ private: void untranslate(); int w() {return width;} int h() {return height;} + int printable_rect(int *w, int *h) {*w = width; *h = height; return 0;} }; #endif // FL_QUARTZ_COPY_SURFACE_H diff --git a/src/drivers/Quartz/Fl_Quartz_Copy_Surface.cxx b/src/drivers/Quartz/Fl_Quartz_Copy_Surface.cxx index 1606e7b2a..04b2c6def 100644 --- a/src/drivers/Quartz/Fl_Quartz_Copy_Surface.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Copy_Surface.cxx @@ -23,9 +23,7 @@ #include "Fl_Quartz_Graphics_Driver.H" #endif -Fl_Copy_Surface::Helper::Helper(int w, int h) : Fl_Widget_Surface(NULL) { - width = w; - height = h; +Fl_Copy_Surface::Helper::Helper(int w, int h) : Fl_Widget_Surface(NULL), width(w), height(h) { driver(new Fl_Quartz_Graphics_Driver); prepare_copy_pdf_and_tiff(w, h); } diff --git a/src/drivers/Xlib/Fl_Xlib_Copy_Surface.H b/src/drivers/Xlib/Fl_Xlib_Copy_Surface.H index 8d0bae211..fc76c4508 100644 --- a/src/drivers/Xlib/Fl_Xlib_Copy_Surface.H +++ b/src/drivers/Xlib/Fl_Xlib_Copy_Surface.H @@ -39,6 +39,7 @@ private: void untranslate(); int w() {return width;} int h() {return height;} + int printable_rect(int *w, int *h) {*w = width; *h = height; return 0;} }; #endif /* Fl_Xlib_Copy_Surface_h */ diff --git a/src/drivers/Xlib/Fl_Xlib_Copy_Surface.cxx b/src/drivers/Xlib/Fl_Xlib_Copy_Surface.cxx index 4d9baea83..862a9939c 100644 --- a/src/drivers/Xlib/Fl_Xlib_Copy_Surface.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Copy_Surface.cxx @@ -20,9 +20,7 @@ #include #include -Fl_Copy_Surface::Helper::Helper(int w, int h) : Fl_Widget_Surface(NULL) { - width = w; - height = h; +Fl_Copy_Surface::Helper::Helper(int w, int h) : Fl_Widget_Surface(NULL), width(w), height(h) { driver(new Fl_Translated_Xlib_Graphics_Driver()); Fl::first_window()->make_current(); oldwindow = fl_xid(Fl::first_window());