1 /*
2  * goffice-utils.h:
3  *
4  * Copyright (C) 2003-2004 Jody Goldberg (jody@gnome.org)
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License as
8  * published by the Free Software Foundation; either version 2 of the
9  * License, or (at your option) version 3.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
19  * USA
20  */
21 
22 #ifndef GOFFICE_UTILS_H
23 #define GOFFICE_UTILS_H
24 
25 #include <glib.h>
26 
27 G_BEGIN_DECLS
28 
29 typedef guint32					GOColor;
30 typedef struct _GOBezierSpline  GOBezierSpline;
31 typedef struct _GOEditor        GOEditor;
32 typedef struct _GOFont			GOFont;
33 typedef struct _GOFontMetrics	GOFontMetrics;
34 typedef struct _GOPattern		GOPattern;
35 typedef struct _GOMarker		GOMarker;
36 typedef struct _GOFormat		GOFormat;
37 typedef struct _GODateConventions	GODateConventions;
38 typedef struct _GOImage			GOImage;
39 typedef struct _GOPixbuf		GOPixbuf;
40 typedef struct _GOSvg			GOSvg;
41 typedef struct _GOEmf			GOEmf;
42 typedef struct _GOSpectre		GOSpectre;
43 typedef struct _GOPath          GOPath;
44 typedef struct _GOString        GOString;
45 typedef struct _GOStyle			GOStyle;
46 typedef struct _GOStyledObject	GOStyledObject;
47 
48 /* rename this */
49 typedef struct _GOMemChunk		GOMemChunk;
50 
51 typedef const char *(*GOTranslateFunc)(char const *path, gpointer func_data);
52 
53 typedef enum {
54 	GO_LINE_NONE,
55 	GO_LINE_SOLID,
56 	GO_LINE_S_DOT,
57 	GO_LINE_S_DASH_DOT,
58 	GO_LINE_S_DASH_DOT_DOT,
59 	GO_LINE_DASH_DOT_DOT_DOT,
60 	GO_LINE_DOT,
61 	GO_LINE_S_DASH,
62 	GO_LINE_DASH,
63 	GO_LINE_LONG_DASH,
64 	GO_LINE_DASH_DOT,
65 	GO_LINE_DASH_DOT_DOT,
66 	GO_LINE_MAX
67 } GOLineDashType;
68 
69 typedef enum {
70 	GO_LINE_INTERPOLATION_LINEAR,
71 	GO_LINE_INTERPOLATION_SPLINE,
72 	GO_LINE_INTERPOLATION_CLOSED_SPLINE,
73 	GO_LINE_INTERPOLATION_CUBIC_SPLINE,
74 	GO_LINE_INTERPOLATION_PARABOLIC_CUBIC_SPLINE,
75 	GO_LINE_INTERPOLATION_CUBIC_CUBIC_SPLINE,
76 	GO_LINE_INTERPOLATION_CLAMPED_CUBIC_SPLINE,
77 	GO_LINE_INTERPOLATION_STEP_START,
78 	GO_LINE_INTERPOLATION_STEP_END,
79 	GO_LINE_INTERPOLATION_STEP_CENTER_X,
80 	GO_LINE_INTERPOLATION_STEP_CENTER_Y,
81 	GO_LINE_INTERPOLATION_ODF_SPLINE,
82 	GO_LINE_INTERPOLATION_MAX
83 } GOLineInterpolation;
84 
85 typedef enum
86 {
87   GO_ANCHOR_CENTER,
88   GO_ANCHOR_NORTH,
89   GO_ANCHOR_NORTH_WEST,
90   GO_ANCHOR_NORTH_EAST,
91   GO_ANCHOR_SOUTH,
92   GO_ANCHOR_SOUTH_WEST,
93   GO_ANCHOR_SOUTH_EAST,
94   GO_ANCHOR_WEST,
95   GO_ANCHOR_EAST,
96   GO_ANCHOR_BASELINE_CENTER,
97   GO_ANCHOR_BASELINE_WEST,
98   GO_ANCHOR_BASELINE_EAST,
99   GO_ANCHOR_N		= GO_ANCHOR_NORTH,
100   GO_ANCHOR_NW		= GO_ANCHOR_NORTH_WEST,
101   GO_ANCHOR_NE		= GO_ANCHOR_NORTH_EAST,
102   GO_ANCHOR_S		= GO_ANCHOR_SOUTH,
103   GO_ANCHOR_SW		= GO_ANCHOR_SOUTH_WEST,
104   GO_ANCHOR_SE		= GO_ANCHOR_SOUTH_EAST,
105   GO_ANCHOR_W		= GO_ANCHOR_WEST,
106   GO_ANCHOR_E		= GO_ANCHOR_EAST,
107   GO_ANCHOR_B		= GO_ANCHOR_BASELINE_CENTER,
108   GO_ANCHOR_BW		= GO_ANCHOR_BASELINE_WEST,
109   GO_ANCHOR_BE		= GO_ANCHOR_BASELINE_EAST
110 } GOAnchorType;
111 
112 typedef enum {
113 	GOD_ANCHOR_DIR_UNKNOWN    = 0xFF,
114 	GOD_ANCHOR_DIR_UP_LEFT    = 0x00,
115 	GOD_ANCHOR_DIR_UP_RIGHT   = 0x01,
116 	GOD_ANCHOR_DIR_DOWN_LEFT  = 0x10,
117 	GOD_ANCHOR_DIR_DOWN_RIGHT = 0x11,
118 
119 	GOD_ANCHOR_DIR_NONE_MASK  = 0x00,
120 	GOD_ANCHOR_DIR_H_MASK	  = 0x01,
121 	GOD_ANCHOR_DIR_RIGHT	  = 0x01,
122 	GOD_ANCHOR_DIR_V_MASK	  = 0x10,
123 	GOD_ANCHOR_DIR_DOWN	  = 0x10
124 } GODrawingAnchorDir;
125 
126 typedef struct _GODrawingAnchor {
127 	int			pos_pts [4];	/* position in points */
128 	GODrawingAnchorDir	direction;
129 } GODrawingAnchor;
130 
131 typedef enum {
132 	GO_FONT_SCRIPT_SUB	= -1,
133 	GO_FONT_SCRIPT_STANDARD =  0,
134 	GO_FONT_SCRIPT_SUPER	=  1
135 } GOFontScript;
136 
137 typedef enum {
138 	GO_RESOURCE_NATIVE,
139 	GO_RESOURCE_RO,
140 	GO_RESOURCE_RW,
141 	GO_RESOURCE_CHILD,
142 	GO_RESOURCE_EXTERNAL,
143 	GO_RESOURCE_GENERATED,
144 	GO_RESOURCE_INVALID
145 } GoResourceType;
146 
147 G_END_DECLS
148 
149 #include <goffice/goffice.h>
150 
151 #include <goffice/utils/datetime.h>
152 #include <goffice/utils/go-bezier.h>
153 #include <goffice/utils/go-cairo.h>
154 #include <goffice/utils/go-color.h>
155 #include <goffice/utils/go-editor.h>
156 #include <goffice/utils/go-file.h>
157 #include <goffice/utils/go-font.h>
158 #include <goffice/utils/go-format.h>
159 #include <goffice/utils/go-geometry.h>
160 #include <goffice/utils/go-glib-extras.h>
161 #include <goffice/utils/go-gdk-pixbuf.h>
162 #include <goffice/utils/go-gradient.h>
163 #include <goffice/utils/go-image.h>
164 #include <goffice/utils/go-pixbuf.h>
165 #include <goffice/utils/go-svg.h>
166 #include <goffice/utils/go-emf.h>
167 #include <goffice/utils/go-spectre.h>
168 #include <goffice/utils/go-libxml-extras.h>
169 #include <goffice/utils/go-line.h>
170 #include <goffice/utils/go-locale.h>
171 #include <goffice/utils/go-marker.h>
172 #include <goffice/utils/go-mml-to-itex.h>
173 #include <goffice/utils/go-pango-extras.h>
174 #include <goffice/utils/go-path.h>
175 #include <goffice/utils/go-pattern.h>
176 #include <goffice/utils/go-persist.h>
177 #include <goffice/utils/go-rsm.h>
178 #include <goffice/utils/go-string.h>
179 #include <goffice/utils/go-styled-object.h>
180 #include <goffice/utils/go-style.h>
181 #include <goffice/utils/go-undo.h>
182 #include <goffice/utils/go-unit.h>
183 #include <goffice/utils/go-units.h>
184 #include <goffice/utils/regutf8.h>
185 
186 GType go_resource_type_get_type (void);
187 char *go_uuid (void);
188 
189 #endif /* GOFFICE_UTILS_H */
190