-TODO BEFORE GTK 1.0
--------------------
-Bugs:
- * Scrolled windows (GtkList?) get cought in an endless reallocation loop
- under certain (rare) circumstances.
+Outstanding items:
- * Widget redrawing when the window resizes sometimes messes up.
- GtkLabels sometimes redraw without clearing up the underlying background on
- window resizes.
-
- * 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
-
-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
-
- * Lists should scroll to center the recently selected item if it isn't
- visible.
+ * focus handling for GtkOptionMenu (needs the previous)
+ * implement gtk_default_draw_oval and other missing things in gtkstyle.c.
+
* 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
+ * GtkToolTips: allocate GtkTooltipsData from memchunks
- * 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);
-
- * Configure events for windows that no longer exist fail in
- XTranslateCoordinates
-
-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
- GtkButtonClass.paint. e.g. redrawing of GtkToggleButton with CAN_DEFAULT
- is messed up otheriwse. This does in fact not only apply to (toggle)buttons,
- we should introduce a common paint member for the GtkWidgetClass.
-
- * Radio buttons need to display CAN/HAS_DEFAULT correctly.
-
- * GtkCList improvements. (Jay Painter)
-
- * 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.
+ * Radio buttons need to display CAN/HAS_DEFAULT correctly, if draw_inidicator
+ is TRUE. (Radio buttons do not need to CAN_DEFAULT! OWT)
- * gdk_expose_compress: ala-Xt, this would really help for opaque moves and
- such
+ * More dialogs: Print, maybe others...
- * Entry should have a password mode (and it should show stars
- for user feedback).
-
- * More dialogs: Print, GtkFontSelector, maybe others...
-
- * Multiple document interface (MDI)?
-
- * 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)
( 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.
+
+ * Check into XAddConnectionWatch - is this needed for XIM?
+
+ * Places where a _full variant is needed:
+
+ 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.
+
+ * 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.
+
+ * The menu code should skip separators during keyboard navigation,
+ whether they are sensitive or insensitive.
+
+ * OwnerButtonPressGrab needs to go!
+
+Text/Edit widget:
Bugs:
- - Who knows?
+ - Really big font (150 pt), plus lots of editing caused segfault
Improvements:
- Unify the key binding support in some fashion between the
- Entry and Text widget widgets (???)
+ Entry and Text widget widgets, use GtkBindings for this.
- Figure out a way not to recompute the geometry on insertions/deletions
which are large, but not a significant fraction of the
aaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
as:
- | Maximum column
+ | Maximum column
aaaaaaaaaaa bbbbbbbbbbb|
bbbbbbbbbbbbbbbbbbbbbbb|
bbbbbbbbb |
Instead of:
- |
+ |
aaaaaaaaaaa |
bbbbbbbbbbbbbbbbbbbbbbb|
bbbbbbbbbbbbbbbbbbbb |
mouse click, some function to get the word/line under the mouse pointer
[ From: Stefan Jeske <jeske@braunschweig.netsurf.de> ]
- ? Allow moving the separator for paned widgets by dragging
- it directly instead of using the handle.
+ - "changed" emitted when doing deletes on empty Text widget.
- ? Mark public use of gtk_tree_remove_item as deprecated - it should be used
- as:
- gtk_container_remove (GTK_CONTAINER(tree), widget);
+ - Delete IC in editable->unrealize, not editable->finalize?
- * 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...
+Themes
+======
- * Check into XAddConnectionWatch - is this needed for XIM?
+ - When a scale gets shown/hidden only queue a redraw on the
+ non-window portion, not the whole area.
- * Places where a _full variant is needed:
+ - 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.
- 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.
+ Such calls exist in: GtkButton, GtkHandeBox, GtkItem,
+ GtkListItem, GtkMenu, GtkMenuItem, GtkMisc,
+ GtkNoteBook, GtkOptionMenu, GtkPaned, GtkPreview,
+ GtkSpinButton and GtkTreeItem.
- * 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.
+ - 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 its 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)