Author: manolo
Date: 2012-05-17 06:50:11 -0700 (Thu, 17 May 2012)
New Revision: 9514
Log:
Created function fltk3::Widget* fltk3::event_widget() with this Doxygen
description:
Widget to which mouse event coordinates relate.
Functions fltk3::event_x() and fltk3::event_y() return values that are
offsets from the top-left of the widget returned by this function.
Outside of event-handling contexts, this function returns NULL.
Modified:
branches/branch-3.0/include/FL/Fl.H
branches/branch-3.0/include/fltk3/Widget.h
branches/branch-3.0/include/fltk3/run.h
branches/branch-3.0/src/fltk3/Widget.cxx
branches/branch-3.0/src/fltk3/run.cxx
Modified: branches/branch-3.0/include/FL/Fl.H
===================================================================
--- branches/branch-3.0/include/FL/Fl.H 2012-05-17 13:10:08 UTC (rev 9513)
+++ branches/branch-3.0/include/FL/Fl.H 2012-05-17 13:50:11 UTC (rev 9514)
@@ -301,13 +301,13 @@
static int event_x() {
int retval = fltk3::event_x();
- if (fltk3::e_widget && !fltk3::e_widget->as_window()) retval +=
fltk3::e_widget->dx_window();
+ if (fltk3::event_widget() && !fltk3::event_widget()->as_window()) retval
+= fltk3::event_widget()->dx_window();
return retval;
}
static int event_y() {
int retval = fltk3::event_y();
- if (fltk3::e_widget && !fltk3::e_widget->as_window()) retval +=
fltk3::e_widget->dy_window();
+ if (fltk3::event_widget() && !fltk3::event_widget()->as_window()) retval
+= fltk3::event_widget()->dy_window();
return retval;
}
@@ -392,9 +392,9 @@
}
static int event_inside(int x, int y, int w, int h) {
- if (fltk3::e_widget && !fltk3::e_widget->as_window()) {
- x -= fltk3::e_widget->dx_window();
- y -= fltk3::e_widget->dy_window();
+ if (fltk3::event_widget() && !fltk3::event_widget()->as_window()) {
+ x -= fltk3::event_widget()->dx_window();
+ y -= fltk3::event_widget()->dy_window();
}
return fltk3::event_inside(x, y, w, h);
}
Modified: branches/branch-3.0/include/fltk3/Widget.h
===================================================================
--- branches/branch-3.0/include/fltk3/Widget.h 2012-05-17 13:10:08 UTC (rev
9513)
+++ branches/branch-3.0/include/fltk3/Widget.h 2012-05-17 13:50:11 UTC (rev
9514)
@@ -326,6 +326,7 @@
*/
class FLTK3_EXPORT Widget : public Label {
friend class Group;
+ friend Widget* fltk3::event_widget();
fltk3::Group* parent_;
fltk3::Callback* callback_;
@@ -338,6 +339,7 @@
uchar when_;
const char *tooltip_;
+ static Widget* e_widget; //the Widget to which event coordinates relate or
NULL
/** unimplemented copy ctor */
Widget(const Widget &);
Modified: branches/branch-3.0/include/fltk3/run.h
===================================================================
--- branches/branch-3.0/include/fltk3/run.h 2012-05-17 13:10:08 UTC (rev
9513)
+++ branches/branch-3.0/include/fltk3/run.h 2012-05-17 13:50:11 UTC (rev
9514)
@@ -145,7 +145,6 @@
extern fltk3::Widget* belowmouse_;
extern fltk3::Widget* pushed_;
extern fltk3::Widget* focus_;
- extern fltk3::Widget* e_widget;
extern int damage_;
extern fltk3::Widget* selection_owner_;
extern fltk3::Window* modal_;
@@ -694,6 +693,8 @@
you paste a nul character.
*/
inline int event_length() {return e_length;}
+
+ Widget* event_widget();
int compose(int &del);
void compose_reset();
Modified: branches/branch-3.0/src/fltk3/Widget.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/Widget.cxx 2012-05-17 13:10:08 UTC (rev
9513)
+++ branches/branch-3.0/src/fltk3/Widget.cxx 2012-05-17 13:50:11 UTC (rev
9514)
@@ -45,6 +45,7 @@
static fltk3::Widget *obj_queue[QUEUE_SIZE];
static int obj_head, obj_tail;
+fltk3::Widget* fltk3::Widget::e_widget = NULL;
void fltk3::Widget::default_callback(fltk3::Widget *o, void * /*v*/) {
#if 0
@@ -514,9 +515,9 @@
int old_event = fltk3::e_number; fltk3::e_number = event;
// the widget to which fltk3::event_x() and event_y() coordinates are
relative
- fltk3::e_widget = this;
+ e_widget = this;
int ret = handle(fltk3::e_number);
- fltk3::e_widget = NULL; // set to NULL outside of handle()
+ e_widget = NULL; // set to NULL outside of handle()
fltk3::e_number = old_event;
fltk3::e_y = save_y;
Modified: branches/branch-3.0/src/fltk3/run.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/run.cxx 2012-05-17 13:10:08 UTC (rev
9513)
+++ branches/branch-3.0/src/fltk3/run.cxx 2012-05-17 13:50:11 UTC (rev
9514)
@@ -96,7 +96,6 @@
fltk3::Widget *fltk3::belowmouse_,
*fltk3::pushed_,
*fltk3::focus_,
- *fltk3::e_widget,
*fltk3::selection_owner_;
int fltk3::damage_,
fltk3::e_number,
@@ -220,6 +219,7 @@
// and e_x, e_y are relative to e_widget.
int dx = e_x, dy = e_y;
Group* g = o->parent();
+ Widget* e_widget = event_widget();
if (e_widget && !e_widget->as_window()) {
dx += e_widget->dx_window();
dy += e_widget->dy_window();
@@ -2015,6 +2015,14 @@
fltk3::release_widget_pointer(wp_); // remove pointer from watch list
}
+/** Widget to which mouse event coordinates relate.
+
+ Functions fltk3::event_x() and fltk3::event_y() return values that are
+ offsets from the top-left of the widget returned by this function.
+ Outside of event-handling contexts, this function returns NULL.
+ */
+fltk3::Widget* fltk3::event_widget() {return fltk3::Widget::e_widget;}
+
//
// End of "$Id$".
//
_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit