pidgin/gtksmiley-manager.c

changeset 35722
1177d6b4c769
parent 35720
863f87bfc06e
child 35723
63d3826975d9
equal deleted inserted replaced
35721:abae078d0525 35722:1177d6b4c769
63 } SmileyEditDialog; 63 } SmileyEditDialog;
64 64
65 typedef struct 65 typedef struct
66 { 66 {
67 GtkDialog *window; 67 GtkDialog *window;
68
69 GtkWidget *treeview;
70 GtkListStore *model; 68 GtkListStore *model;
69 GtkTreeView *tree;
70
71 PurpleHttpConnection *running_request; 71 PurpleHttpConnection *running_request;
72 } SmileyManager; 72 } SmileyManager;
73 73
74 #if 0
75 enum 74 enum
76 { 75 {
77 ICON, 76 SMILEY_LIST_MODEL_ICON,
78 SHORTCUT, 77 SMILEY_LIST_MODEL_SHORTCUT,
79 SMILEY, 78 SMILEY_LIST_MODEL_PURPLESMILEY,
80 N_COL 79 SMILEY_LIST_MODEL_N_COL
81 }; 80 };
82 #endif
83 81
84 static SmileyManager *smiley_manager = NULL; 82 static SmileyManager *smiley_manager = NULL;
85 83
86 /****************************************************************************** 84 /******************************************************************************
87 * New routines (TODO) 85 * New routines (TODO)
509 507
510 508
511 /****************************************************************************** 509 /******************************************************************************
512 * The Smiley Manager 510 * The Smiley Manager
513 *****************************************************************************/ 511 *****************************************************************************/
514 #if 0
515 static void add_columns(GtkWidget *treeview, SmileyManager *dialog)
516 {
517 GtkCellRenderer *rend;
518 GtkTreeViewColumn *column;
519
520 /* Icon */
521 column = gtk_tree_view_column_new();
522 gtk_tree_view_column_set_title(column, _("Smiley"));
523 gtk_tree_view_column_set_resizable(column, TRUE);
524 gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
525
526 rend = gtk_cell_renderer_pixbuf_new();
527 gtk_tree_view_column_pack_start(column, rend, FALSE);
528 gtk_tree_view_column_add_attribute(column, rend, "pixbuf", ICON);
529
530 /* Shortcut Text */
531 column = gtk_tree_view_column_new();
532 gtk_tree_view_column_set_title(column, _("Shortcut Text"));
533 gtk_tree_view_column_set_resizable(column, TRUE);
534 gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
535
536 rend = gtk_cell_renderer_text_new();
537 gtk_tree_view_column_pack_start(column, rend, TRUE);
538 gtk_tree_view_column_add_attribute(column, rend, "text", SHORTCUT);
539 }
540 #endif
541 512
542 #if 0 513 #if 0
543 static void store_smiley_add(PurpleSmiley *smiley) 514 static void store_smiley_add(PurpleSmiley *smiley)
544 { 515 {
545 GtkTreeIter iter; 516 GtkTreeIter iter;
722 693
723 gtk_drag_finish(dc, FALSE, FALSE, t); 694 gtk_drag_finish(dc, FALSE, FALSE, t);
724 } 695 }
725 #endif 696 #endif
726 697
727 #if 0 698 static GtkWidget *pidgin_smiley_manager_list_create(SmileyManager *manager)
728 static GtkWidget *smiley_list_create(SmileyManager *dialog) 699 {
729 { 700 GtkTreeView *tree;
730 GtkWidget *treeview;
731 GtkTreeSelection *sel; 701 GtkTreeSelection *sel;
732 GtkTargetEntry te[3] = { 702 GtkCellRenderer *cellrend;
703 GtkTreeViewColumn *column;
704 #if 0
705 GtkTargetEntry targets[3] = {
733 {"text/plain", 0, 0}, 706 {"text/plain", 0, 0},
734 {"text/uri-list", 0, 1}, 707 {"text/uri-list", 0, 1},
735 {"STRING", 0, 2} 708 {"STRING", 0, 2}
736 }; 709 };
737 710 #endif
738 /* Create the list model */ 711
739 dialog->model = gtk_list_store_new(N_COL, 712 manager->model = gtk_list_store_new(SMILEY_LIST_MODEL_N_COL,
740 GDK_TYPE_PIXBUF, /* ICON */ 713 GDK_TYPE_PIXBUF, /* icon */
741 G_TYPE_STRING, /* SHORTCUT */ 714 G_TYPE_STRING, /* shortcut */
742 G_TYPE_OBJECT /* SMILEY */ 715 G_TYPE_OBJECT /* PurpleSmiley */
743 ); 716 );
744 717
745 /* the actual treeview */ 718 manager->tree = tree = GTK_TREE_VIEW(gtk_tree_view_new_with_model(
746 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(dialog->model)); 719 GTK_TREE_MODEL(manager->model)));
747 dialog->treeview = treeview; 720
748 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE); 721 gtk_tree_view_set_rules_hint(tree, TRUE);
749 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(dialog->model), SHORTCUT, GTK_SORT_ASCENDING); 722 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(manager->model),
750 g_object_unref(G_OBJECT(dialog->model)); 723 SMILEY_LIST_MODEL_SHORTCUT, GTK_SORT_ASCENDING);
751 724
752 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); 725 g_object_unref(manager->model);
726
727 sel = gtk_tree_view_get_selection(tree);
753 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); 728 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE);
754 729
755 g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(smile_selected_cb), dialog); 730 // g_signal_connect(sel, "changed",
756 g_signal_connect(G_OBJECT(treeview), "row_activated", G_CALLBACK(smiley_edit_cb), dialog); 731 // G_CALLBACK(smile_selected_cb), manager);
757 732 // g_signal_connect(tree, "row_activated",
758 gtk_drag_dest_set(treeview, 733 // G_CALLBACK(smiley_edit_cb), manager);
759 GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, 734
760 te, G_N_ELEMENTS(te), GDK_ACTION_COPY | GDK_ACTION_MOVE); 735 #if 0
761 g_signal_connect(G_OBJECT(treeview), "drag_data_received", G_CALLBACK(smiley_dnd_recv), dialog); 736 gtk_drag_dest_set(GTK_WIDGET(tree), GTK_DEST_DEFAULT_MOTION |
762 737 GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP,
763 gtk_widget_show(treeview); 738 targets, G_N_ELEMENTS(targets),
764 739 GDK_ACTION_COPY | GDK_ACTION_MOVE);
765 add_columns(treeview, dialog); 740 g_signal_connect(tree, "drag_data_received",
766 populate_smiley_list(dialog); 741 G_CALLBACK(smiley_dnd_recv), manager);
767 742 #endif
768 return pidgin_make_scrollable(treeview, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC, GTK_SHADOW_IN, -1, -1); 743
769 } 744 gtk_widget_show(GTK_WIDGET(tree));
770 #endif 745
746 /* setting up columns */
747
748 column = gtk_tree_view_column_new();
749 gtk_tree_view_column_set_title(column, _("Smiley"));
750 gtk_tree_view_column_set_resizable(column, TRUE);
751 gtk_tree_view_append_column(tree, column);
752 cellrend = gtk_cell_renderer_pixbuf_new();
753 gtk_tree_view_column_pack_start(column, cellrend, FALSE);
754 gtk_tree_view_column_add_attribute(column, cellrend,
755 "pixbuf", SMILEY_LIST_MODEL_ICON);
756
757 column = gtk_tree_view_column_new();
758 gtk_tree_view_column_set_title(column, _("Shortcut Text"));
759 gtk_tree_view_column_set_resizable(column, TRUE);
760 gtk_tree_view_append_column(tree, column);
761 cellrend = gtk_cell_renderer_text_new();
762 gtk_tree_view_column_pack_start(column, cellrend, TRUE);
763 gtk_tree_view_column_add_attribute(column, cellrend,
764 "text", SMILEY_LIST_MODEL_SHORTCUT);
765
766 // populate_smiley_list(dialog);
767
768 return pidgin_make_scrollable(GTK_WIDGET(tree), GTK_POLICY_AUTOMATIC,
769 GTK_POLICY_AUTOMATIC, GTK_SHADOW_IN, -1, -1);
770 }
771 771
772 #if 0 772 #if 0
773 static void refresh_list() 773 static void refresh_list()
774 { 774 {
775 populate_smiley_list(smiley_manager); 775 populate_smiley_list(smiley_manager);
815 void 815 void
816 pidgin_smiley_manager_show(void) 816 pidgin_smiley_manager_show(void)
817 { 817 {
818 SmileyManager *manager; 818 SmileyManager *manager;
819 GtkDialog *win; 819 GtkDialog *win;
820 #if 0 820 GtkWidget *sw, *vbox;
821 GtkWidget *sw;
822 #endif
823 GtkWidget *vbox;
824 821
825 if (smiley_manager) { 822 if (smiley_manager) {
826 gtk_window_present(GTK_WINDOW(smiley_manager->window)); 823 gtk_window_present(GTK_WINDOW(smiley_manager->window));
827 return; 824 return;
828 } 825 }
851 G_CALLBACK(smiley_manager_select_cb), manager); 848 G_CALLBACK(smiley_manager_select_cb), manager);
852 849
853 /* The vbox */ 850 /* The vbox */
854 vbox = gtk_dialog_get_content_area(win); 851 vbox = gtk_dialog_get_content_area(win);
855 852
856 #if 0
857 /* get the scrolled window with all stuff */ 853 /* get the scrolled window with all stuff */
858 sw = smiley_list_create(manager); 854 sw = pidgin_smiley_manager_list_create(manager);
859 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); 855 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
860 gtk_widget_show(sw); 856 gtk_widget_show(sw);
861 #endif
862 857
863 gtk_widget_show(GTK_WIDGET(win)); 858 gtk_widget_show(GTK_WIDGET(win));
864 } 859 }

mercurial