X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=TODO;h=adfc2c6b58139c65853db716506707ea00168949;hb=7cc3040412061f147c21c3c701bd211458029f9d;hp=f1b0f971ed56144a0447f3336c217a84dc4a6fae;hpb=740b70ea0c1bcdb5943b85ed0bba434f73f9a292;p=~andy%2Fgtk diff --git a/TODO b/TODO index f1b0f971e..adfc2c6b5 100644 --- a/TODO +++ b/TODO @@ -1,77 +1,34 @@ -TODO BEFORE GTK 1.0 -------------------- - +For 1.2.0 release: +- remove deprecated functions from *.[hc] files. +- finish composite child stuff. +- implement constructor functionality for all widgets. + Bugs: - * Scrolled windows (GtkList?) get cought in an endless reallocation loop - under certain (rare) circumstances. + * Change bitfields to guints from enums, or vice versa? + + * MappingNotify events produce warnings. - * Widget redrawing when the window resizes sometimes messes up. - GtkLabels sometimes redraw without clearing up the underlying background on - window resizes. + * the type system (gtktypeutils.c) has to handle creations of fundamental + types seperatedly from derived types, so we don't screw foreign + fundamental types with an already extensively increased seqno. - * 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++ ? - - * Expose events aren't being generated correctly for DND demo + * A filter function which destroys the GDK window it is filtering + events on is bad news. Additions: - * 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 + * focus handling for GtkOptionMenu (needs the previous) + + * implement gtk_default_draw_oval and other missing things in gtkstyle.c. * 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. - * 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). - - * Change gtk_widget_propagate_default_style() mechanism to - void gtk_rc_string_export (const gchar *rc_additions, - gboolean override_rc_styles); - - * Should release grab before activating menu item (and remove - menu from screen?) - -TODO AFTER GTK 1.0 ------------------- - * Make all widget attributes configurable after the widget is created (timj). * Widgets dervied from GtkButton need to be able to override @@ -81,34 +38,21 @@ TODO AFTER GTK 1.0 * Radio buttons need to display CAN/HAS_DEFAULT correctly. - * GtkCList improvements. (Jay Painter) - - * Seperate GtkObject and signaling system from Gdk dependancies? - + * Seperate GtkObject, type and signaling system from Gdk dependancies, + by moving them into a seperate libgtkobj. * 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... + * Entry should allow set_usize to work better, and should compute + a different width when a maximum length is used. - * Multiple document interface (MDI)? + * More dialogs: Print, GtkFontSelector, 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 @@ -119,7 +63,7 @@ TODO AFTER GTK 1.0 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) @@ -141,11 +85,63 @@ 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. + + ? Mark public use of gtk_tree_remove_item as deprecated - it should be used + as: + gtk_container_remove (GTK_CONTAINER(tree), widget); + + * 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... + + * Check into XAddConnectionWatch - is this needed for XIM? + + * Places where a _full variant is needed: + + 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...) + + * 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. + + * If a window spontaneously resizes itself N times before any + ConfigureNotify events are received, then due to the interaction + of the ConfigureNotify compression code in GDK and the resize + count used for the window, the window will be size_allocated + the next N-1 times it is moved. + + Fix: Only send GDK_EVENT_CONFIGURE when the window is resized, + create a new event type for toplevel motion. (GDK_EVENT_REPOSITION?) + and eliminate the resize count in GtkWindow. + + * Generic ScrolledWindow interface, which provide automatic scrollbar + capability to Viewport, Text, and CList widgets. + + * GTK_POLICY_NEVER for scrolled windows. + + * Consider caching more state in GdkWindowPrivate. Currently, + every widget realization involves a XGetGeometry and a + XGetWindowAttributes. And every GdkWindow destruction + involves a XQueryTree. + + * 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. + +Text/Edit widget: Bugs: - - Who knows? + - Really big font (150 pt), plus lots of editing caused segfault Improvements: @@ -191,13 +187,13 @@ TODO AFTER GTK 1.0 aaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb as: - | Maximum column + | Maximum column aaaaaaaaaaa bbbbbbbbbbb| bbbbbbbbbbbbbbbbbbbbbbb| bbbbbbbbb | Instead of: - | + | aaaaaaaaaaa | bbbbbbbbbbbbbbbbbbbbbbb| bbbbbbbbbbbbbbbbbbbb | @@ -210,50 +206,65 @@ TODO AFTER GTK 1.0 mouse click, some function to get the word/line under the mouse pointer [ From: Stefan Jeske ] - - Really big font (150 pt), plus lots of editing caused segfault + - "changed" emitted when doing deletes on empty Text widget. - ? Allow moving the separator for paned widgets by dragging - it directly instead of using the handle. + - Delete IC in editable->unrealize, not editable->finalize? - ? Mark public use of gtk_tree_remove_item as deprecated - it should be used - as: - gtk_container_remove (GTK_CONTAINER(tree), widget); +Themes +====== - * 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... + - When a scale gets shown/hidden only queue a redraw on the + non-window portion, not the whole area. - * Check into XAddConnectionWatch - is this needed for XIM? + - 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. - * Places where a _full variant is needed: + Such calls exist in: GtkButton, GtkHandeBox, GtkItem, + GtkListItem, GtkMenu, GtkMenuItem, GtkMisc, + GtkNoteBook, GtkOptionMenu, GtkPaned, GtkPreview, + GtkSpinButton and GtkTreeItem. - 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 - - * gtk_rc_add_[name/class]_style are broken for bg pixmaps, because - styles are broken for bg pixmaps, and RC styles only hack around - that. + - 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. - * 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. +======= - * --g-fatal-warnings flag that does - g_set_warning_handler ((GWarningHandler)g_error); +Calendar Widget: - * If a window spontaneously resizes itself N times before any - ConfigureNotify events are received, then due to the interaction - of the ConfigureNotify compression code in GDK and the resize - count used for the window, the window will be size_allocated - the next N-1 times it is moved. + - 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) - Fix: Only send GDK_EVENT_CONFIGURE when the window is resized, - create a new event type for toplevel motion. (GDK_EVENT_REPOSITION?) - and eliminate the resize count in GtkWindow.