OK, so since Fl_Tabs currently has no defined when() behavior,
it seems we can define the behavior of the non-default values how we want,
as long as the "default behavior" remains unchanged.
Having looked exhaustively at similar widgets (Fl_Radio_Button & Fl_Browser)
to divine the when() flags intention I'd like to implement the following
behavior
which I think makes sense, to me at least:
when() Flags | Mouse Behavior | Keyboard
Behavior
--------------|-------------------------------------------------|--------------------------------------
NEVER | change: no callback | change: no
callback
| no change: no callback | no change: N/A
--------------|-------------------------------------------------|--------------------------------------
CHANGED | change: callback on PUSH, changed()=true | change:
callback on PUSH, changed()=true
| no change: no callback | no change: N/A
--------------|-------------------------------------------------|--------------------------------------
NOT_CHANGED | change: no callback | change: no
callback
| no change: callback on PUSH, changed()=false | no change: N/A
--------------|-------------------------------------------------|--------------------------------------
CHANGED + | change: callback on PUSH, changed()=true | change:
callback on PUSH, changed()=true
NOT_CHANGED | no change: callback on PUSH, changed()=false | no change: N/A
--------------|-------------------------------------------------|--------------------------------------
RELEASE | change: callback on RELEASE, changed()=true | change:
callback on RELEASE, changed()=true
| no change: no callback | no change: N/A
--------------|-------------------------------------------------|--------------------------------------
RELEASE + | change: callback on RELEASE, changed()=true | change:
callback on RELEASE, changed()=true
CHANGED | no change: no callback | no change: N/A
--------------|-------------------------------------------------|--------------------------------------
RELEASE + | change: no callback | change: no
callback
NOT_CHANGED | no change: callback on RELEASE, changed()=false | no change: N/A
--------------|-------------------------------------------------|--------------------------------------
RELEASE + | change: callback on RELEASE, changed()=true | change:
callback on RELEASE, changed()=true
CHANGED + | no change: callback on RELEASE, changed()=false | no change: N/A
NOT_CHANGED | |
----------------------------------------------------------------+--------------------------------------
Notes on the above:
N/A: "Not Applicable".. there is no way to keyboard navigate the tabs
without making a change.
RELEASE: this has (and will continue to be) the default when() value of
Fl_Tabs.
This default behavior will remain the same.
The above departs from the current behavior of Fl_Browser and Fl_Radio_Button
in that the keyboard behavior for PUSH vs. RELEASE follows the same logic as
the mouse.
(In the other widgets, keyboard callbacks are always on RELEASE)
You can compare the above to the current radio + browser behavior:
http://seriss.com/people/erco/fltk/when-behavior-03-26-2013.html
Looking for comments on the above suggestion for tab behavior, and possible
problems
if any adding this might cause. (I can think of none, other than apps that
change when()
for Fl_Tabs that would suddenly inherit the new behavior; to date, Fl_Tabs has
totally
ignored the value of when())
_______________________________________________
fltk-dev mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-dev