Mercurial > pidgin.yaz
comparison pidgin/gtksavedstatuses.c @ 21652:eb2d5ba2a50d
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
created by pidgin_create_dialog. This removes a lot of code duplication.
Anyone using this branch should keep an eye on the buttons on the dialogs to
make sure they are enabled/disabled/displayed/hidden/marinated correctly.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Tue, 27 Nov 2007 00:15:49 +0000 |
parents | 2a2496044eef |
children | 1690d040addd |
comparison
equal
deleted
inserted
replaced
21651:9107bb853c49 | 21652:eb2d5ba2a50d |
---|---|
609 list = create_saved_status_list(dialog); | 609 list = create_saved_status_list(dialog); |
610 gtk_box_pack_start(GTK_BOX(vbox), list, TRUE, TRUE, 0); | 610 gtk_box_pack_start(GTK_BOX(vbox), list, TRUE, TRUE, 0); |
611 | 611 |
612 /* Button box. */ | 612 /* Button box. */ |
613 bbox = pidgin_dialog_get_action_area(GTK_DIALOG(win)); | 613 bbox = pidgin_dialog_get_action_area(GTK_DIALOG(win)); |
614 gtk_box_set_spacing(GTK_BOX(bbox), PIDGIN_HIG_BOX_SPACE); | |
615 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); | |
616 gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, TRUE, 0); | |
617 | 614 |
618 /* Use button */ | 615 /* Use button */ |
619 button = pidgin_pixbuf_button_from_stock(_("_Use"), GTK_STOCK_EXECUTE, | 616 button = pidgin_pixbuf_button_from_stock(_("_Use"), GTK_STOCK_EXECUTE, |
620 PIDGIN_BUTTON_HORIZONTAL); | 617 PIDGIN_BUTTON_HORIZONTAL); |
621 dialog->use_button = button; | 618 dialog->use_button = button; |
624 | 621 |
625 g_signal_connect(G_OBJECT(button), "clicked", | 622 g_signal_connect(G_OBJECT(button), "clicked", |
626 G_CALLBACK(status_window_use_cb), dialog); | 623 G_CALLBACK(status_window_use_cb), dialog); |
627 | 624 |
628 /* Add button */ | 625 /* Add button */ |
629 button = gtk_button_new_from_stock(GTK_STOCK_ADD); | 626 pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_ADD, |
630 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); | 627 G_CALLBACK(status_window_add_cb), dialog); |
631 | |
632 g_signal_connect(G_OBJECT(button), "clicked", | |
633 G_CALLBACK(status_window_add_cb), dialog); | |
634 | 628 |
635 /* Modify button */ | 629 /* Modify button */ |
636 button = gtk_button_new_from_stock(PIDGIN_STOCK_MODIFY); | 630 button = pidgin_dialog_add_button(GTK_DIALOG(win), PIDGIN_STOCK_MODIFY, |
631 G_CALLBACK(status_window_modify_cb), dialog); | |
637 dialog->modify_button = button; | 632 dialog->modify_button = button; |
638 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); | 633 |
634 /* Delete button */ | |
635 button = pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_DELETE, | |
636 G_CALLBACK(status_window_delete_cb), dialog); | |
637 dialog->delete_button = button; | |
639 gtk_widget_set_sensitive(button, FALSE); | 638 gtk_widget_set_sensitive(button, FALSE); |
640 | 639 |
641 g_signal_connect(G_OBJECT(button), "clicked", | |
642 G_CALLBACK(status_window_modify_cb), dialog); | |
643 | |
644 /* Delete button */ | |
645 button = gtk_button_new_from_stock(GTK_STOCK_DELETE); | |
646 dialog->delete_button = button; | |
647 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); | |
648 gtk_widget_set_sensitive(button, FALSE); | |
649 | |
650 g_signal_connect(G_OBJECT(button), "clicked", | |
651 G_CALLBACK(status_window_delete_cb), dialog); | |
652 | |
653 /* Close button */ | 640 /* Close button */ |
654 button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); | 641 pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_CLOSE, |
655 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); | 642 G_CALLBACK(status_window_close_cb), dialog); |
656 | |
657 g_signal_connect(G_OBJECT(button), "clicked", | |
658 G_CALLBACK(status_window_close_cb), dialog); | |
659 | 643 |
660 purple_signal_connect(purple_savedstatuses_get_handle(), | 644 purple_signal_connect(purple_savedstatuses_get_handle(), |
661 "savedstatus-changed", status_window, | 645 "savedstatus-changed", status_window, |
662 PURPLE_CALLBACK(current_status_changed), dialog); | 646 PURPLE_CALLBACK(current_status_changed), dialog); |
663 purple_signal_connect(purple_savedstatuses_get_handle(), | 647 purple_signal_connect(purple_savedstatuses_get_handle(), |
1258 bbox = pidgin_dialog_get_action_area(GTK_DIALOG(win)); | 1242 bbox = pidgin_dialog_get_action_area(GTK_DIALOG(win)); |
1259 gtk_box_set_spacing(GTK_BOX(bbox), PIDGIN_HIG_BOX_SPACE); | 1243 gtk_box_set_spacing(GTK_BOX(bbox), PIDGIN_HIG_BOX_SPACE); |
1260 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); | 1244 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); |
1261 | 1245 |
1262 /* Cancel button */ | 1246 /* Cancel button */ |
1263 button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); | 1247 pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_CANCEL, |
1264 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); | 1248 G_CALLBACK(status_editor_cancel_cb), dialog); |
1265 | |
1266 g_signal_connect(G_OBJECT(button), "clicked", | |
1267 G_CALLBACK(status_editor_cancel_cb), dialog); | |
1268 | 1249 |
1269 /* Use button */ | 1250 /* Use button */ |
1270 button = pidgin_pixbuf_button_from_stock(_("_Use"), GTK_STOCK_EXECUTE, | 1251 button = pidgin_pixbuf_button_from_stock(_("_Use"), GTK_STOCK_EXECUTE, |
1271 PIDGIN_BUTTON_HORIZONTAL); | 1252 PIDGIN_BUTTON_HORIZONTAL); |
1272 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); | 1253 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
1273 | |
1274 g_signal_connect(G_OBJECT(button), "clicked", | 1254 g_signal_connect(G_OBJECT(button), "clicked", |
1275 G_CALLBACK(status_editor_ok_cb), dialog); | 1255 G_CALLBACK(status_editor_ok_cb), dialog); |
1276 | 1256 |
1277 /* Save & Use button */ | 1257 /* Save & Use button */ |
1278 button = pidgin_pixbuf_button_from_stock(_("Sa_ve & Use"), GTK_STOCK_OK, | 1258 button = pidgin_pixbuf_button_from_stock(_("Sa_ve & Use"), GTK_STOCK_OK, |
1279 PIDGIN_BUTTON_HORIZONTAL); | 1259 PIDGIN_BUTTON_HORIZONTAL); |
1280 dialog->saveanduse_button = GTK_BUTTON(button); | 1260 dialog->saveanduse_button = GTK_BUTTON(button); |
1281 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); | 1261 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
1282 if (dialog->original_title == NULL) | 1262 if (dialog->original_title == NULL) |
1283 gtk_widget_set_sensitive(button, FALSE); | 1263 gtk_widget_set_sensitive(button, FALSE); |
1284 | |
1285 g_signal_connect(G_OBJECT(button), "clicked", | 1264 g_signal_connect(G_OBJECT(button), "clicked", |
1286 G_CALLBACK(status_editor_ok_cb), dialog); | 1265 G_CALLBACK(status_editor_ok_cb), dialog); |
1287 | 1266 |
1288 /* Save button */ | 1267 /* Save button */ |
1289 button = gtk_button_new_from_stock(GTK_STOCK_SAVE); | 1268 button = pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_SAVE, |
1290 dialog->save_button = GTK_BUTTON(button); | 1269 G_CALLBACK(status_editor_ok_cb), dialog); |
1291 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); | |
1292 if (dialog->original_title == NULL) | 1270 if (dialog->original_title == NULL) |
1293 gtk_widget_set_sensitive(button, FALSE); | 1271 gtk_widget_set_sensitive(button, FALSE); |
1294 | 1272 dialog->save_button = GTK_BUTTON(button); |
1295 g_signal_connect(G_OBJECT(button), "clicked", | |
1296 G_CALLBACK(status_editor_ok_cb), dialog); | |
1297 | 1273 |
1298 gtk_widget_show_all(win); | 1274 gtk_widget_show_all(win); |
1299 g_object_unref(sg); | 1275 g_object_unref(sg); |
1300 } | 1276 } |
1301 | 1277 |
1442 edit_substatus(StatusEditor *status_editor, PurpleAccount *account) | 1418 edit_substatus(StatusEditor *status_editor, PurpleAccount *account) |
1443 { | 1419 { |
1444 char *tmp; | 1420 char *tmp; |
1445 SubStatusEditor *dialog; | 1421 SubStatusEditor *dialog; |
1446 GtkSizeGroup *sg; | 1422 GtkSizeGroup *sg; |
1447 GtkWidget *bbox; | |
1448 GtkWidget *button; | |
1449 GtkWidget *combo; | 1423 GtkWidget *combo; |
1450 GtkWidget *hbox; | 1424 GtkWidget *hbox; |
1451 GtkWidget *frame; | 1425 GtkWidget *frame; |
1452 GtkWidget *label; | 1426 GtkWidget *label; |
1453 GtkWidget *text; | 1427 GtkWidget *text; |
1537 frame = pidgin_create_imhtml(TRUE, &text, &toolbar, NULL); | 1511 frame = pidgin_create_imhtml(TRUE, &text, &toolbar, NULL); |
1538 dialog->message = GTK_IMHTML(text); | 1512 dialog->message = GTK_IMHTML(text); |
1539 dialog->toolbar = GTK_IMHTMLTOOLBAR(toolbar); | 1513 dialog->toolbar = GTK_IMHTMLTOOLBAR(toolbar); |
1540 gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); | 1514 gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); |
1541 | 1515 |
1542 /* Button box */ | |
1543 bbox = pidgin_dialog_get_action_area(GTK_DIALOG(win)); | |
1544 gtk_box_set_spacing(GTK_BOX(bbox), PIDGIN_HIG_BOX_SPACE); | |
1545 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); | |
1546 | |
1547 /* Cancel button */ | 1516 /* Cancel button */ |
1548 button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); | 1517 pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_CANCEL, |
1549 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); | 1518 G_CALLBACK(substatus_editor_cancel_cb), dialog); |
1550 | |
1551 g_signal_connect(G_OBJECT(button), "clicked", | |
1552 G_CALLBACK(substatus_editor_cancel_cb), dialog); | |
1553 | 1519 |
1554 /* OK button */ | 1520 /* OK button */ |
1555 button = gtk_button_new_from_stock(GTK_STOCK_OK); | 1521 pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_OK, |
1556 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); | 1522 G_CALLBACK(substatus_editor_ok_cb), dialog); |
1557 | |
1558 g_signal_connect(G_OBJECT(button), "clicked", | |
1559 G_CALLBACK(substatus_editor_ok_cb), dialog); | |
1560 | 1523 |
1561 /* Seed the input widgets with the current values */ | 1524 /* Seed the input widgets with the current values */ |
1562 | 1525 |
1563 /* Only look at the saved status if we can't find it in the parent status dialog's substatuses model */ | 1526 /* Only look at the saved status if we can't find it in the parent status dialog's substatuses model */ |
1564 gtk_tree_model_get(GTK_TREE_MODEL(status_editor->model), &iter, | 1527 gtk_tree_model_get(GTK_TREE_MODEL(status_editor->model), &iter, |