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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
4 #include <gdk/gdk.h>
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5 #include <gtk/gtkdrawingarea.h>
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 #ifdef __cplusplus
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
18
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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
Matti Hamalainen <ccr@tnsp.org>
parents: 374
diff changeset
34 GtkDrawingArea graph;
358
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
35
502
54d86ee98b98 Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents: 384
diff changeset
36 gint cursor_type;
384
Matti Hamalainen <ccr@tnsp.org>
parents: 374
diff changeset
37 gfloat min_x;
Matti Hamalainen <ccr@tnsp.org>
parents: 374
diff changeset
38 gfloat max_x;
Matti Hamalainen <ccr@tnsp.org>
parents: 374
diff changeset
39 gfloat min_y;
Matti Hamalainen <ccr@tnsp.org>
parents: 374
diff changeset
40 gfloat max_y;
Matti Hamalainen <ccr@tnsp.org>
parents: 374
diff changeset
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
Matti Hamalainen <ccr@tnsp.org>
parents: 374
diff changeset
44 gint last;
358
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
49 };
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
50
502
54d86ee98b98 Alpha/preliminary curve widget code merged.
Matti Hamalainen <ccr@tnsp.org>
parents: 384
diff changeset
51 struct _XSCurveClass {
384
Matti Hamalainen <ccr@tnsp.org>
parents: 374
diff changeset
52 GtkDrawingAreaClass parent_class;
358
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
53 };
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
54
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
66
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
67 #ifdef __cplusplus
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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
4f247b19c9ea Add new files
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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 */