Merge of branch-1.3-Fl_Printer, with the following main changes:
(1) adding Fl_Device class (and more) for device abstraction (2) adding Fl_Pinter class (and more) for printing support. Todo: Code cleanup, update dependencies, remove/replace test print window. I'm looking into converting the test window popup in a global shortcut that would pop up the print dialog now... git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7263 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
5bc66fafc3
commit
998cc6df52
203
FL/Fl_Device.H
Normal file
203
FL/Fl_Device.H
Normal file
@ -0,0 +1,203 @@
|
||||
/*
|
||||
* Fl_Device.H
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef Fl_Device_H
|
||||
#define Fl_Device_H
|
||||
|
||||
#include <FL/x.H>
|
||||
#ifdef WIN32
|
||||
#include <Commdlg.h>
|
||||
#elif defined(__APPLE__)
|
||||
#else
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
|
||||
class Fl_Image;
|
||||
class Fl_RGB_Image;
|
||||
class Fl_Pixmap;
|
||||
class Fl_Bitmap;
|
||||
class Fl_Display;
|
||||
extern Fl_Display *fl_display_device;
|
||||
typedef void (*Fl_Draw_Image_Cb)(void* ,int,int,int,uchar*);
|
||||
|
||||
/**
|
||||
@brief A pure virtual class subclassed to send graphics output to display, local files, or printers.
|
||||
*/
|
||||
class Fl_Device {
|
||||
protected:
|
||||
int type_;
|
||||
uchar bg_r_, bg_g_, bg_b_; // color for background and/or mixing if particular device does not support masking and/or alpha
|
||||
friend void fl_rect(int x, int y, int w, int h);
|
||||
friend void fl_rectf(int x, int y, int w, int h);
|
||||
friend void fl_line_style(int style, int width, char* dashes);
|
||||
friend void fl_xyline(int x, int y, int x1);
|
||||
friend void fl_xyline(int x, int y, int x1, int y2);
|
||||
friend void fl_xyline(int x, int y, int x1, int y2, int x3);
|
||||
friend void fl_yxline(int x, int y, int y1);
|
||||
friend void fl_yxline(int x, int y, int y1, int x2);
|
||||
friend void fl_yxline(int x, int y, int y1, int x2, int y3);
|
||||
friend void fl_line(int x, int y, int x1, int y1);
|
||||
friend void fl_line(int x, int y, int x1, int y1, int x2, int y2);
|
||||
friend void fl_draw(const char *str, int n, int x, int y);
|
||||
friend void fl_draw(int angle, const char *str, int n, int x, int y);
|
||||
friend void fl_font(Fl_Font face, Fl_Fontsize size);
|
||||
friend void fl_color(Fl_Color c);
|
||||
friend void fl_color(uchar r, uchar g, uchar b);
|
||||
friend void fl_point(int x, int y);
|
||||
friend void fl_loop(int x0, int y0, int x1, int y1, int x2, int y2);
|
||||
friend void fl_loop(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3);
|
||||
friend void fl_polygon(int x0, int y0, int x1, int y1, int x2, int y2);
|
||||
friend void fl_polygon(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3);
|
||||
friend void fl_concat();
|
||||
friend void fl_reconcat();
|
||||
friend void fl_begin_points();
|
||||
friend void fl_begin_line();
|
||||
friend void fl_begin_loop();
|
||||
friend void fl_begin_polygon();
|
||||
friend void fl_vertex(double x, double y);
|
||||
friend void fl_curve(double x, double y, double x1, double y1, double x2, double y2, double x3, double y3);
|
||||
friend void fl_circle(double x, double y, double r);
|
||||
friend void fl_arc(double x, double y, double r, double start, double a);
|
||||
friend void fl_arc(int x, int y, int w, int h, double a1, double a2);
|
||||
friend void fl_pie(int x, int y, int w, int h, double a1, double a2);
|
||||
friend void fl_end_points();
|
||||
friend void fl_end_line();
|
||||
friend void fl_end_loop();
|
||||
friend void fl_end_polygon();
|
||||
friend void fl_transformed_vertex(double x, double y);
|
||||
friend void fl_push_clip(int x, int y, int w, int h);
|
||||
friend int fl_clip_box(int x, int y, int w, int h, int &X, int &Y, int &W, int &H);
|
||||
friend int fl_not_clipped(int x, int y, int w, int h);
|
||||
friend void fl_push_no_clip();
|
||||
friend void fl_pop_clip();
|
||||
friend void fl_begin_complex_polygon();
|
||||
friend void fl_gap();
|
||||
friend void fl_end_complex_polygon();
|
||||
friend void fl_draw_image(const uchar*, int,int,int,int, int delta, int ldelta);
|
||||
friend void fl_draw_image_mono(const uchar*, int,int,int,int, int delta, int ld);
|
||||
friend void fl_draw_image(Fl_Draw_Image_Cb, void*, int,int,int,int, int delta);
|
||||
friend void fl_draw_image_mono(Fl_Draw_Image_Cb, void*, int,int,int,int, int delta);
|
||||
|
||||
virtual void rect(int x, int y, int w, int h);
|
||||
virtual void rectf(int x, int y, int w, int h);
|
||||
virtual void line_style(int style, int width=0, char* dashes=0);
|
||||
virtual void xyline(int x, int y, int x1);
|
||||
virtual void xyline(int x, int y, int x1, int y2);
|
||||
virtual void xyline(int x, int y, int x1, int y2, int x3);
|
||||
virtual void yxline(int x, int y, int y1);
|
||||
virtual void yxline(int x, int y, int y1, int x2);
|
||||
virtual void yxline(int x, int y, int y1, int x2, int y3);
|
||||
virtual void line(int x, int y, int x1, int y1);
|
||||
virtual void line(int x, int y, int x1, int y1, int x2, int y2);
|
||||
virtual void draw(const char *str, int n, int x, int y);
|
||||
virtual void draw(int angle, const char *str, int n, int x, int y);
|
||||
virtual void font(Fl_Font face, Fl_Fontsize size);
|
||||
virtual void color(Fl_Color c);
|
||||
virtual void color(uchar r, uchar g, uchar b);
|
||||
virtual void point(int x, int y);
|
||||
virtual void loop(int x0, int y0, int x1, int y1, int x2, int y2);
|
||||
virtual void loop(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3);
|
||||
virtual void polygon(int x0, int y0, int x1, int y1, int x2, int y2);
|
||||
virtual void polygon(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3);
|
||||
virtual void begin_points();
|
||||
virtual void begin_line();
|
||||
virtual void begin_loop();
|
||||
virtual void begin_polygon();
|
||||
virtual void vertex(double x, double y);
|
||||
virtual void curve(double x, double y, double x1, double y1, double x2, double y2, double x3, double y3);
|
||||
virtual void circle(double x, double y, double r);
|
||||
virtual void arc(double x, double y, double r, double start, double a);
|
||||
virtual void arc(int x, int y, int w, int h, double a1, double a2);
|
||||
virtual void pie(int x, int y, int w, int h, double a1, double a2);
|
||||
virtual void end_points();
|
||||
virtual void end_line();
|
||||
virtual void end_loop();
|
||||
virtual void end_polygon();
|
||||
virtual void begin_complex_polygon();
|
||||
virtual void gap();
|
||||
virtual void end_complex_polygon();
|
||||
virtual void transformed_vertex(double x, double y);
|
||||
virtual void push_clip(int x, int y, int w, int h);
|
||||
virtual int clip_box(int x, int y, int w, int h, int &X, int &Y, int &W, int &H);
|
||||
virtual int not_clipped(int x, int y, int w, int h);
|
||||
virtual void push_no_clip();
|
||||
virtual void pop_clip();
|
||||
// Images
|
||||
virtual void draw_image(const uchar*, int,int,int,int, int delta=3, int ldelta=0);
|
||||
virtual void draw_image_mono(const uchar*, int,int,int,int, int delta=1, int ld=0);
|
||||
virtual void draw_image(Fl_Draw_Image_Cb, void*, int,int,int,int, int delta=3);
|
||||
virtual void draw_image_mono(Fl_Draw_Image_Cb, void*, int,int,int,int, int delta=1);
|
||||
// Image classes
|
||||
virtual void draw(Fl_Pixmap * pxm,int XP, int YP, int WP, int HP, int cx, int cy);
|
||||
virtual void draw(Fl_RGB_Image * rgb,int XP, int YP, int WP, int HP, int cx, int cy);
|
||||
virtual void draw(Fl_Bitmap * bmp,int XP, int YP, int WP, int HP, int cx, int cy);
|
||||
|
||||
public:
|
||||
enum device_types {
|
||||
xlib_display = 0, quartz_display, gdi_display,
|
||||
gdi_printer = 256, quartz_printer, postscript_device
|
||||
};
|
||||
/**
|
||||
@brief An RTTI emulation of device classes. It returns values < 256 if it is a screen device
|
||||
*/
|
||||
int type() {return type_;};
|
||||
/**
|
||||
@brief Sets this device (display, local file, printer) as the target of future graphics calls.
|
||||
*
|
||||
@return The current target device of graphics calls.
|
||||
*/
|
||||
virtual Fl_Device *set_current();
|
||||
|
||||
virtual ~Fl_Device() {};
|
||||
|
||||
/**
|
||||
@brief Returns the current target device of graphics calls.
|
||||
*/
|
||||
static Fl_Device *current();
|
||||
|
||||
/**
|
||||
@brief Returns the platform's display device.
|
||||
*/
|
||||
static Fl_Display *display_device() { return fl_display_device; };
|
||||
|
||||
};
|
||||
extern Fl_Device *fl_device;
|
||||
|
||||
/**
|
||||
@brief A virtual class subclassed for OS-specific display graphics.
|
||||
*/
|
||||
class Fl_Display : public Fl_Device {
|
||||
friend class Fl_PSfile_Device; //RK: temporary hack for font sizes
|
||||
};
|
||||
|
||||
#if defined(__APPLE__) || defined(FL_DOXYGEN)
|
||||
/**
|
||||
@brief The Mac OS X-specific display graphics class.
|
||||
*/
|
||||
class Fl_Quartz_Display : public Fl_Display {
|
||||
public:
|
||||
Fl_Quartz_Display() { type_ = quartz_display; };
|
||||
};
|
||||
#endif
|
||||
#if defined(WIN32) || defined(FL_DOXYGEN)
|
||||
/**
|
||||
@brief The MSWindows-specific display graphics class.
|
||||
*/
|
||||
class Fl_GDI_Display : public Fl_Display {
|
||||
public:
|
||||
Fl_GDI_Display() { type_ = gdi_display; };
|
||||
};
|
||||
#endif
|
||||
#if !( defined(__APPLE__) || defined(WIN32)) || defined(FL_DOXYGEN)
|
||||
/**
|
||||
@brief The X11-specific display graphics class.
|
||||
*/
|
||||
class Fl_Xlib_Display : public Fl_Display {
|
||||
public:
|
||||
Fl_Xlib_Display() { type_ = xlib_display; };
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif // Fl_Device_H
|
33
FL/Fl_Gl_Printer.H
Normal file
33
FL/Fl_Gl_Printer.H
Normal file
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Fl_Gl_Printer.H
|
||||
*
|
||||
*/
|
||||
|
||||
#include <FL/Fl_Printer.H>
|
||||
#include <FL/Fl_Gl_Window.H>
|
||||
|
||||
/**
|
||||
* @brief To print Fl_Gl_Window's.
|
||||
*
|
||||
Because Fl_Printer::print_widget() prints only the background of Fl_Gl_Window's,
|
||||
this class is to be used to print them.
|
||||
*/
|
||||
class Fl_Gl_Printer : public Fl_Printer {
|
||||
public:
|
||||
/**
|
||||
@brief The constructor.
|
||||
*/
|
||||
Fl_Gl_Printer(void) : Fl_Printer() {}
|
||||
|
||||
/**
|
||||
@brief Prints an Fl_Gl_Window.
|
||||
*
|
||||
Under MSWindows, take care to move the print dialog window(s) out of the target OpenGL window(s)
|
||||
before closing them.
|
||||
@param[in] glw an Fl_Gl_Window to be printed.
|
||||
@param[in] delta_x Optional horizontal offset for positioning the window relatively
|
||||
to the current origin of graphics functions.
|
||||
@param[in] delta_y Same as above, vertically.
|
||||
*/
|
||||
void print_gl_window(Fl_Gl_Window *glw, int delta_x = 0, int delta_y = 0);
|
||||
};
|
539
FL/Fl_Printer.H
Normal file
539
FL/Fl_Printer.H
Normal file
@ -0,0 +1,539 @@
|
||||
#ifndef Fl_Printer_H
|
||||
#define Fl_Printer_H
|
||||
|
||||
#include <FL/Fl_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>
|
||||
|
||||
/**
|
||||
* @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
|
||||
#ifndef FL_DOXYGEN
|
||||
Fl_Virtual_Printer
|
||||
#else
|
||||
Fl_Printer
|
||||
#endif
|
||||
: public Fl_Device {
|
||||
friend class Fl_Pixmap;
|
||||
friend class Fl_RGB_Image;
|
||||
friend class Fl_Bitmap;
|
||||
private:
|
||||
struct chain_elt {
|
||||
Fl_Image *image;
|
||||
const uchar *data;
|
||||
struct chain_elt *next;
|
||||
};
|
||||
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
|
||||
protected:
|
||||
int y_offset;
|
||||
int x_offset;
|
||||
struct chain_elt *image_list_; // chained list of Fl_Image's used in this page
|
||||
void *gc; // the printer's graphics context, if there's one, NULL otherwise
|
||||
void delete_image_list(); // deletes the page image list
|
||||
#ifndef FL_DOXYGEN
|
||||
Fl_Virtual_Printer(void) { gc = NULL; bg_r_ = bg_g_ = bg_b_ = 0; };
|
||||
#endif
|
||||
public:
|
||||
#ifdef FL_DOXYGEN
|
||||
/**
|
||||
@brief The constructor.
|
||||
*/
|
||||
Fl_Printer(void);
|
||||
|
||||
/**
|
||||
@brief The destructor.
|
||||
*/
|
||||
~Fl_Printer(void);
|
||||
#endif
|
||||
|
||||
/**
|
||||
@brief Starts a print job.
|
||||
*
|
||||
Fully implemented for Mac OS X and MSWindows. For other platforms, temporarily
|
||||
implemented as an Fl_PSfile_Device, that is, graphics go to an A4-sized local PostScript file,
|
||||
and frompage/topage arguments are ignored.
|
||||
@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.
|
||||
Origin() calls are not affected by rotate() calls.
|
||||
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 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.
|
||||
Successive translate() calls add up their effects.
|
||||
*/
|
||||
virtual void translate(int x, int y);
|
||||
|
||||
/**
|
||||
@brief Undoes the effect of a previous translate() call.
|
||||
*/
|
||||
virtual void untranslate(void);
|
||||
|
||||
/**
|
||||
@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, Fl_RGB_Image's are printed without transparency.
|
||||
A workaround is to use the print_window_part() call.
|
||||
@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 Sets this printer as the target of future graphics calls.
|
||||
@return The current target device of graphics calls.
|
||||
*/
|
||||
Fl_Device *set_current(void);
|
||||
};
|
||||
|
||||
#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;
|
||||
public:
|
||||
Fl_Quartz_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);
|
||||
void translate(int x, int y);
|
||||
void untranslate(void);
|
||||
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 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);
|
||||
void translate(int x, int y);
|
||||
void untranslate(void);
|
||||
int end_page (void);
|
||||
void end_job (void);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
@brief Creates a session where all graphics will go to a local PostScript file. Same API as Fl_Printer class.
|
||||
*
|
||||
This class has the same API as class Fl_Printer except for start_job() member function.
|
||||
\see class Fl_Printer.
|
||||
*/
|
||||
class Fl_PSfile_Device : public
|
||||
#ifndef FL_DOXYGEN
|
||||
Fl_Virtual_Printer
|
||||
#else
|
||||
Fl_Device
|
||||
#endif
|
||||
{ // defined for all 3 platforms
|
||||
public:
|
||||
/**
|
||||
@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
|
||||
private:
|
||||
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_;
|
||||
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;
|
||||
int left_margin;
|
||||
int top_margin;
|
||||
|
||||
protected:
|
||||
struct page_format {
|
||||
int width;
|
||||
int height;
|
||||
const char *name;
|
||||
};
|
||||
|
||||
FILE *output;
|
||||
double pw_, ph_;
|
||||
static const int NO_PAGE_FORMATS=30;
|
||||
static const struct 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 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);
|
||||
int alpha_mask(const uchar * data, int w, int h, int D, int LD=0);
|
||||
void draw_scaled_image(const uchar *data, double x, double y, double w, double h, int iw, int ih, int D=3, int LD=0);
|
||||
void draw_scaled_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_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_;
|
||||
char *ps_filename_;
|
||||
// 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 width(unsigned c);
|
||||
double width(const char* s, int n);
|
||||
int descent();
|
||||
int height();
|
||||
|
||||
void draw_image(const uchar* d, int x,int y,int w,int h, int delta=3, int ldelta=0){draw_scaled_image(d,x,y,w,h,w,h,delta,ldelta);};
|
||||
void draw_image_mono(const uchar* d, int x,int y,int w,int h, int delta=1, int ld=0){draw_scaled_image_mono(d,x,y,w,h,w,h,delta,ld);};
|
||||
void draw_image(Fl_Draw_Image_Cb call, void* data, int x,int y, int w, int h, int delta=3){draw_scaled_image(call,data, x, y, w, h, w, h, delta);};
|
||||
void draw_image_mono(Fl_Draw_Image_Cb call, void* data, int x,int y, int w, int h, int delta=1){draw_scaled_image_mono(call, data, x, y, w, h, w, h, delta);};
|
||||
|
||||
void draw(Fl_Pixmap * pxm,int XP, int YP, int WP, int HP, int cx, int cy);
|
||||
void draw(Fl_RGB_Image * rgb,int XP, int YP, int WP, int HP, int cx, int cy);
|
||||
void draw(Fl_Bitmap * bitmap,int XP, int YP, int WP, int HP, int cx, int cy);
|
||||
|
||||
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_PSfile_Device(FILE *o, int lang_level, int pages = 0); // ps (also multi-page) constructor
|
||||
//Fl_PSfile_Device(FILE *o, int lang_level, int x, int y, int w, int h); //eps constructor
|
||||
void interpolate(int i){interpolate_=i;};
|
||||
int interpolate(){return interpolate_;}
|
||||
|
||||
void page(double pw, double ph, int media = 0);
|
||||
void page(int format);
|
||||
|
||||
void place(double x, double y, double tx, double ty, double scale = 1);
|
||||
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);
|
||||
void translate(int x, int y);
|
||||
void untranslate(void);
|
||||
int end_page (void);
|
||||
void end_job (void);
|
||||
|
||||
#endif // FL_DOXYGEN
|
||||
|
||||
/**
|
||||
@brief The constructor.
|
||||
*/
|
||||
Fl_PSfile_Device(void);
|
||||
|
||||
/**
|
||||
@brief The destructor.
|
||||
*/
|
||||
virtual ~Fl_PSfile_Device();
|
||||
|
||||
/**
|
||||
@brief Begins the session where all graphics will go to a local PostScript file.
|
||||
*
|
||||
Opens a file dialog to select an output PostScript file.
|
||||
@param pagecount The total number of pages to be created.
|
||||
@param format Desired page format.
|
||||
@param layout Desired page layout.
|
||||
@return 0 iff OK
|
||||
*/
|
||||
int start_job(int pagecount, enum Page_Format format = A4, enum Page_Layout layout = PORTRAIT);
|
||||
};
|
||||
|
||||
#ifndef FL_DOXYGEN
|
||||
|
||||
#ifdef __APPLE__
|
||||
class Fl_Printer : public Fl_Quartz_Printer {
|
||||
};
|
||||
#elif defined(WIN32)
|
||||
class Fl_Printer : public Fl_GDI_Printer {
|
||||
};
|
||||
#else
|
||||
class Fl_PS_Printer : public Fl_PSfile_Device {
|
||||
public:
|
||||
Fl_PS_Printer(void) {};
|
||||
~Fl_PS_Printer(void) {};
|
||||
int start_job(int pages, int *firstpage = NULL, int *lastpage = NULL);
|
||||
};
|
||||
class Fl_Printer : public Fl_PS_Printer {
|
||||
};
|
||||
|
||||
#endif // __APPLE__
|
||||
|
||||
#endif // FL_DOXYGEN
|
||||
|
||||
#endif // Fl_Printer_H
|
||||
|
153
FL/fl_draw.H
153
FL/fl_draw.H
@ -35,21 +35,25 @@
|
||||
|
||||
#include "Enumerations.H" // for the color names
|
||||
#include "Fl_Window.H" // for fl_set_spot()
|
||||
#include "Fl_Device.H"
|
||||
|
||||
// Image class...
|
||||
class Fl_Image;
|
||||
|
||||
// Label flags...
|
||||
FL_EXPORT extern char fl_draw_shortcut;
|
||||
extern Fl_Device *fl_device;
|
||||
|
||||
/** \addtogroup fl_attributes
|
||||
@{
|
||||
*/
|
||||
// Colors:
|
||||
FL_EXPORT void fl_color(Fl_Color i); // select indexed color
|
||||
//FL_EXPORT void fl_color(Fl_Color i); // select indexed color
|
||||
inline void fl_color(Fl_Color i) {fl_device->color(i); }; // select indexed color
|
||||
/** for back compatibility - use fl_color(Fl_Color c) instead */
|
||||
inline void fl_color(int c) {fl_color((Fl_Color)c);}
|
||||
FL_EXPORT void fl_color(uchar r, uchar g, uchar b); // select actual color
|
||||
//FL_EXPORT void fl_color(uchar r, uchar g, uchar b); // select actual color
|
||||
inline void fl_color(uchar r, uchar g, uchar b) {fl_device->color(r,g,b); }; // select actual color
|
||||
extern FL_EXPORT Fl_Color fl_color_;
|
||||
/**
|
||||
Returns the last fl_color() that was set.
|
||||
@ -62,19 +66,27 @@ inline Fl_Color fl_color() {return fl_color_;}
|
||||
@{
|
||||
*/
|
||||
// clip:
|
||||
FL_EXPORT void fl_push_clip(int x, int y, int w, int h);
|
||||
//FL_EXPORT void fl_push_clip(int x, int y, int w, int h);
|
||||
inline void fl_push_clip(int x, int y, int w, int h) {fl_device->push_clip(x,y,w,h); };
|
||||
/** The fl_clip() name is deprecated and will be removed from future releases */
|
||||
#define fl_clip fl_push_clip
|
||||
FL_EXPORT void fl_push_no_clip();
|
||||
FL_EXPORT void fl_pop_clip();
|
||||
FL_EXPORT int fl_not_clipped(int x, int y, int w, int h);
|
||||
FL_EXPORT int fl_clip_box(int, int, int, int, int& x, int& y, int& w, int& h);
|
||||
//FL_EXPORT void fl_push_no_clip();
|
||||
inline void fl_push_no_clip() {fl_device->push_no_clip(); };
|
||||
//FL_EXPORT void fl_pop_clip();
|
||||
inline void fl_pop_clip() {fl_device->pop_clip(); };
|
||||
//FL_EXPORT int fl_not_clipped(int x, int y, int w, int h);
|
||||
inline int fl_not_clipped(int x, int y, int w, int h) {return fl_device->not_clipped(x,y,w,h); };
|
||||
//FL_EXPORT int fl_clip_box(int, int, int, int, int& x, int& y, int& w, int& h);
|
||||
inline int fl_clip_box(int x , int y, int w, int h, int& X, int& Y, int& W, int& H)
|
||||
{return fl_device->clip_box(x,y,w,h,X,Y,W,H); };
|
||||
|
||||
// points:
|
||||
FL_EXPORT void fl_point(int x, int y);
|
||||
//FL_EXPORT void fl_point(int x, int y);
|
||||
inline void fl_point(int x, int y) { fl_device->point(x,y); };
|
||||
|
||||
// line type:
|
||||
FL_EXPORT void fl_line_style(int style, int width=0, char* dashes=0);
|
||||
//FL_EXPORT void fl_line_style(int style, int width=0, char* dashes=0);
|
||||
inline void fl_line_style(int style, int width=0, char* dashes=0) {fl_device->line_style(style,width,dashes); };
|
||||
enum {
|
||||
FL_SOLID = 0, ///< line style: <tt>___________</tt>
|
||||
FL_DASH = 1, ///< line style: <tt>_ _ _ _ _ _</tt>
|
||||
@ -92,10 +104,12 @@ enum {
|
||||
};
|
||||
|
||||
// rectangles tweaked to exactly fill the pixel rectangle:
|
||||
FL_EXPORT void fl_rect(int x, int y, int w, int h);
|
||||
//FL_EXPORT void fl_rect(int x, int y, int w, int h);
|
||||
inline void fl_rect(int x, int y, int w, int h) { fl_device->rect(x,y,w,h); };
|
||||
/** Draws a 1-pixel border \e inside the given bounding box */
|
||||
inline void fl_rect(int x, int y, int w, int h, Fl_Color c) {fl_color(c); fl_rect(x,y,w,h);}
|
||||
FL_EXPORT void fl_rectf(int x, int y, int w, int h);
|
||||
//FL_EXPORT void fl_rectf(int x, int y, int w, int h);
|
||||
inline void fl_rectf(int x, int y, int w, int h) { fl_device->rectf(x,y,w,h); };
|
||||
/** Colors a rectangle that exactly fills the given bounding box */
|
||||
inline void fl_rectf(int x, int y, int w, int h, Fl_Color c) {fl_color(c); fl_rectf(x,y,w,h);}
|
||||
|
||||
@ -109,30 +123,46 @@ inline void fl_rectf(int x, int y, int w, int h, Fl_Color c) {fl_color(c); fl_re
|
||||
FL_EXPORT void fl_rectf(int x, int y, int w, int h, uchar r, uchar g, uchar b);
|
||||
|
||||
// line segments:
|
||||
FL_EXPORT void fl_line(int x, int y, int x1, int y1);
|
||||
FL_EXPORT void fl_line(int x, int y, int x1, int y1, int x2, int y2);
|
||||
//FL_EXPORT void fl_line(int x, int y, int x1, int y1);
|
||||
inline void fl_line(int x, int y, int x1, int y1) {fl_device->line(x,y,x1,y1); };
|
||||
//FL_EXPORT void fl_line(int x, int y, int x1, int y1, int x2, int y2);
|
||||
inline void fl_line(int x, int y, int x1, int y1, int x2, int y2) {fl_device->line(x,y,x1,y1,x2,y2); };
|
||||
|
||||
// closed line segments:
|
||||
FL_EXPORT void fl_loop(int x, int y, int x1, int y1, int x2, int y2);
|
||||
FL_EXPORT void fl_loop(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3);
|
||||
//FL_EXPORT void fl_loop(int x, int y, int x1, int y1, int x2, int y2);
|
||||
inline void fl_loop(int x, int y, int x1, int y1, int x2, int y2) {fl_device->loop(x,y,x1,y1,x2,y2); };
|
||||
//FL_EXPORT void fl_loop(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3);
|
||||
inline void fl_loop(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3)
|
||||
{fl_device->loop(x,y,x1,y1,x2,y2,x3,y3); };
|
||||
|
||||
// filled polygons
|
||||
FL_EXPORT void fl_polygon(int x, int y, int x1, int y1, int x2, int y2);
|
||||
FL_EXPORT void fl_polygon(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3);
|
||||
//FL_EXPORT void fl_polygon(int x, int y, int x1, int y1, int x2, int y2);
|
||||
inline void fl_polygon(int x, int y, int x1, int y1, int x2, int y2) {fl_device->polygon(x,y,x1,y1,x2,y2); };
|
||||
//FL_EXPORT void fl_polygon(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3);
|
||||
inline void fl_polygon(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3)
|
||||
{ fl_device->polygon(x,y,x1,y1,x2,y2,x3,y3); };
|
||||
|
||||
// draw rectilinear lines, horizontal segment first:
|
||||
FL_EXPORT void fl_xyline(int x, int y, int x1);
|
||||
FL_EXPORT void fl_xyline(int x, int y, int x1, int y2);
|
||||
FL_EXPORT void fl_xyline(int x, int y, int x1, int y2, int x3);
|
||||
//FL_EXPORT void fl_xyline(int x, int y, int x1);
|
||||
inline void fl_xyline(int x, int y, int x1) {fl_device->xyline(x,y,x1);};
|
||||
//FL_EXPORT void fl_xyline(int x, int y, int x1, int y2);
|
||||
inline void fl_xyline(int x, int y, int x1, int y2) {fl_device->xyline(x,y,x1,y2);};
|
||||
//FL_EXPORT void fl_xyline(int x, int y, int x1, int y2, int x3);
|
||||
inline void fl_xyline(int x, int y, int x1, int y2, int x3) {fl_device->xyline(x,y,x1,y2,x3);};
|
||||
|
||||
// draw rectilinear lines, vertical segment first:
|
||||
FL_EXPORT void fl_yxline(int x, int y, int y1);
|
||||
FL_EXPORT void fl_yxline(int x, int y, int y1, int x2);
|
||||
FL_EXPORT void fl_yxline(int x, int y, int y1, int x2, int y3);
|
||||
//FL_EXPORT void fl_yxline(int x, int y, int y1);
|
||||
inline void fl_yxline(int x, int y, int y1) {fl_device->yxline(x,y,y1);};
|
||||
//FL_EXPORT void fl_yxline(int x, int y, int y1, int x2);
|
||||
inline void fl_yxline(int x, int y, int y1, int x2) {fl_device->yxline(x,y,y1,x2);};
|
||||
//FL_EXPORT void fl_yxline(int x, int y, int y1, int x2, int y3);
|
||||
inline void fl_yxline(int x, int y, int y1, int x2, int y3) {fl_device->yxline(x,y,y1,x2,y3);};
|
||||
|
||||
// circular lines and pie slices (code in fl_arci.C):
|
||||
FL_EXPORT void fl_arc(int x, int y, int w, int h, double a1, double a2);
|
||||
FL_EXPORT void fl_pie(int x, int y, int w, int h, double a1, double a2);
|
||||
//FL_EXPORT void fl_arc(int x, int y, int w, int h, double a1, double a2);
|
||||
inline void fl_arc(int x, int y, int w, int h, double a1, double a2) {fl_device->arc(x,y,w,h,a1,a2); };
|
||||
//FL_EXPORT void fl_pie(int x, int y, int w, int h, double a1, double a2);
|
||||
inline void fl_pie(int x, int y, int w, int h, double a1, double a2) {fl_device->pie(x,y,w,h,a1,a2); };
|
||||
/** fl_chord declaration is a place holder - the function does not yet exist */
|
||||
FL_EXPORT void fl_chord(int x, int y, int w, int h, double a1, double a2); // nyi
|
||||
|
||||
@ -144,27 +174,44 @@ FL_EXPORT void fl_scale(double x);
|
||||
FL_EXPORT void fl_translate(double x, double y);
|
||||
FL_EXPORT void fl_rotate(double d);
|
||||
FL_EXPORT void fl_mult_matrix(double a, double b, double c, double d, double x,double y);
|
||||
FL_EXPORT void fl_begin_points();
|
||||
FL_EXPORT void fl_begin_line();
|
||||
FL_EXPORT void fl_begin_loop();
|
||||
FL_EXPORT void fl_begin_polygon();
|
||||
FL_EXPORT void fl_vertex(double x, double y);
|
||||
FL_EXPORT void fl_curve(double X0, double Y0, double X1, double Y1, double X2, double Y2, double X3, double Y3);
|
||||
FL_EXPORT void fl_arc(double x, double y, double r, double start, double a);
|
||||
FL_EXPORT void fl_circle(double x, double y, double r);
|
||||
FL_EXPORT void fl_end_points();
|
||||
FL_EXPORT void fl_end_line();
|
||||
FL_EXPORT void fl_end_loop();
|
||||
FL_EXPORT void fl_end_polygon();
|
||||
FL_EXPORT void fl_begin_complex_polygon();
|
||||
FL_EXPORT void fl_gap();
|
||||
FL_EXPORT void fl_end_complex_polygon();
|
||||
//FL_EXPORT void fl_begin_points();
|
||||
inline void fl_begin_points() {fl_device->begin_points(); };
|
||||
//FL_EXPORT void fl_begin_line();
|
||||
inline void fl_begin_line() {fl_device->begin_line(); };
|
||||
//FL_EXPORT void fl_begin_loop();
|
||||
inline void fl_begin_loop() {fl_device->begin_loop(); };
|
||||
//FL_EXPORT void fl_begin_polygon();
|
||||
inline void fl_begin_polygon() {fl_device->begin_polygon(); };
|
||||
//FL_EXPORT void fl_vertex(double x, double y);
|
||||
inline void fl_vertex(double x, double y) {fl_device->vertex(x,y); };
|
||||
//FL_EXPORT void fl_curve(double X0, double Y0, double X1, double Y1, double X2, double Y2, double X3, double Y3);
|
||||
inline void fl_curve(double X0, double Y0, double X1, double Y1, double X2, double Y2, double X3, double Y3)
|
||||
{fl_device->curve(X0,Y0,X1,Y1,X2,Y2,X3,Y3); };
|
||||
//FL_EXPORT void fl_arc(double x, double y, double r, double start, double a);
|
||||
inline void fl_arc(double x, double y, double r, double start, double a) {fl_device->arc(x,y,r,start,a); };
|
||||
//FL_EXPORT void fl_circle(double x, double y, double r);
|
||||
inline void fl_circle(double x, double y, double r) {fl_device->circle(x,y,r); };
|
||||
//FL_EXPORT void fl_end_points();
|
||||
inline void fl_end_points() {fl_device->end_points(); };
|
||||
//FL_EXPORT void fl_end_line();
|
||||
inline void fl_end_line() {fl_device->end_line(); };
|
||||
//FL_EXPORT void fl_end_loop();
|
||||
inline void fl_end_loop() {fl_device->end_loop(); };
|
||||
//FL_EXPORT void fl_end_polygon();
|
||||
inline void fl_end_polygon() {fl_device->end_polygon(); };
|
||||
//FL_EXPORT void fl_begin_complex_polygon();
|
||||
inline void fl_begin_complex_polygon() {fl_device->begin_complex_polygon(); };
|
||||
//FL_EXPORT void fl_gap();
|
||||
inline void fl_gap() {fl_device->gap(); };
|
||||
//FL_EXPORT void fl_end_complex_polygon();
|
||||
inline void fl_end_complex_polygon() {fl_device->end_complex_polygon(); };
|
||||
// get and use transformed positions:
|
||||
FL_EXPORT double fl_transform_x(double x, double y);
|
||||
FL_EXPORT double fl_transform_y(double x, double y);
|
||||
FL_EXPORT double fl_transform_dx(double x, double y);
|
||||
FL_EXPORT double fl_transform_dy(double x, double y);
|
||||
FL_EXPORT void fl_transformed_vertex(double x, double y);
|
||||
//FL_EXPORT void fl_transformed_vertex(double x, double y);
|
||||
inline void fl_transformed_vertex(double x, double y) {fl_device->transformed_vertex(x,y); };
|
||||
/** @} */
|
||||
|
||||
/** \addtogroup fl_attributes
|
||||
@ -181,7 +228,8 @@ FL_EXPORT void fl_transformed_vertex(double x, double y);
|
||||
*/
|
||||
|
||||
// Fonts:
|
||||
FL_EXPORT void fl_font(Fl_Font face, Fl_Fontsize size);
|
||||
//FL_EXPORT void fl_font(Fl_Font face, Fl_Fontsize size);
|
||||
inline void fl_font(Fl_Font face, Fl_Fontsize size) { fl_device->font(face,size); };
|
||||
extern FL_EXPORT Fl_Font fl_font_; ///< current font index
|
||||
|
||||
/**
|
||||
@ -276,6 +324,7 @@ FL_EXPORT const char *fl_local_to_mac_roman(const char *t, int n=-1);
|
||||
to control characters.
|
||||
*/
|
||||
FL_EXPORT void fl_draw(const char* str, int x, int y);
|
||||
FL_EXPORT void fl_draw(int angle, const char* str, int x, int y);
|
||||
/**
|
||||
Draws a nul-terminated string starting at the given location and
|
||||
rotating \p angle degrees counterclockwise.
|
||||
@ -283,16 +332,18 @@ FL_EXPORT void fl_draw(const char* str, int x, int y);
|
||||
function of the underlying OS and suported for Xft, Win32 and MacOS
|
||||
fltk subset.
|
||||
*/
|
||||
FL_EXPORT void fl_draw(int angle,const char* str, int x, int y);
|
||||
//FL_EXPORT void fl_draw(int angle,const char* str, int x, int y);
|
||||
/**
|
||||
Draws an array of \p n characters starting at the given location.
|
||||
*/
|
||||
FL_EXPORT void fl_draw(const char* str, int n, int x, int y);
|
||||
//FL_EXPORT void fl_draw(const char* str, int n, int x, int y);
|
||||
inline void fl_draw(const char* str, int n, int x, int y) {fl_device->draw(str,n,x,y); };
|
||||
/**
|
||||
Draws an array of \p n characters starting at the given location,
|
||||
rotating \p angle degrees counterclockwise.
|
||||
*/
|
||||
FL_EXPORT void fl_draw(int angle,const char* str, int n, int x, int y);
|
||||
//FL_EXPORT void fl_draw(int angle,const char* str, int n, int x, int y);
|
||||
inline void fl_draw(int angle,const char* str, int n, int x, int y) {fl_device->draw(angle,str,n,x,y); };
|
||||
/**
|
||||
Draws an array of \p n characters right to left starting at given location.
|
||||
*/
|
||||
@ -356,13 +407,17 @@ typedef void (*Fl_Draw_Image_Cb)(void* data,int x,int y,int w,uchar* buf);
|
||||
any visual of 8 bits or less, and all common TrueColor visuals up
|
||||
to 32 bits.
|
||||
*/
|
||||
FL_EXPORT void fl_draw_image(const uchar* buf, int X,int Y,int W,int H, int D=3, int L=0);
|
||||
//FL_EXPORT void fl_draw_image(const uchar* buf, int X,int Y,int W,int H, int D=3, int L=0);
|
||||
inline void fl_draw_image(const uchar* buf, int X,int Y,int W,int H, int D=3, int L=0)
|
||||
{ fl_device->draw_image(buf, X, Y, W, H, D, L); };
|
||||
|
||||
/**
|
||||
Draw a gray-scale (1 channel) image.
|
||||
\see fl_draw_image(const uchar* buf, int X,int Y,int W,int H, int D, int L)
|
||||
*/
|
||||
FL_EXPORT void fl_draw_image_mono(const uchar* buf, int X,int Y,int W,int H, int D=1, int L=0);
|
||||
//FL_EXPORT void fl_draw_image_mono(const uchar* buf, int X,int Y,int W,int H, int D=1, int L=0);
|
||||
inline void fl_draw_image_mono(const uchar* buf, int X,int Y,int W,int H, int D=1, int L=0)
|
||||
{ fl_device->draw_image_mono(buf, X, Y, W, H, D, L); };
|
||||
|
||||
/**
|
||||
Draw image using callback function to generate image data.
|
||||
@ -396,7 +451,9 @@ FL_EXPORT void fl_draw_image_mono(const uchar* buf, int X,int Y,int W,int H, int
|
||||
|
||||
If \p D is 4 or more, you must fill in the unused bytes with zero.
|
||||
*/
|
||||
FL_EXPORT void fl_draw_image(Fl_Draw_Image_Cb cb, void* data, int X,int Y,int W,int H, int D=3);
|
||||
//FL_EXPORT void fl_draw_image(Fl_Draw_Image_Cb cb, void* data, int X,int Y,int W,int H, int D=3);
|
||||
inline void fl_draw_image(Fl_Draw_Image_Cb cb, void* data, int X,int Y,int W,int H, int D=3)
|
||||
{ fl_device->draw_image(cb, data, X, Y, W, H, D); };
|
||||
|
||||
/**
|
||||
Draw gray-scale image using callback function to generate image data.
|
||||
|
6
FL/mac.H
6
FL/mac.H
@ -73,19 +73,19 @@ struct XPoint { int x, y; };
|
||||
struct XRectangle {int x, y, width, height;};
|
||||
|
||||
#ifdef __APPLE_COCOA__
|
||||
// necessary so a CGRect matches exactly what is denoted x,y,w,h for clipping purposes
|
||||
#define FL_CGRECTMAKE_COCOA(x,y,w,h) CGRectMake(x, y, w > 0 ? w - 0.9 : 0, h > 0 ? h - 0.9 : 0)
|
||||
|
||||
typedef void *Window; // this is really a pter to the subclass FLWindow of NSWindow
|
||||
typedef struct flCocoaRegion {
|
||||
int count;
|
||||
CGRect *rects;
|
||||
} *Fl_Region; // a region is the union of a series of rectangles
|
||||
extern CGRect fl_cgrectmake_cocoa(int x, int y, int w, int h);
|
||||
|
||||
inline Fl_Region XRectangleRegion(int x, int y, int w, int h) {
|
||||
Fl_Region R = (Fl_Region)malloc(sizeof(*R));
|
||||
R->count = 1;
|
||||
R->rects = (CGRect *)malloc(sizeof(CGRect));
|
||||
*(R->rects) = FL_CGRECTMAKE_COCOA(x, y, w, h);
|
||||
*(R->rects) = fl_cgrectmake_cocoa(x, y, w, h);
|
||||
return R;
|
||||
}
|
||||
inline void XDestroyRegion(Fl_Region r) {
|
||||
|
@ -45,15 +45,15 @@
|
||||
#define VK_APPS 0x5D
|
||||
#endif
|
||||
|
||||
#include <FL/Fl_Device.H>
|
||||
|
||||
// some random X equivalents
|
||||
typedef HWND Window;
|
||||
typedef POINT XPoint;
|
||||
struct XRectangle {int x, y, width, height;};
|
||||
typedef HRGN Fl_Region;
|
||||
FL_EXPORT void fl_clip_region(Fl_Region);
|
||||
inline Fl_Region XRectangleRegion(int x, int y, int w, int h) {
|
||||
return CreateRectRgn(x,y,x+w,y+h);
|
||||
}
|
||||
extern Fl_Region XRectangleRegion(int x, int y, int w, int h);
|
||||
inline void XDestroyRegion(Fl_Region r) {DeleteObject(r);}
|
||||
inline void XClipBox(Fl_Region r,XRectangle* rect) {
|
||||
RECT win_rect; GetRgnBox(r,&win_rect);
|
||||
|
260
fluid/makedepend
260
fluid/makedepend
@ -5,8 +5,8 @@ CodeEditor.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
CodeEditor.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Text_Buffer.H
|
||||
CodeEditor.o: ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H
|
||||
CodeEditor.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
CodeEditor.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
CodeEditor.o: ../FL/Fl_Text_Buffer.H
|
||||
CodeEditor.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Scrollbar.H
|
||||
CodeEditor.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H
|
||||
Fl_Function_Type.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Function_Type.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Function_Type.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Preferences.H
|
||||
@ -25,8 +25,9 @@ Fl_Function_Type.o: ../FL/Fl_File_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
|
||||
Fl_Function_Type.o: ../FL/Fl_Return_Button.H ../FL/fl_ask.H Fl_Type.h
|
||||
Fl_Function_Type.o: ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Plugin.H
|
||||
Fl_Function_Type.o: ../FL/Fl_Preferences.H Fluid_Image.h
|
||||
Fl_Function_Type.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H
|
||||
Fl_Function_Type.o: ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
|
||||
Fl_Function_Type.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Device.H
|
||||
Fl_Function_Type.o: ../FL/x.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H
|
||||
Fl_Function_Type.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
|
||||
Fl_Function_Type.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Window.H
|
||||
Fl_Function_Type.o: ../FL/Fl_Menu_Bar.H ../FL/fl_show_input.H ../FL/fl_ask.H
|
||||
Fl_Function_Type.o: ../src/flstring.h ../config.h function_panel.h
|
||||
@ -42,24 +43,25 @@ Fl_Group_Type.o: ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H
|
||||
Fl_Group_Type.o: ../FL/Fl_Widget.H ../FL/Fl_Image.H ../FL/Fl_Plugin.H
|
||||
Fl_Group_Type.o: ../FL/Fl_Preferences.H Fluid_Image.h ../FL/Fl_Shared_Image.H
|
||||
Fl_Group_Type.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Group.H
|
||||
Fl_Group_Type.o: ../FL/Fl_Tabs.H ../FL/Fl_Pack.H ../FL/Fl_Wizard.H
|
||||
Fl_Group_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H
|
||||
Fl_Group_Type.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H
|
||||
Fl_Group_Type.o: ../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H
|
||||
Fl_Group_Type.o: ../src/flstring.h ../config.h ../FL/Fl_Scroll.H
|
||||
Fl_Group_Type.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
Fl_Group_Type.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H
|
||||
Fl_Group_Type.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H
|
||||
Fl_Group_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H
|
||||
Fl_Group_Type.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Window.H
|
||||
Fl_Group_Type.o: ../FL/Fl_Menu_Bar.H ../src/flstring.h ../config.h
|
||||
Fl_Group_Type.o: ../FL/Fl_Scroll.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
Fl_Group_Type.o: ../FL/Fl_Valuator.H
|
||||
Fl_Menu_Type.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Menu_Type.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Menu_Type.o: ../FL/fl_types.h Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Image.H ../FL/Fl_Plugin.H ../FL/Fl_Preferences.H
|
||||
Fl_Menu_Type.o: Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/fl_draw.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Tabs.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H
|
||||
Fl_Menu_Type.o: alignment_panel.h ../FL/Fl_Text_Buffer.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Device.H
|
||||
Fl_Menu_Type.o: ../FL/x.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H ../FL/Fl_Group.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Window.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Menu_Bar.H alignment_panel.h ../FL/Fl_Text_Buffer.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H ../FL/Fl_Scrollbar.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H
|
||||
Fl_Menu_Type.o: ../FL/Fl_Double_Window.H ../FL/Fl_Preferences.H
|
||||
@ -75,19 +77,20 @@ Fl_Type.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Type.o: ../FL/fl_types.h ../FL/Fl_Browser_.H ../FL/Fl_Group.H
|
||||
Fl_Type.o: ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
Fl_Type.o: ../FL/Fl_Valuator.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Type.o: ../src/flstring.h ../config.h Fl_Type.h ../FL/Fl_Widget.H
|
||||
Fl_Type.o: ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
|
||||
Fl_Type.o: ../FL/Fl_Plugin.H ../FL/Fl_Preferences.H Fluid_Image.h
|
||||
Fl_Type.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H
|
||||
Fl_Type.o: ../FL/Fl_Group.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
|
||||
Fl_Type.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H
|
||||
Fl_Type.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
|
||||
Fl_Type.o: ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H undo.h ../FL/Fl_Pixmap.H
|
||||
Fl_Type.o: pixmaps/lock.xpm pixmaps/protected.xpm pixmaps/flWindow.xpm
|
||||
Fl_Type.o: pixmaps/flButton.xpm pixmaps/flCheckButton.xpm
|
||||
Fl_Type.o: pixmaps/flRoundButton.xpm pixmaps/flBox.xpm pixmaps/flGroup.xpm
|
||||
Fl_Type.o: pixmaps/flFunction.xpm pixmaps/flCode.xpm pixmaps/flCodeBlock.xpm
|
||||
Fl_Type.o: pixmaps/flComment.xpm pixmaps/flDeclaration.xpm
|
||||
Fl_Type.o: ../FL/Fl_Device.H ../FL/x.H ../src/flstring.h ../config.h
|
||||
Fl_Type.o: Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H
|
||||
Fl_Type.o: ../FL/Fl_Image.H ../FL/Fl_Plugin.H ../FL/Fl_Preferences.H
|
||||
Fl_Type.o: Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/Fl_Tabs.H
|
||||
Fl_Type.o: ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H
|
||||
Fl_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H
|
||||
Fl_Type.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H
|
||||
Fl_Type.o: ../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H undo.h
|
||||
Fl_Type.o: ../FL/Fl_Pixmap.H pixmaps/lock.xpm pixmaps/protected.xpm
|
||||
Fl_Type.o: pixmaps/flWindow.xpm pixmaps/flButton.xpm
|
||||
Fl_Type.o: pixmaps/flCheckButton.xpm pixmaps/flRoundButton.xpm
|
||||
Fl_Type.o: pixmaps/flBox.xpm pixmaps/flGroup.xpm pixmaps/flFunction.xpm
|
||||
Fl_Type.o: pixmaps/flCode.xpm pixmaps/flCodeBlock.xpm pixmaps/flComment.xpm
|
||||
Fl_Type.o: pixmaps/flData.xpm pixmaps/flDeclaration.xpm
|
||||
Fl_Type.o: pixmaps/flDeclarationBlock.xpm pixmaps/flClass.xpm
|
||||
Fl_Type.o: pixmaps/flTabs.xpm pixmaps/flInput.xpm pixmaps/flChoice.xpm
|
||||
Fl_Type.o: pixmaps/flMenuitem.xpm pixmaps/flMenubar.xpm pixmaps/flSubmenu.xpm
|
||||
@ -112,10 +115,11 @@ Fl_Widget_Type.o: Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H
|
||||
Fl_Widget_Type.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H
|
||||
Fl_Widget_Type.o: ../FL/Fl_Plugin.H ../FL/Fl_Preferences.H Fluid_Image.h
|
||||
Fl_Widget_Type.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Widget_Type.o: ../FL/Fl_Group.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H
|
||||
Fl_Widget_Type.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H
|
||||
Fl_Widget_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H
|
||||
Fl_Widget_Type.o: ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H alignment_panel.h
|
||||
Fl_Widget_Type.o: ../FL/Fl_Group.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Widget_Type.o: ../FL/Fl_Tabs.H ../FL/Fl_Pack.H ../FL/Fl_Wizard.H
|
||||
Fl_Widget_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H
|
||||
Fl_Widget_Type.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Window.H
|
||||
Fl_Widget_Type.o: ../FL/Fl_Menu_Bar.H alignment_panel.h
|
||||
Fl_Widget_Type.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H
|
||||
Fl_Widget_Type.o: ../FL/fl_draw.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
Fl_Widget_Type.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H
|
||||
@ -136,12 +140,13 @@ Fl_Window_Type.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Window_Type.o: ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Window_Type.o: ../FL/Fl_Overlay_Window.H ../FL/Fl_Double_Window.H
|
||||
Fl_Window_Type.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
Fl_Window_Type.o: ../FL/fl_message.H ../FL/fl_ask.H ../FL/fl_draw.H ../FL/x.H
|
||||
Fl_Window_Type.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
|
||||
Fl_Window_Type.o: ../FL/Fl_Round_Button.H ../FL/Fl_Light_Button.H
|
||||
Fl_Window_Type.o: ../FL/Fl_Button.H Fl_Widget_Type.h Fl_Type.h
|
||||
Fl_Window_Type.o: ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H
|
||||
Fl_Window_Type.o: ../FL/Fl_Plugin.H ../FL/Fl_Preferences.H Fluid_Image.h
|
||||
Fl_Window_Type.o: ../FL/fl_message.H ../FL/fl_ask.H ../FL/fl_draw.H
|
||||
Fl_Window_Type.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Menu_Item.H
|
||||
Fl_Window_Type.o: ../FL/Fl_Image.H ../FL/Fl_Round_Button.H
|
||||
Fl_Window_Type.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H Fl_Widget_Type.h
|
||||
Fl_Window_Type.o: Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H
|
||||
Fl_Window_Type.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Plugin.H
|
||||
Fl_Window_Type.o: ../FL/Fl_Preferences.H Fluid_Image.h
|
||||
Fl_Window_Type.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H
|
||||
Fl_Window_Type.o: ../FL/Fl_Group.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
|
||||
Fl_Window_Type.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H
|
||||
@ -165,18 +170,18 @@ Fluid_Image.o: ../FL/fl_types.h ../FL/Fl_Widget.H Fl_Type.h ../FL/Fl_Menu.H
|
||||
Fluid_Image.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H
|
||||
Fluid_Image.o: ../FL/Fl_Plugin.H ../FL/Fl_Preferences.H Fluid_Image.h
|
||||
Fluid_Image.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fluid_Image.o: ../FL/Fl_Group.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H
|
||||
Fluid_Image.o: ../FL/Fl_Group.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
|
||||
Fluid_Image.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H
|
||||
Fluid_Image.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
|
||||
Fluid_Image.o: ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H ../src/flstring.h
|
||||
Fluid_Image.o: ../config.h ../FL/filename.H ../FL/Fl_File_Chooser.H
|
||||
Fluid_Image.o: ../FL/Fl_Double_Window.H ../FL/Fl_Button.H
|
||||
Fluid_Image.o: ../FL/Fl_Preferences.H ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H
|
||||
Fluid_Image.o: ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
|
||||
Fluid_Image.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_File_Icon.H
|
||||
Fluid_Image.o: ../FL/Fl.H ../FL/filename.H ../FL/Fl_Box.H
|
||||
Fluid_Image.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H
|
||||
Fluid_Image.o: ../FL/Fl_Group.H ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Tabs.H
|
||||
Fluid_Image.o: ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H
|
||||
Fluid_Image.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H
|
||||
Fluid_Image.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H
|
||||
Fluid_Image.o: ../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H
|
||||
Fluid_Image.o: ../src/flstring.h ../config.h ../FL/filename.H
|
||||
Fluid_Image.o: ../FL/Fl_File_Chooser.H ../FL/Fl_Double_Window.H
|
||||
Fluid_Image.o: ../FL/Fl_Button.H ../FL/Fl_Preferences.H ../FL/Fl_Tile.H
|
||||
Fluid_Image.o: ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
|
||||
Fluid_Image.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
Fluid_Image.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H
|
||||
Fluid_Image.o: ../FL/Fl_Box.H ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H
|
||||
Fluid_Image.o: ../FL/Fl_Button.H ../FL/Fl_File_Input.H
|
||||
Fluid_Image.o: ../FL/Fl_Return_Button.H ../FL/fl_ask.H
|
||||
about_panel.o: about_panel.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
@ -192,21 +197,23 @@ align_widget.o: ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H
|
||||
align_widget.o: ../FL/Fl_Widget.H ../FL/Fl_Image.H ../FL/Fl_Plugin.H
|
||||
align_widget.o: ../FL/Fl_Preferences.H Fluid_Image.h ../FL/Fl_Shared_Image.H
|
||||
align_widget.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Group.H
|
||||
align_widget.o: ../FL/Fl_Tabs.H ../FL/Fl_Pack.H ../FL/Fl_Group.H
|
||||
align_widget.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H
|
||||
align_widget.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H
|
||||
align_widget.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Menu_Bar.H undo.h
|
||||
align_widget.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H
|
||||
align_widget.o: ../FL/Fl_Group.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
|
||||
align_widget.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H
|
||||
align_widget.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
|
||||
align_widget.o: ../FL/Fl_Menu_Bar.H undo.h
|
||||
alignment_panel.o: alignment_panel.h ../FL/Fl.H ../FL/fl_utf8.h
|
||||
alignment_panel.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
|
||||
alignment_panel.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
alignment_panel.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H
|
||||
alignment_panel.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Group.H
|
||||
alignment_panel.o: ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
alignment_panel.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H
|
||||
alignment_panel.o: ../FL/Fl_Double_Window.H ../FL/Fl_Preferences.H
|
||||
alignment_panel.o: ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H ../FL/Fl_Button.H
|
||||
alignment_panel.o: ../FL/Fl_Tabs.H ../FL/Fl_Group.H ../FL/Fl_Box.H
|
||||
alignment_panel.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Check_Button.H
|
||||
alignment_panel.o: ../FL/Fl_Widget.H ../FL/Fl_Device.H ../FL/x.H
|
||||
alignment_panel.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
alignment_panel.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Double_Window.H
|
||||
alignment_panel.o: ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H
|
||||
alignment_panel.o: ../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Tabs.H
|
||||
alignment_panel.o: ../FL/Fl_Group.H ../FL/Fl_Box.H ../FL/Fl_Input.H
|
||||
alignment_panel.o: ../FL/Fl_Input_.H ../FL/Fl_Check_Button.H
|
||||
alignment_panel.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H
|
||||
alignment_panel.o: ../FL/Fl_Choice.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H
|
||||
alignment_panel.o: ../FL/Fl_Image.H ../FL/Fl_Spinner.H ../FL/Enumerations.H
|
||||
@ -218,14 +225,14 @@ code.o: ../FL/Fl_Export.H ../FL/fl_types.h Fl_Type.h ../FL/Fl_Widget.H
|
||||
code.o: ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H
|
||||
code.o: ../FL/Fl_Image.H ../FL/Fl_Plugin.H ../FL/Fl_Preferences.H
|
||||
code.o: Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/fl_draw.H
|
||||
code.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H
|
||||
code.o: ../FL/Fl_Group.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
|
||||
code.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H
|
||||
code.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
|
||||
code.o: ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H alignment_panel.h
|
||||
code.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H
|
||||
code.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
code.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Double_Window.H
|
||||
code.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Device.H ../FL/x.H
|
||||
code.o: ../FL/Fl_Tabs.H ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H
|
||||
code.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H
|
||||
code.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H
|
||||
code.o: ../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H
|
||||
code.o: alignment_panel.h ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H
|
||||
code.o: ../FL/fl_draw.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
code.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H ../FL/Fl_Double_Window.H
|
||||
code.o: ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H ../FL/Fl_Button.H
|
||||
code.o: ../FL/Fl_Box.H ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H
|
||||
code.o: ../FL/Fl_Button.H ../FL/Fl_Spinner.H ../FL/Enumerations.H
|
||||
@ -239,20 +246,21 @@ factory.o: ../src/flstring.h ../config.h undo.h Fl_Widget_Type.h Fl_Type.h
|
||||
factory.o: ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H
|
||||
factory.o: ../FL/Fl_Plugin.H ../FL/Fl_Preferences.H Fluid_Image.h
|
||||
factory.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
factory.o: ../FL/Fl_Group.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H ../FL/Fl_Wizard.H
|
||||
factory.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H
|
||||
factory.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H
|
||||
factory.o: ../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H
|
||||
factory.o: ../FL/Fl_Box.H ../FL/Fl_Button.H ../FL/Fl_Return_Button.H
|
||||
factory.o: ../FL/Fl_Button.H ../FL/Fl_Repeat_Button.H ../FL/Fl.H
|
||||
factory.o: ../FL/Fl_Light_Button.H ../FL/Fl_Check_Button.H
|
||||
factory.o: ../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H ../FL/Fl_Browser.H
|
||||
factory.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
factory.o: ../FL/Fl_Valuator.H ../FL/Fl_Check_Browser.H
|
||||
factory.o: ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H ../FL/Fl_File_Icon.H
|
||||
factory.o: ../FL/filename.H ../FL/Fl_Counter.H ../FL/Fl_Spinner.H
|
||||
factory.o: ../FL/Enumerations.H ../FL/Fl_File_Input.H ../FL/Fl_Text_Display.H
|
||||
factory.o: ../FL/fl_draw.H ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Editor.H
|
||||
factory.o: ../FL/Fl_Group.H ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Tabs.H
|
||||
factory.o: ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
|
||||
factory.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H
|
||||
factory.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
|
||||
factory.o: ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H ../FL/Fl_Box.H
|
||||
factory.o: ../FL/Fl_Button.H ../FL/Fl_Return_Button.H ../FL/Fl_Button.H
|
||||
factory.o: ../FL/Fl_Repeat_Button.H ../FL/Fl.H ../FL/Fl_Light_Button.H
|
||||
factory.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H
|
||||
factory.o: ../FL/Fl_Round_Button.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
|
||||
factory.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
factory.o: ../FL/Fl_Check_Browser.H ../FL/Fl_File_Browser.H
|
||||
factory.o: ../FL/Fl_Browser.H ../FL/Fl_File_Icon.H ../FL/filename.H
|
||||
factory.o: ../FL/Fl_Counter.H ../FL/Fl_Spinner.H ../FL/Enumerations.H
|
||||
factory.o: ../FL/Fl_File_Input.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H
|
||||
factory.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Editor.H
|
||||
factory.o: ../FL/Fl_Text_Display.H ../FL/Fl_Clock.H ../FL/Fl_Help_View.H
|
||||
factory.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Progress.H ../FL/Fl_Adjuster.H
|
||||
factory.o: ../FL/Fl_Dial.H ../FL/Fl_Roller.H ../FL/Fl_Scrollbar.H
|
||||
@ -264,8 +272,8 @@ file.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
|
||||
file.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
file.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H
|
||||
file.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
file.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
file.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Double_Window.H
|
||||
file.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
file.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H ../FL/Fl_Double_Window.H
|
||||
file.o: ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H
|
||||
file.o: ../FL/Fl_Button.H ../FL/Fl_Tabs.H ../FL/Fl_Group.H ../FL/Fl_Box.H
|
||||
file.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Check_Button.H
|
||||
@ -285,27 +293,28 @@ fluid.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Box.H ../FL/Fl_Button.H
|
||||
fluid.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/Fl_Help_Dialog.H
|
||||
fluid.o: ../FL/Fl_Group.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
|
||||
fluid.o: ../FL/Fl_Help_View.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
fluid.o: ../FL/Fl_Valuator.H ../FL/fl_draw.H ../FL/Fl_Shared_Image.H
|
||||
fluid.o: ../FL/Fl_Hold_Browser.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
|
||||
fluid.o: ../FL/Fl_Image.H ../FL/Fl_Menu_Bar.H ../FL/Fl_Menu_.H
|
||||
fluid.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Plugin.H ../FL/Fl_Preferences.H
|
||||
fluid.o: ../FL/fl_ask.H ../FL/fl_draw.H ../FL/Fl_File_Chooser.H
|
||||
fluid.o: ../FL/Fl_Choice.H ../FL/Fl_Menu_Button.H ../FL/Fl_Preferences.H
|
||||
fluid.o: ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H ../FL/Fl_File_Icon.H
|
||||
fluid.o: ../FL/filename.H ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H
|
||||
fluid.o: ../FL/Fl_Button.H ../FL/Fl_File_Input.H ../FL/Fl_Return_Button.H
|
||||
fluid.o: ../FL/fl_message.H ../FL/fl_ask.H ../FL/filename.H ../src/flstring.h
|
||||
fluid.o: ../config.h alignment_panel.h ../FL/Fl_Text_Buffer.H
|
||||
fluid.o: ../FL/Fl_Text_Display.H ../FL/Fl_Text_Buffer.H ../FL/Fl_Tooltip.H
|
||||
fluid.o: ../FL/Fl_Widget.H ../FL/Fl_Tabs.H ../FL/Fl_Spinner.H
|
||||
fluid.o: ../FL/Enumerations.H ../FL/Fl_Repeat_Button.H
|
||||
fluid.o: ../FL/Fl_Round_Button.H function_panel.h ../FL/Fl_Light_Button.H
|
||||
fluid.o: ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H CodeEditor.h
|
||||
fluid.o: ../FL/Fl_Window.H template_panel.h ../FL/Fl_Browser.H
|
||||
fluid.o: print_panel.cxx print_panel.h ../FL/Fl_Progress.H ../FL/Fl_Pixmap.H
|
||||
fluid.o: about_panel.h undo.h Fl_Type.h ../FL/Fl_Menu.H Fluid_Image.h
|
||||
fluid.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Pack.H ../FL/Fl_Wizard.H
|
||||
fluid.o: ../FL/Fl_Menu_.H ../FL/Fl_Input_Choice.H
|
||||
fluid.o: ../FL/Fl_Valuator.H ../FL/fl_draw.H ../FL/Fl_Device.H ../FL/x.H
|
||||
fluid.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Hold_Browser.H ../FL/Fl_Browser.H
|
||||
fluid.o: ../FL/Fl_Browser_.H ../FL/Fl_Image.H ../FL/Fl_Menu_Bar.H
|
||||
fluid.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Plugin.H
|
||||
fluid.o: ../FL/Fl_Preferences.H ../FL/fl_ask.H ../FL/fl_draw.H
|
||||
fluid.o: ../FL/Fl_File_Chooser.H ../FL/Fl_Choice.H ../FL/Fl_Menu_Button.H
|
||||
fluid.o: ../FL/Fl_Preferences.H ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H
|
||||
fluid.o: ../FL/Fl_File_Icon.H ../FL/filename.H ../FL/Fl_Check_Button.H
|
||||
fluid.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_File_Input.H
|
||||
fluid.o: ../FL/Fl_Return_Button.H ../FL/fl_message.H ../FL/fl_ask.H
|
||||
fluid.o: ../FL/filename.H ../src/flstring.h ../config.h alignment_panel.h
|
||||
fluid.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H
|
||||
fluid.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H
|
||||
fluid.o: ../FL/Fl_Tabs.H ../FL/Fl_Spinner.H ../FL/Enumerations.H
|
||||
fluid.o: ../FL/Fl_Repeat_Button.H ../FL/Fl_Round_Button.H function_panel.h
|
||||
fluid.o: ../FL/Fl_Light_Button.H ../FL/Fl_Text_Editor.H
|
||||
fluid.o: ../FL/Fl_Text_Display.H CodeEditor.h ../FL/Fl_Window.H
|
||||
fluid.o: template_panel.h ../FL/Fl_Browser.H print_panel.cxx print_panel.h
|
||||
fluid.o: ../FL/Fl_Progress.H ../FL/Fl_Pixmap.H about_panel.h undo.h Fl_Type.h
|
||||
fluid.o: ../FL/Fl_Menu.H Fluid_Image.h ../FL/Fl_Shared_Image.H
|
||||
fluid.o: ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
|
||||
fluid.o: ../FL/Fl_Input_Choice.H
|
||||
function_panel.o: function_panel.h ../FL/Fl.H ../FL/fl_utf8.h
|
||||
function_panel.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
|
||||
function_panel.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
@ -315,15 +324,16 @@ function_panel.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
|
||||
function_panel.o: ../FL/Fl_Light_Button.H ../FL/Fl_Box.H ../FL/Fl_Input.H
|
||||
function_panel.o: ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H
|
||||
function_panel.o: ../FL/Fl_Button.H ../FL/Fl_Button.H ../FL/Fl_Text_Editor.H
|
||||
function_panel.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H
|
||||
function_panel.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
function_panel.o: ../FL/Fl_Text_Buffer.H CodeEditor.h ../FL/Fl_Text_Buffer.H
|
||||
function_panel.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Window.H ../FL/Fl_Tabs.H
|
||||
function_panel.o: ../FL/Fl_Pixmap.H Fl_Type.h ../FL/Fl_Widget.H
|
||||
function_panel.o: ../FL/Fl_Menu.H ../FL/Fl_Plugin.H ../FL/Fl_Preferences.H
|
||||
function_panel.o: Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/fl_draw.H
|
||||
function_panel.o: ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
|
||||
function_panel.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Menu_Bar.H undo.h
|
||||
function_panel.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H ../FL/Fl_Device.H
|
||||
function_panel.o: ../FL/x.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
function_panel.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H CodeEditor.h
|
||||
function_panel.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Menu_Button.H
|
||||
function_panel.o: ../FL/Fl_Window.H ../FL/Fl_Tabs.H ../FL/Fl_Pixmap.H
|
||||
function_panel.o: Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H
|
||||
function_panel.o: ../FL/Fl_Plugin.H ../FL/Fl_Preferences.H Fluid_Image.h
|
||||
function_panel.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Pack.H
|
||||
function_panel.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Input_Choice.H
|
||||
function_panel.o: ../FL/Fl_Menu_Bar.H undo.h
|
||||
template_panel.o: template_panel.h ../FL/Fl.H ../FL/fl_utf8.h
|
||||
template_panel.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
|
||||
template_panel.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
@ -341,12 +351,13 @@ undo.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
undo.o: Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H
|
||||
undo.o: ../FL/Fl_Widget.H ../FL/Fl_Image.H ../FL/Fl_Plugin.H
|
||||
undo.o: ../FL/Fl_Preferences.H Fluid_Image.h ../FL/Fl_Shared_Image.H
|
||||
undo.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Tabs.H
|
||||
undo.o: ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
|
||||
undo.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H
|
||||
undo.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
|
||||
undo.o: ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H undo.h ../FL/Fl_Preferences.H
|
||||
undo.o: ../src/flstring.h ../config.h
|
||||
undo.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Device.H
|
||||
undo.o: ../FL/x.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H ../FL/Fl_Group.H
|
||||
undo.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H
|
||||
undo.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H
|
||||
undo.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Window.H
|
||||
undo.o: ../FL/Fl_Menu_Bar.H undo.h ../FL/Fl_Preferences.H ../src/flstring.h
|
||||
undo.o: ../config.h
|
||||
widget_panel.o: widget_panel.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
widget_panel.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
widget_panel.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Double_Window.H
|
||||
@ -357,6 +368,7 @@ widget_panel.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/Fl_Button.H
|
||||
widget_panel.o: ../FL/Fl_Box.H ../FL/Fl_Value_Input.H ../FL/Fl_Valuator.H
|
||||
widget_panel.o: ../FL/Fl_Input.H ../FL/Fl_Light_Button.H Shortcut_Button.h
|
||||
widget_panel.o: CodeEditor.h ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Editor.H
|
||||
widget_panel.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H ../FL/Fl_Scrollbar.H
|
||||
widget_panel.o: ../FL/Fl_Slider.H ../FL/Fl_Text_Buffer.H
|
||||
widget_panel.o: ../FL/Fl_Return_Button.H ../FL/Fl_Button.H
|
||||
widget_panel.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H ../FL/Fl_Device.H
|
||||
widget_panel.o: ../FL/x.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
widget_panel.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Return_Button.H
|
||||
widget_panel.o: ../FL/Fl_Button.H
|
||||
|
@ -156,6 +156,8 @@ UNINSTALL_DESKTOP = @UNINSTALL_DESKTOP@
|
||||
$(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
|
||||
|
@ -1474,7 +1474,7 @@ void Fl_Widget::damage(uchar fl, int X, int Y, int W, int H) {
|
||||
XDestroyRegion(R);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#ifdef __APPLE_COCOA__
|
||||
CGRect arg = FL_CGRECTMAKE_COCOA(X, Y, W, H);
|
||||
CGRect arg = fl_cgrectmake_cocoa(X, Y, W, H);
|
||||
int j; // don't add a rectangle totally inside the Fl_Region
|
||||
for(j = 0; j < i->region->count; j++) {
|
||||
if(CGRectContainsRect(i->region->rects[j], arg)) break;
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include <FL/Fl_Widget.H>
|
||||
#include <FL/Fl_Menu_Item.H>
|
||||
#include <FL/Fl_Bitmap.H>
|
||||
#include <FL/Fl_Printer.H>
|
||||
#include "flstring.h"
|
||||
|
||||
#if defined(__APPLE_QUARTZ__)
|
||||
@ -264,6 +265,10 @@ Fl_Bitmask fl_create_alphamask(int w, int h, int d, int ld, const uchar *array)
|
||||
}
|
||||
|
||||
void Fl_Bitmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
if(fl_device->type() == Fl_Device::postscript_device) {
|
||||
((Fl_Virtual_Printer*)fl_device)->draw(this, XP, YP, WP, HP, cx, cy);
|
||||
return;
|
||||
}
|
||||
if (!array) {
|
||||
draw_empty(XP, YP);
|
||||
return;
|
||||
@ -293,12 +298,51 @@ void Fl_Bitmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
#elif defined(WIN32)
|
||||
if (!id) id = fl_create_bitmap(w(), h(), array);
|
||||
|
||||
HDC tempdc = CreateCompatibleDC(fl_gc);
|
||||
int save = SaveDC(tempdc);
|
||||
SelectObject(tempdc, (HGDIOBJ)id);
|
||||
SelectObject(fl_gc, fl_brush());
|
||||
// secret bitblt code found in old MSWindows reference manual:
|
||||
BitBlt(fl_gc, X, Y, W, H, tempdc, cx, cy, 0xE20746L);
|
||||
typedef BOOL (WINAPI* fl_transp_func) (HDC,int,int,int,int,HDC,int,int,int,int,UINT);
|
||||
static fl_transp_func fl_TransparentBlt;
|
||||
HDC tempdc;
|
||||
int save;
|
||||
BOOL use_print_algo = false;
|
||||
if (fl_device->type() == Fl_Device::gdi_printer) {
|
||||
static HMODULE hMod = NULL;
|
||||
if (!hMod) {
|
||||
hMod = LoadLibrary("MSIMG32.DLL");
|
||||
if (hMod) fl_TransparentBlt = (fl_transp_func)GetProcAddress(hMod, "TransparentBlt");
|
||||
}
|
||||
if (hMod) use_print_algo = true;
|
||||
}
|
||||
if (use_print_algo) { // algorithm for bitmap output to Fl_GDI_Printer
|
||||
Fl_Offscreen tmp_id = fl_create_offscreen(W, H);
|
||||
fl_begin_offscreen(tmp_id);
|
||||
Fl_Color save_c = fl_color(); // save bitmap's desired color
|
||||
uchar r, g, b;
|
||||
Fl::get_color(save_c, r, g, b);
|
||||
r = 255-r;
|
||||
g = 255-g;
|
||||
b = 255-b;
|
||||
Fl_Color background = fl_rgb_color(r, g, b); // a color very different from the bitmap's
|
||||
fl_color(background);
|
||||
fl_rectf(0,0,W,H); // use this color as offscreen background
|
||||
fl_color(save_c); // back to bitmap's color
|
||||
tempdc = CreateCompatibleDC(fl_gc);
|
||||
save = SaveDC(tempdc);
|
||||
SelectObject(tempdc, (HGDIOBJ)id);
|
||||
SelectObject(fl_gc, fl_brush()); // use bitmap's desired color
|
||||
BitBlt(fl_gc, 0, 0, W, H, tempdc, 0, 0, 0xE20746L); // draw bitmap to offscreen
|
||||
fl_end_offscreen(); // offscreen data is in tmp_id
|
||||
SelectObject(tempdc, (HGDIOBJ)tmp_id); // use offscreen data
|
||||
// draw it to printer context with background color as transparent
|
||||
fl_TransparentBlt(fl_gc, X,Y,W,H, tempdc, cx, cy, w(), h(), RGB(r, g, b) );
|
||||
fl_delete_offscreen(tmp_id);
|
||||
}
|
||||
else { // algorithm for bitmap output to display
|
||||
tempdc = CreateCompatibleDC(fl_gc);
|
||||
save = SaveDC(tempdc);
|
||||
SelectObject(tempdc, (HGDIOBJ)id);
|
||||
SelectObject(fl_gc, fl_brush());
|
||||
// secret bitblt code found in old MSWindows reference manual:
|
||||
BitBlt(fl_gc, X, Y, W, H, tempdc, cx, cy, 0xE20746L);
|
||||
}
|
||||
RestoreDC(tempdc, save);
|
||||
DeleteDC(tempdc);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
|
160
src/Fl_Device.cxx
Normal file
160
src/Fl_Device.cxx
Normal file
@ -0,0 +1,160 @@
|
||||
/*
|
||||
* Fl_Device.cxx
|
||||
*
|
||||
*/
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Device.H>
|
||||
#include <FL/Fl_Printer.H>
|
||||
#include <FL/fl_draw.H>
|
||||
#include <FL/Fl_Image.H>
|
||||
|
||||
extern Fl_Device *fl_device;
|
||||
|
||||
void Fl_Device::draw(Fl_Pixmap *pxm,int XP, int YP, int WP, int HP, int cx, int cy)
|
||||
{
|
||||
// presently, never gets called
|
||||
}
|
||||
|
||||
void Fl_Device::draw(Fl_Bitmap *bm,int XP, int YP, int WP, int HP, int cx, int cy)
|
||||
{
|
||||
// presently, never gets called
|
||||
}
|
||||
|
||||
void Fl_Device::draw(Fl_RGB_Image *rgb,int XP, int YP, int WP, int HP, int cx, int cy)
|
||||
{
|
||||
// presently, never gets called
|
||||
}
|
||||
|
||||
void Fl_Virtual_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_Virtual_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_Virtual_Printer::origin(int *x, int *y)
|
||||
{
|
||||
if (x) *x = x_offset;
|
||||
if (y) *y = y_offset;
|
||||
}
|
||||
|
||||
void Fl_Virtual_Printer::print_window_part(Fl_Window *win, int x, int y, int w, int h, int delta_x, int delta_y)
|
||||
{
|
||||
Fl_Device::display_device()->set_current();
|
||||
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();
|
||||
this->set_current();
|
||||
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_Virtual_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_Virtual_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;
|
||||
}
|
||||
}
|
||||
|
||||
Fl_Device *Fl_Virtual_Printer::set_current(void)
|
||||
{
|
||||
#ifdef __APPLE__
|
||||
fl_gc = (CGContextRef)gc;
|
||||
#elif defined(WIN32)
|
||||
fl_gc = (HDC)gc;
|
||||
#else
|
||||
fl_gc = (_XGC*)gc;
|
||||
#endif
|
||||
return this->Fl_Device::set_current();
|
||||
}
|
||||
|
||||
|
||||
int Fl_Virtual_Printer::start_job(int pagecount, int *frompage, int *topage) {return 1;}
|
||||
int Fl_Virtual_Printer::start_page (void) {return 1;}
|
||||
int Fl_Virtual_Printer::printable_rect(int *w, int *h) {return 1;}
|
||||
void Fl_Virtual_Printer::margins(int *left, int *top, int *right, int *bottom) {}
|
||||
void Fl_Virtual_Printer::origin(int x, int y) {}
|
||||
void Fl_Virtual_Printer::scale (float scale_x, float scale_y) {}
|
||||
void Fl_Virtual_Printer::rotate(float angle) {}
|
||||
int Fl_Virtual_Printer::end_page (void) {return 1;}
|
||||
void Fl_Virtual_Printer::end_job (void) {}
|
||||
void Fl_Virtual_Printer::translate(int x, int y) {}
|
||||
void Fl_Virtual_Printer::untranslate(void) {}
|
||||
|
||||
extern Fl_Device *fl_device;
|
||||
|
||||
Fl_Device *Fl_Device::set_current(void)
|
||||
{
|
||||
Fl_Device *current = fl_device;
|
||||
fl_device = this;
|
||||
return current;
|
||||
}
|
||||
|
||||
Fl_Device *Fl_Device::current(void)
|
||||
{
|
||||
return fl_device;
|
||||
}
|
253
src/Fl_GDI_Printer.cxx
Normal file
253
src/Fl_GDI_Printer.cxx
Normal file
@ -0,0 +1,253 @@
|
||||
/*
|
||||
* Fl_GDI_Printer.cxx
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include <FL/Fl_Printer.H>
|
||||
|
||||
|
||||
#include <FL/fl_ask.H>
|
||||
#include <math.h>
|
||||
|
||||
extern HWND fl_window;
|
||||
|
||||
Fl_GDI_Printer::Fl_GDI_Printer(void) : Fl_Virtual_Printer() {
|
||||
hPr = NULL;
|
||||
type_ = gdi_printer;
|
||||
}
|
||||
|
||||
static void WIN_SetupPrinterDeviceContext(HDC prHDC)
|
||||
{
|
||||
if ( !prHDC ) return;
|
||||
|
||||
fl_window = 0;
|
||||
fl_gc = prHDC;
|
||||
SetGraphicsMode(prHDC, GM_ADVANCED); // to allow for rotations
|
||||
SetMapMode(prHDC, MM_ANISOTROPIC);
|
||||
SetTextAlign(prHDC, TA_BASELINE|TA_LEFT);
|
||||
SetBkMode(prHDC, TRANSPARENT);
|
||||
// this matches 720 logical units to the number of device units in 10 inches of paper
|
||||
// thus the logical unit is the point (= 1/72 inch)
|
||||
SetWindowExtEx(prHDC, 720, 720, NULL);
|
||||
SetViewportExtEx(prHDC, 10*GetDeviceCaps(prHDC, LOGPIXELSX), 10*GetDeviceCaps(prHDC, LOGPIXELSY), NULL);
|
||||
}
|
||||
|
||||
|
||||
int Fl_GDI_Printer::start_job (int pagecount, int *frompage, int *topage)
|
||||
// returns 0 iff OK
|
||||
{
|
||||
DWORD commdlgerr;
|
||||
DOCINFO di;
|
||||
char docName [256];
|
||||
int err = 0;
|
||||
|
||||
abortPrint = FALSE;
|
||||
memset (&pd, 0, sizeof (PRINTDLG));
|
||||
pd.lStructSize = sizeof (PRINTDLG);
|
||||
pd.hwndOwner = GetForegroundWindow();
|
||||
pd.Flags = PD_RETURNDC | PD_USEDEVMODECOPIESANDCOLLATE | PD_NOSELECTION;
|
||||
pd.nMinPage = 1;
|
||||
pd.nMaxPage = pagecount;
|
||||
if (PrintDlg (&pd) != 0) {
|
||||
hPr = pd.hDC;
|
||||
if (hPr != NULL) {
|
||||
strcpy (docName, "FLTK");
|
||||
memset(&di, 0, sizeof(DOCINFO));
|
||||
di.cbSize = sizeof (DOCINFO);
|
||||
di.lpszDocName = (LPCSTR) docName;
|
||||
prerr = StartDoc (hPr, &di);
|
||||
if (prerr < 1) {
|
||||
abortPrint = TRUE;
|
||||
fl_alert ("StartDoc error %d", prerr);
|
||||
err = 1;
|
||||
}
|
||||
} else {
|
||||
commdlgerr = CommDlgExtendedError ();
|
||||
fl_alert ("Unable to create print context, error %lu",
|
||||
(unsigned long) commdlgerr);
|
||||
err = 1;
|
||||
}
|
||||
} else {
|
||||
err = 1;
|
||||
}
|
||||
if(!err) {
|
||||
if((pd.Flags & PD_PAGENUMS) != 0 ) {
|
||||
if (frompage) *frompage = pd.nFromPage;
|
||||
if (topage) *topage = pd.nToPage;
|
||||
}
|
||||
else {
|
||||
if (frompage) *frompage = 1;
|
||||
if (topage) *topage = pagecount;
|
||||
}
|
||||
x_offset = 0;
|
||||
y_offset = 0;
|
||||
this->set_current();
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
void Fl_GDI_Printer::end_job (void)
|
||||
{
|
||||
Fl_Device::display_device()->set_current();
|
||||
if (hPr != NULL) {
|
||||
if (! abortPrint) {
|
||||
prerr = EndDoc (hPr);
|
||||
if (prerr < 0) {
|
||||
fl_alert ("EndDoc error %d", prerr);
|
||||
}
|
||||
}
|
||||
DeleteDC (hPr);
|
||||
if (pd.hDevMode != NULL) {
|
||||
GlobalFree (pd.hDevMode);
|
||||
}
|
||||
if (pd.hDevNames != NULL) {
|
||||
GlobalFree (pd.hDevNames);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Fl_GDI_Printer::absolute_printable_rect(int *x, int *y, int *w, int *h)
|
||||
{
|
||||
POINT physPageSize;
|
||||
POINT pixelsPerInch;
|
||||
|
||||
if (hPr == NULL) return;
|
||||
SetWindowOrgEx(fl_gc, 0, 0, NULL);
|
||||
|
||||
physPageSize.x = GetDeviceCaps(hPr, HORZRES);
|
||||
physPageSize.y = GetDeviceCaps(hPr, VERTRES);
|
||||
DPtoLP(hPr, &physPageSize, 1);
|
||||
*w = physPageSize.x + 1;
|
||||
*h = physPageSize.y + 1;
|
||||
pixelsPerInch.x = GetDeviceCaps(hPr, LOGPIXELSX);
|
||||
pixelsPerInch.y = GetDeviceCaps(hPr, LOGPIXELSY);
|
||||
DPtoLP(hPr, &pixelsPerInch, 1);
|
||||
left_margin = (pixelsPerInch.x / 4);
|
||||
*w -= (pixelsPerInch.x / 2);
|
||||
top_margin = (pixelsPerInch.y / 4);
|
||||
*h -= (pixelsPerInch.y / 2);
|
||||
|
||||
*x = left_margin;
|
||||
*y = top_margin;
|
||||
origin(x_offset, y_offset);
|
||||
}
|
||||
|
||||
void Fl_GDI_Printer::margins(int *left, int *top, int *right, int *bottom)
|
||||
{
|
||||
int x, y, w, h;
|
||||
absolute_printable_rect(&x, &y, &w, &h);
|
||||
if (left) *left = x;
|
||||
if (top) *top = y;
|
||||
if (right) *right = x;
|
||||
if (bottom) *bottom = y;
|
||||
}
|
||||
|
||||
int Fl_GDI_Printer::printable_rect(int *w, int *h)
|
||||
{
|
||||
int x, y;
|
||||
absolute_printable_rect(&x, &y, w, h);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int Fl_GDI_Printer::start_page (void)
|
||||
{
|
||||
int rsult, w, h;
|
||||
|
||||
rsult = 0;
|
||||
if (hPr != NULL) {
|
||||
WIN_SetupPrinterDeviceContext (hPr);
|
||||
prerr = StartPage (hPr);
|
||||
if (prerr < 0) {
|
||||
fl_alert ("StartPage error %d", prerr);
|
||||
rsult = 1;
|
||||
}
|
||||
printable_rect(&w, &h);
|
||||
origin(0, 0);
|
||||
image_list_ = NULL;
|
||||
fl_clip_region(0);
|
||||
gc = (void *)fl_gc;
|
||||
}
|
||||
return rsult;
|
||||
}
|
||||
|
||||
void Fl_GDI_Printer::origin (int deltax, int deltay)
|
||||
{
|
||||
SetWindowOrgEx(fl_gc, - left_margin - deltax, - top_margin - deltay, NULL);
|
||||
x_offset = deltax;
|
||||
y_offset = deltay;
|
||||
}
|
||||
|
||||
void Fl_GDI_Printer::scale (float scalex, float scaley)
|
||||
{
|
||||
int w, h;
|
||||
SetWindowExtEx(fl_gc, (int)(720 / scalex + 0.5), (int)(720 / scaley + 0.5), NULL);
|
||||
printable_rect(&w, &h);
|
||||
origin(0, 0);
|
||||
}
|
||||
|
||||
void Fl_GDI_Printer::rotate (float rot_angle)
|
||||
{
|
||||
XFORM mat;
|
||||
float angle;
|
||||
angle = - rot_angle * M_PI / 180.;
|
||||
mat.eM11 = cos(angle);
|
||||
mat.eM12 = sin(angle);
|
||||
mat.eM21 = - mat.eM12;
|
||||
mat.eM22 = mat.eM11;
|
||||
mat.eDx = mat.eDy = 0;
|
||||
SetWorldTransform(fl_gc, &mat);
|
||||
}
|
||||
|
||||
int Fl_GDI_Printer::end_page (void)
|
||||
{
|
||||
int rsult;
|
||||
|
||||
rsult = 0;
|
||||
if (hPr != NULL) {
|
||||
prerr = EndPage (hPr);
|
||||
if (prerr < 0) {
|
||||
abortPrint = TRUE;
|
||||
fl_alert ("EndPage error %d", prerr);
|
||||
rsult = 1;
|
||||
}
|
||||
}
|
||||
delete_image_list();
|
||||
gc = NULL;
|
||||
return rsult;
|
||||
}
|
||||
|
||||
static int translate_stack_depth = 0;
|
||||
const int translate_stack_max = 5;
|
||||
static int translate_stack_x[translate_stack_max];
|
||||
static int translate_stack_y[translate_stack_max];
|
||||
|
||||
static void do_translate(int x, int y)
|
||||
{
|
||||
XFORM tr;
|
||||
tr.eM11 = tr.eM22 = 1;
|
||||
tr.eM12 = tr.eM21 = 0;
|
||||
tr.eDx = x;
|
||||
tr.eDy = y;
|
||||
ModifyWorldTransform(fl_gc, &tr, MWT_LEFTMULTIPLY);
|
||||
}
|
||||
|
||||
void Fl_GDI_Printer::translate (int x, int y)
|
||||
{
|
||||
do_translate(x, y);
|
||||
if (translate_stack_depth < translate_stack_max) {
|
||||
translate_stack_x[translate_stack_depth] = x;
|
||||
translate_stack_y[translate_stack_depth] = y;
|
||||
translate_stack_depth++;
|
||||
}
|
||||
}
|
||||
|
||||
void Fl_GDI_Printer::untranslate (void)
|
||||
{
|
||||
if (translate_stack_depth > 0) {
|
||||
translate_stack_depth--;
|
||||
do_translate( - translate_stack_x[translate_stack_depth], - translate_stack_y[translate_stack_depth] );
|
||||
}
|
||||
}
|
||||
|
||||
#endif // WIN32
|
||||
|
@ -315,11 +315,15 @@ GLContext fl_create_gl_context(Fl_Window* window, const Fl_Gl_Choice* g, int lay
|
||||
aglEnable( (GLContext)context, AGL_BUFFER_RECT );
|
||||
}
|
||||
#if defined(__APPLE_COCOA__)
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
aglSetWindowRef(context, MACwindowRef(window) );
|
||||
#else
|
||||
aglSetDrawable( context, GetWindowPort( MACwindowRef(window) ) );
|
||||
if (aglSetWindowRef != NULL) {
|
||||
aglSetWindowRef(context, MACwindowRef(window) );
|
||||
}
|
||||
else
|
||||
#endif
|
||||
aglSetDrawable( context, GetWindowPort( MACwindowRef(window) ) );
|
||||
|
||||
#else
|
||||
aglSetDrawable( context, GetWindowPort( fl_xid(window) ) );
|
||||
#endif
|
||||
|
82
src/Fl_Gl_Printer.cxx
Normal file
82
src/Fl_Gl_Printer.cxx
Normal file
@ -0,0 +1,82 @@
|
||||
/*
|
||||
* Fl_Gl_Printer.cxx
|
||||
*/
|
||||
|
||||
#include "FL/Fl_Gl_Printer.H"
|
||||
#include "Fl_Gl_Choice.H"
|
||||
#include "FL/Fl.H"
|
||||
#ifndef __APPLE__
|
||||
#include "FL/fl_draw.H"
|
||||
#endif
|
||||
|
||||
void Fl_Gl_Printer::print_gl_window(Fl_Gl_Window *glw, int x, int y)
|
||||
{
|
||||
#ifdef WIN32
|
||||
HDC save_gc = fl_gc;
|
||||
const int bytesperpixel = 3;
|
||||
#elif defined(__APPLE__)
|
||||
CGContextRef save_gc = fl_gc;
|
||||
const int bytesperpixel = 4;
|
||||
#else
|
||||
_XGC *save_gc = fl_gc; // FIXME Linux/Unix
|
||||
const int bytesperpixel = 3;
|
||||
#endif
|
||||
glw->redraw();
|
||||
Fl::check();
|
||||
glw->make_current();
|
||||
// select front buffer as our source for pixel data
|
||||
glReadBuffer(GL_FRONT);
|
||||
// Read OpenGL context pixels directly.
|
||||
// For extra safety, save & restore OpenGL states that are changed
|
||||
glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
|
||||
glPixelStorei(GL_PACK_ALIGNMENT, 4); /* Force 4-byte alignment */
|
||||
glPixelStorei(GL_PACK_ROW_LENGTH, 0);
|
||||
glPixelStorei(GL_PACK_SKIP_ROWS, 0);
|
||||
glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
|
||||
// Read a block of pixels from the frame buffer
|
||||
int mByteWidth = glw->w() * bytesperpixel;
|
||||
mByteWidth = (mByteWidth + 3) & ~3; // Align to 4 bytes
|
||||
uchar *baseAddress = (uchar*)malloc(mByteWidth * glw->h());
|
||||
glReadPixels(0, 0, glw->w(), glw->h(),
|
||||
#ifdef WIN32
|
||||
GL_RGB, GL_UNSIGNED_BYTE,
|
||||
#elif defined(__APPLE__)
|
||||
GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV,
|
||||
#else // FIXME Linux/Unix
|
||||
GL_RGB, GL_UNSIGNED_BYTE,
|
||||
#endif
|
||||
baseAddress);
|
||||
glPopClientAttrib();
|
||||
fl_gc = save_gc;
|
||||
#ifdef WIN32
|
||||
fl_draw_image(baseAddress + (glw->h() - 1) * mByteWidth, x, y , glw->w(), glw->h(), bytesperpixel, - mByteWidth);
|
||||
#elif defined(__APPLE__)
|
||||
CGColorSpaceRef cSpace = CGColorSpaceCreateWithName (kCGColorSpaceGenericRGB);
|
||||
CGContextRef bitmap = CGBitmapContextCreate(baseAddress, glw->w(), glw->h(), 8, mByteWidth, cSpace,
|
||||
#if __BIG_ENDIAN__
|
||||
kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Big /* XRGB Big Endian */);
|
||||
#else
|
||||
kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Little /* XRGB Little Endian */);
|
||||
#endif
|
||||
if(bitmap == NULL) return;
|
||||
CFRelease(cSpace);
|
||||
// Make an image out of our bitmap
|
||||
CGImageRef image = CGBitmapContextCreateImage(bitmap);
|
||||
if(image == NULL) return;
|
||||
CFRelease(bitmap);
|
||||
CGContextSaveGState(fl_gc);
|
||||
int w, h;
|
||||
this->printable_rect(&w, &h);
|
||||
CGContextTranslateCTM(fl_gc, 0, h);
|
||||
CGContextScaleCTM(fl_gc, 1.0f, -1.0f);
|
||||
CGRect rect = { { x, h - y - glw->h() }, { glw->w(), glw->h() } };
|
||||
Fl_X::q_begin_image(rect, 0, 0, glw->w(), glw->h());
|
||||
CGContextDrawImage(fl_gc, rect, image);
|
||||
Fl_X::q_end_image();
|
||||
CGContextRestoreGState(fl_gc);
|
||||
CFRelease(image);
|
||||
#else // FIXME Linux/Unix
|
||||
fl_draw_image(baseAddress + (glw->h() - 1) * mByteWidth, x, y , glw->w(), glw->h(), bytesperpixel, - mByteWidth);
|
||||
#endif // WIN32
|
||||
free(baseAddress);
|
||||
}
|
@ -31,6 +31,7 @@
|
||||
#include <FL/Fl_Widget.H>
|
||||
#include <FL/Fl_Menu_Item.H>
|
||||
#include <FL/Fl_Image.H>
|
||||
#include <FL/Fl_Printer.H>
|
||||
#include "flstring.h"
|
||||
|
||||
#ifdef WIN32
|
||||
@ -434,6 +435,10 @@ static void alpha_blend(Fl_RGB_Image *img, int X, int Y, int W, int H, int cx, i
|
||||
#endif // !WIN32 && !USE_QUARTZ
|
||||
|
||||
void Fl_RGB_Image::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
if(fl_device->type() == Fl_Device::postscript_device) {
|
||||
((Fl_Virtual_Printer*)fl_device)->draw(this, XP, YP, WP, HP, cx, cy);
|
||||
return;
|
||||
}
|
||||
// Don't draw an empty image...
|
||||
if (!d() || !array) {
|
||||
draw_empty(XP, YP);
|
||||
|
1295
src/Fl_PS_Printer.cxx
Normal file
1295
src/Fl_PS_Printer.cxx
Normal file
File diff suppressed because it is too large
Load Diff
@ -47,6 +47,7 @@
|
||||
#include <FL/Fl_Widget.H>
|
||||
#include <FL/Fl_Menu_Item.H>
|
||||
#include <FL/Fl_Pixmap.H>
|
||||
#include <FL/Fl_Printer.H>
|
||||
|
||||
#include <stdio.h>
|
||||
#include "flstring.h"
|
||||
@ -74,6 +75,10 @@ void Fl_Pixmap::measure() {
|
||||
}
|
||||
|
||||
void Fl_Pixmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
if(fl_device->type() == Fl_Device::postscript_device) {
|
||||
((Fl_Virtual_Printer*)fl_device)->draw(this, XP, YP, WP, HP, cx, cy);
|
||||
return;
|
||||
}
|
||||
// ignore empty or bad pixmap data:
|
||||
if (!data()) {
|
||||
draw_empty(XP, YP);
|
||||
@ -139,7 +144,54 @@ void Fl_Pixmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
fl_restore_clip();
|
||||
}
|
||||
#elif defined(WIN32)
|
||||
if (mask) {
|
||||
if (fl_device->type() == Fl_Device::gdi_printer) {
|
||||
typedef BOOL (WINAPI* fl_transp_func) (HDC,int,int,int,int,HDC,int,int,int,int,UINT);
|
||||
static HMODULE hMod = NULL;
|
||||
static fl_transp_func fl_TransparentBlt = NULL;
|
||||
if (!hMod) {
|
||||
hMod = LoadLibrary("MSIMG32.DLL");
|
||||
if(hMod) fl_TransparentBlt = (fl_transp_func)GetProcAddress(hMod, "TransparentBlt");
|
||||
}
|
||||
if (hMod) {
|
||||
# define UNLIKELY_RGB_COLOR 2,3,4 // a nearly black color unlikely to occur in pixmaps
|
||||
# define WIN_COLOR RGB(2,3,4)
|
||||
Fl_Offscreen tmp_id = fl_create_offscreen(w(), h());
|
||||
fl_begin_offscreen(tmp_id);
|
||||
uchar *bitmap = 0;
|
||||
fl_mask_bitmap = &bitmap;
|
||||
// draw pixmap to offscreen using the unlikely color for background
|
||||
fl_draw_pixmap(data(), 0, 0, fl_rgb_color(UNLIKELY_RGB_COLOR) );
|
||||
fl_end_offscreen();
|
||||
HDC new_gc = CreateCompatibleDC(fl_gc);
|
||||
int save = SaveDC(new_gc);
|
||||
SelectObject(new_gc, (void*)tmp_id);
|
||||
// print all of offscreen but its parts using unlikely color
|
||||
fl_TransparentBlt(fl_gc, X, Y, W, H, new_gc, cx, cy, w(), h(), WIN_COLOR );
|
||||
RestoreDC(new_gc,save);
|
||||
// This is an approximate algorithm that fails to print pixmap pixels that would use the unlikely color.
|
||||
// It can be transformed into an exact algorithm by adding the following commented out statements
|
||||
// that print pixmap one more time hiding another color (any color would fit)
|
||||
/*
|
||||
# define UNLIKELY_RGB_COLOR2 4,3,2
|
||||
# define WIN_COLOR2 RGB(4,3,2)
|
||||
{
|
||||
fl_begin_offscreen(tmp_id);
|
||||
fl_draw_pixmap(data(), 0, 0, fl_rgb_color(UNLIKELY_RGB_COLOR2) );
|
||||
fl_end_offscreen();
|
||||
}
|
||||
save = SaveDC(new_gc);
|
||||
SelectObject(new_gc, (void*)tmp_id);
|
||||
fl_TransparentBlt(fl_gc, X, Y, W, H, new_gc, cx, cy, w(), h(), WIN_COLOR2 );
|
||||
RestoreDC(new_gc,save);
|
||||
*/
|
||||
DeleteDC(new_gc);
|
||||
fl_delete_offscreen(tmp_id);
|
||||
}
|
||||
else {
|
||||
fl_copy_offscreen(X, Y, W, H, (Fl_Offscreen)id, cx, cy);
|
||||
}
|
||||
}
|
||||
else if (mask) {
|
||||
HDC new_gc = CreateCompatibleDC(fl_gc);
|
||||
int save = SaveDC(new_gc);
|
||||
SelectObject(new_gc, (void*)mask);
|
||||
|
9
src/Fl_Printer.cxx
Normal file
9
src/Fl_Printer.cxx
Normal file
@ -0,0 +1,9 @@
|
||||
#include <FL/Fl_Printer.H>
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <src/Fl_Quartz_Printer.mm>
|
||||
#elif defined(WIN32)
|
||||
#include <src/Fl_GDI_Printer.cxx>
|
||||
#endif
|
||||
|
||||
#include <src/Fl_PS_Printer.cxx>
|
273
src/Fl_Quartz_Printer.mm
Normal file
273
src/Fl_Quartz_Printer.mm
Normal file
@ -0,0 +1,273 @@
|
||||
/*
|
||||
* Fl_Quartz_Printer.mm
|
||||
*
|
||||
*/
|
||||
#ifdef __APPLE__
|
||||
#include <FL/Fl_Printer.H>
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/fl_ask.H>
|
||||
#include <FL/fl_draw.H>
|
||||
#ifdef __APPLE_COCOA__
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#endif
|
||||
|
||||
extern void fl_quartz_restore_line_style_();
|
||||
|
||||
Fl_Quartz_Printer::Fl_Quartz_Printer(void)
|
||||
{
|
||||
x_offset = 0;
|
||||
y_offset = 0;
|
||||
type_ = quartz_printer;
|
||||
}
|
||||
|
||||
int Fl_Quartz_Printer::start_job (int pagecount, int *frompage, int *topage)
|
||||
//printing using a Quartz graphics context
|
||||
//returns 0 iff OK
|
||||
{
|
||||
OSStatus status;
|
||||
Fl_X::q_release_context();
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 && defined(__APPLE_COCOA__)
|
||||
if( [NSPrintPanel instancesRespondToSelector:@selector(runModalWithPrintInfo:)] &&
|
||||
[NSPrintInfo instancesRespondToSelector:@selector(PMPrintSession)] ) {
|
||||
NSAutoreleasePool *localPool;
|
||||
localPool = [[NSAutoreleasePool alloc] init];
|
||||
NSPrintInfo *info = [NSPrintInfo sharedPrintInfo];
|
||||
NSPageLayout *layout = [NSPageLayout pageLayout];
|
||||
NSInteger retval = [layout runModal];
|
||||
if(retval == NSOKButton) {
|
||||
NSPrintPanel *panel = [NSPrintPanel printPanel];
|
||||
retval = (NSInteger)[panel runModalWithPrintInfo:info];//from 10.5 only
|
||||
}
|
||||
if(retval != NSOKButton) {
|
||||
Fl::first_window()->show();
|
||||
[localPool release];
|
||||
return 1;
|
||||
}
|
||||
printSession = (PMPrintSession)[info PMPrintSession];
|
||||
pageFormat = (PMPageFormat)[info PMPageFormat];
|
||||
printSettings = (PMPrintSettings)[info PMPrintSettings];
|
||||
UInt32 from32, to32;
|
||||
PMGetFirstPage(printSettings, &from32);
|
||||
if (frompage) *frompage = (int)from32;
|
||||
PMGetLastPage(printSettings, &to32);
|
||||
if (topage) *topage = (int)to32;
|
||||
if(topage && *topage > pagecount) *topage = pagecount;
|
||||
status = PMSessionBeginCGDocumentNoDialog(printSession, printSettings, pageFormat);
|
||||
[localPool release];
|
||||
}
|
||||
else {
|
||||
#endif
|
||||
|
||||
#if !__LP64__
|
||||
Boolean accepted;
|
||||
status = PMCreateSession(&printSession);
|
||||
if (status != noErr) return 1;
|
||||
status = PMCreatePageFormat(&pageFormat);
|
||||
status = PMSessionDefaultPageFormat(printSession, pageFormat);
|
||||
if (status != noErr) return 1;
|
||||
status = PMSessionPageSetupDialog(printSession, pageFormat, &accepted);
|
||||
if (status != noErr || !accepted) {
|
||||
Fl::first_window()->show();
|
||||
return 1;
|
||||
}
|
||||
status = PMCreatePrintSettings(&printSettings);
|
||||
if (status != noErr || printSettings == kPMNoPrintSettings) return 1;
|
||||
status = PMSessionDefaultPrintSettings (printSession, printSettings);
|
||||
if (status != noErr) return 1;
|
||||
PMSetPageRange(printSettings, 1, (UInt32)kPMPrintAllPages);
|
||||
status = PMSessionPrintDialog(printSession, printSettings, pageFormat, &accepted);
|
||||
if (!accepted) status = kPMCancel;
|
||||
if (status != noErr) {
|
||||
Fl::first_window()->show();
|
||||
return 1;
|
||||
}
|
||||
UInt32 from32, to32;
|
||||
PMGetFirstPage(printSettings, &from32);
|
||||
if (frompage) *frompage = (int)from32;
|
||||
PMGetLastPage(printSettings, &to32);
|
||||
if (topage) *topage = (int)to32;
|
||||
if(topage && *topage > pagecount) *topage = pagecount;
|
||||
CFStringRef mystring[1];
|
||||
mystring[0] = kPMGraphicsContextCoreGraphics;
|
||||
CFArrayRef array = CFArrayCreate(NULL, (const void **)mystring, 1, &kCFTypeArrayCallBacks);
|
||||
status = PMSessionSetDocumentFormatGeneration(printSession, kPMDocumentFormatDefault, array, NULL);
|
||||
CFRelease(array);
|
||||
status = PMSessionBeginDocumentNoDialog(printSession, printSettings, pageFormat);
|
||||
#endif //__LP64__
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 && defined(__APPLE_COCOA__)
|
||||
}
|
||||
#endif
|
||||
if (status != noErr) return 1;
|
||||
y_offset = x_offset = 0;
|
||||
this->set_current();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Fl_Quartz_Printer::margins(int *left, int *top, int *right, int *bottom)
|
||||
{
|
||||
PMPaper paper;
|
||||
PMGetPageFormatPaper(pageFormat, &paper);
|
||||
PMOrientation orientation;
|
||||
PMGetOrientation(pageFormat, &orientation);
|
||||
PMPaperMargins margins;
|
||||
PMPaperGetMargins(paper, &margins);
|
||||
if(orientation == kPMPortrait) {
|
||||
if (left) *left = (int)(margins.left / scale_x + 0.5);
|
||||
if (top) *top = (int)(margins.top / scale_y + 0.5);
|
||||
if (right) *right = (int)(margins.right / scale_x + 0.5);
|
||||
if (bottom) *bottom = (int)(margins.bottom / scale_y + 0.5);
|
||||
}
|
||||
else {
|
||||
if (left) *left = (int)(margins.top / scale_x + 0.5);
|
||||
if (top) *top = (int)(margins.left / scale_y + 0.5);
|
||||
if (right) *right = (int)(margins.bottom / scale_x + 0.5);
|
||||
if (bottom) *bottom = (int)(margins.right / scale_y + 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
int Fl_Quartz_Printer::printable_rect(int *w, int *h)
|
||||
//returns 0 iff OK
|
||||
{
|
||||
OSStatus status;
|
||||
PMRect pmRect;
|
||||
int x, y;
|
||||
|
||||
status = PMGetAdjustedPageRect(pageFormat, &pmRect);
|
||||
if (status != noErr) return 1;
|
||||
|
||||
x = (int)pmRect.left;
|
||||
y = (int)pmRect.top;
|
||||
*w = (int)(pmRect.right - x) / scale_x + 1;
|
||||
*h = (int)(pmRect.bottom - y) / scale_y + 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Fl_Quartz_Printer::origin(int x, int y)
|
||||
{
|
||||
x_offset = x;
|
||||
y_offset = y;
|
||||
CGContextRestoreGState(fl_gc);
|
||||
CGContextRestoreGState(fl_gc);
|
||||
CGContextSaveGState(fl_gc);
|
||||
CGContextScaleCTM(fl_gc, scale_x, scale_y);
|
||||
CGContextTranslateCTM(fl_gc, x, y);
|
||||
CGContextRotateCTM(fl_gc, angle);
|
||||
CGContextSaveGState(fl_gc);
|
||||
}
|
||||
|
||||
void Fl_Quartz_Printer::scale (float s_x, float s_y)
|
||||
{
|
||||
scale_x = s_x;
|
||||
scale_y = s_y;
|
||||
CGContextRestoreGState(fl_gc);
|
||||
CGContextRestoreGState(fl_gc);
|
||||
CGContextSaveGState(fl_gc);
|
||||
CGContextScaleCTM(fl_gc, scale_x, scale_y);
|
||||
CGContextRotateCTM(fl_gc, angle);
|
||||
x_offset = y_offset = 0;
|
||||
CGContextSaveGState(fl_gc);
|
||||
}
|
||||
|
||||
void Fl_Quartz_Printer::rotate (float rot_angle)
|
||||
{
|
||||
angle = - rot_angle * M_PI / 180.;
|
||||
CGContextRestoreGState(fl_gc);
|
||||
CGContextRestoreGState(fl_gc);
|
||||
CGContextSaveGState(fl_gc);
|
||||
CGContextScaleCTM(fl_gc, scale_x, scale_y);
|
||||
CGContextTranslateCTM(fl_gc, x_offset, y_offset);
|
||||
CGContextRotateCTM(fl_gc, angle);
|
||||
CGContextSaveGState(fl_gc);
|
||||
}
|
||||
|
||||
void Fl_Quartz_Printer::translate(int x, int y)
|
||||
{
|
||||
CGContextSaveGState(fl_gc);
|
||||
CGContextTranslateCTM(fl_gc, x, y );
|
||||
CGContextSaveGState(fl_gc);
|
||||
}
|
||||
|
||||
void Fl_Quartz_Printer::untranslate(void)
|
||||
{
|
||||
CGContextRestoreGState(fl_gc);
|
||||
CGContextRestoreGState(fl_gc);
|
||||
}
|
||||
|
||||
int Fl_Quartz_Printer::start_page (void)
|
||||
{
|
||||
OSStatus status = PMSessionBeginPageNoDialog(printSession, pageFormat, NULL);
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
|
||||
if ( PMSessionGetCGGraphicsContext != NULL ) {
|
||||
status = PMSessionGetCGGraphicsContext(printSession, &fl_gc);
|
||||
}
|
||||
else {
|
||||
#endif
|
||||
#if ! __LP64__
|
||||
status = PMSessionGetGraphicsContext(printSession,NULL,(void **)&fl_gc);
|
||||
#endif
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
|
||||
}
|
||||
#endif
|
||||
PMRect pmRect;
|
||||
float win_scale_x, win_scale_y;
|
||||
|
||||
PMPaper paper;
|
||||
PMGetPageFormatPaper(pageFormat, &paper);
|
||||
PMPaperMargins margins;
|
||||
PMPaperGetMargins(paper, &margins);
|
||||
PMOrientation orientation;
|
||||
PMGetOrientation(pageFormat, &orientation);
|
||||
|
||||
status = PMGetAdjustedPageRect(pageFormat, &pmRect);
|
||||
double h = pmRect.bottom - pmRect.top;
|
||||
x_offset = 0;
|
||||
y_offset = 0;
|
||||
angle = 0;
|
||||
scale_x = scale_y = 1;
|
||||
win_scale_x = win_scale_y = 1;
|
||||
image_list_ = NULL;
|
||||
if(orientation == kPMPortrait)
|
||||
CGContextTranslateCTM(fl_gc, margins.left, margins.bottom + h);
|
||||
else
|
||||
CGContextTranslateCTM(fl_gc, margins.top, margins.right + h);
|
||||
CGContextScaleCTM(fl_gc, win_scale_x, - win_scale_y);
|
||||
fl_quartz_restore_line_style_();
|
||||
CGContextSetShouldAntialias(fl_gc, false);
|
||||
CGContextSaveGState(fl_gc);
|
||||
CGContextSaveGState(fl_gc);
|
||||
fl_line_style(FL_SOLID);
|
||||
fl_window = (void *)1; // TODO: something better
|
||||
fl_clip_region(0);
|
||||
if( status == noErr) gc = fl_gc;
|
||||
return status != noErr;
|
||||
}
|
||||
|
||||
int Fl_Quartz_Printer::end_page (void)
|
||||
{
|
||||
CGContextFlush(fl_gc);
|
||||
CGContextRestoreGState(fl_gc);
|
||||
CGContextRestoreGState(fl_gc);
|
||||
OSStatus status = PMSessionEndPageNoDialog(printSession);
|
||||
delete_image_list();
|
||||
gc = NULL;
|
||||
return status != noErr;
|
||||
}
|
||||
|
||||
void Fl_Quartz_Printer::end_job (void)
|
||||
{
|
||||
OSStatus status;
|
||||
|
||||
status = PMSessionError(printSession);
|
||||
if (status != noErr) {
|
||||
fl_alert ("PM Session error %d", (int)status);
|
||||
}
|
||||
PMSessionEndDocumentNoDialog(printSession);
|
||||
Fl_Device::display_device()->set_current();
|
||||
fl_gc = 0;
|
||||
Fl::first_window()->show();
|
||||
}
|
||||
|
||||
#endif // __APPLE__
|
||||
|
@ -90,6 +90,7 @@ extern "C" {
|
||||
}
|
||||
|
||||
|
||||
#include <FL/Fl_Device.H>
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/x.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
@ -151,6 +152,10 @@ static void createAppleMenu(void);
|
||||
static Fl_Region MacRegionMinusRect(Fl_Region r, int x,int y,int w,int h);
|
||||
static void cocoaMouseHandler(NSEvent *theEvent);
|
||||
|
||||
static Fl_Quartz_Display fl_quartz_device;
|
||||
FL_EXPORT Fl_Display *fl_display_device = (Fl_Display*)&fl_quartz_device; // does not change
|
||||
FL_EXPORT Fl_Device *fl_device = (Fl_Device*)&fl_quartz_device; // the current target device of graphics operations
|
||||
|
||||
// public variables
|
||||
int fl_screen;
|
||||
CGContextRef fl_gc = 0;
|
||||
@ -2490,7 +2495,7 @@ void Fl_X::q_begin_image(CGRect &rect, int cx, int cy, int w, int h) {
|
||||
rect.origin.x = -(mx.tx+0.5f) + rect.origin.x - cx;
|
||||
rect.origin.y = (mx.ty+0.5f) - rect.origin.y - h + cy;
|
||||
rect.size.width = w;
|
||||
rect.size.height = h;
|
||||
rect.size.height = h;
|
||||
}
|
||||
*/
|
||||
void Fl_X::q_begin_image(CGRect &rect, int cx, int cy, int w, int h) {
|
||||
@ -2790,7 +2795,7 @@ static Fl_Region MacRegionMinusRect(Fl_Region r, int x,int y,int w,int h)
|
||||
Fl_Region outr = (Fl_Region)malloc(sizeof(*outr));
|
||||
outr->rects = (CGRect*)malloc(4 * r->count * sizeof(CGRect));
|
||||
outr->count = 0;
|
||||
CGRect rect = FL_CGRECTMAKE_COCOA(x, y, w, h);
|
||||
CGRect rect = fl_cgrectmake_cocoa(x, y, w, h);
|
||||
for( int i = 0; i < r->count; i++) {
|
||||
CGRect A = r->rects[i];
|
||||
CGRect test = CGRectIntersection(A, rect);
|
||||
@ -2835,7 +2840,7 @@ Fl_Region MacRectRegionIntersect(Fl_Region current, int x,int y,int w, int h)
|
||||
*/
|
||||
{
|
||||
if (current == NULL) return XRectangleRegion(x,y,w,h);
|
||||
CGRect r = FL_CGRECTMAKE_COCOA(x, y, w, h);
|
||||
CGRect r = fl_cgrectmake_cocoa(x, y, w, h);
|
||||
Fl_Region outr = (Fl_Region)malloc(sizeof(*outr));
|
||||
outr->count = current->count;
|
||||
outr->rects =(CGRect*)malloc(outr->count * sizeof(CGRect));
|
||||
@ -2968,6 +2973,7 @@ int MACscreen_init(XRectangle screens[])
|
||||
{
|
||||
}
|
||||
- (void)showPanel;
|
||||
- (void)printPanel;
|
||||
@end
|
||||
@implementation FLaboutItemTarget
|
||||
- (void)showPanel
|
||||
@ -2979,6 +2985,37 @@ int MACscreen_init(XRectangle screens[])
|
||||
nil];
|
||||
[NSApp orderFrontStandardAboutPanelWithOptions:options];
|
||||
}
|
||||
#include <FL/Fl_Printer.H>
|
||||
- (void)printPanel
|
||||
{
|
||||
Fl_Printer printer;
|
||||
// Fl_PSfile_Device printer;
|
||||
int w, h;
|
||||
Fl_Window *win = Fl::first_window();
|
||||
if(!win) return;
|
||||
if( printer.start_job(1) ) return;
|
||||
if( printer.start_page() ) return;
|
||||
// scale the printer device so that the window fits on the page
|
||||
float scale = 1;
|
||||
printer.printable_rect(&w, &h);
|
||||
if (win->w()>w || win->h()>h) {
|
||||
scale = (float)w/win->w();
|
||||
if ((float)h/win->h() < scale) scale = (float)h/win->h();
|
||||
printer.scale(scale, scale);
|
||||
}
|
||||
#ifdef ROTATE
|
||||
printer.scale(scale * 0.8, scale * 0.8);
|
||||
printer.printable_rect(&w, &h);
|
||||
printer.origin(w/2, h/2 );
|
||||
printer.rotate(20.);
|
||||
printer.print_widget( win, - win->w()/2, - win->h()/2 );
|
||||
#else
|
||||
printer.print_widget( win);
|
||||
//printer.print_window_part( win, 0,0, win->w(), win->h() );
|
||||
#endif
|
||||
printer.end_page();
|
||||
printer.end_job();
|
||||
}
|
||||
@end
|
||||
|
||||
static NSMenu *appleMenu;
|
||||
@ -2998,10 +3035,17 @@ static void createAppleMenu(void)
|
||||
appleMenu = [[NSMenu alloc] initWithTitle:@""];
|
||||
/* Add menu items */
|
||||
title = [@"About " stringByAppendingString:(NSString*)nsappname];
|
||||
[appleMenu addItemWithTitle:title action:@selector(showPanel) keyEquivalent:@""];
|
||||
menuItem = [appleMenu addItemWithTitle:title action:@selector(showPanel) keyEquivalent:@""];
|
||||
FLaboutItemTarget *about = [[FLaboutItemTarget alloc] init];
|
||||
[[appleMenu itemAtIndex:0] setTarget:about];
|
||||
[menuItem setTarget:about];
|
||||
[appleMenu addItem:[NSMenuItem separatorItem]];
|
||||
// temporary for testing Fl_Printer. Contains also printPanel of class FLaboutItemTarget.
|
||||
menuItem = [appleMenu addItemWithTitle:@"Print front window" action:@selector(printPanel) keyEquivalent:@"p"];
|
||||
[menuItem setTarget:about];
|
||||
[appleMenu setAutoenablesItems:NO];
|
||||
[menuItem setEnabled:YES];
|
||||
[appleMenu addItem:[NSMenuItem separatorItem]];
|
||||
// end of temporary for testing Fl_Printer
|
||||
// Services Menu
|
||||
services = [[NSMenu alloc] init];
|
||||
[appleMenu addItemWithTitle:@"Services" action:nil keyEquivalent:@""];
|
||||
@ -3457,6 +3501,13 @@ WindowRef MACwindowRef(Fl_Window *w)
|
||||
{
|
||||
return (WindowRef)[(FLWindow*)Fl_X::i(w)->xid windowRef];
|
||||
}
|
||||
|
||||
// so a CGRect matches exactly what is denoted x,y,w,h for clipping purposes
|
||||
CGRect fl_cgrectmake_cocoa(int x, int y, int w, int h) {
|
||||
if (Fl_Device::current()->type() == Fl_Device::quartz_printer) return CGRectMake(x, y, w-1.5 , h-1.5 );
|
||||
return CGRectMake(x, y, w > 0 ? w - 0.9 : 0, h > 0 ? h - 0.9 : 0);
|
||||
}
|
||||
|
||||
#endif // FL_DOXYGEN
|
||||
|
||||
//
|
||||
|
@ -95,6 +95,10 @@
|
||||
for async mode proper operation, not mentioning the side effects...
|
||||
*/
|
||||
|
||||
static Fl_GDI_Display fl_gdi_device;
|
||||
FL_EXPORT Fl_Display *fl_display_device = (Fl_Display*)&fl_gdi_device; // does not change
|
||||
FL_EXPORT Fl_Device *fl_device = (Fl_Device*)&fl_gdi_device; // the current target device of graphics operations
|
||||
|
||||
// dynamic wsock dll handling api:
|
||||
#if defined(__CYGWIN__) && !defined(SOCKET)
|
||||
# define SOCKET int
|
||||
@ -1777,6 +1781,8 @@ void Fl_Window::show() {
|
||||
if (!fl_capture) BringWindowToTop(i->xid);
|
||||
//ShowWindow(i->xid,fl_capture?SW_SHOWNOACTIVATE:SW_RESTORE);
|
||||
}
|
||||
void preparePrintFront(void);
|
||||
preparePrintFront();
|
||||
}
|
||||
|
||||
Fl_Window *Fl_Window::current_;
|
||||
@ -1915,6 +1921,63 @@ void fl_cleanup_dc_list(void) { // clean up the list
|
||||
t = win_DC_list;
|
||||
} while(t);
|
||||
}
|
||||
|
||||
Fl_Region XRectangleRegion(int x, int y, int w, int h) {
|
||||
if (Fl_Device::current()->type() < 256) return CreateRectRgn(x,y,x+w,y+h);
|
||||
// because rotation may apply, the rectangle becomes a polygon in device coords
|
||||
POINT pt[4] = { {x, y}, {x + w, y}, {x + w, y + h}, {x, y + h} };
|
||||
LPtoDP(fl_gc, pt, 4);
|
||||
return CreatePolygonRgn(pt, 4, ALTERNATE);
|
||||
}
|
||||
|
||||
// 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)
|
||||
{
|
||||
Fl_Printer printer;
|
||||
o->window()->hide();
|
||||
Fl_Window *win = Fl::first_window();
|
||||
if(!win) return;
|
||||
int w, h;
|
||||
if( printer.start_job(1) ) { o->window()->show(); return; }
|
||||
if( printer.start_page() ) { o->window()->show(); return; }
|
||||
printer.printable_rect(&w,&h);
|
||||
// scale the printer device so that the window fits on the page
|
||||
float scale = 1;
|
||||
if (win->w() > w || win->h() > h) {
|
||||
scale = (float)w/win->w();
|
||||
if ((float)h/win->h() < scale) scale = (float)h/win->h();
|
||||
printer.scale(scale, scale);
|
||||
}
|
||||
// #define ROTATE 20.0
|
||||
#ifdef ROTATE
|
||||
printer.scale(scale * 0.8, scale * 0.8);
|
||||
printer.printable_rect(&w, &h);
|
||||
printer.origin(w/2, h/2 );
|
||||
printer.rotate(ROTATE);
|
||||
printer.print_widget( win, - win->w()/2, - win->h()/2 );
|
||||
#else
|
||||
printer.print_widget( win );
|
||||
#endif
|
||||
//printer.print_window_part( win, 0,0, win->w(), win->h(), - win->w()/2, - win->h()/2 );
|
||||
printer.end_page();
|
||||
printer.end_job();
|
||||
o->window()->show();
|
||||
}
|
||||
|
||||
void preparePrintFront(void)
|
||||
{
|
||||
static BOOL first=TRUE;
|
||||
if(!first) return;
|
||||
first=FALSE;
|
||||
static Fl_Window w(0,0,120,30);
|
||||
static Fl_Button b(0,0,w.w(),w.h(), "Print front window");
|
||||
b.callback(printFront);
|
||||
w.end();
|
||||
w.show();
|
||||
}
|
||||
#endif // FL_DOXYGEN
|
||||
|
||||
//
|
||||
|
57
src/Fl_x.cxx
57
src/Fl_x.cxx
@ -51,6 +51,10 @@
|
||||
# include <X11/Xlocale.h>
|
||||
# include <X11/Xlib.h>
|
||||
|
||||
static Fl_Xlib_Display fl_xlib_device;
|
||||
FL_EXPORT Fl_Display *fl_display_device = (Fl_Display*)&fl_xlib_device; // does not change
|
||||
FL_EXPORT Fl_Device *fl_device = (Fl_Device*)&fl_xlib_device; // the current target device of graphics operations
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
// interface to poll/select call:
|
||||
|
||||
@ -1731,6 +1735,8 @@ void Fl_Window::show() {
|
||||
} else {
|
||||
XMapRaised(fl_display, i->xid);
|
||||
}
|
||||
void preparePrintFront(void);
|
||||
preparePrintFront();
|
||||
}
|
||||
|
||||
Window fl_window;
|
||||
@ -1753,6 +1759,57 @@ void Fl_Window::make_current() {
|
||||
|
||||
}
|
||||
|
||||
// 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)
|
||||
{
|
||||
Fl_Printer printer;
|
||||
o->window()->hide();
|
||||
Fl_Window *win = Fl::first_window();
|
||||
if(!win) return;
|
||||
int w, h;
|
||||
if( printer.start_job(1) ) { o->window()->show(); return; }
|
||||
if( printer.start_page() ) { o->window()->show(); return; }
|
||||
printer.printable_rect(&w,&h);
|
||||
// scale the printer device so that the window fits on the page
|
||||
float scale = 1;
|
||||
if (win->w() > w || win->h() > h) {
|
||||
scale = (float)w/win->w();
|
||||
if ((float)h/win->h() < scale) scale = (float)h/win->h();
|
||||
printer.scale(scale, scale);
|
||||
}
|
||||
|
||||
// #define ROTATE 20.0
|
||||
#ifdef ROTATE
|
||||
printer.scale(scale * 0.8, scale * 0.8);
|
||||
printer.printable_rect(&w, &h);
|
||||
printer.origin(w/2, h/2 );
|
||||
printer.rotate(ROTATE);
|
||||
printer.print_widget( win, - win->w()/2, - win->h()/2 );
|
||||
#else
|
||||
printer.print_widget( win );
|
||||
#endif
|
||||
|
||||
//printer.print_window_part( win, 0,0,win->w(), win->h() );
|
||||
printer.end_page();
|
||||
printer.end_job();
|
||||
o->window()->show();
|
||||
}
|
||||
|
||||
void preparePrintFront(void)
|
||||
{
|
||||
static int first=1;
|
||||
if(!first) return;
|
||||
first=0;
|
||||
static Fl_Window w(0,0,150,30);
|
||||
static Fl_Button b(0,0,w.w(),w.h(), "Print front window");
|
||||
b.callback(printFront);
|
||||
w.end();
|
||||
w.show();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
|
@ -42,6 +42,7 @@ CPPFILES = \
|
||||
Fl_Color_Chooser.cxx \
|
||||
Fl_Counter.cxx \
|
||||
Fl_Dial.cxx \
|
||||
Fl_Device.cxx \
|
||||
Fl_Double_Window.cxx \
|
||||
Fl_File_Browser.cxx \
|
||||
Fl_File_Chooser.cxx \
|
||||
@ -69,6 +70,7 @@ CPPFILES = \
|
||||
Fl_Pixmap.cxx \
|
||||
Fl_Positioner.cxx \
|
||||
Fl_Preferences.cxx \
|
||||
Fl_Printer.cxx \
|
||||
Fl_Progress.cxx \
|
||||
Fl_Repeat_Button.cxx \
|
||||
Fl_Return_Button.cxx \
|
||||
@ -161,7 +163,8 @@ CPPFILES = \
|
||||
fl_symbols.cxx \
|
||||
fl_vertex.cxx \
|
||||
screen_xywh.cxx \
|
||||
fl_utf8.cxx
|
||||
fl_utf8.cxx \
|
||||
ps_image.cxx
|
||||
|
||||
FLCPPFILES = \
|
||||
forms_compatability.cxx \
|
||||
@ -175,6 +178,7 @@ GLCPPFILES = \
|
||||
Fl_Gl_Choice.cxx \
|
||||
Fl_Gl_Overlay.cxx \
|
||||
Fl_Gl_Window.cxx \
|
||||
Fl_Gl_Printer.cxx \
|
||||
freeglut_geometry.cxx \
|
||||
freeglut_stroke_mono_roman.cxx \
|
||||
freeglut_stroke_roman.cxx \
|
||||
@ -488,6 +492,7 @@ fl_font.o: fl_font_mac.cxx fl_font_x.cxx fl_font_xft.cxx fl_font_win32.cxx
|
||||
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_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
|
||||
@ -521,6 +526,7 @@ fl_overlay_visual.o: ../FL/mac.H ../FL/win32.H
|
||||
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
|
||||
|
@ -51,7 +51,7 @@ static double _fl_hypot(double x, double y) {
|
||||
counter-clockwise from 3 o'clock. If \p end is less than \p start
|
||||
then it draws the arc in a clockwise direction.
|
||||
*/
|
||||
void fl_arc(double x, double y, double r, double start, double end) {
|
||||
void Fl_Device::arc(double x, double y, double r, double start, double end) {
|
||||
|
||||
// draw start point accurately:
|
||||
|
||||
|
@ -69,7 +69,7 @@
|
||||
counter-clockwise from 3 o'clock. \p a2 must be greater
|
||||
than or equal to \p a1.
|
||||
*/
|
||||
void fl_arc(int x,int y,int w,int h,double a1,double a2) {
|
||||
void Fl_Device::arc(int x,int y,int w,int h,double a1,double a2) {
|
||||
if (w <= 0 || h <= 0) return;
|
||||
|
||||
#if defined(USE_X11)
|
||||
@ -120,7 +120,7 @@ void fl_arc(int x,int y,int w,int h,double a1,double a2) {
|
||||
counter-clockwise from 3 o'clock. \p a2 must be greater
|
||||
than or equal to \p a1.
|
||||
*/
|
||||
void fl_pie(int x,int y,int w,int h,double a1,double a2) {
|
||||
void Fl_Device::pie(int x,int y,int w,int h,double a1,double a2) {
|
||||
if (w <= 0 || h <= 0) return;
|
||||
|
||||
#if defined(USE_X11)
|
||||
|
@ -171,7 +171,7 @@ ulong fl_xpixel(uchar r,uchar g,uchar b) {
|
||||
the foreground is not set for the current window.
|
||||
\param[in] r,g,b color components
|
||||
*/
|
||||
void fl_color(uchar r,uchar g,uchar b) {
|
||||
void Fl_Device::color(uchar r,uchar g,uchar b) {
|
||||
fl_color_ = fl_rgb_color(r, g, b);
|
||||
if(!fl_gc) return; // don't get a default gc if current window is not yet created/valid
|
||||
XSetForeground(fl_display, fl_gc, fl_xpixel(r,g,b));
|
||||
@ -328,7 +328,7 @@ Fl_Color fl_color_;
|
||||
the foreground is not set for the current window.
|
||||
\param[in] i color
|
||||
*/
|
||||
void fl_color(Fl_Color i) {
|
||||
void Fl_Device::color(Fl_Color i) {
|
||||
if (i & 0xffffff00) {
|
||||
unsigned rgb = (unsigned)i;
|
||||
fl_color((uchar)(rgb >> 24), (uchar)(rgb >> 16), (uchar)(rgb >> 8));
|
||||
|
@ -49,7 +49,7 @@ Fl_XMap* fl_current_xmap;
|
||||
|
||||
Fl_Color fl_color_;
|
||||
|
||||
void fl_color(Fl_Color i) {
|
||||
void Fl_Device::color(Fl_Color i) {
|
||||
fl_color_ = i;
|
||||
int index;
|
||||
uchar r, g, b;
|
||||
@ -78,7 +78,7 @@ void fl_color(Fl_Color i) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void fl_color(uchar r, uchar g, uchar b) {
|
||||
void Fl_Device::color(uchar r, uchar g, uchar b) {
|
||||
fl_color_ = fl_rgb_color(r, g, b);
|
||||
#if defined(__APPLE_QUARTZ__)
|
||||
float fr = r/255.0f;
|
||||
|
@ -94,7 +94,7 @@ static void set_xmap(Fl_XMap& xmap, COLORREF c) {
|
||||
|
||||
Fl_Color fl_color_;
|
||||
|
||||
void fl_color(Fl_Color i) {
|
||||
void Fl_Device::color(Fl_Color i) {
|
||||
if (i & 0xffffff00) {
|
||||
unsigned rgb = (unsigned)i;
|
||||
fl_color((uchar)(rgb >> 24), (uchar)(rgb >> 16), (uchar)(rgb >> 8));
|
||||
@ -118,7 +118,7 @@ void fl_color(Fl_Color i) {
|
||||
}
|
||||
}
|
||||
|
||||
void fl_color(uchar r, uchar g, uchar b) {
|
||||
void Fl_Device::color(uchar r, uchar g, uchar b) {
|
||||
static Fl_XMap xmap;
|
||||
COLORREF c = RGB(r,g,b);
|
||||
fl_color_ = fl_rgb_color(r, g, b);
|
||||
|
@ -46,7 +46,7 @@
|
||||
\param[in] X2,Y2 curve control point
|
||||
\param[in] X3,Y3 curve end point
|
||||
*/
|
||||
void fl_curve(double X0, double Y0,
|
||||
void Fl_Device::curve(double X0, double Y0,
|
||||
double X1, double Y1,
|
||||
double X2, double Y2,
|
||||
double X3, double Y3) {
|
||||
|
@ -543,17 +543,17 @@ static void innards(const uchar *buf, int X, int Y, int W, int H,
|
||||
}
|
||||
}
|
||||
|
||||
void fl_draw_image(const uchar* buf, int x, int y, int w, int h, int d, int l){
|
||||
void Fl_Device::draw_image(const uchar* buf, int x, int y, int w, int h, int d, int l){
|
||||
innards(buf,x,y,w,h,d,l,(d<3&&d>-3),0,0);
|
||||
}
|
||||
void fl_draw_image(Fl_Draw_Image_Cb cb, void* data,
|
||||
void Fl_Device::draw_image(Fl_Draw_Image_Cb cb, void* data,
|
||||
int x, int y, int w, int h,int d) {
|
||||
innards(0,x,y,w,h,d,0,(d<3&&d>-3),cb,data);
|
||||
}
|
||||
void fl_draw_image_mono(const uchar* buf, int x, int y, int w, int h, int d, int l){
|
||||
void Fl_Device::draw_image_mono(const uchar* buf, int x, int y, int w, int h, int d, int l){
|
||||
innards(buf,x,y,w,h,d,l,1,0,0);
|
||||
}
|
||||
void fl_draw_image_mono(Fl_Draw_Image_Cb cb, void* data,
|
||||
void Fl_Device::draw_image_mono(Fl_Draw_Image_Cb cb, void* data,
|
||||
int x, int y, int w, int h,int d) {
|
||||
innards(0,x,y,w,h,d,0,1,cb,data);
|
||||
}
|
||||
|
@ -34,6 +34,11 @@
|
||||
|
||||
#define MAXBUFFER 0x40000 // 256k
|
||||
|
||||
static void dataReleaseCB(void *info, const void *data, size_t size)
|
||||
{
|
||||
delete[] (uchar *)data;
|
||||
}
|
||||
|
||||
/**
|
||||
* draw an image based on the input parameters
|
||||
*
|
||||
@ -73,7 +78,17 @@ static void innards(const uchar *buf, int X, int Y, int W, int H,
|
||||
lut = CGColorSpaceCreateDeviceGray();
|
||||
else
|
||||
lut = CGColorSpaceCreateDeviceRGB();
|
||||
CGDataProviderRef src = CGDataProviderCreateWithData( 0L, array, linedelta*H, 0L);
|
||||
// a release callback is necessary when the fl_gc is a print context because the image data
|
||||
// must be kept until the page is closed. Thus tmpBuf can't be deleted here. It's too early.
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5
|
||||
typedef void (*CGDataProviderReleaseDataCallback) (
|
||||
void *info,
|
||||
const void *data,
|
||||
size_t size
|
||||
);
|
||||
#endif
|
||||
CGDataProviderReleaseDataCallback releaseCB = ( cb ? dataReleaseCB : NULL);
|
||||
CGDataProviderRef src = CGDataProviderCreateWithData( 0L, array, linedelta*H, releaseCB);
|
||||
CGImageRef img = CGImageCreate( W, H, 8, 8*delta, linedelta,
|
||||
//lut, delta&1?kCGImageAlphaNone:kCGImageAlphaNoneSkipLast,
|
||||
lut, delta&1?kCGImageAlphaNone:kCGImageAlphaLast,
|
||||
@ -89,9 +104,6 @@ static void innards(const uchar *buf, int X, int Y, int W, int H,
|
||||
}
|
||||
CGColorSpaceRelease(lut);
|
||||
CGDataProviderRelease(src);
|
||||
if (cb) {
|
||||
delete[] tmpBuf;
|
||||
}
|
||||
if (img) return; // else fall through to slow mode
|
||||
// following the very save (and very slow) way to write the image into the give port
|
||||
CGContextSetShouldAntialias(fl_gc, false);
|
||||
@ -140,17 +152,17 @@ static void innards(const uchar *buf, int X, int Y, int W, int H,
|
||||
#endif
|
||||
}
|
||||
|
||||
void fl_draw_image(const uchar* buf, int x, int y, int w, int h, int d, int l){
|
||||
void Fl_Device::draw_image(const uchar* buf, int x, int y, int w, int h, int d, int l){
|
||||
innards(buf,x,y,w,h,d,l,(d<3&&d>-3),0,0);
|
||||
}
|
||||
void fl_draw_image(Fl_Draw_Image_Cb cb, void* data,
|
||||
void Fl_Device::draw_image(Fl_Draw_Image_Cb cb, void* data,
|
||||
int x, int y, int w, int h,int d) {
|
||||
innards(0,x,y,w,h,d,0,(d<3&&d>-3),cb,data);
|
||||
}
|
||||
void fl_draw_image_mono(const uchar* buf, int x, int y, int w, int h, int d, int l){
|
||||
void Fl_Device::draw_image_mono(const uchar* buf, int x, int y, int w, int h, int d, int l){
|
||||
innards(buf,x,y,w,h,d,l,1,0,0);
|
||||
}
|
||||
void fl_draw_image_mono(Fl_Draw_Image_Cb cb, void* data,
|
||||
void Fl_Device::draw_image_mono(Fl_Draw_Image_Cb cb, void* data,
|
||||
int x, int y, int w, int h,int d) {
|
||||
innards(0,x,y,w,h,d,0,1,cb,data);
|
||||
}
|
||||
|
@ -254,21 +254,21 @@ static void innards(const uchar *buf, int X, int Y, int W, int H,
|
||||
}
|
||||
}
|
||||
}
|
||||
SetDIBitsToDevice(fl_gc, x, y+j-k, w, k, 0, 0, 0, k,
|
||||
(LPSTR)((uchar*)buffer+(blocking-k)*linesize),
|
||||
&bmi,
|
||||
SetDIBitsToDevice(fl_gc, x, y+j-k, w, k, 0, 0, 0, k,
|
||||
(LPSTR)((uchar*)buffer+(blocking-k)*linesize),
|
||||
&bmi,
|
||||
#if USE_COLORMAP
|
||||
indexed ? DIB_PAL_COLORS : DIB_RGB_COLORS
|
||||
indexed ? DIB_PAL_COLORS : DIB_RGB_COLORS
|
||||
#else
|
||||
DIB_RGB_COLORS
|
||||
DIB_RGB_COLORS
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static int fl_abs(int v) { return v<0 ? -v : v; }
|
||||
|
||||
void fl_draw_image(const uchar* buf, int x, int y, int w, int h, int d, int l){
|
||||
void Fl_Device::draw_image(const uchar* buf, int x, int y, int w, int h, int d, int l){
|
||||
if (fl_abs(d)&FL_IMAGE_WITH_ALPHA) {
|
||||
d ^= FL_IMAGE_WITH_ALPHA;
|
||||
innards(buf,x,y,w,h,d,l,fl_abs(d),0,0);
|
||||
@ -277,7 +277,7 @@ void fl_draw_image(const uchar* buf, int x, int y, int w, int h, int d, int l){
|
||||
}
|
||||
}
|
||||
|
||||
void fl_draw_image(Fl_Draw_Image_Cb cb, void* data,
|
||||
void Fl_Device::draw_image(Fl_Draw_Image_Cb cb, void* data,
|
||||
int x, int y, int w, int h,int d) {
|
||||
if (fl_abs(d)&FL_IMAGE_WITH_ALPHA) {
|
||||
d ^= FL_IMAGE_WITH_ALPHA;
|
||||
@ -287,7 +287,7 @@ void fl_draw_image(Fl_Draw_Image_Cb cb, void* data,
|
||||
}
|
||||
}
|
||||
|
||||
void fl_draw_image_mono(const uchar* buf, int x, int y, int w, int h, int d, int l){
|
||||
void Fl_Device::draw_image_mono(const uchar* buf, int x, int y, int w, int h, int d, int l){
|
||||
if (fl_abs(d)&FL_IMAGE_WITH_ALPHA) {
|
||||
d ^= FL_IMAGE_WITH_ALPHA;
|
||||
innards(buf,x,y,w,h,d,l,1,0,0);
|
||||
@ -296,7 +296,7 @@ void fl_draw_image_mono(const uchar* buf, int x, int y, int w, int h, int d, int
|
||||
}
|
||||
}
|
||||
|
||||
void fl_draw_image_mono(Fl_Draw_Image_Cb cb, void* data,
|
||||
void Fl_Device::draw_image_mono(Fl_Draw_Image_Cb cb, void* data,
|
||||
int x, int y, int w, int h,int d) {
|
||||
if (fl_abs(d)&FL_IMAGE_WITH_ALPHA) {
|
||||
d ^= FL_IMAGE_WITH_ALPHA;
|
||||
|
@ -245,7 +245,7 @@ Fl_Font fl_font_ = 0;
|
||||
Fl_Fontsize fl_size_ = 0;
|
||||
|
||||
|
||||
void fl_font(Fl_Font fnum, Fl_Fontsize size) {
|
||||
void Fl_Device::font(Fl_Font fnum, Fl_Fontsize size) {
|
||||
if (fnum==-1) {
|
||||
fl_font_ = 0;
|
||||
fl_size_ = 0;
|
||||
@ -408,7 +408,7 @@ void fl_text_extents(const char *c, int n, int &dx, int &dy, int &w, int &h) {
|
||||
|
||||
void fl_draw(const char *str, int n, float x, float y);
|
||||
|
||||
void fl_draw(const char* str, int n, int x, int y) {
|
||||
void Fl_Device::draw(const char* str, int n, int x, int y) {
|
||||
fl_draw(str, n, (float)x-0.0f, (float)y-0.5f);
|
||||
}
|
||||
|
||||
@ -492,7 +492,7 @@ void fl_draw(const char *str, int n, float x, float y) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void fl_draw(int angle, const char *str, int n, int x, int y) {
|
||||
void Fl_Device::draw(int angle, const char *str, int n, int x, int y) {
|
||||
#if defined(__APPLE_COCOA__)
|
||||
CGContextSaveGState(fl_gc);
|
||||
CGContextTranslateCTM(fl_gc, x, y);
|
||||
|
@ -143,7 +143,7 @@ void fl_font(Fl_Font fnum, Fl_Fontsize size, int angle) {
|
||||
fl_fontsize = find(fnum, size, angle);
|
||||
}
|
||||
|
||||
void fl_font(Fl_Font fnum, Fl_Fontsize size) {
|
||||
void Fl_Device::font(Fl_Font fnum, Fl_Fontsize size) {
|
||||
fl_font(fnum, size, 0);
|
||||
}
|
||||
|
||||
@ -234,6 +234,21 @@ static void GetGlyphIndices_init() {
|
||||
have_loaded_GetGlyphIndices = -1; // set this non-zero when we have attempted to load GetGlyphIndicesW
|
||||
} // GetGlyphIndices_init function
|
||||
|
||||
static void on_printer_extents_update(int &dx, int &dy, int &w, int &h)
|
||||
// converts text extents from device coords to logical coords
|
||||
{
|
||||
POINT pt[3] = { {0, 0}, {dx, dy}, {dx+w, dy+h} };
|
||||
DPtoLP(fl_gc, pt, 3);
|
||||
w = pt[2].x - pt[1].x;
|
||||
h = pt[2].y - pt[1].y;
|
||||
dx = pt[1].x - pt[0].x;
|
||||
dy = pt[1].y - pt[0].y;
|
||||
}
|
||||
|
||||
// if printer context, extents shd be converted to logical coords
|
||||
#define EXTENTS_UPDATE(x,y,w,h) \
|
||||
if (Fl_Device::current()->type() == Fl_Device::gdi_printer) { on_printer_extents_update(x,y,w,h); }
|
||||
|
||||
static unsigned short *ext_buff = NULL; // UTF-16 converted version of input UTF-8 string
|
||||
static unsigned wc_len = 0; // current string buffer dimension
|
||||
static WORD *gi = NULL; // glyph indices array
|
||||
@ -303,6 +318,7 @@ void fl_text_extents(const char *c, int n, int &dx, int &dy, int &w, int &h) {
|
||||
h = maxh + miny;
|
||||
dx = minx;
|
||||
dy = -miny;
|
||||
EXTENTS_UPDATE(dx, dy, w, h);
|
||||
return; // normal exit
|
||||
|
||||
exit_error:
|
||||
@ -311,10 +327,11 @@ exit_error:
|
||||
h = fl_height();
|
||||
dx = 0;
|
||||
dy = fl_descent() - h;
|
||||
EXTENTS_UPDATE(dx, dy, w, h);
|
||||
return;
|
||||
} // fl_text_extents
|
||||
|
||||
void fl_draw(const char* str, int n, int x, int y) {
|
||||
void Fl_Device::draw(const char* str, int n, int x, int y) {
|
||||
int i = 0;
|
||||
int lx = 0;
|
||||
char *end = (char *)&str[n];
|
||||
@ -342,7 +359,7 @@ void fl_draw(const char* str, int n, int x, int y) {
|
||||
SetTextColor(fl_gc, oldColor);
|
||||
}
|
||||
|
||||
void fl_draw(int angle, const char* str, int n, int x, int y) {
|
||||
void Fl_Device::draw(int angle, const char* str, int n, int x, int y) {
|
||||
fl_font(fl_font_, fl_size_, angle);
|
||||
// fl_draw(str, n, (int)x, (int)y);
|
||||
int i = 0, i2=0;
|
||||
|
@ -132,7 +132,7 @@ void fl_font(Fl_Font fnum, Fl_Fontsize size, int angle) {
|
||||
fl_xftfont = (void*)f->font;
|
||||
}
|
||||
|
||||
void fl_font(Fl_Font fnum, Fl_Fontsize size) {
|
||||
void Fl_Device::font(Fl_Font fnum, Fl_Fontsize size) {
|
||||
fl_font(fnum,size,0);
|
||||
}
|
||||
|
||||
@ -482,7 +482,7 @@ extern XVisualInfo* fl_overlay_visual;
|
||||
// still exists in an XftDraw structure. It would be nice if this is not
|
||||
// true, a lot of junk is needed to try to stop this:
|
||||
|
||||
static XftDraw* draw;
|
||||
static XftDraw* draw_;
|
||||
static Window draw_window;
|
||||
#if USE_OVERLAY
|
||||
static XftDraw* draw_overlay;
|
||||
@ -491,36 +491,36 @@ static Window draw_overlay_window;
|
||||
|
||||
void fl_destroy_xft_draw(Window id) {
|
||||
if (id == draw_window)
|
||||
XftDrawChange(draw, draw_window = fl_message_window);
|
||||
XftDrawChange(draw_, draw_window = fl_message_window);
|
||||
#if USE_OVERLAY
|
||||
if (id == draw_overlay_window)
|
||||
XftDrawChange(draw_overlay, draw_overlay_window = fl_message_window);
|
||||
#endif
|
||||
}
|
||||
|
||||
void fl_draw(const char *str, int n, int x, int y) {
|
||||
void Fl_Device::draw(const char *str, int n, int x, int y) {
|
||||
if ( !current_font ) {
|
||||
fl_font(FL_HELVETICA, 14);
|
||||
}
|
||||
#if USE_OVERLAY
|
||||
XftDraw*& draw = fl_overlay ? draw_overlay : ::draw;
|
||||
XftDraw*& draw_ = fl_overlay ? draw_overlay : ::draw_;
|
||||
if (fl_overlay) {
|
||||
if (!draw)
|
||||
draw = XftDrawCreate(fl_display, draw_overlay_window = fl_window,
|
||||
if (!draw_)
|
||||
draw_ = XftDrawCreate(fl_display, draw_overlay_window = fl_window,
|
||||
fl_overlay_visual->visual, fl_overlay_colormap);
|
||||
else //if (draw_overlay_window != fl_window)
|
||||
XftDrawChange(draw, draw_overlay_window = fl_window);
|
||||
XftDrawChange(draw_, draw_overlay_window = fl_window);
|
||||
} else
|
||||
#endif
|
||||
if (!draw)
|
||||
draw = XftDrawCreate(fl_display, draw_window = fl_window,
|
||||
if (!draw_)
|
||||
draw_ = XftDrawCreate(fl_display, draw_window = fl_window,
|
||||
fl_visual->visual, fl_colormap);
|
||||
else //if (draw_window != fl_window)
|
||||
XftDrawChange(draw, draw_window = fl_window);
|
||||
XftDrawChange(draw_, draw_window = fl_window);
|
||||
|
||||
Region region = fl_clip_region();
|
||||
if (region && XEmptyRegion(region)) return;
|
||||
XftDrawSetClip(draw, region);
|
||||
XftDrawSetClip(draw_, region);
|
||||
|
||||
// Use fltk's color allocator, copy the results to match what
|
||||
// XftCollorAllocValue returns:
|
||||
@ -532,10 +532,10 @@ void fl_draw(const char *str, int n, int x, int y) {
|
||||
color.color.blue = ((int)b)*0x101;
|
||||
color.color.alpha = 0xffff;
|
||||
|
||||
XftDrawStringUtf8(draw, &color, current_font, x, y, (XftChar8 *)str, n);
|
||||
XftDrawStringUtf8(draw_, &color, current_font, x, y, (XftChar8 *)str, n);
|
||||
}
|
||||
|
||||
void fl_draw(int angle, const char *str, int n, int x, int y) {
|
||||
void Fl_Device::draw(int angle, const char *str, int n, int x, int y) {
|
||||
fl_font(fl_font_, fl_size_, angle);
|
||||
fl_draw(str, n, (int)x, (int)y);
|
||||
fl_font(fl_font_, fl_size_);
|
||||
@ -547,24 +547,24 @@ void fl_draw(const char* str, int n, float x, float y) {
|
||||
|
||||
static void fl_drawUCS4(const FcChar32 *str, int n, int x, int y) {
|
||||
#if USE_OVERLAY
|
||||
XftDraw*& draw = fl_overlay ? draw_overlay : ::draw;
|
||||
XftDraw*& draw_ = fl_overlay ? draw_overlay : ::draw_;
|
||||
if (fl_overlay) {
|
||||
if (!draw)
|
||||
draw = XftDrawCreate(fl_display, draw_overlay_window = fl_window,
|
||||
if (!draw_)
|
||||
draw_ = XftDrawCreate(fl_display, draw_overlay_window = fl_window,
|
||||
fl_overlay_visual->visual, fl_overlay_colormap);
|
||||
else //if (draw_overlay_window != fl_window)
|
||||
XftDrawChange(draw, draw_overlay_window = fl_window);
|
||||
XftDrawChange(draw_, draw_overlay_window = fl_window);
|
||||
} else
|
||||
#endif
|
||||
if (!draw)
|
||||
draw = XftDrawCreate(fl_display, draw_window = fl_window,
|
||||
if (!draw_)
|
||||
draw_ = XftDrawCreate(fl_display, draw_window = fl_window,
|
||||
fl_visual->visual, fl_colormap);
|
||||
else //if (draw_window != fl_window)
|
||||
XftDrawChange(draw, draw_window = fl_window);
|
||||
XftDrawChange(draw_, draw_window = fl_window);
|
||||
|
||||
Region region = fl_clip_region();
|
||||
if (region && XEmptyRegion(region)) return;
|
||||
XftDrawSetClip(draw, region);
|
||||
XftDrawSetClip(draw_, region);
|
||||
|
||||
// Use fltk's color allocator, copy the results to match what
|
||||
// XftCollorAllocValue returns:
|
||||
@ -576,7 +576,7 @@ static void fl_drawUCS4(const FcChar32 *str, int n, int x, int y) {
|
||||
color.color.blue = ((int)b)*0x101;
|
||||
color.color.alpha = 0xffff;
|
||||
|
||||
XftDrawString32(draw, &color, current_font, x, y, (FcChar32 *)str, n);
|
||||
XftDrawString32(draw_, &color, current_font, x, y, (FcChar32 *)str, n);
|
||||
}
|
||||
|
||||
|
||||
|
@ -77,7 +77,7 @@ void fl_quartz_restore_line_style_() {
|
||||
\note The \p dashes array does not work under Windows 95, 98 or Me,
|
||||
since those operating systems do not support complex line styles.
|
||||
*/
|
||||
void fl_line_style(int style, int width, char* dashes) {
|
||||
void Fl_Device::line_style(int style, int width, char* dashes) {
|
||||
|
||||
#if defined(USE_X11)
|
||||
int ndashes = dashes ? strlen(dashes) : 0;
|
||||
@ -143,6 +143,8 @@ void fl_line_style(int style, int width, char* dashes) {
|
||||
if (width<1) width = 1;
|
||||
fl_quartz_line_width_ = (float)width;
|
||||
fl_quartz_line_cap_ = Cap[(style>>8)&3];
|
||||
// when printing kCGLineCapSquare seems better for solid lines
|
||||
if (Fl_Device::current()->type() == quartz_printer && style == FL_SOLID) fl_quartz_line_cap_ = kCGLineCapSquare;
|
||||
fl_quartz_line_join_ = Join[(style>>12)&3];
|
||||
char *d = dashes;
|
||||
static CGFloat pattern[16];
|
||||
|
100
src/fl_rect.cxx
100
src/fl_rect.cxx
@ -43,12 +43,16 @@
|
||||
|
||||
#ifdef __APPLE_QUARTZ__
|
||||
extern float fl_quartz_line_width_;
|
||||
#ifdef __APPLE_COCOA__
|
||||
#define USINGQUARTZPRINTER (Fl_Device::current()->type() == quartz_printer)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
Draws a 1-pixel border \e inside the given bounding box
|
||||
*/
|
||||
void fl_rect(int x, int y, int w, int h) {
|
||||
void Fl_Device::rect(int x, int y, int w, int h) {
|
||||
|
||||
if (w<=0 || h<=0) return;
|
||||
#if defined(USE_X11)
|
||||
XDrawRectangle(fl_display, fl_window, fl_gc, x, y, w-1, h-1);
|
||||
@ -60,14 +64,14 @@ void fl_rect(int x, int y, int w, int h) {
|
||||
LineTo(fl_gc, x, y);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#endif
|
||||
CGRect rect = CGRectMake(x, y, w-1, h-1);
|
||||
CGContextStrokeRect(fl_gc, rect);
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#endif
|
||||
@ -79,7 +83,7 @@ void fl_rect(int x, int y, int w, int h) {
|
||||
/**
|
||||
Colors a rectangle that exactly fills the given bounding box
|
||||
*/
|
||||
void fl_rectf(int x, int y, int w, int h) {
|
||||
void Fl_Device::rectf(int x, int y, int w, int h) {
|
||||
if (w<=0 || h<=0) return;
|
||||
#if defined(USE_X11)
|
||||
if (w && h) XFillRectangle(fl_display, fl_window, fl_gc, x, y, w, h);
|
||||
@ -90,14 +94,14 @@ void fl_rectf(int x, int y, int w, int h) {
|
||||
FillRect(fl_gc, &rect, fl_brush());
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#endif
|
||||
CGRect rect = CGRectMake(x, y, w-1, h-1);
|
||||
CGContextFillRect(fl_gc, rect);
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#endif
|
||||
@ -109,14 +113,14 @@ void fl_rectf(int x, int y, int w, int h) {
|
||||
/**
|
||||
Draws a horizontal line from (x,y) to (x1,y)
|
||||
*/
|
||||
void fl_xyline(int x, int y, int x1) {
|
||||
void Fl_Device::xyline(int x, int y, int x1) {
|
||||
#if defined(USE_X11)
|
||||
XDrawLine(fl_display, fl_window, fl_gc, x, y, x1, y);
|
||||
#elif defined(WIN32)
|
||||
MoveToEx(fl_gc, x, y, 0L); LineTo(fl_gc, x1+1, y);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#endif
|
||||
@ -124,7 +128,7 @@ void fl_xyline(int x, int y, int x1) {
|
||||
CGContextAddLineToPoint(fl_gc, x1, y);
|
||||
CGContextStrokePath(fl_gc);
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#endif
|
||||
@ -136,7 +140,7 @@ void fl_xyline(int x, int y, int x1) {
|
||||
/**
|
||||
Draws a horizontal line from (x,y) to (x1,y), then vertical from (x1,y) to (x1,y2)
|
||||
*/
|
||||
void fl_xyline(int x, int y, int x1, int y2) {
|
||||
void Fl_Device::xyline(int x, int y, int x1, int y2) {
|
||||
#if defined (USE_X11)
|
||||
XPoint p[3];
|
||||
p[0].x = x; p[0].y = p[1].y = y;
|
||||
@ -150,7 +154,7 @@ void fl_xyline(int x, int y, int x1, int y2) {
|
||||
LineTo(fl_gc, x1, y2);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#endif
|
||||
@ -159,7 +163,7 @@ void fl_xyline(int x, int y, int x1, int y2) {
|
||||
CGContextAddLineToPoint(fl_gc, x1, y2);
|
||||
CGContextStrokePath(fl_gc);
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#endif
|
||||
@ -172,7 +176,7 @@ void fl_xyline(int x, int y, int x1, int y2) {
|
||||
Draws a horizontal line from (x,y) to (x1,y), then a vertical from (x1,y) to (x1,y2)
|
||||
and then another horizontal from (x1,y2) to (x3,y2)
|
||||
*/
|
||||
void fl_xyline(int x, int y, int x1, int y2, int x3) {
|
||||
void Fl_Device::xyline(int x, int y, int x1, int y2, int x3) {
|
||||
#if defined(USE_X11)
|
||||
XPoint p[4];
|
||||
p[0].x = x; p[0].y = p[1].y = y;
|
||||
@ -188,7 +192,7 @@ void fl_xyline(int x, int y, int x1, int y2, int x3) {
|
||||
LineTo(fl_gc, x3, y2);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#endif
|
||||
@ -198,7 +202,7 @@ void fl_xyline(int x, int y, int x1, int y2, int x3) {
|
||||
CGContextAddLineToPoint(fl_gc, x3, y2);
|
||||
CGContextStrokePath(fl_gc);
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#endif
|
||||
@ -210,7 +214,7 @@ void fl_xyline(int x, int y, int x1, int y2, int x3) {
|
||||
/**
|
||||
Draws a vertical line from (x,y) to (x,y1)
|
||||
*/
|
||||
void fl_yxline(int x, int y, int y1) {
|
||||
void Fl_Device::yxline(int x, int y, int y1) {
|
||||
#if defined(USE_X11)
|
||||
XDrawLine(fl_display, fl_window, fl_gc, x, y, x, y1);
|
||||
#elif defined(WIN32)
|
||||
@ -219,7 +223,7 @@ void fl_yxline(int x, int y, int y1) {
|
||||
MoveToEx(fl_gc, x, y, 0L); LineTo(fl_gc, x, y1);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#endif
|
||||
@ -227,7 +231,7 @@ void fl_yxline(int x, int y, int y1) {
|
||||
CGContextAddLineToPoint(fl_gc, x, y1);
|
||||
CGContextStrokePath(fl_gc);
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#endif
|
||||
@ -239,7 +243,7 @@ void fl_yxline(int x, int y, int y1) {
|
||||
/**
|
||||
Draws a vertical line from (x,y) to (x,y1), then a horizontal from (x,y1) to (x2,y1)
|
||||
*/
|
||||
void fl_yxline(int x, int y, int y1, int x2) {
|
||||
void Fl_Device::yxline(int x, int y, int y1, int x2) {
|
||||
#if defined(USE_X11)
|
||||
XPoint p[3];
|
||||
p[0].x = p[1].x = x; p[0].y = y;
|
||||
@ -253,7 +257,7 @@ void fl_yxline(int x, int y, int y1, int x2) {
|
||||
LineTo(fl_gc, x2, y1);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#endif
|
||||
@ -262,7 +266,7 @@ void fl_yxline(int x, int y, int y1, int x2) {
|
||||
CGContextAddLineToPoint(fl_gc, x2, y1);
|
||||
CGContextStrokePath(fl_gc);
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#endif
|
||||
@ -275,7 +279,7 @@ void fl_yxline(int x, int y, int y1, int x2) {
|
||||
Draws a vertical line from (x,y) to (x,y1) then a horizontal from (x,y1)
|
||||
to (x2,y1), then another vertical from (x2,y1) to (x2,y3)
|
||||
*/
|
||||
void fl_yxline(int x, int y, int y1, int x2, int y3) {
|
||||
void Fl_Device::yxline(int x, int y, int y1, int x2, int y3) {
|
||||
#if defined(USE_X11)
|
||||
XPoint p[4];
|
||||
p[0].x = p[1].x = x; p[0].y = y;
|
||||
@ -291,7 +295,7 @@ void fl_yxline(int x, int y, int y1, int x2, int y3) {
|
||||
LineTo(fl_gc, x2, y3);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#endif
|
||||
@ -301,7 +305,7 @@ void fl_yxline(int x, int y, int y1, int x2, int y3) {
|
||||
CGContextAddLineToPoint(fl_gc, x2, y3);
|
||||
CGContextStrokePath(fl_gc);
|
||||
#ifdef __APPLE_COCOA__
|
||||
if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
if (USINGQUARTZPRINTER || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(fl_gc, false);
|
||||
#else
|
||||
if (fl_quartz_line_width_==1.0f) CGContextSetShouldAntialias(fl_gc, true);
|
||||
#endif
|
||||
@ -313,7 +317,7 @@ void fl_yxline(int x, int y, int y1, int x2, int y3) {
|
||||
/**
|
||||
Draws a line from (x,y) to (x1,y1)
|
||||
*/
|
||||
void fl_line(int x, int y, int x1, int y1) {
|
||||
void Fl_Device::line(int x, int y, int x1, int y1) {
|
||||
#if defined(USE_X11)
|
||||
XDrawLine(fl_display, fl_window, fl_gc, x, y, x1, y1);
|
||||
#elif defined(WIN32)
|
||||
@ -344,7 +348,7 @@ void fl_line(int x, int y, int x1, int y1) {
|
||||
/**
|
||||
Draws a line from (x,y) to (x1,y1) and another from (x1,y1) to (x2,y2)
|
||||
*/
|
||||
void fl_line(int x, int y, int x1, int y1, int x2, int y2) {
|
||||
void Fl_Device::line(int x, int y, int x1, int y1, int x2, int y2) {
|
||||
#if defined(USE_X11)
|
||||
XPoint p[3];
|
||||
p[0].x = x; p[0].y = y;
|
||||
@ -381,7 +385,7 @@ void fl_line(int x, int y, int x1, int y1, int x2, int y2) {
|
||||
/**
|
||||
Outlines a 3-sided polygon with lines
|
||||
*/
|
||||
void fl_loop(int x, int y, int x1, int y1, int x2, int y2) {
|
||||
void Fl_Device::loop(int x, int y, int x1, int y1, int x2, int y2) {
|
||||
#if defined(USE_X11)
|
||||
XPoint p[4];
|
||||
p[0].x = x; p[0].y = y;
|
||||
@ -414,7 +418,7 @@ void fl_loop(int x, int y, int x1, int y1, int x2, int y2) {
|
||||
/**
|
||||
Outlines a 4-sided polygon with lines
|
||||
*/
|
||||
void fl_loop(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) {
|
||||
void Fl_Device::loop(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) {
|
||||
#if defined(USE_X11)
|
||||
XPoint p[5];
|
||||
p[0].x = x; p[0].y = y;
|
||||
@ -450,7 +454,7 @@ void fl_loop(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) {
|
||||
/**
|
||||
Fills a 3-sided polygon. The polygon must be convex.
|
||||
*/
|
||||
void fl_polygon(int x, int y, int x1, int y1, int x2, int y2) {
|
||||
void Fl_Device::polygon(int x, int y, int x1, int y1, int x2, int y2) {
|
||||
XPoint p[4];
|
||||
p[0].x = x; p[0].y = y;
|
||||
p[1].x = x1; p[1].y = y1;
|
||||
@ -482,7 +486,7 @@ void fl_polygon(int x, int y, int x1, int y1, int x2, int y2) {
|
||||
/**
|
||||
Fills a 4-sided polygon. The polygon must be convex.
|
||||
*/
|
||||
void fl_polygon(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) {
|
||||
void Fl_Device::polygon(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) {
|
||||
XPoint p[5];
|
||||
p[0].x = x; p[0].y = y;
|
||||
p[1].x = x1; p[1].y = y1;
|
||||
@ -516,7 +520,7 @@ void fl_polygon(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) {
|
||||
/**
|
||||
Draws a single pixel at the given coordinates
|
||||
*/
|
||||
void fl_point(int x, int y) {
|
||||
void Fl_Device::point(int x, int y) {
|
||||
#if defined(USE_X11)
|
||||
XDrawPoint(fl_display, fl_window, fl_gc, x, y);
|
||||
#elif defined(WIN32)
|
||||
@ -645,7 +649,7 @@ Fl_Region fl_clip_region() {
|
||||
new region onto the stack.
|
||||
\param[in] x,y,w,h position and size
|
||||
*/
|
||||
void fl_push_clip(int x, int y, int w, int h) {
|
||||
void Fl_Device::push_clip(int x, int y, int w, int h) {
|
||||
Fl_Region r;
|
||||
if (w > 0 && h > 0) {
|
||||
r = XRectangleRegion(x,y,w,h);
|
||||
@ -694,7 +698,7 @@ void fl_push_clip(int x, int y, int w, int h) {
|
||||
/**
|
||||
Pushes an empty clip region onto the stack so nothing will be clipped.
|
||||
*/
|
||||
void fl_push_no_clip() {
|
||||
void Fl_Device::push_no_clip() {
|
||||
if (rstackptr < STACK_MAX) rstack[++rstackptr] = 0;
|
||||
else Fl::warning("fl_push_no_clip: clip stack overflow!\n");
|
||||
fl_restore_clip();
|
||||
@ -708,7 +712,7 @@ void fl_push_no_clip() {
|
||||
Unpredictable results may occur if the clip stack is not empty when
|
||||
you return to FLTK.
|
||||
*/
|
||||
void fl_pop_clip() {
|
||||
void Fl_Device::pop_clip() {
|
||||
if (rstackptr > 0) {
|
||||
Fl_Region oldr = rstack[rstackptr--];
|
||||
if (oldr) XDestroyRegion(oldr);
|
||||
@ -726,7 +730,7 @@ void fl_pop_clip() {
|
||||
Under X this returns 2 if the rectangle is partially clipped,
|
||||
and 1 if it is entirely inside the clip region.
|
||||
*/
|
||||
int fl_not_clipped(int x, int y, int w, int h) {
|
||||
int Fl_Device::not_clipped(int x, int y, int w, int h) {
|
||||
if (x+w <= 0 || y+h <= 0) return 0;
|
||||
Fl_Region r = rstack[rstackptr];
|
||||
#if defined (USE_X11)
|
||||
@ -734,12 +738,19 @@ int fl_not_clipped(int x, int y, int w, int h) {
|
||||
#elif defined(WIN32)
|
||||
if (!r) return 1;
|
||||
RECT rect;
|
||||
rect.left = x; rect.top = y; rect.right = x+w; rect.bottom = y+h;
|
||||
if (Fl_Device::current()->type() == Fl_Device::gdi_printer) { // in case of print context, convert coords from logical to device
|
||||
POINT pt[2] = { {x, y}, {x + w, y + h} };
|
||||
LPtoDP(fl_gc, pt, 2);
|
||||
rect.left = pt[0].x; rect.top = pt[0].y; rect.right = pt[1].x; rect.bottom = pt[1].y;
|
||||
}
|
||||
else {
|
||||
rect.left = x; rect.top = y; rect.right = x+w; rect.bottom = y+h;
|
||||
}
|
||||
return RectInRegion(r,&rect);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
if (!r) return 1;
|
||||
#ifdef __APPLE_COCOA__
|
||||
CGRect arg = FL_CGRECTMAKE_COCOA(x, y, w, h);
|
||||
CGRect arg = fl_cgrectmake_cocoa(x, y, w, h);
|
||||
for(int i = 0; i < r->count; i++) {
|
||||
CGRect test = CGRectIntersection(r->rects[i], arg);
|
||||
if( ! CGRectIsEmpty(test)) return 1;
|
||||
@ -770,7 +781,7 @@ int fl_not_clipped(int x, int y, int w, int h) {
|
||||
completely outside the region.
|
||||
\returns Non-zero if the resulting rectangle is different to the original.
|
||||
*/
|
||||
int fl_clip_box(int x, int y, int w, int h, int& X, int& Y, int& W, int& H){
|
||||
int Fl_Device::clip_box(int x, int y, int w, int h, int& X, int& Y, int& W, int& H){
|
||||
X = x; Y = y; W = w; H = h;
|
||||
Fl_Region r = rstack[rstackptr];
|
||||
if (!r) return 0;
|
||||
@ -806,10 +817,17 @@ int fl_clip_box(int x, int y, int w, int h, int& X, int& Y, int& W, int& H){
|
||||
ret = 2;
|
||||
} else if (EqualRgn(temp, rr)) { // complete
|
||||
ret = 0;
|
||||
} else { // parital intersection
|
||||
} else { // partial intersection
|
||||
RECT rect;
|
||||
GetRgnBox(temp, &rect);
|
||||
X = rect.left; Y = rect.top; W = rect.right - X; H = rect.bottom - Y;
|
||||
if(Fl_Device::current()->type() == Fl_Device::gdi_printer) { // if print context, convert coords from device to logical
|
||||
POINT pt[2] = { {rect.left, rect.top}, {rect.right, rect.bottom} };
|
||||
DPtoLP(fl_gc, pt, 2);
|
||||
X = pt[0].x; Y = pt[0].y; W = pt[1].x - X; H = pt[1].y - Y;
|
||||
}
|
||||
else {
|
||||
X = rect.left; Y = rect.top; W = rect.right - X; H = rect.bottom - Y;
|
||||
}
|
||||
ret = 1;
|
||||
}
|
||||
DeleteObject(temp);
|
||||
@ -817,7 +835,7 @@ int fl_clip_box(int x, int y, int w, int h, int& X, int& Y, int& W, int& H){
|
||||
return ret;
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#ifdef __APPLE_COCOA__
|
||||
CGRect arg = FL_CGRECTMAKE_COCOA(x, y, w, h);
|
||||
CGRect arg = fl_cgrectmake_cocoa(x, y, w, h);
|
||||
CGRect u = CGRectMake(0,0,0,0);
|
||||
CGRect test;
|
||||
for(int i = 0; i < r->count; i++) {
|
||||
|
@ -49,6 +49,7 @@ struct matrix {double a, b, c, d, x, y;};
|
||||
static matrix m = {1, 0, 0, 1, 0, 0};
|
||||
|
||||
static matrix stack[32];
|
||||
matrix * fl_matrix = &m;
|
||||
static int sptr = 0;
|
||||
|
||||
/**
|
||||
@ -147,22 +148,22 @@ enum {LINE, LOOP, POLYGON, POINT_};
|
||||
/**
|
||||
Starts drawing a list of points. Points are added to the list with fl_vertex()
|
||||
*/
|
||||
void fl_begin_points() {n = 0; what = POINT_;}
|
||||
void Fl_Device::begin_points() {n = 0; what = POINT_;}
|
||||
|
||||
/**
|
||||
Starts drawing a list of lines.
|
||||
*/
|
||||
void fl_begin_line() {n = 0; what = LINE;}
|
||||
void Fl_Device::begin_line() {n = 0; what = LINE;}
|
||||
|
||||
/**
|
||||
Starts drawing a closed sequence of lines.
|
||||
*/
|
||||
void fl_begin_loop() {n = 0; what = LOOP;}
|
||||
void Fl_Device::begin_loop() {n = 0; what = LOOP;}
|
||||
|
||||
/**
|
||||
Starts drawing a convex filled polygon.
|
||||
*/
|
||||
void fl_begin_polygon() {n = 0; what = POLYGON;}
|
||||
void Fl_Device::begin_polygon() {n = 0; what = POLYGON;}
|
||||
|
||||
/**
|
||||
Transforms coordinate using the current transformation matrix.
|
||||
@ -204,7 +205,7 @@ static void fl_transformed_vertex(COORD_T x, COORD_T y) {
|
||||
Adds coordinate pair to the vertex list without further transformations.
|
||||
\param[in] xf,yf transformed coordinate
|
||||
*/
|
||||
void fl_transformed_vertex(double xf, double yf) {
|
||||
void Fl_Device::transformed_vertex(double xf, double yf) {
|
||||
#ifdef __APPLE_QUARTZ__
|
||||
fl_transformed_vertex(COORD_T(xf), COORD_T(yf));
|
||||
#else
|
||||
@ -216,14 +217,14 @@ void fl_transformed_vertex(double xf, double yf) {
|
||||
Adds a single vertex to the current path.
|
||||
\param[in] x,y coordinate
|
||||
*/
|
||||
void fl_vertex(double x,double y) {
|
||||
void Fl_Device::vertex(double x,double y) {
|
||||
fl_transformed_vertex(x*m.a + y*m.c + m.x, x*m.b + y*m.d + m.y);
|
||||
}
|
||||
|
||||
/**
|
||||
Ends list of points, and draws.
|
||||
*/
|
||||
void fl_end_points() {
|
||||
void Fl_Device::end_points() {
|
||||
#if defined(USE_X11)
|
||||
if (n>1) XDrawPoints(fl_display, fl_window, fl_gc, p, n, 0);
|
||||
#elif defined(WIN32)
|
||||
@ -252,7 +253,7 @@ void fl_end_points() {
|
||||
/**
|
||||
Ends list of lines, and draws.
|
||||
*/
|
||||
void fl_end_line() {
|
||||
void Fl_Device::end_line() {
|
||||
if (n < 2) {
|
||||
fl_end_points();
|
||||
return;
|
||||
@ -285,7 +286,7 @@ static void fixloop() { // remove equal points from closed path
|
||||
/**
|
||||
Ends closed sequence of lines, and draws.
|
||||
*/
|
||||
void fl_end_loop() {
|
||||
void Fl_Device::end_loop() {
|
||||
fixloop();
|
||||
if (n>2) fl_transformed_vertex((COORD_T)p[0].x, (COORD_T)p[0].y);
|
||||
fl_end_line();
|
||||
@ -294,7 +295,7 @@ void fl_end_loop() {
|
||||
/**
|
||||
Ends convex filled polygon, and draws.
|
||||
*/
|
||||
void fl_end_polygon() {
|
||||
void Fl_Device::end_polygon() {
|
||||
fixloop();
|
||||
if (n < 3) {
|
||||
fl_end_line();
|
||||
@ -325,7 +326,7 @@ void fl_end_polygon() {
|
||||
#endif
|
||||
}
|
||||
|
||||
static int gap;
|
||||
static int gap_;
|
||||
#if defined(WIN32)
|
||||
static int counts[20];
|
||||
static int numcount;
|
||||
@ -345,9 +346,9 @@ static int numcount;
|
||||
whether "even/odd" or "non-zero" winding rules are used to fill them.
|
||||
Holes should be drawn in the opposite direction to the outside loop.
|
||||
*/
|
||||
void fl_begin_complex_polygon() {
|
||||
void Fl_Device::begin_complex_polygon() {
|
||||
fl_begin_polygon();
|
||||
gap = 0;
|
||||
gap_ = 0;
|
||||
#if defined(WIN32)
|
||||
numcount = 0;
|
||||
#endif
|
||||
@ -359,23 +360,23 @@ void fl_begin_complex_polygon() {
|
||||
It is unnecessary but harmless to call fl_gap() before the first vertex,
|
||||
after the last vertex, or several times in a row.
|
||||
*/
|
||||
void fl_gap() {
|
||||
while (n>gap+2 && p[n-1].x == p[gap].x && p[n-1].y == p[gap].y) n--;
|
||||
if (n > gap+2) {
|
||||
fl_transformed_vertex((COORD_T)p[gap].x, (COORD_T)p[gap].y);
|
||||
void Fl_Device::gap() {
|
||||
while (n>gap_+2 && p[n-1].x == p[gap_].x && p[n-1].y == p[gap_].y) n--;
|
||||
if (n > gap_+2) {
|
||||
fl_transformed_vertex((COORD_T)p[gap_].x, (COORD_T)p[gap_].y);
|
||||
#if defined(WIN32)
|
||||
counts[numcount++] = n-gap;
|
||||
counts[numcount++] = n-gap_;
|
||||
#endif
|
||||
gap = n;
|
||||
gap_ = n;
|
||||
} else {
|
||||
n = gap;
|
||||
n = gap_;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Ends complex filled polygon, and draws.
|
||||
*/
|
||||
void fl_end_complex_polygon() {
|
||||
void Fl_Device::end_complex_polygon() {
|
||||
fl_gap();
|
||||
if (n < 3) {
|
||||
fl_end_line();
|
||||
@ -417,7 +418,7 @@ void fl_end_complex_polygon() {
|
||||
a complex polygon you must use fl_arc()
|
||||
\param[in] x,y,r center and radius of circle
|
||||
*/
|
||||
void fl_circle(double x, double y,double r) {
|
||||
void Fl_Device::circle(double x, double y,double r) {
|
||||
double xt = fl_transform_x(x,y);
|
||||
double yt = fl_transform_y(x,y);
|
||||
double rx = r * (m.c ? sqrt(m.a*m.a+m.c*m.c) : fabs(m.a));
|
||||
|
414
src/makedepend
414
src/makedepend
@ -4,30 +4,33 @@ Fl.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
Fl.o: ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H
|
||||
Fl.o: flstring.h ../FL/fl_draw.H
|
||||
Fl.o: flstring.h ../FL/fl_draw.H ../FL/Fl_Device.H
|
||||
Fl_Adjuster.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Adjuster.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Adjuster.o: ../FL/fl_types.h ../FL/Fl_Adjuster.H ../FL/Fl_Valuator.H
|
||||
Fl_Adjuster.o: ../FL/Fl_Widget.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H
|
||||
Fl_Adjuster.o: ../FL/fl_draw.H ../FL/Fl_Window.H fastarrow.h mediumarrow.h
|
||||
Fl_Adjuster.o: slowarrow.h
|
||||
Fl_Adjuster.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Adjuster.o: fastarrow.h mediumarrow.h slowarrow.h
|
||||
Fl_Bitmap.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Bitmap.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Bitmap.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H
|
||||
Fl_Bitmap.o: ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H
|
||||
Fl_Bitmap.o: ../FL/Fl_Image.H ../FL/Fl_Bitmap.H flstring.h ../config.h
|
||||
Fl_Bitmap.o: ../FL/Fl_Device.H ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H
|
||||
Fl_Bitmap.o: ../FL/Fl_Widget.H ../FL/Fl_Image.H ../FL/Fl_Bitmap.H
|
||||
Fl_Bitmap.o: ../FL/Fl_Printer.H ../FL/Fl_Device.H ../FL/Fl_Pixmap.H
|
||||
Fl_Bitmap.o: ../FL/Fl_RGB_Image.H flstring.h ../config.h
|
||||
Fl_Browser.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Browser.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Browser.o: ../FL/fl_types.h ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
|
||||
Fl_Browser.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H
|
||||
Fl_Browser.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Image.H
|
||||
Fl_Browser.o: ../FL/fl_draw.H ../FL/Fl_Window.H flstring.h ../config.h
|
||||
Fl_Browser.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Browser.o: flstring.h ../config.h
|
||||
Fl_Browser_.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Browser_.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Browser_.o: ../FL/fl_types.h ../FL/Fl_Widget.H ../FL/Fl_Browser_.H
|
||||
Fl_Browser_.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H
|
||||
Fl_Browser_.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H
|
||||
Fl_Browser_.o: ../FL/Fl_Window.H
|
||||
Fl_Browser_.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Browser_load.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Browser_load.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Browser_load.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Browser.H
|
||||
@ -43,15 +46,15 @@ Fl_Button.o: ../FL/Fl_Group.H ../FL/Fl_Window.H ../FL/Fl_Group.H
|
||||
Fl_Chart.o: ../FL/math.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Chart.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Chart.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Chart.H
|
||||
Fl_Chart.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H flstring.h
|
||||
Fl_Chart.o: ../config.h
|
||||
Fl_Chart.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Chart.o: ../FL/Fl_Device.H ../FL/x.H flstring.h ../config.h
|
||||
Fl_Check_Browser.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/fl_draw.H
|
||||
Fl_Check_Browser.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Check_Browser.o: ../FL/Fl_Window.H ../FL/Fl_Check_Browser.H ../FL/Fl.H
|
||||
Fl_Check_Browser.o: ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
|
||||
Fl_Check_Browser.o: ../FL/Fl_Browser_.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
Fl_Check_Browser.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
Fl_Check_Browser.o: ../FL/Fl_Valuator.H ../FL/Fl.H
|
||||
Fl_Check_Browser.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Check_Browser.o: ../FL/Xutf8.h ../FL/Fl_Check_Browser.H ../FL/Fl.H
|
||||
Fl_Check_Browser.o: ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Fl_Browser_.H
|
||||
Fl_Check_Browser.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H
|
||||
Fl_Check_Browser.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl.H
|
||||
Fl_Check_Button.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Check_Button.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Check_Button.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Check_Button.H
|
||||
@ -61,11 +64,12 @@ Fl_Choice.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Choice.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Choice.o: ../FL/fl_types.h ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
|
||||
Fl_Choice.o: ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
|
||||
Fl_Choice.o: ../FL/fl_draw.H ../FL/Fl_Window.H flstring.h ../config.h
|
||||
Fl_Choice.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Choice.o: flstring.h ../config.h
|
||||
Fl_Clock.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Clock.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Clock.o: ../FL/fl_types.h ../FL/Fl_Clock.H ../FL/Fl_Widget.H
|
||||
Fl_Clock.o: ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Clock.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Color_Chooser.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Color_Chooser.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Color_Chooser.o: ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
@ -75,21 +79,29 @@ Fl_Color_Chooser.o: ../FL/Fl_Button.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
|
||||
Fl_Color_Chooser.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
|
||||
Fl_Color_Chooser.o: ../FL/Fl_Value_Input.H ../FL/Fl_Valuator.H
|
||||
Fl_Color_Chooser.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/fl_draw.H
|
||||
Fl_Color_Chooser.o: ../FL/Fl_Window.H ../FL/math.h ../FL/Fl_Window.H
|
||||
Fl_Color_Chooser.o: ../FL/Fl_Group.H
|
||||
Fl_Color_Chooser.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Color_Chooser.o: ../FL/math.h ../FL/Fl_Window.H ../FL/Fl_Group.H
|
||||
Fl_Counter.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Counter.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Counter.o: ../FL/fl_types.h ../FL/Fl_Counter.H ../FL/Fl_Valuator.H
|
||||
Fl_Counter.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Counter.o: ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Dial.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Dial.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Dial.o: ../FL/fl_types.h ../FL/Fl_Dial.H ../FL/Fl_Valuator.H
|
||||
Fl_Dial.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/math.h
|
||||
Fl_Dial.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Dial.o: ../FL/Fl_Device.H ../FL/x.H ../FL/math.h
|
||||
Fl_Device.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Device.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Device.o: ../FL/fl_types.h ../FL/Fl_Device.H ../FL/Fl_Printer.H
|
||||
Fl_Device.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Device.o: ../FL/Fl_Pixmap.H ../FL/Fl_Image.H ../FL/Fl_RGB_Image.H
|
||||
Fl_Device.o: ../FL/Fl_Bitmap.H ../FL/Fl_Image.H
|
||||
Fl_Double_Window.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Double_Window.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Double_Window.o: ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Double_Window.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/x.H
|
||||
Fl_Double_Window.o: ../FL/fl_draw.H
|
||||
Fl_Double_Window.o: ../FL/fl_draw.H ../FL/Fl_Device.H
|
||||
Fl_File_Browser.o: ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H
|
||||
Fl_File_Browser.o: ../FL/Fl_Browser_.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
Fl_File_Browser.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
@ -97,8 +109,9 @@ Fl_File_Browser.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
Fl_File_Browser.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_File_Browser.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Fl_Image.H
|
||||
Fl_File_Browser.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H
|
||||
Fl_File_Browser.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/filename.H
|
||||
Fl_File_Browser.o: ../FL/Fl_Image.H flstring.h ../config.h
|
||||
Fl_File_Browser.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H
|
||||
Fl_File_Browser.o: ../FL/x.H ../FL/filename.H ../FL/Fl_Image.H flstring.h
|
||||
Fl_File_Browser.o: ../config.h
|
||||
Fl_File_Chooser.o: ../FL/Fl_File_Chooser.H ../FL/Fl.H ../FL/fl_utf8.h
|
||||
Fl_File_Chooser.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
|
||||
Fl_File_Chooser.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
@ -114,7 +127,7 @@ Fl_File_Chooser.o: ../FL/filename.H ../FL/Fl_Box.H ../FL/Fl_Check_Button.H
|
||||
Fl_File_Chooser.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H
|
||||
Fl_File_Chooser.o: ../FL/Fl_File_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
|
||||
Fl_File_Chooser.o: ../FL/Fl_Return_Button.H ../FL/fl_ask.H ../FL/fl_draw.H
|
||||
Fl_File_Chooser.o: ../FL/Fl_Bitmap.H
|
||||
Fl_File_Chooser.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Bitmap.H
|
||||
Fl_File_Chooser2.o: ../FL/Fl_File_Chooser.H ../FL/Fl.H ../FL/fl_utf8.h
|
||||
Fl_File_Chooser2.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
|
||||
Fl_File_Chooser2.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
@ -136,54 +149,61 @@ Fl_File_Icon.o: ../FL/fl_utf8.h flstring.h ../FL/Fl_Export.H ../config.h
|
||||
Fl_File_Icon.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/fl_utf8.h
|
||||
Fl_File_Icon.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_File_Icon.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Widget.H
|
||||
Fl_File_Icon.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/filename.H
|
||||
Fl_File_Icon.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_File_Icon.o: ../FL/filename.H
|
||||
Fl_File_Input.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_File_Input.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_File_Input.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_File_Input.H
|
||||
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_File_Input.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H flstring.h
|
||||
Fl_File_Input.o: ../config.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
|
||||
Fl_Group.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_draw.H
|
||||
Fl_Group.o: ../FL/Fl_Window.H
|
||||
Fl_Group.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Help_View.o: ../FL/Fl_Help_View.H ../FL/Fl.H ../FL/fl_utf8.h
|
||||
Fl_Help_View.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
|
||||
Fl_Help_View.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Help_View.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H
|
||||
Fl_Help_View.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H
|
||||
Fl_Help_View.o: ../FL/Fl_Window.H ../FL/Fl_Shared_Image.H ../FL/Fl_Image.H
|
||||
Fl_Help_View.o: ../FL/Fl_Window.H ../FL/Fl_Pixmap.H ../FL/x.H ../FL/fl_utf8.h
|
||||
Fl_Help_View.o: ../FL/filename.H flstring.h ../config.h
|
||||
Fl_Help_View.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Help_View.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Image.H ../FL/Fl_Window.H
|
||||
Fl_Help_View.o: ../FL/Fl_Pixmap.H ../FL/fl_utf8.h ../FL/filename.H flstring.h
|
||||
Fl_Help_View.o: ../config.h
|
||||
Fl_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Image.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Image.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/x.H
|
||||
Fl_Image.o: ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H
|
||||
Fl_Image.o: ../FL/Fl_Image.H ../FL/Fl_Image.H flstring.h ../config.h
|
||||
Fl_Image.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Image.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Widget.H
|
||||
Fl_Image.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H
|
||||
Fl_Image.o: ../FL/Fl_Image.H ../FL/Fl_Printer.H ../FL/Fl_Device.H
|
||||
Fl_Image.o: ../FL/Fl_Pixmap.H ../FL/Fl_RGB_Image.H ../FL/Fl_Bitmap.H
|
||||
Fl_Image.o: flstring.h ../config.h
|
||||
Fl_Input.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Input.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Input.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
|
||||
Fl_Input.o: ../FL/Fl_Widget.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
|
||||
Fl_Input.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/fl_ask.H flstring.h
|
||||
Fl_Input.o: ../config.h
|
||||
Fl_Input.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Input.o: ../FL/fl_ask.H flstring.h ../config.h
|
||||
Fl_Input_.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Input_.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Input_.o: ../FL/fl_types.h ../FL/Fl_Input_.H ../FL/Fl_Widget.H
|
||||
Fl_Input_.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/fl_draw.H
|
||||
Fl_Input_.o: ../FL/Fl_Window.H ../FL/fl_ask.H ../FL/fl_utf8.h flstring.h
|
||||
Fl_Input_.o: ../config.h
|
||||
Fl_Input_.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H ../FL/fl_ask.H
|
||||
Fl_Input_.o: ../FL/fl_utf8.h flstring.h ../config.h
|
||||
Fl_Light_Button.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Light_Button.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Light_Button.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Light_Button.H
|
||||
Fl_Light_Button.o: ../FL/Fl_Button.H ../FL/Fl_Widget.H ../FL/fl_draw.H
|
||||
Fl_Light_Button.o: ../FL/Fl_Window.H flstring.h ../config.h
|
||||
Fl_Light_Button.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H flstring.h
|
||||
Fl_Light_Button.o: ../config.h
|
||||
Fl_Menu.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Menu.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Menu.o: ../FL/fl_types.h ../FL/Fl_Menu_Window.H ../FL/Fl_Single_Window.H
|
||||
Fl_Menu.o: ../FL/Fl_Window.H ../FL/Fl_Menu_.H ../FL/Fl_Widget.H
|
||||
Fl_Menu.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/fl_draw.H flstring.h
|
||||
Fl_Menu.o: ../config.h
|
||||
Fl_Menu.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/fl_draw.H
|
||||
Fl_Menu.o: ../FL/Fl_Device.H ../FL/x.H flstring.h ../config.h
|
||||
Fl_Menu_.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Menu_.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Menu_.o: ../FL/fl_types.h ../FL/Fl_Menu_.H ../FL/Fl_Widget.H
|
||||
@ -192,17 +212,18 @@ Fl_Menu_Bar.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Menu_Bar.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Menu_Bar.o: ../FL/fl_types.h ../FL/Fl_Menu_Bar.H ../FL/Fl_Menu_.H
|
||||
Fl_Menu_Bar.o: ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
|
||||
Fl_Menu_Bar.o: ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Menu_Bar.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Menu_Button.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Menu_Button.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Menu_Button.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Menu_Button.H
|
||||
Fl_Menu_Button.o: ../FL/Fl_Menu_.H ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H
|
||||
Fl_Menu_Button.o: ../FL/Fl_Image.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Menu_Button.o: ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Menu_Window.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Menu_Window.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Menu_Window.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/x.H
|
||||
Fl_Menu_Window.o: ../FL/Fl_Window.H ../FL/fl_draw.H ../FL/Fl_Menu_Window.H
|
||||
Fl_Menu_Window.o: ../FL/Fl_Single_Window.H
|
||||
Fl_Menu_Window.o: ../FL/Fl_Window.H ../FL/fl_draw.H ../FL/Fl_Device.H
|
||||
Fl_Menu_Window.o: ../FL/Fl_Menu_Window.H ../FL/Fl_Single_Window.H
|
||||
Fl_Menu_add.o: ../FL/Fl_Menu_.H ../FL/Fl_Widget.H ../FL/Enumerations.H
|
||||
Fl_Menu_add.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Menu_Item.H
|
||||
Fl_Menu_add.o: ../FL/Fl_Image.H flstring.h ../FL/Fl_Export.H ../config.h
|
||||
@ -243,34 +264,59 @@ Fl_Overlay_Window.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Overlay_Window.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Overlay_Window.o: ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Overlay_Window.o: ../FL/Fl_Overlay_Window.H ../FL/Fl_Double_Window.H
|
||||
Fl_Overlay_Window.o: ../FL/Fl_Window.H ../FL/fl_draw.H ../FL/x.H
|
||||
Fl_Overlay_Window.o: ../FL/Fl_Window.H ../FL/fl_draw.H ../FL/Fl_Device.H
|
||||
Fl_Overlay_Window.o: ../FL/x.H
|
||||
Fl_Pack.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Pack.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Pack.o: ../FL/fl_types.h ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/fl_draw.H
|
||||
Fl_Pack.o: ../FL/Fl_Window.H
|
||||
Fl_Pack.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Pixmap.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Pixmap.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Pixmap.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/x.H
|
||||
Fl_Pixmap.o: ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H
|
||||
Fl_Pixmap.o: ../FL/Fl_Image.H ../FL/Fl_Pixmap.H flstring.h ../config.h
|
||||
Fl_Pixmap.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Pixmap.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Widget.H
|
||||
Fl_Pixmap.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H
|
||||
Fl_Pixmap.o: ../FL/Fl_Pixmap.H ../FL/Fl_Printer.H ../FL/Fl_Device.H
|
||||
Fl_Pixmap.o: ../FL/Fl_RGB_Image.H ../FL/Fl_Bitmap.H flstring.h ../config.h
|
||||
Fl_Positioner.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Positioner.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Positioner.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Positioner.H
|
||||
Fl_Positioner.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Positioner.o: ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Preferences.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Preferences.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Preferences.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Preferences.H
|
||||
Fl_Preferences.o: ../FL/Fl_Plugin.H ../FL/Fl_Preferences.H ../FL/Fl_Tree.H
|
||||
Fl_Preferences.o: ../FL/Fl_Group.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
Fl_Preferences.o: ../FL/Fl_Valuator.H ../FL/Fl_Widget.H ../FL/fl_draw.H
|
||||
Fl_Preferences.o: ../FL/Fl_Window.H ../FL/Fl_Tree_Item.H ../FL/Fl_Widget.H
|
||||
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_Preferences.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Preferences.o: ../FL/Fl_Tree_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H
|
||||
Fl_Preferences.o: ../FL/Fl_Tree_Item_Array.H ../FL/Fl_Tree_Prefs.H
|
||||
Fl_Preferences.o: ../FL/filename.H ../FL/fl_utf8.h flstring.h ../config.h
|
||||
Fl_Printer.o: ../FL/Fl_Printer.H ../FL/Fl_Device.H ../FL/fl_draw.H
|
||||
Fl_Printer.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Printer.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H ../FL/Xutf8.h
|
||||
Fl_Printer.o: ../FL/Fl_Pixmap.H ../FL/Fl_Image.H ../FL/Fl_RGB_Image.H
|
||||
Fl_Printer.o: ../FL/Fl_Bitmap.H ../src/Fl_PS_Printer.cxx ../FL/Fl.H
|
||||
Fl_Printer.o: ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Printer.o: ../FL/fl_ask.H ../FL/Fl_Native_File_Chooser.H
|
||||
Fl_Printer.o: ../FL/Fl_Native_File_Chooser_FLTK.H ../FL/Fl_File_Chooser.H
|
||||
Fl_Printer.o: ../FL/Fl_Double_Window.H ../FL/Fl_Group.H ../FL/Fl_Choice.H
|
||||
Fl_Printer.o: ../FL/Fl_Menu_.H ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H
|
||||
Fl_Printer.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Button.H ../FL/Fl_Preferences.H
|
||||
Fl_Printer.o: ../FL/Fl_Tile.H ../FL/Fl_Group.H ../FL/Fl_File_Browser.H
|
||||
Fl_Printer.o: ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
|
||||
Fl_Printer.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_File_Icon.H
|
||||
Fl_Printer.o: ../FL/Fl.H ../FL/filename.H ../FL/Fl_Box.H
|
||||
Fl_Printer.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H
|
||||
Fl_Printer.o: ../FL/Fl_Button.H ../FL/Fl_File_Input.H ../FL/Fl_Input.H
|
||||
Fl_Printer.o: ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H print_panel.cxx
|
||||
Fl_Printer.o: print_panel.h ../FL/Fl_Round_Button.H ../FL/Fl_Spinner.H
|
||||
Fl_Printer.o: ../FL/Enumerations.H ../FL/Fl_Repeat_Button.H
|
||||
Fl_Printer.o: ../FL/Fl_Progress.H ../src/flstring.h ../config.h
|
||||
Fl_Progress.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Progress.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Progress.o: ../FL/fl_types.h ../FL/Fl_Progress.H ../FL/Fl_Widget.H
|
||||
Fl_Progress.o: ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Progress.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Repeat_Button.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Repeat_Button.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Repeat_Button.o: ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
@ -281,10 +327,12 @@ Fl_Return_Button.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Return_Button.o: ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Return_Button.o: ../FL/Fl_Return_Button.H ../FL/Fl_Button.H
|
||||
Fl_Return_Button.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Return_Button.o: ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Roller.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Roller.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Roller.o: ../FL/fl_types.h ../FL/Fl_Roller.H ../FL/Fl_Valuator.H
|
||||
Fl_Roller.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Roller.o: ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Round_Button.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Round_Button.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Round_Button.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Round_Button.H
|
||||
@ -295,12 +343,13 @@ Fl_Scroll.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Scroll.o: ../FL/fl_types.h ../FL/Fl_Tiled_Image.H ../FL/Fl_Image.H
|
||||
Fl_Scroll.o: ../FL/Fl_Scroll.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
Fl_Scroll.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
Fl_Scroll.o: ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Scroll.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Scrollbar.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Scrollbar.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Scrollbar.o: ../FL/fl_types.h ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
Fl_Scrollbar.o: ../FL/Fl_Valuator.H ../FL/Fl_Widget.H ../FL/fl_draw.H
|
||||
Fl_Scrollbar.o: ../FL/Fl_Window.H flstring.h ../config.h
|
||||
Fl_Scrollbar.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H flstring.h
|
||||
Fl_Scrollbar.o: ../config.h
|
||||
Fl_Shared_Image.o: ../FL/fl_utf8.h flstring.h ../FL/Fl_Export.H ../config.h
|
||||
Fl_Shared_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
|
||||
Fl_Shared_Image.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
@ -311,26 +360,28 @@ Fl_Single_Window.o: ../FL/Fl_Single_Window.H ../FL/Fl_Window.H
|
||||
Fl_Slider.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Slider.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Slider.o: ../FL/fl_types.h ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
Fl_Slider.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H flstring.h
|
||||
Fl_Slider.o: ../config.h
|
||||
Fl_Slider.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Slider.o: ../FL/Fl_Device.H ../FL/x.H flstring.h ../config.h
|
||||
Fl_Table.o: ../FL/fl_draw.H ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Table.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Table.H ../FL/Fl.H
|
||||
Fl_Table.o: ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
|
||||
Fl_Table.o: ../FL/Fl_Group.H ../FL/Fl_Scroll.H ../FL/Fl_Group.H
|
||||
Fl_Table.o: ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
Fl_Table.o: ../FL/Fl_Valuator.H ../FL/Fl_Box.H ../FL/Fl_Scrollbar.H
|
||||
Fl_Table.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Table.o: ../FL/Xutf8.h ../FL/Fl_Table.H ../FL/Fl.H ../FL/fl_utf8.h
|
||||
Fl_Table.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Group.H
|
||||
Fl_Table.o: ../FL/Fl_Scroll.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
Fl_Table.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
Fl_Table.o: ../FL/Fl_Box.H ../FL/Fl_Scrollbar.H
|
||||
Fl_Table_Row.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Table_Row.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Table_Row.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Table_Row.o: ../FL/Fl_Table_Row.H ../FL/Fl_Table.H ../FL/Fl_Group.H
|
||||
Fl_Table_Row.o: ../FL/Fl_Scroll.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
Fl_Table_Row.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
Fl_Table_Row.o: ../FL/Fl_Box.H ../FL/Fl_Scrollbar.H
|
||||
Fl_Table_Row.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Table_Row.H
|
||||
Fl_Table_Row.o: ../FL/Fl_Table.H ../FL/Fl_Group.H ../FL/Fl_Scroll.H
|
||||
Fl_Table_Row.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H
|
||||
Fl_Table_Row.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Box.H
|
||||
Fl_Table_Row.o: ../FL/Fl_Scrollbar.H
|
||||
Fl_Tabs.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Tabs.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Tabs.o: ../FL/fl_types.h ../FL/Fl_Tabs.H ../FL/Fl_Group.H
|
||||
Fl_Tabs.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Tabs.o: ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H
|
||||
Fl_Tabs.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H
|
||||
Fl_Text_Buffer.o: ../FL/fl_utf8.h flstring.h ../FL/Fl_Export.H ../config.h
|
||||
Fl_Text_Buffer.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
|
||||
Fl_Text_Buffer.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
@ -339,18 +390,18 @@ Fl_Text_Display.o: ../FL/fl_utf8.h flstring.h ../FL/Fl_Export.H ../config.h
|
||||
Fl_Text_Display.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
|
||||
Fl_Text_Display.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Text_Display.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H
|
||||
Fl_Text_Display.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Group.H
|
||||
Fl_Text_Display.o: ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
Fl_Text_Display.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H
|
||||
Fl_Text_Display.o: ../FL/Fl_Window.H
|
||||
Fl_Text_Display.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H
|
||||
Fl_Text_Display.o: ../FL/x.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
Fl_Text_Display.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
Fl_Text_Display.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Window.H
|
||||
Fl_Text_Editor.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/Fl.H
|
||||
Fl_Text_Editor.o: ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
|
||||
Fl_Text_Editor.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Text_Editor.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
Fl_Text_Editor.o: ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H
|
||||
Fl_Text_Editor.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Scrollbar.H
|
||||
Fl_Text_Editor.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
Fl_Text_Editor.o: ../FL/Fl_Text_Buffer.H ../FL/fl_ask.H
|
||||
Fl_Text_Editor.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H
|
||||
Fl_Text_Editor.o: ../FL/x.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
Fl_Text_Editor.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H ../FL/fl_ask.H
|
||||
Fl_Tile.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Tile.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Tile.o: ../FL/fl_types.h ../FL/Fl_Tile.H ../FL/Fl_Group.H
|
||||
@ -359,25 +410,26 @@ Fl_Tiled_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Tiled_Image.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Tiled_Image.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Tiled_Image.H
|
||||
Fl_Tiled_Image.o: ../FL/Fl_Image.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Tiled_Image.o: ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Tree.o: ../FL/Fl_Tree.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Tree.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Tree.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Group.H
|
||||
Fl_Tree.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
Fl_Tree.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Tree.o: ../FL/Fl_Tree_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H
|
||||
Fl_Tree.o: ../FL/Fl_Tree_Item_Array.H ../FL/Fl_Tree_Prefs.H
|
||||
Fl_Tree.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Tree_Item.H ../FL/Fl_Widget.H
|
||||
Fl_Tree.o: ../FL/Fl_Image.H ../FL/Fl_Tree_Item_Array.H ../FL/Fl_Tree_Prefs.H
|
||||
Fl_Tree_Item.o: ../FL/Fl_Widget.H ../FL/Fl_Tree_Item.H ../FL/Fl.H
|
||||
Fl_Tree_Item.o: ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Tree_Item.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Tree_Item.o: ../FL/fl_types.h ../FL/Fl_Image.H ../FL/fl_draw.H
|
||||
Fl_Tree_Item.o: ../FL/Fl_Window.H ../FL/Fl_Tree_Item_Array.H
|
||||
Fl_Tree_Item.o: ../FL/Fl_Tree_Prefs.H
|
||||
Fl_Tree_Item.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Tree_Item.o: ../FL/Fl_Tree_Item_Array.H ../FL/Fl_Tree_Prefs.H
|
||||
Fl_Tree_Item_Array.o: ../FL/Fl_Tree_Item_Array.H ../FL/Fl_Tree_Item.H
|
||||
Fl_Tree_Item_Array.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Tree_Item_Array.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Tree_Item_Array.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Widget.H
|
||||
Fl_Tree_Item_Array.o: ../FL/Fl_Image.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Tree_Item_Array.o: ../FL/Fl_Tree_Prefs.H
|
||||
Fl_Tree_Item_Array.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Tree_Prefs.H
|
||||
Fl_Tree_Prefs.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Tree_Prefs.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Tree_Prefs.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Pixmap.H
|
||||
@ -385,8 +437,8 @@ Fl_Tree_Prefs.o: ../FL/Fl_Image.H ../FL/Fl_Tree_Prefs.H
|
||||
Fl_Tooltip.o: ../FL/Fl_Tooltip.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Tooltip.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Tooltip.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Widget.H
|
||||
Fl_Tooltip.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Menu_Window.H
|
||||
Fl_Tooltip.o: ../FL/Fl_Single_Window.H
|
||||
Fl_Tooltip.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Tooltip.o: ../FL/Fl_Menu_Window.H ../FL/Fl_Single_Window.H
|
||||
Fl_Valuator.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Valuator.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Valuator.o: ../FL/fl_types.h ../FL/Fl_Valuator.H ../FL/Fl_Widget.H
|
||||
@ -400,17 +452,18 @@ Fl_Value_Output.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Value_Output.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Value_Output.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Value_Output.H
|
||||
Fl_Value_Output.o: ../FL/Fl_Valuator.H ../FL/Fl_Widget.H ../FL/fl_draw.H
|
||||
Fl_Value_Output.o: ../FL/Fl_Window.H
|
||||
Fl_Value_Output.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Value_Slider.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Value_Slider.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Value_Slider.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Value_Slider.H
|
||||
Fl_Value_Slider.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Widget.H
|
||||
Fl_Value_Slider.o: ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Value_Slider.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H
|
||||
Fl_Value_Slider.o: ../FL/x.H
|
||||
Fl_Widget.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Widget.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Widget.o: ../FL/fl_types.h ../FL/Fl_Widget.H ../FL/Fl_Group.H
|
||||
Fl_Widget.o: ../FL/Fl_Tooltip.H ../FL/fl_draw.H ../FL/Fl_Window.H flstring.h
|
||||
Fl_Widget.o: ../config.h
|
||||
Fl_Widget.o: ../FL/Fl_Tooltip.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
Fl_Widget.o: ../FL/Fl_Device.H ../FL/x.H flstring.h ../config.h
|
||||
Fl_Window.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Window.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Window.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H
|
||||
@ -429,7 +482,7 @@ Fl_Window_iconize.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Xutf8.h
|
||||
Fl_Wizard.o: ../FL/Fl_Wizard.H ../FL/Fl_Group.H ../FL/Fl_Window.H
|
||||
Fl_Wizard.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Enumerations.H
|
||||
Fl_Wizard.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
|
||||
Fl_Wizard.o: ../FL/Fl_Window.H
|
||||
Fl_Wizard.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H ../FL/Xutf8.h
|
||||
Fl_XBM_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_XBM_Image.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_XBM_Image.o: ../FL/fl_types.h ../FL/Fl_XBM_Image.H ../FL/Fl_Bitmap.H
|
||||
@ -448,8 +501,8 @@ Fl_arg.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_arg.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_arg.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Window.H
|
||||
Fl_arg.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Tooltip.H
|
||||
Fl_arg.o: ../FL/Fl_Widget.H ../FL/filename.H ../FL/fl_draw.H flstring.h
|
||||
Fl_arg.o: ../config.h
|
||||
Fl_arg.o: ../FL/Fl_Widget.H ../FL/filename.H ../FL/fl_draw.H
|
||||
Fl_arg.o: ../FL/Fl_Device.H flstring.h ../config.h
|
||||
Fl_compose.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_compose.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_compose.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H
|
||||
@ -462,8 +515,8 @@ Fl_get_key.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H
|
||||
Fl_get_system_colors.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_get_system_colors.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_get_system_colors.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
|
||||
Fl_get_system_colors.o: ../FL/Fl_Window.H ../FL/x.H ../FL/math.h
|
||||
Fl_get_system_colors.o: ../FL/fl_utf8.h flstring.h ../config.h
|
||||
Fl_get_system_colors.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_get_system_colors.o: ../FL/math.h ../FL/fl_utf8.h flstring.h ../config.h
|
||||
Fl_get_system_colors.o: ../FL/Fl_Pixmap.H ../FL/Fl_Image.H
|
||||
Fl_get_system_colors.o: ../FL/Fl_Tiled_Image.H tile.xpm
|
||||
Fl_grab.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
@ -483,7 +536,10 @@ Fl_x.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_x.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_x.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Window.H
|
||||
Fl_x.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_utf8.h ../FL/Fl_Tooltip.H
|
||||
Fl_x.o: ../FL/Fl_Widget.H ../FL/fl_draw.H flstring.h
|
||||
Fl_x.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Device.H flstring.h
|
||||
Fl_x.o: ../FL/Fl_Printer.H ../FL/Fl_Device.H ../FL/Fl_Pixmap.H
|
||||
Fl_x.o: ../FL/Fl_Image.H ../FL/Fl_RGB_Image.H ../FL/Fl_Bitmap.H
|
||||
Fl_x.o: ../FL/Fl_Button.H
|
||||
filename_absolute.o: ../FL/filename.H ../FL/fl_utf8.h flstring.h
|
||||
filename_absolute.o: ../FL/Fl_Export.H ../config.h
|
||||
filename_expand.o: ../FL/filename.H ../FL/fl_utf8.h flstring.h
|
||||
@ -495,10 +551,11 @@ filename_list.o: ../FL/filename.H flstring.h ../FL/Fl_Export.H ../config.h
|
||||
filename_match.o: ../FL/filename.H
|
||||
filename_setext.o: ../FL/filename.H flstring.h ../FL/Fl_Export.H ../config.h
|
||||
fl_arc.o: ../FL/fl_draw.H ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_arc.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/math.h
|
||||
fl_arc.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
fl_arc.o: ../FL/Xutf8.h ../FL/math.h
|
||||
fl_arci.o: ../FL/fl_draw.H ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_arci.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/x.H ../FL/Xutf8.h
|
||||
fl_arci.o: ../config.h
|
||||
fl_arci.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
fl_arci.o: ../FL/Xutf8.h ../config.h
|
||||
fl_ask.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/Fl.H ../FL/fl_utf8.h
|
||||
fl_ask.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
fl_ask.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_ask.H ../FL/Fl_Box.H
|
||||
@ -506,24 +563,27 @@ fl_ask.o: ../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Return_Button.H
|
||||
fl_ask.o: ../FL/Fl_Button.H ../FL/Fl_Window.H ../FL/Fl_Group.H
|
||||
fl_ask.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Secret_Input.H
|
||||
fl_ask.o: ../FL/Fl_Input.H ../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H
|
||||
fl_ask.o: ../FL/Fl_Device.H
|
||||
fl_boxtype.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
fl_boxtype.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_boxtype.o: ../FL/fl_types.h ../FL/Fl_Widget.H ../FL/fl_draw.H
|
||||
fl_boxtype.o: ../FL/Fl_Window.H ../config.h
|
||||
fl_boxtype.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H ../config.h
|
||||
fl_color.o: Fl_XColor.H ../config.h ../FL/Enumerations.H ../FL/Fl.H
|
||||
fl_color.o: ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
|
||||
fl_color.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h ../FL/x.H
|
||||
fl_color.o: ../FL/Fl_Window.H ../FL/fl_draw.H fl_cmap.h
|
||||
fl_color.o: ../FL/Fl_Window.H ../FL/fl_draw.H ../FL/Fl_Device.H fl_cmap.h
|
||||
fl_cursor.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
fl_cursor.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_cursor.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
|
||||
fl_cursor.o: ../FL/Fl_Widget.H ../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H
|
||||
fl_cursor.o: ../FL/Fl_Device.H
|
||||
fl_curve.o: ../FL/fl_draw.H ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_curve.o: ../FL/fl_types.h ../FL/Fl_Window.H
|
||||
fl_curve.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
fl_curve.o: ../FL/Xutf8.h
|
||||
fl_diamond_box.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
fl_diamond_box.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
fl_diamond_box.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
|
||||
fl_diamond_box.o: ../FL/Fl_Window.H
|
||||
fl_diamond_box.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
fl_dnd.o: fl_dnd_x.cxx ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
fl_dnd.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
fl_dnd.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Window.H
|
||||
@ -532,27 +592,32 @@ fl_dnd.o: flstring.h ../config.h
|
||||
fl_draw.o: ../FL/fl_utf8.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
fl_draw.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
fl_draw.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
|
||||
fl_draw.o: ../FL/Fl_Window.H ../FL/Fl_Image.H flstring.h ../config.h
|
||||
fl_draw.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Image.H
|
||||
fl_draw.o: flstring.h ../config.h
|
||||
fl_draw_image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
fl_draw_image.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
fl_draw_image.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
|
||||
fl_draw_image.o: ../FL/Fl_Window.H ../FL/x.H Fl_XColor.H ../config.h
|
||||
fl_draw_image.o: ../FL/Enumerations.H flstring.h
|
||||
fl_draw_image.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H Fl_XColor.H
|
||||
fl_draw_image.o: ../config.h ../FL/Enumerations.H flstring.h
|
||||
fl_draw_pixmap.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
fl_draw_pixmap.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
fl_draw_pixmap.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
|
||||
fl_draw_pixmap.o: ../FL/Fl_Window.H ../FL/x.H flstring.h ../config.h
|
||||
fl_draw_pixmap.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H flstring.h
|
||||
fl_draw_pixmap.o: ../config.h
|
||||
fl_encoding_latin1.o: ../FL/fl_draw.H ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_encoding_latin1.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Enumerations.H
|
||||
fl_encoding_latin1.o: flstring.h ../FL/Fl_Export.H ../config.h
|
||||
fl_encoding_latin1.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Device.H
|
||||
fl_encoding_latin1.o: ../FL/x.H ../FL/Xutf8.h ../FL/Enumerations.H flstring.h
|
||||
fl_encoding_latin1.o: ../FL/Fl_Export.H ../config.h
|
||||
fl_encoding_mac_roman.o: ../FL/fl_draw.H ../FL/Enumerations.H
|
||||
fl_encoding_mac_roman.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Window.H
|
||||
fl_encoding_mac_roman.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Xutf8.h
|
||||
fl_encoding_mac_roman.o: ../FL/Enumerations.H flstring.h ../FL/Fl_Export.H
|
||||
fl_encoding_mac_roman.o: ../config.h
|
||||
fl_engraved_label.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
fl_engraved_label.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
fl_engraved_label.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Widget.H
|
||||
fl_engraved_label.o: ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
fl_engraved_label.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H
|
||||
fl_engraved_label.o: ../FL/x.H
|
||||
fl_file_dir.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/filename.H
|
||||
fl_file_dir.o: ../FL/Fl_File_Chooser.H ../FL/Fl.H ../FL/fl_utf8.h
|
||||
fl_file_dir.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
@ -570,51 +635,55 @@ fl_file_dir.o: ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H ../FL/fl_ask.H
|
||||
fl_font.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/Fl.H
|
||||
fl_font.o: ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
|
||||
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_font.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
fl_font.o: Fl_Font.H fl_font_xft.cxx
|
||||
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
|
||||
fl_gtk.o: ../FL/Fl_Device.H ../FL/x.H
|
||||
fl_labeltype.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
fl_labeltype.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_labeltype.o: ../FL/fl_types.h ../FL/Fl_Widget.H ../FL/Fl_Group.H
|
||||
fl_labeltype.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Image.H
|
||||
fl_labeltype.o: ../FL/Fl_Input_.H ../FL/Fl_Widget.H
|
||||
fl_labeltype.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
fl_labeltype.o: ../FL/Fl_Image.H ../FL/Fl_Input_.H ../FL/Fl_Widget.H
|
||||
fl_line_style.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
fl_line_style.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
fl_line_style.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
|
||||
fl_line_style.o: ../FL/Fl_Window.H ../FL/x.H flstring.h ../config.h
|
||||
fl_line_style.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H flstring.h
|
||||
fl_line_style.o: ../config.h
|
||||
fl_open_uri.o: ../FL/filename.H flstring.h ../FL/Fl_Export.H ../config.h
|
||||
fl_oval_box.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
fl_oval_box.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_oval_box.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
fl_oval_box.o: ../FL/Fl_Device.H ../FL/x.H
|
||||
fl_overlay.o: ../FL/x.H ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_overlay.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Xutf8.h
|
||||
fl_overlay.o: ../FL/fl_draw.H
|
||||
fl_overlay.o: ../FL/fl_draw.H ../FL/Fl_Device.H
|
||||
fl_overlay_visual.o: ../config.h
|
||||
fl_plastic.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
fl_plastic.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_plastic.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H flstring.h
|
||||
fl_plastic.o: ../config.h
|
||||
fl_plastic.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
fl_plastic.o: ../FL/Fl_Device.H ../FL/x.H flstring.h ../config.h
|
||||
fl_read_image.o: ../FL/x.H ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_read_image.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Xutf8.h ../FL/Fl.H
|
||||
fl_read_image.o: ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
fl_read_image.o: ../FL/fl_draw.H flstring.h ../config.h
|
||||
fl_read_image.o: ../FL/fl_draw.H ../FL/Fl_Device.H flstring.h ../config.h
|
||||
fl_rect.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
fl_rect.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
fl_rect.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Widget.H
|
||||
fl_rect.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/x.H
|
||||
fl_rect.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
fl_round_box.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
fl_round_box.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_round_box.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
fl_round_box.o: ../FL/Fl_Device.H ../FL/x.H
|
||||
fl_rounded_box.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
fl_rounded_box.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
fl_rounded_box.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
|
||||
fl_rounded_box.o: ../FL/Fl_Window.H
|
||||
fl_rounded_box.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
fl_set_font.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
fl_set_font.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_set_font.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H
|
||||
fl_set_font.o: flstring.h ../config.h Fl_Font.H
|
||||
fl_set_font.o: ../FL/Fl_Device.H flstring.h ../config.h Fl_Font.H
|
||||
fl_set_fonts.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
fl_set_fonts.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_set_fonts.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H Fl_Font.H
|
||||
@ -622,39 +691,46 @@ fl_set_fonts.o: ../config.h flstring.h fl_set_fonts_xft.cxx
|
||||
fl_scroll_area.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
fl_scroll_area.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
fl_scroll_area.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/x.H
|
||||
fl_scroll_area.o: ../FL/Fl_Window.H ../FL/fl_draw.H
|
||||
fl_scroll_area.o: ../FL/Fl_Window.H ../FL/fl_draw.H ../FL/Fl_Device.H
|
||||
fl_shadow_box.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
fl_shadow_box.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
fl_shadow_box.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
|
||||
fl_shadow_box.o: ../FL/Fl_Window.H
|
||||
fl_shadow_box.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
fl_shortcut.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
fl_shortcut.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_shortcut.o: ../FL/fl_types.h ../FL/Fl_Widget.H ../FL/Fl_Button.H
|
||||
fl_shortcut.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H flstring.h
|
||||
fl_shortcut.o: ../config.h ../FL/x.H
|
||||
fl_shortcut.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
fl_shortcut.o: ../FL/Fl_Device.H ../FL/x.H flstring.h ../config.h
|
||||
fl_show_colormap.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
fl_show_colormap.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
fl_show_colormap.o: ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
fl_show_colormap.o: ../FL/Fl_Single_Window.H ../FL/Fl_Window.H
|
||||
fl_show_colormap.o: ../FL/fl_draw.H ../FL/fl_show_colormap.H ../config.h
|
||||
fl_show_colormap.o: ../FL/fl_draw.H ../FL/Fl_Device.H ../FL/x.H
|
||||
fl_show_colormap.o: ../FL/fl_show_colormap.H ../config.h
|
||||
fl_symbols.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
fl_symbols.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
fl_symbols.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/math.h
|
||||
fl_symbols.o: flstring.h ../config.h
|
||||
fl_symbols.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
fl_symbols.o: ../FL/Fl_Device.H ../FL/x.H ../FL/math.h flstring.h ../config.h
|
||||
fl_vertex.o: ../config.h ../FL/fl_draw.H ../FL/Enumerations.H
|
||||
fl_vertex.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Window.H ../FL/x.H
|
||||
fl_vertex.o: ../FL/Xutf8.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
fl_vertex.o: ../FL/fl_types.h ../FL/math.h
|
||||
fl_vertex.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Window.H
|
||||
fl_vertex.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Xutf8.h ../FL/Fl.H
|
||||
fl_vertex.o: ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h ../FL/math.h
|
||||
screen_xywh.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
screen_xywh.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
screen_xywh.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H ../config.h
|
||||
fl_utf8.o: ../config.h ../FL/filename.H ../FL/Xutf8.h ../FL/fl_utf8.h
|
||||
ps_image.o: ../FL/Fl_Printer.H ../FL/Fl_Device.H ../FL/fl_draw.H
|
||||
ps_image.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
ps_image.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H ../FL/Xutf8.h
|
||||
ps_image.o: ../FL/Fl_Pixmap.H ../FL/Fl_Image.H ../FL/Fl_RGB_Image.H
|
||||
ps_image.o: ../FL/Fl_Bitmap.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
ps_image.o: ../FL/fl_types.h
|
||||
forms_compatability.o: ../FL/forms.H ../FL/Fl.H ../FL/fl_utf8.h
|
||||
forms_compatability.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
|
||||
forms_compatability.o: ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
forms_compatability.o: ../FL/fl_types.h ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
forms_compatability.o: ../FL/Fl_Window.H ../FL/fl_draw.H
|
||||
forms_compatability.o: ../FL/Fl_FormsBitmap.H ../FL/Fl_Bitmap.H
|
||||
forms_compatability.o: ../FL/Fl_Window.H ../FL/fl_draw.H ../FL/Fl_Device.H
|
||||
forms_compatability.o: ../FL/x.H ../FL/Fl_FormsBitmap.H ../FL/Fl_Bitmap.H
|
||||
forms_compatability.o: ../FL/Fl_Image.H ../FL/Fl_FormsPixmap.H
|
||||
forms_compatability.o: ../FL/Fl_Pixmap.H ../FL/Fl_Box.H ../FL/Fl_Browser.H
|
||||
forms_compatability.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
|
||||
@ -681,16 +757,16 @@ forms_bitmap.o: ../FL/forms.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
forms_bitmap.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
forms_bitmap.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Group.H
|
||||
forms_bitmap.o: ../FL/Fl_Widget.H ../FL/Fl_Window.H ../FL/fl_draw.H
|
||||
forms_bitmap.o: ../FL/Fl_FormsBitmap.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H
|
||||
forms_bitmap.o: ../FL/Fl_FormsPixmap.H ../FL/Fl_Pixmap.H ../FL/Fl_Box.H
|
||||
forms_bitmap.o: ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
|
||||
forms_bitmap.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl.H
|
||||
forms_bitmap.o: ../FL/Fl_Button.H ../FL/Fl_Light_Button.H
|
||||
forms_bitmap.o: ../FL/Fl_Round_Button.H ../FL/Fl_Check_Button.H
|
||||
forms_bitmap.o: ../FL/Fl_Chart.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
|
||||
forms_bitmap.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H ../FL/Fl_Counter.H
|
||||
forms_bitmap.o: ../FL/Fl_Dial.H ../FL/Fl_Free.H ../FL/fl_ask.H
|
||||
forms_bitmap.o: ../FL/fl_show_colormap.H ../FL/filename.H
|
||||
forms_bitmap.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_FormsBitmap.H
|
||||
forms_bitmap.o: ../FL/Fl_Bitmap.H ../FL/Fl_Image.H ../FL/Fl_FormsPixmap.H
|
||||
forms_bitmap.o: ../FL/Fl_Pixmap.H ../FL/Fl_Box.H ../FL/Fl_Browser.H
|
||||
forms_bitmap.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
forms_bitmap.o: ../FL/Fl_Valuator.H ../FL/Fl.H ../FL/Fl_Button.H
|
||||
forms_bitmap.o: ../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H
|
||||
forms_bitmap.o: ../FL/Fl_Check_Button.H ../FL/Fl_Chart.H ../FL/Fl_Choice.H
|
||||
forms_bitmap.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H
|
||||
forms_bitmap.o: ../FL/Fl_Counter.H ../FL/Fl_Dial.H ../FL/Fl_Free.H
|
||||
forms_bitmap.o: ../FL/fl_ask.H ../FL/fl_show_colormap.H ../FL/filename.H
|
||||
forms_bitmap.o: ../FL/Fl_File_Chooser.H ../FL/Fl_Double_Window.H
|
||||
forms_bitmap.o: ../FL/Fl_Group.H ../FL/Fl_Choice.H ../FL/Fl_Menu_Button.H
|
||||
forms_bitmap.o: ../FL/Fl_Button.H ../FL/Fl_Preferences.H ../FL/Fl_Tile.H
|
||||
@ -707,16 +783,16 @@ forms_fselect.o: ../FL/forms.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
forms_fselect.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
forms_fselect.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Group.H
|
||||
forms_fselect.o: ../FL/Fl_Widget.H ../FL/Fl_Window.H ../FL/fl_draw.H
|
||||
forms_fselect.o: ../FL/Fl_FormsBitmap.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H
|
||||
forms_fselect.o: ../FL/Fl_FormsPixmap.H ../FL/Fl_Pixmap.H ../FL/Fl_Box.H
|
||||
forms_fselect.o: ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
|
||||
forms_fselect.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl.H
|
||||
forms_fselect.o: ../FL/Fl_Button.H ../FL/Fl_Light_Button.H
|
||||
forms_fselect.o: ../FL/Fl_Round_Button.H ../FL/Fl_Check_Button.H
|
||||
forms_fselect.o: ../FL/Fl_Chart.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
|
||||
forms_fselect.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H ../FL/Fl_Counter.H
|
||||
forms_fselect.o: ../FL/Fl_Dial.H ../FL/Fl_Free.H ../FL/fl_ask.H
|
||||
forms_fselect.o: ../FL/fl_show_colormap.H ../FL/filename.H
|
||||
forms_fselect.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_FormsBitmap.H
|
||||
forms_fselect.o: ../FL/Fl_Bitmap.H ../FL/Fl_Image.H ../FL/Fl_FormsPixmap.H
|
||||
forms_fselect.o: ../FL/Fl_Pixmap.H ../FL/Fl_Box.H ../FL/Fl_Browser.H
|
||||
forms_fselect.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
forms_fselect.o: ../FL/Fl_Valuator.H ../FL/Fl.H ../FL/Fl_Button.H
|
||||
forms_fselect.o: ../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H
|
||||
forms_fselect.o: ../FL/Fl_Check_Button.H ../FL/Fl_Chart.H ../FL/Fl_Choice.H
|
||||
forms_fselect.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H
|
||||
forms_fselect.o: ../FL/Fl_Counter.H ../FL/Fl_Dial.H ../FL/Fl_Free.H
|
||||
forms_fselect.o: ../FL/fl_ask.H ../FL/fl_show_colormap.H ../FL/filename.H
|
||||
forms_fselect.o: ../FL/Fl_File_Chooser.H ../FL/Fl_Double_Window.H
|
||||
forms_fselect.o: ../FL/Fl_Group.H ../FL/Fl_Choice.H ../FL/Fl_Menu_Button.H
|
||||
forms_fselect.o: ../FL/Fl_Button.H ../FL/Fl_Preferences.H ../FL/Fl_Tile.H
|
||||
@ -730,16 +806,16 @@ forms_pixmap.o: ../FL/forms.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
forms_pixmap.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
forms_pixmap.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Group.H
|
||||
forms_pixmap.o: ../FL/Fl_Widget.H ../FL/Fl_Window.H ../FL/fl_draw.H
|
||||
forms_pixmap.o: ../FL/Fl_FormsBitmap.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H
|
||||
forms_pixmap.o: ../FL/Fl_FormsPixmap.H ../FL/Fl_Pixmap.H ../FL/Fl_Box.H
|
||||
forms_pixmap.o: ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
|
||||
forms_pixmap.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl.H
|
||||
forms_pixmap.o: ../FL/Fl_Button.H ../FL/Fl_Light_Button.H
|
||||
forms_pixmap.o: ../FL/Fl_Round_Button.H ../FL/Fl_Check_Button.H
|
||||
forms_pixmap.o: ../FL/Fl_Chart.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
|
||||
forms_pixmap.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H ../FL/Fl_Counter.H
|
||||
forms_pixmap.o: ../FL/Fl_Dial.H ../FL/Fl_Free.H ../FL/fl_ask.H
|
||||
forms_pixmap.o: ../FL/fl_show_colormap.H ../FL/filename.H
|
||||
forms_pixmap.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_FormsBitmap.H
|
||||
forms_pixmap.o: ../FL/Fl_Bitmap.H ../FL/Fl_Image.H ../FL/Fl_FormsPixmap.H
|
||||
forms_pixmap.o: ../FL/Fl_Pixmap.H ../FL/Fl_Box.H ../FL/Fl_Browser.H
|
||||
forms_pixmap.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
forms_pixmap.o: ../FL/Fl_Valuator.H ../FL/Fl.H ../FL/Fl_Button.H
|
||||
forms_pixmap.o: ../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H
|
||||
forms_pixmap.o: ../FL/Fl_Check_Button.H ../FL/Fl_Chart.H ../FL/Fl_Choice.H
|
||||
forms_pixmap.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H
|
||||
forms_pixmap.o: ../FL/Fl_Counter.H ../FL/Fl_Dial.H ../FL/Fl_Free.H
|
||||
forms_pixmap.o: ../FL/fl_ask.H ../FL/fl_show_colormap.H ../FL/filename.H
|
||||
forms_pixmap.o: ../FL/Fl_File_Chooser.H ../FL/Fl_Double_Window.H
|
||||
forms_pixmap.o: ../FL/Fl_Group.H ../FL/Fl_Choice.H ../FL/Fl_Menu_Button.H
|
||||
forms_pixmap.o: ../FL/Fl_Button.H ../FL/Fl_Preferences.H ../FL/Fl_Tile.H
|
||||
@ -752,7 +828,7 @@ forms_pixmap.o: ../FL/Fl_Timer.H
|
||||
forms_timer.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
forms_timer.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
forms_timer.o: ../FL/fl_types.h ../FL/Fl_Timer.H ../FL/Fl_Widget.H
|
||||
forms_timer.o: ../FL/fl_draw.H ../FL/Fl_Window.H
|
||||
forms_timer.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_Gl_Choice.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Gl_Choice.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_Gl_Choice.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/x.H
|
||||
@ -767,6 +843,13 @@ Fl_Gl_Window.o: ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
|
||||
Fl_Gl_Window.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_Gl_Window.o: ../FL/x.H ../FL/Fl_Window.H Fl_Gl_Choice.H
|
||||
Fl_Gl_Window.o: ../FL/Fl_Gl_Window.H ../FL/fl_utf8.h
|
||||
Fl_Gl_Printer.o: ../FL/Fl_Gl_Printer.H ../FL/Fl_Printer.H ../FL/Fl_Device.H
|
||||
Fl_Gl_Printer.o: ../FL/fl_draw.H ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Gl_Printer.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Device.H
|
||||
Fl_Gl_Printer.o: ../FL/x.H ../FL/Xutf8.h ../FL/Fl_Pixmap.H ../FL/Fl_Image.H
|
||||
Fl_Gl_Printer.o: ../FL/Fl_RGB_Image.H ../FL/Fl_Bitmap.H ../FL/Fl_Gl_Window.H
|
||||
Fl_Gl_Printer.o: Fl_Gl_Choice.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
Fl_Gl_Printer.o: ../FL/fl_types.h
|
||||
freeglut_geometry.o: ../FL/glut.H ../FL/gl.h ../FL/Enumerations.H
|
||||
freeglut_geometry.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl.H
|
||||
freeglut_geometry.o: ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
@ -789,13 +872,13 @@ freeglut_teapot.o: freeglut_teapot_data.h
|
||||
gl_draw.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/Fl.H
|
||||
gl_draw.o: ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
|
||||
gl_draw.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h ../FL/gl.h
|
||||
gl_draw.o: ../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H Fl_Gl_Choice.H
|
||||
gl_draw.o: Fl_Font.H ../FL/fl_utf8.h ../FL/Xutf8.h
|
||||
gl_draw.o: ../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H ../FL/Fl_Device.H
|
||||
gl_draw.o: Fl_Gl_Choice.H Fl_Font.H ../FL/fl_utf8.h ../FL/Xutf8.h
|
||||
gl_start.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
gl_start.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
gl_start.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Window.H
|
||||
gl_start.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/x.H ../FL/Fl_Window.H
|
||||
gl_start.o: ../FL/fl_draw.H Fl_Gl_Choice.H
|
||||
gl_start.o: ../FL/fl_draw.H ../FL/Fl_Device.H Fl_Gl_Choice.H
|
||||
glut_compatability.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/glut.H
|
||||
glut_compatability.o: ../FL/gl.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
glut_compatability.o: ../FL/fl_types.h ../FL/Fl.H ../FL/fl_utf8.h
|
||||
@ -819,7 +902,8 @@ Fl_File_Icon2.o: ../FL/math.h ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/fl_utf8.h
|
||||
Fl_File_Icon2.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
Fl_File_Icon2.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Shared_Image.H
|
||||
Fl_File_Icon2.o: ../FL/Fl_Image.H ../FL/Fl_Widget.H ../FL/fl_draw.H
|
||||
Fl_File_Icon2.o: ../FL/Fl_Window.H ../FL/filename.H
|
||||
Fl_File_Icon2.o: ../FL/Fl_Window.H ../FL/Fl_Device.H ../FL/x.H
|
||||
Fl_File_Icon2.o: ../FL/filename.H
|
||||
Fl_GIF_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
Fl_GIF_Image.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_GIF_Image.o: ../FL/fl_types.h ../FL/Fl_GIF_Image.H ../FL/Fl_Pixmap.H
|
||||
@ -832,8 +916,8 @@ Fl_Help_Dialog.o: ../FL/Fl_Button.H ../FL/Fl_Widget.H ../FL/Fl_Input.H
|
||||
Fl_Help_Dialog.o: ../FL/Fl_Input_.H ../FL/Fl_Box.H ../FL/Fl_Help_View.H
|
||||
Fl_Help_Dialog.o: ../FL/Fl.H ../FL/Fl_Group.H ../FL/Fl_Scrollbar.H
|
||||
Fl_Help_Dialog.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H
|
||||
Fl_Help_Dialog.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Image.H flstring.h
|
||||
Fl_Help_Dialog.o: ../config.h ../FL/fl_ask.H
|
||||
Fl_Help_Dialog.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Shared_Image.H
|
||||
Fl_Help_Dialog.o: ../FL/Fl_Image.H flstring.h ../config.h ../FL/fl_ask.H
|
||||
Fl_JPEG_Image.o: ../FL/Fl_JPEG_Image.H ../FL/Fl_Image.H ../FL/Enumerations.H
|
||||
Fl_JPEG_Image.o: ../FL/Fl_Export.H ../FL/fl_types.h ../config.h
|
||||
Fl_PNG_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
|
600
src/print_panel.cxx
Normal file
600
src/print_panel.cxx
Normal file
@ -0,0 +1,600 @@
|
||||
//
|
||||
// "$Id$"
|
||||
//
|
||||
// Print panel for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
// Copyright 1998-2009 by Bill Spitzak and others.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Library General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Library General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Library General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
// USA.
|
||||
//
|
||||
// Please report all bugs and problems on the following page:
|
||||
//
|
||||
// http://www.fltk.org/str.php
|
||||
//
|
||||
|
||||
//
|
||||
// This file is "work in progress". The main parts have been copied
|
||||
// from fluid's print_panel{.fl|.h|.cxx} and hand-edited to produce
|
||||
// a working version w/o global variables. The intention is to move
|
||||
// all static variables into an own class, and to name this class
|
||||
// Fl_Printer_Chooser or similar...
|
||||
//
|
||||
// Todo:
|
||||
//
|
||||
// - Currently preferences can't be saved, and there are options that
|
||||
// are not yet used for printing.
|
||||
// - This file can only be used as an include file in Fl_PS_Printer.cxx
|
||||
// - The use of static variables should be avoided.
|
||||
// - Probably much more ...
|
||||
//
|
||||
|
||||
#include "print_panel.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "../src/flstring.h"
|
||||
#include <FL/Fl_Preferences.H>
|
||||
#include <FL/Fl_Int_Input.H>
|
||||
|
||||
// extern Fl_Preferences fluid_prefs;
|
||||
|
||||
static Fl_Double_Window *print_panel=(Fl_Double_Window *)0;
|
||||
static Fl_Group *print_panel_controls=(Fl_Group *)0;
|
||||
static Fl_Choice *print_choice=(Fl_Choice *)0;
|
||||
static Fl_Button *print_properties=(Fl_Button *)0;
|
||||
static Fl_Box *print_status=(Fl_Box *)0;
|
||||
static Fl_Round_Button *print_all=(Fl_Round_Button *)0;
|
||||
static Fl_Round_Button *print_pages=(Fl_Round_Button *)0;
|
||||
static Fl_Round_Button *print_selection=(Fl_Round_Button *)0;
|
||||
static Fl_Check_Button *print_collate_button=(Fl_Check_Button *)0;
|
||||
static Fl_Group *print_collate_group[2]={(Fl_Group *)0};
|
||||
static Fl_Progress *print_progress=(Fl_Progress *)0;
|
||||
static Fl_Double_Window *print_properties_panel=(Fl_Double_Window *)0;
|
||||
static Fl_Choice *print_page_size=(Fl_Choice *)0;
|
||||
static Fl_Int_Input *print_from=(Fl_Int_Input *)0;
|
||||
static Fl_Int_Input *print_to=(Fl_Int_Input *)0;
|
||||
static Fl_Spinner *print_copies=(Fl_Spinner *)0;
|
||||
|
||||
static int print_start = 0; // 1 if print_okay has been clicked
|
||||
static int print_pipe = 0; // 0 = file, 1 = pipe (lp)
|
||||
|
||||
static void cb_print_choice(Fl_Choice*, void*) {
|
||||
print_update_status();
|
||||
}
|
||||
|
||||
static void cb_print_properties(Fl_Button*, void*) {
|
||||
print_properties_panel->show();
|
||||
}
|
||||
|
||||
static void cb_print_all(Fl_Round_Button*, void*) {
|
||||
print_from->deactivate();
|
||||
print_to->deactivate();
|
||||
}
|
||||
|
||||
static void cb_print_pages(Fl_Round_Button*, void*) {
|
||||
print_from->activate();
|
||||
print_to->activate();
|
||||
}
|
||||
|
||||
static void cb_print_selection(Fl_Round_Button*, void*) {
|
||||
print_from->deactivate();
|
||||
print_to->deactivate();
|
||||
}
|
||||
|
||||
static void cb_print_copies(Fl_Spinner*, void*) {
|
||||
if (print_copies->value() == 1) {
|
||||
print_collate_button->deactivate();
|
||||
print_collate_group[0]->deactivate();
|
||||
print_collate_group[1]->deactivate();
|
||||
} else {
|
||||
/* print_collate_button->activate(); // TODO: manage collate options
|
||||
print_collate_group[0]->activate();
|
||||
print_collate_group[1]->activate(); */
|
||||
};
|
||||
}
|
||||
|
||||
static void cb_print_collate_button(Fl_Check_Button*, void*) {
|
||||
int i = print_collate_button->value() != 0;
|
||||
print_collate_group[i]->show();
|
||||
print_collate_group[1 - i]->hide();
|
||||
}
|
||||
|
||||
static void cb_Cancel(Fl_Button*, void*) {
|
||||
print_start = 0;
|
||||
print_panel->hide();
|
||||
}
|
||||
|
||||
static void cb_print_properties_panel(Fl_Double_Window*, void*) {
|
||||
print_properties_panel->hide();
|
||||
print_update_status();
|
||||
}
|
||||
|
||||
static Fl_Menu_Item menu_print_page_size[] = {
|
||||
{"Letter", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
|
||||
{"A4", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
|
||||
{0,0,0,0,0,0,0,0,0}
|
||||
};
|
||||
|
||||
#include <FL/Fl_Pixmap.H>
|
||||
static const char *idata_print_color[] = {
|
||||
"24 24 17 1",
|
||||
" \tc None",
|
||||
".\tc #FFFF00",
|
||||
"+\tc #C8FF00",
|
||||
"@\tc #00FF00",
|
||||
"#\tc #FFC800",
|
||||
"$\tc #FF0000",
|
||||
"%\tc #00FFFF",
|
||||
"&\tc #000000",
|
||||
"*\tc #FF00FF",
|
||||
"=\tc #00FFC8",
|
||||
"-\tc #FF00C8",
|
||||
";\tc #00C800",
|
||||
">\tc #C80000",
|
||||
",\tc #0000C8",
|
||||
"\'\tc #0000FF",
|
||||
")\tc #00C8FF",
|
||||
"!\tc #C800FF",
|
||||
" ...... ",
|
||||
" .......... ",
|
||||
" ............ ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" ................ ",
|
||||
" ................ ",
|
||||
" ................ ",
|
||||
" +@@@@@@+#$$$$$$# ",
|
||||
" %@@@@@@@&&$$$$$$$* ",
|
||||
" %%@@@@@@&&&&$$$$$$** ",
|
||||
" %%%=@@@@&&&&&&$$$$-*** ",
|
||||
" %%%%@@@;&&&&&&>$$$**** ",
|
||||
"%%%%%%@@&&&&&&&&$$******",
|
||||
"%%%%%%%@&&&&&&&&$*******",
|
||||
"%%%%%%%%,&&&&&&,********",
|
||||
"%%%%%%%%\'\'\'\'\'\'\'\'********",
|
||||
"%%%%%%%%\'\'\'\'\'\'\'\'********",
|
||||
"%%%%%%%%\'\'\'\'\'\'\'\'********",
|
||||
" %%%%%%%)\'\'\'\'\'\'!******* ",
|
||||
" %%%%%%%%\'\'\'\'\'\'******** ",
|
||||
" %%%%%%%%\'\'\'\'******** ",
|
||||
" %%%%%%%%\'\'******** ",
|
||||
" %%%%%% ****** "
|
||||
};
|
||||
static Fl_Pixmap image_print_color(idata_print_color);
|
||||
|
||||
static const char *idata_print_gray[] = {
|
||||
"24 24 17 1",
|
||||
" \tc None",
|
||||
".\tc #E3E3E3",
|
||||
"+\tc #D2D2D2",
|
||||
"@\tc #969696",
|
||||
"#\tc #C2C2C2",
|
||||
"$\tc #4C4C4C",
|
||||
"%\tc #B2B2B2",
|
||||
"&\tc #000000",
|
||||
"*\tc #696969",
|
||||
"=\tc #ACACAC",
|
||||
"-\tc #626262",
|
||||
";\tc #767676",
|
||||
">\tc #3C3C3C",
|
||||
",\tc #161616",
|
||||
"\'\tc #1C1C1C",
|
||||
")\tc #929292",
|
||||
"!\tc #585858",
|
||||
" ...... ",
|
||||
" .......... ",
|
||||
" ............ ",
|
||||
" .............. ",
|
||||
" .............. ",
|
||||
" ................ ",
|
||||
" ................ ",
|
||||
" ................ ",
|
||||
" +@@@@@@+#$$$$$$# ",
|
||||
" %@@@@@@@&&$$$$$$$* ",
|
||||
" %%@@@@@@&&&&$$$$$$** ",
|
||||
" %%%=@@@@&&&&&&$$$$-*** ",
|
||||
" %%%%@@@;&&&&&&>$$$**** ",
|
||||
"%%%%%%@@&&&&&&&&$$******",
|
||||
"%%%%%%%@&&&&&&&&$*******",
|
||||
"%%%%%%%%,&&&&&&,********",
|
||||
"%%%%%%%%\'\'\'\'\'\'\'\'********",
|
||||
"%%%%%%%%\'\'\'\'\'\'\'\'********",
|
||||
"%%%%%%%%\'\'\'\'\'\'\'\'********",
|
||||
" %%%%%%%)\'\'\'\'\'\'!******* ",
|
||||
" %%%%%%%%\'\'\'\'\'\'******** ",
|
||||
" %%%%%%%%\'\'\'\'******** ",
|
||||
" %%%%%%%%\'\'******** ",
|
||||
" %%%%%% ****** "
|
||||
};
|
||||
static Fl_Pixmap image_print_gray(idata_print_gray);
|
||||
|
||||
static Fl_Button *print_output_mode[4]={(Fl_Button *)0};
|
||||
|
||||
static void cb_Save(Fl_Return_Button*, void*) {
|
||||
print_properties_panel->hide();
|
||||
|
||||
char name[1024];
|
||||
int val;
|
||||
const char *printer = (const char *)print_choice->menu()[print_choice->value()].user_data();
|
||||
|
||||
snprintf(name, sizeof(name), "%s/page_size", printer);
|
||||
// fluid_prefs.set(name, print_page_size->value());
|
||||
|
||||
snprintf(name, sizeof(name), "%s/output_mode", printer);
|
||||
for (val = 0; val < 4; val ++) {
|
||||
if (print_output_mode[val]->value()) break;
|
||||
}
|
||||
// fluid_prefs.set(name, val); // FIXME -- save prefs
|
||||
}
|
||||
|
||||
static void cb_Cancel1(Fl_Button*, void*) {
|
||||
print_properties_panel->hide();
|
||||
print_update_status();
|
||||
}
|
||||
|
||||
static void cb_Use(Fl_Button*, void*) {
|
||||
print_properties_panel->hide();
|
||||
}
|
||||
|
||||
Fl_Double_Window* make_print_panel() {
|
||||
{ print_panel = new Fl_Double_Window(465, 235, "Print");
|
||||
{ print_panel_controls = new Fl_Group(10, 10, 447, 216);
|
||||
{ print_choice = new Fl_Choice(113, 10, 181, 25, "Printer:");
|
||||
print_choice->down_box(FL_BORDER_BOX);
|
||||
print_choice->labelfont(1);
|
||||
print_choice->callback((Fl_Callback*)cb_print_choice);
|
||||
print_choice->when(FL_WHEN_CHANGED);
|
||||
} // Fl_Choice* print_choice
|
||||
{ print_properties = new Fl_Button(294, 10, 105, 25, "Properties...");
|
||||
print_properties->callback((Fl_Callback*)cb_print_properties);
|
||||
} // Fl_Button* print_properties
|
||||
{ print_status = new Fl_Box(111, 41, 288, 17, "printer/job status");
|
||||
print_status->align(Fl_Align(68|FL_ALIGN_INSIDE));
|
||||
} // Fl_Box* print_status
|
||||
{ Fl_Group* o = new Fl_Group(10, 86, 227, 105, "Print Range");
|
||||
o->box(FL_THIN_DOWN_BOX);
|
||||
o->labelfont(1);
|
||||
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
||||
{ print_all = new Fl_Round_Button(20, 96, 38, 25, "All");
|
||||
print_all->type(102);
|
||||
print_all->down_box(FL_ROUND_DOWN_BOX);
|
||||
print_all->value(1);
|
||||
print_all->callback((Fl_Callback*)cb_print_all);
|
||||
} // Fl_Round_Button* print_all
|
||||
{ print_pages = new Fl_Round_Button(20, 126, 64, 25, "Pages");
|
||||
print_pages->type(102);
|
||||
print_pages->down_box(FL_ROUND_DOWN_BOX);
|
||||
print_pages->callback((Fl_Callback*)cb_print_pages);
|
||||
} // Fl_Round_Button* print_pages
|
||||
{ print_selection = new Fl_Round_Button(20, 156, 82, 25, "Selection");
|
||||
print_selection->type(102);
|
||||
print_selection->down_box(FL_ROUND_DOWN_BOX);
|
||||
print_selection->callback((Fl_Callback*)cb_print_selection);
|
||||
} // Fl_Round_Button* print_selection
|
||||
{ print_from = new Fl_Int_Input(136, 126, 28, 25, "From:");
|
||||
print_from->type(2);
|
||||
print_from->textfont(4);
|
||||
print_from->deactivate();
|
||||
} // Fl_Int_Input* print_from
|
||||
{ print_to = new Fl_Int_Input(199, 126, 28, 25, "To:");
|
||||
print_to->type(2);
|
||||
print_to->textfont(4);
|
||||
print_to->deactivate();
|
||||
} // Fl_Int_Input* print_to
|
||||
o->end();
|
||||
} // Fl_Group* o
|
||||
{ Fl_Group* o = new Fl_Group(247, 86, 210, 105, "Copies");
|
||||
o->box(FL_THIN_DOWN_BOX);
|
||||
o->labelfont(1);
|
||||
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
||||
{ print_copies = new Fl_Spinner(321, 96, 45, 25, "# Copies:");
|
||||
print_copies->callback((Fl_Callback*)cb_print_copies);
|
||||
print_copies->when(FL_WHEN_CHANGED);
|
||||
} // Fl_Spinner* print_copies
|
||||
{ print_collate_button = new Fl_Check_Button(376, 96, 64, 25, "Collate");
|
||||
print_collate_button->down_box(FL_DOWN_BOX);
|
||||
print_collate_button->callback((Fl_Callback*)cb_print_collate_button);
|
||||
print_collate_button->when(FL_WHEN_CHANGED);
|
||||
print_collate_button->deactivate();
|
||||
} // Fl_Check_Button* print_collate_button
|
||||
{ print_collate_group[0] = new Fl_Group(257, 131, 191, 50);
|
||||
print_collate_group[0]->deactivate();
|
||||
{ Fl_Box* o = new Fl_Box(287, 141, 30, 40, "1");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
o->deactivate();
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(272, 136, 30, 40, "1");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
o->deactivate();
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(257, 131, 30, 40, "1");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
o->deactivate();
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(352, 141, 30, 40, "2");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
o->deactivate();
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(337, 136, 30, 40, "2");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
o->deactivate();
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(322, 131, 30, 40, "2");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
o->deactivate();
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(417, 141, 30, 40, "3");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
o->deactivate();
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(402, 136, 30, 40, "3");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
o->deactivate();
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(387, 131, 30, 40, "3");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
o->deactivate();
|
||||
} // Fl_Box* o
|
||||
print_collate_group[0]->end();
|
||||
} // Fl_Group* print_collate_group[0]
|
||||
{ print_collate_group[1] = new Fl_Group(257, 131, 191, 50);
|
||||
print_collate_group[1]->hide();
|
||||
print_collate_group[1]->deactivate();
|
||||
{ Fl_Box* o = new Fl_Box(287, 141, 30, 40, "3");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(272, 136, 30, 40, "2");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(257, 131, 30, 40, "1");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(352, 141, 30, 40, "3");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(337, 136, 30, 40, "2");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(322, 131, 30, 40, "1");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(417, 141, 30, 40, "3");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(402, 136, 30, 40, "2");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
} // Fl_Box* o
|
||||
{ Fl_Box* o = new Fl_Box(387, 131, 30, 40, "1");
|
||||
o->box(FL_BORDER_BOX);
|
||||
o->color(FL_BACKGROUND2_COLOR);
|
||||
o->labelsize(11);
|
||||
o->align(Fl_Align(FL_ALIGN_BOTTOM_RIGHT|FL_ALIGN_INSIDE));
|
||||
} // Fl_Box* o
|
||||
print_collate_group[1]->end();
|
||||
} // Fl_Group* print_collate_group[1]
|
||||
o->end();
|
||||
} // Fl_Group* o
|
||||
{ Fl_Return_Button* o = new Fl_Return_Button(309, 201, 70, 25, "Print");
|
||||
o->callback((Fl_Callback*)print_cb);
|
||||
} // Fl_Return_Button* o
|
||||
{ Fl_Button* o = new Fl_Button(389, 201, 68, 25, "Cancel");
|
||||
o->callback((Fl_Callback*)cb_Cancel);
|
||||
} // Fl_Button* o
|
||||
print_panel_controls->end();
|
||||
} // Fl_Group* print_panel_controls
|
||||
{ print_progress = new Fl_Progress(10, 203, 289, 21);
|
||||
print_progress->selection_color((Fl_Color)4);
|
||||
print_progress->hide();
|
||||
} // Fl_Progress* print_progress
|
||||
print_panel->set_modal();
|
||||
print_panel->end();
|
||||
} // Fl_Double_Window* print_panel
|
||||
{ print_properties_panel = new Fl_Double_Window(290, 130, "Printer Properties");
|
||||
print_properties_panel->callback((Fl_Callback*)cb_print_properties_panel);
|
||||
{ print_page_size = new Fl_Choice(110, 10, 80, 25, "Page Size:");
|
||||
print_page_size->down_box(FL_BORDER_BOX);
|
||||
print_page_size->labelfont(1);
|
||||
print_page_size->menu(menu_print_page_size);
|
||||
} // Fl_Choice* print_page_size
|
||||
{ Fl_Group* o = new Fl_Group(110, 45, 170, 40, "Output Mode:");
|
||||
o->labelfont(1);
|
||||
o->align(Fl_Align(FL_ALIGN_LEFT));
|
||||
{ print_output_mode[0] = new Fl_Button(110, 45, 30, 40);
|
||||
print_output_mode[0]->type(102);
|
||||
print_output_mode[0]->box(FL_BORDER_BOX);
|
||||
print_output_mode[0]->down_box(FL_BORDER_BOX);
|
||||
print_output_mode[0]->value(1);
|
||||
print_output_mode[0]->color(FL_BACKGROUND2_COLOR);
|
||||
print_output_mode[0]->selection_color(FL_FOREGROUND_COLOR);
|
||||
print_output_mode[0]->image(image_print_color);
|
||||
} // Fl_Button* print_output_mode[0]
|
||||
{ print_output_mode[1] = new Fl_Button(150, 50, 40, 30);
|
||||
print_output_mode[1]->type(102);
|
||||
print_output_mode[1]->box(FL_BORDER_BOX);
|
||||
print_output_mode[1]->down_box(FL_BORDER_BOX);
|
||||
print_output_mode[1]->color(FL_BACKGROUND2_COLOR);
|
||||
print_output_mode[1]->selection_color(FL_FOREGROUND_COLOR);
|
||||
print_output_mode[1]->image(image_print_color);
|
||||
} // Fl_Button* print_output_mode[1]
|
||||
{ print_output_mode[2] = new Fl_Button(200, 45, 30, 40);
|
||||
print_output_mode[2]->type(102);
|
||||
print_output_mode[2]->box(FL_BORDER_BOX);
|
||||
print_output_mode[2]->down_box(FL_BORDER_BOX);
|
||||
print_output_mode[2]->color(FL_BACKGROUND2_COLOR);
|
||||
print_output_mode[2]->selection_color(FL_FOREGROUND_COLOR);
|
||||
print_output_mode[2]->image(image_print_gray);
|
||||
} // Fl_Button* print_output_mode[2]
|
||||
{ print_output_mode[3] = new Fl_Button(240, 50, 40, 30);
|
||||
print_output_mode[3]->type(102);
|
||||
print_output_mode[3]->box(FL_BORDER_BOX);
|
||||
print_output_mode[3]->down_box(FL_BORDER_BOX);
|
||||
print_output_mode[3]->color(FL_BACKGROUND2_COLOR);
|
||||
print_output_mode[3]->selection_color(FL_FOREGROUND_COLOR);
|
||||
print_output_mode[3]->image(image_print_gray);
|
||||
} // Fl_Button* print_output_mode[3]
|
||||
o->end();
|
||||
} // Fl_Group* o
|
||||
{ Fl_Return_Button* o = new Fl_Return_Button(123, 95, 79, 25, "Save");
|
||||
o->callback((Fl_Callback*)cb_Save);
|
||||
} // Fl_Return_Button* o
|
||||
{ Fl_Button* o = new Fl_Button(212, 95, 68, 25, "Cancel");
|
||||
o->callback((Fl_Callback*)cb_Cancel1);
|
||||
} // Fl_Button* o
|
||||
{ Fl_Button* o = new Fl_Button(60, 95, 53, 25, "Use");
|
||||
o->callback((Fl_Callback*)cb_Use);
|
||||
} // Fl_Button* o
|
||||
print_properties_panel->set_modal();
|
||||
print_properties_panel->end();
|
||||
} // Fl_Double_Window* print_properties_panel
|
||||
return print_properties_panel;
|
||||
}
|
||||
|
||||
void print_cb(Fl_Return_Button *, void *) {
|
||||
print_start = 1;
|
||||
print_panel->hide();
|
||||
}
|
||||
|
||||
void print_load() {
|
||||
FILE *lpstat;
|
||||
char line[1024], name[1024], *nptr, qname[2048], *qptr, defname[1024];
|
||||
int i;
|
||||
|
||||
if (print_choice->size() > 1) {
|
||||
for (i = 1; print_choice->text(i); i ++) {
|
||||
free(print_choice->menu()[i].user_data());
|
||||
}
|
||||
}
|
||||
|
||||
print_choice->clear();
|
||||
print_choice->add("Print To File", 0, 0, 0, FL_MENU_DIVIDER);
|
||||
print_choice->value(0);
|
||||
|
||||
print_start = 0;
|
||||
|
||||
defname[0] = '\0';
|
||||
|
||||
if ((lpstat = popen("LC_MESSAGES=C LANG=C lpstat -p -d", "r")) != NULL) {
|
||||
while (fgets(line, sizeof(line), lpstat)) {
|
||||
if (!strncmp(line, "printer ", 8) &&
|
||||
sscanf(line + 8, "%s", name) == 1) {
|
||||
for (nptr = name, qptr = qname; *nptr; *qptr++ = *nptr++) {
|
||||
if (*nptr == '/') *qptr++ = '\\';
|
||||
}
|
||||
*qptr = '\0';
|
||||
|
||||
print_choice->add(qname, 0, 0, (void *)strdup(name), 0);
|
||||
} else if (!strncmp(line, "system default destination: ", 28)) {
|
||||
if (sscanf(line + 28, "%s", defname) != 1) defname[0] = '\0';
|
||||
}
|
||||
}
|
||||
pclose(lpstat);
|
||||
}
|
||||
|
||||
if (defname[0]) {
|
||||
for (i = 1; print_choice->text(i); i ++) {
|
||||
if (!strcmp((char *)print_choice->menu()[i].user_data(), defname)) {
|
||||
print_choice->value(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (print_choice->size() > 2) print_choice->value(1);
|
||||
|
||||
print_update_status();
|
||||
|
||||
} // print_load()
|
||||
|
||||
void print_update_status() {
|
||||
FILE *lpstat;
|
||||
char command[1024];
|
||||
static char status[1024];
|
||||
const char *printer = (const char *)print_choice->menu()[print_choice->value()].user_data();
|
||||
|
||||
if (print_choice->value()) {
|
||||
snprintf(command, sizeof(command), "lpstat -p '%s'", printer);
|
||||
if ((lpstat = popen(command, "r")) != NULL) {
|
||||
fgets(status, sizeof(status), lpstat);
|
||||
pclose(lpstat);
|
||||
} else strcpy(status, "printer status unavailable");
|
||||
} else status[0] = '\0';
|
||||
|
||||
print_status->label(status);
|
||||
|
||||
char name[1024];
|
||||
// int val;
|
||||
int val = 0; // FIXME -- see below: read preferences !
|
||||
|
||||
snprintf(name, sizeof(name), "%s/page_size", printer);
|
||||
// fluid_prefs.get(name, val, 0);
|
||||
print_page_size->value(1); // FIXME
|
||||
|
||||
snprintf(name, sizeof(name), "%s/output_mode", printer);
|
||||
// fluid_prefs.get(name, val, 0);
|
||||
print_output_mode[val]->setonly();
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id$".
|
||||
//
|
55
src/print_panel.h
Normal file
55
src/print_panel.h
Normal file
@ -0,0 +1,55 @@
|
||||
//
|
||||
// "$Id$"
|
||||
//
|
||||
// Print panel for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
// Copyright 1998-2009 by Bill Spitzak and others.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Library General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Library General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Library General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
// USA.
|
||||
//
|
||||
// Please report all bugs and problems on the following page:
|
||||
//
|
||||
// http://www.fltk.org/str.php
|
||||
//
|
||||
|
||||
//
|
||||
// This is a temporary file. It is only for development and will
|
||||
// probably be removed later.
|
||||
//
|
||||
|
||||
#ifndef print_panel_h
|
||||
#define print_panel_h
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Double_Window.H>
|
||||
#include <FL/Fl_Group.H>
|
||||
#include <FL/Fl_Choice.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Box.H>
|
||||
#include <FL/Fl_Round_Button.H>
|
||||
#include <FL/Fl_Input.H>
|
||||
#include <FL/Fl_Spinner.H>
|
||||
#include <FL/Fl_Check_Button.H>
|
||||
#include <FL/Fl_Return_Button.H>
|
||||
#include <FL/Fl_Progress.H>
|
||||
static Fl_Double_Window* make_print_panel();
|
||||
static void print_cb(Fl_Return_Button *, void *);
|
||||
static void print_load();
|
||||
static void print_update_status();
|
||||
#endif
|
||||
|
||||
//
|
||||
// End of "$Id$".
|
||||
//
|
560
src/ps_image.cxx
Normal file
560
src/ps_image.cxx
Normal file
@ -0,0 +1,560 @@
|
||||
//
|
||||
// "$Id: image.cxx 4324 2005-05-09 21:47:22Z rokan $"
|
||||
//
|
||||
// Postscript image drawing implementation for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
// Copyright 1998-2005 by Bill Spitzak and others.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Library General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Library General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Library General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
// USA.
|
||||
//
|
||||
// Please report all bugs and problems to "fltk-bugs@fltk.org".
|
||||
//
|
||||
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <FL/Fl_Printer.H>
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Pixmap.H>
|
||||
#include <FL/Fl_Bitmap.H>
|
||||
|
||||
|
||||
|
||||
int Fl_PSfile_Device::alpha_mask(const uchar * data, int w, int h, int D, int LD){
|
||||
|
||||
mask = 0;
|
||||
if((D/2)*2 != D){ //no mask info
|
||||
return 0;
|
||||
}
|
||||
int xx;
|
||||
int i,j, k, l;
|
||||
LD += w*D;
|
||||
int V255=0;
|
||||
int V0 =0;
|
||||
int V_=0;
|
||||
// uchar d;
|
||||
for(j=0;j<h;j++){
|
||||
for(i=0;i<w;i++)
|
||||
switch(data[j*LD+D*i+D-1]){
|
||||
case 255: V255 = 1; break;
|
||||
case 0: V0 = 1; break;
|
||||
default: V_= 1;
|
||||
}
|
||||
if(V_) break;
|
||||
};
|
||||
if(!V_){
|
||||
if(V0)
|
||||
if(V255){// not true alpha, only masking
|
||||
xx = (w+7)/8;
|
||||
mask = new uchar[h * xx];
|
||||
for(i=0;i<h * xx;i++) mask[i]=0;
|
||||
for(j=0;j<h;j++)
|
||||
for(i=0;i<w;i++)
|
||||
if(data[j*LD+D*i+D-1])
|
||||
mask[j*xx+i/8] |= 1 << (i % 8);
|
||||
mx = w;
|
||||
my = h; //mask imensions
|
||||
return 0;
|
||||
}else{
|
||||
mask=0;
|
||||
return 1; //everything masked
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
///// Alpha dither, generating (4*w) * 4 mask area /////
|
||||
///// with Floyd-Steinberg error diffusion /////
|
||||
|
||||
mask = new uchar[((w+1)/2) * h * 4];
|
||||
|
||||
for(i=0;i<((w+1)/2) * h * 4; i++) mask[i] = 0; //cleaning
|
||||
|
||||
|
||||
|
||||
mx= w*4;
|
||||
my=h*4; // mask dimensions
|
||||
|
||||
xx = (w+1)/2; // mask line width in bytes
|
||||
|
||||
short * errors1 = new short [w*4+2]; // two rows of dither errors
|
||||
short * errors2 = new short [w*4+2]; // two rows of dither errors
|
||||
|
||||
for(i=0;i<w*4+2;i++) errors2[i] = 0; // cleaning,after first swap will become current
|
||||
for(i=0;i<w*4+2;i++) errors1[i] = 0; // cleaning,after first swap will become current
|
||||
|
||||
short * current = errors1;
|
||||
short * next = errors2;
|
||||
short * swap;
|
||||
|
||||
for(j=0;j<h;j++){
|
||||
for(l=0;l<4;){ // generating 4 rows of mask lines for 1 RGB line
|
||||
int jj = j*4+l;
|
||||
|
||||
/// mask row index
|
||||
swap = next;
|
||||
next = current;
|
||||
current = swap;
|
||||
*(next+1) = 0; // must clean the first cell, next are overriden by *1
|
||||
for(i=0;i<w;i++){
|
||||
for(k=0;k<4;k++){ // generating 4 x-pixels for 1 RGB
|
||||
short error, o1, o2, o3;
|
||||
int ii = i*4+k; // mask cell index
|
||||
short val = data[j*LD+D*i+D-1] + current[1+ii];
|
||||
if (val>127){
|
||||
mask[jj*xx+ii/8] |= 1 << (ii % 8); //set mask bit
|
||||
error = val-255;
|
||||
}else
|
||||
error = val;
|
||||
|
||||
////// error spreading /////
|
||||
if(error >0){
|
||||
next[ii] += o1 = (error * 3 + 8)/16;
|
||||
current[ii+2] += o2 = (error * 7 + 8)/16;
|
||||
next[ii+2] = o3 =(error + 8)/16; // *1 - ok replacing (cleaning)
|
||||
}else{
|
||||
next[ii] += o1 = (error * 3 - 8)/16;
|
||||
current[ii+2] += o2 = (error * 7 - 8)/16;
|
||||
next[ii+2] = o3 = (error - 8)/16;
|
||||
}
|
||||
next[1+ii] += error - o1 - o2 - o3;
|
||||
}
|
||||
}
|
||||
l++;
|
||||
|
||||
////// backward
|
||||
|
||||
jj = j*4+l;
|
||||
swap = next;
|
||||
next = current;
|
||||
current = swap;
|
||||
*(next+1) = 0; // must clean the first cell, next are overriden by *1
|
||||
|
||||
for(i=w-1;i>=0;i--){
|
||||
|
||||
for(k=3;k>=0;k--){ // generating 4 x-pixels for 1 RGB
|
||||
short error, o1, o2, o3;
|
||||
|
||||
int ii = i*4+k; // mask cell index
|
||||
short val = data[j*LD+D*i+D-1] + current[1+ii];
|
||||
if (val>127){
|
||||
|
||||
mask[jj*xx+ii/8] |= 1 << (ii % 8); //set mask bit
|
||||
error = val-255;
|
||||
}else
|
||||
error = val;
|
||||
|
||||
////// error spreading /////
|
||||
if(error >0){
|
||||
next[ii+2] += o1 = (error * 3 + 8)/16;
|
||||
current[ii] += o2 = (error * 7 + 8)/16;
|
||||
next[ii] = o3 =(error + 8)/16; // *1 - ok replacing (cleaning)
|
||||
}else{
|
||||
next[ii+2] += o1 = (error * 3 - 8)/16;
|
||||
|
||||
current[ii] += o2 = (error * 7 - 8)/16;
|
||||
next[ii] = o3 = (error - 8)/16;
|
||||
}
|
||||
next[1+ii] += error - o1 - o2 - o3;
|
||||
}
|
||||
}
|
||||
l++;
|
||||
}
|
||||
}
|
||||
delete[] errors1;
|
||||
delete[] errors2;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// TODO: anybody has more efficient algoritm?
|
||||
static inline uchar swap_byte(const uchar i){
|
||||
uchar b =0;
|
||||
if(i & 1) b |= 128;
|
||||
if(i & 2) b |= 64;
|
||||
if(i & 4) b |= 32;
|
||||
if(i & 8) b |= 16;
|
||||
if(i & 16) b |= 8;
|
||||
if(i & 32) b |= 4;
|
||||
if(i & 64) b |= 2;
|
||||
if(i & 128) b |= 1;
|
||||
return b;
|
||||
}
|
||||
|
||||
|
||||
extern uchar **fl_mask_bitmap;
|
||||
|
||||
|
||||
void Fl_PSfile_Device::draw_scaled_image(const uchar *data, double x, double y, double w, double h, int iw, int ih, int D, int LD) {
|
||||
|
||||
|
||||
if(D<3){ //mono
|
||||
draw_scaled_image_mono(data, x, y, w, h, iw, ih, D, LD);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
int i,j, k;
|
||||
|
||||
fprintf(output,"save\n");
|
||||
|
||||
char * interpol;
|
||||
if(lang_level_>1){
|
||||
if(interpolate_)
|
||||
interpol="true";
|
||||
else
|
||||
interpol="false";
|
||||
if(mask && lang_level_>2)
|
||||
fprintf(output, "%g %g %g %g %i %i %i %i %s CIM\n", x , y+h , w , -h , iw , ih, mx, my, interpol);
|
||||
else
|
||||
fprintf(output, "%g %g %g %g %i %i %s CII\n", x , y+h , w , -h , iw , ih, interpol);
|
||||
}else
|
||||
fprintf(output , "%g %g %g %g %i %i CI", x , y+h , w , -h , iw , ih);
|
||||
|
||||
|
||||
if(!LD) LD = iw*D;
|
||||
uchar *curmask=mask;
|
||||
|
||||
for (j=0; j<ih;j++){
|
||||
if(mask){
|
||||
|
||||
for(k=0;k<my/ih;k++){
|
||||
for (i=0; i<((mx+7)/8);i++){
|
||||
if (!(i%80)) fprintf(output, "\n");
|
||||
fprintf(output, "%.2x",swap_byte(*curmask));
|
||||
curmask++;
|
||||
}
|
||||
fprintf(output,"\n");
|
||||
}
|
||||
}
|
||||
const uchar *curdata=data+j*LD;
|
||||
for(i=0 ; i<iw ; i++) {
|
||||
uchar r = curdata[0];
|
||||
uchar g = curdata[1];
|
||||
uchar b = curdata[2];
|
||||
if(lang_level_<3 && D>3) { //can do mixing using bg_* colors)
|
||||
unsigned int a2 = curdata[3]; //must be int
|
||||
unsigned int a = 255-a2;
|
||||
r = (a2 * r + bg_r * a)/255;
|
||||
g = (a2 * g + bg_g * a)/255;
|
||||
b = (a2 * b + bg_b * a)/255;
|
||||
}
|
||||
if (!(i%40)) fprintf(output, "\n");
|
||||
fprintf(output, "%.2x%.2x%.2x", r, g, b);
|
||||
curdata +=D;
|
||||
}
|
||||
fprintf(output,"\n");
|
||||
|
||||
}
|
||||
|
||||
fprintf(output," >\nrestore\n" );
|
||||
|
||||
|
||||
};
|
||||
|
||||
void Fl_PSfile_Device::draw_scaled_image(Fl_Draw_Image_Cb call, void *data, double x, double y, double w, double h, int iw, int ih, int D) {
|
||||
|
||||
int level2_mask = 0;
|
||||
fprintf(output,"save\n");
|
||||
int i,j,k;
|
||||
char * interpol;
|
||||
if (lang_level_ > 1) {
|
||||
if (interpolate_) interpol="true";
|
||||
else interpol="false";
|
||||
if (mask && lang_level_ > 2) {
|
||||
fprintf(output, "%g %g %g %g %i %i %i %i %s CIM\n", x , y+h , w , -h , iw , ih, mx, my, interpol);
|
||||
}
|
||||
else if (mask && lang_level_ == 2) {
|
||||
level2_mask = 1; // use method for drawing masked color image with PostScript level 2
|
||||
fprintf(output, "%d %d pixmap_size\n pixmap_loadmask\n", iw, ih);
|
||||
}
|
||||
else {
|
||||
fprintf(output, "%g %g %g %g %i %i %s CII\n", x , y+h , w , -h , iw , ih, interpol);
|
||||
}
|
||||
} else {
|
||||
fprintf(output , "%g %g %g %g %i %i CI", x , y+h , w , -h , iw , ih);
|
||||
}
|
||||
|
||||
int LD=iw*D;
|
||||
uchar *rgbdata=new uchar[LD];
|
||||
uchar *curmask=mask;
|
||||
|
||||
if(level2_mask) {
|
||||
for (j = ih - 1; j >= 0; j--) {
|
||||
curmask = mask + j * my/ih * ((mx+7)/8);
|
||||
for(k=0; k < my/ih; k++) { // output mask data
|
||||
for (i=0; i < ((mx+7)/8); i++) {
|
||||
fprintf(output, "%.2x",swap_byte(*curmask));
|
||||
curmask++;
|
||||
}
|
||||
fprintf(output,"\n");
|
||||
}
|
||||
}
|
||||
fprintf(output,"pop def\n\npixmap_loaddata\n");
|
||||
for (j = ih - 1; j >= 0; j--) { // output full image data
|
||||
call(data,0,j,iw,rgbdata);
|
||||
uchar *curdata=rgbdata;
|
||||
for(i=0 ; i<iw ; i++) {
|
||||
uchar r = curdata[0];
|
||||
uchar g = curdata[1];
|
||||
uchar b = curdata[2];
|
||||
//if (!(i%40)) fprintf(output, "\n");
|
||||
fprintf(output, "%.2x%.2x%.2x", r, g, b);
|
||||
curdata += D;
|
||||
}
|
||||
fprintf(output,"\n");
|
||||
}
|
||||
fprintf(output,"pop def\n\n%g %g pixmap_plot\n", x, y); // draw the masked image
|
||||
}
|
||||
else {
|
||||
for (j=0; j<ih;j++) {
|
||||
if(mask && lang_level_ > 2) { // InterleaveType 2 mask data
|
||||
for(k=0; k<my/ih;k++) { //for alpha pseudo-masking
|
||||
for (i=0; i<((mx+7)/8);i++) {
|
||||
if (!(i%40)) fprintf(output, "\n");
|
||||
fprintf(output, "%.2x",swap_byte(*curmask));
|
||||
curmask++;
|
||||
}
|
||||
fprintf(output,"\n");
|
||||
}
|
||||
}
|
||||
call(data,0,j,iw,rgbdata);
|
||||
uchar *curdata=rgbdata;
|
||||
for(i=0 ; i<iw ; i++) {
|
||||
uchar r = curdata[0];
|
||||
uchar g = curdata[1];
|
||||
uchar b = curdata[2];
|
||||
|
||||
if (!(i%40)) fprintf(output, "\n");
|
||||
fprintf(output, "%.2x%.2x%.2x", r, g, b);
|
||||
|
||||
curdata +=D;
|
||||
}
|
||||
fprintf(output,"\n");
|
||||
|
||||
}
|
||||
fprintf(output,">\n");
|
||||
}
|
||||
|
||||
fprintf(output,"restore\n");
|
||||
delete[] rgbdata;
|
||||
}
|
||||
|
||||
void Fl_PSfile_Device::draw_scaled_image_mono(const uchar *data, double x, double y, double w, double h, int iw, int ih, int D, int LD) {
|
||||
|
||||
fprintf(output,"save\n");
|
||||
|
||||
int i,j, k;
|
||||
|
||||
char * interpol;
|
||||
if(lang_level_>1){
|
||||
if(interpolate_)
|
||||
interpol="true";
|
||||
else
|
||||
interpol="false";
|
||||
if(mask && lang_level_>2)
|
||||
fprintf(output, "%g %g %g %g %i %i %i %i %s GIM\n", x , y+h , w , -h , iw , ih, mx, my, interpol);
|
||||
else
|
||||
fprintf(output, "%g %g %g %g %i %i %s GII\n", x , y+h , w , -h , iw , ih, interpol);
|
||||
}else
|
||||
fprintf(output , "%g %g %g %g %i %i GI", x , y+h , w , -h , iw , ih);
|
||||
|
||||
|
||||
if(!LD) LD = iw*D;
|
||||
|
||||
|
||||
int bg = (bg_r + bg_g + bg_b)/3;
|
||||
|
||||
uchar *curmask=mask;
|
||||
for (j=0; j<ih;j++){
|
||||
if(mask){
|
||||
for(k=0;k<my/ih;k++){
|
||||
for (i=0; i<((mx+7)/8);i++){
|
||||
if (!(i%80)) fprintf(output, "\n");
|
||||
fprintf(output, "%.2x",swap_byte(*curmask));
|
||||
curmask++;
|
||||
}
|
||||
fprintf(output,"\n");
|
||||
}
|
||||
}
|
||||
const uchar *curdata=data+j*LD;
|
||||
for(i=0 ; i<iw ; i++) {
|
||||
if (!(i%80)) fprintf(output, "\n");
|
||||
uchar r = curdata[0];
|
||||
if(lang_level_<3 && D>1) { //can do mixing
|
||||
|
||||
unsigned int a2 = curdata[1]; //must be int
|
||||
unsigned int a = 255-a2;
|
||||
r = (a2 * r + bg * a)/255;
|
||||
}
|
||||
if (!(i%120)) fprintf(output, "\n");
|
||||
fprintf(output, "%.2x", r);
|
||||
curdata +=D;
|
||||
}
|
||||
fprintf(output,"\n");
|
||||
|
||||
}
|
||||
|
||||
fprintf(output," >\nrestore\n" );
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
void Fl_PSfile_Device::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) {
|
||||
|
||||
fprintf(output,"save\n");
|
||||
int i,j,k;
|
||||
char * interpol;
|
||||
if(lang_level_>1){
|
||||
if(interpolate_) interpol="true";
|
||||
else interpol="false";
|
||||
if(mask && lang_level_>2)
|
||||
fprintf(output, "%g %g %g %g %i %i %i %i %s GIM\n", x , y+h , w , -h , iw , ih, mx, my, interpol);
|
||||
else
|
||||
fprintf(output, "%g %g %g %g %i %i %s GII\n", x , y+h , w , -h , iw , ih, interpol);
|
||||
}else
|
||||
fprintf(output , "%g %g %g %g %i %i GI", x , y+h , w , -h , iw , ih);
|
||||
|
||||
int LD=iw*D;
|
||||
uchar *rgbdata=new uchar[LD];
|
||||
uchar *curmask=mask;
|
||||
for (j=0; j<ih;j++){
|
||||
|
||||
if(mask && lang_level_>2){ // InterleaveType 2 mask data
|
||||
for(k=0; k<my/ih;k++){ //for alpha pseudo-masking
|
||||
for (i=0; i<((mx+7)/8);i++){
|
||||
if (!(i%40)) fprintf(output, "\n");
|
||||
fprintf(output, "%.2x",swap_byte(*curmask));
|
||||
curmask++;
|
||||
}
|
||||
fprintf(output,"\n");
|
||||
}
|
||||
}
|
||||
call(data,0,j,iw,rgbdata);
|
||||
uchar *curdata=rgbdata;
|
||||
for(i=0 ; i<iw ; i++) {
|
||||
uchar r = curdata[0];
|
||||
if (!(i%120)) fprintf(output, "\n");
|
||||
fprintf(output, "%.2x", r);
|
||||
curdata +=D;
|
||||
}
|
||||
fprintf(output,"\n");
|
||||
}
|
||||
fprintf(output,">\n");
|
||||
fprintf(output,"restore\n");
|
||||
delete[] rgbdata;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////// Image classes //////////////////////
|
||||
|
||||
|
||||
void Fl_PSfile_Device::draw(Fl_Pixmap * pxm,int XP, int YP, int WP, int HP, int cx, int cy){
|
||||
const char * const * di =pxm->data();
|
||||
int w,h;
|
||||
if (!fl_measure_pixmap(di, w, h)) return;
|
||||
mask=0;
|
||||
fl_mask_bitmap=&mask;
|
||||
mx = WP;
|
||||
my = HP;
|
||||
push_clip(XP, YP, WP, HP);
|
||||
fl_draw_pixmap(di,XP -cx, YP -cy, FL_BLACK );
|
||||
pop_clip();
|
||||
delete[] mask;
|
||||
mask=0;
|
||||
fl_mask_bitmap=0;
|
||||
};
|
||||
|
||||
void Fl_PSfile_Device::draw(Fl_RGB_Image * rgb,int XP, int YP, int WP, int HP, int cx, int cy){
|
||||
const uchar * di = rgb->array;
|
||||
int w = rgb->w();
|
||||
int h = rgb->h();
|
||||
mask=0;
|
||||
if(lang_level_>2) //when not true, not making alphamask, mixing colors instead...
|
||||
if (alpha_mask(di, w, h, rgb->d(),rgb->ld())) return; //everthing masked, no need for painting!
|
||||
push_clip(XP, YP, WP, HP);
|
||||
draw_scaled_image(di, XP + cx, YP + cy, w, h, w, h, rgb->d(), rgb->ld());
|
||||
pop_clip();
|
||||
delete[]mask;
|
||||
mask=0;
|
||||
};
|
||||
|
||||
void Fl_PSfile_Device::draw(Fl_Bitmap * bitmap,int XP, int YP, int WP, int HP, int cx, int cy){
|
||||
const uchar * di = bitmap->array;
|
||||
int w,h;
|
||||
int LD=(bitmap->w()+7)/8;
|
||||
int xx;
|
||||
|
||||
if (WP> bitmap->w() - cx){// to assure that it does not go out of bounds;
|
||||
w = bitmap->w() - cx;
|
||||
xx = (bitmap->w()+7)/8 - cx/8; //length of mask in bytes
|
||||
}else{
|
||||
w =WP;
|
||||
xx = (w+7)/8 - cx/8;
|
||||
}
|
||||
if( HP > bitmap->h()-cy)
|
||||
h = bitmap->h() - cy;
|
||||
else
|
||||
h = HP;
|
||||
|
||||
di += cy*LD + cx/8;
|
||||
int si = cx % 8; // small shift to be clipped, it is simpler than shifting whole mask
|
||||
|
||||
int i,j;
|
||||
push_clip(XP, YP, WP, HP);
|
||||
fprintf(output , "%i %i %i %i %i %i MI", XP - si, YP + HP , WP , -HP , w , h);
|
||||
|
||||
for (j=0; j<HP; j++){
|
||||
for (i=0; i<xx; i++){
|
||||
if (!(i%80)) fprintf(output, "\n"); // not have lines longer than 255 chars
|
||||
fprintf(output, "%.2x",swap_byte(~(*di)));
|
||||
di++;
|
||||
}
|
||||
fprintf(output,"\n");
|
||||
}
|
||||
fprintf(output,">\n");
|
||||
pop_clip();
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: image.cxx 4324 2005-05-09 21:47:22Z rokan $"
|
||||
//
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -49,6 +49,7 @@ CPPFILES =\
|
||||
cursor.cxx \
|
||||
curve.cxx \
|
||||
demo.cxx \
|
||||
device.cxx \
|
||||
doublebuffer.cxx \
|
||||
editor.cxx \
|
||||
fast_slow.cxx \
|
||||
@ -82,6 +83,7 @@ CPPFILES =\
|
||||
pixmap_browser.cxx \
|
||||
pixmap.cxx \
|
||||
preferences.cxx \
|
||||
device.cxx \
|
||||
radio.cxx \
|
||||
resizebox.cxx \
|
||||
resize.cxx \
|
||||
@ -119,6 +121,7 @@ ALL = \
|
||||
cursor$(EXEEXT) \
|
||||
curve$(EXEEXT) \
|
||||
demo$(EXEEXT) \
|
||||
device$(EXEEXT) \
|
||||
doublebuffer$(EXEEXT) \
|
||||
editor$(EXEEXT) \
|
||||
fast_slow$(EXEEXT) \
|
||||
@ -148,6 +151,7 @@ ALL = \
|
||||
pixmap$(EXEEXT) \
|
||||
pixmap_browser$(EXEEXT) \
|
||||
preferences$(EXEEXT) \
|
||||
device$(EXEEXT) \
|
||||
radio$(EXEEXT) \
|
||||
resize$(EXEEXT) \
|
||||
resizebox$(EXEEXT) \
|
||||
@ -317,6 +321,10 @@ demo$(EXEEXT): demo.o
|
||||
echo Linking $@...
|
||||
$(CXX) $(ARCHFLAGS) $(LDFLAGS) -o $@ demo.o $(LINKFLTKFORMS) $(LDLIBS)
|
||||
|
||||
device$(EXEEXT): device.o $(IMGLIBNAME)
|
||||
echo Linking $@...
|
||||
$(CXX) $(ARCHFLAGS) $(LDFLAGS) device.o -o $@ $(LINKFLTKIMG) $(LDLIBS)
|
||||
|
||||
doublebuffer$(EXEEXT): doublebuffer.o
|
||||
|
||||
editor$(EXEEXT): editor.o
|
||||
@ -404,6 +412,8 @@ pixmap_browser$(EXEEXT): pixmap_browser.o $(IMGLIBNAME)
|
||||
preferences$(EXEEXT): preferences.o
|
||||
preferences.cxx: preferences.fl ../fluid/fluid$(EXEEXT)
|
||||
|
||||
device$(EXEEXT): device.o
|
||||
|
||||
radio$(EXEEXT): radio.o
|
||||
radio.cxx: radio.fl ../fluid/fluid$(EXEEXT)
|
||||
|
||||
|
@ -157,8 +157,41 @@ void makeform(const char *name) {
|
||||
form->end();
|
||||
}
|
||||
|
||||
// added to demo printing
|
||||
#include <FL/Fl_Sys_Menu_Bar.H>
|
||||
#include <FL/Fl_Gl_Printer.H>
|
||||
|
||||
void print_cb(Fl_Widget *w, void *data)
|
||||
{
|
||||
Fl_Gl_Printer printer;
|
||||
Fl_Window *win = Fl::first_window();
|
||||
if(!win) return;
|
||||
if( printer.start_job(1) ) return;
|
||||
if( printer.start_page() ) return;
|
||||
printer.scale(0.68,0.68);
|
||||
printer.print_widget( win );
|
||||
printer.print_gl_window( cube, cube->x(), cube->y() );
|
||||
printer.print_gl_window( cube2, cube2->x(), cube2->y() );
|
||||
printer.end_page();
|
||||
printer.end_job();
|
||||
}
|
||||
// end of printing demo
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
makeform(argv[0]);
|
||||
// added to demo printing
|
||||
form->begin();
|
||||
static Fl_Menu_Item items[] = {
|
||||
{ "Menu", 0, 0, 0, FL_SUBMENU },
|
||||
{ "Print", 0, print_cb, 0, 0 },
|
||||
{ 0 },
|
||||
{ 0 }
|
||||
};
|
||||
Fl_Sys_Menu_Bar *menubar_;
|
||||
menubar_ = new Fl_Sys_Menu_Bar(0, 0, 40, 25);
|
||||
menubar_->menu(items);
|
||||
form->end();
|
||||
// end of printing demo
|
||||
speed->bounds(4,0);
|
||||
speed->value(cube->speed = cube2->speed = 1.0);
|
||||
size->bounds(4,0.01);
|
||||
|
735
test/device.cxx
Normal file
735
test/device.cxx
Normal file
@ -0,0 +1,735 @@
|
||||
// Cartesian.H,v 0.9
|
||||
//
|
||||
// Copyright 2000 by Roman Kantor.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Library General Public License
|
||||
// version 2 as published by the Free Software Foundation.
|
||||
//
|
||||
|
||||
// This library is distributed WITHOUT ANY WARRANTY;
|
||||
// WITHOUT even the implied warranty of MERCHANTABILITY
|
||||
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Library General Public License for more details.
|
||||
// You should have received a copy of the GNU Library General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
|
||||
|
||||
#include <math.h>
|
||||
#include <FL/Fl.H>
|
||||
|
||||
#include <FL/Fl_Overlay_Window.H>
|
||||
#include <FL/Fl_Light_Button.H>
|
||||
#include <FL/fl_draw.H>
|
||||
#include <FL/Fl_Clock.H>
|
||||
#include <test/pixmaps/porsche.xpm>
|
||||
#include <FL/Fl_Pixmap.H>
|
||||
#include <FL/Fl_Bitmap.H>
|
||||
#include <FL/Fl_Round_Button.H>
|
||||
|
||||
|
||||
#include <FL/Fl_Printer.H>
|
||||
|
||||
//#include "fl_printer_chooser.H"
|
||||
|
||||
#include <FL/Fl_File_Chooser.H>
|
||||
#include <FL/fl_draw.H>
|
||||
|
||||
|
||||
#define sorceress_width 75
|
||||
#define sorceress_height 75
|
||||
|
||||
|
||||
// shameles copy from bitmap...
|
||||
static uchar sorceress_bits[] = {
|
||||
0xfc, 0x7e, 0x40, 0x20, 0x90, 0x00, 0x07, 0x80, 0x23, 0x00, 0x00, 0xc6,
|
||||
0xc1, 0x41, 0x98, 0xb8, 0x01, 0x07, 0x66, 0x00, 0x15, 0x9f, 0x03, 0x47,
|
||||
0x8c, 0xc6, 0xdc, 0x7b, 0xcc, 0x00, 0xb0, 0x71, 0x0e, 0x4d, 0x06, 0x66,
|
||||
0x73, 0x8e, 0x8f, 0x01, 0x18, 0xc4, 0x39, 0x4b, 0x02, 0x23, 0x0c, 0x04,
|
||||
0x1e, 0x03, 0x0c, 0x08, 0xc7, 0xef, 0x08, 0x30, 0x06, 0x07, 0x1c, 0x02,
|
||||
0x06, 0x30, 0x18, 0xae, 0xc8, 0x98, 0x3f, 0x78, 0x20, 0x06, 0x02, 0x20,
|
||||
0x60, 0xa0, 0xc4, 0x1d, 0xc0, 0xff, 0x41, 0x04, 0xfa, 0x63, 0x80, 0xa1,
|
||||
0xa4, 0x3d, 0x00, 0x84, 0xbf, 0x04, 0x0f, 0x06, 0xfc, 0xa1, 0x34, 0x6b,
|
||||
0x01, 0x1c, 0xc9, 0x05, 0x06, 0xc7, 0x06, 0xbe, 0x11, 0x1e, 0x43, 0x30,
|
||||
0x91, 0x05, 0xc3, 0x61, 0x02, 0x30, 0x1b, 0x30, 0xcc, 0x20, 0x11, 0x00,
|
||||
0xc1, 0x3c, 0x03, 0x20, 0x0a, 0x00, 0xe8, 0x60, 0x21, 0x00, 0x61, 0x1b,
|
||||
0xc1, 0x63, 0x08, 0xf0, 0xc6, 0xc7, 0x21, 0x03, 0xf8, 0x08, 0xe1, 0xcf,
|
||||
0x0a, 0xfc, 0x4d, 0x99, 0x43, 0x07, 0x3c, 0x0c, 0xf1, 0x9f, 0x0b, 0xfc,
|
||||
0x5b, 0x81, 0x47, 0x02, 0x16, 0x04, 0x31, 0x1c, 0x0b, 0x1f, 0x17, 0x89,
|
||||
0x4d, 0x06, 0x1a, 0x04, 0x31, 0x38, 0x02, 0x07, 0x56, 0x89, 0x49, 0x04,
|
||||
0x0b, 0x04, 0xb1, 0x72, 0x82, 0xa1, 0x54, 0x9a, 0x49, 0x04, 0x1d, 0x66,
|
||||
0x50, 0xe7, 0xc2, 0xf0, 0x54, 0x9a, 0x58, 0x04, 0x0d, 0x62, 0xc1, 0x1f,
|
||||
0x44, 0xfc, 0x51, 0x90, 0x90, 0x04, 0x86, 0x63, 0xe0, 0x74, 0x04, 0xef,
|
||||
0x31, 0x1a, 0x91, 0x00, 0x02, 0xe2, 0xc1, 0xfd, 0x84, 0xf9, 0x30, 0x0a,
|
||||
0x91, 0x00, 0x82, 0xa9, 0xc0, 0xb9, 0x84, 0xf9, 0x31, 0x16, 0x81, 0x00,
|
||||
0x42, 0xa9, 0xdb, 0x7f, 0x0c, 0xff, 0x1c, 0x16, 0x11, 0x00, 0x02, 0x28,
|
||||
0x0b, 0x07, 0x08, 0x60, 0x1c, 0x02, 0x91, 0x00, 0x46, 0x29, 0x0e, 0x00,
|
||||
0x00, 0x00, 0x10, 0x16, 0x11, 0x02, 0x06, 0x29, 0x04, 0x00, 0x00, 0x00,
|
||||
0x10, 0x16, 0x91, 0x06, 0xa6, 0x2a, 0x04, 0x00, 0x00, 0x00, 0x18, 0x24,
|
||||
0x91, 0x04, 0x86, 0x2a, 0x04, 0x00, 0x00, 0x00, 0x18, 0x27, 0x93, 0x04,
|
||||
0x96, 0x4a, 0x04, 0x00, 0x00, 0x00, 0x04, 0x02, 0x91, 0x04, 0x86, 0x4a,
|
||||
0x0c, 0x00, 0x00, 0x00, 0x1e, 0x23, 0x93, 0x04, 0x56, 0x88, 0x08, 0x00,
|
||||
0x00, 0x00, 0x90, 0x21, 0x93, 0x04, 0x52, 0x0a, 0x09, 0x80, 0x01, 0x00,
|
||||
0xd0, 0x21, 0x95, 0x04, 0x57, 0x0a, 0x0f, 0x80, 0x27, 0x00, 0xd8, 0x20,
|
||||
0x9d, 0x04, 0x5d, 0x08, 0x1c, 0x80, 0x67, 0x00, 0xe4, 0x01, 0x85, 0x04,
|
||||
0x79, 0x8a, 0x3f, 0x00, 0x00, 0x00, 0xf4, 0x11, 0x85, 0x06, 0x39, 0x08,
|
||||
0x7d, 0x00, 0x00, 0x18, 0xb7, 0x10, 0x81, 0x03, 0x29, 0x12, 0xcb, 0x00,
|
||||
0x7e, 0x30, 0x28, 0x00, 0x85, 0x03, 0x29, 0x10, 0xbe, 0x81, 0xff, 0x27,
|
||||
0x0c, 0x10, 0x85, 0x03, 0x29, 0x32, 0xfa, 0xc1, 0xff, 0x27, 0x94, 0x11,
|
||||
0x85, 0x03, 0x28, 0x20, 0x6c, 0xe1, 0xff, 0x07, 0x0c, 0x01, 0x85, 0x01,
|
||||
0x28, 0x62, 0x5c, 0xe3, 0x8f, 0x03, 0x4e, 0x91, 0x80, 0x05, 0x39, 0x40,
|
||||
0xf4, 0xc2, 0xff, 0x00, 0x9f, 0x91, 0x84, 0x05, 0x31, 0xc6, 0xe8, 0x07,
|
||||
0x7f, 0x80, 0xcd, 0x00, 0xc4, 0x04, 0x31, 0x06, 0xc9, 0x0e, 0x00, 0xc0,
|
||||
0x48, 0x88, 0xe0, 0x04, 0x79, 0x04, 0xdb, 0x12, 0x00, 0x30, 0x0c, 0xc8,
|
||||
0xe4, 0x04, 0x6d, 0x06, 0xb6, 0x23, 0x00, 0x18, 0x1c, 0xc0, 0x84, 0x04,
|
||||
0x25, 0x0c, 0xff, 0xc2, 0x00, 0x4e, 0x06, 0xb0, 0x80, 0x04, 0x3f, 0x8a,
|
||||
0xb3, 0x83, 0xff, 0xc3, 0x03, 0x91, 0x84, 0x04, 0x2e, 0xd8, 0x0f, 0x3f,
|
||||
0x00, 0x00, 0x5f, 0x83, 0x84, 0x04, 0x2a, 0x70, 0xfd, 0x7f, 0x00, 0x00,
|
||||
0xc8, 0xc0, 0x84, 0x04, 0x4b, 0xe2, 0x2f, 0x01, 0x00, 0x08, 0x58, 0x60,
|
||||
0x80, 0x04, 0x5b, 0x82, 0xff, 0x01, 0x00, 0x08, 0xd0, 0xa0, 0x84, 0x04,
|
||||
0x72, 0x80, 0xe5, 0x00, 0x00, 0x08, 0xd2, 0x20, 0x44, 0x04, 0xca, 0x02,
|
||||
0xff, 0x00, 0x00, 0x08, 0xde, 0xa0, 0x44, 0x04, 0x82, 0x02, 0x6d, 0x00,
|
||||
0x00, 0x08, 0xf6, 0xb0, 0x40, 0x02, 0x82, 0x07, 0x3f, 0x00, 0x00, 0x08,
|
||||
0x44, 0x58, 0x44, 0x02, 0x93, 0x3f, 0x1f, 0x00, 0x00, 0x30, 0x88, 0x4f,
|
||||
0x44, 0x03, 0x83, 0x23, 0x3e, 0x00, 0x00, 0x00, 0x18, 0x60, 0xe0, 0x07,
|
||||
0xe3, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x70, 0x70, 0xe4, 0x07, 0xc7, 0x1b,
|
||||
0xfe, 0x01, 0x00, 0x00, 0xe0, 0x3c, 0xe4, 0x07, 0xc7, 0xe3, 0xfe, 0x1f,
|
||||
0x00, 0x00, 0xff, 0x1f, 0xfc, 0x07, 0xc7, 0x03, 0xf8, 0x33, 0x00, 0xc0,
|
||||
0xf0, 0x07, 0xff, 0x07, 0x87, 0x02, 0xfc, 0x43, 0x00, 0x60, 0xf0, 0xff,
|
||||
0xff, 0x07, 0x8f, 0x06, 0xbe, 0x87, 0x00, 0x30, 0xf8, 0xff, 0xff, 0x07,
|
||||
0x8f, 0x14, 0x9c, 0x8f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x9f, 0x8d,
|
||||
0x8a, 0x0f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x07, 0xbf, 0x0b, 0x80, 0x1f,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0x07, 0x7f, 0x3a, 0x80, 0x3f, 0x00, 0x80,
|
||||
0xff, 0xff, 0xff, 0x07, 0xff, 0x20, 0xc0, 0x3f, 0x00, 0x80, 0xff, 0xff,
|
||||
0xff, 0x07, 0xff, 0x01, 0xe0, 0x7f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x07,
|
||||
0xff, 0x0f, 0xf8, 0xff, 0x40, 0xe0, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff,
|
||||
0xff, 0xff, 0x40, 0xf0, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff,
|
||||
0x41, 0xf0, 0xff, 0xff, 0xff, 0x07};
|
||||
|
||||
class MyWidget: public Fl_Box{
|
||||
protected:
|
||||
void draw(){
|
||||
Fl_Box::draw();
|
||||
fl_color(FL_RED);
|
||||
fl_rectf(x()+5,y()+5,w()-10,h()-10);
|
||||
fl_push_clip(x()+6,y()+6,w()-12,h()-12);
|
||||
fl_color(FL_DARK_GREEN);
|
||||
fl_rectf(x()+5,y()+5,w()-10,h()-10);
|
||||
fl_pop_clip();
|
||||
fl_color(FL_YELLOW);
|
||||
fl_rectf(x()+7,y()+7,w()-14,h()-14);
|
||||
fl_color(FL_BLUE);
|
||||
|
||||
fl_rect(x()+8,y()+8,w()-16,h()-16);
|
||||
fl_push_clip(x()+25,y()+25,w()-50, h()-50);
|
||||
fl_color(FL_BLACK);
|
||||
fl_rect(x()+24,y()+24,w()-48,h()-48);
|
||||
fl_line(x()+27,y()+27,x()+w()-27,y()+h()-27);
|
||||
fl_line(x()+27,y()+h()-27,x()+w()-27,y()+27);
|
||||
//fl_rect(x()+30,y()+30,w()-60,h()-60);
|
||||
fl_pop_clip();
|
||||
|
||||
}
|
||||
public:
|
||||
MyWidget(int x, int y):Fl_Box(x,y,100,100, "Clipping and rect(f):\nYellow rect.framed\nby B-Y-G-R rect. 1 p.\nthick. Your printer may \nrender very thin lines\nsurrounding \"X\""){
|
||||
align(FL_ALIGN_TOP);
|
||||
labelsize(10);
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class MyWidget2: public Fl_Box{
|
||||
protected:
|
||||
void draw(){
|
||||
Fl_Box::draw();
|
||||
int d;
|
||||
// fl_line_style(0);
|
||||
for(d=y()+5;d<48+y();d+=2){
|
||||
fl_xyline(x()+5,d,x()+48);
|
||||
}
|
||||
|
||||
|
||||
|
||||
fl_push_clip(x()+52,y()+5,45,43);
|
||||
for(d=y()+5;d<150+y();d+=3){
|
||||
fl_line(x()+52,d,x()+92,d-40);
|
||||
}
|
||||
fl_pop_clip();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
fl_line_style(FL_DASH);
|
||||
fl_xyline(x()+5,y()+55,x()+48);
|
||||
fl_line_style(FL_DOT);
|
||||
fl_xyline(x()+5,y()+58,x()+48);
|
||||
fl_line_style(FL_DASHDOT);
|
||||
fl_xyline(x()+5,y()+61,x()+48);
|
||||
fl_line_style(FL_DASHDOTDOT);
|
||||
fl_xyline(x()+5,y()+64,x()+48);
|
||||
fl_line_style(0,0,"\7\3\7\2");
|
||||
fl_xyline(x()+5,y()+67,x()+48);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
fl_line_style(0);
|
||||
|
||||
|
||||
|
||||
|
||||
fl_line(x()+5,y()+72,x()+25,y()+95);
|
||||
fl_line(x()+8,y()+72,x()+28,y()+95,x()+31,y()+72);
|
||||
|
||||
fl_color(FL_YELLOW);
|
||||
fl_polygon(x()+11, y()+72,x()+27,y()+91,x()+29,y()+72);
|
||||
fl_color(FL_RED);
|
||||
fl_loop(x()+11, y()+72,x()+27,y()+91,x()+29,y()+72);
|
||||
|
||||
fl_color(FL_BLUE); ////
|
||||
fl_line_style(FL_SOLID, 6);
|
||||
fl_loop(x()+31, y()+12,x()+47,y()+31,x()+49,y()+12);
|
||||
fl_line_style(0);
|
||||
|
||||
|
||||
fl_color(200,0,200);
|
||||
fl_polygon(x()+35,y()+72,x()+33,y()+95,x()+48,y()+95,x()+43,y()+72);
|
||||
fl_color(FL_GREEN);
|
||||
fl_loop(x()+35,y()+72,x()+33,y()+95,x()+48,y()+95,x()+43,y()+72);
|
||||
|
||||
|
||||
|
||||
fl_color(FL_BLUE);
|
||||
fl_yxline(x()+65,y()+63,y()+66);
|
||||
fl_color(FL_GREEN);
|
||||
fl_yxline(x()+66,y()+66,y()+63);
|
||||
|
||||
fl_color(FL_BLUE);
|
||||
fl_rect(x()+80,y()+55,5,5);
|
||||
fl_color(FL_YELLOW);
|
||||
fl_rectf(x()+81,y()+56,3,3);
|
||||
fl_color(FL_BLACK);
|
||||
fl_point(x()+82,y()+57);
|
||||
|
||||
fl_color(FL_BLUE);
|
||||
fl_rect(x()+56, y()+79, 24, 17);
|
||||
fl_color(FL_CYAN);
|
||||
fl_rectf(x()+57, y()+80, 22 , 15 );
|
||||
fl_color(FL_RED);
|
||||
fl_arc(x()+57, y()+80, 22 ,15 ,40, 270);
|
||||
fl_color(FL_YELLOW);
|
||||
fl_pie(x()+58, y()+81, 20 ,13 ,40, 270);
|
||||
|
||||
|
||||
|
||||
|
||||
fl_line_style(0);
|
||||
|
||||
|
||||
fl_color(FL_BLACK);
|
||||
fl_point(x()+58,y()+58);
|
||||
fl_color(FL_RED);
|
||||
fl_yxline(x()+59,y()+58,y()+59);
|
||||
fl_color(FL_GREEN);
|
||||
fl_yxline(x()+60,y()+59,y()+58);
|
||||
fl_color(FL_BLACK);
|
||||
fl_xyline(x()+61,y()+58,x()+62);
|
||||
fl_color(FL_RED);
|
||||
fl_xyline(x()+62,y()+59,x()+61);
|
||||
|
||||
fl_color(FL_GREEN);
|
||||
fl_yxline(x()+57,y()+58,y()+59,x()+58);
|
||||
fl_color(FL_BLUE);
|
||||
fl_xyline(x()+58,y()+60,x()+56,y()+58);
|
||||
fl_color(FL_RED);
|
||||
fl_xyline(x()+58,y()+61,x()+56,y()+63);
|
||||
fl_color(FL_GREEN);
|
||||
fl_yxline(x()+57,y()+63,y()+62,x()+58);
|
||||
|
||||
fl_color(FL_BLUE);
|
||||
fl_line(x()+58,y()+63, x()+60, y()+65);
|
||||
fl_color(FL_BLACK);
|
||||
fl_line(x()+61,y()+65, x()+59, y()+63);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
fl_color(FL_BLACK);
|
||||
};
|
||||
|
||||
public:
|
||||
MyWidget2(int x, int y):Fl_Box(x,y,100,100, "Integer primitives"){
|
||||
labelsize(10);
|
||||
align(FL_ALIGN_TOP);
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class MyWidget3: public Fl_Box{
|
||||
protected:
|
||||
void draw(){
|
||||
Fl_Box::draw();
|
||||
double d;
|
||||
// fl_line_style(0);
|
||||
fl_push_clip(x()+5,y()+5,45,43);
|
||||
for(d=y()+5;d<95+y();d+=1.63){
|
||||
fl_begin_line();
|
||||
fl_vertex(x()+5,d);
|
||||
fl_vertex(x()+48,d);
|
||||
fl_end_line();
|
||||
}
|
||||
fl_pop_clip();
|
||||
|
||||
fl_push_clip(x()+52,y()+5,45,43);
|
||||
for(d=y()+5;d<150+y();d+=2.3052){
|
||||
fl_begin_line();
|
||||
fl_vertex(x()+52,d);
|
||||
fl_vertex(x()+92,d-43);
|
||||
fl_end_line();
|
||||
}
|
||||
fl_pop_clip();
|
||||
|
||||
};
|
||||
public:
|
||||
MyWidget3(int x, int y):Fl_Box(x,y,100,100, "Sub-pixel drawing of\nlines 1.63 points apart\nOn the screen you\ncan see aliasing, the\nprinter should render\nthem properly"){
|
||||
labelsize(10);
|
||||
align(FL_ALIGN_TOP);
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
class MyWidget4: public Fl_Box{
|
||||
protected:
|
||||
void draw(){
|
||||
Fl_Box::draw();
|
||||
fl_push_matrix();
|
||||
fl_translate(x(),y());
|
||||
fl_scale(.75,.75);
|
||||
|
||||
|
||||
|
||||
fl_line_style(FL_SOLID , 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 160);
|
||||
fl_vertex(40, 160);
|
||||
fl_vertex(40, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
|
||||
fl_color(FL_RED);
|
||||
fl_line_style(FL_SOLID | FL_CAP_FLAT |FL_JOIN_MITER , 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 150);
|
||||
fl_vertex(50, 150);
|
||||
fl_vertex(50, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
fl_color(FL_GREEN);
|
||||
fl_line_style(FL_SOLID | FL_CAP_ROUND |FL_JOIN_ROUND , 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 140);
|
||||
fl_vertex(60, 140);
|
||||
fl_vertex(60, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
fl_color(FL_BLUE);
|
||||
fl_line_style(FL_SOLID | FL_CAP_SQUARE |FL_JOIN_BEVEL , 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 130);
|
||||
fl_vertex(70, 130);
|
||||
fl_vertex(70, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
fl_color(FL_BLACK);
|
||||
fl_line_style(FL_DASH , 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 120);
|
||||
fl_vertex(80, 120);
|
||||
fl_vertex(80, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
fl_color(FL_RED);
|
||||
fl_line_style(FL_DASH |FL_CAP_FLAT , 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 110);
|
||||
fl_vertex(90, 110);
|
||||
fl_vertex(90, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
fl_color(FL_GREEN);
|
||||
fl_line_style(FL_DASH |FL_CAP_ROUND , 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 100);
|
||||
fl_vertex(100, 100);
|
||||
fl_vertex(100, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
|
||||
fl_color(FL_BLUE);
|
||||
fl_line_style(FL_DASH |FL_CAP_SQUARE , 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 90);
|
||||
fl_vertex(110, 90);
|
||||
fl_vertex(110, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
fl_color(FL_BLACK);
|
||||
fl_line_style(FL_DOT, 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 80);
|
||||
fl_vertex(120, 80);
|
||||
fl_vertex(120, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
fl_color(FL_RED);
|
||||
fl_line_style(FL_DOT | FL_CAP_FLAT, 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 70);
|
||||
fl_vertex(130, 70);
|
||||
fl_vertex(130, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
fl_color(FL_GREEN);
|
||||
fl_line_style(FL_DOT | FL_CAP_ROUND, 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 60);
|
||||
fl_vertex(140, 60);
|
||||
fl_vertex(140, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
fl_color(FL_BLUE);
|
||||
fl_line_style(FL_DOT | FL_CAP_SQUARE, 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 50);
|
||||
fl_vertex(150, 50);
|
||||
fl_vertex(150, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
fl_color(FL_BLACK);
|
||||
fl_line_style(FL_DASHDOT |FL_CAP_ROUND |FL_JOIN_ROUND , 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 40);
|
||||
fl_vertex(160, 40);
|
||||
fl_vertex(160, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
fl_color(FL_RED);
|
||||
fl_line_style(FL_DASHDOTDOT |FL_CAP_SQUARE |FL_JOIN_BEVEL , 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 30);
|
||||
fl_vertex(170, 30);
|
||||
fl_vertex(170, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
|
||||
fl_color(FL_GREEN);
|
||||
fl_line_style(FL_DASHDOTDOT |FL_CAP_ROUND |FL_JOIN_ROUND , 5);
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 20);
|
||||
fl_vertex(180, 20);
|
||||
fl_vertex(180, 190);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
|
||||
fl_color(FL_BLUE);
|
||||
fl_line_style(0, 5, "\12\3\4\2\2\1");
|
||||
fl_begin_line();
|
||||
fl_vertex(10, 10);
|
||||
fl_vertex(190, 10);
|
||||
fl_vertex(190, 190);
|
||||
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
fl_pop_matrix();
|
||||
|
||||
fl_color(FL_BLACK);
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
public:
|
||||
MyWidget4(int x, int y):Fl_Box(x,y,150,150, "Line styles"){
|
||||
labelsize(10);
|
||||
align(FL_ALIGN_TOP);
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
class MyWidget5: public Fl_Box{
|
||||
protected:
|
||||
void draw(){
|
||||
Fl_Box::draw();
|
||||
//fl_push_clip(x(),y(),w(),h());
|
||||
fl_push_matrix();
|
||||
|
||||
|
||||
fl_translate(x(),y());
|
||||
fl_push_matrix();
|
||||
fl_mult_matrix(1,3,0,1,0,-20);
|
||||
fl_color(FL_GREEN);
|
||||
fl_begin_polygon();
|
||||
fl_vertex(10,10);
|
||||
fl_vertex(100,-80);
|
||||
fl_vertex(100,-190);
|
||||
fl_end_polygon();
|
||||
|
||||
fl_color(FL_RED);
|
||||
fl_line_style(FL_DASHDOT, 7);
|
||||
fl_begin_loop();
|
||||
|
||||
|
||||
fl_vertex(10,10);
|
||||
fl_vertex(100,-80);
|
||||
fl_vertex(100,-190);
|
||||
fl_end_loop();
|
||||
fl_line_style(0);
|
||||
|
||||
fl_color(FL_BLUE);
|
||||
fl_line_style(FL_SOLID, 3);
|
||||
fl_begin_loop();
|
||||
fl_circle(60,-50,30);
|
||||
fl_end_loop();
|
||||
fl_line_style(0);
|
||||
|
||||
fl_pop_matrix();
|
||||
fl_scale(1.8,1);
|
||||
|
||||
fl_color(FL_YELLOW);
|
||||
fl_begin_polygon();
|
||||
fl_arc(30,90,20,-45,200);
|
||||
fl_end_polygon();
|
||||
|
||||
fl_color(FL_BLACK);
|
||||
fl_line_style(FL_DASH, 3);
|
||||
fl_begin_line();
|
||||
fl_arc(30,90,20,-45,200);
|
||||
fl_end_line();
|
||||
fl_line_style(0);
|
||||
|
||||
fl_translate(15,0);
|
||||
fl_scale(1.5,3);
|
||||
fl_begin_complex_polygon();
|
||||
fl_vertex(30,70);
|
||||
fl_arc(45,55,10,200,90);
|
||||
fl_arc(55,45,8,-170,20);
|
||||
fl_vertex(60,40);
|
||||
fl_vertex(30,20);
|
||||
fl_vertex(40,5);
|
||||
fl_vertex(60,25);
|
||||
//fl_vertex(50,50);
|
||||
fl_curve(35,30,30,53,0,35,65,65);
|
||||
fl_gap();
|
||||
fl_vertex(50,25);
|
||||
fl_vertex(40,10);
|
||||
fl_vertex(35,20);
|
||||
fl_end_complex_polygon();
|
||||
|
||||
fl_pop_matrix();
|
||||
|
||||
// fl_color(FL_BLACK);
|
||||
// fl_line_style(0);
|
||||
//fl_pop_clip();
|
||||
|
||||
|
||||
|
||||
};
|
||||
public:
|
||||
MyWidget5(int x, int y):Fl_Box(x,y,230,250, "Complex (double) drawings:\nBlue ellipse may not be\ncorrectly transformed\ndue to non-orthogonal\ntransformation"){
|
||||
labelsize(10);
|
||||
align(FL_ALIGN_TOP);
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
uchar *image;
|
||||
int width = 80;
|
||||
int height = 80;
|
||||
|
||||
void make_image() {
|
||||
image = new uchar[4*width*height];
|
||||
uchar *p = image;
|
||||
for (int y = 0; y < height; y++) {
|
||||
double Y = double(y)/(height-1);
|
||||
for (int x = 0; x < width; x++) {
|
||||
double X = double(x)/(width-1);
|
||||
*p++ = uchar(255*((1-X)*(1-Y))); // red in upper-left
|
||||
*p++ = uchar(255*((1-X)*Y)); // green in lower-left
|
||||
*p++ = uchar(255*(X*Y)); // blue in lower-right
|
||||
X -= 0.5;
|
||||
Y -= 0.5;
|
||||
int alpha = (int)(350 * sqrt(X * X + Y * Y));
|
||||
if (alpha < 255) *p++ = uchar(alpha); // alpha transparency
|
||||
else *p++ = 255;
|
||||
Y += 0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void print(Fl_Widget *, void *w) {
|
||||
Fl_Widget * g = (Fl_Widget *)w;
|
||||
|
||||
//Fl_Printer * p = new Fl_PS_Printer(f, 3);
|
||||
Fl_Printer * p = new Fl_Printer();
|
||||
//p->page(Fl_Printer::A4);
|
||||
//p->place(g, 70, 70, p->page_width() - 140, p->page_height() - 140, FL_ALIGN_CENTER);
|
||||
if (!p->start_job(1)) {
|
||||
p->start_page();
|
||||
p->print_widget(g);
|
||||
p->end_page();
|
||||
p->end_job();
|
||||
}
|
||||
delete p;
|
||||
};
|
||||
|
||||
/*void print2(Fl_Widget *, void *w) {
|
||||
Fl_Widget * g = (Fl_Widget *)w;
|
||||
Fl_Printer * p = fl_printer_chooser();
|
||||
if(!p) return;
|
||||
p->page(Fl_Printer::A4);
|
||||
// fitting inside margins 1 inch wide
|
||||
p->place(g, FL_INCH, FL_INCH, p->page_width() - 2 * FL_INCH, p->page_height() - 2 * FL_INCH, FL_ALIGN_CENTER);
|
||||
Fl_Device * c = p->set_current();
|
||||
fl_draw(g);
|
||||
c->set_current();
|
||||
delete p;
|
||||
};*/
|
||||
|
||||
|
||||
class My_Button:public Fl_Button{
|
||||
protected:
|
||||
void draw(){
|
||||
// Fl_Button::draw();
|
||||
if (type() == FL_HIDDEN_BUTTON) return;
|
||||
Fl_Color col = value() ? selection_color() : color();
|
||||
draw_box(value() ? (down_box()?down_box():fl_down(box())) : box(), col);
|
||||
fl_color(FL_WHITE);
|
||||
fl_line_style(FL_SOLID,5);
|
||||
fl_line(x()+15,y()+10,x()+w()-15,y()+h()-23);
|
||||
fl_line(x()+w()-15,y()+10,x()+15,y()+h()-23);
|
||||
fl_line_style(0);
|
||||
draw_label();
|
||||
|
||||
};
|
||||
public:
|
||||
My_Button(int x, int y, int w, int h, const char * label = 0):Fl_Button(x,y,w,h,label){}
|
||||
};
|
||||
|
||||
|
||||
int main(int argc, char ** argv) {
|
||||
|
||||
//Fl::scheme("plastic");
|
||||
|
||||
|
||||
|
||||
Fl_Window * w2 = new Fl_Window(500,560,"Graphics test");
|
||||
|
||||
|
||||
Fl_Group *c2 =new Fl_Group(3, 43, 494, 514 );
|
||||
|
||||
new MyWidget(10,140);
|
||||
new MyWidget2(110,80);
|
||||
new MyWidget3(220,140);
|
||||
new MyWidget4(330,70);
|
||||
new MyWidget5(140,270);
|
||||
|
||||
make_image();
|
||||
Fl_RGB_Image *rgb = new Fl_RGB_Image(image, width, height, 4);
|
||||
My_Button b_rgb(10,245,100,100,"RGB with alpha");
|
||||
b_rgb.image(rgb);
|
||||
|
||||
My_Button b_pixmap(10,345,100,100,"Pixmap");
|
||||
Fl_Pixmap *pixmap = new Fl_Pixmap(porsche_xpm);
|
||||
b_pixmap.image(pixmap);
|
||||
|
||||
My_Button b_bitmap(10,445,100,100,"Bitmap");
|
||||
b_bitmap.labelcolor(FL_GREEN);
|
||||
b_bitmap.image(new Fl_Bitmap(sorceress_bits,sorceress_width,sorceress_height));
|
||||
|
||||
new Fl_Clock(360,230,120,120);
|
||||
Fl_Return_Button * ret = new Fl_Return_Button (360, 360, 120,30, "Return");
|
||||
ret->deactivate();
|
||||
Fl_Button but1(360, 390, 30, 30, "@->|");
|
||||
but1.labelcolor(FL_DARK3);
|
||||
Fl_Button but2(390, 390, 30, 30, "@UpArrow");
|
||||
but2.labelcolor(FL_DARK3);
|
||||
Fl_Button but3(420, 390, 30, 30, "@DnArrow");
|
||||
but3.labelcolor(FL_DARK3);
|
||||
Fl_Button but4(450, 390, 30, 30, "@+");
|
||||
but4.labelcolor(FL_DARK3);
|
||||
Fl_Button but5(360, 425, 120, 30, "Hello, World");
|
||||
but5.labelfont(FL_BOLD|FL_ITALIC);
|
||||
but5.labeltype(FL_SHADOW_LABEL);
|
||||
but5.box(FL_ROUND_UP_BOX);
|
||||
// but5.selection_color(FL_WHITE);
|
||||
|
||||
Fl_Button but6(360, 460, 120, 30, "Plastic");
|
||||
but6.box(FL_PLASTIC_UP_BOX);
|
||||
|
||||
//Fl_Button but7(, 480, 120, 30, "Engraved box");
|
||||
//but7.box(FL_ENGRAVED_BOX);
|
||||
{ Fl_Group* o = new Fl_Group(360, 495, 120, 40);
|
||||
o->box(FL_UP_BOX);
|
||||
{ Fl_Group* o = new Fl_Group(365, 500, 110, 30);
|
||||
o->box(FL_THIN_UP_FRAME);
|
||||
{ Fl_Round_Button* o = new Fl_Round_Button(365, 500, 40, 30, "rad");
|
||||
o->value(1);
|
||||
}
|
||||
{ Fl_Check_Button* o = new Fl_Check_Button(410, 500, 60, 30, "check");
|
||||
o->value(1);
|
||||
|
||||
}
|
||||
o->end();
|
||||
}
|
||||
o->end();
|
||||
o->deactivate();
|
||||
}
|
||||
Fl_Box tx(120,492,230,50,"Background is not printed because\nencapsulating group, which we are\n printing, has not set the box type");
|
||||
tx.box(FL_SHADOW_BOX);
|
||||
tx.labelsize(12);
|
||||
|
||||
|
||||
|
||||
c2->end();
|
||||
Fl_Button *b4 = new Fl_Button(10,5, 150, 25, "Print");
|
||||
b4->callback(print,c2);
|
||||
/*Fl_Button *b5 = new Fl_Button(165,5, 90, 25, "Print");
|
||||
b5->tooltip("This is a tooltip");
|
||||
b5->callback(print2,c2);*/
|
||||
|
||||
w2->end();
|
||||
w2->show(argc, argv);
|
||||
|
||||
|
||||
Fl::run();
|
||||
return 0;
|
||||
};
|
@ -1420,9 +1420,38 @@ menu(int choice)
|
||||
}
|
||||
}
|
||||
|
||||
// added to demo printing
|
||||
#include <FL/Fl_Sys_Menu_Bar.H>
|
||||
#include <FL/Fl_Gl_Printer.H>
|
||||
|
||||
void print_cb(Fl_Widget *w, void *data)
|
||||
{
|
||||
Fl_Gl_Printer printer;
|
||||
Fl_Window *win = Fl::first_window();
|
||||
if(!win) return;
|
||||
if( printer.start_job(1) ) return;
|
||||
if( printer.start_page() ) return;
|
||||
printer.scale(0.68,0.68);
|
||||
printer.print_gl_window( (Fl_Gl_Window*)win );
|
||||
printer.end_page();
|
||||
printer.end_job();
|
||||
}
|
||||
// end of printing demo
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
// added to demo printing
|
||||
static Fl_Menu_Item items[] = {
|
||||
{ "Menu", 0, 0, 0, FL_SUBMENU },
|
||||
{ "Print", 0, print_cb, 0, 0 },
|
||||
{ 0 },
|
||||
{ 0 }
|
||||
};
|
||||
Fl_Sys_Menu_Bar *menubar_;
|
||||
menubar_ = new Fl_Sys_Menu_Bar(0, 0, 1, 25);
|
||||
menubar_->menu(items);
|
||||
// end of printing demo
|
||||
long i;
|
||||
|
||||
glutInit(&argc, argv);
|
||||
|
@ -124,6 +124,7 @@ int main(int argc, char **argv) {
|
||||
Fl_Double_Window window(400,400); ::w = &window;
|
||||
window.color(FL_WHITE);
|
||||
Fl_Button b(140,160,120,120,"Image w/Alpha"); ::b = &b;
|
||||
b.color(FL_YELLOW);
|
||||
|
||||
Fl_RGB_Image *rgb;
|
||||
Fl_Image *dergb;
|
||||
|
@ -7,10 +7,11 @@ unittests.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Hold_Browser.H
|
||||
unittests.o: ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
|
||||
unittests.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Image.H
|
||||
unittests.o: ../FL/Fl_Help_View.H ../FL/Fl.H ../FL/fl_draw.H
|
||||
unittests.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Group.H ../FL/Fl_Box.H
|
||||
unittests.o: ../FL/fl_draw.H unittest_about.cxx unittest_points.cxx
|
||||
unittests.o: unittest_lines.cxx unittest_rects.cxx unittest_circles.cxx
|
||||
unittests.o: unittest_text.cxx unittest_images.cxx unittest_viewport.cxx
|
||||
unittests.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Shared_Image.H
|
||||
unittests.o: ../FL/Fl_Group.H ../FL/Fl_Box.H ../FL/fl_draw.H
|
||||
unittests.o: unittest_about.cxx unittest_points.cxx unittest_lines.cxx
|
||||
unittests.o: unittest_rects.cxx unittest_circles.cxx unittest_text.cxx
|
||||
unittests.o: unittest_images.cxx unittest_viewport.cxx
|
||||
unittests.o: unittest_scrollbarsize.cxx ../FL/Fl_Browser.H
|
||||
unittests.o: ../FL/Fl_Value_Slider.H
|
||||
adjuster.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
@ -116,6 +117,10 @@ cube.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
cube.o: ../FL/Fl_Box.H ../FL/Fl_Button.H ../FL/Fl_Radio_Light_Button.H
|
||||
cube.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_Slider.H
|
||||
cube.o: ../FL/Fl_Valuator.H ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H ../FL/gl.h
|
||||
cube.o: ../FL/Fl_Sys_Menu_Bar.H ../FL/Fl_Menu_Bar.H ../FL/Fl_Menu_.H
|
||||
cube.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/x.H ../FL/Fl_Gl_Printer.H
|
||||
cube.o: ../FL/Fl_Printer.H ../FL/Fl_Device.H ../FL/x.H ../FL/fl_draw.H
|
||||
cube.o: ../FL/Fl_Pixmap.H ../FL/Fl_RGB_Image.H ../FL/Fl_Bitmap.H
|
||||
CubeMain.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
CubeMain.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
CubeMain.o: ../FL/Fl_Export.H ../FL/fl_types.h CubeViewUI.h
|
||||
@ -148,6 +153,23 @@ demo.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
|
||||
demo.o: ../FL/Fl_Widget.H ../FL/Fl_Box.H ../FL/Fl_Button.H ../FL/Fl_Choice.H
|
||||
demo.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
|
||||
demo.o: ../FL/filename.H ../FL/x.H
|
||||
device.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
device.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
device.o: ../FL/fl_types.h ../FL/Fl_Overlay_Window.H ../FL/Fl_Double_Window.H
|
||||
device.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
device.o: ../FL/Fl_Light_Button.H ../FL/fl_draw.H ../FL/Fl_Clock.H
|
||||
device.o: ../test/pixmaps/porsche.xpm ../FL/Fl_Pixmap.H ../FL/Fl_Image.H
|
||||
device.o: ../FL/Fl_Bitmap.H ../FL/Fl_Round_Button.H ../FL/Fl_Light_Button.H
|
||||
device.o: ../FL/Fl_Button.H ../FL/Fl_Printer.H ../FL/Fl_Device.H ../FL/x.H
|
||||
device.o: ../FL/Fl_RGB_Image.H ../FL/Fl_File_Chooser.H
|
||||
device.o: ../FL/Fl_Double_Window.H ../FL/Fl_Group.H ../FL/Fl_Choice.H
|
||||
device.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Menu_Button.H
|
||||
device.o: ../FL/Fl_Button.H ../FL/Fl_Preferences.H ../FL/Fl_Tile.H
|
||||
device.o: ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
|
||||
device.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
device.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H ../FL/Fl_Box.H
|
||||
device.o: ../FL/Fl_Check_Button.H ../FL/Fl_File_Input.H ../FL/Fl_Input.H
|
||||
device.o: ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H ../FL/fl_ask.H
|
||||
doublebuffer.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
doublebuffer.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
doublebuffer.o: ../FL/fl_types.h ../FL/Fl_Single_Window.H ../FL/Fl_Window.H
|
||||
@ -168,7 +190,7 @@ editor.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H ../FL/Fl_Button.H
|
||||
editor.o: ../FL/Fl_File_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
|
||||
editor.o: ../FL/Fl_Return_Button.H ../FL/Fl_Menu_Bar.H ../FL/Fl_Text_Buffer.H
|
||||
editor.o: ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H
|
||||
editor.o: ../FL/Fl_Text_Buffer.H
|
||||
editor.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Text_Buffer.H
|
||||
fast_slow.o: fast_slow.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
fast_slow.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
fast_slow.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Double_Window.H
|
||||
@ -200,13 +222,13 @@ fonts.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Image.H
|
||||
fonts.o: ../FL/fl_draw.H ../FL/Fl_Box.H ../FL/fl_ask.H
|
||||
forms.o: ../FL/forms.H ../FL/Fl.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
forms.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
forms.o: ../FL/Fl_Window.H ../FL/fl_draw.H ../FL/Fl_FormsBitmap.H
|
||||
forms.o: ../FL/Fl_Bitmap.H ../FL/Fl_Image.H ../FL/Fl_FormsPixmap.H
|
||||
forms.o: ../FL/Fl_Pixmap.H ../FL/Fl_Box.H ../FL/Fl_Browser.H
|
||||
forms.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
|
||||
forms.o: ../FL/Fl_Valuator.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
forms.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Fl_Button.H
|
||||
forms.o: ../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H
|
||||
forms.o: ../FL/Fl_Window.H ../FL/fl_draw.H ../FL/Fl_Device.H ../FL/x.H
|
||||
forms.o: ../FL/Xutf8.h ../FL/Fl_FormsBitmap.H ../FL/Fl_Bitmap.H
|
||||
forms.o: ../FL/Fl_Image.H ../FL/Fl_FormsPixmap.H ../FL/Fl_Pixmap.H
|
||||
forms.o: ../FL/Fl_Box.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
|
||||
forms.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
forms.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
forms.o: ../FL/Fl_Button.H ../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H
|
||||
forms.o: ../FL/Fl_Check_Button.H ../FL/Fl_Chart.H ../FL/Fl_Choice.H
|
||||
forms.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H
|
||||
forms.o: ../FL/Fl_Counter.H ../FL/Fl_Dial.H ../FL/Fl_Free.H ../FL/fl_ask.H
|
||||
@ -242,6 +264,11 @@ glpuzzle.o: ../config.h ../FL/glut.H ../FL/gl.h ../FL/Enumerations.H
|
||||
glpuzzle.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl.H
|
||||
glpuzzle.o: ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
|
||||
glpuzzle.o: ../FL/Fl_Widget.H ../FL/glu.h trackball.c trackball.h
|
||||
glpuzzle.o: ../FL/Fl_Sys_Menu_Bar.H ../FL/Fl_Menu_Bar.H ../FL/Fl_Menu_.H
|
||||
glpuzzle.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/x.H ../FL/Xutf8.h
|
||||
glpuzzle.o: ../FL/Fl_Gl_Printer.H ../FL/Fl_Printer.H ../FL/Fl_Device.H
|
||||
glpuzzle.o: ../FL/x.H ../FL/fl_draw.H ../FL/Fl_Pixmap.H ../FL/Fl_RGB_Image.H
|
||||
glpuzzle.o: ../FL/Fl_Bitmap.H ../FL/Fl_Gl_Window.H
|
||||
hello.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
hello.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
hello.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
|
||||
@ -253,7 +280,7 @@ help.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Group.H ../FL/Fl_Button.H
|
||||
help.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Box.H
|
||||
help.o: ../FL/Fl_Help_View.H ../FL/Fl.H ../FL/Fl_Scrollbar.H
|
||||
help.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H
|
||||
help.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Image.H
|
||||
help.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Shared_Image.H ../FL/Fl_Image.H
|
||||
iconize.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
iconize.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
iconize.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
|
||||
@ -323,6 +350,9 @@ mandelbrot.o: ../FL/Fl_Export.H ../FL/fl_types.h mandelbrot.h ../FL/Fl_Box.H
|
||||
mandelbrot.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Double_Window.H
|
||||
mandelbrot.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
mandelbrot.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/fl_draw.H
|
||||
mandelbrot.o: ../FL/Fl_Button.H ../FL/Fl_Printer.H ../FL/Fl_Device.H
|
||||
mandelbrot.o: ../FL/x.H ../FL/Fl_Pixmap.H ../FL/Fl_Image.H
|
||||
mandelbrot.o: ../FL/Fl_RGB_Image.H ../FL/Fl_Bitmap.H
|
||||
menubar.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
menubar.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
menubar.o: ../FL/fl_types.h ../FL/Fl_Box.H ../FL/Fl_Double_Window.H
|
||||
@ -418,6 +448,23 @@ preferences.o: ../FL/Fl_Round_Button.H ../FL/Fl_Light_Button.H
|
||||
preferences.o: ../FL/Fl_Button.H ../FL/Fl_Box.H ../FL/Fl_Check_Button.H
|
||||
preferences.o: ../FL/Fl_Value_Slider.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
preferences.o: ../FL/filename.H ../FL/fl_ask.H
|
||||
device.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
device.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
device.o: ../FL/fl_types.h ../FL/Fl_Overlay_Window.H ../FL/Fl_Double_Window.H
|
||||
device.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
|
||||
device.o: ../FL/Fl_Light_Button.H ../FL/fl_draw.H ../FL/Fl_Clock.H
|
||||
device.o: ../test/pixmaps/porsche.xpm ../FL/Fl_Pixmap.H ../FL/Fl_Image.H
|
||||
device.o: ../FL/Fl_Bitmap.H ../FL/Fl_Round_Button.H ../FL/Fl_Light_Button.H
|
||||
device.o: ../FL/Fl_Button.H ../FL/Fl_Printer.H ../FL/Fl_Device.H ../FL/x.H
|
||||
device.o: ../FL/Fl_RGB_Image.H ../FL/Fl_File_Chooser.H
|
||||
device.o: ../FL/Fl_Double_Window.H ../FL/Fl_Group.H ../FL/Fl_Choice.H
|
||||
device.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Menu_Button.H
|
||||
device.o: ../FL/Fl_Button.H ../FL/Fl_Preferences.H ../FL/Fl_Tile.H
|
||||
device.o: ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
|
||||
device.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
device.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H ../FL/Fl_Box.H
|
||||
device.o: ../FL/Fl_Check_Button.H ../FL/Fl_File_Input.H ../FL/Fl_Input.H
|
||||
device.o: ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H ../FL/fl_ask.H
|
||||
radio.o: radio.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
|
||||
radio.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
|
||||
radio.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Double_Window.H
|
||||
@ -475,10 +522,10 @@ sudoku.o: ../FL/Fl_Button.H ../FL/Fl_Group.H ../FL/fl_ask.H ../FL/fl_draw.H
|
||||
sudoku.o: ../FL/Fl_Help_Dialog.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
|
||||
sudoku.o: ../FL/Fl_Box.H ../FL/Fl_Help_View.H ../FL/Fl.H ../FL/Fl_Scrollbar.H
|
||||
sudoku.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H
|
||||
sudoku.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Image.H ../FL/Fl_Preferences.H
|
||||
sudoku.o: ../FL/Fl_Sys_Menu_Bar.H ../FL/Fl_Menu_Bar.H ../FL/Fl_Menu_.H
|
||||
sudoku.o: ../FL/Fl_Menu_Item.H ../FL/x.H ../FL/x.H ../FL/math.h
|
||||
sudoku.o: pixmaps/sudoku.xbm ../config.h
|
||||
sudoku.o: ../FL/Fl_Device.H ../FL/x.H ../FL/Fl_Shared_Image.H
|
||||
sudoku.o: ../FL/Fl_Image.H ../FL/Fl_Preferences.H ../FL/Fl_Sys_Menu_Bar.H
|
||||
sudoku.o: ../FL/Fl_Menu_Bar.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/x.H
|
||||
sudoku.o: ../FL/math.h pixmaps/sudoku.xbm ../config.h
|
||||
symbols.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
|
||||
symbols.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
symbols.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
|
||||
|
@ -27,6 +27,8 @@
|
||||
|
||||
#include "mandelbrot_ui.h"
|
||||
#include <FL/fl_draw.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Printer.H>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@ -43,8 +45,30 @@ void set_idle() {
|
||||
|
||||
static void window_callback(Fl_Widget*, void*) {exit(0);}
|
||||
|
||||
static void print(Fl_Widget *o, void *data)
|
||||
{
|
||||
Fl_Printer printer;
|
||||
Fl_Window *win = o->window();
|
||||
if(!win->visible()) return;
|
||||
win->make_current();
|
||||
uchar *image_data = fl_read_image(NULL, 0, 0, win->w(), win->h(), 0);
|
||||
if( printer.start_job(1) ) return;
|
||||
if( printer.start_page() ) return;
|
||||
printer.scale(.7,.7);
|
||||
fl_draw_image(image_data, 0,0, win->w(), win->h());
|
||||
printer.end_page();
|
||||
delete image_data;
|
||||
printer.end_job();
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
mbrot.make_window();
|
||||
mbrot.window->begin();
|
||||
Fl_Button* o = new Fl_Button(0, 0, 0, 0, NULL);
|
||||
o->callback(print,NULL);
|
||||
o->shortcut(FL_CTRL+'p');
|
||||
mbrot.window->end();
|
||||
|
||||
mbrot.d->X = -.75;
|
||||
mbrot.d->scale = 2.5;
|
||||
mbrot.update_label();
|
||||
|
@ -52,7 +52,7 @@ d->new_display();}
|
||||
}
|
||||
Fl_Box {} {
|
||||
label {left: click = zoom out, drag = zoom in
|
||||
right click: Julia set}
|
||||
right click: Julia set, ctrl-P: Print}
|
||||
xywh {240 50 190 30} labelsize 10 align 24 deactivate
|
||||
}
|
||||
Fl_Slider {} {
|
||||
|
189
test/print.cxx
Normal file
189
test/print.cxx
Normal file
@ -0,0 +1,189 @@
|
||||
//
|
||||
// "$Id: curve.cxx 6615 2009-01-01 16:35:13Z matt $"
|
||||
//
|
||||
// Curve test program for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
// Copyright 1998-2009 by Bill Spitzak and others.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Library General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Library General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Library General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
// USA.
|
||||
//
|
||||
// Please report all bugs and problems on the following page:
|
||||
//
|
||||
// http://www.fltk.org/str.php
|
||||
//
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/fl_ask.H>
|
||||
#include <FL/Fl_Double_Window.H>
|
||||
#include <FL/Fl_Hor_Value_Slider.H>
|
||||
#include <FL/fl_draw.H>
|
||||
#include <FL/Fl_Toggle_Button.H>
|
||||
//#include <FL/Fl_Printer.H>
|
||||
#include <FL/Fl_Device.H>
|
||||
#include <FL/Fl_Pixmap.H>
|
||||
#include "pixmaps/porsche.xpm"
|
||||
Fl_Pixmap porsche (porsche_xpm);
|
||||
double args[9] = {
|
||||
20,20, 50,200, 100,20, 200,200, 0};
|
||||
const char* name[9] = {
|
||||
"X0", "Y0", "X1", "Y1", "X2", "Y2", "X3", "Y3", "rotate"};
|
||||
|
||||
int points;
|
||||
|
||||
#include <FL/Fl_Box.H>
|
||||
class Drawing : public Fl_Window {
|
||||
void draw() {
|
||||
fl_push_clip(0,0,w(),h());
|
||||
fl_color(FL_DARK3);
|
||||
fl_rectf(0,0,w(),h());
|
||||
fl_color(FL_RED);
|
||||
fl_font(FL_HELVETICA, 14);
|
||||
// tau epsilon chi tau
|
||||
static unsigned utfs[4] = {0x3c4, 0x3b5, 0x3c7, 0x3c4};
|
||||
char utf8[40] = "test UTF ";
|
||||
for(int i = 0; i < 4; i++) {
|
||||
char buf[5];
|
||||
int l = fl_utf8encode(utfs[i], buf); buf[l] = 0;
|
||||
strcat(utf8, buf);
|
||||
}
|
||||
fl_draw(utf8, 5, 15);
|
||||
fl_color(FL_BLACK);
|
||||
fl_font(FL_HELVETICA, 24);
|
||||
fl_draw("bottom clipped text", 5, h() + 4);
|
||||
fl_line_style(FL_SOLID, 0);
|
||||
fl_rect(x()+200,y()+10,64,64);
|
||||
porsche.draw(x()+200,y()+10,64,64);
|
||||
fl_push_matrix();
|
||||
if (args[8]) {
|
||||
fl_translate(w()/2.0, h()/2.0);
|
||||
fl_rotate(args[8]);
|
||||
fl_translate(-(w()/2.0), -(h()/2.0));
|
||||
}
|
||||
fl_translate(x(),y());
|
||||
if (!points) {
|
||||
fl_color(FL_WHITE);
|
||||
fl_begin_complex_polygon();
|
||||
fl_curve(args[0],args[1],args[2],args[3],args[4],args[5],args[6],args[7]);
|
||||
fl_end_complex_polygon();
|
||||
}
|
||||
fl_color(FL_BLACK);
|
||||
fl_begin_line();
|
||||
fl_vertex(args[0],args[1]);
|
||||
fl_vertex(args[2],args[3]);
|
||||
fl_vertex(args[4],args[5]);
|
||||
fl_vertex(args[6],args[7]);
|
||||
fl_end_line();
|
||||
fl_color(points ? FL_WHITE : FL_RED);
|
||||
points ? fl_begin_points() : fl_begin_line();
|
||||
fl_curve(args[0],args[1],args[2],args[3],args[4],args[5],args[6],args[7]);
|
||||
points ? fl_end_points() : fl_end_line();
|
||||
fl_pop_matrix();
|
||||
fl_pop_clip();
|
||||
}
|
||||
public:
|
||||
Drawing(int X,int Y,int W,int H) : Fl_Window(X,Y,W,H) {}
|
||||
};
|
||||
|
||||
Drawing *d;
|
||||
|
||||
void points_cb(Fl_Widget* o, void*) {
|
||||
points = ((Fl_Toggle_Button*)o)->value();
|
||||
d->redraw();
|
||||
}
|
||||
|
||||
void slider_cb(Fl_Widget* o, void* v) {
|
||||
Fl_Slider* s = (Fl_Slider*)o;
|
||||
args[long(v)] = s->value();
|
||||
d->redraw();
|
||||
}
|
||||
|
||||
#include <FL/Fl_Printer.H>
|
||||
void print_cb(Fl_Widget* o, void* v) {
|
||||
int w, h;
|
||||
Drawing *d = (Drawing *)v;
|
||||
Fl_Window *win = o->window();
|
||||
// start print job and one page
|
||||
Fl_Printer printer;
|
||||
if ( printer.start_job(1) ) {
|
||||
#if defined(__APPLE__) || defined(WIN32)
|
||||
fl_alert("error starting print job");
|
||||
#else
|
||||
fl_alert("error starting print job\n"
|
||||
"this platform doesn't support printing yet");
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
if (printer.start_page() ) return;
|
||||
// draw the printable area border
|
||||
printer.printable_rect(&w, &h);
|
||||
fl_color(FL_GRAY);
|
||||
fl_line_style(FL_DOT, 0);
|
||||
fl_rect(0,0,w,h);
|
||||
fl_line_style(FL_SOLID, 0);
|
||||
//print the full window at top left of page
|
||||
printer.print_widget(win);
|
||||
//print the shrinked Drawing custom widget at right of page
|
||||
printer.scale(.6,.6);
|
||||
printer.printable_rect(&w, &h);
|
||||
printer.origin(w - d->w(), 100);
|
||||
printer.print_widget(d);
|
||||
//print the print button at bottom left
|
||||
printer.scale(1,1);
|
||||
printer.printable_rect(&w, &h);
|
||||
printer.print_widget(o, 0, h - o->h() );
|
||||
//print the scaled window at bottom right
|
||||
printer.scale(.5,.5);
|
||||
printer.printable_rect(&w, &h);
|
||||
printer.print_widget(win, w - win->w(), h - win->h());
|
||||
|
||||
// close page and print job
|
||||
printer.end_page();
|
||||
printer.end_job();
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
Fl_Double_Window window(300,555);
|
||||
Fl_Double_Window window2(5,5,290,290);
|
||||
Drawing drawing(5,5,280,280);
|
||||
drawing.end();
|
||||
window2.end();
|
||||
window2.box(FL_DOWN_BOX);
|
||||
d = &drawing;
|
||||
|
||||
int y = 300;
|
||||
for (int n = 0; n<9; n++) {
|
||||
Fl_Slider* s = new Fl_Hor_Value_Slider(50,y,240,25,name[n]); y += 25;
|
||||
s->minimum(0); s->maximum(280);
|
||||
if (n == 8) s->maximum(360);
|
||||
s->step(1);
|
||||
s->value(args[n]);
|
||||
s->align(FL_ALIGN_LEFT);
|
||||
s->callback(slider_cb, (void*)n);
|
||||
}
|
||||
Fl_Toggle_Button but(50,y,50,25,"points");
|
||||
but.callback(points_cb);
|
||||
|
||||
Fl_Button pbut(110, y, 50, 25, "Print");
|
||||
pbut.callback(print_cb, d);
|
||||
|
||||
window.end();
|
||||
window.show(argc,argv);
|
||||
return Fl::run();
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: curve.cxx 6615 2009-01-01 16:35:13Z matt $".
|
||||
//
|
@ -78,8 +78,8 @@ public:
|
||||
fl_color(FL_BLACK); fl_rectf(xx, yy, 130, 130);
|
||||
fl_color(FL_WHITE); fl_rectf(xx+1, yy+1, 64, 64);
|
||||
fl_color(FL_WHITE); fl_rectf(xx+65, yy+65, 64, 64);
|
||||
// fl_draw_image(img_rgba, xx+1, yy+1, 128, 128, 4);
|
||||
i_rgba->draw(xx+1,yy+1);
|
||||
fl_draw_image(img_rgba, xx+1, yy+1, 128, 128, 4);
|
||||
//i_rgba->draw(xx+1,yy+1);
|
||||
fl_color(FL_BLACK); fl_draw("RGBA", xx+134, yy+64);
|
||||
|
||||
xx = x()+10+200; yy = y()+10;
|
||||
|
Loading…
Reference in New Issue
Block a user