diff options
| author | Manolo Gouy <Manolo> | 2016-03-11 20:32:48 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2016-03-11 20:32:48 +0000 |
| commit | f11fe83e5ece71bf85d10079bafa10763cb674d2 (patch) | |
| tree | 118d229a1cd3eead4c6cbf39924c1434abe47407 /src/Fl_GDI_Printer.cxx | |
| parent | bd844a2abc62272f277520dae27dbadc637b3235 (diff) | |
Rewrite of Fl_Printer under the driver model - first step
Next step will involve moving code to new, platform-specific files.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11350 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_GDI_Printer.cxx')
| -rw-r--r-- | src/Fl_GDI_Printer.cxx | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/src/Fl_GDI_Printer.cxx b/src/Fl_GDI_Printer.cxx index a89bda453..c0bad87a0 100644 --- a/src/Fl_GDI_Printer.cxx +++ b/src/Fl_GDI_Printer.cxx @@ -28,12 +28,12 @@ extern HWND fl_window; -Fl_System_Printer::Fl_System_Printer(void) : Fl_Paged_Device() { +Fl_Printer::Helper::Helper(void) : Fl_Paged_Device() { hPr = NULL; driver(new Fl_GDI_Printer_Graphics_Driver); } -Fl_System_Printer::~Fl_System_Printer(void) { +Fl_Printer::Helper::~Helper(void) { if (hPr) end_job(); delete driver(); } @@ -54,7 +54,7 @@ static void WIN_SetupPrinterDeviceContext(HDC prHDC) } -int Fl_System_Printer::start_job (int pagecount, int *frompage, int *topage) +int Fl_Printer::Helper::start_job (int pagecount, int *frompage, int *topage) // returns 0 iff OK { if (pagecount == 0) pagecount = 10000; @@ -115,7 +115,7 @@ int Fl_System_Printer::start_job (int pagecount, int *frompage, int *topage) return err; } -void Fl_System_Printer::end_job (void) +void Fl_Printer::Helper::end_job (void) { Fl_Display_Device::display_device()->set_current(); if (hPr != NULL) { @@ -136,7 +136,7 @@ void Fl_System_Printer::end_job (void) hPr = NULL; } -void Fl_System_Printer::absolute_printable_rect(int *x, int *y, int *w, int *h) +void Fl_Printer::Helper::absolute_printable_rect(int *x, int *y, int *w, int *h) { POINT physPageSize; POINT pixelsPerInch; @@ -167,7 +167,7 @@ void Fl_System_Printer::absolute_printable_rect(int *x, int *y, int *w, int *h) SetWorldTransform(gc, &transform); } -void Fl_System_Printer::margins(int *left, int *top, int *right, int *bottom) +void Fl_Printer::Helper::margins(int *left, int *top, int *right, int *bottom) { int x = 0, y = 0, w = 0, h = 0; absolute_printable_rect(&x, &y, &w, &h); @@ -177,14 +177,14 @@ void Fl_System_Printer::margins(int *left, int *top, int *right, int *bottom) if (bottom) *bottom = y; } -int Fl_System_Printer::printable_rect(int *w, int *h) +int Fl_Printer::Helper::printable_rect(int *w, int *h) { int x, y; absolute_printable_rect(&x, &y, w, h); return 0; } -int Fl_System_Printer::start_page (void) +int Fl_Printer::Helper::start_page (void) { int rsult, w, h; @@ -203,14 +203,14 @@ int Fl_System_Printer::start_page (void) return rsult; } -void Fl_System_Printer::origin (int deltax, int deltay) +void Fl_Printer::Helper::origin (int deltax, int deltay) { SetWindowOrgEx( (HDC)driver()->gc(), - left_margin - deltax, - top_margin - deltay, NULL); x_offset = deltax; y_offset = deltay; } -void Fl_System_Printer::scale (float scalex, float scaley) +void Fl_Printer::Helper::scale (float scalex, float scaley) { if (scaley == 0.) scaley = scalex; int w, h; @@ -219,7 +219,7 @@ void Fl_System_Printer::scale (float scalex, float scaley) origin(0, 0); } -void Fl_System_Printer::rotate (float rot_angle) +void Fl_Printer::Helper::rotate (float rot_angle) { XFORM mat; float angle; @@ -232,7 +232,7 @@ void Fl_System_Printer::rotate (float rot_angle) SetWorldTransform((HDC)driver()->gc(), &mat); } -int Fl_System_Printer::end_page (void) +int Fl_Printer::Helper::end_page (void) { int rsult; @@ -263,7 +263,7 @@ static void do_translate(int x, int y, HDC gc) ModifyWorldTransform(gc, &tr, MWT_LEFTMULTIPLY); } -void Fl_System_Printer::translate (int x, int y) +void Fl_Printer::Helper::translate (int x, int y) { do_translate(x, y, (HDC)driver()->gc()); if (translate_stack_depth < translate_stack_max) { @@ -273,7 +273,7 @@ void Fl_System_Printer::translate (int x, int y) } } -void Fl_System_Printer::untranslate (void) +void Fl_Printer::Helper::untranslate (void) { if (translate_stack_depth > 0) { translate_stack_depth--; @@ -281,6 +281,11 @@ void Fl_System_Printer::untranslate (void) } } +void Fl_Printer::Helper::origin(int *x, int *y) +{ + Fl_Paged_Device::origin(x, y); +} + #endif // WIN32 // |
