Example #1
0
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);
}
Example #3
0
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;
}
Example #6
0
/* 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, &note, -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;
}
Example #9
0
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;
}
Example #10
0
static VALUE
tvc_get_sort_column_id(VALUE self)
{
    return INT2NUM(gtk_tree_view_column_get_sort_column_id(_SELF(self)));
}
Example #11
0
/**
 * 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;
}