mirror of
https://github.com/fltk/fltk.git
synced 2026-06-01 06:14:28 +08:00
Add Fl_PostScript_File_Device::close_command(Fl_PostScript_Close_Command cmd)
Also expand Doxygen doc of class Fl_Printer for the X11 platform.
This commit is contained in:
+13
-3
@@ -25,7 +25,10 @@
|
|||||||
#include <FL/fl_draw.H>
|
#include <FL/fl_draw.H>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
/** Signature of Fl_PostScript::close_command() functions passed as parameters. */
|
/** Signature of functions FLTK may use to close FILE variables after PostScript/EPS output.
|
||||||
|
A non-null return value indicates output error.
|
||||||
|
\see Fl_PostScript_File_Device::close_command() and Fl_EPS_File_Surface::Fl_EPS_File_Surface().
|
||||||
|
*/
|
||||||
extern "C" {
|
extern "C" {
|
||||||
typedef int (*Fl_PostScript_Close_Command)(FILE *);
|
typedef int (*Fl_PostScript_Close_Command)(FILE *);
|
||||||
}
|
}
|
||||||
@@ -44,6 +47,11 @@ class Fl_PostScript_Graphics_Driver;
|
|||||||
FLTK standard fonts are output using the corresponding PostScript standard fonts.
|
FLTK standard fonts are output using the corresponding PostScript standard fonts.
|
||||||
The latin alphabet means all unicode characters between U+0020 and U+017F, or, in other words,
|
The latin alphabet means all unicode characters between U+0020 and U+017F, or, in other words,
|
||||||
the ASCII, Latin-1 Supplement and Latin Extended-A charts.
|
the ASCII, Latin-1 Supplement and Latin Extended-A charts.
|
||||||
|
<br><b>Processing of transparent Fl_RGB_Image objects</b>: Under the X11 + pango platform,
|
||||||
|
these objects are output with their exact transparency. With other platforms, these objects
|
||||||
|
are drawn blended to white color. Class Fl_EPS_File_Surface 's constructor allows to set another
|
||||||
|
background color for blending.
|
||||||
|
<center>Extra characters supported by standard PostScript fonts</center>
|
||||||
<table>
|
<table>
|
||||||
<tr> <th>Char</th><th>Codepoint</th><th>Name</th> <th>Char</th><th>Codepoint</th><th>Name</th> <th>Char</th><th>Codepoint</th><th>Name</th></tr>
|
<tr> <th>Char</th><th>Codepoint</th><th>Name</th> <th>Char</th><th>Codepoint</th><th>Name</th> <th>Char</th><th>Codepoint</th><th>Name</th></tr>
|
||||||
<tr><td>ƒ</td><td>U+0192</td><td>florin</td><td>‚</td><td>U+201A</td><td>quotesinglbase</td><td>™</td><td>U+2122</td><td>trademark</td></tr>
|
<tr><td>ƒ</td><td>U+0192</td><td>florin</td><td>‚</td><td>U+201A</td><td>quotesinglbase</td><td>™</td><td>U+2122</td><td>trademark</td></tr>
|
||||||
@@ -121,14 +129,16 @@ public:
|
|||||||
void translate(int x, int y);
|
void translate(int x, int y);
|
||||||
void untranslate(void);
|
void untranslate(void);
|
||||||
int end_page (void);
|
int end_page (void);
|
||||||
/** Finishes all PostScript output.
|
/** Completes all PostScript output.
|
||||||
This also closes the underlying \p fclose(file()) unless close_command() was used to set another function.
|
This also closes with \p fclose() the underlying file() unless close_command() was used to set another function.
|
||||||
*/
|
*/
|
||||||
void end_job(void);
|
void end_job(void);
|
||||||
/** Label of the PostScript file chooser window */
|
/** Label of the PostScript file chooser window */
|
||||||
static const char *file_chooser_title;
|
static const char *file_chooser_title;
|
||||||
/** Returns the underlying FILE* receiving all PostScript data */
|
/** Returns the underlying FILE* receiving all PostScript data */
|
||||||
FILE *file();
|
FILE *file();
|
||||||
|
/** Sets the function end_job() calls to close the file() */
|
||||||
|
void close_command(Fl_PostScript_Close_Command cmd);
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Encapsulated PostScript drawing surface.
|
/** Encapsulated PostScript drawing surface.
|
||||||
|
|||||||
+8
-3
@@ -59,15 +59,19 @@
|
|||||||
\endcode
|
\endcode
|
||||||
<b>Platform specifics</b>
|
<b>Platform specifics</b>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Unix/Linux platforms:
|
<li>X11 platforms:
|
||||||
<ul><li>FLTK expresses all graphics data using (Level 2) PostScript and sends that to the selected printer.
|
<ul><li>FLTK expresses all graphics data using (Level 2) PostScript and sends that to the selected printer.
|
||||||
See class Fl_PostScript_File_Device for a description of how text appears in print.
|
See class Fl_PostScript_File_Device for a description of how text and transparent images appear in print.
|
||||||
|
<li>If the GTK library is available at run-time, class Fl_Print runs GTK's printer dialog which allows to set
|
||||||
|
printer, paper size and orientation.
|
||||||
|
<li>If that library is not avaialble, or if Fl::option(Fl::OPTION_PRINTER_USES_GTK) has been turned off,
|
||||||
|
class Fl_Print runs FLTK's print dialog.
|
||||||
|
<ul>
|
||||||
<li>Unless it has been previously changed, the default paper size is A4.
|
<li>Unless it has been previously changed, the default paper size is A4.
|
||||||
To change that, press the "Properties" button of the "Print" dialog window
|
To change that, press the "Properties" button of the "Print" dialog window
|
||||||
opened by an Fl_Printer::begin_job() call. This opens a "Printer Properties" window where it's
|
opened by an Fl_Printer::begin_job() call. This opens a "Printer Properties" window where it's
|
||||||
possible to select the adequate paper size. Finally press the "Save" button therein to assign
|
possible to select the adequate paper size. Finally press the "Save" button therein to assign
|
||||||
the chosen paper size to the chosen printer for this and all further print operations.
|
the chosen paper size to the chosen printer for this and all further print operations.
|
||||||
<li>Class Fl_RGB_Image prints but loses its transparency if it has one.
|
|
||||||
<li>Use the static public attributes of this class to set the print dialog to other languages
|
<li>Use the static public attributes of this class to set the print dialog to other languages
|
||||||
than English. For example, the "Printer:" dialog item Fl_Printer::dialog_printer can be set to French with:
|
than English. For example, the "Printer:" dialog item Fl_Printer::dialog_printer can be set to French with:
|
||||||
\code
|
\code
|
||||||
@@ -77,6 +81,7 @@
|
|||||||
<li>Use Fl_PostScript_File_Device::file_chooser_title to customize the title of the file chooser dialog that opens
|
<li>Use Fl_PostScript_File_Device::file_chooser_title to customize the title of the file chooser dialog that opens
|
||||||
when using the "Print To File" option of the print dialog.
|
when using the "Print To File" option of the print dialog.
|
||||||
</ul>
|
</ul>
|
||||||
|
</ul>
|
||||||
<li>Windows platform: Transparent Fl_RGB_Image 's don't print with exact transparency on most printers
|
<li>Windows platform: Transparent Fl_RGB_Image 's don't print with exact transparency on most printers
|
||||||
(a workaround is to use print_window_part() ).
|
(a workaround is to use print_window_part() ).
|
||||||
Fl_RGB_Image 's don't rotate() well.
|
Fl_RGB_Image 's don't rotate() well.
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ void Fl_PostScript_File_Device::untranslate(void) {}
|
|||||||
int Fl_PostScript_File_Device::end_page (void) {return 1;}
|
int Fl_PostScript_File_Device::end_page (void) {return 1;}
|
||||||
void Fl_PostScript_File_Device::end_job(void) {}
|
void Fl_PostScript_File_Device::end_job(void) {}
|
||||||
FILE* Fl_PostScript_File_Device::file() {return NULL;}
|
FILE* Fl_PostScript_File_Device::file() {return NULL;}
|
||||||
|
void Fl_PostScript_File_Device::close_command(Fl_PostScript_Close_Command cmd) {}
|
||||||
Fl_PostScript_File_Device::~Fl_PostScript_File_Device(void) {}
|
Fl_PostScript_File_Device::~Fl_PostScript_File_Device(void) {}
|
||||||
|
|
||||||
Fl_EPS_File_Surface::Fl_EPS_File_Surface(int width, int height, FILE *eps_output,
|
Fl_EPS_File_Surface::Fl_EPS_File_Surface(int width, int height, FILE *eps_output,
|
||||||
|
|||||||
@@ -2111,6 +2111,10 @@ void Fl_PostScript_File_Device::end_job (void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Fl_PostScript_File_Device::close_command(Fl_PostScript_Close_Command cmd) {
|
||||||
|
driver()->close_command(cmd);
|
||||||
|
}
|
||||||
|
|
||||||
Fl_EPS_File_Surface::Fl_EPS_File_Surface(int width, int height, FILE *eps, Fl_Color background, Fl_PostScript_Close_Command closef) :
|
Fl_EPS_File_Surface::Fl_EPS_File_Surface(int width, int height, FILE *eps, Fl_Color background, Fl_PostScript_Close_Command closef) :
|
||||||
Fl_Widget_Surface(new Fl_PostScript_Graphics_Driver()) {
|
Fl_Widget_Surface(new Fl_PostScript_Graphics_Driver()) {
|
||||||
Fl_PostScript_Graphics_Driver *ps = driver();
|
Fl_PostScript_Graphics_Driver *ps = driver();
|
||||||
|
|||||||
Reference in New Issue
Block a user