view src/xs_curve.h @ 629:ce1fe59627f2

Unify.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 03 Sep 2007 04:08:00 +0000
parents b6c7c26569cc
children b0743dc9165d
line wrap: on
line source

#ifndef XS_CURVE_H
#define XS_CURVE_H

#include <gdk/gdk.h>
#include <gtk/gtkdrawingarea.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Macros for type-classing this GtkWidget/object
 */
#define XS_TYPE_CURVE			(xs_curve_get_type())
#define XS_CURVE(obj)			(GTK_CHECK_CAST ((obj), XS_TYPE_CURVE, XSCurve))
#define XS_CURVE_CLASS(luokka)		(GTK_CHECK_CLASS_CAST ((luokka), XS_TYPE_CURVE, XSCurveClass))
#define XS_IS_CURVE(obj)		(GTK_CHECK_TYPE ((obj), XS_TYPE_CURVE))
#define XS_IS_CURVE_CLASS(luokka)	(GTK_CHECK_CLASS_TYPE ((luokka), XS_TYPE_CURVE))


/* Structures
 */
typedef struct _XSCurve XSCurve;
typedef struct _XSCurveClass XSCurveClass;

typedef struct {
	gfloat x,y;
} t_xs_point;

typedef struct {
	gint x, y;
} t_xs_int_point;

struct _XSCurve {
	GtkDrawingArea graph;

	gint cursor_type;
	gfloat min_x;
	gfloat max_x;
	gfloat min_y;
	gfloat max_y;
	GdkPixmap *pixmap;
	gint grab_point;	/* point currently grabbed */

	/* control points */
	gint nctlpoints;	/* number of control points */
	t_xs_point *ctlpoints;	/* array of control points */
};

struct _XSCurveClass {
	GtkDrawingAreaClass parent_class;
};


GtkType		xs_curve_get_type	(void);
GtkWidget*	xs_curve_new		(void);
void		xs_curve_reset		(XSCurve *curve);
void		xs_curve_set_range	(XSCurve *curve,
					 gfloat min_x, gfloat min_y,
					 gfloat max_x, gfloat max_y);
gboolean	xs_curve_realloc_data	(XSCurve *curve, gint npoints);
void		xs_curve_get_data	(XSCurve *curve, t_xs_point ***points, gint **npoints);
gboolean	xs_curve_set_points	(XSCurve *curve, t_xs_int_point *points, gint npoints);
gboolean	xs_curve_get_points	(XSCurve *curve, t_xs_int_point **points, gint *npoints);

#ifdef __cplusplus
}
#endif

#endif /* XS_CURVE_H */