Mercurial > pidgin.yaz
comparison pidgin/gtksavedstatuses.c @ 29806:0aafa5cc2628
Remove extra enumeration.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Sat, 20 Feb 2010 04:33:31 +0000 |
parents | ded4c63c39a9 |
children | 551253814063 |
comparison
equal
deleted
inserted
replaced
29805:ded4c63c39a9 | 29806:0aafa5cc2628 |
---|---|
83 STATUS_EDITOR_COLUMN_STATUS_ICON, | 83 STATUS_EDITOR_COLUMN_STATUS_ICON, |
84 STATUS_EDITOR_NUM_COLUMNS | 84 STATUS_EDITOR_NUM_COLUMNS |
85 }; | 85 }; |
86 | 86 |
87 /** | 87 /** |
88 * These are used in the GtkComboBox to select the specific | 88 * These are used in the GtkComboBox to select the specific PurpleStatusType |
89 * PurpleStatusType when setting a substatus for a particular saved | 89 * when setting a (sub)status for a particular saved status. |
90 * status. | |
91 */ | 90 */ |
92 enum | 91 enum |
93 { | 92 { |
94 SUBSTATUS_COLUMN_ICON, | 93 STATUS_COLUMN_ICON, |
95 /** A hidden column containing the ID of this PurpleStatusType. */ | 94 /** A hidden column containing the ID of this PurpleStatusType. */ |
96 SUBSTATUS_COLUMN_STATUS_ID, | 95 STATUS_COLUMN_STATUS_ID, |
97 SUBSTATUS_COLUMN_STATUS_NAME, | 96 STATUS_COLUMN_STATUS_NAME, |
98 SUBSTATUS_NUM_COLUMNS | 97 STATUS_NUM_COLUMNS |
99 }; | 98 }; |
100 | 99 |
101 typedef struct | 100 typedef struct |
102 { | 101 { |
103 GtkWidget *window; | 102 GtkWidget *window; |
834 | 833 |
835 gtk_widget_set_sensitive(GTK_WIDGET(dialog->saveanduse_button), (*text != '\0')); | 834 gtk_widget_set_sensitive(GTK_WIDGET(dialog->saveanduse_button), (*text != '\0')); |
836 gtk_widget_set_sensitive(GTK_WIDGET(dialog->save_button), (*text != '\0')); | 835 gtk_widget_set_sensitive(GTK_WIDGET(dialog->save_button), (*text != '\0')); |
837 } | 836 } |
838 | 837 |
839 enum { | |
840 STATUS_MENU_STOCK_ICON, | |
841 STATUS_MENU_NAME, | |
842 STATUS_MENU_COUNT | |
843 }; | |
844 | |
845 static GtkWidget * | 838 static GtkWidget * |
846 create_status_type_menu(PurpleStatusPrimitive type) | 839 create_status_type_menu(PurpleStatusPrimitive type) |
847 { | 840 { |
848 int i; | 841 int i; |
849 GtkWidget *dropdown; | 842 GtkWidget *dropdown; |
850 GtkListStore *store; | 843 GtkListStore *store; |
851 GtkTreeIter iter; | 844 GtkTreeIter iter; |
852 GtkCellRenderer *renderer; | 845 GtkCellRenderer *renderer; |
853 | 846 |
854 store = gtk_list_store_new(STATUS_MENU_COUNT, G_TYPE_STRING, G_TYPE_STRING); | 847 store = gtk_list_store_new(STATUS_NUM_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); |
855 | 848 |
856 for (i = PURPLE_STATUS_UNSET + 1; i < PURPLE_STATUS_NUM_PRIMITIVES; i++) | 849 for (i = PURPLE_STATUS_UNSET + 1; i < PURPLE_STATUS_NUM_PRIMITIVES; i++) |
857 { | 850 { |
858 if (i == PURPLE_STATUS_MOBILE || i == PURPLE_STATUS_TUNE) | 851 if (i == PURPLE_STATUS_MOBILE || i == PURPLE_STATUS_TUNE) |
859 /* | 852 /* |
861 * status types, so don't show them in the list. | 854 * status types, so don't show them in the list. |
862 */ | 855 */ |
863 continue; | 856 continue; |
864 | 857 |
865 gtk_list_store_append(store, &iter); | 858 gtk_list_store_append(store, &iter); |
866 /* TODO: how's this get the right size (since it seems to work fine)? */ | |
867 gtk_list_store_set(store, &iter, | 859 gtk_list_store_set(store, &iter, |
868 STATUS_MENU_STOCK_ICON, get_stock_icon_from_primitive(i), | 860 STATUS_COLUMN_ICON, get_stock_icon_from_primitive(i), |
869 STATUS_MENU_NAME, purple_primitive_get_name_from_type(i), | 861 STATUS_COLUMN_STATUS_ID, purple_primitive_get_id_from_type(i), |
862 STATUS_COLUMN_STATUS_NAME, purple_primitive_get_name_from_type(i), | |
870 -1); | 863 -1); |
871 } | 864 } |
872 | 865 |
873 dropdown = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store)); | 866 dropdown = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store)); |
874 | 867 |
875 renderer = gtk_cell_renderer_pixbuf_new(); | 868 renderer = gtk_cell_renderer_pixbuf_new(); |
876 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dropdown), renderer, FALSE); | 869 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dropdown), renderer, FALSE); |
877 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(dropdown), renderer, | 870 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(dropdown), renderer, |
878 "stock-id", STATUS_MENU_STOCK_ICON, | 871 "stock-id", STATUS_COLUMN_ICON, |
879 NULL); | 872 NULL); |
880 | 873 |
881 renderer = gtk_cell_renderer_text_new(); | 874 renderer = gtk_cell_renderer_text_new(); |
882 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dropdown), renderer, TRUE); | 875 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dropdown), renderer, TRUE); |
883 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(dropdown), renderer, | 876 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(dropdown), renderer, |
884 "text", STATUS_MENU_NAME, | 877 "text", STATUS_COLUMN_STATUS_NAME, |
885 NULL); | 878 NULL); |
886 | 879 |
887 gtk_combo_box_set_active(GTK_COMBO_BOX(dropdown), | 880 gtk_combo_box_set_active(GTK_COMBO_BOX(dropdown), |
888 type - (PURPLE_STATUS_UNSET + 1)); | 881 type - (PURPLE_STATUS_UNSET + 1)); |
889 | 882 |
1268 PurpleStatusType *type; | 1261 PurpleStatusType *type; |
1269 | 1262 |
1270 if (!gtk_combo_box_get_active_iter(box, &iter)) | 1263 if (!gtk_combo_box_get_active_iter(box, &iter)) |
1271 return; | 1264 return; |
1272 gtk_tree_model_get(GTK_TREE_MODEL(select->model), &iter, | 1265 gtk_tree_model_get(GTK_TREE_MODEL(select->model), &iter, |
1273 SUBSTATUS_COLUMN_STATUS_ID, &id, | 1266 STATUS_COLUMN_STATUS_ID, &id, |
1274 -1); | 1267 -1); |
1275 type = purple_account_get_status_type(select->account, id); | 1268 type = purple_account_get_status_type(select->account, id); |
1276 g_free(id); | 1269 g_free(id); |
1277 | 1270 |
1278 if (purple_status_type_get_attr(type, "message") == NULL) | 1271 if (purple_status_type_get_attr(type, "message") == NULL) |
1359 gtk_widget_destroy(dialog->window); | 1352 gtk_widget_destroy(dialog->window); |
1360 return; | 1353 return; |
1361 } | 1354 } |
1362 | 1355 |
1363 gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, | 1356 gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, |
1364 SUBSTATUS_COLUMN_STATUS_ID, &id, | 1357 STATUS_COLUMN_STATUS_ID, &id, |
1365 -1); | 1358 -1); |
1366 type = purple_account_get_status_type(dialog->account, id); | 1359 type = purple_account_get_status_type(dialog->account, id); |
1367 if (purple_status_type_get_attr(type, "message") != NULL) | 1360 if (purple_status_type_get_attr(type, "message") != NULL) |
1368 message = gtk_imhtml_get_markup(GTK_IMHTML(dialog->message)); | 1361 message = gtk_imhtml_get_markup(GTK_IMHTML(dialog->message)); |
1369 name = purple_status_type_get_name(type); | 1362 name = purple_status_type_get_name(type); |
1449 label = gtk_label_new_with_mnemonic(_("_Status:")); | 1442 label = gtk_label_new_with_mnemonic(_("_Status:")); |
1450 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | 1443 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
1451 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | 1444 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
1452 gtk_size_group_add_widget(sg, label); | 1445 gtk_size_group_add_widget(sg, label); |
1453 | 1446 |
1454 dialog->model = gtk_list_store_new(SUBSTATUS_NUM_COLUMNS, | 1447 dialog->model = gtk_list_store_new(STATUS_NUM_COLUMNS, |
1455 G_TYPE_STRING, | 1448 G_TYPE_STRING, |
1456 G_TYPE_STRING, | 1449 G_TYPE_STRING, |
1457 G_TYPE_STRING); | 1450 G_TYPE_STRING); |
1458 combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(dialog->model)); | 1451 combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(dialog->model)); |
1459 dialog->box = GTK_COMBO_BOX(combo); | 1452 dialog->box = GTK_COMBO_BOX(combo); |
1462 g_object_set(G_OBJECT(rend), | 1455 g_object_set(G_OBJECT(rend), |
1463 "stock-size", gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL), | 1456 "stock-size", gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL), |
1464 NULL); | 1457 NULL); |
1465 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), rend, FALSE); | 1458 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), rend, FALSE); |
1466 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), rend, | 1459 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), rend, |
1467 "stock-id", SUBSTATUS_COLUMN_ICON, NULL); | 1460 "stock-id", STATUS_COLUMN_ICON, NULL); |
1468 | 1461 |
1469 rend = GTK_CELL_RENDERER(gtk_cell_renderer_text_new()); | 1462 rend = GTK_CELL_RENDERER(gtk_cell_renderer_text_new()); |
1470 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), rend, TRUE); | 1463 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), rend, TRUE); |
1471 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), rend, | 1464 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), rend, |
1472 "text", SUBSTATUS_COLUMN_STATUS_NAME, NULL); | 1465 "text", STATUS_COLUMN_STATUS_NAME, NULL); |
1473 | 1466 |
1474 g_signal_connect(G_OBJECT(combo), "changed", | 1467 g_signal_connect(G_OBJECT(combo), "changed", |
1475 G_CALLBACK(substatus_selection_changed_cb), dialog); | 1468 G_CALLBACK(substatus_selection_changed_cb), dialog); |
1476 | 1469 |
1477 gtk_box_pack_start(GTK_BOX(hbox), combo, FALSE, FALSE, 0); | 1470 gtk_box_pack_start(GTK_BOX(hbox), combo, FALSE, FALSE, 0); |
1543 prim = purple_status_type_get_primitive(status_type); | 1536 prim = purple_status_type_get_primitive(status_type); |
1544 name = purple_status_type_get_name(status_type); | 1537 name = purple_status_type_get_name(status_type); |
1545 | 1538 |
1546 gtk_list_store_append(dialog->model, &iter); | 1539 gtk_list_store_append(dialog->model, &iter); |
1547 gtk_list_store_set(dialog->model, &iter, | 1540 gtk_list_store_set(dialog->model, &iter, |
1548 SUBSTATUS_COLUMN_ICON, pidgin_stock_id_from_status_primitive(prim), | 1541 STATUS_COLUMN_ICON, pidgin_stock_id_from_status_primitive(prim), |
1549 SUBSTATUS_COLUMN_STATUS_ID, id, | 1542 STATUS_COLUMN_STATUS_ID, id, |
1550 SUBSTATUS_COLUMN_STATUS_NAME, name, | 1543 STATUS_COLUMN_STATUS_NAME, name, |
1551 -1); | 1544 -1); |
1552 if ((status_id != NULL) && !strcmp(status_id, id)) | 1545 if ((status_id != NULL) && !strcmp(status_id, id)) |
1553 { | 1546 { |
1554 gtk_combo_box_set_active_iter(GTK_COMBO_BOX(combo), &iter); | 1547 gtk_combo_box_set_active_iter(GTK_COMBO_BOX(combo), &iter); |
1555 select = TRUE; | 1548 select = TRUE; |