Fl_Printer.H
Go to the documentation of this file.
//
// "$Id: Fl_Printer.H 9035 2011-09-14 15:17:32Z manolo $"
//
// Printing support for the Fast Light Tool Kit (FLTK).
//
// Copyright 2010-2011 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
// file is missing or damaged, see the license at:
//
// http://www.fltk.org/COPYING.php
//
// Please report all bugs and problems on the following page:
//
// http://www.fltk.org/str.php
//
#ifndef Fl_Printer_H
#define Fl_Printer_H
#include <FL/x.H>
#include <FL/Fl_Paged_Device.H>
#include <FL/fl_draw.H>
#include <FL/Fl_Pixmap.H>
#include <FL/Fl_RGB_Image.H>
#include <FL/Fl_Bitmap.H>
#include <stdio.h>
#if !(defined(__APPLE__) || defined(WIN32))
#include <FL/Fl_PostScript.H>
#elif defined(WIN32)
#include <commdlg.h>
#endif
#if defined(__APPLE__) || defined(WIN32) || defined(FL_DOXYGEN)
class Fl_System_Printer : public Fl_Paged_Device {
friend class Fl_Printer;
private:
void *gc;
void set_current(void);
#ifdef __APPLE__
float scale_x;
float scale_y;
float angle; // rotation angle in radians
PMPrintSession printSession;
PMPageFormat pageFormat;
PMPrintSettings printSettings;
#elif defined(WIN32)
int abortPrint;
PRINTDLG pd;
HDC hPr;
int prerr;
int left_margin;
int top_margin;
void absolute_printable_rect(int *x, int *y, int *w, int *h);
#endif
protected:
Fl_System_Printer(void);
public:
static const char *class_id;
const char *class_name() {return class_id;};
int start_job(int pagecount, int *frompage = NULL, int *topage = NULL);
int start_page (void);
int printable_rect(int *w, int *h);
void margins(int *left, int *top, int *right, int *bottom);
void origin(int *x, int *y);
void origin(int x, int y);
void scale (float scale_x, float scale_y = 0.);
void rotate(float angle);
void translate(int x, int y);
void untranslate(void);
int end_page (void);
void end_job (void);
~Fl_System_Printer(void);
}; // class Fl_System_Printer
#endif
#if !(defined(__APPLE__) || defined(WIN32) )
class Fl_PostScript_Printer : public Fl_PostScript_File_Device {
friend class Fl_Printer;
protected:
Fl_PostScript_Printer(void) {};
public:
static const char *class_id;
const char *class_name() {return class_id;};
int start_job(int pages, int *firstpage = NULL, int *lastpage = NULL);
};
#endif
class FL_EXPORT Fl_Printer : public Fl_Paged_Device {
public:
static const char *class_id;
const char *class_name() {return class_id;};
Fl_Printer(void);
int start_job(int pagecount, int *frompage = NULL, int *topage = NULL);
int start_page(void);
int printable_rect(int *w, int *h);
void margins(int *left, int *top, int *right, int *bottom);
void origin(int *x, int *y);
void origin(int x, int y);
void scale(float scale_x, float scale_y = 0.);
void rotate(float angle);
void translate(int x, int y);
void untranslate(void);
int end_page (void);
void end_job (void);
void print_widget(Fl_Widget* widget, int delta_x=0, int delta_y=0);
void print_window_part(Fl_Window *win, int x, int y, int w, int h, int delta_x=0, int delta_y=0);
void set_current(void);
Fl_Graphics_Driver* driver(void);
~Fl_Printer(void);
static const char *dialog_title;
static const char *dialog_printer;
static const char *dialog_range;
static const char *dialog_copies;
static const char *dialog_all;
static const char *dialog_pages;
static const char *dialog_from;
static const char *dialog_to;
static const char *dialog_properties;
static const char *dialog_copyNo;
static const char *dialog_print_button;
static const char *dialog_cancel_button;
static const char *dialog_print_to_file;
static const char *property_title;
static const char *property_pagesize;
static const char *property_mode;
static const char *property_use;
static const char *property_save;
static const char *property_cancel;
private:
#if defined(WIN32) || defined(__APPLE__)
Fl_System_Printer *printer;
#else
Fl_PostScript_Printer *printer;
#endif
};
#endif // Fl_Printer_H
//
// End of "$Id: Fl_Printer.H 9035 2011-09-14 15:17:32Z manolo $"
//
- © 1998-2012 by Bill Spitzak and others.