diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2020-07-11 12:21:25 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2020-07-11 12:21:25 +0200 |
| commit | 2984fe638cefe617f749950622ee58a31c6b3ca1 (patch) | |
| tree | c8963fd87eace84d693db111d4b4457de8d3b4bc | |
| parent | 8d5eed3c82fa6f59c4f9d860f1d5c6bbdd837d80 (diff) | |
Fix for building without print support (GitHub issue #98).
| -rw-r--r-- | FL/Fl_PostScript.H | 2 | ||||
| -rw-r--r-- | src/Fl_Printer.cxx | 13 | ||||
| -rw-r--r-- | test/device.cxx | 6 |
3 files changed, 16 insertions, 5 deletions
diff --git a/FL/Fl_PostScript.H b/FL/Fl_PostScript.H index b5b84e422..489916d6b 100644 --- a/FL/Fl_PostScript.H +++ b/FL/Fl_PostScript.H @@ -357,7 +357,7 @@ public: ~Fl_EPS_File_Surface(); virtual int printable_rect(int *w, int *h); /** Returns the underlying FILE pointer */ - FILE *file() { return driver()->output; } + FILE *file() { return driver() ? driver()->output : NULL; } virtual void origin(int x, int y); virtual void origin(int *px, int *py); virtual void translate(int x, int y); diff --git a/src/Fl_Printer.cxx b/src/Fl_Printer.cxx index 22b2a891e..4c88607b7 100644 --- a/src/Fl_Printer.cxx +++ b/src/Fl_Printer.cxx @@ -27,7 +27,7 @@ Fl_Printer::Fl_Printer(void) { Fl_Paged_Device* Fl_Printer::newPrinterDriver(void) { return NULL; } -int Fl_Printer::begin_job(int pagecount, int *frompage, int *topage) {return 1;} +int Fl_Printer::begin_job(int pagecount, int *frompage, int *topage, char **perr_message) {return 2;} int Fl_Printer::begin_page(void) {return 1;} int Fl_Printer::printable_rect(int *w, int *h) {return 1;} void Fl_Printer::margins(int *left, int *top, int *right, int *bottom) {} @@ -41,6 +41,7 @@ int Fl_Printer::end_page (void) {return 1;} void Fl_Printer::end_job (void) {} void Fl_Printer::draw_decorated_window(Fl_Window* win, int delta_x, int delta_y) {} void Fl_Printer::set_current(void) {} +bool Fl_Printer::is_current(void) {return false;} Fl_Printer::~Fl_Printer(void) {} const char *Fl_Printer::dialog_title = NULL; @@ -64,7 +65,7 @@ const char *Fl_Printer::property_save = NULL; const char *Fl_Printer::property_cancel = NULL; Fl_PostScript_File_Device::Fl_PostScript_File_Device(void) {} -int Fl_PostScript_File_Device::begin_job(int pagecount, int* from, int* to) {return 1;} +int Fl_PostScript_File_Device::begin_job(int pagecount, int* from, int* to, char **perr_message) {return 2;} int Fl_PostScript_File_Device::begin_job(int pagecount, enum Fl_Paged_Device::Page_Format format, enum Fl_Paged_Device::Page_Layout layout) {return 1;} int Fl_PostScript_File_Device::begin_job(FILE *ps_output, int pagecount, enum Fl_Paged_Device::Page_Format format, @@ -82,6 +83,14 @@ int Fl_PostScript_File_Device::end_page (void) {return 1;} void Fl_PostScript_File_Device::end_job(void) {} Fl_PostScript_File_Device::~Fl_PostScript_File_Device(void) {} +Fl_EPS_File_Surface::Fl_EPS_File_Surface(int width, int height, FILE *eps, Fl_Color background) : Fl_Widget_Surface(NULL) {} +Fl_EPS_File_Surface::~Fl_EPS_File_Surface() {} +void Fl_EPS_File_Surface::origin(int, int) {} +void Fl_EPS_File_Surface::origin(int*, int*) {} +int Fl_EPS_File_Surface::printable_rect(int*, int*) {return 1;} +void Fl_EPS_File_Surface::translate(int, int) {} +void Fl_EPS_File_Surface::untranslate() {} + #else // print dialog customization strings diff --git a/test/device.cxx b/test/device.cxx index e922a77cd..e5e827073 100644 --- a/test/device.cxx +++ b/test/device.cxx @@ -643,9 +643,11 @@ void copy(Fl_Widget *, void *data) { wh = target->h(); } Fl_EPS_File_Surface p(ww, wh, eps); - if (target->as_window()) p.draw_decorated_window(target->as_window()); - else p.draw(target); + if (p.file()) { + if (target->as_window()) p.draw_decorated_window(target->as_window()); + else p.draw(target); //p.close(); + } } fclose(eps); } |
