gerbv  2.10.1-dev~93f1b5
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 ".gEDA/gerbv/accels"
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_A
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_ALL_SELECTION_PATH ACCEL_VIEW "/Show all selection"
94 #define ACCEL_VIEW_ALL_SELECTION_KEY GDK_l
95 #define ACCEL_VIEW_ALL_SELECTION_MOD (GdkModifierType)0
96 #define ACCEL_VIEW_CROSS_ON_DRILL_HOLES_PATH ACCEL_VIEW "/Show cross on drill holes"
97 #define ACCEL_VIEW_CROSS_ON_DRILL_HOLES_KEY GDK_x
98 #define ACCEL_VIEW_CROSS_ON_DRILL_HOLES_MOD (GdkModifierType)0
99 #define ACCEL_VIEW_VIS ACCEL_VIEW "/Toggle layer visibilty"
100 #define ACCEL_VIEW_VIS_LAYER1_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 1"
101 #define ACCEL_VIEW_VIS_LAYER1_KEY GDK_1
102 #define ACCEL_VIEW_VIS_LAYER1_MOD (GdkModifierType) GDK_CONTROL_MASK
103 #define ACCEL_VIEW_VIS_LAYER2_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 2"
104 #define ACCEL_VIEW_VIS_LAYER2_KEY GDK_2
105 #define ACCEL_VIEW_VIS_LAYER2_MOD (GdkModifierType) GDK_CONTROL_MASK
106 #define ACCEL_VIEW_VIS_LAYER3_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 3"
107 #define ACCEL_VIEW_VIS_LAYER3_KEY GDK_3
108 #define ACCEL_VIEW_VIS_LAYER3_MOD (GdkModifierType) GDK_CONTROL_MASK
109 #define ACCEL_VIEW_VIS_LAYER4_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 4"
110 #define ACCEL_VIEW_VIS_LAYER4_KEY GDK_4
111 #define ACCEL_VIEW_VIS_LAYER4_MOD (GdkModifierType) GDK_CONTROL_MASK
112 #define ACCEL_VIEW_VIS_LAYER5_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 5"
113 #define ACCEL_VIEW_VIS_LAYER5_KEY GDK_5
114 #define ACCEL_VIEW_VIS_LAYER5_MOD (GdkModifierType) GDK_CONTROL_MASK
115 #define ACCEL_VIEW_VIS_LAYER6_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 6"
116 #define ACCEL_VIEW_VIS_LAYER6_KEY GDK_6
117 #define ACCEL_VIEW_VIS_LAYER6_MOD (GdkModifierType) GDK_CONTROL_MASK
118 #define ACCEL_VIEW_VIS_LAYER7_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 7"
119 #define ACCEL_VIEW_VIS_LAYER7_KEY GDK_7
120 #define ACCEL_VIEW_VIS_LAYER7_MOD (GdkModifierType) GDK_CONTROL_MASK
121 #define ACCEL_VIEW_VIS_LAYER8_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 8"
122 #define ACCEL_VIEW_VIS_LAYER8_KEY GDK_8
123 #define ACCEL_VIEW_VIS_LAYER8_MOD (GdkModifierType) GDK_CONTROL_MASK
124 #define ACCEL_VIEW_VIS_LAYER9_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 9"
125 #define ACCEL_VIEW_VIS_LAYER9_KEY GDK_9
126 #define ACCEL_VIEW_VIS_LAYER9_MOD (GdkModifierType) GDK_CONTROL_MASK
127 #define ACCEL_VIEW_VIS_LAYER10_PATH ACCEL_VIEW_VIS "/Toggle visibility of layer 10"
128 #define ACCEL_VIEW_VIS_LAYER10_KEY GDK_0
129 #define ACCEL_VIEW_VIS_LAYER10_MOD (GdkModifierType) GDK_CONTROL_MASK
130 #define ACCEL_VIEW_ZOOM_IN_PATH ACCEL_VIEW "/Zoom In"
131 #define ACCEL_VIEW_ZOOM_IN_KEY GDK_z
132 #define ACCEL_VIEW_ZOOM_IN_MOD (GdkModifierType)0
133 #define ACCEL_VIEW_ZOOM_OUT_PATH ACCEL_VIEW "/Zoom Out"
134 #define ACCEL_VIEW_ZOOM_OUT_KEY GDK_z
135 #define ACCEL_VIEW_ZOOM_OUT_MOD (GdkModifierType) GDK_SHIFT_MASK
136 #define ACCEL_VIEW_ZOOM_FIT_PATH ACCEL_VIEW "/Best Fit"
137 #define ACCEL_VIEW_ZOOM_FIT_KEY GDK_f
138 #define ACCEL_VIEW_ZOOM_FIT_MOD (GdkModifierType)0
139 #define ACCEL_VIEW_RENDER ACCEL_VIEW "/Rendering"
140 #define ACCEL_VIEW_UNITS ACCEL_VIEW "/Units"
141 
142 #define ACCEL_LAYER ACCEL_ROOT "layer"
143 #define ACCEL_LAYER_ALL_ON_PATH ACCEL_LAYER "/All on"
144 #define ACCEL_LAYER_ALL_ON_KEY GDK_KP_Multiply
145 #define ACCEL_LAYER_ALL_ON_MOD (GdkModifierType)0
146 #define ACCEL_LAYER_ALL_OFF_PATH ACCEL_LAYER "/All off"
147 #define ACCEL_LAYER_ALL_OFF_KEY GDK_KP_Divide
148 #define ACCEL_LAYER_ALL_OFF_MOD (GdkModifierType)0
149 #define ACCEL_LAYER_COLOR_PATH ACCEL_LAYER "/Change color"
150 #define ACCEL_LAYER_COLOR_KEY GDK_F6
151 #define ACCEL_LAYER_COLOR_MOD (GdkModifierType)0
152 #define ACCEL_LAYER_UP_PATH ACCEL_LAYER "/Move up"
153 #define ACCEL_LAYER_UP_KEY GDK_Up
154 #define ACCEL_LAYER_UP_MOD (GdkModifierType) GDK_CONTROL_MASK
155 #define ACCEL_LAYER_DOWN_PATH ACCEL_LAYER "/Move down"
156 #define ACCEL_LAYER_DOWN_KEY GDK_Down
157 #define ACCEL_LAYER_DOWN_MOD (GdkModifierType) GDK_CONTROL_MASK
158 #define ACCEL_LAYER_DELETE_PATH ACCEL_LAYER "/Delete"
159 #define ACCEL_LAYER_DELETE_KEY GDK_Delete
160 #define ACCEL_LAYER_DELETE_MOD (GdkModifierType) GDK_CONTROL_MASK
161 
162 #define ACCEL_ANAL ACCEL_ROOT "analyze"
163 
164 #define ACCEL_TOOLS ACCEL_ROOT "tools"
165 #define ACCEL_TOOLS_POINTER_PATH ACCEL_TOOLS "/Pointer Tool"
166 #define ACCEL_TOOLS_POINTER_KEY GDK_1
167 #define ACCEL_TOOLS_POINTER_MOD (GdkModifierType)0
168 #define ACCEL_TOOLS_PAN_PATH ACCEL_TOOLS "/Pan Tool"
169 #define ACCEL_TOOLS_PAN_KEY GDK_2
170 #define ACCEL_TOOLS_PAN_MOD (GdkModifierType)0
171 #define ACCEL_TOOLS_ZOOM_PATH ACCEL_TOOLS "/Zoom Tool"
172 #define ACCEL_TOOLS_ZOOM_KEY GDK_3
173 #define ACCEL_TOOLS_ZOOM_MOD (GdkModifierType)0
174 #define ACCEL_TOOLS_MEASURE_PATH ACCEL_TOOLS "/Measure Tool"
175 #define ACCEL_TOOLS_MEASURE_KEY GDK_4
176 #define ACCEL_TOOLS_MEASURE_MOD (GdkModifierType)0
177 
178 #define ACCEL_HELP ACCEL_ROOT "help"
179 
180 void interface_create_gui(int req_width, int req_height);
181 
182 void interface_set_render_type(int);
183 
184 void rename_main_window(const char* filename, GtkWidget* main_win);
185 
186 void set_window_icon(GtkWidget* this_window);
187 
189  const gchar* primaryText, const gchar* secondaryText, gboolean show_checkbox, gboolean* ask_to_show_again,
190  const gchar* true_button_label, const gchar* false_button_label
191 );
192 
193 int interface_reopen_question(GSList* filename, GSList* is_modified, GSList* files_counter, GSList* layer_number);
194 
196  gchar* primaryText, gchar* secondaryText, gboolean show_checkbox, gboolean* ask_to_show_again
197 );
198 
199 /* transforms[0] is selected layer transformation, other is visible layers,
200  * array must be terminated with NULL */
201 void interface_show_layer_edit_dialog(gerbv_user_transformation_t* transforms[], gerbv_unit_t screenUnit);
gerbv_unit_t
Definition: gerbv.h:262
int interface_reopen_question(GSList *filename, GSList *is_modified, GSList *files_counter, GSList *layer_number)
This dialog box shows a text message with three buttons in the case if the file to be open was alread...
Definition: interface.c:1976
void interface_show_alert_dialog(gchar *primaryText, gchar *secondaryText, gboolean show_checkbox, gboolean *ask_to_show_again)
This dialog box shows a textmessage and one button: "OK".
Definition: interface.c:2093
gboolean interface_get_alert_dialog_response(const gchar *primaryText, const gchar *secondaryText, gboolean show_checkbox, gboolean *ask_to_show_again, const gchar *true_button_label, const gchar *false_button_label)
This dialog box shows a message and two buttons: "True" and "False".
Definition: interface.c:1772