Continue removing from class Fl_X what is not window-related.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11612 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Manolo Gouy 2016-04-15 11:09:10 +00:00
parent a1de05784b
commit 156d2e4053
4 changed files with 52 additions and 25 deletions

View File

@ -167,7 +167,6 @@ public:
static unsigned char *bitmap_from_window_rect(Fl_Window *win, int x, int y, int w, int h, int *bytesPerPixel); static unsigned char *bitmap_from_window_rect(Fl_Window *win, int x, int y, int w, int h, int *bytesPerPixel);
static void screen_work_area(int &X, int &Y, int &W, int &H, int n); // compute work area of a given screen static void screen_work_area(int &X, int &Y, int &W, int &H, int n); // compute work area of a given screen
static void clip_to_rounded_corners(CGContextRef gc, int w, int h); static void clip_to_rounded_corners(CGContextRef gc, int w, int h);
static void complete_copy_pdf_and_tiff(CGContextRef gc, CFMutableDataRef pdfdata);
private: private:
CGRect* subRect_; // makes sure subwindow remains inside its parent window CGRect* subRect_; // makes sure subwindow remains inside its parent window
// stores 3 binary flags: whether window is mapped to retina display; whether resolution just changed; // stores 3 binary flags: whether window is mapped to retina display; whether resolution just changed;

View File

@ -45,6 +45,7 @@ extern "C" {
#include <FL/Fl_Shared_Image.H> #include <FL/Fl_Shared_Image.H>
#include <FL/fl_draw.H> #include <FL/fl_draw.H>
#include "drivers/Quartz/Fl_Quartz_Graphics_Driver.H" #include "drivers/Quartz/Fl_Quartz_Graphics_Driver.H"
#include "drivers/Quartz/Fl_Quartz_Copy_Surface_Driver.H"
#include "drivers/Cocoa/Fl_Cocoa_Screen_Driver.H" #include "drivers/Cocoa/Fl_Cocoa_Screen_Driver.H"
#include "drivers/Cocoa/Fl_Cocoa_Window_Driver.H" #include "drivers/Cocoa/Fl_Cocoa_Window_Driver.H"
#include "drivers/Darwin/Fl_Darwin_System_Driver.H" #include "drivers/Darwin/Fl_Darwin_System_Driver.H"
@ -3317,7 +3318,7 @@ void Fl_X::set_high_resolution(bool new_val)
Fl_Display_Device::high_res_window_ = new_val; Fl_Display_Device::high_res_window_ = new_val;
} }
void Fl_X::complete_copy_pdf_and_tiff(CGContextRef gc, CFMutableDataRef pdfdata) Fl_Quartz_Copy_Surface_Driver::~Fl_Quartz_Copy_Surface_Driver()
{ {
CGContextRestoreGState(gc); CGContextRestoreGState(gc);
CGContextEndPage(gc); CGContextEndPage(gc);

View File

@ -0,0 +1,49 @@
//
// "$Id: Fl_Quartz_Copy_Surface_Driver.H 11017 2016-01-20 21:40:12Z matt $"
//
// Definition of Apple Quartz graphics driver
// for the Fast Light Tool Kit (FLTK).
//
// Copyright 2010-2016 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
// file is missing or damaged, see the license at:
//
// http://www.fltk.org/COPYING.php
//
// Please report all bugs and problems on the following page:
//
// http://www.fltk.org/str.php
//
#ifndef Fl_Quartz_Copy_Surface_Driver_H
#define Fl_Quartz_Copy_Surface_Driver_H
#include <FL/Fl_Copy_Surface.H>
class Fl_Quartz_Copy_Surface_Driver : public Fl_Copy_Surface_Driver {
friend class Fl_Copy_Surface_Driver;
protected:
CFMutableDataRef pdfdata;
CGContextRef gc;
void prepare_copy_pdf_and_tiff(int w, int h);
void init_PDF_context(int w, int h);
static size_t MyPutBytes(void* info, const void* buffer, size_t count);
Fl_Quartz_Copy_Surface_Driver(int w, int h);
// implemented in Fl_cocoa.mm because uses Objective-c
~Fl_Quartz_Copy_Surface_Driver();
void set_current();
void translate(int x, int y);
void untranslate();
int w() {return width;}
int h() {return height;}
int printable_rect(int *w, int *h) {*w = width; *h = height; return 0;}
};
#endif /* Fl_Quartz_Copy_Surface_Driver_H */
//
// End of "$Id: Fl_Quartz_Copy_Surface_Driver.H 11017 2016-01-20 21:40:12Z matt $".
//

View File

@ -22,24 +22,7 @@
#include <FL/Fl_Copy_Surface.H> #include <FL/Fl_Copy_Surface.H>
#include <FL/x.H> #include <FL/x.H>
#include "Fl_Quartz_Graphics_Driver.H" #include "Fl_Quartz_Graphics_Driver.H"
#include "Fl_Quartz_Copy_Surface_Driver.H"
class Fl_Quartz_Copy_Surface_Driver : public Fl_Copy_Surface_Driver {
friend class Fl_Copy_Surface_Driver;
protected:
CFMutableDataRef pdfdata;
CGContextRef gc;
void prepare_copy_pdf_and_tiff(int w, int h);
void init_PDF_context(int w, int h);
static size_t MyPutBytes(void* info, const void* buffer, size_t count);
Fl_Quartz_Copy_Surface_Driver(int w, int h);
~Fl_Quartz_Copy_Surface_Driver();
void set_current();
void translate(int x, int y);
void untranslate();
int w() {return width;}
int h() {return height;}
int printable_rect(int *w, int *h) {*w = width; *h = height; return 0;}
};
Fl_Copy_Surface_Driver *Fl_Copy_Surface_Driver::newCopySurfaceDriver(int w, int h) Fl_Copy_Surface_Driver *Fl_Copy_Surface_Driver::newCopySurfaceDriver(int w, int h)
{ {
@ -51,11 +34,6 @@ Fl_Quartz_Copy_Surface_Driver::Fl_Quartz_Copy_Surface_Driver(int w, int h) : Fl_
prepare_copy_pdf_and_tiff(w, h); prepare_copy_pdf_and_tiff(w, h);
} }
Fl_Quartz_Copy_Surface_Driver::~Fl_Quartz_Copy_Surface_Driver() {
// that code is implemented in Fl_cocoa.mm because it uses some Objective-c
Fl_X::complete_copy_pdf_and_tiff(gc, pdfdata);
}
void Fl_Quartz_Copy_Surface_Driver::set_current() { void Fl_Quartz_Copy_Surface_Driver::set_current() {
driver()->gc(gc); driver()->gc(gc);
fl_window = (Window)1; fl_window = (Window)1;