|
Graphviz
2.29.20120524.0446
|
00001 /* $Id$ $Revision$ */ 00002 /* vim:set shiftwidth=4 ts=8: */ 00003 00004 /************************************************************************* 00005 * Copyright (c) 2011 AT&T Intellectual Property 00006 * All rights reserved. This program and the accompanying materials 00007 * are made available under the terms of the Eclipse Public License v1.0 00008 * which accompanies this distribution, and is available at 00009 * http://www.eclipse.org/legal/epl-v10.html 00010 * 00011 * Contributors: See CVS logs. Details at http://www.graphviz.org/ 00012 *************************************************************************/ 00013 00014 #ifndef _UTILS_H 00015 #define _UTILS_H 1 00016 00017 #ifdef __cplusplus 00018 extern "C" { 00019 #endif 00020 00021 00022 #ifdef GVDLL 00023 #define extern __declspec(dllexport) 00024 #else 00025 #define extern 00026 #endif 00027 00028 /*visual studio*/ 00029 #ifdef WIN32_DLL 00030 #ifndef GVC_EXPORTS 00031 #define extern __declspec(dllimport) 00032 #endif 00033 #endif 00034 /*end visual studio*/ 00035 00036 #ifndef HAVE_STRCASECMP 00037 extern int strcasecmp(const char *s1, const char *s2); 00038 #endif 00039 #ifndef HAVE_STRNCASECMP 00040 extern int strncasecmp(const char *s1, const char *s2, size_t n); 00041 #endif 00042 00043 extern nodequeue *new_queue(int); 00044 extern void free_queue(nodequeue *); 00045 extern void enqueue(nodequeue *, Agnode_t *); 00046 extern Agnode_t *dequeue(nodequeue *); 00047 extern pointf Bezier(pointf *, int, double, pointf *, pointf *); 00048 extern void attach_attrs(graph_t * g); 00049 extern void attach_attrs_and_arrows(graph_t*, int*, int*); 00050 extern char *xml_string(char *str); 00051 extern void write_plain(GVJ_t * job, graph_t * g, FILE * f, boolean extend); 00052 extern void output_point(agxbuf *xbuf, pointf p); 00053 extern char *ps_string(char *s, int); 00054 extern char *strdup_and_subst_obj(char *str, void *obj); 00055 extern char *xml_url_string(char *s); 00056 extern void epsf_emit_body(GVJ_t *job, usershape_t *us); 00057 extern void epsf_define(GVJ_t * job); 00058 extern void undoClusterEdges(graph_t * g); 00059 #ifndef WITH_CGRAPH 00060 extern attrsym_t* safe_dcl(graph_t*, void*, char*, char*, 00061 attrsym_t * (*fun) (Agraph_t *, char *, char *)); 00062 #else 00063 extern Dt_t* mkClustMap (Agraph_t* g); 00064 extern Agraph_t* findCluster (Dt_t* map, char* name); 00065 extern attrsym_t* safe_dcl(graph_t * g, int obj_kind, char *name, char *def); 00066 #endif 00067 00068 extern int late_int(void *, Agsym_t *, int, int); 00069 extern double late_double(void *, Agsym_t *, double, double); 00070 extern char *late_nnstring(void *, Agsym_t *, char *); 00071 extern char *late_string(void *, Agsym_t *, char *); 00072 extern boolean late_bool(void *, Agsym_t *, int); 00073 00074 extern Agnode_t *UF_find(Agnode_t *); 00075 extern Agnode_t *UF_union(Agnode_t *, Agnode_t *); 00076 extern void UF_remove(Agnode_t *, Agnode_t *); 00077 extern void UF_singleton(Agnode_t *); 00078 extern void UF_setname(Agnode_t *, Agnode_t *); 00079 00080 extern char *Fgets(FILE * fp); 00081 extern const char *safefile(const char *filename); 00082 00083 extern boolean mapBool(char *, boolean); 00084 extern boolean mapbool(char *); 00085 extern int maptoken(char *, char **, int *); 00086 00087 extern boolean findStopColor (char* colorlist, char* clrs[2]); 00088 extern int test_toggle(void); 00089 00090 extern void common_init_node(node_t * n); 00091 extern int common_init_edge(edge_t * e); 00092 00093 extern void updateBB(graph_t * g, textlabel_t * lp); 00094 extern void compute_bb(Agraph_t *); 00095 extern boolean overlap_node(node_t *n, boxf b); 00096 extern boolean overlap_label(textlabel_t *lp, boxf b); 00097 extern boolean overlap_edge(edge_t *e, boxf b); 00098 00099 extern void get_gradient_points(pointf * A, pointf * G, int n, float angle, boolean isRadial); 00100 00101 extern int processClusterEdges(graph_t * g); 00102 00103 extern char *latin1ToUTF8(char *); 00104 extern char *htmlEntityUTF8(char *, graph_t* g); 00105 extern char* utf8ToLatin1 (char* ins); 00106 extern char* scanEntity (char* t, agxbuf* xb); 00107 00108 extern pointf dotneato_closest(splines * spl, pointf p); 00109 extern pointf neato_closest(splines * spl, pointf p); 00110 extern pointf spline_at_y(splines * spl, double y); 00111 00112 extern Agsym_t *setAttr(graph_t*, void*, char*name, char *value, Agsym_t*); 00113 extern void setEdgeType (graph_t* g, int dflt); 00114 extern int edgeType (char* s, int dflt); 00115 extern int is_a_cluster (Agraph_t* g); 00116 00117 /* from postproc.c */ 00118 extern void gv_nodesize(Agnode_t * n, boolean flip); 00119 00120 /* from timing.c */ 00121 extern void start_timer(void); 00122 extern double elapsed_sec(void); 00123 00124 /* from psusershape.c */ 00125 extern void cat_libfile(GVJ_t * job, const char **arglib, const char **stdlib); 00126 00127 00128 #ifdef WIN32 00129 extern void fix_fc(void); 00130 #endif 00131 00132 #undef extern 00133 00134 #ifdef __cplusplus 00135 } 00136 #endif 00137 00138 #endif /* _UTILS_H */
1.7.5