From 0731f12beaa0cfc0de56dc05ca3814143fd394a5 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 6 Dec 2011 21:01:38 +0000 Subject: FlowCanvas's successor is hereby dubbed Ganv. git-svn-id: http://svn.drobilla.net/lad/trunk/ganv@3820 a436a847-0d15-0410-975c-d299462d15a1 --- ganv/canvas.h | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 ganv/canvas.h (limited to 'ganv/canvas.h') diff --git a/ganv/canvas.h b/ganv/canvas.h new file mode 100644 index 0000000..00d722d --- /dev/null +++ b/ganv/canvas.h @@ -0,0 +1,105 @@ +/* This file is part of Ganv. + * Copyright 2007-2011 David Robillard + * + * Ganv is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free + * Software Foundation, either version 3 of the License, or (at your option) + * any later version. + * + * Ganv is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * details. + * + * You should have received a copy of the GNU General Public License + * along with Ganv. If not, see . + */ + +#ifndef GANV_CANVAS_H +#define GANV_CANVAS_H + +#include + +#include "ganv/types.h" +#include "ganv/edge.h" + +G_BEGIN_DECLS + +#define GANV_TYPE_CANVAS (ganv_canvas_get_type()) +#define GANV_CANVAS(obj) (GTK_CHECK_CAST((obj), GANV_TYPE_CANVAS, GanvCanvas)) +#define GANV_CANVAS_CLASS(klass) (GTK_CHECK_CLASS_CAST((klass), GANV_TYPE_CANVAS, GanvCanvasClass)) +#define GANV_IS_CANVAS(obj) (GTK_CHECK_TYPE((obj), GANV_TYPE_CANVAS)) +#define GANV_IS_CANVAS_CLASS(klass) (GTK_CHECK_CLASS_TYPE((klass), GANV_TYPE_CANVAS)) +#define GANV_CANVAS_GET_CLASS(obj) (GTK_CHECK_GET_CLASS((obj), GANV_TYPE_CANVAS, GanvCanvasClass)) + +struct GanvCanvasImpl; + +typedef struct _GanvCanvasClass GanvCanvasClass; + +typedef enum { + GANV_VERTICAL, + GANV_HORIZONTAL +} GanvDirection; + +struct _GanvCanvas +{ + GnomeCanvas canvas; + struct GanvCanvasImpl* impl; + GanvDirection direction; + gboolean locked; +}; + +struct _GanvCanvasClass { + GnomeCanvasClass parent_class; +}; + +GType ganv_canvas_get_type(void); + +GanvCanvas* ganv_canvas_new(void); + +GnomeCanvasGroup* +ganv_canvas_get_root(const GanvCanvas* canvas); + +/** Get the default font size in points. */ +double +ganv_canvas_get_default_font_size(const GanvCanvas* canvas); + +/** Get the current font size in points. */ +double +ganv_canvas_get_font_size(const GanvCanvas* canvas); + +void +ganv_canvas_clear_selection(GanvCanvas* canvas); + +typedef void (*GanvEdgeFunction)(GanvEdge* edge); + +/** + * ganv_canvas_for_each_edge_from: + * @f: (scope call): A function to call on every edge leaving @tail. + */ +void +ganv_canvas_for_each_edge_from(GanvCanvas* canvas, + const GanvNode* tail, + GanvEdgeFunction f); + +/** + * ganv_canvas_for_each_edge_to: + * @f: (scope call): A function to call on every edge entering @head. + */ +void +ganv_canvas_for_each_edge_to(GanvCanvas* canvas, + const GanvNode* head, + GanvEdgeFunction f); + +/** + * ganv_canvas_for_each_edge_on: + * @f: (scope call): A function to call on every edge attached to @node. + */ +void +ganv_canvas_for_each_edge_on(GanvCanvas* canvas, + const GanvNode* node, + GanvEdgeFunction f); + +G_END_DECLS + +#endif /* GANV_CANVAS_H */ -- cgit v1.2.1