Author: matt
Date: 2012-05-13 13:45:33 -0700 (Sun, 13 May 2012)
New Revision: 9487
Log:
Fixing coordinates for FLTK1 emulation layer draw() call

Modified:
   branches/branch-3.0/include/FL/Fl_Widget.H
   branches/branch-3.0/include/fltk3/Wrapper.h
   branches/branch-3.0/test/gl_overlay.cxx

Modified: branches/branch-3.0/include/FL/Fl_Widget.H
===================================================================
--- branches/branch-3.0/include/FL/Fl_Widget.H  2012-05-12 22:34:42 UTC (rev 
9486)
+++ branches/branch-3.0/include/FL/Fl_Widget.H  2012-05-13 20:45:33 UTC (rev 
9487)
@@ -33,6 +33,7 @@
 #include <fltk3/Wrapper.h>
 #include <fltk3/Widget.h>
 #include <fltk3/Group.h>
+#include <fltk3/draw.h>
 
 #include "Enumerations.H"
 #include "Fl_Image.H"

Modified: branches/branch-3.0/include/fltk3/Wrapper.h
===================================================================
--- branches/branch-3.0/include/fltk3/Wrapper.h 2012-05-12 22:34:42 UTC (rev 
9486)
+++ branches/branch-3.0/include/fltk3/Wrapper.h 2012-05-13 20:45:33 UTC (rev 
9487)
@@ -151,6 +151,21 @@
 }
 */
 
+#define FLTK3_WRAPPER_VCALLS_OBJECT_DRAW(type, klass, proto, call, flag) \
+  virtual void proto { \
+    if ( pVCalls & pVCall##type##flag ) { \
+      fltk3::translate_origin(x(), y()); \
+      ((fltk3::klass*)_p)->call; \
+      fltk3::translate_origin(-x(), -y()); \
+    } else { \
+      pVCalls |= pVCall##type##flag; \
+      fltk3::translate_origin(x(), y()); \
+      ((fltk3::klass*)_p)->call; \
+      fltk3::translate_origin(-x(), -y()); \
+      pVCalls &= ~pVCall##type##flag; \
+    } \
+  }
+
 #define FLTK3_WRAPPER_VCALLS_OBJECT(type, klass, proto, call, flag) \
 virtual void proto { \
   if ( pVCalls & pVCall##type##flag ) { \
@@ -190,6 +205,16 @@
     return; \
   }
 
+#define FLTK3_OBJECT_VCALLS_WRAPPER_DRAW(type, call, flag) \
+  if (pWrapper && !(pWrapper->pVCalls & Wrapper::pVCall##type##flag) ) { \
+    pWrapper->pVCalls |= Wrapper::pVCall##type##flag; \
+    fltk3::translate_origin(-x(), -y()); \
+    ((type##Wrapper*)pWrapper)->call; \
+    fltk3::translate_origin(x(), y()); \
+    pWrapper->pVCalls &= ~Wrapper::pVCall##type##flag; \
+    return; \
+  }
+
 #define FLTK3_OBJECT_VCALLS_WRAPPER(type, call, flag) \
   if (pWrapper && !(pWrapper->pVCalls & Wrapper::pVCall##type##flag) ) { \
     pWrapper->pVCalls |= Wrapper::pVCall##type##flag; \
@@ -240,7 +265,7 @@
         type3::resize(X, Y, W, H); \
       } \
       void draw() { \
-        FLTK3_WIDGET_VCALLS_WRAPPER(draw(), Draw) \
+        FLTK3_OBJECT_VCALLS_WRAPPER_DRAW(Widget, draw(), Draw) \
         type3::draw(); \
       } \
       int handle(int event) { \
@@ -324,7 +349,7 @@
   FLTK3_WRAPPER_VCALLS_OBJECT_DTOR(type1, type3##_I) \
   FLTK3_WRAPPER_VCALLS_WIDGET(type3##_I, show(), show(), Show) \
   FLTK3_WRAPPER_VCALLS_WIDGET(type3##_I, hide(), hide(), Hide) \
-  FLTK3_WRAPPER_VCALLS_WIDGET(type3##_I, draw(), draw(), Draw) \
+  FLTK3_WRAPPER_VCALLS_OBJECT_DRAW(Widget, type3##_I, draw(), draw(), Draw) \
   FLTK3_WRAPPER_VCALLS_WIDGET(type3##_I, resize(int x, int y, int w, int h), 
resize(x, y, w, h), Resize) \
   FLTK3_WRAPPER_VCALLS_WIDGET_RET(int, type3##_I, handle(int event), 
handle(event), Handle)
 

Modified: branches/branch-3.0/test/gl_overlay.cxx
===================================================================
--- branches/branch-3.0/test/gl_overlay.cxx     2012-05-12 22:34:42 UTC (rev 
9486)
+++ branches/branch-3.0/test/gl_overlay.cxx     2012-05-13 20:45:33 UTC (rev 
9487)
@@ -120,7 +120,7 @@
   fltk3::Window window(300, 370);
 
   shape_window sw(10, 75, window.w()-20, window.h()-90);
-//sw.mode(fltk3::RGB);
+  sw.mode(fltk3::RGB);
   window.resizable(&sw);
 
   fltk3::HorSlider slider(60, 5, window.w()-70, 30, "Sides:");

_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit

Reply via email to