summaryrefslogtreecommitdiffstats
path: root/ganv/canvas.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2015-02-21 23:32:24 +0000
committerDavid Robillard <d@drobilla.net>2015-02-21 23:32:24 +0000
commitef71a1da33a3c68cad782029cacbc1d01328b4d6 (patch)
treef5bb6f29c467bf91c0ab8ca5072a81408522a311 /ganv/canvas.h
parent23682cbf1f98f35d4341efe354bee6f770d482e2 (diff)
downloadganv-ef71a1da33a3c68cad782029cacbc1d01328b4d6.tar.gz
ganv-ef71a1da33a3c68cad782029cacbc1d01328b4d6.tar.bz2
ganv-ef71a1da33a3c68cad782029cacbc1d01328b4d6.zip
Add API to specify module port order.
Also fix various redundant resize/update issues, improve performance. git-svn-id: http://svn.drobilla.net/lad/trunk/ganv@5592 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'ganv/canvas.h')
-rw-r--r--ganv/canvas.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/ganv/canvas.h b/ganv/canvas.h
index e923f65..e2a9867 100644
--- a/ganv/canvas.h
+++ b/ganv/canvas.h
@@ -91,6 +91,8 @@ typedef void (*GanvEdgeFunc)(GanvEdge* edge, void* data);
*/
typedef void (*GanvNodeFunc)(GanvNode* node, void* data);
+typedef int (*GanvPortOrderFunc)(const GanvPort*, const GanvPort*, void* data);
+
/**
* ganv_canvas_new:
*
@@ -100,6 +102,22 @@ GanvCanvas*
ganv_canvas_new(double width, double height);
/**
+ * ganv_canvas_set_wrapper:
+ *
+ * Set the opaque wrapper object for the canvas.
+ */
+void
+ganv_canvas_set_wrapper(GanvCanvas* canvas, void* wrapper);
+
+/**
+ * ganv_canvas_get_wrapper:
+ *
+ * Return an opaque pointer to the wrapper for the canvas.
+ */
+void*
+ganv_canvas_get_wrapper(GanvCanvas* canvas);
+
+/**
* ganv_canvas_clear:
*
* Remove all items from the canvas.
@@ -592,6 +610,21 @@ ganv_canvas_get_move_cursor(const GanvCanvas* canvas);
void
ganv_canvas_move_contents_to(GanvCanvas* canvas, double x, double y);
+/**
+ * ganv_canvas_set_port_order:
+ * @canvas The canvas to set the default port order on.
+ * @port_cmp Port comparison function.
+ * @data Data to be passed to order.
+ *
+ * Set a comparator function to use as the default order for ports on modules.
+ * If left unset, ports are shown in the order they are added.
+ */
+void
+ganv_canvas_set_port_order(GanvCanvas* canvas,
+ GanvPortOrderFunc port_cmp,
+ void* data);
+
+
G_END_DECLS
#endif /* GANV_CANVAS_H */