2003-09-01 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.c (gtk_ui_manager_get_widget)
(gtk_ui_manager_get_action): g_return_if_fail() if
path is NULL.
(gtk_ui_manager_get_node): Avoid a segfault if path is empty.
(gtk_ui_manager_finalize): Remove the idle on finalize. (#121125,
Marco Pesenti Gritti)
2003-08-31 Matthias Clasen <maclas@gmx.de>
* gtk/gtkactiongroup.c: Add some docs.
* gtk/gtkuimanager.[hc]: Get rid of the remove_widget signal. It
wasn't emitted anyway.
2003-08-30 Matthias Clasen <maclas@gmx.de>
* tests/testmerge.c (add_widget): Connect to "destroy" on toolbar,
rather than to "remove" on handlebox.
* gtk/gtkuimanager.[hc] (gtk_ui_manager_activate): New method to
activate an action found by following a path. (#120658)
* tests/testmerge.c: Add a button to test gtk_ui_manager_activate().
2003-08-30 Matthias Clasen <maclas@gmx.de>
* tests/testmerge.c (add_widget): Put toolbars in handleboxes.
* gtk/gtkuimanager.[hc]: Add a boolean property, "add_tearoffs" with
setter and getter. If it is set, add tearoff menu items to regular
menus, but not to popups. Add a signal "changed", which gets emitted
when the merged ui has changed.
* tests/testmerge.c: Add button to test the generation of tearoff
menu items.
2003-08-30 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.[hc]: Add a boolean property, "add_tearoffs" with
setter and getter. If it is set, add tearoff menu items to regular
menus, but not to popups.
* tests/testmerge.c: Add button to test the generation of tearoff
menu items.
2003-08-29 Matthias Clasen <maclas@gmx.de>
* gtk/gtkactiongroup.c (gtk_action_group_add_radio_actions_full): Actually group the actions
together rather than putting each in its own group.
Fri Aug 29 21:40:01 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkactiongroup.c (gtk_action_group_add_radio_actions_full):
Fix use of uninitialized variable.
* gtk/gtktextutil.c
(_gtk_text_util_append_special_char_menuitems): add const cast to
get rid of warning
2003-08-29 Matthias Clasen <maclas@gmx.de>
* gtk/gtkcheckmenuitem.c (gtk_check_menu_item_class_init): Install "draw_as_radio"
as a separate property, not as an alias of "inconsistent".
Fri Aug 29 20:32:07 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbar.c: Only treat buttons as homogeneous when they
are narrower than 13 time the estimated character width of the
font. (#107781, David Bordoley)
* gtk/gtktoggletoolbutton.c (gtk_toggle_tool_button_init): Check
here if the GtkToggleButton is active. This may be the case if it
is a radio button.
* gtk/gtktoolbar.c: Clarify documentation wrt. GtkSignalFunc
vs. void (*) (GtkWidget, gpointer). (#107495, Mariano
Suarez-Alvarez).
* gtk/gtkcheckmenuitem.[ch]: new "draw_as_radio"
property. (#111207, David Bordoley).
* gtk/gtktoggletoolbutton.c
(gtk_toggle_tool_button_create_menu_proxy): use new
"draw_as_radio" property on the menu item when the item is a radio
tool button
* gtk/gtktoolbutton.c (gtk_tool_button_create_menu_proxy): Fixes
to only pay attention to the "use_underline" property when the
button label comes from the "label" property.
2003-08-28 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.c: Change the XML format:
<Root> element is replaced by <ui>,
<menu> element is replaced by <menubar>,
<submenu> element is replaced by <menu>,
<dockitem> element is replaced by <toolbar>,
<popups> element is gone,
verb attribute is replaced by action,
name defaults to action or the element name.
* gtk/gtkactiongroup.[hc]: Replace GtkActionGroupEntry by GtkActionEntry
and GtkRadioActionEntry. GtkActionEntry is simplified by removing
the user_data, entry_type and extra_data fields, GtkRadioActionEntry is
further simplified by removing the callback. The user_data can now be
specified as an argument to gtk_action_group_add_actions(). There is
a new method gtk_action_group_add_radio_actions(), which is similar
to gtk_action_group_add_actions(), but takes GtkRadioActionEntrys
and a callback parameter in addition to the user_data. The callback
is connected to the ::changed signal of the first group member.
There are _full() variants taking a GDestroyNotify of
gtk_action_group_add_[radio_]actions().
* gtk/gtkradioaction.[hc]: Add a ::changed signal which gets emitted
on every member of the radio group when the active member is changed.
Add an integer property "value", and a getter for the value of "value"
on the currently active group member.
* tests/testactions.c:
* tests/testmerge.c:
* tests/merge-[123].ui:
* demos/gtk-demo/appwindow.c: Adjust to these changes.
* gtk/gtktoolbar.c (gtk_toolbar_append_element): Trivial doc fix.
Tue Aug 26 09:57:38 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkkeys-x11.c (update_keymaps): Fix variable
declaration not at start of block. (#120371, Damien Carbery)
2003-08-26 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.[hc] (gtk_ui_manager_add_ui_from_string): Use gssize
for length, not gsize.
* gtk/gtkuimanager.c: Refactor the XML format a bit: rename <Root> to
<ui> and make it optional in strings. Rename verb to action, <dockitem>
to <toolbar>, <menu> to <menubar>, <submenu> to <menu>.
* demos/gtk-demo/appwindow.c:
* tests/testactions.c:
* tests/testmerge.c:
* tests/merge-1.ui:
* tests/merge-2.ui:
* tests/merge-3.ui: Adjust to the new XML format.
Mon Aug 25 19:55:55 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtktextview.c (gtk_text_view_update_layout_width):
Since we add one to the layout's reported width to
account for the cursor, we need to subtract one when
setting the wrap width for the layout. (Fixes infinite
loop (#120325, Federico Crozat)
* gtk/gtktextlayout.c (gtk_text_layout_get_line_display):
Be a bit more careful about rounding when converting
wrapped width from Pango units to pixels.
Wed Aug 20 21:26:49 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c (gtk_plug_focus): Send the focus on
to the parent when there was no focus widget before
and no focus widget after - that is, when there are
no focusable widgets. (#108678, help tracking it
down from Padraig O'Briain, Federico Mena Quintero, )
* gtk/gtkxembed.[ch]: Move various shared utilities
for the XEMBED protocol eused by GtkPlug and GtkSocket
here.
* gtk/gtkxembed.[ch] gtkplug.c gtksocket.c: Implement
a flag bit that is sent with focus mesages to indicate
that the focus has wrapped around on the toplevel;
use this bit to catch infinite loops when there is no
focusable widget at ll in the entire toplevel.
* tests/testsocket.c (child_read_watch): Remove an
extraneous unref.
* gtk/gtkplug.c gtk/gtksocket.c gtk/gtkxembed.h:
Up XEMBED protocol version to 1, add logic for
sending the right version in XEMBED_EMBEDDED_NOTIFY.
* gtk/gtksocket.c (gtk_socket_add_window): Send
the embedder window in the XEMBED_EMBEDDED_NOTIFY
as the spec requires.
Mon Aug 25 17:28:04 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_forall): Don't
include page->menu_label - causes various problems,
including #12047.
Mon Aug 25 23:21:43 2003 Kristian Rietveld <kris@gtk.org>
Merge from stable.
Fixes#115871, reported by Michael Natterer.
* gtk/gtktreeprivate.h: added GtkTreeSelectMode enum,
added ctrl_pressed and shift_pressed bitfields,
(_gtk_tree_selection_internal_select_node): replace GdkModifierType
arg with GtkTreeSelectMode.
* gtk/gtktreeselection.c (gtk_tree_selection_set_mode),
(gtk_tree_selection_select_path), (gtk_tree_selection_unselect_path),
(_gtk_tree_selection_internal_select_node): all updated for
GdkModifierType -> GtkTreeSelectMode move.
* gtk/gtktreeview.c (gtk_tree_view_button_press): set ctrl_pressed
and shift_pressed around selection handling block,
(gtk_tree_view_real_select_cursor_row),
(gtk_tree_view_real_toggle_cursor_row),
(gtk_tree_view_real_selection_cursor_parent),
(gtk_tree_view_real_set_cursor): use ctrl_pressed and shift_pressed,
instead of checking the event state. And also updates for the
GdkModifierType -> GtkTreeSelectMode move.
Wed Aug 20 21:26:49 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c (gtk_plug_focus): Send the focus on
to the parent when there was no focus widget before
and no focus widget after - that is, when there are
no focusable widgets. (#108678, help tracking it
down from Padraig O'Briain, Federico Mena Quintero, )
* gtk/gtkxembed.[ch]: Move various shared utilities
for the XEMBED protocol eused by GtkPlug and GtkSocket
here.
* gtk/gtkxembed.[ch] gtkplug.c gtksocket.c: Implement
a flag bit that is sent with focus mesages to indicate
that the focus has wrapped around on the toplevel;
use this bit to catch infinite loops when there is no
focusable widget at ll in the entire toplevel.
* tests/testsocket.c (child_read_watch): Remove an
extraneous unref.
* gtk/gtkplug.c gtk/gtksocket.c gtk/gtkxembed.h:
Up XEMBED protocol version to 1, add logic for
sending the right version in XEMBED_EMBEDDED_NOTIFY.
* gtk/gtksocket.c (gtk_socket_add_window): Send
the embedder window in the XEMBED_EMBEDDED_NOTIFY
as the spec requires.
Mon Aug 25 16:15:41 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkkeys-x11.c: Fix up CapsLock and
NumLock handling for non-XKB. Add a special case
hack for NumLock on Sun servers. (Patch from
Robert Basch, #115819)
2003-08-25 Matthias Clasen <maclas@gmx.de>
* gtk/gtkactiongroup.[hc] (gtk_action_group_set_translate_func,
gtk_action_group_set_translation_domain): Hooks for translation of
label and tooltip in GtkActionGroupEntries. (#120620)
2003-08-24 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaction.[ch]:
* gtk/gtktoggleaction.[ch]:
* gtk/gtktoggleactionprivate.h:
* gtk/gtkradioaction.[ch]:
* gtk/gtkactiongroup.[ch]:
* gtk/gtkmenumerge.[ch]: A model-view separation for menus and
toolbars, using the EggMenu code by James Henstridge.
* gtk/gtk.h: Include new headers.
* gtk/Makefile.am: Add new files.
* tests/testactions.c: Test for actions.
* tests/testmerge.c: Test for menu merging.
* tests/merge-[123].ui: Test data for testmerge.
* tests/Makefile.am: Add testactions and testmerge.
* demos/gtk-demo/appwindow.c: Use GtkMenuMerge to construct the
menubar and toolbar.