root/codeDoc/ideas.txt

Revision 120:46c63cb1c74f, 1.8 kB (checked in by Diggory Hardy <diggory.hardy@gmail.com>, 1 week ago)

Ideas for keyboard selection of widgets.

Line 
1 Copyright © 2007-2008 Diggory Hardy
2 License: GNU General Public License version 2 or later (see COPYING)
3
4
5 Make a special "trace" logger which keeps the last 20, say, trace messages and only output them when asked to do so, which might happen when an exception is caught. It might output them via the normal mechanisms, but only when asked (and not all messages may be in the correct order: trace messages might be logged later than they were added to the list).
6
7 Use debug scope(failure) to output log messages in many places.
8
9
10 GUI:
11 ->  Widgets:
12 ->  scripted widgets
13 ->  decent rendering/theme system
14 ->  events:
15     ->  Click events: widgets only receive clickEvent for left-button press, other button events handled alternatively from WidgetManager?
16     ->  Click callbacks: replace with "drag callback" notifying widget of release position (and widget)?
17     ->  possibly better for drag-and drop support
18 ->  Keyboard widget focus/selection:
19     ->  a widget is highlighted
20     ->  pressing an arrow key replaces widget with widget.nextInDirection (widget, direction)
21     ->  on non-parents, nextInDirection returns parent.nextInDirection (this, direction)
22     ->  on parent widgets, if widget is a child and not right against relevent edge,
23             then tries to return next descendant in direction (only non-parent widgets are returned)
24             else does same as non-parent widgets
25         ->  some widgets may popup a menu when activated
26         ->  caveats:
27             ->  all widgets need a highlighted state to show focus
28             ->  may require moving through a lot of widgets
29             ->  with complicated substructures, may not be very intuitive
30     ->  limit to popup menus?
31     ->  these keyboard events only passed if activated by code outside the WidgetManager and no text input callback is active?
Note: See TracBrowser for help on using the browser.