void gsearchtool_set_columns_order (GtkTreeView * treeview) { GtkTreeViewColumn * last = NULL; GSList * order; GSList * it; order = gsearchtool_gconf_get_list ("/apps/gnome-search-tool/columns_order", GCONF_VALUE_INT); for (it = order; it; it = it->next) { GtkTreeViewColumn * cur; gint id; id = GPOINTER_TO_INT (it->data); if (id >= 0 && id < NUM_COLUMNS) { cur = gsearchtool_gtk_tree_view_get_column_with_sort_column_id (treeview, id); if (cur && cur != last) { gtk_tree_view_move_column_after (treeview, cur, last); last = cur; } } } g_slist_free (order); }
static void column_dialog_up_button_clicked_cb (GtkWidget *button, DialogData *data) { GtkTreeViewColumn *column; GtkTreeViewColumn *base_column; column = column_dialog_get_selected_column ( data, GTK_TREE_VIEW (data->visible_tree)); if (!column) { return; } base_column = column_dialog_get_prev_visible_column (data, column); if (base_column) { base_column = column_dialog_get_prev_visible_column (data, base_column); } gtk_tree_view_move_column_after (data->edited_tree, column, base_column); /* Note: We should probalby not be lazy here and reorder the rows * instead. */ column_dialog_fill_trees (data); column_dialog_set_selected_column (data, column); gtk_widget_grab_focus (GTK_WIDGET (data->visible_tree)); }
static VALUE rg_move_column_after(VALUE self, VALUE column, VALUE base_column) { gtk_tree_view_move_column_after(_SELF(self), TREEVIEW_COL(column), NIL_P(base_column) ? NULL : TREEVIEW_COL(base_column)); return self; }
void egg_column_model_move_up_column (EggColumnModel *model, GtkTreeIter *iter) { GtkTreeViewColumn *column, *base_column; GList *node; g_return_if_fail (model->stamp == iter->stamp); g_return_if_fail (((GList *)iter->user_data)->prev != NULL); node = (GList *)iter->user_data; column = (GtkTreeViewColumn *)node->prev->data; base_column = (GtkTreeViewColumn *)node->data; gtk_tree_view_move_column_after (model->tree_view, column, base_column); }
void gsearchtool_set_columns_order (GtkTreeView * treeview) { GtkTreeViewColumn * last = NULL; GSettings * settings; GVariant * value; settings = g_settings_new ("org.mate.search-tool"); value = g_settings_get_value (settings, "columns-order"); if (value) { GVariantIter *iter; GVariant *item; g_variant_get (value, "ai", &iter); while ((item = g_variant_iter_next_value (iter))) { GtkTreeViewColumn * cur; gint id; g_variant_get (item, "i", &id); if (id >= 0 && id < NUM_COLUMNS) { cur = gsearchtool_gtk_tree_view_get_column_with_sort_column_id (treeview, id); if (cur && cur != last) { gtk_tree_view_move_column_after (treeview, cur, last); last = cur; } } g_variant_unref (item); } g_variant_iter_free (iter); g_variant_unref (value); } g_object_unref (settings); }
GtkWidget * dsn_config_new (void) { DsnConfigPrivate *priv; GtkWidget *dsn; GtkWidget *label; GtkWidget *sw; gchar *title; GdaDataModel *model; priv = g_new0 (DsnConfigPrivate, 1); dsn = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); gtk_widget_show (dsn); gtk_container_set_border_width (GTK_CONTAINER (dsn), 6); g_object_set_data_full (G_OBJECT (dsn), DSN_CONFIG_DATA, priv, (GDestroyNotify) free_private_data); /* title */ title = g_strdup_printf ("<b>%s</b>\n%s", _("Data Sources"), _("Data sources are the means by which database " "connections are identified: all " "the information needed to open a connection to " "a specific database using a 'provider' is referenced using " "a unique name.")); priv->title = gdaui_bar_new (title); g_free (title); gdaui_bar_set_icon_from_resource (GDAUI_BAR (priv->title), "/images/gdaui-generic.png"); gtk_box_pack_start (GTK_BOX (dsn), priv->title, FALSE, FALSE, 0); gtk_widget_show (priv->title); /* horizontal box for the provider list and its properties */ GtkWidget *hbox; hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (dsn), hbox, TRUE, TRUE, 0); /* left part */ GtkWidget *vbox; vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_size_request (vbox, 150, -1); gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0); /* create the data source list */ sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); model = gda_config_list_dsn (); priv->dsn_list = gdaui_raw_grid_new (model); gtk_tree_view_move_column_after (GTK_TREE_VIEW (priv->dsn_list), gtk_tree_view_get_column (GTK_TREE_VIEW (priv->dsn_list), 1), gtk_tree_view_get_column (GTK_TREE_VIEW (priv->dsn_list), 2)); g_object_unref (model); g_object_set_data (G_OBJECT (dsn), "grid", priv->dsn_list); gdaui_data_proxy_column_set_editable (GDAUI_DATA_PROXY (priv->dsn_list), 0, FALSE); gdaui_data_selector_set_column_visible (GDAUI_DATA_SELECTOR (priv->dsn_list), -1, FALSE); gdaui_data_selector_set_column_visible (GDAUI_DATA_SELECTOR (priv->dsn_list), 0, TRUE); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (priv->dsn_list), FALSE); g_object_set (priv->dsn_list, "info-cell-visible", FALSE, NULL); gtk_container_add (GTK_CONTAINER (sw), priv->dsn_list); g_signal_connect (priv->dsn_list, "selection-changed", G_CALLBACK (list_selection_changed_cb), dsn); g_signal_connect (priv->dsn_list, "populate-popup", G_CALLBACK (list_popup_cb), dsn); /* add/delete buttons */ GtkWidget *toolbar; toolbar = gtk_toolbar_new (); gtk_toolbar_set_icon_size (GTK_TOOLBAR (toolbar), GTK_ICON_SIZE_SMALL_TOOLBAR); gtk_style_context_add_class (gtk_widget_get_style_context (toolbar), "inline-toolbar"); gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, FALSE, 0); GtkToolItem *titem; titem = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (titem), "list-add-symbolic"); gtk_actionable_set_action_name (GTK_ACTIONABLE (titem), "win.DatasourceNew"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), titem, -1); titem = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (titem), "list-remove-symbolic"); gtk_actionable_set_action_name (GTK_ACTIONABLE (titem), "win.DatasourceDelete"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), titem, -1); /* create the data source's properties */ GtkWidget *stack; stack = gtk_stack_new (); priv->stack = stack; gtk_box_pack_start (GTK_BOX (hbox), stack, TRUE, TRUE, 10); label = gtk_label_new (_("No data source selected.")); gtk_stack_add_named (GTK_STACK (stack), label, ST_NOPROP); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_stack_add_named (GTK_STACK (stack), vbox, ST_PROP); GtkWidget *form; form = gdaui_dsn_editor_new (); priv->dsn_editor = GDAUI_DSN_EDITOR (form); gtk_box_pack_start (GTK_BOX (vbox), form, TRUE, TRUE, 0); g_signal_connect (priv->dsn_editor, "changed", G_CALLBACK (dsn_editor_changed_cb), dsn); /* action buttons */ GtkWidget *hbox2; hbox2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); gtk_box_pack_start (GTK_BOX (vbox), hbox2, FALSE, FALSE, 6); GtkWidget *bbox; bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_set_hexpand (bbox, TRUE); gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), GTK_BUTTONBOX_CENTER); gtk_box_pack_start (GTK_BOX (hbox2), bbox, FALSE, FALSE, 6); GtkWidget *button; button = gtk_toggle_button_new_with_label (_("Definition")); gtk_box_pack_start (GTK_BOX (bbox), button, FALSE, FALSE, 0); priv->view_buttons [GDAUI_DSN_EDITOR_PANE_DEFINITION] = GTK_TOGGLE_BUTTON (button); g_signal_connect (button, "toggled", G_CALLBACK (view_toggled_cb), dsn); button = gtk_toggle_button_new_with_label (_("Parameters")); gtk_box_pack_start (GTK_BOX (bbox), button, FALSE, FALSE, 0); priv->view_buttons [GDAUI_DSN_EDITOR_PANE_PARAMS] = GTK_TOGGLE_BUTTON (button); g_signal_connect (button, "toggled", G_CALLBACK (view_toggled_cb), dsn); button = gtk_toggle_button_new_with_label (_("Authentication")); gtk_box_pack_start (GTK_BOX (bbox), button, FALSE, FALSE, 0); priv->view_buttons [GDAUI_DSN_EDITOR_PANE_AUTH] = GTK_TOGGLE_BUTTON (button); g_signal_connect (button, "toggled", G_CALLBACK (view_toggled_cb), dsn); button = gtk_button_new_from_icon_name ("document-save-symbolic", GTK_ICON_SIZE_BUTTON); gtk_box_pack_start (GTK_BOX (hbox2), button, FALSE, FALSE, 0); priv->commit_button = button; gtk_widget_set_sensitive (button, FALSE); gtk_widget_set_tooltip_text (button, _("Write changes made to the DSN")); g_signal_connect (button, "clicked", G_CALLBACK (save_cb), dsn); gtk_widget_show_all (hbox); return dsn; }
static void trg_tree_view_add_column_after(TrgTreeView * tv, trg_column_description * desc, gint64 width, GtkTreeViewColumn * after_col) { GtkCellRenderer *renderer; GtkTreeViewColumn *column = NULL; GtkButton *column_button = NULL; switch (desc->type) { case TRG_COLTYPE_TEXT: renderer = desc->customRenderer ? desc->customRenderer : gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "text", desc-> model_column, NULL); break; case TRG_COLTYPE_SPEED: renderer = trg_cell_renderer_speed_new(); column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "speed-value", desc-> model_column, NULL); break; case TRG_COLTYPE_EPOCH: renderer = trg_cell_renderer_epoch_new(); column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "epoch-value", desc-> model_column, NULL); break; case TRG_COLTYPE_ETA: renderer = trg_cell_renderer_eta_new(); column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "eta-value", desc-> model_column, NULL); break; case TRG_COLTYPE_SIZE: renderer = trg_cell_renderer_size_new(); column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "size-value", desc-> model_column, NULL); break; case TRG_COLTYPE_PROG: renderer = gtk_cell_renderer_progress_new(); column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "value", desc-> model_column, NULL); break; case TRG_COLTYPE_RATIO: renderer = trg_cell_renderer_ratio_new(); column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "ratio-value", desc-> model_column, NULL); break; case TRG_COLTYPE_WANTED: column = gtk_tree_view_column_new(); renderer = trg_cell_renderer_wanted_new(); /*gtk_cell_renderer_set_alignment(GTK_CELL_RENDERER(renderer), 0.5f, 0.0); */ gtk_tree_view_column_set_title(column, desc->header); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_attributes(column, renderer, "wanted-value", desc->model_column, NULL); break; case TRG_COLTYPE_ICONTEXT: column = trg_tree_view_icontext_column_new(desc, "icon-name"); break; case TRG_COLTYPE_FILEICONTEXT: column = trg_tree_view_fileicontext_column_new(desc); break; case TRG_COLTYPE_PRIO: renderer = trg_cell_renderer_priority_new(); column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "priority-value", desc-> model_column, NULL); break; case TRG_COLTYPE_NUMGTZERO: renderer = trg_cell_renderer_numgteqthan_new(1); column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "value", desc-> model_column, NULL); break; case TRG_COLTYPE_NUMGTEQZERO: renderer = trg_cell_renderer_numgteqthan_new(0); column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "value", desc-> model_column, NULL); break; default: g_critical("unknown TrgTreeView column"); return; } //gtk_tree_view_column_set_min_width(column, 0); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_column_set_reorderable(column, TRUE); gtk_tree_view_column_set_sort_column_id(column, desc->model_column); gtk_tree_view_column_set_expand(column, TRUE); /*gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);*/ if (width > 0) { //gtk_tree_view_column_set_fixed_width(column, width); } g_object_set_data(G_OBJECT(column), GDATA_KEY_COLUMN_DESC, desc); gtk_tree_view_append_column(GTK_TREE_VIEW(tv), column); if (after_col) gtk_tree_view_move_column_after(GTK_TREE_VIEW(tv), column, after_col); column_button = GTK_BUTTON(gtk_tree_view_column_get_button(column)); g_signal_connect(column_button, "button-press-event", G_CALLBACK(col_onButtonPressed), desc); if (desc->out) *(desc->out) = column; desc->flags |= TRG_COLUMN_SHOWING; }