| 271 } |
271 } |
| 272 |
272 |
| 273 GtkWidget *pidgin_dialog_add_button(GtkDialog *dialog, const char *label, |
273 GtkWidget *pidgin_dialog_add_button(GtkDialog *dialog, const char *label, |
| 274 GCallback callback, gpointer callbackdata) |
274 GCallback callback, gpointer callbackdata) |
| 275 { |
275 { |
| 276 GtkWidget *button = gtk_button_new_from_stock(label); |
276 GtkWidget *button = gtk_button_new_with_mnemonic(label); |
| 277 GtkWidget *bbox = pidgin_dialog_get_action_area(dialog); |
277 GtkWidget *bbox = pidgin_dialog_get_action_area(dialog); |
| |
278 |
| |
279 /* Handle stock labels if passed in until nothing calls this |
| |
280 * expecting a GtkStock button */ |
| |
281 if (label != NULL) { |
| |
282 GtkStockItem item; |
| |
283 if (gtk_stock_lookup(label, &item)) { |
| |
284 g_object_set(button, "use-stock", TRUE, NULL); |
| |
285 } |
| |
286 } |
| |
287 |
| 278 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
288 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 279 if (callback) |
289 if (callback) |
| 280 g_signal_connect(G_OBJECT(button), "clicked", callback, callbackdata); |
290 g_signal_connect(G_OBJECT(button), "clicked", callback, callbackdata); |
| 281 gtk_widget_show(button); |
291 gtk_widget_show(button); |
| 282 return button; |
292 return button; |