diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2022-02-02 14:55:38 +0100 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2022-02-02 14:55:48 +0100 |
| commit | d9451a86696a2aa58d46cb18180c9344a5e0c179 (patch) | |
| tree | 8c630fc2bf313ea385bb37053228915f1860fce7 /src/Fl_cocoa.mm | |
| parent | 895ac51c6962d3dd551aa88ecefd81c92b0b8d2b (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.mm | 43 |
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 |
