Mercurial > pidgin
comparison src/gtksavedstatuses.c @ 12199:0a549a454d8e
[gaim-migrate @ 14501]
fixed up.
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Wed, 23 Nov 2005 21:26:47 +0000 |
parents | d040123d2b69 |
children | 3294e27cb54a |
comparison
equal
deleted
inserted
replaced
12198:9679b615edb8 | 12199:0a549a454d8e |
---|---|
366 gtk_list_store_clear(dialog->model); | 366 gtk_list_store_clear(dialog->model); |
367 | 367 |
368 for (saved_statuses = gaim_savedstatuses_get_all(); saved_statuses != NULL; | 368 for (saved_statuses = gaim_savedstatuses_get_all(); saved_statuses != NULL; |
369 saved_statuses = g_list_next(saved_statuses)) | 369 saved_statuses = g_list_next(saved_statuses)) |
370 { | 370 { |
371 add_status_to_saved_status_list(dialog->model, saved_statuses->data); | 371 add_status_to_saved_status_list(dialog->model, saved_statuses->data); |
372 } | 372 } |
373 } | 373 } |
374 | 374 |
375 static gboolean | 375 static gboolean |
376 search_func(GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer search_data) | 376 search_func(GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer search_data) |
747 gtk_widget_destroy(dialog->window); | 747 gtk_widget_destroy(dialog->window); |
748 g_free(dialog->original_title); | 748 g_free(dialog->original_title); |
749 g_free(dialog); | 749 g_free(dialog); |
750 | 750 |
751 if (status_window != NULL) | 751 if (status_window != NULL) |
752 add_status_to_saved_status_list(status_window->model, saved_status); | 752 add_status_to_saved_status_list(status_window->model, saved_status); |
753 } | 753 } |
754 | 754 |
755 static void | 755 static void |
756 editor_title_changed_cb(GtkWidget *widget, gpointer user_data) | 756 editor_title_changed_cb(GtkWidget *widget, gpointer user_data) |
757 { | 757 { |
1454 * Utilities * | 1454 * Utilities * |
1455 **************************************************************************/ | 1455 **************************************************************************/ |
1456 | 1456 |
1457 void status_menu_cb(GtkComboBox *widget, void(*callback)(GaimSavedStatus*)) | 1457 void status_menu_cb(GtkComboBox *widget, void(*callback)(GaimSavedStatus*)) |
1458 { | 1458 { |
1459 GtkTreeIter iter; | 1459 callback(gaim_savedstatus_find(gtk_combo_box_get_active_text(widget))); |
1460 char *title; | |
1461 gtk_combo_box_get_active_iter(GTK_COMBO_BOX(widget), &iter); | |
1462 gtk_tree_model_get(gtk_combo_box_get_model(GTK_COMBO_BOX(widget)), &iter, | |
1463 STATUS_WINDOW_COLUMN_TITLE, &title, | |
1464 -1); | |
1465 callback(gaim_savedstatus_find(title)); | |
1466 } | 1460 } |
1467 | 1461 |
1468 GtkWidget *gaim_gtk_status_menu(GaimSavedStatus *current_status, GCallback callback) | 1462 GtkWidget *gaim_gtk_status_menu(GaimSavedStatus *current_status, GCallback callback) |
1469 { | 1463 { |
1470 GtkWidget *combobox; | 1464 GtkWidget *combobox; |
1471 const GList *saved_statuses; | 1465 const GList *saved_statuses; |
1472 GtkCellRenderer *rend; | |
1473 int i; | 1466 int i; |
1474 int index = -1; | 1467 int index = -1; |
1475 GtkListStore *ls = gtk_list_store_new(STATUS_WINDOW_NUM_COLUMNS, | |
1476 G_TYPE_STRING, | |
1477 G_TYPE_STRING, | |
1478 G_TYPE_STRING); | |
1479 | 1468 |
1469 combobox = gtk_combo_box_new_text(); | |
1480 | 1470 |
1481 for (saved_statuses = gaim_savedstatuses_get_all(), i = 0; | 1471 for (saved_statuses = gaim_savedstatuses_get_all(), i = 0; |
1482 saved_statuses != NULL; | 1472 saved_statuses != NULL; |
1483 saved_statuses = g_list_next(saved_statuses), i++) { | 1473 saved_statuses = g_list_next(saved_statuses)) { |
1484 add_status_to_saved_status_list(ls, saved_statuses->data); | 1474 GaimSavedStatus *status = (GaimSavedStatus*)saved_statuses->data; |
1485 if (saved_statuses->data == current_status) | 1475 if (!gaim_savedstatus_is_transient(status)) { |
1486 index = i; | 1476 gtk_combo_box_append_text(GTK_COMBO_BOX(combobox), |
1487 } | 1477 gaim_savedstatus_get_title(status)); |
1488 | 1478 if (status == current_status) |
1489 combobox = gtk_combo_box_new_with_model(GTK_TREE_MODEL(ls)); | 1479 index = i; |
1490 rend = gtk_cell_renderer_text_new(); | 1480 i++; |
1491 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combobox), rend, TRUE); | 1481 } |
1492 gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combobox), rend, "text", | 1482 } |
1493 STATUS_WINDOW_COLUMN_TITLE); | |
1494 #if GTK_CHECK_VERSION(2,6,0) | |
1495 g_object_set(rend, "ellipsize", PANGO_ELLIPSIZE_END, NULL); | |
1496 #endif | |
1497 | 1483 |
1498 gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), index); | 1484 gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), index); |
1499 g_signal_connect(G_OBJECT(combobox), "changed", G_CALLBACK(status_menu_cb), callback); | 1485 g_signal_connect(G_OBJECT(combobox), "changed", G_CALLBACK(status_menu_cb), callback); |
1500 return combobox; | 1486 return combobox; |
1501 } | 1487 } |