From c26809e0eac281e5ebd914773417c6ae09fbb3f0 Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Sun, 27 Sep 2009 12:06:35 +0000 Subject: 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 --- CHANGES | 1 + FL/Fl_Widget.H | 23 +++++++++++++++-------- FL/Fl_Window.H | 40 +++++++++++++++------------------------- src/Fl_Window.cxx | 2 +- src/Fl_Window_fullscreen.cxx | 4 ++-- src/Fl_mac.cxx | 6 +++--- src/Fl_win32.cxx | 4 ++-- src/Fl_x.cxx | 6 +++--- 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 three 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(); -- cgit v1.2.3