Mercurial > pidgin.yaz
comparison pidgin/gtksavedstatuses.c @ 31816:917c597beb97
Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
committer: John Bailey <rekkanoryo@rekkanoryo.org>
author | Gabriel Schulhof <nix@go-nix.ca> |
---|---|
date | Sat, 08 Jan 2011 03:45:42 +0000 |
parents | 551253814063 |
children |
comparison
equal
deleted
inserted
replaced
31815:d169a587901f | 31816:917c597beb97 |
---|---|
436 } | 436 } |
437 | 437 |
438 static GtkWidget * | 438 static GtkWidget * |
439 create_saved_status_list(StatusWindow *dialog) | 439 create_saved_status_list(StatusWindow *dialog) |
440 { | 440 { |
441 GtkWidget *sw; | |
442 GtkWidget *treeview; | 441 GtkWidget *treeview; |
443 GtkTreeSelection *sel; | 442 GtkTreeSelection *sel; |
444 GtkTreeViewColumn *column; | 443 GtkTreeViewColumn *column; |
445 GtkCellRenderer *renderer; | 444 GtkCellRenderer *renderer; |
446 | |
447 /* Create the scrolled window */ | |
448 sw = gtk_scrolled_window_new(0, 0); | |
449 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
450 GTK_POLICY_AUTOMATIC, | |
451 GTK_POLICY_ALWAYS); | |
452 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), | |
453 GTK_SHADOW_IN); | |
454 | 445 |
455 /* Create the list model */ | 446 /* Create the list model */ |
456 dialog->model = gtk_list_store_new(STATUS_WINDOW_NUM_COLUMNS, | 447 dialog->model = gtk_list_store_new(STATUS_WINDOW_NUM_COLUMNS, |
457 G_TYPE_STRING, | 448 G_TYPE_STRING, |
458 G_TYPE_STRING, | 449 G_TYPE_STRING, |
469 | 460 |
470 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); | 461 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); |
471 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); | 462 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); |
472 g_signal_connect(G_OBJECT(sel), "changed", | 463 g_signal_connect(G_OBJECT(sel), "changed", |
473 G_CALLBACK(status_selected_cb), dialog); | 464 G_CALLBACK(status_selected_cb), dialog); |
474 | |
475 gtk_container_add(GTK_CONTAINER(sw), treeview); | |
476 | 465 |
477 /* Add columns */ | 466 /* Add columns */ |
478 column = gtk_tree_view_column_new(); | 467 column = gtk_tree_view_column_new(); |
479 gtk_tree_view_column_set_title(column, _("Title")); | 468 gtk_tree_view_column_set_title(column, _("Title")); |
480 gtk_tree_view_column_set_resizable(column, TRUE); | 469 gtk_tree_view_column_set_resizable(column, TRUE); |
525 GTK_SORT_ASCENDING); | 514 GTK_SORT_ASCENDING); |
526 | 515 |
527 /* Populate list */ | 516 /* Populate list */ |
528 populate_saved_status_list(dialog); | 517 populate_saved_status_list(dialog); |
529 | 518 |
530 gtk_widget_show_all(sw); | 519 gtk_widget_show_all(treeview); |
531 | 520 |
532 return sw; | 521 return pidgin_make_scrollable(treeview, GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS, GTK_SHADOW_IN, -1, -1); |
533 } | 522 } |
534 | 523 |
535 static gboolean | 524 static gboolean |
536 configure_cb(GtkWidget *widget, GdkEventConfigure *event, StatusWindow *dialog) | 525 configure_cb(GtkWidget *widget, GdkEventConfigure *event, StatusWindow *dialog) |
537 { | 526 { |
1090 GtkWidget *expander; | 1079 GtkWidget *expander; |
1091 GtkWidget *dropdown; | 1080 GtkWidget *dropdown; |
1092 GtkWidget *entry; | 1081 GtkWidget *entry; |
1093 GtkWidget *frame; | 1082 GtkWidget *frame; |
1094 GtkWidget *hbox; | 1083 GtkWidget *hbox; |
1095 GtkWidget *sw; | |
1096 GtkWidget *text; | 1084 GtkWidget *text; |
1097 GtkWidget *toolbar; | 1085 GtkWidget *toolbar; |
1098 GtkWidget *vbox; | 1086 GtkWidget *vbox; |
1099 GtkWidget *win; | 1087 GtkWidget *win; |
1100 GList *focus_chain = NULL; | 1088 GList *focus_chain = NULL; |
1178 gtk_box_pack_start(GTK_BOX(vbox), expander, FALSE, FALSE, 0); | 1166 gtk_box_pack_start(GTK_BOX(vbox), expander, FALSE, FALSE, 0); |
1179 | 1167 |
1180 /* Setup the box that the expander will cover */ | 1168 /* Setup the box that the expander will cover */ |
1181 dbox = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); | 1169 dbox = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); |
1182 gtk_container_add(GTK_CONTAINER(expander), dbox); | 1170 gtk_container_add(GTK_CONTAINER(expander), dbox); |
1183 | |
1184 /* Different status message treeview */ | |
1185 sw = gtk_scrolled_window_new(NULL, NULL); | |
1186 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
1187 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); | |
1188 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), | |
1189 GTK_SHADOW_IN); | |
1190 gtk_box_pack_start(GTK_BOX(dbox), sw, TRUE, TRUE, 0); | |
1191 | 1171 |
1192 /* Create the list model */ | 1172 /* Create the list model */ |
1193 dialog->model = gtk_list_store_new(STATUS_EDITOR_NUM_COLUMNS, | 1173 dialog->model = gtk_list_store_new(STATUS_EDITOR_NUM_COLUMNS, |
1194 G_TYPE_POINTER, | 1174 G_TYPE_POINTER, |
1195 G_TYPE_POINTER, | 1175 G_TYPE_POINTER, |
1203 | 1183 |
1204 /* Create the treeview */ | 1184 /* Create the treeview */ |
1205 dialog->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(dialog->model)); | 1185 dialog->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(dialog->model)); |
1206 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(dialog->treeview), TRUE); | 1186 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(dialog->treeview), TRUE); |
1207 gtk_widget_set_size_request(dialog->treeview, -1, 150); | 1187 gtk_widget_set_size_request(dialog->treeview, -1, 150); |
1208 gtk_container_add(GTK_CONTAINER(sw), dialog->treeview); | 1188 gtk_box_pack_start(GTK_BOX(dbox), |
1189 pidgin_make_scrollable(dialog->treeview, GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS, GTK_SHADOW_IN, -1, -1), | |
1190 TRUE, TRUE, 0); | |
1209 | 1191 |
1210 /* Add columns */ | 1192 /* Add columns */ |
1211 status_editor_add_columns(dialog); | 1193 status_editor_add_columns(dialog); |
1212 | 1194 |
1213 /* Populate list */ | 1195 /* Populate list */ |