FLTK 1.3.4
Fl_Copy_Surface Class Reference

Supports copying of graphical data to the clipboard. More...

#include <Fl_Copy_Surface.H>

Inheritance diagram for Fl_Copy_Surface:
Fl_Surface_Device Fl_Device

Public Member Functions

const char * class_name ()
 Returns the name of the class of this object. More...
 
void draw (Fl_Widget *widget, int delta_x=0, int delta_y=0)
 Copies a widget in the clipboard. More...
 
void draw_decorated_window (Fl_Window *win, int delta_x=0, int delta_y=0)
 Copies a window and its borders and title bar to the clipboard. More...
 
 Fl_Copy_Surface (int w, int h)
 Constructor. More...
 
int h ()
 Returns the pixel height of the copy surface.
 
void set_current ()
 Make this surface the current drawing surface. More...
 
int w ()
 Returns the pixel width of the copy surface.
 
 ~Fl_Copy_Surface ()
 Destructor.
 
- Public Member Functions inherited from Fl_Surface_Device
const char * class_name ()
 Returns the name of the class of this object. More...
 
void driver (Fl_Graphics_Driver *graphics_driver)
 Sets the graphics driver of this drawing surface. More...
 
Fl_Graphics_Driverdriver ()
 Returns the graphics driver of this drawing surface. More...
 
virtual ~Fl_Surface_Device ()
 The destructor. More...
 
- Public Member Functions inherited from Fl_Device
virtual ~Fl_Device ()
 Virtual destructor. More...
 

Static Public Attributes

static const char * class_id = "Fl_Copy_Surface"
 
- Static Public Attributes inherited from Fl_Surface_Device
static const char * class_id = "Fl_Surface_Device"
 
- Static Public Attributes inherited from Fl_Device
static const char * class_id = "Fl_Device"
 A string that identifies each subclass of Fl_Device. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Fl_Surface_Device
static Fl_Surface_Devicesurface ()
 The current drawing surface. More...
 
- Protected Member Functions inherited from Fl_Surface_Device
 Fl_Surface_Device (Fl_Graphics_Driver *graphics_driver)
 Constructor that sets the graphics driver to use for the created surface. More...
 

Detailed Description

Supports copying of graphical data to the clipboard.


After creation of an Fl_Copy_Surface object, call set_current() on it, and all subsequent graphics requests will be recorded in the clipboard. It's possible to draw widgets (using Fl_Copy_Surface::draw() ) or to use any of the Drawing functions or the Color & Font functions. Finally, delete the Fl_Copy_Surface object to load the clipboard with the graphical data.
Fl_GL_Window 's can be copied to the clipboard as well.
Usage example:

Fl_Widget *g = ...; // a widget you want to copy to the clipboard
Fl_Copy_Surface *copy_surf = new Fl_Copy_Surface(g->w(), g->h()); // create an Fl_Copy_Surface object
copy_surf->set_current(); // direct graphics requests to the clipboard
fl_color(FL_WHITE); fl_rectf(0, 0, g->w(), g->h()); // draw a white background
copy_surf->draw(g); // draw the g widget in the clipboard
delete copy_surf; // after this, the clipboard is loaded
Fl_Display_Device::display_device()->set_current(); // direct graphics requests back to the display

Platform details:

  • MSWindows: Transparent RGB images copy without transparency. The graphical data are copied to the clipboard as an 'enhanced metafile'.
  • Mac OS: The graphical data are copied to the clipboard (a.k.a. pasteboard) in two 'flavors': 1) in vectorial form as PDF data; 2) in bitmap form as a TIFF image. Applications to which the clipboard content is pasted can use the flavor that suits them best.
  • X11: the graphical data are copied to the clipboard as an image in BMP format.

Constructor & Destructor Documentation

Fl_Copy_Surface::Fl_Copy_Surface ( int  w,
int  h 
)

Constructor.

Parameters
wand
hare the width and height of the clipboard surface in pixels where drawing will occur.

Member Function Documentation

const char* Fl_Copy_Surface::class_name ( )
inlinevirtual

Returns the name of the class of this object.

Use of the class_name() function is discouraged because it will be removed from future FLTK versions.

The class of an instance of an Fl_Device subclass can be checked with code such as:

if ( instance->class_name() == Fl_Printer::class_id ) { ... }

Reimplemented from Fl_Device.

void Fl_Copy_Surface::draw ( Fl_Widget widget,
int  delta_x = 0,
int  delta_y = 0 
)

Copies a widget in the clipboard.

Parameters
widgetany FLTK widget (e.g., standard, custom, window, GL view) to copy
delta_xand
delta_ygive the position in the clipboard of the top-left corner of the widget
void Fl_Copy_Surface::draw_decorated_window ( Fl_Window win,
int  delta_x = 0,
int  delta_y = 0 
)

Copies a window and its borders and title bar to the clipboard.

Parameters
winan FLTK window to copy
delta_xand
delta_ygive the position in the clipboard of the top-left corner of the window's title bar
void Fl_Copy_Surface::set_current ( void  )
virtual

Make this surface the current drawing surface.

This surface will receive all future graphics requests.

Reimplemented from Fl_Surface_Device.


The documentation for this class was generated from the following files: