NTK 1.3.0
Fl_Printer.H
Go to the documentation of this file.
1//
2// "$Id: Fl_Printer.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//
31#ifndef Fl_Printer_H
32#define Fl_Printer_H
33
34#include <FL/x.H>
35#include <FL/Fl_Paged_Device.H>
36#include <FL/fl_draw.H>
37#include <FL/Fl_Pixmap.H>
38#include <FL/Fl_RGB_Image.H>
39#include <FL/Fl_Bitmap.H>
40#include <stdio.h>
41#if !(defined(__APPLE__) || defined(WIN32))
42#include <FL/Fl_PostScript.H>
43#elif defined(WIN32)
44#include <commdlg.h>
45#endif
46
47#if defined(__APPLE__) || defined(WIN32) || defined(FL_DOXYGEN)
56 friend class Fl_Printer;
57private:
59 void *gc;
60 void set_current(void);
61#ifdef __APPLE__
62 float scale_x;
63 float scale_y;
64 float angle; // rotation angle in radians
65 Fl_PMPrintSession printSession;
66 Fl_PMPageFormat pageFormat;
67 Fl_PMPrintSettings printSettings;
68#elif defined(WIN32)
69 int abortPrint;
70 PRINTDLG pd;
71 HDC hPr;
72 int prerr;
73 int left_margin;
74 int top_margin;
75 void absolute_printable_rect(int *x, int *y, int *w, int *h);
76#endif
77protected:
80public:
81 static const char *class_id;
82 const char *class_name() {return class_id;};
83 int start_job(int pagecount, int *frompage = NULL, int *topage = NULL);
84 int start_page (void);
85 int printable_rect(int *w, int *h);
86 void margins(int *left, int *top, int *right, int *bottom);
87 void origin(int *x, int *y);
88 void origin(int x, int y);
89 void scale (float scale_x, float scale_y = 0.);
90 void rotate(float angle);
91 void translate(int x, int y);
92 void untranslate(void);
93 int end_page (void);
94 void end_job (void);
97}; // class Fl_System_Printer
98
99#endif
100
101#if !(defined(__APPLE__) || defined(WIN32) )
110 friend class Fl_Printer;
111protected:
114public:
115 static const char *class_id;
116 const char *class_name() {return class_id;};
117 int start_job(int pages, int *firstpage = NULL, int *lastpage = NULL);
118};
119
120#endif
121
154class FL_EXPORT Fl_Printer : public Fl_Paged_Device {
155public:
156 static const char *class_id;
157 const char *class_name() {return class_id;};
159 Fl_Printer(void);
160 int start_job(int pagecount, int *frompage = NULL, int *topage = NULL);
161 int start_page(void);
162 int printable_rect(int *w, int *h);
163 void margins(int *left, int *top, int *right, int *bottom);
164 void origin(int *x, int *y);
165 void origin(int x, int y);
166 void scale(float scale_x, float scale_y = 0.);
167 void rotate(float angle);
168 void translate(int x, int y);
169 void untranslate(void);
170 int end_page (void);
171 void end_job (void);
172 void print_widget(Fl_Widget* widget, int delta_x=0, int delta_y=0);
173 void print_window_part(Fl_Window *win, int x, int y, int w, int h, int delta_x=0, int delta_y=0);
174 void set_current(void);
177 ~Fl_Printer(void);
178
182 static const char *dialog_title;
183 static const char *dialog_printer;
184 static const char *dialog_range;
185 static const char *dialog_copies;
186 static const char *dialog_all;
187 static const char *dialog_pages;
188 static const char *dialog_from;
189 static const char *dialog_to;
190 static const char *dialog_properties;
191 static const char *dialog_copyNo;
192 static const char *dialog_print_button;
193 static const char *dialog_cancel_button;
194 static const char *dialog_print_to_file;
195 static const char *property_title;
196 static const char *property_pagesize;
197 static const char *property_mode;
198 static const char *property_use;
199 static const char *property_save;
200 static const char *property_cancel;
202private:
203#if defined(WIN32) || defined(__APPLE__)
204 Fl_System_Printer *printer;
205#else
206 Fl_PostScript_Printer *printer;
207#endif
208};
209
210#endif // Fl_Printer_H
211
212//
213// End of "$Id: Fl_Printer.H 8699 2011-05-20 16:39:06Z manolo $"
214//
declaration of class Fl_Paged_Device.
declaration of classes Fl_PostScript_Graphics_Driver, Fl_PostScript_File_Device.
A virtual class subclassed for each graphics driver FLTK uses.
Definition: Fl_Device.H:110
Represents page-structured drawing surfaces.
Definition: Fl_Paged_Device.H:47
virtual int start_page(void)
Starts a new printed page.
Definition: Fl_Paged_Device.cxx:168
virtual void print_widget(Fl_Widget *widget, int delta_x=0, int delta_y=0)
Draws the widget on the printed page.
Definition: Fl_Paged_Device.cxx:49
virtual int start_job(int pagecount, int *frompage=NULL, int *topage=NULL)
Starts a print job.
Definition: Fl_Paged_Device.cxx:159
virtual void scale(float scale_x, float scale_y=0.)
Changes the scaling of page coordinates.
Definition: Fl_Paged_Device.cxx:217
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 void margins(int *left, int *top, int *right, int *bottom)
Computes the dimensions of margins that lie between the printable page area and the full page.
Definition: Fl_Paged_Device.cxx:191
virtual int printable_rect(int *w, int *h)
Computes the width and height of the printable area of the page.
Definition: Fl_Paged_Device.cxx:178
virtual int end_page(void)
To be called at the end of each page.
Definition: Fl_Paged_Device.cxx:233
virtual void origin(int x, int y)
Sets the position in page coordinates of the origin of graphics functions.
Definition: Fl_Paged_Device.cxx:204
virtual void untranslate(void)
Undoes the effect of a previous translate() call.
Definition: Fl_Paged_Device.cxx:252
virtual void translate(int x, int y)
Translates the current graphics origin accounting for the current rotation.
Definition: Fl_Paged_Device.cxx:247
virtual void end_job(void)
To be called at the end of a print job.
Definition: Fl_Paged_Device.cxx:238
virtual void rotate(float angle)
Rotates the graphics operations relatively to paper.
Definition: Fl_Paged_Device.cxx:226
To send graphical output to a PostScript file.
Definition: Fl_PostScript.H:216
Print support under Unix/Linux.
Definition: Fl_Printer.H:109
const char * class_name()
Returns the name of the class of this object.
Definition: Fl_Printer.H:116
int start_job(int pages, int *firstpage=NULL, int *lastpage=NULL)
Starts a print job.
Fl_PostScript_Printer(void)
The constructor.
Definition: Fl_Printer.H:113
OS-independent print support.
Definition: Fl_Printer.H:154
static const char * property_title
[this text may be customized at run-time]
Definition: Fl_Printer.H:195
static const char * dialog_to
[this text may be customized at run-time]
Definition: Fl_Printer.H:189
static const char * dialog_copyNo
[this text may be customized at run-time]
Definition: Fl_Printer.H:191
static const char * dialog_all
[this text may be customized at run-time]
Definition: Fl_Printer.H:186
static const char * dialog_range
[this text may be customized at run-time]
Definition: Fl_Printer.H:184
static const char * dialog_print_to_file
[this text may be customized at run-time]
Definition: Fl_Printer.H:194
static const char * dialog_cancel_button
[this text may be customized at run-time]
Definition: Fl_Printer.H:193
static const char * property_mode
[this text may be customized at run-time]
Definition: Fl_Printer.H:197
static const char * dialog_from
[this text may be customized at run-time]
Definition: Fl_Printer.H:188
static const char * dialog_properties
[this text may be customized at run-time]
Definition: Fl_Printer.H:190
static const char * property_save
[this text may be customized at run-time]
Definition: Fl_Printer.H:199
static const char * property_pagesize
[this text may be customized at run-time]
Definition: Fl_Printer.H:196
static const char * dialog_title
[this text may be customized at run-time]
Definition: Fl_Printer.H:182
static const char * dialog_pages
[this text may be customized at run-time]
Definition: Fl_Printer.H:187
static const char * dialog_printer
[this text may be customized at run-time]
Definition: Fl_Printer.H:183
static const char * dialog_copies
[this text may be customized at run-time]
Definition: Fl_Printer.H:185
static const char * dialog_print_button
[this text may be customized at run-time]
Definition: Fl_Printer.H:192
static const char * property_cancel
[this text may be customized at run-time]
Definition: Fl_Printer.H:200
void set_current(void)
Use this drawing surface for future graphics requests.
Definition: Fl_Printer.cxx:185
static const char * property_use
[this text may be customized at run-time]
Definition: Fl_Printer.H:198
const char * class_name()
Returns the name of the class of this object.
Definition: Fl_Printer.H:157
virtual void set_current(void)
Use this drawing surface for future graphics requests.
Definition: Fl_Device.cxx:69
Fl_Graphics_Driver * driver()
Returns the graphics driver of this drawing surface.
Definition: Fl_Device.H:607
Print support under MSWindows and Mac OS.
Definition: Fl_Printer.H:55
const char * class_name()
Returns the name of the class of this object.
Definition: Fl_Printer.H:82
~Fl_System_Printer(void)
The destructor.
void rotate(float angle)
Rotates the graphics operations relatively to paper.
int start_job(int pagecount, int *frompage=NULL, int *topage=NULL)
Starts a print job.
void untranslate(void)
Undoes the effect of a previous translate() call.
void translate(int x, int y)
Translates the current graphics origin accounting for the current rotation.
int printable_rect(int *w, int *h)
Computes the width and height of the printable area of the page.
Fl_System_Printer(void)
The constructor.
int start_page(void)
Starts a new printed page.
void scale(float scale_x, float scale_y=0.)
Changes the scaling of page coordinates.
void end_job(void)
To be called at the end of a print job.
void margins(int *left, int *top, int *right, int *bottom)
Computes the dimensions of margins that lie between the printable page area and the full page.
int end_page(void)
To be called at the end of each page.
void origin(int *x, int *y)
Computes the page coordinates of the current origin of graphics functions.
void origin(int x, int y)
Sets the position in page coordinates of the origin of graphics functions.
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
utility header to pull drawing functions together