X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=TODO;h=e60c057026a4196ee71b4e6314b8612259ca92d0;hb=7ca8753ac5c07891741fcb8d79bb0828c72eea52;hp=d8a0649dba94d9218d3b78cb8afd326932fcb24d;hpb=5fa1bfcf45f3789b3023d610765f8b18db022da3;p=~andy%2Fgtk diff --git a/TODO b/TODO index d8a0649db..e60c05702 100644 --- a/TODO +++ b/TODO @@ -1,136 +1,26 @@ -TODO BEFORE GTK 1.0 -------------------- -Bugs: - * pasting into a GtkEntry that already has a very long string, - causes the app to hang. - - * Vertical scrollbar: the expose event looks hosed and is causing - quite a bit of flickering - Actually this affects both scrollbar implementation, you can best - tell if you run the application with --sync (timj) - - * signal parameters don't seem to get refreshed on recursive invokations - of GTK_NO_RECURSE signals, which causes the restarted emissions to loose - their actual point, i.e. parameter changes on the restarted emission, - needs further investigation. - - * Widget redrawing when the window resizes sometimes messes up. - GtkLabels sometimes redraw without clearing up the underlying background on - window resizes. - - * Are there still some GtkCList changes outstanding? (Jay Painter) - GtkCList is derived from GtkContainer but doesn't implement the - need_resize, focus, add and remove methods from containers. - it should at least issue a warning upon invokation of not supported - member functions. - - * GtkTree and GtkList should express in their *_add implementations, - that they expect GtkListItems/GtkTreeItems as children. Similar - things might apply to other containers. - - * delay dnd settings to take effect once a widget is realized, this is - to avoid force realizations. i think this goes along with owens dnd - changes? - -timj - The way DND data types are set in GtkWidget really needs to be fixed. - This is pretty high on my priority list, and I'll get to it as soon as - the column list widget is done. The correct way dnd data needs to be set - is to have a additional keyed data type with GtkWidget, which is applied to - the widget's window upon realize. - There also needs to be a way to set dnd-data on widget windows which are - not the main window (for widgets that create more than one window). - -Jay Painter - DnD seems to work for me, but yes, there needs to be some sort of - gtk_widget layer that makes it easier... Also, adding support for drop - zones might be nice. - -Elliot - This one is reproducabel for me: - testgtk --sync - popup colorselection - drag/drop works - start up preview color - drag works but not dropping - end preview color - drag/drop works - start up prewiev color - segfault in malloc - -timj - - * Change bitfields to guints from enums for C++ ? - - * Force paned window handle to be kept on screen - -Additions: - * widgets which are redrawn because of a gtk_widget_draw(,NULL) should - be removed from the redraw queue. - - * GScanner: it might be good to ues stdio and getch() instead of 1-character - reads. so one can take advantage of buffering. Currently each read() takes - a separate syscall. - - * implement gtk_default_draw_oval - - * Lists should scroll to center the recently selected item if it isn't - visible. - - * enforce invariants on *_RESIZE* and *_REDRAW* flags. - - * asure that child widgets are really get gtk_widget_destroy()ed in their - parents destroy handler, and not just unparented or somesuch. +Outstanding items: - * GtkToolTips: - allocate GtkTooltipsData from memchunks - look into incorporation of outdated/gtk-dairiki-971208-[01].patch.gz - - * Make widget attributes configurable after the widget is created (timj). + * focus handling for GtkOptionMenu (needs the previous) - * Change gtk_widget_propagate_default_style() mechanism to - void gtk_rc_string_export (const gchar *rc_additions, - gboolean override_rc_styles); + * implement gtk_default_draw_oval and other missing things in gtkstyle.c. -TODO AFTER GTK 1.0 ------------------- + * enforce invariants on *_RESIZE* and *_REDRAW* flags. + * GtkToolTips: allocate GtkTooltipsData from memchunks + * Make all widget attributes configurable after the widget is created (timj). + + * Radio buttons need to display CAN/HAS_DEFAULT correctly, if draw_inidicator + is TRUE. (Radio buttons do not need to CAN_DEFAULT! OWT) - * Seperate GtkObject and signaling system from Gdk dependancies? - - * move *_input_add (wrappers for select(2)) mechanism into glib. - - * Make sure a widget added to a list is a list item and a widget added - to a menu is a menu item, etc. GTK_BASIC was a first attempt at this, - but it fails with subsequent container_add()s. maybe have another - GTK_PARENT_BASIC (similar to GTK_PARENT_SENSITIVE) flag, to prevent - tree iterations upon every container addition. - - * gdk_expose_compress: ala-Xt, this would really help for opaque moves and - such - - * Entry should have a password mode (and it should show stars - for user feedback). - - * More dialogs: Print, GtkFontSelector, maybe others... - - * Multiple document interface (MDI)? + * More dialogs: Print, maybe others... - * Support another widget style? Should be possible using GtkStyle's, but - there may be some work needed to remove any style dependencies in widget - code. Maybe GtkStyle's should have 'draw_push_button', 'draw_check_button', - etc, functions to draw the various widgets. - This will be covered by upcoming themability, raster is working on it. - * make the gtk_main callbacks consistent in their add/remove behaviour. - * More work on Documentation - * Check return values on all calls to XIC[Get/Set]Values - * Rewrite the interface to the i18n stuff so GTK widgets don't need to - retrieve X values, and so they don't have to know the value of the - XNxxx character constants. - - * The "-geometry" option should be supported + * The "--geometry" option should be supported - Having gdk_init() parse the geometry option. (putting it into GDK means you can use XParseGeometry() without wrapping it) @@ -152,49 +42,47 @@ TODO AFTER GTK 1.0 ( You'd have to extend gdk_window_set_hints to accept the window gravity option to get it right. ) - * Text/Edit widget: (some of these might be bugs that should be fixed now) + * Allow moving the separator for paned widgets by dragging + it directly instead of using the handle. - Bugs: + * Check into XAddConnectionWatch - is this needed for XIM? - - In Entry and Text widget, you can ungrab while still - dragging by pressing button-1, pressing button 3, releaseing 3, - then releasing 1. + * Places where a _full variant is needed: - - When selecting on a Text or Entry widget, the selection isn't - claimed until you release the button, and that shows by the - color of the selection. (Which is the real problem - it probably - is OK/better to delay claiming the selection) [fixed] + gtk_init_add + gtk_menu_popup + gtk_toolbar_prepend_element + gtk_toolbar_insert_element + + * Try to rationally deal with someone else deleting one of our + windows??? This would mean keeping track of our window heirarchy + ourselves, for one thing, and will never be safe, because of + race conditions. - - Related to the above, when you Shift/arrow to select text, the - selected text doesn't show that you have the selection immediately. + * Should all the default handlers really return FALSE? This can + cause confusing presses to be sent to containers that actually + want to get events on themselves. - - Selecting an entire line with triple-click doesn't work right - - it should select the wrapped portion too. + * The menu code should skip separators during keyboard navigation, + whether they are sensitive or insensitive. - - Selecting an entire line should probably select the newline as - well, so when the selection is cut/deleted, the newline goes - along. + * OwnerButtonPressGrab needs to go! - - Inserting text in a different property - problems? Shouldn't - split the last position off in any case. +Text/Edit widget: - - Do something about the bg pixmap situation. (It will produce - garbage when editing is enabled) + Bugs: - - "Copy" removes selection - - Improvements: + - Really big font (150 pt), plus lots of editing caused segfault - - Finish making the key bindings consistent between the Entry - and Text widgets + Improvements: - Unify the key binding support in some fashion between the - two widgets (???) - - - When inserting or deleting large chunks of text, do a freeze/thaw - automatically, to avoid scrolling around for ever on screen. + Entry and Text widget widgets, use GtkBindings for this. - - Jump scroll on large insertions/deletions + - Figure out a way not to recompute the geometry on insertions/deletions + which are large, but not a significant fraction of the + entire text. (e.g., compute the changes as when the widget + is not frozen, but without the actual scrolling) - Prune the line start cache. But since it is only 68 bytes per line, and it is a lot faster when lines are in the cache, @@ -220,26 +108,93 @@ TODO AFTER GTK 1.0 - Disable pasting compound text - ? Allow moving the separator for paned widgets by dragging - it directly instead of using the handle. + - When showing background pixmap (not editable) actually set + the background pixmap as the windows bg pixmap, to improve + appearance on exposes. But this would require using another + window to get the origins. - ? Mark public use of gtk_tree_remove_item as deprecated - it should be used - as: - gtk_container_remove (GTK_CONTAINER(tree), widget); + - In word wrap mode, break: - * Standardize that all strings should be passed as gchar *, not - guchar *. But what about non-string data? (gdk_property_change, - gtk_selection_data_set) X makes these sort of things guchar... + aaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb - * Check into XAddConnectionWatch - is this needed for XIM? + as: + | Maximum column + aaaaaaaaaaa bbbbbbbbbbb| + bbbbbbbbbbbbbbbbbbbbbbb| + bbbbbbbbb | - * Places where a _full variant is needed: + Instead of: + | + aaaaaaaaaaa | + bbbbbbbbbbbbbbbbbbbbbbb| + bbbbbbbbbbbbbbbbbbbb | - gtk_clist_set_row_data - gtk_init_add - gtk_menu_popup - gtk_toolbar_prepend_element - gtk_toolbar_insert_element - gtk_widget_dnd_data_set (should be guchar * with a copy? - shouldn't be there at all...) - ??? GtkDrawingarea.draw_data + - Blinking cursor + + - API's : gtk_text_clear, gtk_text_delete_lines (gint start, gint end), + gtk_text_append/prepend, gtk_text_insert_at (gint row, gint column), + some function to get the row/column from the x/y-coordinates of a + mouse click, some function to get the word/line under the mouse pointer + [ From: Stefan Jeske ] + + - "changed" emitted when doing deletes on empty Text widget. + + - Delete IC in editable->unrealize, not editable->finalize? + +Themes +====== + + - When a scale gets shown/hidden only queue a redraw on the + non-window portion, not the whole area. + + - In various places, to avoid shaping windows excessively, + we set parent relative backgrounds. This is an ugly + hack and needs a better solution. Plus, I don't think + these parent-relative backgrounds always persist to + when they are actually needed. + + Such calls exist in: GtkButton, GtkHandeBox, GtkItem, + GtkListItem, GtkMenu, GtkMenuItem, GtkMisc, + GtkNoteBook, GtkOptionMenu, GtkPaned, GtkPreview, + GtkSpinButton and GtkTreeItem. + + - For menus and for GtkWindow's, the realize() function + calls paint(), so that background pixmaps can be set + ahead of time, and prevent flashing when the window is + shown. This is an ugly hack and needs a better solution. + +======= + +Calendar Widget: + + - The widget should be nicely resizeable vertical too. + + - CALENDAR_MARGIN should be removed, uses INNER_BORDER and + style->class->[xy]thickness insted. + + - Flag to choose between using standard three letter abbreviated + weekday name or just the first character from it. It looks like + that is what most other calendar-widgets do. + + - Arrows should resize with the header-font. + + - The keyboard support has to be finished. + +DND +=== + + - Use a cursor instead of an ICON when over Motif windows, + to get rid of the current junk that Motif leaves because + of it's XCopyArea stupidity for doing highlighting. + + - Add a GTK_DRAG_VERIFY target flag and a "drag_data_verify" + signal so that apps can easily check if a, say, + text/uri-list URL looks OK during the drop. + + - Check more for memory leaks. + + - Drag and drop for Entry and Text widgets. + + - Send synthetic motion events on structure changes so + drag_enter/leave get sent properly. (See the popup + in testdnd)