static void callback_header_clicked(GtkWidget* widget, GdkEventButton* event, gpointer column) { if(event->type==GDK_BUTTON_PRESS) { if(event->button==3) /* Right click. */ { gtk_menu_popup(GTK_MENU(g_MainWindow.romHeaderMenu), NULL, NULL, NULL, NULL, event->button, event->time); } else if(event->button==1) /* Left click. */ { if(g_MainWindow.romSortColumn==gtk_tree_view_column_get_sort_column_id(column)) g_MainWindow.romSortType = (g_MainWindow.romSortType==GTK_SORT_ASCENDING) ? GTK_SORT_DESCENDING : GTK_SORT_ASCENDING; else { g_MainWindow.romSortColumn = gtk_tree_view_column_get_sort_column_id(column); g_MainWindow.romSortType = GTK_SORT_ASCENDING; } config_put_number("RomSortColumn", g_MainWindow.romSortColumn); config_put_number("RomSortType", g_MainWindow.romSortType); apply_filter(); } } }
static void field_toggled (const gchar *child_schema, GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { GtkTreeModel *model = static_cast<GtkTreeModel*>(data); GtkTreePath *path = gtk_tree_path_new_from_string (path_str); GtkTreeIter iter; GtkTreeViewColumn *column; gboolean toggled; GSettings *settings = g_settings_get_child (ProcData::get_instance()->settings, child_schema); gchar *key; int id; if (!path) return; gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, 2, &column, -1); toggled = gtk_cell_renderer_toggle_get_active (cell); gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, !toggled, -1); gtk_tree_view_column_set_visible (column, !toggled); id = gtk_tree_view_column_get_sort_column_id (column); key = g_strdup_printf ("col-%d-visible", id); g_settings_set_boolean (settings, key, !toggled); g_free (key); gtk_tree_path_free (path); }
static GtkTreePath* get_drop_path(FmFolderView* fv, gint x, gint y) { GtkTreePath* tp = NULL; gboolean droppable = TRUE; switch(fv->mode) { case FM_FV_LIST_VIEW: { GtkTreeViewDropPosition pos; GtkTreeViewColumn* col; gtk_tree_view_convert_widget_to_bin_window_coords(GTK_TREE_VIEW(fv->view), x, y, &x, &y); /* if(gtk_tree_view_get_dest_row_at_pos((GtkTreeView*)fv->view, x, y, &tp, NULL)) */ if(gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(fv->view), x, y, &tp, &col, NULL, NULL)) { if(gtk_tree_view_column_get_sort_column_id(col)!=COL_FILE_NAME) { gtk_tree_path_free(tp); tp = NULL; } } gtk_tree_view_set_drag_dest_row(GTK_TREE_VIEW(fv->view), tp, GTK_TREE_VIEW_DROP_INTO_OR_AFTER); break; } case FM_FV_ICON_VIEW: case FM_FV_COMPACT_VIEW: case FM_FV_THUMBNAIL_VIEW: { tp = exo_icon_view_get_path_at_pos((const struct ExoIconView *)(const struct ExoIconView *)fv->view, x, y); exo_icon_view_set_drag_dest_item(EXO_ICON_VIEW(fv->view), tp, EXO_ICON_VIEW_DROP_INTO); break; } } return tp; }
/** * \internal */ gboolean __category_edit_on_query_tooltip(GtkTreeView * tree_view, GtkTooltip * tooltip, GtkTreeIter * iter, GtkTreeViewColumn * column, CategoryEdit * category_edit) { gchar *stock; gtk_tree_model_get(GTK_TREE_MODEL(GEBR_GUI_SEQUENCE_EDIT(category_edit)->list_store), iter, 1, &stock, -1); if (stock == NULL) return FALSE; if (gtk_tree_view_column_get_sort_column_id(column) != 1) return FALSE; gchar *name; gtk_tree_model_get(GTK_TREE_MODEL(GEBR_GUI_SEQUENCE_EDIT(category_edit)->list_store), iter, 0, &name, -1); GebrValidateCase *validate_case = gebr_validate_get_validate_case(GEBR_VALIDATE_CASE_CATEGORY); GString *tooltip_string = g_string_new(""); gboolean can_fix; gchar *fixes = gebr_validate_case_automatic_fixes_msg(validate_case, name, &can_fix); g_string_printf(tooltip_string, "%s\n\n%s", gebr_validate_case_get_message (validate_case), fixes); g_free(fixes); gtk_tooltip_set_markup(tooltip, tooltip_string->str); g_string_free(tooltip_string, TRUE); g_free(stock); g_free(name); return TRUE; }
static gboolean tree_view_on_button_pressed(GtkTreeView * tree_view, GdkEventButton * event, CategoryEdit * category_edit) { if (event->button != 1) return FALSE; GtkTreePath *path; GtkTreeViewColumn *column; /* Get tree path for row that was clicked */ if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tree_view), (gint) event->x, (gint) event->y, &path, &column, NULL, NULL)) { if (gtk_tree_view_column_get_sort_column_id(column) == 1) { GtkTreeIter iter; gchar *stock; GebrGeoXmlValueSequence *category; gtk_tree_model_get_iter(GTK_TREE_MODEL(GEBR_GUI_SEQUENCE_EDIT(category_edit)->list_store), &iter, path); gtk_tree_model_get(GTK_TREE_MODEL(GEBR_GUI_SEQUENCE_EDIT(category_edit)->list_store), &iter, 1, &stock, 2, &category, -1); if (stock) { GebrValidateCase *validate_case = gebr_validate_get_validate_case(GEBR_VALIDATE_CASE_CATEGORY); gchar *fix = gebr_validate_case_fix(validate_case, gebr_geoxml_value_sequence_get(category)); gtk_list_store_set(GEBR_GUI_SEQUENCE_EDIT(category_edit)->list_store, &iter, 0, fix, 1, stock, -1); gebr_geoxml_value_sequence_set(GEBR_GEOXML_VALUE_SEQUENCE(category), fix); __category_edit_validate_iter(category_edit, &iter); g_signal_emit_by_name(category_edit, "changed"); g_free(fix); g_free(stock); } } gtk_tree_path_free(path); } return FALSE; }
/* notes_note_cursor_changed */ void notes_note_cursor_changed(Notes * notes) { GtkTreeModel * model = GTK_TREE_MODEL(notes->store); GtkTreePath * path = NULL; GtkTreeViewColumn * column = NULL; GtkTreeIter iter; Note * note = NULL; gint id = -1; gtk_tree_view_get_cursor(GTK_TREE_VIEW(notes->view), &path, &column); if(path == NULL) return; gtk_tree_model_get_iter(model, &iter, path); gtk_tree_model_get(model, &iter, ND_COL_NOTE, ¬e, -1); if(column != NULL) id = gtk_tree_view_column_get_sort_column_id(column); gtk_tree_path_free(path); }
GtkTreeViewColumn * gsearchtool_gtk_tree_view_get_column_with_sort_column_id (GtkTreeView * treeview, gint id) { GtkTreeViewColumn * col = NULL; GList * columns; GList * it; columns = gtk_tree_view_get_columns (treeview); for (it = columns; it; it = it->next) { if (gtk_tree_view_column_get_sort_column_id (it->data) == id) { col = it->data; break; } } g_list_free (columns); return col; }
GSList * gsearchtool_get_columns_order (GtkTreeView * treeview) { GSList *order = NULL; GList * columns; GList * col; columns = gtk_tree_view_get_columns (treeview); for (col = columns; col; col = col->next) { gint id; id = gtk_tree_view_column_get_sort_column_id (col->data); order = g_slist_prepend (order, GINT_TO_POINTER (id)); } g_list_free (columns); order = g_slist_reverse (order); return order; }
static gboolean save_column_width (gpointer data) { gint width; gchar *key; int id; GSettings *settings; settings = g_settings_get_child (G_SETTINGS (data), "disktreenew"); id = gtk_tree_view_column_get_sort_column_id (current_column); width = gtk_tree_view_column_get_width (current_column); key = g_strdup_printf ("col-%d-width", id); g_settings_set_int(settings, key, width); g_free (key); if (timeout_id) { g_source_remove (timeout_id); timeout_id = 0; } return FALSE; }
static VALUE tvc_get_sort_column_id(VALUE self) { return INT2NUM(gtk_tree_view_column_get_sort_column_id(_SELF(self))); }
/** * Print a column's title. * @param column tree view column to print information about */ void mk_print_GtkTreeViewColumn_info(GtkTreeViewColumn* column) { const gchar* title = gtk_tree_view_column_get_title(column); gint sort_column_id = gtk_tree_view_column_get_sort_column_id(column); g_printf("\t%d\t%s", sort_column_id, title); }
static GtkWidget * create_field_page(GtkWidget *tree, const gchar *child_schema, const gchar *text) { GtkWidget *vbox; GtkWidget *scrolled; GtkWidget *label; GtkWidget *treeview; GList *it, *columns; GtkListStore *model; GtkTreeViewColumn *column; GtkCellRenderer *cell; vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); label = gtk_label_new_with_mnemonic (text); gtk_label_set_xalign (GTK_LABEL (label), 0.0); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox), scrolled, TRUE, TRUE, 0); model = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER); treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (model)); gtk_container_add (GTK_CONTAINER (scrolled), treeview); g_object_unref (G_OBJECT (model)); gtk_label_set_mnemonic_widget (GTK_LABEL (label), treeview); column = gtk_tree_view_column_new (); cell = gtk_cell_renderer_toggle_new (); gtk_tree_view_column_pack_start (column, cell, FALSE); gtk_tree_view_column_set_attributes (column, cell, "active", 0, NULL); if (g_strcmp0 (child_schema, "proctree") == 0) g_signal_connect (G_OBJECT (cell), "toggled", G_CALLBACK (proc_field_toggled), model); else if (g_strcmp0 (child_schema, "disktreenew") == 0) g_signal_connect (G_OBJECT (cell), "toggled", G_CALLBACK (disk_field_toggled), model); gtk_tree_view_column_set_clickable (column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); column = gtk_tree_view_column_new (); cell = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column, cell, FALSE); gtk_tree_view_column_set_attributes (column, cell, "text", 1, NULL); gtk_tree_view_column_set_title (column, "Not Shown"); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE); columns = gtk_tree_view_get_columns (GTK_TREE_VIEW (tree)); for(it = columns; it; it = it->next) { GtkTreeViewColumn *column = static_cast<GtkTreeViewColumn*>(it->data); GtkTreeIter iter; const gchar *title; gboolean visible; gint column_id; title = gtk_tree_view_column_get_title (column); if (!title) title = _("Icon"); column_id = gtk_tree_view_column_get_sort_column_id(column); if ((column_id == COL_CGROUP) && (!cgroups_enabled())) continue; if ((column_id == COL_UNIT || column_id == COL_SESSION || column_id == COL_SEAT || column_id == COL_OWNER) #ifdef HAVE_SYSTEMD && !LOGIND_RUNNING() #endif ) continue; visible = gtk_tree_view_column_get_visible (column); gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, 0, visible, 1, title, 2, column,-1); } g_list_free(columns); return vbox; }