diff options
| author | Manolo Gouy <Manolo> | 2016-04-03 14:25:42 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2016-04-03 14:25:42 +0000 |
| commit | d292de92ef6b99762d149fd1effef42d26c86466 (patch) | |
| tree | 243159197199b6f4a5d47731f1c99a55eb7fa3e1 /src/drivers/Cocoa | |
| parent | 7c8e3379428a73b98395b07106759d24f3118514 (diff) | |
Rewrite fl_scroll_area.cxx under the driver model.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11520 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/Cocoa')
| -rw-r--r-- | src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H | 1 | ||||
| -rw-r--r-- | src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx | 13 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H index 0e4244ba7..2251391a2 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H +++ b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H @@ -98,6 +98,7 @@ public: //this one is in Fl_cocoa.mm because it uses Objective-c virtual void wait_for_expose(); static void draw_layer_to_context(CALayer *layer, CGContextRef gc, int w, int h); + virtual int scroll(int src_x, int src_y, int src_w, int src_h, int dest_x, int dest_y, void (*draw_area)(void*, int,int,int,int), void* data); }; diff --git a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx index c202da51f..0d98ff108 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx +++ b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx @@ -18,7 +18,8 @@ #include "../../config_lib.h" -#include "Fl_Cocoa_Window_Driver.h" +#include "Fl_Cocoa_Window_Driver.H" +#include "../Quartz/Fl_Quartz_Graphics_Driver.H" #include <FL/Fl_Double_Window.H> #include <FL/Fl_Overlay_Window.H> #include <FL/fl_draw.H> @@ -274,6 +275,16 @@ void Fl_Cocoa_Window_Driver::decoration_sizes(int *top, int *left, int *right, *bottom = 2; } +int Fl_Cocoa_Window_Driver::scroll(int src_x, int src_y, int src_w, int src_h, int dest_x, int dest_y, void (*draw_area)(void*, int,int,int,int), void* data) +{ + CGImageRef img = Fl_X::CGImage_from_window_rect(Fl_Window::current(), src_x, src_y, src_w, src_h); + if (img) { + ((Fl_Quartz_Graphics_Driver*)fl_graphics_driver)->draw_CGImage(img,dest_x,dest_y,src_w,src_h,0,0,src_w,src_h); + CFRelease(img); + } + return 0; +} + // // End of "$Id$". // |
