Mercurial > hg > xmms-sid
annotate src/xs_curve.h @ 602:b6c7c26569cc
Updates from curve branch.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 30 Aug 2007 15:08:00 +0000 |
parents | 425da926d310 |
children | ce1fe59627f2 |
rev | line source |
---|---|
526
fa95d942f226
Header cleanup; Moved some types from xmms-sid.h to xs_player.h; Renamed few functions.
Matti Hamalainen <ccr@tnsp.org>
parents:
502
diff
changeset
|
1 #ifndef XS_CURVE_H |
fa95d942f226
Header cleanup; Moved some types from xmms-sid.h to xs_player.h; Renamed few functions.
Matti Hamalainen <ccr@tnsp.org>
parents:
502
diff
changeset
|
2 #define XS_CURVE_H |
358 | 3 |
4 #include <gdk/gdk.h> | |
5 #include <gtk/gtkdrawingarea.h> | |
6 | |
7 #ifdef __cplusplus | |
8 extern "C" { | |
370
df6f12a00305
Work on filter curve widget begins, based on GtkCurve widget from Gtk+ 1.2.10.
Matti Hamalainen <ccr@tnsp.org>
parents:
358
diff
changeset
|
9 #endif |
358 | 10 |
545
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
11 /* Macros for type-classing this GtkWidget/object |
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
12 */ |
374
58079c6180a0
More removal of original curve code.
Matti Hamalainen <ccr@tnsp.org>
parents:
370
diff
changeset
|
13 #define XS_TYPE_CURVE (xs_curve_get_type()) |
58079c6180a0
More removal of original curve code.
Matti Hamalainen <ccr@tnsp.org>
parents:
370
diff
changeset
|
14 #define XS_CURVE(obj) (GTK_CHECK_CAST ((obj), XS_TYPE_CURVE, XSCurve)) |
58079c6180a0
More removal of original curve code.
Matti Hamalainen <ccr@tnsp.org>
parents:
370
diff
changeset
|
15 #define XS_CURVE_CLASS(luokka) (GTK_CHECK_CLASS_CAST ((luokka), XS_TYPE_CURVE, XSCurveClass)) |
58079c6180a0
More removal of original curve code.
Matti Hamalainen <ccr@tnsp.org>
parents:
370
diff
changeset
|
16 #define XS_IS_CURVE(obj) (GTK_CHECK_TYPE ((obj), XS_TYPE_CURVE)) |
58079c6180a0
More removal of original curve code.
Matti Hamalainen <ccr@tnsp.org>
parents:
370
diff
changeset
|
17 #define XS_IS_CURVE_CLASS(luokka) (GTK_CHECK_CLASS_TYPE ((luokka), XS_TYPE_CURVE)) |
358 | 18 |
19 | |
545
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
20 /* Structures |
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
21 */ |
370
df6f12a00305
Work on filter curve widget begins, based on GtkCurve widget from Gtk+ 1.2.10.
Matti Hamalainen <ccr@tnsp.org>
parents:
358
diff
changeset
|
22 typedef struct _XSCurve XSCurve; |
df6f12a00305
Work on filter curve widget begins, based on GtkCurve widget from Gtk+ 1.2.10.
Matti Hamalainen <ccr@tnsp.org>
parents:
358
diff
changeset
|
23 typedef struct _XSCurveClass XSCurveClass; |
358 | 24 |
502
54d86ee98b98
Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents:
384
diff
changeset
|
25 typedef struct { |
54d86ee98b98
Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents:
384
diff
changeset
|
26 gfloat x,y; |
54d86ee98b98
Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents:
384
diff
changeset
|
27 } t_xs_point; |
358 | 28 |
545
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
29 typedef struct { |
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
30 gint x, y; |
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
31 } t_xs_int_point; |
502
54d86ee98b98
Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents:
384
diff
changeset
|
32 |
54d86ee98b98
Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents:
384
diff
changeset
|
33 struct _XSCurve { |
384 | 34 GtkDrawingArea graph; |
358 | 35 |
502
54d86ee98b98
Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents:
384
diff
changeset
|
36 gint cursor_type; |
384 | 37 gfloat min_x; |
38 gfloat max_x; | |
39 gfloat min_y; | |
40 gfloat max_y; | |
41 GdkPixmap *pixmap; | |
502
54d86ee98b98
Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents:
384
diff
changeset
|
42 gint grab_point; /* point currently grabbed */ |
358 | 43 |
502
54d86ee98b98
Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents:
384
diff
changeset
|
44 /* control points */ |
545
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
45 gint nctlpoints; /* number of control points */ |
502
54d86ee98b98
Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents:
384
diff
changeset
|
46 t_xs_point *ctlpoints; /* array of control points */ |
358 | 47 }; |
48 | |
502
54d86ee98b98
Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents:
384
diff
changeset
|
49 struct _XSCurveClass { |
384 | 50 GtkDrawingAreaClass parent_class; |
358 | 51 }; |
52 | |
53 | |
370
df6f12a00305
Work on filter curve widget begins, based on GtkCurve widget from Gtk+ 1.2.10.
Matti Hamalainen <ccr@tnsp.org>
parents:
358
diff
changeset
|
54 GtkType xs_curve_get_type (void); |
df6f12a00305
Work on filter curve widget begins, based on GtkCurve widget from Gtk+ 1.2.10.
Matti Hamalainen <ccr@tnsp.org>
parents:
358
diff
changeset
|
55 GtkWidget* xs_curve_new (void); |
df6f12a00305
Work on filter curve widget begins, based on GtkCurve widget from Gtk+ 1.2.10.
Matti Hamalainen <ccr@tnsp.org>
parents:
358
diff
changeset
|
56 void xs_curve_reset (XSCurve *curve); |
df6f12a00305
Work on filter curve widget begins, based on GtkCurve widget from Gtk+ 1.2.10.
Matti Hamalainen <ccr@tnsp.org>
parents:
358
diff
changeset
|
57 void xs_curve_set_range (XSCurve *curve, |
545
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
58 gfloat min_x, gfloat min_y, |
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
59 gfloat max_x, gfloat max_y); |
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
60 gboolean xs_curve_realloc_data (XSCurve *curve, gint npoints); |
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
61 void xs_curve_get_data (XSCurve *curve, t_xs_point ***points, gint **npoints); |
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
62 gboolean xs_curve_set_points (XSCurve *curve, t_xs_int_point *points, gint npoints); |
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
63 gboolean xs_curve_get_points (XSCurve *curve, t_xs_int_point **points, gint *npoints); |
358 | 64 |
65 #ifdef __cplusplus | |
66 } | |
370
df6f12a00305
Work on filter curve widget begins, based on GtkCurve widget from Gtk+ 1.2.10.
Matti Hamalainen <ccr@tnsp.org>
parents:
358
diff
changeset
|
67 #endif |
358 | 68 |
526
fa95d942f226
Header cleanup; Moved some types from xmms-sid.h to xs_player.h; Renamed few functions.
Matti Hamalainen <ccr@tnsp.org>
parents:
502
diff
changeset
|
69 #endif /* XS_CURVE_H */ |