X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fgtksheet%2Fgsheet-hetero-column.c;h=ecc06cc54b76280defb1168c99946979cf27bc1d;hb=5ee84736663824fe12474b78dace867e42893a14;hp=e4235656bbad76708a1235cd458b8b2ccce93d7e;hpb=09f985912144ac86ec48edcce42da390ce2b85b9;p=pspp-builds.git diff --git a/lib/gtksheet/gsheet-hetero-column.c b/lib/gtksheet/gsheet-hetero-column.c index e4235656..ecc06cc5 100644 --- a/lib/gtksheet/gsheet-hetero-column.c +++ b/lib/gtksheet/gsheet-hetero-column.c @@ -1,7 +1,6 @@ /* gsheet-hetero-column.c * PSPPIRE --- A Graphical User Interface for PSPP * Copyright (C) 2006 Free Software Foundation - * Written by John Darrington * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,6 +16,8 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include + #include "gsheet-column-iface.h" #include "gsheet-hetero-column.h" #include @@ -58,7 +59,7 @@ g_sheet_hetero_column_get_type (void) NULL }; - hetero_column_type = + hetero_column_type = g_type_register_static (G_TYPE_OBJECT, "g_sheet_hetero_column", &hetero_column_info, 0); @@ -72,7 +73,7 @@ g_sheet_hetero_column_get_type (void) static GtkSheetButton default_button; - + /** @@ -90,12 +91,12 @@ g_sheet_hetero_column_new (gint default_width, gint n_columns) retval = g_object_new (G_TYPE_SHEET_HETERO_COLUMN, NULL); - hg = G_SHEET_HETERO_COLUMN(retval); + hg = G_SHEET_HETERO_COLUMN (retval); hg->n_columns = n_columns; hg->default_width = default_width; - hg->col = g_new0(struct GSheetHeteroColumnUnit, n_columns); + hg->col = g_new0 (struct GSheetHeteroColumnUnit, n_columns); - for (i = 0 ; i < hg->n_columns; ++i ) + for (i = 0 ; i < hg->n_columns; ++i ) { hg->col[i].button = default_button; } @@ -103,52 +104,52 @@ g_sheet_hetero_column_new (gint default_width, gint n_columns) return retval; } -static gint -g_sheet_hetero_column_get_width(const GSheetColumn *geom, gint i) +static gint +g_sheet_hetero_column_get_width (const GSheetColumn *geom, glong i) { - GSheetHeteroColumn *hg = G_SHEET_HETERO_COLUMN(geom); + GSheetHeteroColumn *hg = G_SHEET_HETERO_COLUMN (geom); + + g_return_val_if_fail (i < hg->n_columns, -1); - g_return_val_if_fail(i < hg->n_columns, -1); - return hg->col[i].width; } -static gint -g_sheet_hetero_column_get_sensitivity(const GSheetColumn *geom, gint u) +static gboolean +g_sheet_hetero_column_get_sensitivity (const GSheetColumn *geom, glong u) { return TRUE; } -static gint -g_sheet_hetero_column_get_visibility(const GSheetColumn *geom, gint u) +static gboolean +g_sheet_hetero_column_get_visibility (const GSheetColumn *geom, glong u) { return TRUE; } -static const gchar * -g_sheet_hetero_column_get_button_label(const GSheetColumn *geom, gint u) +static gchar * +g_sheet_hetero_column_get_button_label (const GSheetColumn *geom, glong u) { - GSheetHeteroColumn *hg = G_SHEET_HETERO_COLUMN(geom); + GSheetHeteroColumn *hg = G_SHEET_HETERO_COLUMN (geom); - return hg->col[u].button.label; + return g_locale_to_utf8 (hg->col[u].button.label, -1, 0, 0, 0); } static GtkJustification -g_sheet_hetero_column_get_justification(const GSheetColumn *geom, gint u) +g_sheet_hetero_column_get_justification (const GSheetColumn *geom, glong u) { return GTK_JUSTIFY_FILL; } -static gint -g_sheet_hetero_column_get_column_count(const GSheetColumn *geom) +static glong +g_sheet_hetero_column_get_column_count (const GSheetColumn *geom) { - GSheetHeteroColumn *hg = G_SHEET_HETERO_COLUMN(geom); + GSheetHeteroColumn *hg = G_SHEET_HETERO_COLUMN (geom); return hg->n_columns; } @@ -176,20 +177,31 @@ g_sheet_hetero_column_init (GSheetHeteroColumn *o) { } -static void +static void g_sheet_hetero_column_finalize (GObject *object) { - GSheetHeteroColumn *hg = G_SHEET_HETERO_COLUMN(object); + GSheetHeteroColumn *hg = G_SHEET_HETERO_COLUMN (object); + + g_free (hg->col); +} + +static void +hetero_column_set_width (GSheetColumn *geo, glong i, gint size) +{ + GSheetHeteroColumn *hg = G_SHEET_HETERO_COLUMN (geo); - g_free(hg->col); + g_return_if_fail (i < hg->n_columns); + + hg->col[i].width = size; } + static void g_sheet_column_init (GSheetColumnIface *iface) { iface->get_width = g_sheet_hetero_column_get_width ; - iface->set_width = g_sheet_hetero_column_set_width ; + iface->set_width = hetero_column_set_width ; iface->get_sensitivity = g_sheet_hetero_column_get_sensitivity ; iface->get_visibility = g_sheet_hetero_column_get_visibility ; iface->get_justification = g_sheet_hetero_column_get_justification; @@ -199,27 +211,28 @@ g_sheet_column_init (GSheetColumnIface *iface) } -void -g_sheet_hetero_column_set_button_label(GSheetHeteroColumn *geo, - gint i, const gchar *label) +void +g_sheet_hetero_column_set_button_label (GSheetHeteroColumn *geo, + glong i, const gchar *label) { - g_return_if_fail(i < geo->n_columns); + g_return_if_fail (i < geo->n_columns); - g_free(geo->col[i].button.label); - geo->col[i].button.label = g_malloc(strlen(label) + 1); - - g_stpcpy(geo->col[i].button.label, label); + g_free (geo->col[i].button.label); + geo->col[i].button.label = g_malloc (strlen (label) + 1); + + g_stpcpy (geo->col[i].button.label, label); } -void -g_sheet_hetero_column_set_width(GSheetHeteroColumn *geo, - gint i, gint size) + +void +g_sheet_hetero_column_set_width (GSheetHeteroColumn *geo, glong i, gint size) { - g_return_if_fail(i < geo->n_columns); + GSheetColumn *iface = G_SHEET_COLUMN (geo); - geo->col[i].width = size; + hetero_column_set_width (iface, i, size); } +