source: trunk/third/gtk/TODO @ 14810

Revision 14810, 6.4 KB checked in by ghudson, 25 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r14809, which included commits to RCS files with non-trunk default branches.
Line 
1
2Outstanding items:
3
4 * focus handling for GtkOptionMenu (needs the previous)
5
6 * implement gtk_default_draw_oval and other missing things in gtkstyle.c.
7 
8 * enforce invariants on *_RESIZE* and *_REDRAW* flags.
9
10 * GtkToolTips: allocate GtkTooltipsData from memchunks
11                         
12 * Make all widget attributes configurable after the widget is created (timj).
13 
14 * Radio buttons need to display CAN/HAS_DEFAULT correctly, if draw_inidicator
15   is TRUE. (Radio buttons do not need to CAN_DEFAULT! OWT)
16
17 * More dialogs: Print, maybe others...
18
19 * make the gtk_main callbacks consistent in their add/remove behaviour.
20 
21 * Check return values on all calls to XIC[Get/Set]Values
22
23 * The "--geometry" option should be supported
24
25  - Having gdk_init() parse the geometry option. (putting it into
26    GDK means you can use XParseGeometry() without wrapping it)
27
28  - Add a call gdk_get_geometry() that retrieves the results
29    in a form like that returned by XParseGeometry()
30
31  - The application then can modify the results (as would gemvt)
32    then call a routine gtk_window_set_geometry() on whatever
33    it considers to be its main window.
34
35  - Then in some manner GtkWindow takes that into account when
36    setting its hints. (Probably it uses the size and position
37    as the current uposition and usize, and modulates that
38    be the equivalents of the X flags
39
40     XValue, YValue, WidthValue, HeightValue, XNegative, or YNegative
41
42    ( You'd have to extend gdk_window_set_hints to accept the
43      window gravity option to get it right. )
44
45 * Allow moving the separator for paned widgets by dragging
46   it directly instead of using the handle.
47
48 * Check into XAddConnectionWatch - is this needed for XIM?
49
50 * Places where a _full variant is needed:
51
52    gtk_init_add
53    gtk_menu_popup
54    gtk_toolbar_prepend_element
55    gtk_toolbar_insert_element
56 
57 * Try to rationally deal with someone else deleting one of our
58   windows??? This would mean keeping track of our window heirarchy
59   ourselves, for one thing, and will never be safe, because of
60   race conditions.
61
62 * Should all the default handlers really return FALSE? This can
63   cause confusing presses to be sent to containers that actually
64   want to get events on themselves.
65
66 * The menu code should skip separators during keyboard navigation,
67   whether they are sensitive or insensitive.
68
69 * OwnerButtonPressGrab needs to go!
70
71Text/Edit widget:
72
73  Bugs:
74
75  - Really big font (150 pt), plus lots of editing caused segfault
76
77  Improvements:
78
79  - Unify the key binding support in some fashion between the
80    Entry and Text widget widgets, use GtkBindings for this.
81
82  - Figure out a way not to recompute the geometry on insertions/deletions
83    which are large, but not a significant fraction of the
84    entire text. (e.g., compute the changes as when the widget
85    is not frozen, but without the actual scrolling)
86
87  - Prune the line start cache. But since it is only 68 bytes
88    per line, and it is a lot faster when lines are in the cache,
89    it may be better not to, at least for now.
90
91  - Show the non-editable state by changing colors. (Use the
92    style entries for insensitive?)
93
94  - Multibyte support for the Text widget.
95
96  - Unicode support to do the multi-byte right.
97
98  - Support an .inputrc. (The readline one doesn't really work,
99    unless it is extended because it can't represent X keysyms,
100    just terminal type input)
101
102  - A vi mode
103
104  - Word wrap, instead of line folding. (Should the continuation
105    characters be shown?)
106
107  - Horizontal scrolling
108
109  - Disable pasting compound text
110
111  - When showing background pixmap (not editable) actually set
112    the background pixmap as the windows bg pixmap, to improve
113    appearance on exposes. But this would require using another
114    window to get the origins.
115
116  - In word wrap mode, break:
117
118     aaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
119
120     as:
121                            | Maximum column
122     aaaaaaaaaaa bbbbbbbbbbb|
123     bbbbbbbbbbbbbbbbbbbbbbb|
124     bbbbbbbbb              |
125
126     Instead of:
127                            |
128     aaaaaaaaaaa            |
129     bbbbbbbbbbbbbbbbbbbbbbb|
130     bbbbbbbbbbbbbbbbbbbb   |
131
132  - Blinking cursor
133
134  - API's : gtk_text_clear, gtk_text_delete_lines (gint start, gint end),
135    gtk_text_append/prepend, gtk_text_insert_at (gint row, gint column),
136    some function to get the row/column from the x/y-coordinates of a
137    mouse click, some function to get the word/line under the mouse pointer
138    [ From: Stefan Jeske <jeske@braunschweig.netsurf.de> ]
139
140  - "changed" emitted when doing deletes on empty Text widget.
141
142  - Delete IC in editable->unrealize, not editable->finalize?
143
144Themes
145======
146
147 - When a scale gets shown/hidden only queue a redraw on the
148   non-window portion, not the whole area.
149
150 - In various places, to avoid shaping windows excessively,
151   we set parent relative backgrounds. This is an ugly
152   hack and needs a better solution. Plus, I don't think
153   these parent-relative backgrounds always persist to
154   when they are actually needed.
155
156   Such calls exist in: GtkButton, GtkHandeBox, GtkItem,
157   GtkListItem, GtkMenu, GtkMenuItem, GtkMisc,
158   GtkNoteBook, GtkOptionMenu, GtkPaned, GtkPreview,
159   GtkSpinButton and GtkTreeItem.
160
161 - For menus and for GtkWindow's, the realize() function
162   calls paint(), so that background pixmaps can be set
163   ahead of time, and prevent flashing when the window is
164   shown. This is an ugly hack and needs a better solution.
165
166=======
167
168Calendar Widget:
169
170 - The widget should be nicely resizeable vertical too.
171
172 - CALENDAR_MARGIN should be removed, uses INNER_BORDER and
173   style->class->[xy]thickness insted.
174
175 - Flag to choose between using standard three letter abbreviated
176   weekday name or just the first character from it. It looks like
177   that is what most other calendar-widgets do.
178
179 - Arrows should resize with the header-font.
180
181 - The keyboard support has to be finished.
182
183DND
184===
185
186 - Use a cursor instead of an ICON when over Motif windows,
187   to get rid of the current junk that Motif leaves because
188   of its XCopyArea stupidity for doing highlighting.
189
190 - Add a GTK_DRAG_VERIFY target flag and a "drag_data_verify"   
191   signal so that apps can easily check if a, say,
192   text/uri-list URL looks OK during the drop.
193
194 - Check more for memory leaks.
195
196 - Drag and drop for Entry and Text widgets.
197
198 - Send synthetic motion events on structure changes so
199   drag_enter/leave get sent properly. (See the popup
200   in testdnd)
Note: See TracBrowser for help on using the repository browser.