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;