comparison codeDoc/ideas.txt @ 173:a1ba9157510e

Enabled ServiceContentList to call its callbacks when its value changes. Tried to fix some other bugs, but this is not a very clean commit, due to wanting to make some big changes to enable better use of invariants next.
author Diggory Hardy <diggory.hardy@gmail.com>
date Sat, 08 Aug 2009 15:53:10 +0200
parents 0dd49f333189
children 3d58adc17d20
comparison
equal deleted inserted replaced
172:0dd49f333189 173:a1ba9157510e
10 GUI: 10 GUI:
11 -> Widgets: 11 -> Widgets:
12 > generalise concept of 2D widgets: 12 > generalise concept of 2D widgets:
13 > some other way of specifying a widget's dimensions 13 > some other way of specifying a widget's dimensions
14 > divide layout widget into a sub-widget handler and a placement component, such that placement can use a rectangle, hexagon or whatever component 14 > divide layout widget into a sub-widget handler and a placement component, such that placement can use a rectangle, hexagon or whatever component
15 > Menu widgets:
16 > Need BoolContentWidget with name in menu
17 > Special widget?
15 -> scripted widgets 18 -> scripted widgets
16 -> decent rendering/theme system 19 -> decent rendering/theme system
17 -> events: 20 -> events:
18 -> Click events: widgets only receive clickEvent for left-button press, other button events handled alternatively from WidgetManager? 21 ?> Click events: WidgetManager separates out actions:
22 > left-click down:
23 > starts drag monitor, visually depresses buttons
24 > calls downClick, which can return codes to enable dragging, etc.
25 > if mouse moved more than dragStartDistance from click-position and dragging-from-widget available, start drag mode:
26 > visual feedback for dragging
27 > releasing does drag action; releasing on start widget cancels action
28 > otherwise, releasing does normal button effect (pass a eventClick)
29 *> consequence: button click/release & dragging more managed by WM; possibly less flexible for widgets
30 > dropContent(mouseClipboard): middle click paste action
31 > ...: open context menu
32 > eventScroll: scrolling event
33 -> Issue: release-click for menu buttons needs to be passed separately
19 -> Click/drag handling: 34 -> Click/drag handling:
20 -> on click:
21 -> clicked widget recieves depress event
22 -> create drag monitor, which records parent and optionally runs parent method on move (which can find the widget/drop-zone underneath)
23 -> on release:
24 -> method from either dragged or drop-zone widget called with reference to the other:
25 -> perhaps function in dragged widget called, which is passed reference of widget underneath, and can call getDropZoneAncestor on this
26 -> drag/drop-like possibilities: 35 -> drag/drop-like possibilities:
27 -> magnifier which is dragged from icon, creates a magnified window, and disappears on release 36 -> magnifier which is dragged from icon, creates a magnified window, and disappears on release
28 -> colour-picker which is dragged from a widget and dropped to choose the colour under it 37 -> colour-picker which is dragged from a widget and dropped to choose the colour under it
29 -> Keyboard widget focus/selection: 38 -> Keyboard widget focus/selection:
30 -> a widget is highlighted 39 -> a widget is highlighted