79
80
char *symbolic_icon_name;
80
GtkStyleContext *context;
81
GtkWidget *button_child;
83
82
gtk_container_child_get (GTK_CONTAINER (self->priv->stack), widget,
85
84
"symbolic-icon-name", &symbolic_icon_name,
88
context = gtk_widget_get_style_context (button);
89
button_child = gtk_bin_get_child (GTK_BIN (button));
91
if (symbolic_icon_name != NULL && symbolic_icon_name[0] != '\0')
93
if (button_child != NULL && !GTK_IS_IMAGE (button_child))
95
gtk_widget_set_size_request (button, -1, -1);
96
gtk_widget_destroy (button_child);
100
if (button_child == NULL)
102
button_child = gtk_image_new ();
103
gtk_container_add (GTK_CONTAINER (button), button_child);
104
gtk_widget_show (button_child);
107
gtk_image_set_from_icon_name (GTK_IMAGE (button_child), symbolic_icon_name, GTK_ICON_SIZE_MENU);
108
gtk_widget_set_tooltip_text (button, title);
110
gtk_style_context_add_class (context, "image-button");
111
gtk_style_context_remove_class (context, "text-button");
87
gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (button), symbolic_icon_name);
88
gd_header_button_set_label (GD_HEADER_BUTTON (button), title);
90
gtk_widget_set_visible (button, title != NULL || symbolic_icon_name != NULL);
92
if (symbolic_icon_name != NULL)
93
gtk_widget_set_size_request (button, -1, -1);
115
if (button_child != NULL && GTK_IS_LABEL (button_child))
116
gtk_label_set_text (GTK_LABEL (button_child), title);
120
gtk_widget_destroy (button_child);
121
button_child = gtk_label_new (title);
122
gtk_widget_show (button_child);
123
gtk_container_add (GTK_CONTAINER (button), button_child);
124
gtk_widget_set_size_request (button, 100, -1);
126
gtk_style_context_add_class (context, "text-button");
127
gtk_style_context_remove_class (context, "image-button");
95
gtk_widget_set_size_request (button, 100, -1);
132
98
g_free (symbolic_icon_name);
170
136
GtkStyleContext *context;
172
button = gtk_radio_button_new (NULL);
173
context = gtk_widget_get_style_context (button);
174
gtk_style_context_add_class (context, "raised");
138
button = gd_header_radio_button_new ();
176
139
update_button (self, widget, button);
178
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), FALSE);
180
141
group = gtk_container_get_children (GTK_CONTAINER (self));
181
142
if (group != NULL)
187
148
gtk_container_add (GTK_CONTAINER (self), button);
188
gtk_widget_show (button);
190
150
g_object_set_data (G_OBJECT (button), "stack-child", widget);
191
151
g_signal_connect (button, "clicked", G_CALLBACK (on_button_clicked), self);
257
217
g_signal_handlers_disconnect_by_func (priv->stack, on_stack_child_removed, switcher);
259
219
g_signal_handlers_disconnect_by_func (priv->stack, on_child_changed, switcher);
221
g_signal_handlers_disconnect_by_func (priv->stack, disconnect_stack_signals, switcher);
270
232
G_CALLBACK (on_stack_child_removed), switcher);
271
233
g_signal_connect (priv->stack, "notify::visible-child",
272
234
G_CALLBACK (on_child_changed), switcher);
236
g_signal_connect_swapped (priv->stack, "destroy",
237
G_CALLBACK (disconnect_stack_signals), switcher);