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++) {
258 GtkTreeViewColumn *col;
264 for (i=0; i<cols; i++)
265 types[i]=G_TYPE_STRING;
266 sto=gtk_list_store_newv(cols, types);
269 while ((col=gtk_tree_view_get_column(GTK_TREE_VIEW(g), 0)))
270 gtk_tree_view_remove_column(GTK_TREE_VIEW(g), col);
273 gtk_tree_view_set_model(GTK_TREE_VIEW(g), GTK_TREE_MODEL(sto));
279 while (*p && i<cols) {
281 GtkCellRenderer *renderer;
287 renderer=gtk_cell_renderer_text_new();
288 col=gtk_tree_view_column_new();
289 gtk_tree_view_column_set_title(col, p);
290 gtk_tree_view_column_pack_start(col, renderer, TRUE);
291 gtk_tree_view_column_set_sort_column_id(col, i);
292 gtk_tree_view_column_set_resizable(col, TRUE);
293 gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_FIXED);
294 gtk_tree_view_column_set_attributes(col, renderer,
"text", i,
NULL);
296 gtk_tree_view_append_column(GTK_TREE_VIEW(g), col);
307 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(g), TRUE);
320 sto=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(g)));
322 gtk_list_store_clear(sto);
329 sto=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(g)));
342 gtk_list_store_append(sto, &iter);
343 while (*p && i<cols) {
347 g_value_init(&val, G_TYPE_STRING);
352 g_value_set_string(&val, p);
353 gtk_list_store_set_value(sto, &iter, i, &val);
374 "Function is not appropriate for this type of widget (%s)",
385 const char *defaultValue)
396 cols=gtk_tree_view_get_columns(GTK_TREE_VIEW(g));
403 le=g_list_first(cols);
409 s=gtk_tree_view_column_get_title(GTK_TREE_VIEW_COLUMN(le->data));
427 path=gtk_tree_path_new_from_indices(index, -1);
432 sto=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(g)));
433 if (gtk_tree_model_get_iter(GTK_TREE_MODEL(sto), &iter, path)) {
436 cols=gtk_tree_view_get_columns(GTK_TREE_VIEW(g));
444 le=g_list_first(cols);
450 gtk_tree_model_get(GTK_TREE_MODEL(sto), &iter, cnt, &s, -1,
NULL);
463 gtk_tree_path_free(path);
468 gtk_tree_path_free(path);
478 "Function is not appropriate for this type of widget (%s)",
509 wParent=GWEN_Widget_Tree_GetParent(w);
511 gScroll=gtk_scrolled_window_new(
NULL,
NULL);
512 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gScroll),
513 GTK_POLICY_AUTOMATIC,
514 GTK_POLICY_AUTOMATIC);
515 g=gtk_tree_view_new();
516 gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(g), TRUE);
520 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
521 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(g), TRUE);
522 G_GNUC_END_IGNORE_DEPRECATIONS
523 gtk_container_add(GTK_CONTAINER(gScroll), GTK_WIDGET(g));
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
#define GWEN_ERROR_INVALID
#define GTK3_DIALOG_WIDGET_REAL
#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...)
static GWENHYWFAR_CB int Gtk3Gui_WListBox_SetIntProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, int value, GWEN_UNUSED int doSignal)
#define GTK3_DIALOG_STRING_VALUE
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
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...)
static void Gtk3Gui_WListBox_CursorChanged_handler(GWEN_UNUSED GtkTreeView *g, gpointer data)
#define GTK3_DIALOG_STRING_TITLE
void Gtk3Gui_Dialog_Leave(GWEN_DIALOG *dlg, int result)
int Gtk3Gui_WListBox_Setup(GWEN_WIDGET *w)
static GWENHYWFAR_CB int Gtk3Gui_WListBox_SetCharProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, GWEN_UNUSED int index, const char *value, GWEN_UNUSED int doSignal)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)