diff options
| author | Manolo Gouy <Manolo> | 2010-12-12 16:13:55 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2010-12-12 16:13:55 +0000 |
| commit | 495b3b5af5051dd69f595aa05989f679ed992fef (patch) | |
| tree | fd6f1aabff65fdd45ba423dd668fd7ef3dd5f0c7 /FL | |
| parent | fc25ffc246ad455f66f9efa6f0d75919ff3067be (diff) | |
Moved enums Page_Format and Page_Layout to class Fl_Paged_Device
where they are better located. Small reorganization of device-related include files.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8017 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'FL')
| -rw-r--r-- | FL/Fl_Device.H | 25 | ||||
| -rw-r--r-- | FL/Fl_Paged_Device.H | 65 | ||||
| -rw-r--r-- | FL/Fl_PostScript.H | 63 | ||||
| -rw-r--r-- | FL/Fl_Printer.H | 22 |
4 files changed, 95 insertions, 80 deletions
diff --git a/FL/Fl_Device.H b/FL/Fl_Device.H index 39a0d4895..975c99aa2 100644 --- a/FL/Fl_Device.H +++ b/FL/Fl_Device.H @@ -26,7 +26,8 @@ // http://www.fltk.org/str.php // /** \file Fl_Device.H - \brief declaration of classes Fl_Device, Fl_Graphics_Driver, Fl_Surface_Device, Fl_Display_Device. + \brief declaration of classes Fl_Device, Fl_Graphics_Driver, Fl_Surface_Device, + Fl_Display_Device, Fl_Device_Plugin. */ #ifndef Fl_Device_H @@ -374,6 +375,28 @@ public: static Fl_Display_Device *display_device() { return fl_display_device; }; }; +/** + This plugin socket allows the integration of new device drivers for special + window or screen types. It is currently used to provide an automated printing + service for OpenGL windows, if linked with fltk_gl. + */ +class Fl_Device_Plugin : public Fl_Plugin { +public: + /** \brief The constructor */ + Fl_Device_Plugin(const char *name) + : Fl_Plugin(klass(), name) { } + /** \brief Returns the class name */ + virtual const char *klass() { return "fltk:device"; } + /** \brief Returns the plugin name */ + virtual const char *name() = 0; + /** \brief Prints a widget + \param w the widget + \param x,y offsets where to print relatively to coordinates origin + \param height height of the current drawing area + */ + virtual int print(Fl_Widget* w, int x, int y, int height) { return 0; } +}; + #endif // Fl_Device_H // diff --git a/FL/Fl_Paged_Device.H b/FL/Fl_Paged_Device.H index 088afc606..4ee04abd7 100644 --- a/FL/Fl_Paged_Device.H +++ b/FL/Fl_Paged_Device.H @@ -34,6 +34,8 @@ #include <FL/Fl_Device.H> +#define NO_PAGE_FORMATS 30 /* MSVC6 compilation fix */ + /** \brief Represents page-structured drawing surfaces. * @@ -41,6 +43,69 @@ or Fl_PostScript_File_Device instead. */ class Fl_Paged_Device : public Fl_Surface_Device { +public: + /** + \brief Possible page formats. + + All paper formats with pre-defined width and height. + */ + enum Page_Format { + A0 = 0, /**< A0 format */ + A1, + A2, + A3, + A4, /**< A4 format */ + A5, + A6, + A7, + A8, + A9, + B0, + B1, + B2, + B3, + B4, + B5, + B6, + B7, + B8, + B9, + B10, + C5E, + DLE, + EXECUTIVE, + FOLIO, + LEDGER, + LEGAL, + LETTER, /**< Letter format */ + TABLOID, + ENVELOPE, + MEDIA = 0x1000 + }; + /** + \brief Possible page layouts. + */ + enum Page_Layout { + PORTRAIT = 0, /**< Portrait orientation */ + LANDSCAPE = 0x100, /**< Landscape orientation */ + REVERSED = 0x200, /**< Reversed orientation */ + ORIENTATION = 0x300 /**< orientation */ + }; + + /** \brief width, height and name of a page format + */ + typedef struct { + /** \brief width in points */ + int width; + /** \brief height in points */ + int height; + /** \brief format name */ + const char *name; + } page_format; + /** \brief width, height and name of all elements of the enum \ref Page_Format. + */ + static const page_format page_formats[NO_PAGE_FORMATS]; + private: #ifdef __APPLE__ struct chain_elt { diff --git a/FL/Fl_PostScript.H b/FL/Fl_PostScript.H index 7a1907731..9e32bccf8 100644 --- a/FL/Fl_PostScript.H +++ b/FL/Fl_PostScript.H @@ -35,8 +35,6 @@ #include <FL/Fl_Paged_Device.H> #include <FL/fl_draw.H> -#define NO_PAGE_FORMATS 30 /* MSVC6 compilation fix */ - /** \brief PostScript graphical backend. * @@ -66,58 +64,10 @@ class Fl_PostScript_Graphics_Driver : public Fl_Graphics_Driver { public: static const char *device_type; - /** - \brief Possible page formats. - */ - enum Page_Format { - A0 = 0, - A1, - A2, - A3, - A4, - A5, - A6, - A7, - A8, - A9, - B0, - B1, - B2, - B3, - B4, - B5, - B6, - B7, - B8, - B9, - B10, - C5E, - DLE, - EXECUTIVE, - FOLIO, - LEDGER, - LEGAL, - LETTER, - TABLOID, - ENVELOPE, - MEDIA = 0x1000 - }; - - /** - \brief Possible page layouts. - */ - enum Page_Layout {PORTRAIT = 0, LANDSCAPE = 0x100, REVERSED = 0x200, ORIENTATION = 0x300}; - #ifndef FL_DOXYGEN public: enum SHAPE{NONE=0, LINE, LOOP, POLYGON, POINTS}; -typedef struct page_format { - int width; - int height; - const char *name; -} page_format; - class Clip { public: int x, y, w, h; @@ -162,10 +112,9 @@ class Clip { FILE *output; double pw_, ph_; - static const page_format page_formats[NO_PAGE_FORMATS]; uchar bg_r, bg_g, bg_b; - int start_postscript (int pagecount, enum Page_Format format, enum Page_Layout layout); + int start_postscript (int pagecount, enum Fl_Paged_Device::Page_Format format, enum Fl_Paged_Device::Page_Layout layout); /* int alpha_mask(const uchar * data, int w, int h, int D, int LD=0); */ void draw(const char* s, int n, int x, int y) {transformed_draw(s,n,x,y); }; @@ -178,7 +127,7 @@ class Clip { void draw_scaled_image(Fl_Draw_Image_Cb call, void *data, double x, double y, double w, double h, int iw, int ih, int D); void draw_scaled_image_mono(Fl_Draw_Image_Cb call, void *data, double x, double y, double w, double h, int iw, int ih, int D); - enum Page_Format page_format_; + enum Fl_Paged_Device::Page_Format page_format_; char *ps_filename_; // implementation of drawing methods void color(Fl_Color c); @@ -280,10 +229,10 @@ public: static const char *device_type; Fl_PostScript_File_Device(); ~Fl_PostScript_File_Device(); - int start_job(int pagecount, enum Fl_PostScript_Graphics_Driver::Page_Format format = Fl_PostScript_Graphics_Driver::A4, - enum Fl_PostScript_Graphics_Driver::Page_Layout layout = Fl_PostScript_Graphics_Driver::PORTRAIT); - int start_job(FILE *ps_output, int pagecount, enum Fl_PostScript_Graphics_Driver::Page_Format format = Fl_PostScript_Graphics_Driver::A4, - enum Fl_PostScript_Graphics_Driver::Page_Layout layout = Fl_PostScript_Graphics_Driver::PORTRAIT); + int start_job(int pagecount, enum Fl_Paged_Device::Page_Format format = Fl_Paged_Device::A4, + enum Fl_Paged_Device::Page_Layout layout = Fl_Paged_Device::PORTRAIT); + int start_job(FILE *ps_output, int pagecount, enum Fl_Paged_Device::Page_Format format = Fl_Paged_Device::A4, + enum Fl_Paged_Device::Page_Layout layout = Fl_Paged_Device::PORTRAIT); int start_page (void); int printable_rect(int *w, int *h); void margins(int *left, int *top, int *right, int *bottom); diff --git a/FL/Fl_Printer.H b/FL/Fl_Printer.H index 671dcdb77..59d36ce2c 100644 --- a/FL/Fl_Printer.H +++ b/FL/Fl_Printer.H @@ -239,28 +239,6 @@ public: }; #endif -/** - This plugin socket allows the integration of new device drivers for special - window or screen types. It is currently used to provide an automated printing - service for OpenGL windows, if linked with fltk_gl. - */ -class Fl_Device_Plugin : public Fl_Plugin { -public: - /** \brief The constructor */ - Fl_Device_Plugin(const char *name) - : Fl_Plugin(klass(), name) { } - /** \brief Returns the class name */ - virtual const char *klass() { return "fltk:device"; } - /** \brief Returns the plugin name */ - virtual const char *name() = 0; - /** \brief Prints a widget - \param w the widget - \param x,y offsets where to print relatively to coordinates origin - \param height height of the current drawing area - */ - virtual int print(Fl_Widget* w, int x, int y, int height) { return 0; } -}; - #endif // Fl_Printer_H // |
