/* PSPPIRE - a graphical user interface for PSPP.
- Copyright (C) 2008 Free Software Foundation
+ Copyright (C) 2008, 2009 Free Software Foundation
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#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))
#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 pool;
+
struct _PsppireAxis
{
- GObject parent;
+ GObject parent;
+
+ struct tower pixel_tower;
+ struct tower unit_tower;
+
+ struct pool *pool;
glong min_extent;
gint default_size;
GObjectClass parent_class;
};
-
GType psppire_axis_get_type (void);
+PsppireAxis* psppire_axis_new (void);
\f
+/* Interface between axis and model */
-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;
-
+void psppire_axis_insert (PsppireAxis *a, gint posn, gint size);
- /* Virtual Table */
+void psppire_axis_append (PsppireAxis *a, gint size);
- gint (*unit_size) (const PsppireAxis *a, gint unit);
- gint (*unit_count) (const PsppireAxis *a);
+void psppire_axis_append_n (PsppireAxis *a, gint n_units, gint size);
- glong (*start_pixel) (const PsppireAxis *a, gint unit);
+void psppire_axis_resize (PsppireAxis *a, gint posn, glong size);
- gint (*unit_at_pixel) (const PsppireAxis *a, glong pixel);
+void psppire_axis_clear (PsppireAxis *);
- glong (*total_size) (const PsppireAxis *a);
+void psppire_axis_delete (PsppireAxis *, gint first, gint n_cases);
+\f
- void (*resize) (PsppireAxis *a, gint unit, glong pixels);
-};
-
-
-/* Interface between sheet and axis */
-
-gint psppire_axis_unit_size (const PsppireAxis *a, gint unit);
-
-gint psppire_axis_unit_count (const PsppireAxis *a);
-
+gint psppire_axis_unit_count (const PsppireAxis *);
glong psppire_axis_start_pixel (const PsppireAxis *a, gint unit);
-
-gint psppire_axis_unit_at_pixel (const PsppireAxis *a, glong pixel);
-
-
-void psppire_axis_resize (PsppireAxis *a, gint unit, glong size);
+gint psppire_axis_unit_size (const PsppireAxis *a, gint unit);
+gint psppire_axis_unit_at_pixel (const PsppireAxis *a, glong pixel);
G_END_DECLS