NTK 1.3.0
Fl_Paged_Device.H
Go to the documentation of this file.
1//
2// "$Id: Fl_Paged_Device.H 8699 2011-05-20 16:39:06Z manolo $"
3//
4// Printing support for the Fast Light Tool Kit (FLTK).
5//
6// Copyright 2010 by Bill Spitzak and others.
7//
8// This library is free software; you can redistribute it and/or
9// modify it under the terms of the GNU Library General Public
10// License as published by the Free Software Foundation; either
11// version 2 of the License, or (at your option) any later version.
12//
13// This library is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16// Library General Public License for more details.
17//
18// You should have received a copy of the GNU Library General Public
19// License along with this library; if not, write to the Free Software
20// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
21// USA.
22//
23// Please report all bugs and problems on the following page:
24//
25// http://www.fltk.org/str.php
26//
27
31
32#ifndef Fl_Paged_Device_H
33#define Fl_Paged_Device_H
34
35#include <FL/Fl_Device.H>
36#include <FL/Fl_Window.H>
37
39#define NO_PAGE_FORMATS 30 /* MSVC6 compilation fix */
40
47class FL_EXPORT Fl_Paged_Device : public Fl_Surface_Device {
48public:
55 A0 = 0,
56 A1,
57 A2,
58 A3,
60 A5,
61 A6,
62 A7,
63 A8,
64 A9,
65 B0,
66 B1,
67 B2,
68 B3,
69 B4,
70 B5,
71 B6,
72 B7,
73 B8,
74 B9,
75 B10,
76 C5E,
77 DLE,
78 EXECUTIVE,
79 FOLIO,
80 LEDGER,
81 LEGAL,
83 TABLOID,
84 ENVELOPE,
85 MEDIA = 0x1000
86 };
87
92 LANDSCAPE = 0x100,
93 REVERSED = 0x200,
94 ORIENTATION = 0x300
95 };
96
99 typedef struct {
101 int width;
103 int height;
105 const char *name;
106 } page_format;
107
110private:
111 void traverse(Fl_Widget *widget); // finds subwindows of widget and prints them
112protected:
120 virtual ~Fl_Paged_Device() {};
121public:
122 static const char *class_id;
123 const char *class_name() {return class_id;};
124 virtual int start_job(int pagecount, int *frompage = NULL, int *topage = NULL);
125 virtual int start_page(void);
126 virtual int printable_rect(int *w, int *h);
127 virtual void margins(int *left, int *top, int *right, int *bottom);
128 virtual void origin(int x, int y);
129 virtual void origin(int *x, int *y);
130 virtual void scale(float scale_x, float scale_y = 0.);
131 virtual void rotate(float angle);
132 virtual void translate(int x, int y);
133 virtual void untranslate(void);
134 virtual void print_widget(Fl_Widget* widget, int delta_x = 0, int delta_y = 0);
142 void print_window(Fl_Window *win, int x_offset = 0, int y_offset = 0);
143 virtual void print_window_part(Fl_Window *win, int x, int y, int w, int h, int delta_x = 0, int delta_y = 0);
144 virtual int end_page (void);
145 virtual void end_job (void);
146};
147
148#endif // Fl_Paged_Device_H
149
150//
151// End of "$Id: Fl_Paged_Device.H 8699 2011-05-20 16:39:06Z manolo $"
152//
153
declaration of classes Fl_Device, Fl_Graphics_Driver, Fl_Surface_Device, Fl_Display_Device,...
#define NO_PAGE_FORMATS
Number of elements in enum Page_Format.
Definition Fl_Paged_Device.H:39
virtual ~Fl_Paged_Device()
The destructor.
Definition Fl_Paged_Device.H:120
int y_offset
vertical offset to the origin of graphics coordinates
Definition Fl_Paged_Device.H:116
void print_window(Fl_Window *win, int x_offset=0, int y_offset=0)
Prints a window with its title bar and frame if any.
const char * class_name()
Returns the name of the class of this object.
Definition Fl_Paged_Device.H:123
virtual void print_window_part(Fl_Window *win, int x, int y, int w, int h, int delta_x=0, int delta_y=0)
Prints a rectangular part of an on-screen window.
Definition Fl_Paged_Device.cxx:130
virtual int end_page(void)
To be called at the end of each page.
Definition Fl_Paged_Device.cxx:233
Fl_Paged_Device()
The constructor.
Definition Fl_Paged_Device.H:118
Page_Layout
Possible page layouts.
Definition Fl_Paged_Device.H:90
@ REVERSED
Reversed orientation.
Definition Fl_Paged_Device.H:93
@ ORIENTATION
orientation
Definition Fl_Paged_Device.H:94
@ PORTRAIT
Portrait orientation.
Definition Fl_Paged_Device.H:91
@ LANDSCAPE
Landscape orientation.
Definition Fl_Paged_Device.H:92
int x_offset
horizontal offset to the origin of graphics coordinates
Definition Fl_Paged_Device.H:114
Page_Format
Possible page formats.
Definition Fl_Paged_Device.H:54
@ A4
A4 format.
Definition Fl_Paged_Device.H:59
@ LETTER
Letter format.
Definition Fl_Paged_Device.H:82
@ A0
A0 format.
Definition Fl_Paged_Device.H:55
virtual void end_job(void)
To be called at the end of a print job.
Definition Fl_Paged_Device.cxx:238
static const page_format page_formats[NO_PAGE_FORMATS]
width, height and name of all elements of the enum Page_Format.
Definition Fl_Paged_Device.H:254
Fl_Surface_Device(Fl_Graphics_Driver *graphics_driver)
Constructor that sets the graphics driver to use for the created surface.
Definition Fl_Device.H:599
Fl_Widget is the base class for all widgets in FLTK.
Definition Fl_Widget.H:111
This widget produces an actual window.
Definition Fl_Window.H:58
width, height and name of a page format
Definition Fl_Paged_Device.H:99
int width
width in points
Definition Fl_Paged_Device.H:101
int height
height in points
Definition Fl_Paged_Device.H:103
const char * name
format name
Definition Fl_Paged_Device.H:105