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