comparison console/gntplugin.c @ 14105:eaf7f35635bc

[gaim-migrate @ 16739] Allow autojoining chat rooms. Sort the buddies in the buddylist, and the plugins in the plugin list. committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sun, 13 Aug 2006 23:30:19 +0000
parents 2d1b41e3cf0d
children 44ec6c7cbc76
comparison
equal deleted inserted replaced
14104:b0566d50291f 14105:eaf7f35635bc
66 plugin->info->name, plugin->info->version, plugin->info->description, 66 plugin->info->name, plugin->info->version, plugin->info->description,
67 plugin->info->author, plugin->info->homepage, plugin->path); 67 plugin->info->author, plugin->info->homepage, plugin->path);
68 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(plugins.aboot), 68 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(plugins.aboot),
69 text, GNT_TEXT_FLAG_NORMAL); 69 text, GNT_TEXT_FLAG_NORMAL);
70 gnt_text_view_scroll(GNT_TEXT_VIEW(plugins.aboot), 0); 70 gnt_text_view_scroll(GNT_TEXT_VIEW(plugins.aboot), 0);
71 g_free(text);
71 } 72 }
72 73
73 static void 74 static void
74 reset_plugin_window(GntWidget *window, gpointer null) 75 reset_plugin_window(GntWidget *window, gpointer null)
75 { 76 {
76 plugins.window = NULL; 77 plugins.window = NULL;
77 plugins.tree = NULL; 78 plugins.tree = NULL;
78 plugins.aboot = NULL; 79 plugins.aboot = NULL;
80 }
81
82 static int
83 plugin_compare(GaimPlugin *p1, GaimPlugin *p2)
84 {
85 char *s1 = g_utf8_strup(p1->info->name, -1);
86 char *s2 = g_utf8_strup(p2->info->name, -1);
87 int ret = g_utf8_collate(s1, s2);
88 g_free(s1);
89 g_free(s2);
90 return ret;
79 } 91 }
80 92
81 void gg_plugins_show_all() 93 void gg_plugins_show_all()
82 { 94 {
83 GntWidget *window, *tree, *box, *aboot; 95 GntWidget *window, *tree, *box, *aboot;
100 gnt_box_add_widget(GNT_BOX(window), box); 112 gnt_box_add_widget(GNT_BOX(window), box);
101 gnt_box_add_widget(GNT_BOX(window), gnt_hline_new()); 113 gnt_box_add_widget(GNT_BOX(window), gnt_hline_new());
102 114
103 gnt_box_set_pad(GNT_BOX(box), 0); 115 gnt_box_set_pad(GNT_BOX(box), 0);
104 plugins.tree = tree = gnt_tree_new(); 116 plugins.tree = tree = gnt_tree_new();
117 gnt_tree_set_compare_func(GNT_TREE(tree), (GCompareFunc)plugin_compare);
105 GNT_WIDGET_SET_FLAGS(tree, GNT_WIDGET_NO_BORDER); 118 GNT_WIDGET_SET_FLAGS(tree, GNT_WIDGET_NO_BORDER);
106 gnt_box_add_widget(GNT_BOX(box), tree); 119 gnt_box_add_widget(GNT_BOX(box), tree);
107 gnt_box_add_widget(GNT_BOX(box), gnt_vline_new()); 120 gnt_box_add_widget(GNT_BOX(box), gnt_vline_new());
108 121
109 plugins.aboot = aboot = gnt_text_view_new(); 122 plugins.aboot = aboot = gnt_text_view_new();
126 gnt_tree_set_col_width(GNT_TREE(tree), 0, 30); 139 gnt_tree_set_col_width(GNT_TREE(tree), 0, 30);
127 g_signal_connect(G_OBJECT(tree), "toggled", G_CALLBACK(plugin_toggled_cb), NULL); 140 g_signal_connect(G_OBJECT(tree), "toggled", G_CALLBACK(plugin_toggled_cb), NULL);
128 g_signal_connect(G_OBJECT(tree), "selection_changed", G_CALLBACK(selection_changed), NULL); 141 g_signal_connect(G_OBJECT(tree), "selection_changed", G_CALLBACK(selection_changed), NULL);
129 g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(reset_plugin_window), NULL); 142 g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(reset_plugin_window), NULL);
130 143
131 gnt_tree_set_selected(GNT_TREE(tree), gaim_plugins_get_all()->data);
132
133 gnt_widget_show(window); 144 gnt_widget_show(window);
134 } 145 }
135 146