Mercurial > projects > mde
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 |