1 /* $Id$ $Revision$ */
2 /* vim:set shiftwidth=4 ts=8: */
3 
4 /*************************************************************************
5  * Copyright (c) 2011 AT&T Intellectual Property
6  * All rights reserved. This program and the accompanying materials
7  * are made available under the terms of the Eclipse Public License v1.0
8  * which accompanies this distribution, and is available at
9  * http://www.eclipse.org/legal/epl-v10.html
10  *
11  * Contributors: See CVS logs. Details at http://www.graphviz.org/
12  *************************************************************************/
13 
14 /* this is to get the following win32 DLL junk to work.
15  * if ever tempted to remove this, first please read:
16  * http://joel.editthispage.com/stories/storyReader$47
17  */
18 #ifndef GLOBALS_H
19 #define GLOBALS_H
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 #ifndef __CYGWIN__
26 #if defined(_BLD_dotneato) && defined(_DLL)
27 #   define external __EXPORT__
28 #endif
29 #if !defined(_BLD_dotneato) && defined(__IMPORT__)
30 #   define external __IMPORT__
31 #endif
32 #if defined(GVDLL)
33 #if !defined(_BLD_gvc)
34 #define extern	__declspec(dllimport)
35 #else
36 #define extern __declspec(dllexport)
37 #endif
38 #endif
39 #endif
40 /*visual studio*/
41 #ifdef _WIN32
42 #ifndef GVC_EXPORTS
43 #define extern __declspec(dllimport)
44 #endif
45 #endif
46 /*end visual studio*/
47 
48 #ifndef external
49 #   define external   extern
50 #endif
51 #ifndef EXTERN
52 #define EXTERN extern
53 #endif
54 
55     EXTERN char *Version;
56     EXTERN char **Files;	/* from command line */
57     EXTERN const char **Lib;		/* from command line */
58     EXTERN char *CmdName;
59     EXTERN char *specificFlags;
60     EXTERN char *specificItems;
61     EXTERN char *Gvfilepath;  /* Per-process path of files allowed in image attributes (also ps libs) */
62     EXTERN char *Gvimagepath; /* Per-graph path of files allowed in image attributes  (also ps libs) */
63 
64     EXTERN unsigned char Verbose;
65     EXTERN unsigned char Reduce;
66     EXTERN int MemTest;
67     EXTERN char *HTTPServerEnVar;
68     EXTERN char *Output_file_name;
69     EXTERN int graphviz_errors;
70     EXTERN int Nop;
71     EXTERN double PSinputscale;
72     EXTERN int Syntax_errors;
73     EXTERN int Show_cnt;
74     EXTERN char** Show_boxes;	/* emit code for correct box coordinates */
75     EXTERN int CL_type;		/* NONE, LOCAL, GLOBAL */
76     EXTERN unsigned char Concentrate;	/* if parallel edges should be merged */
77     EXTERN double Epsilon;	/* defined in input_graph */
78     EXTERN int MaxIter;
79     EXTERN int Ndim;
80     EXTERN int State;		/* last finished phase */
81     EXTERN int EdgeLabelsDone;	/* true if edge labels have been positioned */
82     EXTERN double Initial_dist;
83     EXTERN double Damping;
84     EXTERN int Y_invert;	/* invert y in dot & plain output */
85     EXTERN int GvExitOnUsage;   /* gvParseArgs() should exit on usage or error */
86 
87     EXTERN Agsym_t
88 	*G_activepencolor, *G_activefillcolor,
89 	*G_selectedpencolor, *G_selectedfillcolor,
90 	*G_visitedpencolor, *G_visitedfillcolor,
91 	*G_deletedpencolor, *G_deletedfillcolor,
92 	*G_ordering, *G_peripheries, *G_penwidth,
93 	*G_gradientangle, *G_margin;
94     EXTERN Agsym_t
95 	*N_height, *N_width, *N_shape, *N_color, *N_fillcolor,
96 	*N_activepencolor, *N_activefillcolor,
97 	*N_selectedpencolor, *N_selectedfillcolor,
98 	*N_visitedpencolor, *N_visitedfillcolor,
99 	*N_deletedpencolor, *N_deletedfillcolor,
100 	*N_fontsize, *N_fontname, *N_fontcolor, *N_margin,
101 	*N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes,
102 	*N_sides, *N_peripheries, *N_ordering, *N_orientation,
103 	*N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_imagepos, *N_layer,
104 	*N_group, *N_comment, *N_vertices, *N_z,
105 	*N_penwidth, *N_gradientangle;
106     EXTERN Agsym_t
107 	*E_weight, *E_minlen, *E_color, *E_fillcolor,
108 	*E_activepencolor, *E_activefillcolor,
109 	*E_selectedpencolor, *E_selectedfillcolor,
110 	*E_visitedpencolor, *E_visitedfillcolor,
111 	*E_deletedpencolor, *E_deletedfillcolor,
112 	*E_fontsize, *E_fontname, *E_fontcolor,
113 	*E_label, *E_xlabel, *E_dir, *E_style, *E_decorate,
114 	*E_showboxes, *E_arrowsz, *E_constr, *E_layer,
115 	*E_comment, *E_label_float,
116 	*E_samehead, *E_sametail,
117 	*E_arrowhead, *E_arrowtail,
118 	*E_headlabel, *E_taillabel,
119 	*E_labelfontsize, *E_labelfontname, *E_labelfontcolor,
120 	*E_labeldistance, *E_labelangle,
121 	*E_tailclip, *E_headclip,
122 	*E_penwidth;
123 
124     extern struct fdpParms_s* fdp_parms;
125 
126 #undef external
127 #undef EXTERN
128 #ifdef extern
129 #undef extern
130 #endif
131 
132 #ifdef __cplusplus
133 }
134 #endif
135 #endif
136