annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
85
56c0ddd90193 Intermediate commit (not stable). Changes to init system.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 43
diff changeset
1 Copyright © 2007-2008 Diggory Hardy
56c0ddd90193 Intermediate commit (not stable). Changes to init system.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 43
diff changeset
2 License: GNU General Public License version 2 or later (see COPYING)
56c0ddd90193 Intermediate commit (not stable). Changes to init system.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 43
diff changeset
3
56c0ddd90193 Intermediate commit (not stable). Changes to init system.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 43
diff changeset
4
43
1530d9c04d4d Column/row resizing implemented for GridLayoutWidget (finally)!
Diggory Hardy <diggory.hardy@gmail.com>
parents:
diff changeset
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).
1530d9c04d4d Column/row resizing implemented for GridLayoutWidget (finally)!
Diggory Hardy <diggory.hardy@gmail.com>
parents:
diff changeset
6
115
1b1e2297e2fc Enums handled more generically now via either a popup list or flat list of BoolContentWidgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 85
diff changeset
7 Use debug scope(failure) to output log messages in many places.
1b1e2297e2fc Enums handled more generically now via either a popup list or flat list of BoolContentWidgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 85
diff changeset
8
1b1e2297e2fc Enums handled more generically now via either a popup list or flat list of BoolContentWidgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 85
diff changeset
9
1b1e2297e2fc Enums handled more generically now via either a popup list or flat list of BoolContentWidgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 85
diff changeset
10 GUI:
1b1e2297e2fc Enums handled more generically now via either a popup list or flat list of BoolContentWidgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 85
diff changeset
11 -> Widgets:
171
7f7b2011b759 Partially complete commit: code runs but context menus don't work.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 168
diff changeset
12 > generalise concept of 2D widgets:
7f7b2011b759 Partially complete commit: code runs but context menus don't work.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 168
diff changeset
13 > some other way of specifying a widget's dimensions
7f7b2011b759 Partially complete commit: code runs but context menus don't work.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 168
diff changeset
14 > divide layout widget into a sub-widget handler and a placement component, such that placement can use a rectangle, hexagon or whatever component
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
15 > Menu widgets:
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
16 > Need BoolContentWidget with name in menu
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
17 > Special widget?
115
1b1e2297e2fc Enums handled more generically now via either a popup list or flat list of BoolContentWidgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 85
diff changeset
18 -> scripted widgets
1b1e2297e2fc Enums handled more generically now via either a popup list or flat list of BoolContentWidgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 85
diff changeset
19 -> decent rendering/theme system
1b1e2297e2fc Enums handled more generically now via either a popup list or flat list of BoolContentWidgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 85
diff changeset
20 -> events:
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
21 ?> Click events: WidgetManager separates out actions:
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
22 > left-click down:
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
23 > starts drag monitor, visually depresses buttons
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
24 > calls downClick, which can return codes to enable dragging, etc.
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
25 > if mouse moved more than dragStartDistance from click-position and dragging-from-widget available, start drag mode:
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
26 > visual feedback for dragging
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
27 > releasing does drag action; releasing on start widget cancels action
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
28 > otherwise, releasing does normal button effect (pass a eventClick)
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
29 *> consequence: button click/release & dragging more managed by WM; possibly less flexible for widgets
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
30 > dropContent(mouseClipboard): middle click paste action
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
31 > ...: open context menu
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
32 > eventScroll: scrolling event
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.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 172
diff changeset
33 -> Issue: release-click for menu buttons needs to be passed separately
159
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
34 -> Click/drag handling:
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
35 -> drag/drop-like possibilities:
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
36 -> magnifier which is dragged from icon, creates a magnified window, and disappears on release
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
37 -> colour-picker which is dragged from a widget and dropped to choose the colour under it
120
46c63cb1c74f Ideas for keyboard selection of widgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 115
diff changeset
38 -> Keyboard widget focus/selection:
46c63cb1c74f Ideas for keyboard selection of widgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 115
diff changeset
39 -> a widget is highlighted
46c63cb1c74f Ideas for keyboard selection of widgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 115
diff changeset
40 -> pressing an arrow key replaces widget with widget.nextInDirection (widget, direction)
46c63cb1c74f Ideas for keyboard selection of widgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 115
diff changeset
41 -> on non-parents, nextInDirection returns parent.nextInDirection (this, direction)
46c63cb1c74f Ideas for keyboard selection of widgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 115
diff changeset
42 -> on parent widgets, if widget is a child and not right against relevent edge,
46c63cb1c74f Ideas for keyboard selection of widgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 115
diff changeset
43 then tries to return next descendant in direction (only non-parent widgets are returned)
46c63cb1c74f Ideas for keyboard selection of widgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 115
diff changeset
44 else does same as non-parent widgets
46c63cb1c74f Ideas for keyboard selection of widgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 115
diff changeset
45 -> some widgets may popup a menu when activated
46c63cb1c74f Ideas for keyboard selection of widgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 115
diff changeset
46 -> caveats:
46c63cb1c74f Ideas for keyboard selection of widgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 115
diff changeset
47 -> all widgets need a highlighted state to show focus
46c63cb1c74f Ideas for keyboard selection of widgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 115
diff changeset
48 -> may require moving through a lot of widgets
46c63cb1c74f Ideas for keyboard selection of widgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 115
diff changeset
49 -> with complicated substructures, may not be very intuitive
46c63cb1c74f Ideas for keyboard selection of widgets.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 115
diff changeset
50 -> limit to popup menus?
149
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
51 -> these keyboard events only passed if activated by code outside the WidgetManager and no text input callback is active
151
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
52 > Drawing windows/popups (to draw a back):
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
53 -> Use the same renderer & manager:
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
54 -> Make all widgets draw a back?
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
55 -> bad for transparancy and performance
166
55667d048c31 Made content displayable while being dragged.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 159
diff changeset
56 -> Make only first widget draw a back
151
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
57 -> extra parameter to pass in special cases
166
55667d048c31 Made content displayable while being dragged.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 159
diff changeset
58 ?> Transparency?
55667d048c31 Made content displayable while being dragged.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 159
diff changeset
59 +> Simple to implement
151
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
60 > Use a sub-renderer
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
61 -> extra parameter to pass
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
62 -> or some kind of lookup by mgr
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
63 +> enables nice transparancy
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
64 +> Use a sub-manager
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
65 +> holds a sub-renderer or something
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
66 +> enables nice transparancy
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
67 ?> integrates with popup support? will this work?
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
68 > each floating/popup widget has its own renderer (last two above)
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
69 +> combined rendering (to texture?) of each "layer" to enable nice transparancy
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
70 > lower performance?
e785e98d3b78 Updated for compatibility with tango 0.99.8.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 149
diff changeset
71
123
d3b2cefd46c9 minSizeChange() allows run-time changes to widgets' minimal size (except for shrinking in a GridLayoutWidget).
Diggory Hardy <diggory.hardy@gmail.com>
parents: 120
diff changeset
72
d3b2cefd46c9 minSizeChange() allows run-time changes to widgets' minimal size (except for shrinking in a GridLayoutWidget).
Diggory Hardy <diggory.hardy@gmail.com>
parents: 120
diff changeset
73 Content:
d3b2cefd46c9 minSizeChange() allows run-time changes to widgets' minimal size (except for shrinking in a GridLayoutWidget).
Diggory Hardy <diggory.hardy@gmail.com>
parents: 120
diff changeset
74 -> Per-content undo support?
149
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
75 > Services:
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
76 > All content:
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
77 +> Clipboard
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
78 > Some content:
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
79 +> Spellchecking
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
80 +> Calculator
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
81 -2> Fixed list of services working on IContent/Content:
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
82 > Clipboard - can't store Content (callbacks)
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
83 -> needs to check content type
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
84 > unless stored as char[] which all content can take
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
85 -> extra conversions (minor)
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
86 -> Need to check type of content for specific services
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
87 +1> List for each type of content:
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
88 +> can use a static list widget for each type
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
89 -> clipboard is type specific; need to decide when to convert, etc.
167
620d4ea30228 Context menus: added a clipboard (functions accessible from main menu rather than context menu).
Diggory Hardy <diggory.hardy@gmail.com>
parents: 166
diff changeset
90 ?> enables better copying; e.g. from double 3.5e9 to int 4×10⁹
620d4ea30228 Context menus: added a clipboard (functions accessible from main menu rather than context menu).
Diggory Hardy <diggory.hardy@gmail.com>
parents: 166
diff changeset
91 > Use a list of content as the service menu
620d4ea30228 Context menus: added a clipboard (functions accessible from main menu rather than context menu).
Diggory Hardy <diggory.hardy@gmail.com>
parents: 166
diff changeset
92 > each item is a BoolContent and has value true if it can interact with the current content type
620d4ea30228 Context menus: added a clipboard (functions accessible from main menu rather than context menu).
Diggory Hardy <diggory.hardy@gmail.com>
parents: 166
diff changeset
93 > wrapped in a CollapsibleWidget, displaying based on own value
159
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
94 > Context menus:
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
95 > Context menu serves (editable?) content most directly under mouse cursor
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
96 > plus content higher up widget tree?
168
da8d3091fdaf More work on the context menu: now roughly usable like an ordinary context menu.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 167
diff changeset
97 > "Drag" option to drag from, instead of widget itself?
149
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
98 > Non-static content manager
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
99 > Separate managers for options, GUI symbols, data fields, passwords(?)
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
100 > Optional saving/loading
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
101 > Possibly different translation sources
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
102 > manager can take an optional Translator interface/super class, using it to translate strings if provided
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
103 > Lists
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
104 > filtering uses
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
105 > filter context menu services to those relevant
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
106 > user-filters on, e.g., options
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
107 > filtering implementations (list widget)
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
108 > keep all sub-widgets, but hide some cells
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
109 > takes advantage of fact that actual elts don't change
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
110 > rebuild list
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
111 -> more work, recreating sub-widgets
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
112 > dynamic lists (add/remove elts)
1125ba603af6 Some ideas for content service menus.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 137
diff changeset
113 > have to rebuild lists
159
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
114 > Widget content?
137
9f035cd139c6 BIG commit. Major change: old Options class is gone, all content values are loaded and saved automatically. All options updated to reflect this, some changed.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 123
diff changeset
115
9f035cd139c6 BIG commit. Major change: old Options class is gone, all content values are loaded and saved automatically. All options updated to reflect this, some changed.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 123
diff changeset
116 Extend content with a validator function/delegate, specific to each class, which takes the new value and returns it or a corrected version of it. Not so good to do it generally from Content, since setting a new value via usual method will re-trigger validator and callbacks (e.g. bad validator could cause infinite loop).
159
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
117
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
118
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
119
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
120 From paper:
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
121 Text styles:
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
122 > use a few styles
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
123 > number and purpose of each hard-coded?
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
124 > titlebar, label, button, field, etc.
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
125 > renderer or something maps a font (font file, size, style) to each style
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
126
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
127 GUI editor:
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
128 > Widgets are wrapped with/replaced by drag & drop widgets:
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
129 > widgets can be dragged to another drop-zone widget
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
130 > widgets can be dragged to a bin or scrap area
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
131 > new widgets can be dragged from templates
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
132 > widgets can be copied by holding Ctrl
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
133 > widgets displaced by another are moved to the scrap area
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
134 > side bar/editor controls:
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
135 > tree showing current widget structure
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
136 > widgets can be moved (by dragging), restructured, etc. from here the same as from the WYSISYG view
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
137 > new widget panel
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
138 > for creating new single widgets
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
139 > for creating new mini-trees from templates
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
140 > scrap panel
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
141 > widgets can be dragged here from WYSIWYG or tree views
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
142 > widgets can even be edited here
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
143 > widgets remaining on program/editor exit are lost?
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
144 > properties panel
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
145 > for setting widget options (initialisation data)
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
146 > profile selection (section of config file to save to)
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
147 > for easy access to editor (power GUI dev mode)
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
148 > include a theme selection box on the GUI
b06b04c75e86 Finished last commit, rearranged code for the WidgetManager class.
Diggory Hardy <diggory.hardy@gmail.com>
parents: 151
diff changeset
149 > include a button to turn the editor on/off
172
0dd49f333189 Implemented "void setContent (IContent)".
Diggory Hardy <diggory.hardy@gmail.com>
parents: 171
diff changeset
150
0dd49f333189 Implemented "void setContent (IContent)".
Diggory Hardy <diggory.hardy@gmail.com>
parents: 171
diff changeset
151
0dd49f333189 Implemented "void setContent (IContent)".
Diggory Hardy <diggory.hardy@gmail.com>
parents: 171
diff changeset
152 Uses:
0dd49f333189 Implemented "void setContent (IContent)".
Diggory Hardy <diggory.hardy@gmail.com>
parents: 171
diff changeset
153 > A universal XML generator/editor from XSD files?