11 #define W_LISTBOX_MAX_TYPES 256
28 gtk_widget_set_sensitive(GTK_WIDGET(g), (value==0)?FALSE:TRUE);
32 gtk_widget_grab_focus(GTK_WIDGET(g));
38 path=gtk_tree_path_new_from_indices(value, -1);
39 gtk_tree_view_set_cursor(GTK_TREE_VIEW(g), path,
NULL, FALSE);
40 gtk_tree_path_free(path);
45 GtkTreeSelection *sel;
47 sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(g));
51 gtk_tree_selection_set_mode(sel, GTK_SELECTION_NONE);
54 gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
57 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE);
67 GtkTreeViewColumn *col;
69 col=gtk_tree_view_get_column(GTK_TREE_VIEW(g), index);
71 gtk_tree_view_column_set_fixed_width(col, value);
80 GtkTreeViewColumn *col;
86 for (i=0; i<cols; i++) {
87 col=gtk_tree_view_get_column(GTK_TREE_VIEW(g), index);
89 if (gtk_tree_view_column_get_sort_indicator(col)==TRUE)
90 gtk_tree_view_column_set_sort_indicator(col, FALSE);
96 col=gtk_tree_view_get_column(GTK_TREE_VIEW(g), index);
100 gtk_tree_view_column_set_sort_order(col, GTK_SORT_ASCENDING);
103 gtk_tree_view_column_set_sort_order(col, GTK_SORT_DESCENDING);
117 sto=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(g)));
119 gtk_list_store_clear(sto);
132 "Function is not appropriate for this type of widget (%s)",
152 return (gtk_widget_get_sensitive(GTK_WIDGET(g))==TRUE)?1:0;
155 return (gtk_widget_has_focus(GTK_WIDGET(g))==TRUE)?1:0;
159 GtkTreePath *path=
NULL;
161 gtk_tree_view_get_cursor(GTK_TREE_VIEW(g), &path,
NULL);
165 idxlist=gtk_tree_path_get_indices(path);
170 gtk_tree_path_free(path);
173 gtk_tree_path_free(path);
181 GtkTreeViewColumn *col;
183 col=gtk_tree_view_get_column(GTK_TREE_VIEW(g), index);
185 return gtk_tree_view_column_get_width(col);
192 GtkTreeViewColumn *col;
194 col=gtk_tree_view_get_column(GTK_TREE_VIEW(g), index);
196 if (gtk_tree_view_column_get_sort_indicator(col)==TRUE) {
197 switch(gtk_tree_view_column_get_sort_order(col)) {
198 case GTK_SORT_ASCENDING:
200 case GTK_SORT_DESCENDING:
217 "Function %d is not appropriate for this type of widget (%s)",
239 if (value && *value) {
245 for (i=0; i<l; i++) {
256 GtkTreeViewColumn *col;
262 for (i=0; i<cols; i++)
263 types[i]=G_TYPE_STRING;
264 sto=gtk_list_store_newv(cols, types);
268 while( (col=gtk_tree_view_get_column(GTK_TREE_VIEW(g), 0)) )
269 gtk_tree_view_remove_column(GTK_TREE_VIEW(g), col);
272 gtk_tree_view_set_model(GTK_TREE_VIEW(g), GTK_TREE_MODEL(sto));
278 while(*p && i<cols) {
280 GtkCellRenderer *renderer;
286 renderer=gtk_cell_renderer_text_new();
287 col=gtk_tree_view_column_new();
288 gtk_tree_view_column_set_title(col, p);
289 gtk_tree_view_column_pack_start(col, renderer, TRUE);
290 gtk_tree_view_column_set_sort_column_id(col, i);
291 gtk_tree_view_column_set_resizable(col, TRUE);
292 gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_FIXED);
293 gtk_tree_view_column_set_attributes(col, renderer,
"text", i,
NULL);
295 gtk_tree_view_append_column(GTK_TREE_VIEW(g), col);
306 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(g), TRUE);
319 sto=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(g)));
321 gtk_list_store_clear(sto);
328 sto=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(g)));
341 gtk_list_store_append(sto, &iter);
342 while(*p && i<cols) {
346 g_value_init(&val, G_TYPE_STRING);
351 g_value_set_string(&val, p);
352 gtk_list_store_set_value(sto, &iter, i, &val);
373 "Function is not appropriate for this type of widget (%s)",
384 const char *defaultValue) {
394 cols=gtk_tree_view_get_columns(GTK_TREE_VIEW(g));
401 le=g_list_first(cols);
407 s=gtk_tree_view_column_get_title(GTK_TREE_VIEW_COLUMN(le->data));
425 path=gtk_tree_path_new_from_indices(index, -1);
430 sto=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(g)));
431 if (gtk_tree_model_get_iter(GTK_TREE_MODEL(sto), &iter, path)) {
434 cols=gtk_tree_view_get_columns(GTK_TREE_VIEW(g));
441 le=g_list_first(cols);
447 gtk_tree_model_get(GTK_TREE_MODEL(sto), &iter, cnt, &s, -1,
NULL);
463 gtk_tree_path_free(path);
473 "Function is not appropriate for this type of widget (%s)",
502 gulong changed_handler_id;
505 wParent=GWEN_Widget_Tree_GetParent(w);
507 gScroll=gtk_scrolled_window_new(
NULL,
NULL);
508 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gScroll),
509 GTK_POLICY_AUTOMATIC,
510 GTK_POLICY_AUTOMATIC);
511 g=gtk_tree_view_new();
512 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(g), TRUE);
513 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(g), TRUE);
514 gtk_container_add(GTK_CONTAINER(gScroll), GTK_WIDGET(g));
524 changed_handler_id=g_signal_connect(g,