]> Pileus Git - ~andy/gtk/blob - TODO
Make gcc give printf format warnings for g_string_sprintf() and other
[~andy/gtk] / TODO
1 TODO BEFORE GTK 1.0
2 -------------------
3
4 Bugs:
5  * pasting into a GtkEntry that already has a very long string,
6    causes the app to hang.
7  
8  * signal parameters don't seem to get refreshed on recursive invokations
9    of GTK_NO_RECURSE signals, which causes the restarted emissions to loose
10    their actual point, i.e. parameter changes on the restarted emission,
11    needs further investigation.
12
13  * Widget redrawing when the window resizes sometimes messes up.
14    GtkLabels sometimes redraw without clearing up the underlying background on
15    window resizes.
16  
17  * Are there still some GtkCList changes outstanding? (Jay Painter)
18    GtkCList is derived from GtkContainer but doesn't implement the
19    need_resize, focus, add and remove methods from containers.
20    it should at least issue a warning upon invokation of not supported
21    member functions.
22
23  * GtkTree and GtkList should express in their *_add implementations,
24    that they expect GtkListItems/GtkTreeItems as children. Similar
25    things might apply to other containers.
26
27  * delay dnd settings to take effect once a widget is realized, this is
28    to avoid force realizations. i think this goes along with owens dnd
29    changes?
30     -timj
31    The way DND data types are set in GtkWidget really needs to be fixed.
32    This is pretty high on my priority list, and I'll get to it as soon as
33    the column list widget is done.  The correct way dnd data needs to be set
34    is to have a additional keyed data type with GtkWidget, which is applied to
35    the widget's window upon realize.
36    There also needs to be a way to set dnd-data on widget windows which are
37    not the main window (for widgets that create more than one window).
38     -Jay Painter
39    DnD seems to work for me, but yes, there needs to be some sort of
40    gtk_widget layer that makes it easier... Also, adding support for drop
41    zones might be nice.
42     -Elliot
43    This one is reproducabel for me:
44    testgtk --sync
45    popup colorselection
46    drag/drop works
47    start up preview color
48    drag works but not dropping
49    end preview color
50    drag/drop works
51    start up prewiev color
52    segfault in malloc
53     -timj
54
55  * Change bitfields to guints from enums for C++ ?
56
57  * Force paned window handle to be kept on screen
58
59 Additions:
60  * GScanner: it might be good to ues stdio and getch() instead of 1-character
61    reads. so one can take advantage of buffering. Currently each read() takes
62    a separate syscall.
63    
64  * implement gtk_default_draw_oval
65  
66  * Lists should scroll to center the recently selected item if it isn't
67    visible.
68
69  * enforce invariants on *_RESIZE* and *_REDRAW* flags.
70
71  * asure that child widgets are really get gtk_widget_destroy()ed in their
72    parents destroy handler, and not just unparented or somesuch.
73
74  * GtkToolTips:
75    allocate GtkTooltipsData from memchunks
76    look into incorporation of outdated/gtk-dairiki-971208-[01].patch.gz
77                           
78  * Make widget attributes configurable after the widget is created (timj).
79
80  * Change gtk_widget_propagate_default_style() mechanism to
81    void gtk_rc_string_export (const gchar *rc_additions,
82                               gboolean     override_rc_styles);
83
84  * Configure events for windows that no longer exist fail in
85    XTranslateCoordinates
86  
87 TODO AFTER GTK 1.0
88 ------------------
89
90  * Make all widget attributes configurable after the widget is created (timj).
91
92  * Seperate GtkObject and signaling system from Gdk dependancies?
93   
94  * move *_input_add (wrappers for select(2)) mechanism into glib.
95
96  * Make sure a widget added to a list is a list item and a widget added
97    to a menu is a menu item, etc. GTK_BASIC was a first attempt at this,
98    but it fails with subsequent container_add()s. maybe have another
99    GTK_PARENT_BASIC (similar to GTK_PARENT_SENSITIVE) flag, to prevent
100    tree iterations upon every container addition.
101
102  * gdk_expose_compress: ala-Xt, this would really help for opaque moves and
103    such
104
105  * Entry should have a password mode (and it should show stars
106    for user feedback).
107
108  * More dialogs: Print, GtkFontSelector, maybe others...
109
110  * Multiple document interface (MDI)?
111
112  * Support another widget style? Should be possible using GtkStyle's, but
113    there may be some work needed to remove any style dependencies in widget
114    code. Maybe GtkStyle's should have 'draw_push_button', 'draw_check_button',
115    etc, functions to draw the various widgets.
116    This will be covered by upcoming themability, raster is working on it.
117  
118  * make the gtk_main callbacks consistent in their add/remove behaviour.
119  
120  * More work on Documentation
121
122  * Check return values on all calls to XIC[Get/Set]Values
123
124  * Rewrite the interface to the i18n stuff so GTK widgets don't need to
125    retrieve X values, and so they don't have to know the value of the
126    XNxxx character constants.
127
128  * The "-geometry" option should be supported
129
130   - Having gdk_init() parse the geometry option. (putting it into
131     GDK means you can use XParseGeometry() without wrapping it)
132
133   - Add a call gdk_get_geometry() that retrieves the results 
134     in a form like that returned by XParseGeometry()
135
136   - The application then can modify the results (as would gemvt)
137     then call a routine gtk_window_set_geometry() on whatever
138     it considers to be its main window.
139
140   - Then in some manner GtkWindow takes that into account when
141     setting its hints. (Probably it uses the size and position
142     as the current uposition and usize, and modulates that
143     be the equivalents of the X flags
144
145      XValue, YValue, WidthValue, HeightValue, XNegative, or YNegative
146
147     ( You'd have to extend gdk_window_set_hints to accept the
148       window gravity option to get it right. )
149
150  * Text/Edit widget: (some of these might be bugs that should be fixed now)
151
152   Bugs:
153
154   - Who knows?
155
156   Improvements:
157
158   - Unify the key binding support in some fashion between the
159     Entry and Text widget widgets (???)
160
161   - Figure out a way not to recompute the geometry on insertions/deletions
162     which are large, but not a significant fraction of the
163     entire text. (e.g., compute the changes as when the widget
164     is not frozen, but without the actual scrolling)
165
166   - Prune the line start cache. But since it is only 68 bytes
167     per line, and it is a lot faster when lines are in the cache,
168     it may be better not to, at least for now.
169
170   - Show the non-editable state by changing colors. (Use the
171     style entries for insensitive?)
172
173   - Multibyte support for the Text widget.
174
175   - Unicode support to do the multi-byte right.
176
177   - Support an .inputrc. (The readline one doesn't really work,
178     unless it is extended because it can't represent X keysyms,
179     just terminal type input)
180
181   - A vi mode
182
183   - Word wrap, instead of line folding. (Should the continuation
184     characters be shown?)
185
186   - Horizontal scrolling
187
188   - Disable pasting compound text
189
190   - When showing background pixmap (not editable) actually set
191     the background pixmap as the windows bg pixmap, to improve
192     appearance on exposes. But this would require using another
193     window to get the origins.
194
195  ? Allow moving the separator for paned widgets by dragging 
196    it directly instead of using the handle. 
197
198  ? Mark public use of gtk_tree_remove_item as deprecated - it should be used
199    as:
200          gtk_container_remove (GTK_CONTAINER(tree), widget);
201
202  * Standardize that all strings should be passed as gchar *, not 
203    guchar *. But what about non-string data? (gdk_property_change,
204    gtk_selection_data_set) X makes these sort of things guchar...
205
206  * Check into XAddConnectionWatch - is this needed for XIM?
207
208  * Places where a _full variant is needed:
209
210     gtk_clist_set_row_data
211     gtk_init_add
212     gtk_menu_popup
213     gtk_toolbar_prepend_element
214     gtk_toolbar_insert_element
215     gtk_widget_dnd_data_set (should be guchar * with a copy?
216                              shouldn't be there at all...)
217     ??? GtkDrawingarea.draw_data
218  
219  * gtk_rc_add_[name/class]_style are broken for bg pixmaps, because
220    styles are broken for bg pixmaps, and RC styles only hack around
221    that.