aboutsummaryrefslogtreecommitdiff
path: root/libbanshee/engine/dot.h
diff options
context:
space:
mode:
Diffstat (limited to 'libbanshee/engine/dot.h')
-rw-r--r--libbanshee/engine/dot.h126
1 files changed, 126 insertions, 0 deletions
diff --git a/libbanshee/engine/dot.h b/libbanshee/engine/dot.h
new file mode 100644
index 0000000..7e221e6
--- /dev/null
+++ b/libbanshee/engine/dot.h
@@ -0,0 +1,126 @@
+/*
+ * Copyright (c) 2000-2001
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#ifndef DOT_H
+#define DOT_H
+
+#include <stdio.h>
+#include "linkage.h"
+#include "bool.h"
+
+EXTERN_C_BEGIN
+
+typedef int dot_node;
+
+typedef struct
+{
+ enum n_attrs
+ {
+ n_color,
+ n_fontcolor,
+ n_fontname,
+ n_fontsize,
+ n_height,
+ n_width,
+ n_label,
+ n_layer,
+ n_shape,
+ n_shapefile,
+ n_style
+ } name;
+ const char *value;
+} node_attr;
+
+typedef struct
+{
+ enum e_attrs
+ {
+ e_color,
+ e_decorate,
+ e_dir,
+ e_fontcolor,
+ e_fontname,
+ e_fontsize,
+ e_id,
+ e_label,
+ e_layer,
+ e_minlen,
+ e_style,
+ e_weight
+ } name;
+ const char *value;
+} edge_attr;
+
+typedef struct
+{
+ enum g_attrs
+ {
+ g_center,
+ g_clusterrank,
+ g_color,
+ g_concentrate,
+ g_fontcolor,
+ g_fontname,
+ g_fontsize,
+ g_label,
+ g_layerseq,
+ g_margin,
+ g_mclimit,
+ g_nodesep,
+ g_nslimit,
+ g_ordering,
+ g_orientation,
+ g_page,
+ g_rank,
+ g_rankdir,
+ g_ranksep,
+ g_ratio,
+ g_size
+ } name;
+ const char *value;
+} graph_attr;
+
+void dot_start(FILE *to,const char *name,bool directed,bool strict);
+
+void dot_global_graph_style(graph_attr *attrs,int n);
+void dot_global_edge_style(edge_attr *attrs,int n);
+void dot_global_node_style(node_attr *attrs,int n);
+
+dot_node dot_get_node(char *label) deletes;
+void dot_node_style(dot_node node,node_attr *attrs,int n);
+
+void dot_plain_edge(dot_node from, dot_node to);
+void dot_styled_edge(dot_node from, dot_node to, edge_attr *attrs,int n);
+
+void dot_end(void) deletes;
+
+EXTERN_C_END
+
+#endif /* DOT_H */