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

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11514 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Manolo Gouy 2016-04-02 16:08:56 +00:00
parent ddc95025fd
commit 64c96b9098
4 changed files with 12 additions and 5 deletions

View File

@ -168,7 +168,6 @@ public:
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 complete_copy_pdf_and_tiff(CGContextRef gc, CFMutableDataRef pdfdata);
static void draw_layer_to_context(CALayer *layer, CGContextRef gc, int w, int h);
private:
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;

View File

@ -4287,7 +4287,7 @@ static CALayer *get_titlebar_layer(Fl_Window *win)
}
void Fl_X::draw_layer_to_context(CALayer *layer, CGContextRef gc, int w, int h)
void Fl_Cocoa_Screen_Driver::draw_layer_to_context(CALayer *layer, CGContextRef gc, int w, int h)
{
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
CGContextSaveGState(gc);
@ -4315,7 +4315,7 @@ void Fl_Cocoa_Window_Driver::capture_titlebar_and_borders(Fl_Shared_Image*& top,
CGColorSpaceRelease(cspace);
CGContextScaleCTM(auxgc, 2, 2);
if (layer) {
Fl_X::draw_layer_to_context(layer, auxgc, w(), htop);
Fl_Cocoa_Screen_Driver::draw_layer_to_context(layer, auxgc, w(), htop);
} else {
CGImageRef img = Fl_X::CGImage_from_window_rect(pWindow, 0, -htop, w(), htop);
CGContextSaveGState(auxgc);

View File

@ -21,6 +21,7 @@
#include <FL/Fl_Window_Driver.H>
#include "../Quartz/Fl_Quartz_Printer_Graphics_Driver.H"
#include "../Darwin/Fl_Darwin_System_Driver.H"
#include "Fl_Cocoa_Screen_Driver.H"
#include <FL/Fl.H>
#include <FL/x.H>
@ -403,7 +404,7 @@ void Fl_Cocoa_Printer_Driver::draw_decorated_window(Fl_Window *win, int x_offset
CGContextSaveGState(gc);
CGContextTranslateCTM(gc, x_offset - 0.5, y_offset + bt - 0.5);
CGContextScaleCTM(gc, 1, -1);
Fl_X::draw_layer_to_context(layer, gc, win->w(), bt);
Fl_Cocoa_Screen_Driver::draw_layer_to_context(layer, gc, win->w(), bt);
CGContextRestoreGState(gc);
}
else {
@ -411,7 +412,7 @@ void Fl_Cocoa_Printer_Driver::draw_decorated_window(Fl_Window *win, int x_offset
CGContextRef gc = CGBitmapContextCreate(NULL, 2*win->w(), 2*bt, 8, 0, cspace, kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(cspace);
CGContextScaleCTM(gc, 2, 2);
Fl_X::draw_layer_to_context(layer, gc, win->w(), bt);
Fl_Cocoa_Screen_Driver::draw_layer_to_context(layer, gc, win->w(), bt);
Fl_RGB_Image *image = new Fl_RGB_Image((const uchar*)CGBitmapContextGetData(gc), 2*win->w(), 2*bt, 4,
CGBitmapContextGetBytesPerRow(gc)); // 10.2
int ori_x, ori_y;

View File

@ -26,6 +26,7 @@
#define FL_COCOA_SCREEN_DRIVER_H
#include <FL/Fl_Screen_Driver.H>
#include <ApplicationServices/ApplicationServices.h>
/*
Move everything here that manages the native screen interface.
@ -39,6 +40,11 @@
class Fl_Window;
#ifdef __OBJC__
@class CALayer;
#else
class CALayer;
#endif // __OBJC__
class FL_EXPORT Fl_Cocoa_Screen_Driver : public Fl_Screen_Driver
@ -87,6 +93,7 @@ public:
int insertion_point_location(int *px, int *py, int *pheight);
virtual int dnd(int use_selection);
virtual int compose(int &del);
static void draw_layer_to_context(CALayer *layer, CGContextRef gc, int w, int h);
};