#include <libpspp/tower.h>
#include <libpspp/pool.h>
+#include <libpspp/misc.h>
#include "psppire-axis.h"
#include <gtk/gtk.h>
actual_size = PSPPIRE_AXIS_GET_IFACE (a)->total_size (a);
if ( actual_size < a->min_extent )
- padding = (a->min_extent - actual_size) / a->default_size;
+ padding = DIV_RND_UP (a->min_extent - actual_size, a->default_size);
return PSPPIRE_AXIS_GET_IFACE (a)->unit_count (a) + padding;
}
/* 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);
return total_size + (unit - the_count) * a->default_size;
}
- // g_print ("%s %d\n", __FUNCTION__, unit);
-
- 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;
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);
gint n_items = PSPPIRE_AXIS_GET_IFACE (a)->unit_count (a);
glong extra = pixel - total_size;
- return n_items - 1 + extra / a->default_size;
+ 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));
+
+ if (PSPPIRE_AXIS_GET_IFACE (a)->resize)
+ PSPPIRE_AXIS_GET_IFACE (a)->resize (a, unit, size);
+}
+
+