X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=TODO;h=e60c057026a4196ee71b4e6314b8612259ca92d0;hb=95b3f3e46016e4993e60e8c139bfd03a106201ba;hp=f834e56108c9d363c884dfa6eee7462a0561aca7;hpb=c4c1c1ea5563a4158308a41174aee07d3c8efcc8;p=~andy%2Fgtk diff --git a/TODO b/TODO index f834e5610..e60c05702 100644 --- a/TODO +++ b/TODO @@ -1,113 +1,200 @@ -TODO BEFORE GTK 1.0 -------------------- - -Bugs: - * 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. - - * the GtkText widget needs to be fixed, that means no segfaults, full editing - facilities, omit the background pixmap for now. - - * 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 - -Additions: - * 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. +Outstanding items: - * asure that child widgets are really get gtk_widget_destroy()ed in their - parents destroy handler, and not just unparented or somesuch. + * focus handling for GtkOptionMenu (needs the previous) - * GtkToolTips: - allocate GtkTooltipsData from memchunks - look into incorporation of old/gtk-dairiki-971208-[01].patch.gz - - * Make widget attributes configurable after the widget is created (timj). + * implement gtk_default_draw_oval and other missing things in gtkstyle.c. + + * enforce invariants on *_RESIZE* and *_REDRAW* flags. - * Change gtk_widget_propagate_default_style() mechanism to - void gtk_rc_string_export (const gchar *rc_additions, - gboolean override_rc_styles); + * 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) -TODO AFTER GTK 1.0 ------------------- + * More dialogs: Print, maybe others... - * Make all widget attributes configurable after the widget is created (timj). + * make the gtk_main callbacks consistent in their add/remove behaviour. - * 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. + * 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 - * gdk_expose_compress: ala-Xt, this would really help for opaque moves and - such + ( You'd have to extend gdk_window_set_hints to accept the + window gravity option to get it right. ) - * Entry should have a password mode (and it should show stars - for user feedback). + * Allow moving the separator for paned widgets by dragging + it directly instead of using the handle. - * More dialogs? Print, GtkFontSelector, maybe others... + * Check into XAddConnectionWatch - is this needed for XIM? - * Multiple document interface (MDI)? + * Places where a _full variant is needed: - * 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. + gtk_init_add + gtk_menu_popup + gtk_toolbar_prepend_element + gtk_toolbar_insert_element - * More work on Documentation + * 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: + + - 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?) + + - Multibyte support for the Text widget. + + - Unicode support to do the multi-byte right. + + - 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) + + - 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 ] + + - "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)