Author: manolo
Date: 2010-02-27 06:43:35 -0800 (Sat, 27 Feb 2010)
New Revision: 7168
Log:
Better allocation of print-support code among files.


Modified:
   branches/branch-1.3-Fl_Printer/FL/Fl_Device.H
   branches/branch-1.3-Fl_Printer/FL/Fl_Gl_Printer.H
   branches/branch-1.3-Fl_Printer/FL/Fl_Printer.H
   branches/branch-1.3-Fl_Printer/makeinclude.in
   branches/branch-1.3-Fl_Printer/src/Fl_Device.cxx
   branches/branch-1.3-Fl_Printer/src/Fl_GDI_Printer.cxx
   branches/branch-1.3-Fl_Printer/src/Fl_Printer.cxx
   branches/branch-1.3-Fl_Printer/src/Fl_Quartz_Printer.mm
   branches/branch-1.3-Fl_Printer/src/Fl_cocoa.mm
   branches/branch-1.3-Fl_Printer/src/Fl_win32.cxx
   branches/branch-1.3-Fl_Printer/src/Fl_x.cxx
   branches/branch-1.3-Fl_Printer/src/Makefile
   branches/branch-1.3-Fl_Printer/src/makedepend

Modified: branches/branch-1.3-Fl_Printer/FL/Fl_Device.H
===================================================================
--- branches/branch-1.3-Fl_Printer/FL/Fl_Device.H       2010-02-27 14:28:22 UTC 
(rev 7167)
+++ branches/branch-1.3-Fl_Printer/FL/Fl_Device.H       2010-02-27 14:43:35 UTC 
(rev 7168)
@@ -107,500 +107,13 @@
   virtual void push_no_clip();
   virtual void pop_clip();
   
-  
-  
 public:
   virtual Fl_Device *set_current();
   static Fl_Device *current();
 };
 extern Fl_Device *fl_device;
 
-class Fl_Display;
 
-/**
- * @brief Provides an OS-independent interface to printing.
- *
- It allows to use all FLTK drawing, color, text, and clip functions, and to 
have them operate
- on printed page(s). There are two main, non exclusive, ways to use it.
- <ul><li>Print any widget (standard, custom, Fl_Window except Fl_Gl_Window) as 
it appears 
- on screen, with optional translation and scaling. This is done by calling 
print_widget() 
- or print_window_part().
- <li>Use a series of FLTK graphics commands (e.g., font, text, lines, colors, 
clip) to
- compose a page appropriately shaped for printing. 
- </ul>
- In both cases, begin by start_job(), start_page(), printable_rect() and 
origin() calls
- and finish by end_page() and end_job() calls.
- \see class Fl_Gl_Printer to print Fl_Gl_Window's.
- */
-class Fl_Virtual_Printer : public Fl_Device {
-private:
-  struct chain_elt {
-    Fl_Image *image;
-    const uchar *data;
-    struct chain_elt *next;
-  };
-  Fl_Display *current_display_;
-  void add_image(Fl_Image *image, const uchar *data); // adds an image to the 
page image list
-  void traverse(Fl_Widget *widget); // finds subwindows of widget and prints 
them
-  /**
-   @brief Translates the current graphics origin accounting for the current 
rotation.
-   *
-   This function is only useful after a rotate() call. Each translate() call 
must be matched by an untranslate() call.
-   */
-  virtual void translate(int x, int y);
-  
-  /**
-   @brief Undoes the effect of a previous translate() call.
-   */
-  virtual void untranslate(void);
-protected:
-  int y_offset;
-  int x_offset;
-  struct chain_elt *image_list_; // chained list of Fl_Image's used in this 
page
-
-  /** 
-   @brief The constructor.
-   */
-  Fl_Virtual_Printer(void) { current_display_ = (Fl_Display*)fl_device;};
-  void delete_image_list(); // deletes the page image list
-public:
-  
-  /**
-   @brief Starts a print job.
-   *
-   @param[in] pagecount the total number of pages of the job
-   @param[out] frompage if non-null, *frompage is set to the first page the 
user wants printed
-   @param[out] topage if non-null, *topage is set to the last page the user 
wants printed
-   @return 0 iff OK
-   */
-  virtual int start_job(int pagecount, int *frompage = NULL, int *topage = 
NULL);
-  
-  /**
-   @brief Starts a new printed page
-   *
-   The page coordinates are initially in points, i.e., 1/72 inch, 
-   and with origin at the top left of the printable page area.
-   @return 0 iff OK
-   */
-  virtual int start_page (void);
-  
-  /**
-   @brief Computes the width and height of the printable area of the page.
-   *
-   Values are in the same unit as that used by FLTK drawing functions,
-   are unchanged by calls to origin(), but are changed by scale() calls.
-   Values account for the user-selected paper type and print orientation.
-   @return 0 iff OK.
-   */
-  virtual int printable_rect(int *w, int *h);
-  
-  /**
-   @brief Computes the dimensions of margins that lie between the printable 
page area and
-   the full page.
-   *
-   Values are in the same unit as that used by FLTK drawing functions. They 
are changed
-   by scale() calls.
-   @param[out] left If non-null, *left is set to the left margin size.
-   @param[out] top If non-null, *top is set to the top margin size.
-   @param[out] right If non-null, *right is set to the right margin size.
-   @param[out] bottom If non-null, *bottom is set to the bottom margin size.
-   */
-  virtual void margins(int *left, int *top, int *right, int *bottom);
-  
-  /**
-   @brief Sets the position in page coordinates of the origin of graphics 
functions.
-   *
-   Arguments should be expressed relatively to the result of a previous 
printable_rect() call.
-   That is, <tt>printable_rect(&w, &h); origin(w/2, 0);</tt> sets the graphics 
origin at the
-   top center of the page printable area.
-   Successive origin() calls don't combine their effects.
-   @param[in] x Horizontal position in page coordinates of the desired origin 
of graphics functions.
-   @param[in] y Same as above, vertically.
-   */
-  virtual void origin(int x, int y);
-  
-  /**
-   @brief Computes the page coordinates of the current origin of graphics 
functions.
-   *
-   @param[out] x If non-null, *x is set to the horizontal page offset of 
graphics origin.
-   @param[out] y Same as above, vertically.
-   */
-  void origin(int *x, int *y);
-  
-  /**
-   @brief Changes the scaling of page coordinates.
-   *
-   This function also resets the origin of graphics functions at top left of 
printable page area.
-   After a scale() call, do a printable_rect() call to get the new dimensions 
of the printable page area.
-   Successive scale() calls don't combine their effects.
-   @param scale_x Horizontal dimensions of plot are multiplied by this 
quantity.
-   @param scale_y Same as above, vertically.
-   */
-  virtual void scale (float scale_x, float scale_y);
-  
-  /**
-   @brief Rotates the graphics operations relatively to paper.
-   *
-   The rotation is centered on the current graphics origin. Successive 
rotate() calls don't combine their effects.
-   On MSWindows, Fl_RGB_Image's don't rotate well; print_window_part() is an 
efficient workaround.
-   @param angle Rotation angle in counterclockwise degrees.
-   */
-  virtual void rotate(float angle);
-  
-  /**
-   @brief Draws the widget on the printed page.
-   *
-   The widget's position on the printed page is determined by the last call to 
origin()
-   and by the optional delta_x and delta_y arguments.
-   Its dimensions are in points unless there was a previous call to scale().
-   <br>Under MSWindows, most printers don't allow interaction
-   between what is being printed and what was previously printed at the same 
position on the page.
-   Consequently, Fl_RGB_Image's are printed without transparency, Fl_Pixmap's 
are printed
-   with black color where a transparent background is expected, 
fl_read_image() returns a
-   white rectangle. A workaround is to use the print_window_part() call. 
-   <br>Under Mac OS X, transparent RGB images and pixmaps are correctly 
reproduced
-   on paper.
-   @param[in] widget Any FLTK widget (e.g., standard, custom, window).
-   @param[in] delta_x Optional horizontal offset for positioning the widget 
relatively
-   to the current origin of graphics functions.
-   @param[in] delta_y Same as above, vertically.
-   */
-  void print_widget(Fl_Widget* widget, int delta_x = 0, int delta_y = 0);
-  
-  /**
-   @brief Prints a rectangular part of an on-screen window.
-   *
-   @param win The window from where to capture.
-   @param x The rectangle left
-   @param y The rectangle top
-   @param w The rectangle width
-   @param h The rectangle height
-   @param delta_x Optional horizontal offset from current graphics origin 
where to print the captured rectangle.
-   @param delta_y As above, vertically.
-   */
-  void print_window_part(Fl_Window *win, int x, int y, int w, int h, int 
delta_x = 0, int delta_y = 0);
-  
-  /**
-   @brief To be called at the end of each page.
-   *
-   @return 0 iff OK.
-   */
-  virtual int end_page (void);
-  
-  /**
-   @brief To be called at the end of a print job.
-   */
-  virtual void end_job (void);
-  
-  /**
-   @brief Returns the display device currently in action.
-   */
-  Fl_Display *current_display() {return current_display_; };
-};
-
-#ifdef __APPLE__
-class Fl_Quartz_Printer : public Fl_Virtual_Printer {
-private:
-  float scale_x;
-  float scale_y;
-  float angle; // rotation angle in radians
-  PMPrintSession  printSession;
-  PMPageFormat    pageFormat;
-  PMPrintSettings printSettings;
-  void translate(int x, int y);
-  void untranslate(void);
-public:
-  Fl_Quartz_Printer(void) : Fl_Virtual_Printer() {};
-  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 scale (float scale_x, float scale_y);
-  void rotate(float angle);
-  int end_page (void);
-  void end_job (void);
-};
-#endif
-
-#ifdef WIN32
-class Fl_GDI_Printer : public Fl_Virtual_Printer {
-private:
-  int   abortPrint;
-  PRINTDLG      pd;
-  HDC           hPr;
-  int           prerr;
-  int left_margin;
-  int top_margin;
-  void translate(int x, int y);
-  void untranslate(void);
-  void absolute_printable_rect(int *x, int *y, int *w, int *h);
-public:
-  Fl_GDI_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 scale (float scale_x, float scale_y);
-  void rotate(float angle);
-  int end_page (void);
-  void end_job (void);
-};
-#endif
-
-#if ! (defined(WIN32) || defined(__APPLE__) )
-const int NO_PAGE_FORMATS=30;
-const int page_formats[NO_PAGE_FORMATS][2]={
-
-// A* // index(Ai) = i
-{2384, 3370}, //A0
-{1684, 2384}, //A1
-{1191, 1684}, //A2
-{842, 1191},  //A3
-{595, 842},   //A4
-{420, 595},   //A5
-{297, 420},   //A6
-{210, 297},   //A7
-{148, 210},   //A8
-{105, 148},   //A9
-
-// B* // index(Bi) = i+10
-{2920, 4127}, //B0
-{2064, 2920}, //B1
-{1460, 2064}, //B2
-{1032, 1460}, //B3
-{729, 1032},  //B4
-{516, 729},   //B5
-{316, 516},   //B6
-{258, 516},   //B7
-{181, 258},   //B8
-{127, 181},   //B9
-{91,127},     //B10
-
-// others (look at Fl_Printer.H} //
-{462, 649},
-{312, 623},
-{541, 719},
-{595, 935},
-{1224, 790},
-{612, 1009},
-{612, 790},
-{791, 1224},
-{297, 683}
-
-};
-
-class Fl_PS_Printer : public Fl_Virtual_Printer {
-  enum SHAPE{NONE=0, LINE, LOOP, POLYGON, POINTS};
-  
-  class Clip{
-  public:
-    int x, y, w, h;
-    Clip *prev;
-  };
-  Clip * clip_;
-  
-  int lang_level_;
-  int font_;
-  int size_;
-  Fl_Color color_;
-  FILE *output;
-  //int nPages;
-  int gap_;
-  int pages_;
-  
-  double width_;
-  double height_;
-  
-  int shape_;
-  int linewidth_;// need for clipping, lang level 1-2
-  int linestyle_;//
-  int interpolate_; //interpolation of images
-  unsigned char cr_,cg_,cb_;
-  char  linedash_[256];//should be enought
-  void concat();  // transform ror scalable dradings...
-  void reconcat(); //invert
-  void recover(); //recovers the state afrer grestore (such as line styles...)
-  void reset();
-  
-  uchar * mask;
-  int mx; // width of mask;
-  int my; // mask lines
-  //Fl_Color bg_;
-  int (*close_cmd_)(FILE *);
-  int page_policy_;
-  int nPages;
-  int orientation_;
-
-  float scale_x;
-  float scale_y;
-  float angle;
-  void translate(int x, int y);
-  void untranslate(void);
-  
-protected:
-  double pw_, ph_;
-  static const int page_formats[NO_PAGE_FORMATS][2];
-    
-  uchar bg_r, bg_g, bg_b;
-  /*  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); };
-  void draw(int angle, const char *str, int n, int x, int y);
-  void transformed_draw(const char* s, int n, double x, double y); //precise 
text placing
-  void transformed_draw(const char* s, double x, double y);
-/*  
-  void draw_scalled_image(const uchar *data, double x, double y, double w, 
double h, int iw, int ih, int D=3, int LD=0);
-  void draw_scalled_image_mono(const uchar *data, double x, double y, double 
w, double h, int iw, int ih, int D=3, int LD=0);
-  void draw_scalled_image(Fl_Draw_Image_Cb call, void *data, double x, double 
y, double w, double h, int iw, int ih, int D);
-  void draw_scalled_image_mono(Fl_Draw_Image_Cb call, void *data, double x, 
double y, double w, double h, int iw, int ih, int D);
-*/
-public:
-    void page_policy(int p);
-  int page_policy(){return page_policy_;};
-  
-  
-  void close_command( int (*cmd)(FILE *)){close_cmd_=cmd;};
-  FILE * file(){return output;};
-  //void orientation (int o);
-  
-  //Fl_PS_Printer(FILE *o, int lang_level, int pages = 0); // ps (also 
multi-page) constructor
-  //Fl_PS_Printer(FILE *o, int lang_level, int x, int y, int w, int h); //eps 
constructor
-  ~Fl_PS_Printer();
-  void interpolate(int i){interpolate_=i;};
-  int interpolate(){return interpolate_;}
-  
-  void page(double pw, double ph, int media = 0);
-  void page(int format);
-  
-  void Fl_PS_Printer::place(double x, double y, double tx, double ty, double 
scale = 1);
-  
-  Fl_PS_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 scale (float scale_x, float scale_y);
-  void rotate(float angle);
-  int end_page (void);
-  void end_job (void);
-  
-public:
-  
-  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
-  };
-  enum Page_Layout {PORTRAIT = 0, LANDSCAPE = 0x100, REVERSED = 0x200, 
ORIENTATION = 0x300};
-  
-protected:  // implementation of drawing methods
-  
-  void color(Fl_Color c);
-  //void bg_color(Fl_Color bg);
-  void color(uchar r, uchar g, uchar b);
-  Fl_Color color(){return color_;};
-  
-  
-  void push_clip(int x, int y, int w, int h);
-  int clip_box(int x, int y, int w, int h, int &X, int &Y, int &W, int &H);
-  int not_clipped(int x, int y, int w, int h);
-  void push_no_clip();
-  void pop_clip();
-    
-  void line_style(int style, int width=0, char* dashes=0);
-  
-  void rect(int x, int y, int w, int h);
-  void rectf(int x, int y, int w, int h);
-
-  void xyline(int x, int y, int x1);
-  void xyline(int x, int y, int x1, int y2);
-  void xyline(int x, int y, int x1, int y2, int x3);
-  
-  void yxline(int x, int y, int y1);
-  void yxline(int x, int y, int y1, int x2);
-  void yxline(int x, int y, int y1, int x2, int y3);
-  
-  void line(int x1, int y1, int x2, int y2);
-  void line(int x1, int y1, int x2, int y2, int x3, int y3);  
-
-  void loop(int x0, int y0, int x1, int y1, int x2, int y2);
-  void loop(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3);
-  void polygon(int x0, int y0, int x1, int y1, int x2, int y2);
-  void polygon(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3);
-  void point(int x, int y);
-
-  void begin_points();
-  void begin_line();
-  void begin_loop();
-  void begin_polygon();
-  void vertex(double x, double y);
-  void curve(double x, double y, double x1, double y1, double x2, double y2, 
double x3, double y3);
-  void circle(double x, double y, double r);
-  void arc(double x, double y, double r, double start, double a);
-  void arc(int x, int y, int w, int h, double a1, double a2);
-  void pie(int x, int y, int w, int h, double a1, double a2);
-  void end_points();
-  void end_line();
-  void end_loop();
-  void end_polygon();
-  void begin_complex_polygon(){begin_polygon();};
-  void gap(){gap_=1;};
-  void end_complex_polygon(){end_polygon();};
-  void transformed_vertex(double x, double y);
-
-
-  void font(int face, int size);
-  int font(){return font_;};
-  int size(){return size_;};
-  double Fl_PS_Printer::width(unsigned c);
-  double Fl_PS_Printer::width(const char* s, int n);
-  int Fl_PS_Printer::descent();
-  int Fl_PS_Printer::height();
-};
-#endif
-
-#ifdef __APPLE__
-class Fl_Printer : public Fl_Quartz_Printer {
-};
-#elif defined(WIN32)
-class Fl_Printer : public Fl_GDI_Printer {
-};
-#else
-class Fl_Printer : public Fl_PS_Printer {
-};
-#endif
-
 class Fl_Display : public Fl_Device {
 };
 

Modified: branches/branch-1.3-Fl_Printer/FL/Fl_Gl_Printer.H
===================================================================
--- branches/branch-1.3-Fl_Printer/FL/Fl_Gl_Printer.H   2010-02-27 14:28:22 UTC 
(rev 7167)
+++ branches/branch-1.3-Fl_Printer/FL/Fl_Gl_Printer.H   2010-02-27 14:43:35 UTC 
(rev 7168)
@@ -3,8 +3,7 @@
  *
  */
 
-//#include <FL/Fl_Printer.H>
-#include <FL/Fl_Device.H>
+#include <FL/Fl_Printer.H>
 #include <FL/Fl_Gl_Window.H>
 
 /**

Modified: branches/branch-1.3-Fl_Printer/FL/Fl_Printer.H
===================================================================
--- branches/branch-1.3-Fl_Printer/FL/Fl_Printer.H      2010-02-27 14:28:22 UTC 
(rev 7167)
+++ branches/branch-1.3-Fl_Printer/FL/Fl_Printer.H      2010-02-27 14:43:35 UTC 
(rev 7168)
@@ -1,20 +1,12 @@
-/*
- *  Fl_Printer.H
- *
- */
-
 #ifndef Fl_Printer_H
 #define Fl_Printer_H
 
-#include <FL/Fl.H>
-#include <FL/x.H>
-#include <FL/Fl_Image.H>
+#include <FL/Fl_Device.H>
+#include <stdio.h>
 
-
 /**
- * @brief Provides an OS-independent interface to printing under MSWindows and 
Mac OS X.
+ * @brief Provides an OS-independent interface to printing.
  *
- At present, this class is only implemented for MSWindows and Mac OS X.
  It allows to use all FLTK drawing, color, text, and clip functions, and to 
have them operate
  on printed page(s). There are two main, non exclusive, ways to use it.
  <ul><li>Print any widget (standard, custom, Fl_Window except Fl_Gl_Window) as 
it appears 
@@ -27,54 +19,38 @@
  and finish by end_page() and end_job() calls.
  \see class Fl_Gl_Printer to print Fl_Gl_Window's.
  */
-class Fl_Printer {
+class Fl_Virtual_Printer : public Fl_Device {
+private:
   struct chain_elt {
     Fl_Image *image;
     const uchar *data;
     struct chain_elt *next;
   };
-  int y_offset;
-  int x_offset;
-  struct chain_elt *image_list_; // chained list of Fl_Image's used in this 
page
-#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;
-#endif
-  
+  Fl_Display *current_display_;
   void add_image(Fl_Image *image, const uchar *data); // adds an image to the 
page image list
-  void delete_image_list(); // deletes the page image list
   void traverse(Fl_Widget *widget); // finds subwindows of widget and prints 
them
-#ifdef WIN32
-  void absolute_printable_rect(int *x, int *y, int *w, int *h);
-#endif
-private:
   /**
    @brief Translates the current graphics origin accounting for the current 
rotation.
    *
    This function is only useful after a rotate() call. Each translate() call 
must be matched by an untranslate() call.
    */
-  void translate(int x, int y);
+  virtual void translate(int x, int y);
   
   /**
    @brief Undoes the effect of a previous translate() call.
    */
-  void untranslate(void);
-public:
+  virtual void untranslate(void);
+protected:
+  int y_offset;
+  int x_offset;
+  struct chain_elt *image_list_; // chained list of Fl_Image's used in this 
page
+  
   /** 
    @brief The constructor.
    */
-  Fl_Printer(void);
+  Fl_Virtual_Printer(void) { current_display_ = (Fl_Display*)fl_device;};
+  void delete_image_list(); // deletes the page image list
+public:
   
   /**
    @brief Starts a print job.
@@ -84,7 +60,7 @@
    @param[out] topage if non-null, *topage is set to the last page the user 
wants printed
    @return 0 iff OK
    */
-  int start_job(int pagecount, int *frompage = NULL, int *topage = NULL);
+  virtual int start_job(int pagecount, int *frompage = NULL, int *topage = 
NULL);
   
   /**
    @brief Starts a new printed page
@@ -93,7 +69,7 @@
    and with origin at the top left of the printable page area.
    @return 0 iff OK
    */
-  int start_page (void);
+  virtual int start_page (void);
   
   /**
    @brief Computes the width and height of the printable area of the page.
@@ -103,7 +79,7 @@
    Values account for the user-selected paper type and print orientation.
    @return 0 iff OK.
    */
-  int printable_rect(int *w, int *h);
+  virtual int printable_rect(int *w, int *h);
   
   /**
    @brief Computes the dimensions of margins that lie between the printable 
page area and
@@ -116,7 +92,7 @@
    @param[out] right If non-null, *right is set to the right margin size.
    @param[out] bottom If non-null, *bottom is set to the bottom margin size.
    */
-   void margins(int *left, int *top, int *right, int *bottom);
+  virtual void margins(int *left, int *top, int *right, int *bottom);
   
   /**
    @brief Sets the position in page coordinates of the origin of graphics 
functions.
@@ -127,8 +103,8 @@
    Successive origin() calls don't combine their effects.
    @param[in] x Horizontal position in page coordinates of the desired origin 
of graphics functions.
    @param[in] y Same as above, vertically.
-  */
-  void origin(int x, int y);
+   */
+  virtual void origin(int x, int y);
   
   /**
    @brief Computes the page coordinates of the current origin of graphics 
functions.
@@ -147,7 +123,7 @@
    @param scale_x Horizontal dimensions of plot are multiplied by this 
quantity.
    @param scale_y Same as above, vertically.
    */
-  void scale (float scale_x, float scale_y);
+  virtual void scale (float scale_x, float scale_y);
   
   /**
    @brief Rotates the graphics operations relatively to paper.
@@ -156,7 +132,7 @@
    On MSWindows, Fl_RGB_Image's don't rotate well; print_window_part() is an 
efficient workaround.
    @param angle Rotation angle in counterclockwise degrees.
    */
-   void rotate(float angle);
+  virtual void rotate(float angle);
   
   /**
    @brief Draws the widget on the printed page.
@@ -196,13 +172,319 @@
    *
    @return 0 iff OK.
    */
-  int end_page (void);
+  virtual int end_page (void);
   
   /**
    @brief To be called at the end of a print job.
    */
+  virtual void end_job (void);
+  
+  /**
+   @brief Returns the display device currently in action.
+   */
+  Fl_Display *current_display() {return current_display_; };
+};
+
+#ifdef __APPLE__
+class Fl_Quartz_Printer : public Fl_Virtual_Printer {
+private:
+  float scale_x;
+  float scale_y;
+  float angle; // rotation angle in radians
+  PMPrintSession  printSession;
+  PMPageFormat    pageFormat;
+  PMPrintSettings printSettings;
+  void translate(int x, int y);
+  void untranslate(void);
+public:
+  Fl_Quartz_Printer(void) : Fl_Virtual_Printer() {};
+  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 scale (float scale_x, float scale_y);
+  void rotate(float angle);
+  int end_page (void);
   void end_job (void);
-    
 };
+#endif
 
+#ifdef WIN32
+class Fl_GDI_Printer : public Fl_Virtual_Printer {
+private:
+  int   abortPrint;
+  PRINTDLG      pd;
+  HDC           hPr;
+  int           prerr;
+  int left_margin;
+  int top_margin;
+  void translate(int x, int y);
+  void untranslate(void);
+  void absolute_printable_rect(int *x, int *y, int *w, int *h);
+public:
+  Fl_GDI_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 scale (float scale_x, float scale_y);
+  void rotate(float angle);
+  int end_page (void);
+  void end_job (void);
+};
+#endif
+
+const int NO_PAGE_FORMATS=30;
+const int page_formats[NO_PAGE_FORMATS][2]={
+
+// A* // index(Ai) = i
+{2384, 3370}, //A0
+{1684, 2384}, //A1
+{1191, 1684}, //A2
+{842, 1191},  //A3
+{595, 842},   //A4
+{420, 595},   //A5
+{297, 420},   //A6
+{210, 297},   //A7
+{148, 210},   //A8
+{105, 148},   //A9
+
+// B* // index(Bi) = i+10
+{2920, 4127}, //B0
+{2064, 2920}, //B1
+{1460, 2064}, //B2
+{1032, 1460}, //B3
+{729, 1032},  //B4
+{516, 729},   //B5
+{316, 516},   //B6
+{258, 516},   //B7
+{181, 258},   //B8
+{127, 181},   //B9
+{91,127},     //B10
+
+// others (look at Fl_Printer.H} //
+{462, 649},
+{312, 623},
+{541, 719},
+{595, 935},
+{1224, 790},
+{612, 1009},
+{612, 790},
+{791, 1224},
+{297, 683}
+
+};
+
+class Fl_PS_Printer : public Fl_Virtual_Printer { // defined for all 3 
platforms
+  enum SHAPE{NONE=0, LINE, LOOP, POLYGON, POINTS};
+  
+  class Clip{
+  public:
+    int x, y, w, h;
+    Clip *prev;
+  };
+  Clip * clip_;
+  
+  int lang_level_;
+  int font_;
+  int size_;
+  Fl_Color color_;
+  FILE *output;
+  //int nPages;
+  int gap_;
+  int pages_;
+  
+  double width_;
+  double height_;
+  
+  int shape_;
+  int linewidth_;// need for clipping, lang level 1-2
+  int linestyle_;//
+  int interpolate_; //interpolation of images
+  unsigned char cr_,cg_,cb_;
+  char  linedash_[256];//should be enought
+  void concat();  // transform ror scalable dradings...
+  void reconcat(); //invert
+  void recover(); //recovers the state afrer grestore (such as line styles...)
+  void reset();
+  
+  uchar * mask;
+  int mx; // width of mask;
+  int my; // mask lines
+  //Fl_Color bg_;
+  int (*close_cmd_)(FILE *);
+  int page_policy_;
+  int nPages;
+  int orientation_;
+  
+  float scale_x;
+  float scale_y;
+  float angle;
+  void translate(int x, int y);
+  void untranslate(void);
+  
+protected:
+  double pw_, ph_;
+  static const int page_formats[NO_PAGE_FORMATS][2];
+  
+  uchar bg_r, bg_g, bg_b;
+  /*  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); };
+  void draw(int angle, const char *str, int n, int x, int y);
+  void transformed_draw(const char* s, int n, double x, double y); //precise 
text placing
+  void transformed_draw(const char* s, double x, double y);
+  /*  
+   void draw_scalled_image(const uchar *data, double x, double y, double w, 
double h, int iw, int ih, int D=3, int LD=0);
+   void draw_scalled_image_mono(const uchar *data, double x, double y, double 
w, double h, int iw, int ih, int D=3, int LD=0);
+   void draw_scalled_image(Fl_Draw_Image_Cb call, void *data, double x, double 
y, double w, double h, int iw, int ih, int D);
+   void draw_scalled_image_mono(Fl_Draw_Image_Cb call, void *data, double x, 
double y, double w, double h, int iw, int ih, int D);
+   */
+public:
+  void page_policy(int p);
+  int page_policy(){return page_policy_;};
+  
+  
+  void close_command( int (*cmd)(FILE *)){close_cmd_=cmd;};
+  FILE * file(){return output;};
+  //void orientation (int o);
+  
+  //Fl_PS_Printer(FILE *o, int lang_level, int pages = 0); // ps (also 
multi-page) constructor
+  //Fl_PS_Printer(FILE *o, int lang_level, int x, int y, int w, int h); //eps 
constructor
+  ~Fl_PS_Printer();
+  void interpolate(int i){interpolate_=i;};
+  int interpolate(){return interpolate_;}
+  
+  void page(double pw, double ph, int media = 0);
+  void page(int format);
+  
+  void Fl_PS_Printer::place(double x, double y, double tx, double ty, double 
scale = 1);
+  
+  Fl_PS_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 scale (float scale_x, float scale_y);
+  void rotate(float angle);
+  int end_page (void);
+  void end_job (void);
+  
+public:
+  
+  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
+  };
+  enum Page_Layout {PORTRAIT = 0, LANDSCAPE = 0x100, REVERSED = 0x200, 
ORIENTATION = 0x300};
+  
+protected:  // implementation of drawing methods
+  
+  void color(Fl_Color c);
+  //void bg_color(Fl_Color bg);
+  void color(uchar r, uchar g, uchar b);
+  Fl_Color color(){return color_;};
+  
+  
+  void push_clip(int x, int y, int w, int h);
+  int clip_box(int x, int y, int w, int h, int &X, int &Y, int &W, int &H);
+  int not_clipped(int x, int y, int w, int h);
+  void push_no_clip();
+  void pop_clip();
+  
+  void line_style(int style, int width=0, char* dashes=0);
+  
+  void rect(int x, int y, int w, int h);
+  void rectf(int x, int y, int w, int h);
+  
+  void xyline(int x, int y, int x1);
+  void xyline(int x, int y, int x1, int y2);
+  void xyline(int x, int y, int x1, int y2, int x3);
+  
+  void yxline(int x, int y, int y1);
+  void yxline(int x, int y, int y1, int x2);
+  void yxline(int x, int y, int y1, int x2, int y3);
+  
+  void line(int x1, int y1, int x2, int y2);
+  void line(int x1, int y1, int x2, int y2, int x3, int y3);  
+  
+  void loop(int x0, int y0, int x1, int y1, int x2, int y2);
+  void loop(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3);
+  void polygon(int x0, int y0, int x1, int y1, int x2, int y2);
+  void polygon(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3);
+  void point(int x, int y);
+  
+  void begin_points();
+  void begin_line();
+  void begin_loop();
+  void begin_polygon();
+  void vertex(double x, double y);
+  void curve(double x, double y, double x1, double y1, double x2, double y2, 
double x3, double y3);
+  void circle(double x, double y, double r);
+  void arc(double x, double y, double r, double start, double a);
+  void arc(int x, int y, int w, int h, double a1, double a2);
+  void pie(int x, int y, int w, int h, double a1, double a2);
+  void end_points();
+  void end_line();
+  void end_loop();
+  void end_polygon();
+  void begin_complex_polygon(){begin_polygon();};
+  void gap(){gap_=1;};
+  void end_complex_polygon(){end_polygon();};
+  void transformed_vertex(double x, double y);
+  
+  
+  void font(int face, int size);
+  int font(){return font_;};
+  int size(){return size_;};
+  double Fl_PS_Printer::width(unsigned c);
+  double Fl_PS_Printer::width(const char* s, int n);
+  int Fl_PS_Printer::descent();
+  int Fl_PS_Printer::height();
+};
+
+#ifdef __APPLE__
+class Fl_Printer : public Fl_Quartz_Printer {
+};
+#elif defined(WIN32)
+class Fl_Printer : public Fl_GDI_Printer {
+};
+#else
+class Fl_Printer : public Fl_PS_Printer {
+};
+#endif
+
 #endif // Fl_Printer_H
+

Modified: branches/branch-1.3-Fl_Printer/makeinclude.in
===================================================================
--- branches/branch-1.3-Fl_Printer/makeinclude.in       2010-02-27 14:28:22 UTC 
(rev 7167)
+++ branches/branch-1.3-Fl_Printer/makeinclude.in       2010-02-27 14:43:35 UTC 
(rev 7168)
@@ -140,7 +140,7 @@
 .SILENT:
 
 # Build commands and filename extensions...
-.SUFFIXES:     .0 .1 .3 .6 .c .cxx .mm .h .fl .man .o .z $(EXEEXT)
+.SUFFIXES:     .0 .1 .3 .6 .c .cxx .h .fl .man .o .z $(EXEEXT)
 
 .o$(EXEEXT):
        echo Linking $...@...
@@ -150,16 +150,14 @@
        echo Compiling $<...
        $(CC) -I.. $(ARCHFLAGS) @PNGINC@ @JPEGINC@ @ZLIBINC@ $(CFLAGS) -c $< -o 
$@
 
-.mm.o:
-       echo Compiling $<...
-       $(CXX) -I.. $(ARCHFLAGS) @PNGINC@ @JPEGINC@ @ZLIBINC@ $(CXXFLAGS) -x 
objective-c++ -c $< -o $@
-
 .cxx.o:
        echo Compiling $<...
        @if test `uname` = Darwin -a $< = Fl.cxx ; then \
                $(CXX) -I.. $(ARCHFLAGS) @PNGINC@ @JPEGINC@ @ZLIBINC@ 
$(CXXFLAGS) -x objective-c++ -c $< -o $@; \
        elif test `uname` = Darwin -a  $< = Fl_Native_File_Chooser.cxx ; then \
                $(CXX) -I.. $(ARCHFLAGS) @PNGINC@ @JPEGINC@ @ZLIBINC@ 
$(CXXFLAGS) -x objective-c++ -c $< -o $@; \
+       elif test `uname` = Darwin -a  $< = Fl_Printer.cxx ; then \
+               $(CXX) -I.. $(ARCHFLAGS) @PNGINC@ @JPEGINC@ @ZLIBINC@ 
$(CXXFLAGS) -x objective-c++ -c $< -o $@; \
        else \
                $(CXX) -I.. $(ARCHFLAGS) @PNGINC@ @JPEGINC@ @ZLIBINC@ 
$(CXXFLAGS) -c $< -o $@; \
        fi

Modified: branches/branch-1.3-Fl_Printer/src/Fl_Device.cxx
===================================================================
--- branches/branch-1.3-Fl_Printer/src/Fl_Device.cxx    2010-02-27 14:28:22 UTC 
(rev 7167)
+++ branches/branch-1.3-Fl_Printer/src/Fl_Device.cxx    2010-02-27 14:43:35 UTC 
(rev 7168)
@@ -5,6 +5,7 @@
 
 #include <FL/Fl.H>
 #include <FL/Fl_Device.H>
+#include <FL/Fl_Printer.H>
 #include <FL/fl_draw.H>
 #include <FL/Fl_Image.H>
 

Modified: branches/branch-1.3-Fl_Printer/src/Fl_GDI_Printer.cxx
===================================================================
--- branches/branch-1.3-Fl_Printer/src/Fl_GDI_Printer.cxx       2010-02-27 
14:28:22 UTC (rev 7167)
+++ branches/branch-1.3-Fl_Printer/src/Fl_GDI_Printer.cxx       2010-02-27 
14:43:35 UTC (rev 7168)
@@ -3,7 +3,7 @@
  */
 
 #ifdef WIN32
-#include <FL/Fl_Device.H>
+#include <FL/Fl_Printer.H>
 
 
 #include <FL/fl_ask.H>

Modified: branches/branch-1.3-Fl_Printer/src/Fl_Printer.cxx
===================================================================
--- branches/branch-1.3-Fl_Printer/src/Fl_Printer.cxx   2010-02-27 14:28:22 UTC 
(rev 7167)
+++ branches/branch-1.3-Fl_Printer/src/Fl_Printer.cxx   2010-02-27 14:43:35 UTC 
(rev 7168)
@@ -1,125 +1,9 @@
-/*
- *  Fl_Printer.cxx
- *  FLTK
- *
- */
 #include <FL/Fl_Printer.H>
-#include <FL/fl_draw.H>
 
 #ifdef __APPLE__
-#include "Fl_Printer_mac.mm"
+#include <src/Fl_Quartz_Printer.mm>
 #elif defined(WIN32)
-#include "Fl_Printer_win32.cxx"
-
-#else // Linux/Unix/X11 -- empty methods, for compatibility only
-
-Fl_Printer::Fl_Printer(void) {}
-int Fl_Printer::start_job (int pagecount, int *frompage, int *topage) {return 
1;}
-void Fl_Printer::end_job (void) {}
-void Fl_Printer::margins(int *left, int *top, int *right, int *bottom) {}
-int Fl_Printer::printable_rect(int *w, int *h) {return 0;}
-int Fl_Printer::start_page (void) {return 1;}
-void Fl_Printer::origin (int deltax, int deltay) {}
-void Fl_Printer::scale (float scalex, float scaley) {}
-int Fl_Printer::end_page (void) {return 1;}
-
+#include <src/Fl_GDI_Printer.cxx>
 #endif
 
-void Fl_Printer::print_widget(Fl_Widget* widget, int delta_x, int delta_y) 
-{ 
-  int old_x, old_y, new_x, new_y, is_window;
-  if ( ! widget->visible() ) return;
-  is_window = (widget->as_window() != NULL);
-  widget->damage(FL_DAMAGE_ALL);
-  // set origin to the desired top-left position of the widget
-  origin(&old_x, &old_y);
-  new_x = old_x + delta_x;
-  new_y = old_y + delta_y;
-  if (!is_window) {
-    new_x -= widget->x();
-    new_y -= widget->y();
-    }
-  if (new_x != old_x || new_y != old_y) {
-    translate(new_x - old_x, new_y - old_y );
-    }
-  // if widget is a window, clip all drawings to the window area
-  if (is_window) fl_push_clip(0, 0, widget->w(), widget->h() );
-#ifdef __APPLE__
-  CGContextRef save_gc = fl_gc;
-#elif defined(WIN32) // && !defined(__CYGWIN__)
-  HDC save_gc = fl_gc;
-#else
-  _XGC *save_gc = fl_gc;       // FIXME
-#endif
-  widget->draw();
-  fl_gc = save_gc;
-  if (is_window) fl_pop_clip();
-  // find subwindows of widget and print them
-  traverse(widget);
-  // reset origin to where it was
-  if(new_x != old_x || new_y != old_y) {
-    untranslate();
-    }
-}
-
-void Fl_Printer::traverse(Fl_Widget *widget)
-{
-  Fl_Group *g = widget->as_group();
-  if (!g) return;
-  int n = g->children();
-  for (int i = 0; i < n; i++) {
-    Fl_Widget *c = g->child(i);
-    if ( !c->visible() ) continue;
-    if ( c->as_window() ) {
-      print_widget(c, c->x(), c->y());
-      }
-    else traverse(c);
-  }
-}
-
-void Fl_Printer::origin(int *x, int *y)
-{
-  if (x) *x = x_offset;
-  if (y) *y = y_offset;
-}
-
-void Fl_Printer::print_window_part(Fl_Window *win, int x, int y, int w, int h, 
int delta_x, int delta_y)
-{
-#ifdef __APPLE__
-  CGContextRef save_gc = fl_gc;
-#elif defined(WIN32)
-  HDC save_gc = fl_gc;
-#else
-  _XGC *save_gc = fl_gc;
-#endif
-  Fl_Window *save_front = Fl::first_window();
-  win->show();
-  Fl::check();
-  win->make_current();
-  uchar *image_data = fl_read_image(NULL, x, y, w, h);
-  save_front->show();
-  fl_gc = save_gc;
-  Fl_RGB_Image *image = new Fl_RGB_Image(image_data, w, h);
-  image->draw(delta_x, delta_y);
-  add_image(image, image_data);
-}
-
-void Fl_Printer::add_image(Fl_Image *image, const uchar *data)
-{
-  struct chain_elt *elt =  (struct chain_elt *)calloc(sizeof(struct 
chain_elt), 1);
-  elt->image = image;
-  elt->data = data;
-  if (image_list_) { elt->next = image_list_; }
-  image_list_ = elt;
-}
-
-void Fl_Printer::delete_image_list()
-{
-  while(image_list_) {
-    struct chain_elt *next = image_list_->next;
-    delete image_list_->image;
-    if (image_list_->data) delete image_list_->data;
-    free(image_list_);
-    image_list_ = next;
-    }
-}
+#include <src/Fl_PS_Printer.cxx>

Modified: branches/branch-1.3-Fl_Printer/src/Fl_Quartz_Printer.mm
===================================================================
--- branches/branch-1.3-Fl_Printer/src/Fl_Quartz_Printer.mm     2010-02-27 
14:28:22 UTC (rev 7167)
+++ branches/branch-1.3-Fl_Printer/src/Fl_Quartz_Printer.mm     2010-02-27 
14:43:35 UTC (rev 7168)
@@ -3,7 +3,7 @@
  *
  */
 #ifdef __APPLE__
-#include <FL/Fl_Device.H>
+#include <FL/Fl_Printer.H>
 
 #include <FL/Fl.H>
 #include <FL/fl_ask.H>

Modified: branches/branch-1.3-Fl_Printer/src/Fl_cocoa.mm
===================================================================
--- branches/branch-1.3-Fl_Printer/src/Fl_cocoa.mm      2010-02-27 14:28:22 UTC 
(rev 7167)
+++ branches/branch-1.3-Fl_Printer/src/Fl_cocoa.mm      2010-02-27 14:43:35 UTC 
(rev 7168)
@@ -2863,7 +2863,7 @@
                             nil];
     [NSApp  orderFrontStandardAboutPanelWithOptions:options];
   }
-//#include <FL/Fl_Printer.H>
+#include <FL/Fl_Printer.H>
 - (void)printPanel
 {
   Fl_Printer printer;

Modified: branches/branch-1.3-Fl_Printer/src/Fl_win32.cxx
===================================================================
--- branches/branch-1.3-Fl_Printer/src/Fl_win32.cxx     2010-02-27 14:28:22 UTC 
(rev 7167)
+++ branches/branch-1.3-Fl_Printer/src/Fl_win32.cxx     2010-02-27 14:43:35 UTC 
(rev 7168)
@@ -1934,7 +1934,7 @@
 
 // temporary for testing purposes of the Fl_Printer class
 // contains also preparePrintFront call above
-//#include <FL/Fl_Printer.H>
+#include <FL/Fl_Printer.H>
 #include <FL/Fl_Button.H>
 void printFront(Fl_Widget *o, void *data)
 {

Modified: branches/branch-1.3-Fl_Printer/src/Fl_x.cxx
===================================================================
--- branches/branch-1.3-Fl_Printer/src/Fl_x.cxx 2010-02-27 14:28:22 UTC (rev 
7167)
+++ branches/branch-1.3-Fl_Printer/src/Fl_x.cxx 2010-02-27 14:43:35 UTC (rev 
7168)
@@ -1760,6 +1760,7 @@
 
 // temporary for testing purposes of the Fl_Printer class
 // contains also preparePrintFront call above
+#include <FL/Fl_Printer.H>
 #include <FL/Fl_Button.H>
 void printFront(Fl_Widget *o, void *data)
 {

Modified: branches/branch-1.3-Fl_Printer/src/Makefile
===================================================================
--- branches/branch-1.3-Fl_Printer/src/Makefile 2010-02-27 14:28:22 UTC (rev 
7167)
+++ branches/branch-1.3-Fl_Printer/src/Makefile 2010-02-27 14:43:35 UTC (rev 
7168)
@@ -50,7 +50,6 @@
        Fl_File_Icon.cxx \
        Fl_File_Input.cxx \
        Fl_Group.cxx \
-       Fl_GDI_Printer.cxx \
        Fl_Help_View.cxx \
        Fl_Image.cxx \
        Fl_Input.cxx \
@@ -71,8 +70,7 @@
        Fl_Pixmap.cxx \
        Fl_Positioner.cxx \
        Fl_Preferences.cxx \
-       Fl_PS_Printer.cxx \
-       Fl_Quartz_Printer.mm \
+       Fl_Printer.cxx \
        Fl_Progress.cxx \
        Fl_Repeat_Button.cxx \
        Fl_Return_Button.cxx \
@@ -215,7 +213,7 @@
 
 include ../makeinclude
 
-OBJECTS = $(CPPFILES:.cxx=.o) $(CFILES:.c=.o) $(UTF8CFILES:.c=.o) 
Fl_Quartz_Printer.o
+OBJECTS = $(CPPFILES:.cxx=.o) $(CFILES:.c=.o) $(UTF8CFILES:.c=.o)
 GLOBJECTS = $(GLCPPFILES:.cxx=.o)
 FLOBJECTS = $(FLCPPFILES:.cxx=.o)
 IMGOBJECTS = $(IMGCPPFILES:.cxx=.o)
@@ -493,7 +491,7 @@
 fl_read_image.o: fl_read_image_mac.cxx fl_read_image_win32.cxx
 fl_set_fonts.o:        fl_set_fonts_mac.cxx fl_set_fonts_x.cxx \
                fl_set_fonts_xft.cxx fl_set_fonts_win32.cxx
-Fl_Printer.o:  Fl_Printer_mac.mm Fl_Printer_win32.cxx
+Fl_Printer.o:  Fl_Quartz_Printer.mm Fl_GDI_Printer.cxx Fl_PS_Printer.cxx
 
 fl_arci.o:     ../FL/mac.H ../FL/win32.H
 Fl_arg.o:      ../FL/mac.H ../FL/win32.H
@@ -527,6 +525,7 @@
 Fl_Overlay_Window.o:   ../FL/mac.H ../FL/win32.H
 Fl_own_colormap.o:     ../FL/mac.H ../FL/win32.H
 Fl_Pixmap.o:   ../FL/mac.H ../FL/win32.H
+Fl_Printer.o:  ../FL/mac.H ../FL/win32.H
 fl_read_image.o:       ../FL/mac.H ../FL/win32.H
 fl_read_image_mac.o:   ../FL/mac.H ../FL/win32.H
 fl_read_image_win32.o: ../FL/mac.H ../FL/win32.H

Modified: branches/branch-1.3-Fl_Printer/src/makedepend
===================================================================
--- branches/branch-1.3-Fl_Printer/src/makedepend       2010-02-27 14:28:22 UTC 
(rev 7167)
+++ branches/branch-1.3-Fl_Printer/src/makedepend       2010-02-27 14:43:35 UTC 
(rev 7168)
@@ -143,6 +143,7 @@
 Fl_File_Input.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Window.H
 Fl_File_Input.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_draw.H
 Fl_File_Input.o: ../FL/Fl_Window.H flstring.h ../config.h
+Fl_GL_Printer.o: ../FL/Fl_Device.H ../FL/Fl_Printer.H  ../FL/Fl_Gl_Window.H
 Fl_Group.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
 Fl_Group.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
 Fl_Group.o: ../FL/fl_types.h ../FL/Fl_Group.H ../FL/Fl_Window.H
@@ -267,7 +268,7 @@
 Fl_Preferences.o: ../FL/Fl_Image.H ../FL/Fl_Tree_Item_Array.H
 Fl_Preferences.o: ../FL/Fl_Tree_Prefs.H ../FL/filename.H ../FL/fl_utf8.h
 Fl_Preferences.o: flstring.h ../config.h
-Fl_Printer.o: ../FL/Fl_Printer.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Printer.o: ../FL/Fl_Device.H ../FL/Fl_Printer.H ../FL/Fl.H ../FL/fl_utf8.h 
../FL/Fl_Export.H
 Fl_Printer.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
 Fl_Printer.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H
 Fl_Printer.o: ../FL/Fl_Image.H ../FL/fl_draw.H
@@ -577,10 +578,6 @@
 fl_font.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
 fl_font.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/x.H Fl_Font.H
 fl_font.o: fl_font_xft.cxx
-Fl_GDI_Printer.o: ../FL/Fl_Device.H ../FL/fl_ask.H
-Fl_GL_Printer.o: ../FL/Fl_Device.H ../FL/Fl_Gl_Window.H
-Fl_PS_Printer.o: ../FL/Fl_Device.H ../FL/fl_ask.H ../FL/fl_draw.H 
../FL/Fl_Native_File_Chooser.H ../FL/Fl.H
-Fl_Quartz_Printer.o: ../FL/Fl_Device.H ../FL/fl_ask.H ../FL/fl_draw.H 
../FL/Fl.H
 fl_gtk.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
 fl_gtk.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
 fl_gtk.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H

_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit

Reply via email to