summaryrefslogtreecommitdiff
path: root/src/Fl_cocoa.mm
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2022-02-02 14:55:38 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2022-02-02 14:55:48 +0100
commitd9451a86696a2aa58d46cb18180c9344a5e0c179 (patch)
tree8c630fc2bf313ea385bb37053228915f1860fce7 /src/Fl_cocoa.mm
parent895ac51c6962d3dd551aa88ecefd81c92b0b8d2b (diff)
Add platform-independent Fl_Screen_Driver::print_or_copy_window().
This member function is available for all platforms to print or copy the front window with or without its titlebar.
Diffstat (limited to 'src/Fl_cocoa.mm')
-rw-r--r--src/Fl_cocoa.mm43
1 files changed, 2 insertions, 41 deletions
diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm
index 340fe2eff..d4a155af0 100644
--- a/src/Fl_cocoa.mm
+++ b/src/Fl_cocoa.mm
@@ -3949,50 +3949,11 @@ static PrintWithTitlebarItem *print_with_titlebar_item = NULL;
nil];
[NSApp orderFrontStandardAboutPanelWithOptions:options];
}
-//#include <FL/Fl_PostScript.H>
- (void)printPanel
{
- Fl_Printer printer;
- //Fl_PostScript_File_Device printer;
- int w, h, ww, wh;
- Fl_Window *win = Fl::first_window();
- if(!win) return;
- if (win->parent()) win = win->top_window();
- if( printer.begin_job(1) ) return;
- if( printer.begin_page() ) return;
+ bool grab_decoration = ([print_with_titlebar_item state] == NSOnState);
fl_lock_function();
- // scale the printer device so that the window fits on the page
- float scale = 1;
- printer.printable_rect(&w, &h);
- if ([print_with_titlebar_item state] == NSOnState) {
- ww = win->decorated_w();
- wh = win->decorated_h();
- } else {
- ww = win->w();
- wh = win->h();
- }
- if (ww>w || wh>h) {
- scale = (float)w/win->w();
- if ((float)h/wh < scale) scale = (float)h/wh;
- printer.scale(scale);
- printer.printable_rect(&w, &h);
- }
-//#define ROTATE 1
-#ifdef ROTATE
- printer.scale(scale * 0.8, scale * 0.8);
- printer.printable_rect(&w, &h);
- printer.origin(w/2, h/2 );
- printer.rotate(20.);
-#else
- printer.origin(w/2, h/2);
-#endif
- if ([print_with_titlebar_item state] == NSOnState)
- printer.draw_decorated_window(win, -ww/2, -wh/2);
- else
- printer.draw(win, -ww/2, -wh/2);
- //printer.print_window_part(win,0,0,win->w(),win->h(), -ww/2, -wh/2);
- printer.end_page();
- printer.end_job();
+ Fl_Screen_Driver::print_or_copy_window(Fl::first_window(), grab_decoration, 1);
fl_unlock_function();
}
- (void)terminate:(id)sender