11#define W_LISTBOX_MAX_TYPES 256
29 gtk_widget_set_sensitive(GTK_WIDGET(g), (value==0)?FALSE:TRUE);
33 gtk_widget_grab_focus(GTK_WIDGET(g));
39 path=gtk_tree_path_new_from_indices(value, -1);
40 gtk_tree_view_set_cursor(GTK_TREE_VIEW(g), path,
NULL, FALSE);
41 gtk_tree_path_free(path);
46 GtkTreeSelection *sel;
48 sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(g));
52 gtk_tree_selection_set_mode(sel, GTK_SELECTION_NONE);
55 gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
58 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE);
68 GtkTreeViewColumn *col;
70 col=gtk_tree_view_get_column(GTK_TREE_VIEW(g), index);
72 gtk_tree_view_column_set_fixed_width(col, value);
81 GtkTreeViewColumn *col;
87 for (i=0; i<cols; i++) {
88 col=gtk_tree_view_get_column(GTK_TREE_VIEW(g), index);
90 if (gtk_tree_view_column_get_sort_indicator(col)==TRUE)
91 gtk_tree_view_column_set_sort_indicator(col, FALSE);
97 col=gtk_tree_view_get_column(GTK_TREE_VIEW(g), index);
101 gtk_tree_view_column_set_sort_order(col, GTK_SORT_ASCENDING);
104 gtk_tree_view_column_set_sort_order(col, GTK_SORT_DESCENDING);
118 sto=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(g)));
120 gtk_list_store_clear(sto);
133 "Function is not appropriate for this type of widget (%s)",
154 return (gtk_widget_get_sensitive(GTK_WIDGET(g))==TRUE)?1:0;
157 return (gtk_widget_has_focus(GTK_WIDGET(g))==TRUE)?1:0;
161 GtkTreePath *path=
NULL;
163 gtk_tree_view_get_cursor(GTK_TREE_VIEW(g), &path,
NULL);
167 idxlist=gtk_tree_path_get_indices(path);
172 gtk_tree_path_free(path);
175 gtk_tree_path_free(path);
183 GtkTreeViewColumn *col;
185 col=gtk_tree_view_get_column(GTK_TREE_VIEW(g), index);
187 return gtk_tree_view_column_get_width(col);
194 GtkTreeViewColumn *col;
196 col=gtk_tree_view_get_column(GTK_TREE_VIEW(g), index);
198 if (gtk_tree_view_column_get_sort_indicator(col)==TRUE) {
199 switch (gtk_tree_view_column_get_sort_order(col)) {
200 case GTK_SORT_ASCENDING:
202 case GTK_SORT_DESCENDING:
219 "Function %d is not appropriate for this type of widget (%s)",
242 if (value && *value) {
248 for (i=0; i<l; i++) {
259 GtkTreeViewColumn *col;
265 for (i=0; i<cols; i++)
266 types[i]=G_TYPE_STRING;
267 sto=gtk_list_store_newv(cols, types);
271 while ((col=gtk_tree_view_get_column(GTK_TREE_VIEW(g), 0)))
272 gtk_tree_view_remove_column(GTK_TREE_VIEW(g), col);
275 gtk_tree_view_set_model(GTK_TREE_VIEW(g), GTK_TREE_MODEL(sto));
281 while (*p && i<cols) {
283 GtkCellRenderer *renderer;
289 renderer=gtk_cell_renderer_text_new();
290 col=gtk_tree_view_column_new();
291 gtk_tree_view_column_set_title(col, p);
292 gtk_tree_view_column_pack_start(col, renderer, TRUE);
293 gtk_tree_view_column_set_sort_column_id(col, i);
294 gtk_tree_view_column_set_resizable(col, TRUE);
295 gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_FIXED);
296 gtk_tree_view_column_set_attributes(col, renderer,
"text", i,
NULL);
298 gtk_tree_view_append_column(GTK_TREE_VIEW(g), col);
309 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(g), TRUE);
322 sto=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(g)));
324 gtk_list_store_clear(sto);
331 sto=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(g)));
344 gtk_list_store_append(sto, &iter);
345 while (*p && i<cols) {
349 g_value_init(&val, G_TYPE_STRING);
354 g_value_set_string(&val, p);
355 gtk_list_store_set_value(sto, &iter, i, &val);
376 "Function is not appropriate for this type of widget (%s)",
387 const char *defaultValue)
398 cols=gtk_tree_view_get_columns(GTK_TREE_VIEW(g));
405 le=g_list_first(cols);
411 s=gtk_tree_view_column_get_title(GTK_TREE_VIEW_COLUMN(le->data));
429 path=gtk_tree_path_new_from_indices(index, -1);
434 sto=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(g)));
435 if (gtk_tree_model_get_iter(GTK_TREE_MODEL(sto), &iter, path)) {
438 cols=gtk_tree_view_get_columns(GTK_TREE_VIEW(g));
445 le=g_list_first(cols);
451 gtk_tree_model_get(GTK_TREE_MODEL(sto), &iter, cnt, &s, -1,
NULL);
467 gtk_tree_path_free(path);
477 "Function is not appropriate for this type of widget (%s)",
511 wParent=GWEN_Widget_Tree_GetParent(w);
513 gScroll=gtk_scrolled_window_new(
NULL,
NULL);
514 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gScroll),
515 GTK_POLICY_AUTOMATIC,
516 GTK_POLICY_AUTOMATIC);
517 g=gtk_tree_view_new();
518 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(g), TRUE);
519 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(g), TRUE);
520 gtk_container_add(GTK_CONTAINER(gScroll), GTK_WIDGET(g));
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
int GWEN_Buffer_AppendByte(GWEN_BUFFER *bf, char c)
#define DBG_ERROR(dbg_logger, format,...)
#define DBG_WARN(dbg_logger, format,...)
int GWEN_Dialog_EmitSignal(GWEN_DIALOG *dlg, GWEN_DIALOG_EVENTTYPE t, const char *sender)
@ GWEN_DialogSortDirection_None
@ GWEN_DialogSortDirection_Up
@ GWEN_DialogSortDirection_Down
@ GWEN_DialogProperty_AddValue
@ GWEN_DialogProperty_ColumnWidth
@ GWEN_DialogProperty_Title
@ GWEN_DialogProperty_Sort
@ GWEN_DialogProperty_ClearValues
@ GWEN_DialogProperty_SelectionMode
@ GWEN_DialogProperty_SortDirection
@ GWEN_DialogProperty_Enabled
@ GWEN_DialogProperty_Value
@ GWEN_DialogProperty_Focus
@ GWEN_DialogEvent_TypeActivated
@ GWEN_DialogEvent_ResultAccept
@ GWEN_DialogEvent_ResultReject
@ GWEN_Dialog_SelectionMode_None
@ GWEN_Dialog_SelectionMode_Multi
@ GWEN_Dialog_SelectionMode_Single
#define GWEN_ERROR_INVALID
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
static void Gtk2Gui_WListBox_CursorChanged_handler(GWEN_UNUSED GtkTreeView *g, gpointer data)
int Gtk2Gui_WListBox_Setup(GWEN_WIDGET *w)
static GWENHYWFAR_CB const char * Gtk2Gui_WListBox_GetCharProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, const char *defaultValue)
static GWENHYWFAR_CB int Gtk2Gui_WListBox_GetIntProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, int defaultValue)
static GWENHYWFAR_CB int Gtk2Gui_WListBox_SetIntProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, int value, GWEN_UNUSED int doSignal)
static GWENHYWFAR_CB int Gtk2Gui_WListBox_SetCharProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, GWEN_UNUSED int index, const char *value, GWEN_UNUSED int doSignal)
#define GTK2_DIALOG_WIDGET_REAL
#define GTK2_DIALOG_WIDGET_CONTENT
#define GTK2_DIALOG_STRING_TITLE
#define GTK2_DIALOG_STRING_VALUE
void Gtk2Gui_Dialog_Leave(GWEN_DIALOG *dlg, int result)
#define W_LISTBOX_MAX_TYPES