Mercurial > hg > xmms-sid
annotate src/xs_curve.h @ 545:425da926d310
Working on XSCurve widget implementation.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 23 Feb 2007 05:10:00 +0000 |
parents | fa95d942f226 |
children | b6c7c26569cc |
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 height; /* (cached) graph height in pixels */ |
54d86ee98b98
Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents:
384
diff
changeset
|
43 gint grab_point; /* point currently grabbed */ |
384 | 44 gint last; |
358 | 45 |
502
54d86ee98b98
Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents:
384
diff
changeset
|
46 /* control points */ |
545
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
47 gint nctlpoints; /* number of control points */ |
502
54d86ee98b98
Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents:
384
diff
changeset
|
48 t_xs_point *ctlpoints; /* array of control points */ |
358 | 49 }; |
50 | |
502
54d86ee98b98
Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents:
384
diff
changeset
|
51 struct _XSCurveClass { |
384 | 52 GtkDrawingAreaClass parent_class; |
358 | 53 }; |
54 | |
55 | |
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
|
56 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
|
57 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
|
58 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
|
59 void xs_curve_set_range (XSCurve *curve, |
545
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
60 gfloat min_x, gfloat min_y, |
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
61 gfloat max_x, gfloat max_y); |
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
62 gboolean xs_curve_realloc_data (XSCurve *curve, gint npoints); |
425da926d310
Working on XSCurve widget implementation.
Matti Hamalainen <ccr@tnsp.org>
parents:
526
diff
changeset
|
63 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
|
64 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
|
65 gboolean xs_curve_get_points (XSCurve *curve, t_xs_int_point **points, gint *npoints); |
358 | 66 |
67 #ifdef __cplusplus | |
68 } | |
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
|
69 #endif |
358 | 70 |
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
|
71 #endif /* XS_CURVE_H */ |