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