gerbv  2.6A
draw-gdk.h
Go to the documentation of this file.
1 /*
2  * gEDA - GNU Electronic Design Automation
3  * This file is a part of gerbv.
4  *
5  * Copyright (C) 2000-2002 Stefan Petersen (spe@stacken.kth.se)
6  *
7  * $Id$
8  *
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.
13  *
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.
18  *
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
22  */
23 
29 #ifndef DRAW_GDK_H
30 #define DRAW_GDK_H
31 
32 #include <gdk/gdk.h>
33 
34 /* Default mouse cursor. Perhaps redefine this to a variable later? */
35 #define GERBV_DEF_CURSOR NULL
36 
37 enum draw_mode_t {DRAW_IMAGE, DRAW_SELECTIONS, FIND_SELECTIONS};
38 
39 /*
40  * Convert a gerber image to a GDK clip mask to be used when creating pixmap
41  */
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);
47 
48 typedef enum {
49  CIRCLE_EXPOSURE,
50  CIRCLE_DIAMETER,
51  CIRCLE_CENTER_X,
52  CIRCLE_CENTER_Y,
53 } AGERBV_APTYPE_MACRO_CIRCLE_INDEX;
54 
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;
62 
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;
71 
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;
83 
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;
92 
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;
102 
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;
111 
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;
120 
121 #endif /* DRAW_GDK_H */
122