e16a92293f2622248da6534030a1374b84082c2e
[jabaws.git] / binaries / src / ViennaRNA / RNAforester / g2-0.70 / src / g2.h
1 /*****************************************************************************
2 **  Copyright (C) 1998-2005  Ljubomir Milanovic & Horst Wagner
3 **  This file is part of the g2 library
4 **
5 **  This library is free software; you can redistribute it and/or
6 **  modify it under the terms of the GNU Lesser General Public
7 **  License as published by the Free Software Foundation; either
8 **  version 2.1 of the License, or (at your option) any later version.
9 **
10 **  This library is distributed in the hope that it will be useful,
11 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
12 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 **  Lesser General Public License for more details.
14 **
15 **  You should have received a copy of the GNU Lesser General Public
16 **  License along with this library; if not, write to the Free Software
17 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 ******************************************************************************/
19 #ifndef _G2_H
20 #define _G2_H
21
22
23 /* g2 version */
24 #define G2_VERSION "0.70"
25
26
27 #if defined(__cplusplus)
28 extern "C"
29 {
30 #endif
31
32 /* Common Library header for DLL and application */
33 #ifdef WIN32
34 #ifdef G2DLL
35 #ifdef MAKEDLL
36 /* Create DLL */
37 #pragma message( "Building DLL library")
38 #define G2L __declspec( dllexport)
39 #else
40 /* Use DLL */
41 #define G2L __declspec( dllimport)
42 #endif
43 #else 
44 /* Use static win32 */
45 #define G2L
46 #endif
47 #else
48 /* Use non-win32 */
49 #define G2L
50 #endif
51
52
53 #define G2LD g2_ld()
54
55 #if defined(SWIG)
56 #if defined(DO_X11)
57 %include "X11/g2_X11.h"
58 #endif
59 #if defined(DO_PS)
60 %include "PS/g2_PS.h"
61 #endif
62 #if defined(DO_GD)
63 %include "GD/g2_gd.h"
64 #endif
65 #if defined(DO_WIN32)
66 %include "WIN32/g2_win32.h"
67 #endif
68
69 %module g2
70
71 %include typemaps.i
72
73 %{
74 #include "g2.h"
75 #if defined(DO_X11)
76 #include "g2_X11.h"
77 #endif
78 #if defined(DO_PS)
79 #include "g2_PS.h"
80 #endif
81 #if defined(DO_GD)
82 #include "g2_gd.h"
83 #endif
84 #if defined(DO_WIN32)
85 #include "WIN32/g2_win32.h"
86 #endif
87 %}
88
89 #endif
90 /* end SWIG */
91
92
93 enum QPshape {
94     QPrect, /**< rectangular quasi pixel */
95     QPcirc  /**< circle as a quasi pixel */
96 };
97
98 /* compatibility with old versions */
99 #define g2_draw_string(dev, x, y, text) g2_string((dev), (x), (y), (text))
100
101
102
103 G2L int  g2_open_vd(void);
104 G2L void g2_attach(int vd_dev, int dev);
105 G2L void g2_detach(int vd_dev, int dev);
106
107 G2L void g2_close(int dev);
108 G2L void g2_set_auto_flush(int dev, int on_off);
109 G2L void g2_flush(int dev);
110 G2L void g2_save(int dev);
111 G2L void g2_set_coordinate_system(int dev, double x_origin, double y_origin,
112                               double x_mul,    double y_mul);
113
114 G2L int  g2_ld();
115 G2L void g2_set_ld(int dev);
116
117 G2L int  g2_ink(int pd_dev, double red, double green, double blue);
118 G2L void g2_pen(int dev, int color);
119 G2L void g2_set_dash(int dev, int N, double *dashes);
120 G2L void g2_set_font_size(int dev, double size);
121 G2L void g2_set_line_width(int dev, double w);
122 G2L void g2_clear_palette(int dev);
123 G2L void g2_reset_palette(int dev);
124 G2L void g2_allocate_basic_colors(int dev);
125
126 G2L void g2_clear(int dev);
127 G2L void g2_set_background(int dev, int color);
128
129 G2L void g2_move(int dev, double x, double y);
130 G2L void g2_move_r(int dev, double dx, double dy);
131
132 G2L void g2_plot(int dev, double x, double y);
133 G2L void g2_plot_r(int dev, double dx, double dy);
134 G2L void g2_line(int dev, double x1, double y1, double x2, double y2);
135 G2L void g2_line_r(int dev, double dx, double dy);
136 G2L void g2_line_to(int dev, double x, double y);
137 G2L void g2_poly_line(int dev, int N_pt, double *points);
138 G2L void g2_triangle(int dev, double x1, double y1,
139                  double x2, double y2,
140                  double x3, double y3);
141 G2L void g2_filled_triangle(int dev, double x1, double y1,
142                         double x2, double y2,
143                         double x3, double y3);
144 G2L void g2_rectangle(int dev, double x1, double y1, double x2, double y2);
145 G2L void g2_filled_rectangle(int dev,
146                              double x1, double y1, double x2, double y2);
147 G2L void g2_polygon(int dev, int N_pt, double *points);
148 G2L void g2_filled_polygon(int dev, int N_pt, double *points);
149 G2L void g2_circle(int dev, double x, double y, double r);
150 G2L void g2_filled_circle(int dev, double x, double y, double r);
151 G2L void g2_ellipse(int dev, double x, double y, double r1, double r2);
152 G2L void g2_filled_ellipse(int dev, double x, double y, double r1, double r2);
153 G2L void g2_arc(int dev,
154             double x, double y,
155             double r1, double r2,
156             double a1, double a2);
157 G2L void g2_filled_arc(int dev, double x, double y,
158                    double r1, double r2,
159                    double a1, double a2);
160 G2L void g2_string(int dev, double x, double y, const char *text);
161 G2L void g2_image(int dev,
162                   double x, double y, int x_size, int y_size, int *pens);
163
164 G2L void g2_set_QP(int dev, double d, enum QPshape shape);
165 G2L void g2_plot_QP(int dev, double x, double y);
166 #if !defined(SWIG) 
167 G2L void g2_query_pointer(int dev, double *x, double *y, unsigned int *button);
168 #else
169 extern void g2_query_pointer(int dev, double *OUTPUT,double *OUTPUT,unsigned int *OUTPUT);
170 #endif
171
172     
173  /* Tijs Michels */
174  /* 06/16/99     */
175
176 G2L void g2_spline(int id, int n, double *points, int o);
177 G2L void g2_b_spline(int id, int n, double *points, int o);
178 G2L void g2_raspln(int id, int n, double *points, double tn);
179 G2L void g2_para_3(int id, int n, double *points);
180 G2L void g2_para_5(int id, int n, double *points);
181 G2L void g2_filled_spline(int id, int n, double *points, int o);
182 G2L void g2_filled_b_spline(int id, int n, double *points, int o);
183 G2L void g2_filled_raspln(int id, int n, double *points, double tn);
184 G2L void g2_filled_para_3(int id, int n, double *points);
185 G2L void g2_filled_para_5(int id, int n, double *points);
186
187
188 /** Actualy private function, but... **/
189 G2L int g2_device_exist(int dix);
190
191 /** Use only if you know what are you doing **/
192 #define G2_PD_HANDLES_SIZE 32
193 G2L void g2_get_pd_handles(int pd, void *handles[G2_PD_HANDLES_SIZE]);
194
195     
196 #if defined(__cplusplus)
197 } /* end extern "C" */
198 #endif
199
200 #endif /* _G2_H */