GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes ( title, renderer, "text", column_runner, NULL );
gtk_tree_view_column_set_sort_column_id ( column, column_runner );
gtk_tree_view_append_column ( GTK_TREE_VIEW(view), column );
+ gtk_tree_view_column_set_reorderable ( column, TRUE );
+ gtk_tree_view_column_set_resizable ( column, TRUE );
return column;
}
GtkWidget *view = gtk_tree_view_new();
GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
+ g_object_set (G_OBJECT (renderer),
+ "xalign", 0.0,
+ "ellipsize", PANGO_ELLIPSIZE_END,
+ NULL);
+
GtkTreeViewColumn *column;
GtkTreeViewColumn *sort_by_column;
if ( show_layer_names ) {
// Insert column for the layer name when viewing multi layers
column = my_new_column_text ( _("Layer"), renderer, view, column_runner++ );
+ gtk_tree_view_column_set_expand ( column, TRUE );
// remember the layer column so we can sort by it later
sort_by_column = column;
}
column_runner++;
column = my_new_column_text ( _("Name"), renderer, view, column_runner++ );
+ gtk_tree_view_column_set_expand ( column, TRUE );
if ( !show_layer_names )
// remember the name column so we can sort by it later
sort_by_column = column;
column = my_new_column_text ( _("Date"), renderer, view, column_runner++ );
+ gtk_tree_view_column_set_expand ( column, TRUE );
GtkCellRenderer *renderer_toggle = gtk_cell_renderer_toggle_new ();
column = gtk_tree_view_column_new_with_attributes ( _("Visible"), renderer_toggle, "active", column_runner, NULL );
+ gtk_tree_view_column_set_reorderable ( column, TRUE );
gtk_tree_view_column_set_sort_column_id ( column, column_runner );
gtk_tree_view_append_column ( GTK_TREE_VIEW(view), column );
column_runner++;
gtk_tree_view_column_clicked ( sort_by_column );
// Ensure a reasonable number of items are shown
- // TODO may wish to impose maximum width, especially on the name fields (+set ellipize?)
- // TODO may be save window size between invocations.
- gtk_window_set_default_size ( GTK_WINDOW(dialog), show_layer_names ? 1000 : 800, 400 );
+ // TODO: may be save window size, column order, sorted by between invocations.
+ // Gtk too stupid to work out best size so need to tell it.
+ gtk_window_set_default_size ( GTK_WINDOW(dialog), show_layer_names ? 900 : 700, 400 );
}
g_signal_connect ( G_OBJECT(dialog), "response", G_CALLBACK(track_close_cb), gl );
gtk_widget_show_all ( dialog );
+ // Yes - set the size *AGAIN* - this time widgets are expanded nicely
+ gtk_window_resize ( GTK_WINDOW(dialog), show_layer_names ? 1000 : 800, 400 );
// ATM lock out on dialog run - to prevent list contents being manipulated in other parts of the GUI whilst shown here.
gtk_dialog_run (GTK_DIALOG (dialog));
GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes ( title, renderer, "text", column_runner, NULL );
gtk_tree_view_column_set_sort_column_id ( column, column_runner );
gtk_tree_view_append_column ( GTK_TREE_VIEW(view), column );
+ gtk_tree_view_column_set_reorderable ( column, TRUE );
+ gtk_tree_view_column_set_resizable ( column, TRUE );
return column;
}
GtkWidget *view = gtk_tree_view_new();
GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
+ g_object_set (G_OBJECT (renderer), "xalign", 0.0, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
GtkTreeViewColumn *column;
GtkTreeViewColumn *sort_by_column;
if ( show_layer_names ) {
// Insert column for the layer name when viewing multi layers
column = my_new_column_text ( _("Layer"), renderer, view, column_runner++ );
+ g_object_set (G_OBJECT (renderer), "xalign", 0.0, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
+ gtk_tree_view_column_set_expand ( column, TRUE );
// remember the layer column so we can sort by it later
sort_by_column = column;
}
column_runner++;
column = my_new_column_text ( _("Name"), renderer, view, column_runner++ );
+ gtk_tree_view_column_set_expand ( column, TRUE );
if ( !show_layer_names )
// remember the name column so we can sort by it later
sort_by_column = column;
column = my_new_column_text ( _("Date"), renderer, view, column_runner++ );
+ gtk_tree_view_column_set_resizable ( column, TRUE );
GtkCellRenderer *renderer_toggle = gtk_cell_renderer_toggle_new ();
column = gtk_tree_view_column_new_with_attributes ( _("Visible"), renderer_toggle, "active", column_runner, NULL );
column_runner++;
column = my_new_column_text ( _("Comment"), renderer, view, column_runner++ );
+ gtk_tree_view_column_set_expand ( column, TRUE );
if ( height_units == VIK_UNITS_HEIGHT_FEET )
column = my_new_column_text ( _("Max Height\n(Feet)"), renderer, view, column_runner++ );
gtk_tree_view_column_clicked ( sort_by_column );
// Ensure a reasonable number of items are shown
- // TODO may wish to impose maximum width, especially on the name fields (+set ellipize?)
- // TODO may be save window size between invocations.
- gtk_window_set_default_size ( GTK_WINDOW(dialog), show_layer_names ? 800 : 600, 400 );
+ // TODO: may be save window size, column order, sorted by between invocations.
+ gtk_window_set_default_size ( GTK_WINDOW(dialog), show_layer_names ? 700 : 500, 400 );
}
g_signal_connect ( G_OBJECT(dialog), "response", G_CALLBACK(waypoint_close_cb), gl );
gtk_widget_show_all ( dialog );
+ // Yes - set the size *AGAIN* - this time widgets are expanded nicely
+ gtk_window_resize ( GTK_WINDOW(dialog), show_layer_names ? 800 : 600, 400 );
// ATM lock out on dialog run - to prevent list contents being manipulated in other parts of the GUI whilst shown here.
gtk_dialog_run (GTK_DIALOG (dialog));