From a62692652d10f6e78eeddd4f41a29e90ac8aebae Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 4 Jun 2011 11:42:09 +0200 Subject: [PATCH] Adjustments. --- src/grid.c | 17 ++++++++++++++++- src/gridcolumn.c | 9 ++++++++- tests/grid.c | 20 ++++++++++++++------ tests/grid.db | Bin 2048 -> 2048 bytes 4 files changed, 38 insertions(+), 8 deletions(-) diff --git a/src/grid.c b/src/grid.c index 247787b..5773618 100644 --- a/src/grid.c +++ b/src/grid.c @@ -307,6 +307,7 @@ static GtkTreeModel guint col; GType *gtype; + GType col_gtype; g_return_val_if_fail (GDAEX_IS_GRID (grid), NULL); @@ -316,7 +317,21 @@ static GtkTreeModel for (col = 0; col < priv->columns->len; col++) { - gtype[col] = gdaex_grid_column_get_gtype ((GdaExGridColumn *)g_ptr_array_index (priv->columns, col)); + col_gtype = gdaex_grid_column_get_gtype ((GdaExGridColumn *)g_ptr_array_index (priv->columns, col)); + if (col_gtype == G_TYPE_DATE + || col_gtype == G_TYPE_DATE_TIME + || col_gtype == GDA_TYPE_TIMESTAMP + || ((col_gtype == G_TYPE_INT + || col_gtype == G_TYPE_FLOAT + || col_gtype == G_TYPE_DOUBLE) + && gdaex_grid_column_get_decimals ((GdaExGridColumn *)g_ptr_array_index (priv->columns, col)) > -1)) + { + gtype[col] = G_TYPE_STRING; + } + else + { + gtype[col] = col_gtype; + } } if (priv->model != NULL) diff --git a/src/gridcolumn.c b/src/gridcolumn.c index 295c758..75a9532 100644 --- a/src/gridcolumn.c +++ b/src/gridcolumn.c @@ -297,7 +297,14 @@ GtkTreeViewColumn || priv->type == G_TYPE_FLOAT || priv->type == G_TYPE_DOUBLE) { - renderer = gtk_cell_renderer_spin_new (); + if (priv->decimals > -1) + { + renderer = gtk_cell_renderer_text_new (); + } + else + { + renderer = gtk_cell_renderer_spin_new (); + } gtk_cell_renderer_set_alignment (renderer, 1.0, 0.5); } else diff --git a/tests/grid.c b/tests/grid.c index b7a8b95..ea5ed43 100644 --- a/tests/grid.c +++ b/tests/grid.c @@ -24,6 +24,7 @@ main (int argc, char **argv) GdaEx *gdaex; GtkWidget *w; + GtkWidget *scrolledw; GdaExGrid *grid; GdaExGridColumn *gcol; @@ -38,26 +39,33 @@ main (int argc, char **argv) } w = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_default_size (GTK_WINDOW (w), 550, 350); + + scrolledw = gtk_scrolled_window_new (NULL, NULL); + gtk_container_add (GTK_CONTAINER (w), scrolledw); grid = gdaex_grid_new (); - gcol = gdaex_grid_column_new ("ID", "id", G_TYPE_INT, TRUE, FALSE, FALSE, FALSE, 0); + gcol = gdaex_grid_column_new ("ID", "id", G_TYPE_INT, TRUE, FALSE, FALSE, FALSE, -1); + gdaex_grid_add_column (grid, gcol); + + gcol = gdaex_grid_column_new ("Name", "name", G_TYPE_STRING, TRUE, TRUE, TRUE, TRUE, -1); gdaex_grid_add_column (grid, gcol); - gcol = gdaex_grid_column_new ("Name", "name", G_TYPE_STRING, TRUE, TRUE, TRUE, TRUE, 0); + gcol = gdaex_grid_column_new ("Surname", "surname", G_TYPE_STRING, TRUE, TRUE, TRUE, TRUE, -1); gdaex_grid_add_column (grid, gcol); - gcol = gdaex_grid_column_new ("Surname", "surname", G_TYPE_STRING, TRUE, TRUE, TRUE, TRUE, 0); + gcol = gdaex_grid_column_new ("Age", "age", G_TYPE_INT, TRUE, TRUE, TRUE, TRUE, -1); gdaex_grid_add_column (grid, gcol); - gcol = gdaex_grid_column_new ("Age", "age", G_TYPE_INT, TRUE, TRUE, TRUE, TRUE, 0); + gcol = gdaex_grid_column_new ("Birthday", "birthday", G_TYPE_DATE, TRUE, TRUE, TRUE, TRUE, -1); gdaex_grid_add_column (grid, gcol); - gcol = gdaex_grid_column_new ("Birthday", "birthday", G_TYPE_DATE, TRUE, TRUE, TRUE, TRUE, 0); + gcol = gdaex_grid_column_new ("Incoming", "incoming", G_TYPE_DOUBLE, TRUE, TRUE, TRUE, TRUE, 2); gdaex_grid_add_column (grid, gcol); wgrid = gdaex_grid_get_widget (grid); - gtk_container_add (GTK_CONTAINER (w), wgrid); + gtk_container_add (GTK_CONTAINER (scrolledw), wgrid); gdaex_grid_fill_from_sql (grid, gdaex, "SELECT * FROM clients", NULL); diff --git a/tests/grid.db b/tests/grid.db index d9dad15c6e045f67553c625c312758684abf33de..fd7f26f57a8b4a933d3ab3ae7167e3402f3768a8 100644 GIT binary patch delta 226 zcmZn=Xb_knEy}^bz`z8=FaTmRO*GKw=U~u%B*zQnF*0W}FlTQp{L94ED8$GvE-lU2 zSUtIoxl%z#Au}&IKQ}WkT_GjEG$|)llb3ll12c0w19Lm`9p){Y1z9SYE0q}88AXK| z717)!EiKG-4UBaSjT|O-!Yt+lGt`*b8HHtmikZ{$^OG`jaxxQ(QmPHj z3=MS+jC2jn9L!}3c{WXbrNjg^lqoAQFBNF0f}y3QnXZ8;&|HVDn|scjIdc{Ovad4H delta 159 zcmZn=Xb_knEy}{cz`z8=Fu(|8Fitek=VxKieI&;V;xX4SFxPArWZ`4xYGh<&7nhc1 zY>b>-%3R5>36f`KUd_P#l=&3%YM`1j=7|mJ9J0)8jKZ>vij()UiLn8pJBOC(& -- 2.49.0