diff options
Diffstat (limited to 'src/drivers')
| -rw-r--r-- | src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm | 6 | ||||
| -rw-r--r-- | src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm b/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm index 5c0e7ba75..e5fb88ff1 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm +++ b/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm @@ -19,7 +19,7 @@ #include <FL/Fl_Printer.H> #include <FL/Fl_Shared_Image.H> #include <FL/Fl_Window_Driver.H> -#include "../Quartz/Fl_Quartz_Printer_Graphics_Driver.H" +#include "../Quartz/Fl_Quartz_Graphics_Driver.H" #include "../Darwin/Fl_Darwin_System_Driver.H" #include "Fl_Cocoa_Window_Driver.H" @@ -81,7 +81,9 @@ Fl_Cocoa_Printer_Driver::Fl_Cocoa_Printer_Driver(void) x_offset = 0; y_offset = 0; scale_x = scale_y = 1.; - driver(new Fl_Quartz_Printer_Graphics_Driver); + Fl_Quartz_Graphics_Driver *d = (Fl_Quartz_Graphics_Driver*)Fl_Graphics_Driver::newMainGraphicsDriver(); + d->is_printer_ = Fl_Graphics_Driver::PRINTER; + driver(d); } Fl_Paged_Device* Fl_Paged_Device::newPrinterDriver(void) diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H index 216554f86..b46b94000 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H @@ -41,20 +41,23 @@ struct Fl_Fontdesc; */ class Fl_Quartz_Graphics_Driver : public Fl_Graphics_Driver { friend class Fl_Font_Descriptor; + friend class Fl_Cocoa_Printer_Driver; protected: CGContextRef gc_; int p_size; typedef struct { float x; float y; } XPOINT; XPOINT *p; bool high_resolution_; + driver_feature is_printer_; // protected constructor to ensure only derived classes are allocated Fl_Quartz_Graphics_Driver() : Fl_Graphics_Driver(), gc_(NULL), p_size(0), p(NULL) { high_resolution_ = false; + is_printer_ = (driver_feature)0; } public: static const int CoreText_threshold; // min Mac OS version for CoreText virtual ~Fl_Quartz_Graphics_Driver() { if (p) free(p); } - virtual int has_feature(driver_feature mask) { return mask & NATIVE; } + virtual int has_feature(driver_feature mask) { return mask & (NATIVE | is_printer_); } virtual void gc(void *ctxt) {if (ctxt != gc_) global_gc(); gc_ = (CGContextRef)ctxt; } virtual void *gc() {return gc_;} char can_do_alpha_blending(); |
