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 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 /* Lefteris Koutsofios - AT&T Labs Research */
19 
20 #ifndef _GCOMMON_H
21 #define _GCOMMON_H
22 extern HANDLE hinstance, hprevinstance;
23 
24 /* point and rect structures */
25 typedef POINT PIXxy_t;
26 typedef PIXxy_t PIXpoint_t;
27 typedef PIXxy_t PIXsize_t;
28 typedef struct PIXrect_t {
29     PIXxy_t o, c;
30 } PIXrect_t;
31 
32 extern int Gpopdownflag;
33 extern int Gdepth;
34 extern int Gnocallbacks;
35 extern int menuselected;
36 extern int menupoped;
37 
38 extern char *Gbufp;
39 extern int Gbufn, Gbufi;
40 #define BUFINCR 1024
41 #define BUFSIZE sizeof (char)
42 
43 extern PIXpoint_t *Gppp;
44 extern int Gppn, Gppi;
45 #define PPINCR 100
46 #define PPSIZE sizeof (PIXpoint_t)
47 
48 typedef struct Gfont_t {
49     char *name;
50     int size;
51     HFONT font;
52 } Gfont_t;
53 extern Gfont_t *Gfontp;
54 extern int Gfontn;
55 #define FONTSIZE sizeof (Gfont_t)
56 #define SETFONT(font) { \
57     if (font != WCU->font) { \
58         WCU->font = font; \
59         SelectObject (GC, font); \
60     } \
61 }
62 
63 #define GETSIZE(sin, sout, smin) ( \
64     sout.x = (sin.x > smin) ? sin.x + 0.5 : smin, \
65     sout.y = (sin.y > smin) ? sin.y + 0.5 : smin \
66 )
67 #define GETORIGIN(oin, oout) ( \
68     oout.x = oin.x + 0.5, oout.y = oin.y + 0.5 \
69 )
70 
71 int Ginitgraphics (void);
72 int Gtermgraphics (void);
73 int Gsync (void);
74 
75 int GAcreatewidget (Gwidget_t *, Gwidget_t *, int, Gwattr_t *);
76 int GAsetwidgetattr (Gwidget_t *, int, Gwattr_t *);
77 int GAgetwidgetattr (Gwidget_t *, int, Gwattr_t *);
78 int GAdestroywidget (Gwidget_t *);
79 
80 int GBcreatewidget (Gwidget_t *, Gwidget_t *, int, Gwattr_t *);
81 int GBsetwidgetattr (Gwidget_t *, int, Gwattr_t *);
82 int GBgetwidgetattr (Gwidget_t *, int, Gwattr_t *);
83 int GBdestroywidget (Gwidget_t *);
84 
85 int GCcreatewidget (Gwidget_t *, Gwidget_t *, int, Gwattr_t *);
86 int GCsetwidgetattr (Gwidget_t *, int, Gwattr_t *);
87 int GCgetwidgetattr (Gwidget_t *, int, Gwattr_t *);
88 int GCdestroywidget (Gwidget_t *);
89 int GCcanvasclear (Gwidget_t *);
90 int GCsetgfxattr (Gwidget_t *, Ggattr_t *);
91 int GCgetgfxattr (Gwidget_t *, Ggattr_t *);
92 int GCarrow (Gwidget_t *, Gpoint_t, Gpoint_t, Ggattr_t *);
93 int GCline (Gwidget_t *, Gpoint_t, Gpoint_t, Ggattr_t *);
94 int GCbox (Gwidget_t *, Grect_t, Ggattr_t *);
95 int GCpolygon (Gwidget_t *, int, Gpoint_t *, Ggattr_t *);
96 int GCsplinegon (Gwidget_t *, int, Gpoint_t *, Ggattr_t *);
97 int GCarc (Gwidget_t *, Gpoint_t, Gsize_t, double, double, Ggattr_t *);
98 int GCtext (
99     Gwidget_t *, Gtextline_t *, int, Gpoint_t,
100     char *, double, char *, Ggattr_t *
101 );
102 int GCgettextsize (Gwidget_t *, Gtextline_t *, int, char *, double, Gsize_t *);
103 int GCcreatebitmap (Gwidget_t *, Gbitmap_t *, Gsize_t);
104 int GCdestroybitmap (Gbitmap_t *);
105 int GCreadbitmap (Gwidget_t *, Gbitmap_t *, FILE *);
106 int GCwritebitmap (Gbitmap_t *, FILE *);
107 int GCbitblt (Gwidget_t *, Gpoint_t, Grect_t, Gbitmap_t *, char *, Ggattr_t *);
108 int GCgetmousecoords (Gwidget_t *, Gpoint_t *, int *);
109 
110 int GLcreatewidget (Gwidget_t *, Gwidget_t *, int, Gwattr_t *);
111 int GLsetwidgetattr (Gwidget_t *, int, Gwattr_t *);
112 int GLgetwidgetattr (Gwidget_t *, int, Gwattr_t *);
113 int GLdestroywidget (Gwidget_t *);
114 
115 int GMcreatewidget (Gwidget_t *, Gwidget_t *, int, Gwattr_t *);
116 int GMsetwidgetattr (Gwidget_t *, int, Gwattr_t *);
117 int GMgetwidgetattr (Gwidget_t *, int, Gwattr_t *);
118 int GMdestroywidget (Gwidget_t *);
119 int GMmenuaddentries (Gwidget_t *, int, char **);
120 int GMmenudisplay (Gwidget_t *, Gwidget_t *);
121 
122 int GPcreatewidget (Gwidget_t *, Gwidget_t *, int, Gwattr_t *);
123 int GPsetwidgetattr (Gwidget_t *, int, Gwattr_t *);
124 int GPgetwidgetattr (Gwidget_t *, int, Gwattr_t *);
125 int GPdestroywidget (Gwidget_t *);
126 int GPcanvasclear (Gwidget_t *);
127 int GPsetgfxattr (Gwidget_t *, Ggattr_t *);
128 int GPgetgfxattr (Gwidget_t *, Ggattr_t *);
129 int GParrow (Gwidget_t *, Gpoint_t, Gpoint_t, Ggattr_t *);
130 int GPline (Gwidget_t *, Gpoint_t, Gpoint_t, Ggattr_t *);
131 int GPbox (Gwidget_t *, Grect_t, Ggattr_t *);
132 int GPpolygon (Gwidget_t *, int, Gpoint_t *, Ggattr_t *);
133 int GPsplinegon (Gwidget_t *, int, Gpoint_t *, Ggattr_t *);
134 int GParc (Gwidget_t *, Gpoint_t, Gsize_t, double, double, Ggattr_t *);
135 int GPtext (
136     Gwidget_t *, Gtextline_t *, int, Gpoint_t,
137     char *, double, char *, Ggattr_t *
138 );
139 int GPcreatebitmap (Gwidget_t *, Gbitmap_t *, Gsize_t);
140 int GPdestroybitmap (Gbitmap_t *);
141 int GPreadbitmap (Gwidget_t *, Gbitmap_t *, FILE *);
142 int GPwritebitmap (Gbitmap_t *, FILE *);
143 int GPbitblt (Gwidget_t *, Gpoint_t, Grect_t, Gbitmap_t *, char *, Ggattr_t *);
144 
145 int GQcreatewidget (Gwidget_t *, Gwidget_t *, int, Gwattr_t *);
146 int GQsetwidgetattr (Gwidget_t *, int, Gwattr_t *);
147 int GQgetwidgetattr (Gwidget_t *, int, Gwattr_t *);
148 int GQdestroywidget (Gwidget_t *);
149 int GQqueryask (Gwidget_t *, char *, char *, char *, int);
150 
151 int GScreatewidget (Gwidget_t *, Gwidget_t *, int, Gwattr_t *);
152 int GSsetwidgetattr (Gwidget_t *, int, Gwattr_t *);
153 int GSgetwidgetattr (Gwidget_t *, int, Gwattr_t *);
154 int GSdestroywidget (Gwidget_t *);
155 
156 int GTcreatewidget (Gwidget_t *, Gwidget_t *, int, Gwattr_t *);
157 int GTsetwidgetattr (Gwidget_t *, int, Gwattr_t *);
158 int GTgetwidgetattr (Gwidget_t *, int, Gwattr_t *);
159 int GTdestroywidget (Gwidget_t *);
160 
161 int GVcreatewidget (Gwidget_t *, Gwidget_t *, int, Gwattr_t *);
162 int GVsetwidgetattr (Gwidget_t *, int, Gwattr_t *);
163 int GVgetwidgetattr (Gwidget_t *, int, Gwattr_t *);
164 int GVdestroywidget (Gwidget_t *);
165 
166 void Gawinitialize (Gwidget_t *, int);
167 void Gawdestroy (Gwidget_t *);
168 void Gawresize (Gwidget_t *);
169 void Gawinsertchild (Gwidget_t *, Gwidget_t *);
170 void Gawdeletechild (Gwidget_t *, Gwidget_t *);
171 
172 void Gadjustwrect (Gwidget_t *, PIXsize_t *);
173 void Gadjustclip (Gwidget_t *);
174 Gpoint_t ppixtodraw (Gwidget_t *, PIXpoint_t);
175 #endif /* _GCOMMON_H */
176 
177 #ifdef __cplusplus
178 }
179 #endif
180 
181