Adjusted packing properties as appropriatate
[pspp-builds.git] / lib / gtksheet / psppire-axis.h
index 8c362d6e11036b31f784b1d21bda348b209edf03..3836ecf05175eda01a0e31374003c5f4a4d163eb 100644 (file)
 #include <glib-object.h>
 #include <glib.h>
 
-#include <libpspp/tower.h>
-
 G_BEGIN_DECLS
 
 
+
 /* --- type macros --- */
 #define G_TYPE_PSPPIRE_AXIS              (psppire_axis_get_type ())
 #define PSPPIRE_AXIS(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_PSPPIRE_AXIS, PsppireAxis))
@@ -36,46 +35,69 @@ G_BEGIN_DECLS
 #define PSPPIRE_AXIS_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), G_TYPE_PSPPIRE_AXIS, PsppireAxisClass))
 
 
-
 /* --- typedefs & structures --- */
 typedef struct _PsppireAxis       PsppireAxis;
 typedef struct _PsppireAxisClass PsppireAxisClass;
 
-
 struct _PsppireAxis
 {
   GObject             parent;
-  gint width ;
 
-  struct tower tower;
+  glong min_extent;
+  gint default_size;
 };
 
 struct _PsppireAxisClass
 {
   GObjectClass parent_class;
-
 };
 
+
 GType          psppire_axis_get_type (void);
 
-PsppireAxis*   psppire_axis_new (gint w);
 
 \f
-/* Interface between sheet and axis */
 
-gint psppire_axis_unit_size (PsppireAxis *a, gint unit);
+GType psppire_axis_iface_get_type (void);
+
+#define PSPPIRE_TYPE_AXIS_IFACE (psppire_axis_iface_get_type ())
+
+typedef struct _PsppireAxisIface PsppireAxisIface;
+
+struct _PsppireAxisIface
+{
+  GTypeInterface g_iface;
+
 
-gint psppire_axis_unit_count (PsppireAxis *a);
+  /* Virtual Table */
+
+  gint  (*unit_size) (const PsppireAxis *a, gint unit);
+
+  gint  (*unit_count) (const PsppireAxis *a);
+
+  glong (*start_pixel) (const PsppireAxis *a, gint unit);
+
+  gint  (*unit_at_pixel) (const PsppireAxis *a, glong pixel);
+
+  glong (*total_size) (const PsppireAxis *a);
+
+
+  void (*resize) (PsppireAxis *a, gint unit, glong pixels);
+};
+
+
+/* Interface between sheet and axis */
 
-glong psppire_axis_pixel_start (PsppireAxis *a, gint unit);
+gint psppire_axis_unit_size (const PsppireAxis *a, gint unit);
 
-gint psppire_axis_get_unit_at_pixel (PsppireAxis *a, glong pixel);
+gint psppire_axis_unit_count (const PsppireAxis *a);
 
+glong psppire_axis_start_pixel (const PsppireAxis *a, gint unit);
 
+gint psppire_axis_unit_at_pixel (const PsppireAxis *a, glong pixel);
 
-/* Interface between axis and model */
 
-void psppire_axis_append (PsppireAxis *a, gint width);
+void psppire_axis_resize (PsppireAxis *a, gint unit, glong size);
 
 G_END_DECLS