summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2009-09-27 12:06:35 +0000
committerMatthias Melcher <fltk@matthiasm.com>2009-09-27 12:06:35 +0000
commitc26809e0eac281e5ebd914773417c6ae09fbb3f0 (patch)
treec5769dd1d3e79205bba4bf197443bf6b9bad7a9b
parenta735162e981a57d629dd7fe460328dbc36287996 (diff)
Consolidated all possible flag values into a single enum in Fl_Widget (STR #2161)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6905 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--CHANGES1
-rw-r--r--FL/Fl_Widget.H23
-rw-r--r--FL/Fl_Window.H40
-rw-r--r--src/Fl_Window.cxx2
-rw-r--r--src/Fl_Window_fullscreen.cxx4
-rw-r--r--src/Fl_mac.cxx6
-rw-r--r--src/Fl_win32.cxx4
-rw-r--r--src/Fl_x.cxx6
8 files changed, 42 insertions, 44 deletions
diff --git a/CHANGES b/CHANGES
index 0276c55f5..9d9ba3427 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,6 @@
CHANGES IN FLTK 1.3.0
+ - Managing all Widget flags in a single location now (STR #2161)
- Fixed all color related call to Fl_Color type (STR #2208)
- File chooser preview now recognizes utf8 encoded
text files (STR #2218)
diff --git a/FL/Fl_Widget.H b/FL/Fl_Widget.H
index 1da113787..0eb8e2c8a 100644
--- a/FL/Fl_Widget.H
+++ b/FL/Fl_Widget.H
@@ -144,14 +144,21 @@ protected:
See activate(), output(), visible(), changed(), set_visible_focus()
*/
enum {
- INACTIVE=1, ///< the widget can't receive focus, and is disabled but potentially visible
- INVISIBLE=2, ///< the widget is not drawn but can receive events
- OUTPUT=4, ///< for output only
- SHORTCUT_LABEL=64, ///< the label contains a shortcut we need to draw
- CHANGED=128, ///< the widget value changed
- VISIBLE_FOCUS=512, ///< accepts keyboard focus navigation if the widget can have the focus
- COPIED_LABEL=1024, ///< the widget label is internally copied, its destruction is handled by the widget
- CLIP_CHILDREN = 2048 ///< all drawing within this widget will be clipped (Fl_Group)
+ INACTIVE = 1, ///< the widget can't receive focus, and is disabled but potentially visible
+ INVISIBLE, ///< the widget is not drawn but can receive events
+ OUTPUT, ///< for output only
+ NOBORDER, ///< don't draw a decoration (Fl_Window)
+ FORCE_POSITION, ///< don't let the window manager position thi window (Fl_Window)
+ NON_MODAL, ///< thisis a hovering toolbar window (Fl_Window)
+ SHORTCUT_LABEL, ///< the label contains a shortcut we need to draw
+ CHANGED, ///< the widget value changed
+ OVERRIDE, ///< position window on top (Fl_Window)
+ VISIBLE_FOCUS, ///< accepts keyboard focus navigation if the widget can have the focus
+ COPIED_LABEL, ///< the widget label is internally copied, its destruction is handled by the widget
+ CLIP_CHILDREN, ///< all drawing within this widget will be clipped (Fl_Group)
+ MENU_WINDOW, ///< a temporary popup window, dismissed by clicking outside (Fl_Window)
+ TOOLTIP_WINDOW, ///< a temporary popup, transparent to events, and dismissed easily (Fl_Window)
+ MODAL, ///< a window blocking input to all other winows (Fl_Window)
};
void draw_box() const;
void draw_box(Fl_Boxtype t, Fl_Color c) const;
diff --git a/FL/Fl_Window.H b/FL/Fl_Window.H
index 0f7fd9610..32bb7da3d 100644
--- a/FL/Fl_Window.H
+++ b/FL/Fl_Window.H
@@ -69,16 +69,6 @@ class FL_EXPORT Fl_Window : public Fl_Group {
Fl_Cursor cursor_default;
Fl_Color cursor_fg, cursor_bg;
void size_range_();
- // values for flags():
- enum {
- FL_MODAL = 64,
- FL_NOBORDER = 8,
- FL_FORCE_POSITION = 16,
- FL_NON_MODAL = 32,
- FL_OVERRIDE = 256,
- FL_MENU_WINDOW = 4096,
- FL_TOOLTIP_WINDOW = 8192
- };
void _Fl_Window(); // constructor innards
// unimplemented copy ctor and assignment operator
@@ -167,13 +157,13 @@ public:
Fast inline function to turn the border
off. It only works before show() is called.
*/
- void clear_border() {set_flag(FL_NOBORDER);}
+ void clear_border() {set_flag(NOBORDER);}
/** See int Fl_Window::border(int) */
- int border() const {return !(flags() & FL_NOBORDER);}
- /** Activate the flags FL_NOBORDER|FL_OVERRIDE */
- void set_override() {set_flag(FL_NOBORDER|FL_OVERRIDE);}
+ int border() const {return !(flags() & NOBORDER);}
+ /** Activate the flags NOBORDER|FL_OVERRIDE */
+ void set_override() {set_flag(NOBORDER|OVERRIDE);}
/** Returns non zero if FL_OVERRIDE flag is set, 0 otherwise. */
- int override() const { return flags()&FL_OVERRIDE; }
+ int override() const { return flags()&OVERRIDE; }
/**
A "modal" window, when shown(), will prevent any events from
being delivered to other windows in the same program, and will also
@@ -183,18 +173,18 @@ public:
which window (if any) is modal by calling
Fl::modal().
*/
- void set_modal() {set_flag(FL_MODAL);}
+ void set_modal() {set_flag(MODAL);}
/** Returns true if this window is modal. */
- int modal() const {return flags() & FL_MODAL;}
+ int modal() const {return flags() & MODAL;}
/**
A "non-modal" window (terminology borrowed from Microsoft Windows)
acts like a modal() one in that it remains on top, but it has
no effect on event delivery. There are <I>three</I> states for a
window: modal, non-modal, and normal.
*/
- void set_non_modal() {set_flag(FL_NON_MODAL);}
+ void set_non_modal() {set_flag(NON_MODAL);}
/** Returns true if this window is modal or non-modal. */
- int non_modal() const {return flags() & (FL_NON_MODAL|FL_MODAL);}
+ int non_modal() const {return flags() & (NON_MODAL|MODAL);}
/**
Marks the window as a menu window.
@@ -209,10 +199,10 @@ public:
This must be called before the window is shown and cannot be changed
later.
*/
- void set_menu_window() {set_flag(FL_MENU_WINDOW);}
+ void set_menu_window() {set_flag(MENU_WINDOW);}
/** Returns true if this window is a menu window. */
- int menu_window() const {return flags() & FL_MENU_WINDOW;}
+ int menu_window() const {return flags() & MENU_WINDOW;}
/**
Marks the window as a tooltip window.
@@ -230,10 +220,10 @@ public:
\note Since Fl_Tooltip_Window is derived from Fl_Menu_Window, this
also \b clears the menu_window() state.
*/
- void set_tooltip_window() { set_flag(FL_TOOLTIP_WINDOW);
- clear_flag(FL_MENU_WINDOW); }
+ void set_tooltip_window() { set_flag(TOOLTIP_WINDOW);
+ clear_flag(MENU_WINDOW); }
/** Returns true if this window is a tooltip window. */
- int tooltip_window() const {return flags() & FL_TOOLTIP_WINDOW;}
+ int tooltip_window() const {return flags() & TOOLTIP_WINDOW;}
/**
Position the window so that the mouse is pointing at the
@@ -252,7 +242,7 @@ public:
so that the next time show() is called the window manager is
free to position the window.
*/
- void free_position() {clear_flag(FL_FORCE_POSITION);}
+ void free_position() {clear_flag(FORCE_POSITION);}
/**
Set the allowable range the user can resize this window to. This only
works for top-level windows.
diff --git a/src/Fl_Window.cxx b/src/Fl_Window.cxx
index 20fcab692..4f54e7ebc 100644
--- a/src/Fl_Window.cxx
+++ b/src/Fl_Window.cxx
@@ -66,7 +66,7 @@ Fl_Window::Fl_Window(int X,int Y,int W, int H, const char *l)
cursor_bg = FL_WHITE;
_Fl_Window();
- set_flag(FL_FORCE_POSITION);
+ set_flag(FORCE_POSITION);
}
Fl_Window::Fl_Window(int W, int H, const char *l)
diff --git a/src/Fl_Window_fullscreen.cxx b/src/Fl_Window_fullscreen.cxx
index c85071308..99af00aa9 100644
--- a/src/Fl_Window_fullscreen.cxx
+++ b/src/Fl_Window_fullscreen.cxx
@@ -43,10 +43,10 @@
void Fl_Window::border(int b) {
if (b) {
if (border()) return;
- clear_flag(FL_NOBORDER);
+ clear_flag(NOBORDER);
} else {
if (!border()) return;
- set_flag(FL_NOBORDER);
+ set_flag(NOBORDER);
}
#if defined(USE_X11)
if (shown()) Fl_X::i(this)->sendxjunk();
diff --git a/src/Fl_mac.cxx b/src/Fl_mac.cxx
index 609caa83c..31491a709 100644
--- a/src/Fl_mac.cxx
+++ b/src/Fl_mac.cxx
@@ -2177,7 +2177,7 @@ void Fl_X::make(Fl_Window* w)
wp += 2*bx;
hp += 2*by+bt;
}
- if (!(w->flags() & Fl_Window::FL_FORCE_POSITION)) {
+ if (!(w->flags() & Fl_Widget::FORCE_POSITION)) {
// use the Carbon functions below for default window positioning
w->x(xyPos+Fl::x());
w->y(xyPos+Fl::y());
@@ -2224,7 +2224,7 @@ void Fl_X::make(Fl_Window* w)
SetWindowClass(x->xid, kFloatingWindowClass);
SetWindowActivationScope(x->xid, kWindowActivationScopeAll);
}
- if (!(w->flags() & Fl_Window::FL_FORCE_POSITION))
+ if (!(w->flags() & Fl_Widget::FORCE_POSITION))
{
WindowRef pw = Fl_X::first ? Fl_X::first->xid : 0 ;
if (w->modal()) {
@@ -2404,7 +2404,7 @@ void Fl_Window::resize(int X,int Y,int W,int H) {
int is_a_resize = (W != w() || H != h());
// printf("Fl_Winodw::resize(X=%d, Y=%d, W=%d, H=%d), is_a_resize=%d, resize_from_system=%p, this=%p\n",
// X, Y, W, H, is_a_resize, resize_from_system, this);
- if (X != x() || Y != y()) set_flag(FL_FORCE_POSITION);
+ if (X != x() || Y != y()) set_flag(FORCE_POSITION);
else if (!is_a_resize) return;
if ( (resize_from_system!=this) && (!parent()) && shown()) {
if (is_a_resize) {
diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx
index 3251f4529..136b3ee0f 100644
--- a/src/Fl_win32.cxx
+++ b/src/Fl_win32.cxx
@@ -1292,7 +1292,7 @@ void Fl_Window::resize(int X,int Y,int W,int H) {
int resize_from_program = (this != resize_bug_fix);
if (!resize_from_program) resize_bug_fix = 0;
if (X != x() || Y != y()) {
- set_flag(FL_FORCE_POSITION);
+ set_flag(FORCE_POSITION);
} else {
if (!is_a_resize) return;
flags |= SWP_NOMOVE;
@@ -1474,7 +1474,7 @@ Fl_X* Fl_X::make(Fl_Window* w) {
wp += 2*bx;
hp += 2*by+bt;
}
- if (!(w->flags() & Fl_Window::FL_FORCE_POSITION)) {
+ if (!(w->flags() & Fl_Widget::FORCE_POSITION)) {
xp = yp = CW_USEDEFAULT;
} else {
if (!Fl::grab()) {
diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx
index ab3dce8a9..d57385aed 100644
--- a/src/Fl_x.cxx
+++ b/src/Fl_x.cxx
@@ -1352,7 +1352,7 @@ void Fl_Window::resize(int X,int Y,int W,int H) {
int is_a_resize = (W != w() || H != h());
int resize_from_program = (this != resize_bug_fix);
if (!resize_from_program) resize_bug_fix = 0;
- if (is_a_move && resize_from_program) set_flag(FL_FORCE_POSITION);
+ if (is_a_move && resize_from_program) set_flag(FORCE_POSITION);
else if (!is_a_resize && !is_a_move) return;
if (is_a_resize) {
Fl_Group::resize(X,Y,W,H);
@@ -1430,7 +1430,7 @@ void Fl_X::make_xid(Fl_Window* win, XVisualInfo *visual, Colormap colormap)
if (!win->parent() && !Fl::grab()) {
// center windows in case window manager does not do anything:
#ifdef FL_CENTER_WINDOWS
- if (!(win->flags() & Fl_Window::FL_FORCE_POSITION)) {
+ if (!(win->flags() & Fl_Widget::FORCE_POSITION)) {
win->x(X = scr_x+(scr_w-W)/2);
win->y(Y = scr_y+(scr_h-H)/2);
}
@@ -1636,7 +1636,7 @@ void Fl_X::sendxjunk() {
prop[1] = 1|2|16; // MWM_FUNC_ALL | MWM_FUNC_RESIZE | MWM_FUNC_MAXIMIZE
}
- if (w->flags() & Fl_Window::FL_FORCE_POSITION) {
+ if (w->flags() & Fl_Widget::FORCE_POSITION) {
hints->flags |= USPosition;
hints->x = w->x();
hints->y = w->y();