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