X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fgtksheet%2Fpsppire-axis.c;h=5498525a0ef0e8e3ad1f7603591a5d88fb74be5a;hb=38c2638eed90f33225870563c4be183097e4155a;hp=94c2aa41c276971434affcd7c395bcd957f8694a;hpb=2165f59ab9eee5272b4037e45477811627cae078;p=pspp-builds.git diff --git a/lib/gtksheet/psppire-axis.c b/lib/gtksheet/psppire-axis.c index 94c2aa41..5498525a 100644 --- a/lib/gtksheet/psppire-axis.c +++ b/lib/gtksheet/psppire-axis.c @@ -22,9 +22,21 @@ #include #include #include "psppire-axis.h" +#include #include + +/* Signals */ +enum + { + RESIZE_UNIT, + n_signals + }; + +static guint signals[n_signals] ; + + #define PSPPIRE_AXIS_GET_IFACE(obj) \ (G_TYPE_INSTANCE_GET_INTERFACE ((obj), PSPPIRE_TYPE_AXIS_IFACE, PsppireAxisIface)) @@ -163,6 +175,20 @@ psppire_axis_class_init (PsppireAxisClass *class) parent_class = g_type_class_peek_parent (class); object_class->finalize = psppire_axis_finalize; + + + signals[RESIZE_UNIT] = + g_signal_new ("resize-unit", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + psppire_marshal_VOID__INT_LONG, + G_TYPE_NONE, + 2, + G_TYPE_INT, + G_TYPE_LONG + ); } @@ -212,7 +238,7 @@ psppire_axis_unit_count (const PsppireAxis *a) /* Return the starting pixel of UNIT */ glong -psppire_axis_pixel_start (const PsppireAxis *a, gint unit) +psppire_axis_start_pixel (const PsppireAxis *a, gint unit) { gint the_count, total_size ; g_return_val_if_fail (PSPPIRE_IS_AXIS (a), -1); @@ -225,13 +251,13 @@ psppire_axis_pixel_start (const PsppireAxis *a, gint unit) return total_size + (unit - the_count) * a->default_size; } - return PSPPIRE_AXIS_GET_IFACE (a)->pixel_start (a, unit); + return PSPPIRE_AXIS_GET_IFACE (a)->start_pixel (a, unit); } /* Return the unit covered by PIXEL */ gint -psppire_axis_get_unit_at_pixel (const PsppireAxis *a, glong pixel) +psppire_axis_unit_at_pixel (const PsppireAxis *a, glong pixel) { glong total_size; @@ -239,7 +265,7 @@ psppire_axis_get_unit_at_pixel (const PsppireAxis *a, glong pixel) g_return_val_if_fail (PSPPIRE_AXIS_GET_IFACE (a), -1); - g_return_val_if_fail (PSPPIRE_AXIS_GET_IFACE (a)->get_unit_at_pixel, -1); + g_return_val_if_fail (PSPPIRE_AXIS_GET_IFACE (a)->unit_at_pixel, -1); total_size = PSPPIRE_AXIS_GET_IFACE (a)->total_size (a); @@ -251,5 +277,25 @@ psppire_axis_get_unit_at_pixel (const PsppireAxis *a, glong pixel) return n_items - 1 + DIV_RND_UP (extra, a->default_size); } - return PSPPIRE_AXIS_GET_IFACE (a)->get_unit_at_pixel (a, pixel); + return PSPPIRE_AXIS_GET_IFACE (a)->unit_at_pixel (a, pixel); +} + + +/* Set UNIT to size SIZE */ +void +psppire_axis_resize (PsppireAxis *a, gint unit, glong size) +{ + g_return_if_fail (PSPPIRE_IS_AXIS (a)); + + g_return_if_fail (PSPPIRE_AXIS_GET_IFACE (a)); + + g_return_if_fail (size > 0); + + if (PSPPIRE_AXIS_GET_IFACE (a)->resize) + PSPPIRE_AXIS_GET_IFACE (a)->resize (a, unit, size); + + + g_signal_emit (a, signals [RESIZE_UNIT], 0, unit, size); } + +