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++) {
255 GtkTreeViewColumn *col;
261 for (i=0; i<cols; i++)
262 types[i]=G_TYPE_STRING;
263 sto=gtk_list_store_newv(cols, types);
266 while( (col=gtk_tree_view_get_column(GTK_TREE_VIEW(g), 0)) )
267 gtk_tree_view_remove_column(GTK_TREE_VIEW(g), col);
270 gtk_tree_view_set_model(GTK_TREE_VIEW(g), GTK_TREE_MODEL(sto));
276 while(*p && i<cols) {
278 GtkCellRenderer *renderer;
284 renderer=gtk_cell_renderer_text_new();
285 col=gtk_tree_view_column_new();
286 gtk_tree_view_column_set_title(col, p);
287 gtk_tree_view_column_pack_start(col, renderer, TRUE);
288 gtk_tree_view_column_set_sort_column_id(col, i);
289 gtk_tree_view_column_set_resizable(col, TRUE);
290 gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_FIXED);
291 gtk_tree_view_column_set_attributes(col, renderer,
"text", i,
NULL);
293 gtk_tree_view_append_column(GTK_TREE_VIEW(g), col);
304 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(g), TRUE);
317 sto=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(g)));
319 gtk_list_store_clear(sto);
326 sto=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(g)));
339 gtk_list_store_append(sto, &iter);
340 while(*p && i<cols) {
344 g_value_init(&val, G_TYPE_STRING);
349 g_value_set_string(&val, p);
350 gtk_list_store_set_value(sto, &iter, i, &val);
371 "Function is not appropriate for this type of widget (%s)",
382 const char *defaultValue) {
392 cols=gtk_tree_view_get_columns(GTK_TREE_VIEW(g));
399 le=g_list_first(cols);
405 s=gtk_tree_view_column_get_title(GTK_TREE_VIEW_COLUMN(le->data));
423 path=gtk_tree_path_new_from_indices(index, -1);
428 sto=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(g)));
429 if (gtk_tree_model_get_iter(GTK_TREE_MODEL(sto), &iter, path)) {
432 cols=gtk_tree_view_get_columns(GTK_TREE_VIEW(g));
439 le=g_list_first(cols);
445 gtk_tree_model_get(GTK_TREE_MODEL(sto), &iter, cnt, &s, -1,
NULL);
461 gtk_tree_path_free(path);
471 "Function is not appropriate for this type of widget (%s)",
500 wParent=GWEN_Widget_Tree_GetParent(w);
502 gScroll=gtk_scrolled_window_new(
NULL,
NULL);
503 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gScroll),
504 GTK_POLICY_AUTOMATIC,
505 GTK_POLICY_AUTOMATIC);
506 g=gtk_tree_view_new();
507 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(g), TRUE);
511 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
512 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(g), TRUE);
513 G_GNUC_END_IGNORE_DEPRECATIONS
514 gtk_container_add(GTK_CONTAINER(gScroll), GTK_WIDGET(g));
static GWENHYWFAR_CB int Gtk3Gui_WListBox_SetIntProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, int value, int doSignal)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
#define GWEN_ERROR_INVALID
#define GTK3_DIALOG_WIDGET_REAL
static void Gtk3Gui_WListBox_CursorChanged_handler(GtkTreeView *g, gpointer data)
#define GTK3_DIALOG_WIDGET_CONTENT
#define W_LISTBOX_MAX_TYPES
static GWENHYWFAR_CB int Gtk3Gui_WListBox_GetIntProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, int defaultValue)
#define DBG_WARN(dbg_logger, format, args...)
#define GTK3_DIALOG_STRING_VALUE
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
static GWENHYWFAR_CB int Gtk3Gui_WListBox_SetCharProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, const char *value, int doSignal)
int GWEN_Buffer_AppendByte(GWEN_BUFFER *bf, char c)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
static GWENHYWFAR_CB const char * Gtk3Gui_WListBox_GetCharProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, const char *defaultValue)
int GWEN_Dialog_EmitSignal(GWEN_DIALOG *dlg, GWEN_DIALOG_EVENTTYPE t, const char *sender)
#define DBG_ERROR(dbg_logger, format, args...)
#define GTK3_DIALOG_STRING_TITLE
void Gtk3Gui_Dialog_Leave(GWEN_DIALOG *dlg, int result)
int Gtk3Gui_WListBox_Setup(GWEN_WIDGET *w)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)