diff options
author | Soeren Sandmann <sandmann@daimi.au.dk> | 2003-07-08 18:20:45 +0000 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@src.gnome.org> | 2003-07-08 18:20:45 +0000 |
commit | 7913e63f692a7f7b155fe07246d69c58f4087688 (patch) | |
tree | ba5fed8f6268c7afd187dcb6a1f34270672957f4 /gtk/gtktoggletoolbutton.c | |
parent | b3b16bebcf3a28475190b764091442e7be18fdb2 (diff) | |
download | gtk+-7913e63f692a7f7b155fe07246d69c58f4087688.tar.gz |
remove correction on x when detail is "menuitem". With the new menu look
Tue Jul 8 19:57:14 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkstyle.c (gtk_default_draw_arrow): remove correction on x
when detail is "menuitem". With the new menu look is isn't needed
anymore.
* gtk/gtktoolitem.c (gtk_tool_item_toolbar_reconfigured): queue a
resize here, so that tool items will get a chance to relayout
themselves based on the toolbar configuration.
change DEFAULT_SPACE_SIZE to 4 instead of 5
* gtk/gtktoolbar.c
Get rid of "!GTK_BIN (item)->child means separator". Separators
are widgets in their own right
change DEFAULT_SPACE_SIZE to 4 instead of 5
(get_space_size): remove this function
(toolbar_item_is_homogeneous): new function
* gtk/gtkseparatortoolitem.c
(gtk_separator_tool_item_size_request): new function.
Tue Jul 8 14:10:35 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoggletoolbutton.h: use private data, add new
internal function _gtk_toggle_tool_button_get_button()
* gtk/gtktoolbutton.h: move to private data
* gtk/gtkradiotoolbutton.c, gtk/gtktoolbutton.c: updates for new
private data.
Diffstat (limited to 'gtk/gtktoggletoolbutton.c')
-rw-r--r-- | gtk/gtktoggletoolbutton.c | 52 |
1 files changed, 33 insertions, 19 deletions
diff --git a/gtk/gtktoggletoolbutton.c b/gtk/gtktoggletoolbutton.c index 1841d9ff5e..4e0395f156 100644 --- a/gtk/gtktoggletoolbutton.c +++ b/gtk/gtktoggletoolbutton.c @@ -33,6 +33,11 @@ enum { LAST_SIGNAL }; +struct _GtkToggleToolButtonPrivate +{ + guint active : 1; +}; + static void gtk_toggle_tool_button_init (GtkToggleToolButton *button); static void gtk_toggle_tool_button_class_init (GtkToggleToolButtonClass *klass); @@ -102,8 +107,10 @@ gtk_toggle_tool_button_class_init (GtkToggleToolButtonClass *klass) static void gtk_toggle_tool_button_init (GtkToggleToolButton *button) { - g_signal_connect_object (GTK_TOOL_BUTTON (button)->button, "toggled", - G_CALLBACK (button_toggled), button, 0); + button->priv = g_new0 (GtkToggleToolButtonPrivate, 1); + + g_signal_connect_object (_gtk_tool_button_get_button (GTK_TOOL_BUTTON (button)), + "toggled", G_CALLBACK (button_toggled), button, 0); } static gboolean @@ -116,14 +123,21 @@ gtk_toggle_tool_button_create_menu_proxy (GtkToolItem *item) gboolean use_mnemonic = TRUE; const char *label = ""; - if (tool_button->label_widget && GTK_IS_LABEL (tool_button->label_widget)) - label = gtk_label_get_label (GTK_LABEL (tool_button->label_widget)); - else if (tool_button->label_text) + GtkWidget *label_widget = gtk_tool_button_get_label_widget (tool_button); + const gchar *label_text = gtk_tool_button_get_label (tool_button); + gboolean use_underline = gtk_tool_button_get_use_underline (tool_button); + const gchar *stock_id = gtk_tool_button_get_stock_id (tool_button); + + if (label_widget && GTK_IS_LABEL (label_widget)) + { + label = gtk_label_get_label (GTK_LABEL (label_widget)); + } + else if (label_text) { - label = tool_button->label_text; - use_mnemonic = tool_button->use_underline; + label = label_text; + use_mnemonic = use_underline; } - else if (tool_button->stock_id && gtk_stock_lookup (tool_button->stock_id, &stock_item)) + else if (stock_id && gtk_stock_lookup (stock_id, &stock_item)) label = stock_item.label; if (use_mnemonic) @@ -132,7 +146,7 @@ gtk_toggle_tool_button_create_menu_proxy (GtkToolItem *item) menu_item = gtk_check_menu_item_new_with_label (label); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), - toggle_tool_button->active); + toggle_tool_button->priv->active); g_signal_connect_closure_by_id (menu_item, g_signal_lookup ("activate", G_OBJECT_TYPE (menu_item)), 0, @@ -164,12 +178,12 @@ menu_item_activated (GtkWidget *menu_item, GtkToolButton *tool_button = GTK_TOOL_BUTTON (toggle_tool_button); gboolean menu_active = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menu_item)); - if (toggle_tool_button->active != menu_active) + if (toggle_tool_button->priv->active != menu_active) { - toggle_tool_button->active = menu_active; + toggle_tool_button->priv->active = menu_active; - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tool_button->button), - toggle_tool_button->active); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (_gtk_tool_button_get_button (tool_button)), + toggle_tool_button->priv->active); g_signal_emit (G_OBJECT (toggle_tool_button), toggle_signals[TOGGLED], 0); } @@ -181,17 +195,17 @@ button_toggled (GtkWidget *widget, { gboolean toggle_active = GTK_TOGGLE_BUTTON (widget)->active; - if (toggle_tool_button->active != toggle_active) + if (toggle_tool_button->priv->active != toggle_active) { GtkWidget *menu_item; - toggle_tool_button->active = toggle_active; + toggle_tool_button->priv->active = toggle_active; if ((menu_item = gtk_tool_item_get_proxy_menu_item (GTK_TOOL_ITEM (toggle_tool_button), MENU_ID))) { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), - toggle_tool_button->active); + toggle_tool_button->priv->active); } g_signal_emit (G_OBJECT (toggle_tool_button), toggle_signals[TOGGLED], 0); @@ -231,8 +245,8 @@ gtk_toggle_tool_button_set_active (GtkToggleToolButton *button, is_active = is_active != FALSE; - if (button->active != is_active) - gtk_button_clicked (GTK_BUTTON (GTK_TOOL_BUTTON (button)->button)); + if (button->priv->active != is_active) + gtk_button_clicked (GTK_BUTTON (_gtk_tool_button_get_button (GTK_TOOL_BUTTON (button)))); } gboolean @@ -240,5 +254,5 @@ gtk_toggle_tool_button_get_active (GtkToggleToolButton *button) { g_return_val_if_fail (GTK_IS_TOGGLE_TOOL_BUTTON (button), FALSE); - return button->active; + return button->priv->active; } |