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