gerbv  2.6A
interface.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-2003 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 
36 #define SET_ACCELS_FROM_STOCK(MENU_ITEM, STOCK_ID, GERBV_ACCEL_ID)\
37 gtk_menu_item_set_accel_path (GTK_MENU_ITEM (MENU_ITEM), GERBV_ACCEL_ID ## _PATH);\
38 if(gtk_stock_lookup (STOCK_ID, &stock) && stock.keyval != GDK_VoidSymbol && stock.keyval != 0)\
39  gtk_accel_map_add_entry (GERBV_ACCEL_ID ## _PATH, stock.keyval, stock.modifier);\
40 else\
41  gtk_accel_map_add_entry (GERBV_ACCEL_ID ## _PATH, GERBV_ACCEL_ID ## _KEY, GERBV_ACCEL_ID ## _MOD)
42 
43 #define SET_ACCELS(MENU_ITEM, GERBV_ACCEL_ID)\
44  gtk_menu_item_set_accel_path (GTK_MENU_ITEM (MENU_ITEM), GERBV_ACCEL_ID ## _PATH);\
45  gtk_accel_map_add_entry (GERBV_ACCEL_ID ## _PATH, GERBV_ACCEL_ID ## _KEY, GERBV_ACCEL_ID ## _MOD)
46 
47 /* If stock items/IDs are used the ACCEL_*_PATH macros have to match the labels of the stock items.
48 Otherwise the (persistent) accelerators are broken. One workaround would be to look the labels up. */
49 #define GERBV_ACCELS_RELPATH ".gnome2/accels/gerbv"
50 #define ACCEL_ROOT "<main>/"
51 #define ACCEL_FILE ACCEL_ROOT "file"
52 #define ACCEL_FILE_NEW_PATH ACCEL_FILE "/New"
53 #define ACCEL_FILE_NEW_KEY GDK_n
54 #define ACCEL_FILE_NEW_MOD (GdkModifierType) GDK_CONTROL_MASK
55 #define ACCEL_FILE_REVERT_PATH ACCEL_FILE "/Revert"
56 #define ACCEL_FILE_REVERT_KEY GDK_F5
57 #define ACCEL_FILE_REVERT_MOD (GdkModifierType) 0
58 #define ACCEL_FILE_OPEN_LAYER_PATH ACCEL_FILE "/Open layer(s)..."
59 #define ACCEL_FILE_OPEN_LAYER_KEY GDK_O
60 #define ACCEL_FILE_OPEN_LAYER_MOD (GdkModifierType) GDK_CONTROL_MASK
61 #define ACCEL_FILE_SAVE_LAYER_PATH ACCEL_FILE "/Save active layer"
62 #define ACCEL_FILE_SAVE_LAYER_KEY GDK_S
63 #define ACCEL_FILE_SAVE_LAYER_MOD (GdkModifierType) GDK_CONTROL_MASK
64 #define ACCEL_FILE_SAVE_LAYER_AS_PATH ACCEL_FILE "/Save active layer as..."
65 #define ACCEL_FILE_SAVE_LAYER_AS_KEY GDK_S
66 #define ACCEL_FILE_SAVE_LAYER_AS_MOD (GdkModifierType) GDK_CONTROL_MASK | GDK_SHIFT_MASK
67 #define ACCEL_FILE_EXPORT ACCEL_FILE "/Export"
68 #define ACCEL_FILE_PRINT_PATH ACCEL_FILE "/Print..."
69 #define ACCEL_FILE_PRINT_KEY GDK_P
70 #define ACCEL_FILE_PRINT_MOD (GdkModifierType) GDK_CONTROL_MASK
71 #define ACCEL_FILE_QUIT_PATH ACCEL_FILE "/Quit"
72 #define ACCEL_FILE_QUIT_KEY GDK_Q
73 #define ACCEL_FILE_QUIT_MOD (GdkModifierType) GDK_CONTROL_MASK
74 
75 #define ACCEL_EDIT ACCEL_ROOT "edit"
76 #define ACCEL_EDIT_PROPERTIES_PATH ACCEL_EDIT "/Display properties of selected object(s)"
77 #define ACCEL_EDIT_PROPERTIES_KEY GDK_Return
78 #define ACCEL_EDIT_PROPERTIES_MOD (GdkModifierType) GDK_MOD1_MASK
79 #define ACCEL_EDIT_DELETE_PATH ACCEL_EDIT "/Delete selected object(s)"
80 #define ACCEL_EDIT_DELETE_KEY GDK_Delete
81 #define ACCEL_EDIT_DELETE_MOD (GdkModifierType) 0
82 
83 #define ACCEL_VIEW ACCEL_ROOT "view"
84 #define ACCEL_VIEW_FULLSCREEN_PATH ACCEL_VIEW "/Fullscreen"
85 #define ACCEL_VIEW_FULLSCREEN_KEY GDK_F11
86 #define ACCEL_VIEW_FULLSCREEN_MOD (GdkModifierType) 0
87 #define ACCEL_VIEW_TOOLBAR_PATH ACCEL_VIEW "/Show Toolbar"
88 #define ACCEL_VIEW_TOOLBAR_KEY GDK_F7
89 #define ACCEL_VIEW_TOOLBAR_MOD (GdkModifierType) 0
90 #define ACCEL_VIEW_SIDEPANE_PATH ACCEL_VIEW "/Show Sidepane"
91 #define ACCEL_VIEW_SIDEPANE_KEY GDK_F9
92 #define ACCEL_VIEW_SIDEPANE_MOD (GdkModifierType) 0
93 #define ACCEL_VIEW_VIS ACCEL_VIEW "/Toggle layer visibilty"
94 #define ACCEL_VIEW_VIS_LAYER1_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 1"
95 #define ACCEL_VIEW_VIS_LAYER1_KEY GDK_1
96 #define ACCEL_VIEW_VIS_LAYER1_MOD (GdkModifierType) GDK_CONTROL_MASK
97 #define ACCEL_VIEW_VIS_LAYER2_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 2"
98 #define ACCEL_VIEW_VIS_LAYER2_KEY GDK_2
99 #define ACCEL_VIEW_VIS_LAYER2_MOD (GdkModifierType) GDK_CONTROL_MASK
100 #define ACCEL_VIEW_VIS_LAYER3_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 3"
101 #define ACCEL_VIEW_VIS_LAYER3_KEY GDK_3
102 #define ACCEL_VIEW_VIS_LAYER3_MOD (GdkModifierType) GDK_CONTROL_MASK
103 #define ACCEL_VIEW_VIS_LAYER4_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 4"
104 #define ACCEL_VIEW_VIS_LAYER4_KEY GDK_4
105 #define ACCEL_VIEW_VIS_LAYER4_MOD (GdkModifierType) GDK_CONTROL_MASK
106 #define ACCEL_VIEW_VIS_LAYER5_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 5"
107 #define ACCEL_VIEW_VIS_LAYER5_KEY GDK_5
108 #define ACCEL_VIEW_VIS_LAYER5_MOD (GdkModifierType) GDK_CONTROL_MASK
109 #define ACCEL_VIEW_VIS_LAYER6_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 6"
110 #define ACCEL_VIEW_VIS_LAYER6_KEY GDK_6
111 #define ACCEL_VIEW_VIS_LAYER6_MOD (GdkModifierType) GDK_CONTROL_MASK
112 #define ACCEL_VIEW_VIS_LAYER7_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 7"
113 #define ACCEL_VIEW_VIS_LAYER7_KEY GDK_7
114 #define ACCEL_VIEW_VIS_LAYER7_MOD (GdkModifierType) GDK_CONTROL_MASK
115 #define ACCEL_VIEW_VIS_LAYER8_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 8"
116 #define ACCEL_VIEW_VIS_LAYER8_KEY GDK_8
117 #define ACCEL_VIEW_VIS_LAYER8_MOD (GdkModifierType) GDK_CONTROL_MASK
118 #define ACCEL_VIEW_VIS_LAYER9_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 9"
119 #define ACCEL_VIEW_VIS_LAYER9_KEY GDK_9
120 #define ACCEL_VIEW_VIS_LAYER9_MOD (GdkModifierType) GDK_CONTROL_MASK
121 #define ACCEL_VIEW_VIS_LAYER10_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 10"
122 #define ACCEL_VIEW_VIS_LAYER10_KEY GDK_0
123 #define ACCEL_VIEW_VIS_LAYER10_MOD (GdkModifierType) GDK_CONTROL_MASK
124 #define ACCEL_VIEW_ZOOM_IN_PATH ACCEL_VIEW "/Zoom In"
125 #define ACCEL_VIEW_ZOOM_IN_KEY GDK_z
126 #define ACCEL_VIEW_ZOOM_IN_MOD (GdkModifierType) 0
127 #define ACCEL_VIEW_ZOOM_OUT_PATH ACCEL_VIEW "/Zoom Out"
128 #define ACCEL_VIEW_ZOOM_OUT_KEY GDK_z
129 #define ACCEL_VIEW_ZOOM_OUT_MOD (GdkModifierType) GDK_SHIFT_MASK
130 #define ACCEL_VIEW_ZOOM_FIT_PATH ACCEL_VIEW "/Best Fit"
131 #define ACCEL_VIEW_ZOOM_FIT_KEY GDK_f
132 #define ACCEL_VIEW_ZOOM_FIT_MOD (GdkModifierType) 0
133 #define ACCEL_VIEW_RENDER ACCEL_VIEW "/Rendering"
134 #define ACCEL_VIEW_UNITS ACCEL_VIEW "/Units"
135 
136 #define ACCEL_LAYER ACCEL_ROOT "layer"
137 #define ACCEL_LAYER_COLOR_PATH ACCEL_LAYER "/Change color"
138 #define ACCEL_LAYER_COLOR_KEY GDK_F6
139 #define ACCEL_LAYER_COLOR_MOD (GdkModifierType) 0
140 #define ACCEL_LAYER_UP_PATH ACCEL_LAYER "/Move up"
141 #define ACCEL_LAYER_UP_KEY GDK_Up
142 #define ACCEL_LAYER_UP_MOD (GdkModifierType) GDK_CONTROL_MASK
143 #define ACCEL_LAYER_DOWN_PATH ACCEL_LAYER "/Move down"
144 #define ACCEL_LAYER_DOWN_KEY GDK_Down
145 #define ACCEL_LAYER_DOWN_MOD (GdkModifierType) GDK_CONTROL_MASK
146 
147 #define ACCEL_ANAL ACCEL_ROOT "analyze"
148 
149 #define ACCEL_TOOLS ACCEL_ROOT "tools"
150 #define ACCEL_TOOLS_POINTER_PATH ACCEL_TOOLS "/Pointer Tool"
151 #define ACCEL_TOOLS_POINTER_KEY GDK_1
152 #define ACCEL_TOOLS_POINTER_MOD (GdkModifierType) 0
153 #define ACCEL_TOOLS_PAN_PATH ACCEL_TOOLS "/Pan Tool"
154 #define ACCEL_TOOLS_PAN_KEY GDK_2
155 #define ACCEL_TOOLS_PAN_MOD (GdkModifierType) 0
156 #define ACCEL_TOOLS_ZOOM_PATH ACCEL_TOOLS "/Zoom Tool"
157 #define ACCEL_TOOLS_ZOOM_KEY GDK_3
158 #define ACCEL_TOOLS_ZOOM_MOD (GdkModifierType) 0
159 #define ACCEL_TOOLS_MEASURE_PATH ACCEL_TOOLS "/Measure Tool"
160 #define ACCEL_TOOLS_MEASURE_KEY GDK_4
161 #define ACCEL_TOOLS_MEASURE_MOD (GdkModifierType) 0
162 
163 #define ACCEL_HELP ACCEL_ROOT "help"
164 
165 void
166 interface_create_gui (int req_width, int req_height);
167 
168 void
169 interface_set_render_type (int);
170 
171 void rename_main_window(char const* filename, GtkWidget* main_win);
172 
173 void
174 set_window_icon (GtkWidget * this_window);
175 
176 gboolean
177 interface_get_alert_dialog_response (gchar *primaryText,
178  gchar *secondaryText,
179  gboolean show_checkbox,
180  gboolean *ask_to_show_again);
181 
182 void
183 interface_show_alert_dialog (gchar *primaryText,
184  gchar *secondaryText,
185  gboolean show_checkbox,
186  gboolean *ask_to_show_again);
187 
188 void
189 interface_show_layer_edit_dialog (gerbv_user_transformation_t *transform,
190  gerbv_unit_t screenUnit);