1 /*------------------------------------------------------------\
2 |                                                             |
3 | This file is part of the Alliance CAD System Copyright      |
4 | (C) Laboratoire LIP6 - D�partement ASIM Universite P&M Curie|
5 |                                                             |
6 | Home page      : http://www-asim.lip6.fr/alliance/          |
7 | E-mail         : mailto:alliance-users@asim.lip6.fr       |
8 |                                                             |
9 | This progam is  free software; you can redistribute it      |
10 | and/or modify it under the  terms of the GNU General Public |
11 | License as  published by the Free Software Foundation;      |
12 | either version 2 of the License, or (at your option) any    |
13 | later version.                                              |
14 |                                                             |
15 | Alliance VLSI  CAD System  is distributed  in the hope that |
16 | it  will be useful, but WITHOUT  ANY WARRANTY;              |
17 | without even the  implied warranty of MERCHANTABILITY or    |
18 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General       |
19 | Public License for more details.                            |
20 |                                                             |
21 | You should have received a copy  of the GNU General Public  |
22 | License along with the GNU C Library; see the file COPYING. |
23 | If not, write to the Free Software Foundation, Inc.,        |
24 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.                     |
25 |                                                             |
26 \------------------------------------------------------------*/
27 
28 /*------------------------------------------------------------\
29 |                                                             |
30 | Tool    :                   GRAAL                           |
31 |                                                             |
32 | File    :                   Menu.c                          |
33 |                                                             |
34 | Author  :                Jacomme Ludovic                    |
35 |                                                             |
36 | Date    :                  28.03.95                         |
37 |                                                             |
38 \------------------------------------------------------------*/
39 /*------------------------------------------------------------\
40 |                                                             |
41 |                         Include Files                       |
42 |                                                             |
43 \------------------------------------------------------------*/
44 
45 # include <stdio.h>
46 # include <Xm/Xm.h>
47 # include <Xm/PushBG.h>
48 # include <Xm/CascadeBG.h>
49 
50 # include "mut.h"
51 # include "mph.h"
52 # include "rds.h"
53 # include "rpr.h"
54 # include "GTB.h"
55 # include "GSB.h"
56 # include "GMX.h"
57 # include "GMV.h"
58 
59 # include "GMV_menu.h"
60 # include "GMV_dialog.h"
61 # include "GMV_view.h"
62 # include "GMV_map.h"
63 # include "GMV_panel.h"
64 
65 /*------------------------------------------------------------\
66 |                                                             |
67 |                           Constants                         |
68 |                                                             |
69 \------------------------------------------------------------*/
70 /*------------------------------------------------------------\
71 |                                                             |
72 |                            Types                            |
73 |                                                             |
74 \------------------------------------------------------------*/
75 /*------------------------------------------------------------\
76 |                                                             |
77 |                          Variables                          |
78 |                                                             |
79 \------------------------------------------------------------*/
80 
81   char GraalFirstViewLayer = 1;
82 
83 /*------------------------------------------------------------\
84 |                                                             |
85 |                            Menu                             |
86 |                                                             |
87 \------------------------------------------------------------*/
88 
89    GraalMenuItem GraalViewMenu[] =
90 
91          {
92            {
93              "Zoom",
94              'Z',
95              "Meta<Key>Z",
96              "Meta Z",
97              &xmPushButtonGadgetClass,
98              False,
99              False,
100              False,
101              CallbackViewZoom,
102              (XtPointer)NULL,
103              (Widget)NULL,
104              (Widget)NULL,
105              (GraalMenuItem *)NULL
106            }
107            ,
108            {
109              "Layers",
110              'L',
111              "Meta<Key>L",
112              "Meta L",
113              &xmPushButtonGadgetClass,
114              False,
115              False,
116              False,
117              CallbackViewLayers,
118              (XtPointer)NULL,
119              (Widget)NULL,
120              (Widget)NULL,
121              (GraalMenuItem *)NULL
122            }
123            ,
124            {
125              "Map",
126              'M',
127              "Meta<Key>P",
128              "Meta P",
129              &xmPushButtonGadgetClass,
130              False,
131              False,
132              False,
133              CallbackViewMap,
134              (XtPointer)NULL,
135              (Widget)NULL,
136              (Widget)NULL,
137              (GraalMenuItem *)NULL
138            }
139            ,
140            {
141              "Arrows",
142              'A',
143              "Meta<Key>A",
144              "Meta A",
145              &xmPushButtonGadgetClass,
146              False,
147              False,
148              False,
149              CallbackViewArrows,
150              (XtPointer)NULL,
151              (Widget)NULL,
152              (Widget)NULL,
153              (GraalMenuItem *)NULL
154            }
155            ,
156            {
157              "Grid     ",
158              'G',
159              "Meta<Key>G",
160              "Meta G",
161              &xmPushButtonGadgetClass,
162              False,
163              False,
164              False,
165              CallbackViewGrid,
166              (XtPointer)NULL,
167              (Widget)NULL,
168              (Widget)NULL,
169              (GraalMenuItem *)NULL
170            }
171            ,
172            {
173              NULL
174            }
175          };
176 
177 /*------------------------------------------------------------\
178 |                                                             |
179 |                          Functions                          |
180 |                                                             |
181 \------------------------------------------------------------*/
182 /*------------------------------------------------------------\
183 |                                                             |
184 |                      Callback For Menu                      |
185 |                                                             |
186 \------------------------------------------------------------*/
187 /*------------------------------------------------------------\
188 |                                                             |
189 |                      CallbackViewLayers                     |
190 |                                                             |
191 \------------------------------------------------------------*/
192 
CallbackViewLayers(MyWidget,ClientData,CallData)193 void CallbackViewLayers( MyWidget, ClientData, CallData )
194 
195      Widget  MyWidget;
196      caddr_t ClientData;
197      caddr_t CallData;
198 {
199   rdsbegin();
200 
201   if ( GraalFirstViewLayer )
202   {
203     GraalInitializeLayer();
204 
205     GraalFirstViewLayer = 0;
206   }
207 
208   GraalEnterPanel( &GraalViewLayerPanel );
209 
210   rdsend();
211 }
212 
213 /*------------------------------------------------------------\
214 |                                                             |
215 |                      CallbackViewGrid                       |
216 |                                                             |
217 \------------------------------------------------------------*/
218 
CallbackViewGrid(MyWidget,ClientData,CallData)219 void CallbackViewGrid( MyWidget, ClientData, CallData )
220 
221      Widget  MyWidget;
222      caddr_t ClientData;
223      caddr_t CallData;
224 {
225   rdsbegin();
226 
227   GraalEnterPanel( &GraalViewGridPanel );
228 
229   rdsend();
230 }
231 
232 /*------------------------------------------------------------\
233 |                                                             |
234 |                     CallbackViewArrows                      |
235 |                                                             |
236 \------------------------------------------------------------*/
237 
CallbackViewArrows(MyWidget,ClientData,CallData)238 void CallbackViewArrows( MyWidget, ClientData, CallData )
239 
240      Widget  MyWidget;
241      caddr_t ClientData;
242      caddr_t CallData;
243 {
244   rdsbegin();
245 
246   GraalEnterPanel( &GraalViewArrowsPanel );
247 
248   rdsend();
249 }
250 
251 /*------------------------------------------------------------\
252 |                                                             |
253 |                     CallbackViewZoom                        |
254 |                                                             |
255 \------------------------------------------------------------*/
256 
CallbackViewZoom(MyWidget,ClientData,CallData)257 void CallbackViewZoom( MyWidget, ClientData, CallData )
258 
259      Widget  MyWidget;
260      caddr_t ClientData;
261      caddr_t CallData;
262 {
263   rdsbegin();
264 
265   GraalEnterPanel( &GraalViewZoomPanel );
266 
267   rdsend();
268 }
269 
270 /*------------------------------------------------------------\
271 |                                                             |
272 |                       CallbackViewMap                       |
273 |                                                             |
274 \------------------------------------------------------------*/
275 
CallbackViewMap(MyWidget,ClientData,CallData)276 void CallbackViewMap( MyWidget, ClientData, CallData )
277 
278      Widget  MyWidget;
279      caddr_t ClientData;
280      caddr_t CallData;
281 {
282   rdsbegin();
283 
284   GraalEnterMapPanel();
285 
286   rdsend();
287 }
288