Sat Sep 5 16:01:19 1998 Owen Taylor <otaylor@gtk.org>
* gdk/gdkinputxfree.h gdk/gdk.c gdk/gdkinputgxi.h:
When the pointer is grabbed on an input window,
either explicitely, or through press-grab, and
then grabbed on a non-input window, ungrab the
devices.
Sat Sep 5 07:13:19 1998 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.h: don't include any gdk headers.
added structure definitions for GtkTypeObject and GtkTypeClass,
which cover the very basic fields of GtkObject and GtkObjectClass,
which are actually used by the type system.
* gtk/gtktypeutils.c: don't include gtkobject.h or gtkcontainer.h,
we only refer to our own structures. improved class inheritance
sanity checking a bit.
* gtk/gtkobject.h: placed appropriate comments at the beginnings
of the GtkObject and GtkObjectClass structures, which explain
their relationship to GtkTypeObject and GtkTypeClass.
* gtk/gtktypeutils.h:
* gtk/gtkobject.h:
moved GTK_STRUCT_OFFSET(), GTK_CHECK_CAST(), GTK_CHECK_CLASS_CAST(),
GTK_CHECK_TYPE() and GTK_CHECK_CLASS_TYPE() macro definitions from
gtkobject.h to gtktypeutils.h.
* gtk/gtkobject.h:
* gtk/gtkobject.c:
removed gtk_object_check_cast() and gtk_object_check_class_cast()
functions. to keep source compatibility, we can provide macro aliases
for the corresponding gtk_type_* functions. but then again, people
shouldn't have been using these functions anyways since they were part
of Gtk's internal API.
* gtk/gtktypeutils.h:
* gtk/gtktypeutils.c:
implemented gtk_type_check_object_cast() and gtk_type_check_class_cast()
functions to check GtkTypeObject and GtkTypeClass types.
Thu Sep 3 04:22:20 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmenushell.c (gtk_real_menu_shell_move_current):
GTK_MENU_DIR_CHILD: check for the existance of
menu_shell->active_menu_item before accessing its child.
GTK_MENU_DIR_PREV:
GTK_MENU_DIR_NEXT: if we haven't had an active item and still
don't, make a default selection.
Wed Sep 2 00:28:58 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_propagate_state): iterate
the children with _forall for sensitivity changes and with
_foreach on pure state changes. this fixes a lot of the
old inclusions of internal widgets into _foreach calls.
* gtk/gtktree.c: removed gtk_tree_foreach, let gtk_tree_forall
do the work. don't walk the subtrees of first level children.
* gtk/gtktreeitem.c: provide a _forall implementation,
which walks the subtrees as well for include_internals.
* gtk/gtkmenuitem.c: provide a _forall implementation, which walks
the submenus as well for include_internals.
* gtk/gtkscrolledwindow.c: removed gtk_scrolled_window_foreach and
implemented gtk_scrolled_window_forall, which will iterate over
the viewport and the scrollbars for gtk_container_forall or
iterate over the viewports children for gtk_container_foreach.
* gtk/gtktoolbar.c:
* gtk/gtktable.c:
* gtk/gtkpaned.c:
* gtk/gtkpacker.c:
* gtk/gtkmenushell.c:
* gtk/gtklist.c:
* gtk/gtkfixed.c:
* gtk/gtkclist.c:
* gtk/gtkbox.c:
* gtk/gtkbin.c:
* gtk/gtknotebook.c:
removed the old gtk_*_foreach functions and provided gtk_*_forall.
* gtk/gtknotebook.c:
(gtk_notebook_real_switch_page): expose tabs.
(gtk_notebook_page_num): new function to return the page number
of a distinct child.
(gtk_notebook_focus): minor fixups. foxus handling is still screwed
under some circumstances.
* gtk/gtktreeitem.c:
(gtk_real_tree_item_select):
(gtk_real_tree_item_deselect): major fixes.
some general fixups wrt queue_redraw, and tree items not being
NO_WINDOW widgets.
* gtk/gtklistitem.c:
(gtk_real_list_item_select):
(gtk_real_list_item_deselect):
(gtk_real_list_item_toggle):
removed unneccessary queue_redraw calls.
Wed Aug 30 09:42:07 1998 Tim Janik <timj@gtk.org>
* gtk/gtkoptionmenu.c: allow optionmenus to have the focus and
automatically popup the menu on space bar.
Wed Aug 26 06:40:34 1998 Tim Janik <timj@gtk.org>
* gtk/gtkcontainer.h:
* gtk/gtkcontainer.c: implemented gtk_container_forall() (as a class
method), which acts similar to gtk_container_foreach(), but iterates
over internal children. the GtkContainer::foreach signal vanished in
favour of a new class method ->forall() that optionally includes
internal widgets.
* gtk/gtkclist.c (gtk_clist_init): provide no _foreach implementation
but a _forall implementation, since all child widgets we have are
internal ones.
(column_button_create): set the parent window prior
to gtk_widget_set_parent().
* gtk/gtkwidget.c:
exchanged all calls to gtk_container_foreach() with
gtk_container_forall().
* gtk/gtkwidget.h:
* gtk/gtkwidget.c: added the GTK_COMPOSITE_CHILD, exported through
the GtkWidget::composite_child argument. to have a widget created
with the flag initially, two new functions got added to wrap a widgets
creation:
gtk_widget_push_composite_flag() and gtk_widget_pop_composite_flag().
Wed Aug 25 23:37:39 1998 Tim Janik <timj@gtk.org>
* gtk/gtktooltips.h:
* gtk/gtktooltips.c: exported gtk_tooltips_create_window() as
gtk_tooltips_force_window(), so tooltips->tip_window can be accessed
prior to the first tip being set.
don't put an extra reference on the window, since it is a toplevel,
it wont get destroyed from anywhere else.
* overall macro and GtkType fixups.
1998-09-02 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkcolorsel.c: Replaced "foo == TRUE" and "foo == FALSE"
constructs by more forgiving ones. (Does anyone else feel like
the color selector need rewriting?).
Tue Sep 1 10:53:52 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtkprogress.c (gtk_progress_finalize): Unref
the adjustment.
* gtk/gtkmenu.c: Modified reference counting so
that the reference count from the toplevel that
the menu creates to the menu is invisible to the
application.
Tue Aug 25 16:52:47 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtktext.c (recompute_geometry): Make sure the
mark we pass to line start is the beginning of a
real line, not a wrapped one.
Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtktext.c: Reference count the fonts used in
the text widget.
* gdk/gdk.h gdk/gdkcolor.c: Rename the color allocation
freeing functions to be more consistent, and more
convenient; leave the old names in for backwards compatibility.
* gdk/gdkcolor.c gdk/gdkprivate.h: Reference count the
allocations in pseudo-color colormaps to greatly reduce
calls to XAllocColor. Keep a per-colormap hashtable to
speed up finding if there is an already-allocated matching
color.
* gdk/gdkcolor.c: Don't just match read the system colormap
when the colormap is created, but synchronize our copy
with the system colormap periodically.
* gdk/gdk.c gdk/gdktypes.h gtk/gtkentry.c gtk/gtktext.c:
Change XIM constants names to match GDK conventions
* gtk/testinput.c: Allow the drawing area to get the focus.
* gtk/testgtk.c: Change around the Text test to demonstrates
multiple fonts, use more colors.
* gtk/gtkwidget.c: Improve gtk_widget_get_colormap()/visual()
so they work after a widget is unrealized.
* gtk/gtktext.[ch]: Remove the requirement that the text
widget be realized before adding text (!) Allocate colors
ourself, instead of requiring the caller allocate them.
Allow changing styles to work properly by keeping track
of the values for a certain property are default or
set explicitely.
* gtk/gtkmenu.h: Added some comments.
* gtk/gtkentry.c: Changes to match XIM constants.
* gtk/gdk.h gdk/gdkwindow.c: Add gdk_drawable_set_data(),
for adding keyed data to drawables. (Uses g_dataset
internally)
* gdk/gdkpixmap.c: Keep track of the colors we allocate,
when creating an XPM - store them as user data for the GdkPixmap,
so we don't leak colors when we create pixmaps from XPM's.
Allocate memory for color information in large blocks instead of
as many little pieces.
Mon Aug 24 02:36:53 1998 Tim Janik <timj@gtk.org>
* gtk/gtkarg.h:
* gtk/gtkarg.c:
* gtk/gtkwidget.h:
* gtk/gtkwidget.c:
* gtk/gtkobject.h:
* gtk/gtkobject.c:
* gtk/gtkcontainer.h:
* gtk/gtkcontainer.c:
(gtk_object_new):
(gtk_object_set):
(gtk_widget_new):
(gtk_widget_set):
(gtk_container_add_with_args):
(gtk_container_child_set):
begin the parameter elipsis (...) after the first argument name. this
change is source compatible, since it was always required, even as NULL.
(gtk_args_collect):
(gtk_object_args_collect):
(gtk_container_child_args_collect):
changed prototypes to pass first_arg_name, also, pass va_list variable
by value (portability concerns). callers changed.
* gtk/gtkargcollector.c: implemented gtk_arg_collect_value() as
a huge macro GTK_ARG_COLLECT_VALUE() <shrug>. this is needed because we
can't pass va_list variables by reference for portability reasons.
Fri Aug 21 02:31:26 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.h:
* gtk/gtkmain.c (gtk_check_version): added a function to perform a
binary version check, returning a static string for error descriptions,
or NULL on success.
Thu Aug 20 20:08:15 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtktext.c ([un]draw_cursor): Check to see if we've
computed our geometry yet, and if not, ignore the request.
gtk/gtktext.c (correct_cache_insert): Fiddled around]
some more. All the bug-test codes seem to work at once
now. (fingers crossed...)
1998-08-20 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtk/gtkhandlebox.c (gtk_handle_box_button_changed): Do not do
anything if the event's window is not the bin window.
(gtk_handle_box_motion): Likewise.
Wed Aug 19 00:11:14 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_init): allow argument parsing in gtk without
G_ENABLE_DEBUG being defined (specifically --gtk-module= and
--g-fatal-warnings), noticed by miguel.
Tue Aug 18 17:22:22 1998 Lars Hamann <lars@gtk.org>
* gtk/gtknotebook.c (gtk_notebook_switch_focus_tab):
* gtk/gtknotebook.c (gtk_notebook_update_labels): fix for sigsegv
in case of show_tabs == NULL
Tue Aug 18 03:54:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_init): restricted the --g*fatal-* arguments
to --g-fatal-warnings again. this option now causes log levels of
WARNING and CRITICAL to abort().
* gdk/gdk.c:
* gdk/gdkdnd.c:
* gdk/gdkcc.c:
* gdk/gdkfont.c:
* gdk/gdkwindow.c:
* gdk/gdkvisual.c:
* gtk/gtkwidget.c:
* gtk/gtktypeutils.c:
* gtk/gtktree.c:
* gtk/gtkfontsel.c:
* gtk/gtkmain.c:
* gtk/gtkobject.c:
* gtk/gtkpreview.c:
* gtk/gtkselection.c:
* gtk/gtktext.c:
* gtk/gtktree.c:
* gtk/gtktreeitem.c:
did a global search&replace to substitute g_print() calls with
g_message(). libraries shouldn't use printf(), g_print() or
g_printerr() at all.
a bunch of the replacements should probably be wrapped into the
G{D|T}K_NOTE() macros, so they are special cased for debugging
purposes in a sane way, avoiding all the nasty #ifdef DEBUG_MY_TEDDY
things.
* gdk/gdkrgb.c: left this out currently.
* gdk/gdkdnd.c: added copyright notice.
Tue Aug 18 00:29:13 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.h:
(struct _GtkCListClass): new class methods:
(sort_list) (insert_row) (remove_row) (set_cell_contents)
* gtk/gtkclist.c :
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
removed and replaced by (set_cell_contents)
(set_cell_contents): function for class method set_cell_contents
(real_insert_row): function for class method insert_row
(real_remoce_row): function for class method remove_row
(real_sort_list): function for class method sort_list
(default_compare): fix to avoid problems with cell types != CELL_TEXT
* gtk/gtkctree.h :
(gtk_ctree_export_to_gnode): new function to export a ctree as gnode
(gtk_ctree_node_is_visible): new function to return visibility state
of a node
(gtk_ctree_show_stub): new function to set visibility of root stub
renamed functions :
(gtk_ctree_insert) -> (gtk_ctree_insert_node)
(gtk_ctree_remove) -> (gtk_ctree_remove_node)
(gtk_ctree_find_glist_ptr) -> (gtk_ctree_find_node_ptr)
(gtk_ctree_set_text) -> (gtk_ctree_node_set_text)
(gtk_ctree_set_pixmap) -> (gtk_ctree_node_set_pixmap)
(gtk_ctree_set_pixtext) -> (gtk_ctree_node_set_pixtext)
(gtk_ctree_set_shift) -> (gtk_ctree_node_set_shift)
(gtk_ctree_get_cell_type) -> (gtk_ctree_node_get_cell_type)
(gtk_ctree_get_text) -> (gtk_ctree_node_get_text)
(gtk_ctree_get_pixmap) -> (gtk_ctree_node_get_pixmap)
(gtk_ctree_get_pixtext) -> (gtk_ctree_node_get_pixtext)
(gtk_ctree_set_foreground) -> (gtk_ctree_node_set_foreground)
(gtk_ctree_set_background) -> (gtk_ctree_node_set_background)
(gtk_ctree_set_row_data) -> (gtk_ctree_node_set_row_data)
(gtk_ctree_set_row_data_full) -> (gtk_ctree_node_set_row_data_full)
(gtk_ctree_get_row_data) -> (gtk_ctree_node_get_row_data)
(gtk_ctree_moveto) -> (gtk_ctree_node_moveto)
(gtk_ctree_sort) -> (gtk_ctree_sort_node)
(gtk_ctree_is_visibe) -> (gtk_ctree_is_viewable)
* gtk/gtkctree.c :
(cell_empty) (cell_set_text) (cell_set_pixmap) (cell_set_pixtext):
removed and replaced by (set_cell_contents)
(set_cell_contents): function for class method set_cell_contents
(real_insert_row): function for class method insert_row
(real_remoce_row): function for class method remove_row
(real_sort_list): function for class method sort_list
(default_compare): removed. CTree now also compares two GtkCTreeRows
instead of two GtkCTreeNodes.
(gtk_ctree_unlink): call gtk_ctree_collapse if parent is empty after
unlinking the node
(real_tree_expand) (real_tree_collapse): fix for refcounting of
node pixmaps
(set_node_info): call gtk_ctree_node_set_pixtext instead of
manipulating the row itself
* gtk/testgtk.c: use renamed functions of GtkCTree.
new sample to show gtk_ctree_export_to_gnode and gtk_ctree_insert_gnode
at work.
Mon Aug 17 15:31:38 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c: removed gtk_input_add_interp.
* gtk/gtkeditable.c (gtk_editable_set_position): fixed bogus "return"
keyword.
(gtk_editable_get_event_time): fix default: case.
* gtk/gtkclist.c (gtk_clist_swap_rows): fixes for lvalue casts.
* gdk/gdkpixmap.c: made a bunch of unexported functions static.
* gdk/gdkcolor.c:
* gdk/gdkvisual.c: include "gdkx.h", since it exports prototypes
of our functions.
* various minor compilation cleanups, such as bogus commas in
enums and similar things.
M
Mon Aug 17 03:47:55 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_init): feature a new commandline option
--gtk-with-module=<module> that allows additional loading and
initialization of modules (e.g. GLE).
Mon Aug 17 01:40:00 1998 Tim Janik <timj@gtk.org>
* configure.in: version bump to 1.1.1, binary age 0, interface age 0.
pass "gmodule" to AM_PATH_GLIB, with that we require libgmodule.so now.
* gtk/gtkmain.c (gtk_init): since glib's g_return*_if_fail macros log
with G_LOG_LEVEL_CRITICAL now, i added "--g-fatal-checks",
"--gdk-fatal-checks" and "--gtk-fatal-checks". that makes up six
different *-fatal-* arguments now. this needs to be revised and
compressed to a reasonable amount of arguments.
Sun Aug 16 20:51:59 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmain.c (gtk_init): fatal warning option is split up now,
"--g-fatal-warnings" causes fatal warnings in GLib,
"--gdk-fatal-warnings" causes fatal warnings in Gdk,
"--gtk-fatal-warnings" causes fatal warnings in Gtk.
* gtk/Makefile.am: define G_LOG_DOMAIN for gtk.
* gdk/Makefile.am: define G_LOG_DOMAIN for gdk.
* gtk/testgtk.c:
* gdk/gxid.c:
we need ugly #undef G_LOG_DOMAIN at the start of these files currently,
since automake doesn't support per target _CFLAGS yet.
* configure.in: require GLib 1.1.3.
Thu Aug 13 09:11:11 BST 1998 Tony Gale <gale@gtk.org>
* docs/gtk_tut.sgml:
- Tidy up of the menufactory example from
Andy Kahn <kahn@zk3.dec.com>
- New section on Range Widgets from
David Huggins-Daines <bn711@freenet.carleton.ca>
- Started a new section on 'Advanced Event and Signal
Handling' - used an email from Owen.
- New appendix on Gdk Event Types
- Added the tictactoe full example code to the
'Code Examples' appendix
Tue Jul 21 12:42:01 1998 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.h gdk/gdkfont.c: Added gdk_text/string_extents() -
too calculate all the metrics at once of a string, including
things which weren't calculated before.
* gtk/Makefile.am gtk/gtk.h gtk/gtktearoffmenu.[ch]: New
MenuItem type, that when put as the first thing in a
menu, makes the menu tearoff. Currently drawn as a
dashed line.
* gtk/gtkmenuitem.h gtk/gtkcheckmenuitem.c: Added a flag
"hide_on_activate" to the MenuItem class structure to allow
check and radio buttons to be changed with <Space> without
hiding the menu.
* gtk/gtkaccellabel.[ch]: Added new capabilities to set
a underline_group and underline_mods for the label -
accelerators added in the underline group matching
underline_mods will be displayed as an underline character.
This doesn't work - Save As needs to be underlined
as Save _As.
* gtk/gtkitemfactory.c:
- Create a AccelGroup for each MenuShell we create.
- If an '&' appears before a character 'c' in the path,
then make 'c' an accelerator in the menu's accel group,
and if the menuitem is menubar <alt>C an accelerator
in the itemfactory's accel group.
* gtk/gtklabel.[ch]: Add support for a pattern arg -
which is a string. If an '_' appears in this string,
the corresponding position in the label is underlined.
Add gtk_label_parse_uline() convenience function which
takes a string with embedded underlines, sets the
pattern and label, and returns the accelerator keyval.
* gtk/gtkmenu.[ch]: Make menus no longer a toplevel widget.
Instead, they create a GtkWindow and add themselves
to that. (When torn off, another new feature, they
create another GtkWindow to hold the torn off menu)
New function gtk_menu_set_tearoff_state()
* gtk/gtkenums.h gtk/gtkmenushell.[ch] gtk/gtkenums.h:
Added action signals for keyboard navigation of menus.
* gtk/gtkmenushell.c: Key press handler which activates
bindings for navigation, and accelerators, for handling
underline accelerators. Exported functions to select
and activate menu items in a menushell.
* gtk/testgtk.c: Added a new "Item Factory" test which
tests GtkItemFactory and the new keyboard navigation
of menus.
Tue Aug 11 20:52:58 1998 Tim Janik <timj@gtk.org>
* gtk/gtktypeutils.c (gtk_type_class_init): relookup nodes after
external functions have been called. also relookup nodes after
this function has been invoked.
Tue Aug 11 15:04:52 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtktext.[ch]: Removed has_cursor, set the cursor
beginning of Text when creating the Text widget.
* gtk/testgtk.c: Grab the focus on the text widget so
as to test out the above.
Tue Aug 11 14:55:00 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtkeditable.c: Reverted part of timj's change of Jul 16.
::changed is a notification signal and should have no default
handler. A complete redraw of the Text widget does _not_ need to
be done on every text insertion.
Tue Aug 11 13:07:29 1998 Owen Taylor <otaylor@redhat.com>
(gtk-abilleira-072198-patch)
* gtk/gtkwindow.[ch]:
Add gtk_window_set_modal() which sets a flag; when
set the window does a gtk_grab_add() when the window
is shown, and a gtk_grab_remove() when the window
is hidden.
* gtk/gtkfilesel.[ch]: Test if it is running in modal form and in
that case will run "Create Dir","Delete File" and "Rename File"
dialogs as modal too.
* gtk/testgtk.c: Added a button with an example of creating modal
dialog boxes. Including file selection and color selection standard
dialogs.
Tue Aug 11 00:44:47 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtkhscrollbar.c gtk/gtkvscrollbar.c gtk/gtktoolbar.c:
Removed CAN_FOCUS by default from scrollbars, button
children of toolbar. (But not GDK_TOOLBAR_CHILD_WIDGET children)
(Scrollbar definitely good change, toolbar bit more questionable)
Tue Aug 11 00:35:56 1998 Owen Taylor <otaylor@redhat.com>
* gdk/gdkgc.c gdk/gdktypes.h: Applied gtk-pedersen-980727-0;
added all logical operations to gc->function.
Sun Aug 9 23:31:59 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.c (adjust_scrollbars): Fix for resize bug. Call
gtk_widget_size_allocate instead of gtk_widget_queue_resize
if the visibility state of a scrollbar changes.