From 43960a70a6dafea5e2d05efac290283c726fb028 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Tue, 20 Sep 2011 09:56:46 -0700 Subject: [PATCH 1/2] Minor tweaks to column headers Signed-off-by: Dirk Hohndel --- divelist.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/divelist.c b/divelist.c index 3b840794b..eb6e8482f 100644 --- a/divelist.c +++ b/divelist.c @@ -204,7 +204,7 @@ static void sac_data_func(GtkTreeViewColumn *col, sac = value / 1000.0; switch (output_units.volume) { case LITER: - fmt = "%4.0f"; + fmt = "%4.1f"; break; case CUFT: fmt = "%4.2f"; @@ -341,14 +341,27 @@ void update_dive_list_units(struct DiveList *dive_list) switch (output_units.length) { case METERS: - unit = "m"; + unit = "max/m"; break; case FEET: - unit = "ft"; + unit = "max/ft"; break; } gtk_tree_view_column_set_title(dive_list->depth, unit); + switch (output_units.temperature) { + case CELSIUS: + unit = "degC"; + break; + case FAHRENHEIT: + unit = "degF"; + break; + case KELVIN: + unit = "Kelvin"; + break; + } + gtk_tree_view_column_set_title(dive_list->temperature, unit); + gtk_tree_model_foreach(model, set_one_dive, NULL); } From 2db85596e52ea0852bfe67f2fb67df8440b43d1b Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Tue, 20 Sep 2011 09:57:38 -0700 Subject: [PATCH 2/2] Attempt to get the location column to resize in a sensible way Previously the SAC column was the one that expanded which is silly We also used to cut the location off at 16 characters Now we try to make the location the one that expands and allow up to 40 characters, but there's something broken, still. If you manually shrink the location column to its minimum size then subsequently resizing the window gets the desired behavior. But if you don't manually resize the location column it doesn't shrink correctly for windows that are smaller than the space we need for all columns to fully display (instead we get a horizontal scrollbar) Signed-off-by: Dirk Hohndel --- divelist.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/divelist.c b/divelist.c index eb6e8482f..338b4dd01 100644 --- a/divelist.c +++ b/divelist.c @@ -267,8 +267,8 @@ static void get_string(char **str, const char *s) if (!s) s = ""; len = strlen(s); - if (len > 16) - len = 16; + if (len > 40) + len = 40; n = malloc(len+1); memcpy(n, s, len); n[len] = 0; @@ -406,7 +406,7 @@ typedef void (*data_func_t)(GtkTreeViewColumn *col, gpointer data); static GtkTreeViewColumn *divelist_column(struct DiveList *dl, int index, const char *title, - data_func_t data_func, int align_right) + data_func_t data_func, int align_right, int expand) { GtkCellRenderer *renderer; GtkTreeViewColumn *col; @@ -426,6 +426,9 @@ static GtkTreeViewColumn *divelist_column(struct DiveList *dl, int index, const gtk_object_set(GTK_OBJECT(renderer), "alignment", PANGO_ALIGN_RIGHT, NULL); gtk_cell_renderer_set_alignment(GTK_CELL_RENDERER(renderer), 1.0, 0.5); } + gtk_tree_view_column_set_expand(col,expand); + if (expand) + gtk_tree_view_column_set_min_width(col,50); gtk_tree_view_append_column(GTK_TREE_VIEW(dl->tree_view), col); return col; } @@ -456,14 +459,14 @@ struct DiveList dive_list_create(void) gtk_tree_selection_set_mode(GTK_TREE_SELECTION(selection), GTK_SELECTION_BROWSE); gtk_widget_set_size_request(dive_list.tree_view, 200, 200); - dive_list.date = divelist_column(&dive_list, DIVE_DATE, "Date", date_data_func, 0); - dive_list.depth = divelist_column(&dive_list, DIVE_DEPTH, "ft", depth_data_func, 1); - dive_list.duration = divelist_column(&dive_list, DIVE_DURATION, "min", duration_data_func, 1); - dive_list.location = divelist_column(&dive_list, DIVE_LOCATION, "Location", NULL, 0); - dive_list.temperature = divelist_column(&dive_list, DIVE_TEMPERATURE, "deg", temperature_data_func, 1); - dive_list.cylinder = divelist_column(&dive_list, DIVE_CYLINDER, "Cyl", NULL, 0); - dive_list.nitrox = divelist_column(&dive_list, DIVE_NITROX, "O2%", nitrox_data_func, 1); - dive_list.sac = divelist_column(&dive_list, DIVE_NITROX, "SAC", sac_data_func, 1); + dive_list.date = divelist_column(&dive_list, DIVE_DATE, "Date", date_data_func, 0, 0); + dive_list.depth = divelist_column(&dive_list, DIVE_DEPTH, "max/ft", depth_data_func, 1, 0); + dive_list.duration = divelist_column(&dive_list, DIVE_DURATION, "min", duration_data_func, 1, 0); + dive_list.location = divelist_column(&dive_list, DIVE_LOCATION, "Location", NULL, 0, 1); + dive_list.temperature = divelist_column(&dive_list, DIVE_TEMPERATURE, "degF", temperature_data_func, 1, 0); + dive_list.cylinder = divelist_column(&dive_list, DIVE_CYLINDER, "Cyl", NULL, 0, 0); + dive_list.nitrox = divelist_column(&dive_list, DIVE_NITROX, "O2%", nitrox_data_func, 1, 0); + dive_list.sac = divelist_column(&dive_list, DIVE_NITROX, "SAC", sac_data_func, 1, 0); fill_dive_list(&dive_list);