summaryrefslogtreecommitdiff
path: root/test/device.cxx
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2015-11-24 14:26:52 +0000
committerManolo Gouy <Manolo>2015-11-24 14:26:52 +0000
commitb0696db39a39d9c2aadd35f74902ff22535e4d1b (patch)
tree84b876ad7ba4d38ba20e8cbb5cbb75d5ea0571da /test/device.cxx
parenta2b8700a82f9d1eda078c91464c17a98146174b8 (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.cxx16
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();
}