diff options
| author | Manolo Gouy <Manolo> | 2015-11-24 14:26:52 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2015-11-24 14:26:52 +0000 |
| commit | b0696db39a39d9c2aadd35f74902ff22535e4d1b (patch) | |
| tree | 84b876ad7ba4d38ba20e8cbb5cbb75d5ea0571da /test/device.cxx | |
| parent | a2b8700a82f9d1eda078c91464c17a98146174b8 (diff) | |
Added new method Fl_Copy_Surface::draw_decorated_window()
that copies a window to the clipboard together with its title bar and borders.
This requires very little new code because the capture of window decorations
is shared with the Fl_Paged_Device::print window() method.
The device test program is changed to call the new method.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10928 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'test/device.cxx')
| -rw-r--r-- | test/device.cxx | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/test/device.cxx b/test/device.cxx index 9c489507a..1ad26890f 100644 --- a/test/device.cxx +++ b/test/device.cxx @@ -568,10 +568,18 @@ void copy(Fl_Widget *, void *data) { if (strcmp(operation, "Fl_Copy_Surface") == 0) { - Fl_Copy_Surface *copy_surf = new Fl_Copy_Surface(target->w()+10, target->h()+20); - copy_surf->set_current(); - fl_color(FL_YELLOW);fl_rectf(0,0,copy_surf->w(), copy_surf->h()); - copy_surf->draw(target, 5, 10); + Fl_Copy_Surface *copy_surf; + if (target->as_window() && !target->parent()) { + copy_surf = new Fl_Copy_Surface(target->as_window()->decorated_w(), target->as_window()->decorated_h()); + copy_surf->set_current(); + copy_surf->draw_decorated_window(target->as_window(), 0, 0); + } + else { + copy_surf = new Fl_Copy_Surface(target->w()+10, target->h()+20); + copy_surf->set_current(); + fl_color(FL_YELLOW);fl_rectf(0,0,copy_surf->w(), copy_surf->h()); + copy_surf->draw(target, 5, 10); + } delete copy_surf; Fl_Display_Device::display_device()->set_current(); } |
