recalculate the bounding boxes when drawing primatives via the libgerbv API
[geda-gerbv.git] / src / draw-gdk.h
blob10b72a36322f73fa8777e69a2fa27dfef798286a
1 /*
2 * gEDA - GNU Electronic Design Automation
3 * This file is a part of gerbv.
5 * Copyright (C) 2000-2002 Stefan Petersen (spe@stacken.kth.se)
7 * $Id$
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA
24 /** \file draw-gdk.h
25 \brief Header info for the GDK rendering functions
26 \ingroup libgerbv
29 #ifndef DRAW_GDK_H
30 #define DRAW_GDK_H
32 #include <gdk/gdk.h>
34 /* Default mouse cursor. Perhaps redefine this to a variable later? */
35 #define GERBV_DEF_CURSOR NULL
37 enum draw_mode_t {DRAW_IMAGE, DRAW_SELECTIONS, FIND_SELECTIONS};
40 * Convert a gerber image to a GDK clip mask to be used when creating pixmap
42 int draw_gdk_image_to_pixmap(GdkPixmap **pixmap, gerbv_image_t *image,
43 double scale, double trans_x, double trans_y,
44 gchar drawMode,
45 gerbv_selection_info_t *selectionInfo, gerbv_render_info_t *renderInfo,
46 gerbv_user_transformation_t transform);
48 typedef enum {
49 CIRCLE_EXPOSURE,
50 CIRCLE_DIAMETER,
51 CIRCLE_CENTER_X,
52 CIRCLE_CENTER_Y,
53 } AGERBV_APTYPE_MACRO_CIRCLE_INDEX;
55 typedef enum {
56 OUTLINE_EXPOSURE,
57 OUTLINE_NUMBER_OF_POINTS,
58 OUTLINE_FIRST_X,
59 OUTLINE_FIRST_Y,
60 OUTLINE_ROTATION
61 } AGERBV_APTYPE_MACRO_OUTLINE_INDEX;
63 typedef enum {
64 POLYGON_EXPOSURE,
65 POLYGON_NUMBER_OF_POINTS,
66 POLYGON_CENTER_X,
67 POLYGON_CENTER_Y,
68 POLYGON_DIAMETER,
69 POLYGON_ROTATION
70 } AGERBV_APTYPE_MACRO_POLYGON_INDEX;
72 typedef enum {
73 MOIRE_CENTER_X,
74 MOIRE_CENTER_Y,
75 MOIRE_OUTSIDE_DIAMETER,
76 MOIRE_CIRCLE_THICKNESS,
77 MOIRE_GAP_WIDTH,
78 MOIRE_NUMBER_OF_CIRCLES,
79 MOIRE_CROSSHAIR_THICKNESS,
80 MOIRE_CROSSHAIR_LENGTH,
81 MOIRE_ROTATION
82 } AGERBV_APTYPE_MACRO_MOIRE_INDEX;
84 typedef enum {
85 THERMAL_CENTER_X,
86 THERMAL_CENTER_Y,
87 THERMAL_OUTSIDE_DIAMETER,
88 THERMAL_INSIDE_DIAMETER,
89 THERMAL_CROSSHAIR_THICKNESS,
90 THERMAL_ROTATION
91 } AGERBV_APTYPE_MACRO_THERMAL_INDEX;
93 typedef enum {
94 LINE20_EXPOSURE,
95 LINE20_LINE_WIDTH,
96 LINE20_START_X,
97 LINE20_START_Y,
98 LINE20_END_X,
99 LINE20_END_Y,
100 LINE20_ROTATION
101 } AGERBV_APTYPE_MACRO_LINE20_INDEX;
103 typedef enum {
104 LINE21_EXPOSURE,
105 LINE21_WIDTH,
106 LINE21_HEIGHT,
107 LINE21_CENTER_X,
108 LINE21_CENTER_Y,
109 LINE21_ROTATION
110 } AGERBV_APTYPE_MACRO_LINE21_INDEX;
112 typedef enum {
113 LINE22_EXPOSURE,
114 LINE22_WIDTH,
115 LINE22_HEIGHT,
116 LINE22_LOWER_LEFT_X,
117 LINE22_LOWER_LEFT_Y,
118 LINE22_ROTATION
119 } AGERBV_APTYPE_MACRO_LINE22_INDEX;
121 #endif /* DRAW_GDK_H */