]> Pileus Git - ~andy/gtk/blobdiff - TODO
Mon Aug 27 2001 Jens Finke <jens@gnome.org> - Renamed package to gtk2. -
[~andy/gtk] / TODO
diff --git a/TODO b/TODO
index 245ca70eaf978aeb04416da0aa620a5089caf94f..dc8c1fe2be2c464faa9a3e377828032876f4fc3b 100644 (file)
--- a/TODO
+++ b/TODO
 
-TODO BEFORE GTK 1.0
--------------------
+Outstanding items:
 
-BUGS
-----
- * Fix focus activation of list items. Does list item activation have to be
-   completely reorganized?
+ * focus handling for GtkOptionMenu (needs the previous)
 
- * Lists should scroll to center the recently selected item if it isn't
-   visible.
+ * implement gtk_default_draw_oval and other missing things in gtkstyle.c.
+ * enforce invariants on *_RESIZE* and *_REDRAW* flags.
 
- * Notebook: there are a few cosmetic problems left
+ * 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)
 
- * Vertical scrollbar: the expose event looks hosed and is causing 
-   quite a bit of flickering
+ * More dialogs: Print, maybe others...
 
- * 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.
- * Make gtk_menu_item_set_submenu() and gtk_option_menu_set_menu() fit into
-   the normal tree manner (e.g. make propagation possible).
- * GtkOptionMenu needs to reference its curent GtkMenuItem.
+ * make the gtk_main callbacks consistent in their add/remove behaviour.
  
- * Right after creation of an option menu, the first selected menu item is
-   placed too low (is this still true?).
-   
- * GtkMenu needs to properly unref() accelerator tables upon destroy.
+ * Check return values on all calls to XIC[Get/Set]Values
+
+ * 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)
+
+  - Add a call gdk_get_geometry() that retrieves the results 
+    in a form like that returned by XParseGeometry()
+
+  - The application then can modify the results (as would gemvt)
+    then call a routine gtk_window_set_geometry() on whatever
+    it considers to be its main window.
+
+  - Then in some manner GtkWindow takes that into account when
+    setting its hints. (Probably it uses the size and position
+    as the current uposition and usize, and modulates that
+    be the equivalents of the X flags
+
+     XValue, YValue, WidthValue, HeightValue, XNegative, or YNegative
+
+    ( You'd have to extend gdk_window_set_hints to accept the
+      window gravity option to get it right. )
+
+ * 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
  
- * Display of GtkToggleButton is messed up if GtkContainer::container_width
-   is greate than 0. GtkCheckButton and GtkRadioButton are only messed up
-   if draw_indicator is FALSE.
-
- * Using gtk_container_add() on an option menu to add a label works, but then
-   gtk_option_menu_button_press() segfaults. This is supposed to fail while
-   adding due to a g_return_if_fail (GTK_IS_MENU_ITEM (child));
-                        
- * Look also at ./BUGS (i added it, because it describes some bugs in
-   a more specific way -timj).
-   
-
-NEW FEATURES
-------------
- * gdk_expose_compress: ala-Xt, this would really help for opaque moves and
-   such
-
-WIDGETS
--------
- * Column-list (Jay Painter)
- * Text widget (needs to be finished)
- * Entry should have a password mode (and it should show stars
-   for user feedback)
+ * 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.
 
-DND
----
-  It seems to be having problems again.  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
+ * 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:
+
+  - 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, 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
+    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,
+    it may be better not to, at least for now.
+
+  - Show the non-editable state by changing colors. (Use the
+    style entries for insensitive?)
 
-OTHER
------
- * Documentation
+  - Multibyte support for the Text widget.
 
+  - Unicode support to do the multi-byte right.
 
-PLANNED FOR GTK AFTER 1.0
--------------------------
-(add your thoughts here)
+  - Support an .inputrc. (The readline one doesn't really work,
+    unless it is extended because it can't represent X keysyms,
+    just terminal type input)
 
-============================================================================
-Other stuff todo, as of yet not categorized into the above:
+  - A vi mode
+
+  - Word wrap, instead of line folding. (Should the continuation
+    characters be shown?)
+
+  - Horizontal scrolling
+
+  - Disable pasting compound text
+
+  - 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.
+
+  - In word wrap mode, break:
+
+     aaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+
+     as:
+                            | Maximum column
+     aaaaaaaaaaa bbbbbbbbbbb|
+     bbbbbbbbbbbbbbbbbbbbbbb|
+     bbbbbbbbb              |
+
+     Instead of:
+                            | 
+     aaaaaaaaaaa            |
+     bbbbbbbbbbbbbbbbbbbbbbb|
+     bbbbbbbbbbbbbbbbbbbb   |
+
+  - 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 <jeske@braunschweig.netsurf.de> ]
+
+  - "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
+===
 
--Widget redrawing when the window resizes sometimes messes up.
+ - 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.
 
--More dialogs? Print, font, etc?
+ - 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.
 
--Multiple document interface (MDI)?
+ - Check more for memory leaks.
 
--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.
+ - Drag and drop for Entry and Text widgets.
 
--Make all widget attributes configurable after the widget is created.
+ - Send synthetic motion events on structure changes so 
+   drag_enter/leave get sent properly. (See the popup
+   in testdnd)