Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / yagle / xyagle / XMF_menu.c
1 /*------------------------------------------------------------\
2 | |
3 | Tool : XYAG |
4 | |
5 | File : Menu.c |
6 | |
7 | Authors : Jacomme Ludovic |
8 | Lester Anthony |
9 | |
10 \------------------------------------------------------------*/
11
12 #include <stdio.h>
13 #include <string.h>
14 #include <Xm/Xm.h>
15 #include <Xm/FileSB.h>
16 #include <Xm/SelectioB.h>
17 #include <Xm/PushBG.h>
18
19 #include MUT_H
20 #include MLO_H
21 #include CGV_H
22 #include XSB_H
23 #include XYA_H
24 #include XMX_H
25 #include XTB_H
26 #include XMF_H
27 #include XMT_H
28
29 #include "XMF_menu.h"
30 #include "XMT_menu.h"
31 #include "XMT_panel.h"
32 #include "XMF_file.h"
33
34 static int XyagFirstFileOpen = 1;
35
36 static void CallbackFileOpenOk();
37 static void CallbackDisassembleOk();
38 void (* XyagCallbackFileQuitFonction)() = NULL ;
39 void (* XyagPasquaFunction)() = XyagPasqua ;
40 void (* XyagFirePasquaFunction)() = XyagFirePasqua ;
41 void (* XyagGetWarningFunction)() = XyagGetWarningMess ;
42
43 /*------------------------------------------------------------\
44 | FILE Menu |
45 \------------------------------------------------------------*/
46
47 XyagMenuItem XyagFileMenu[] =
48 {
49 {
50 "Open...",
51 'O',
52 "Ctrl<Key>O",
53 "Ctrl+O",
54 &xmPushButtonGadgetClass,
55 False,
56 False,
57 False,
58 False,
59 CallbackFileOpen,
60 (XtPointer) NULL,
61 (Widget) NULL,
62 (Widget) NULL,
63 (XyagMenuItem *) NULL
64 }
65 ,
66 #if 0
67 {
68 "Disassemble...",
69 'D',
70 "Ctrl<Key>D",
71 "Ctrl+D",
72 &xmPushButtonGadgetClass,
73 False,
74 False,
75 False,
76 False,
77 CallbackDisassembleOk,
78 (XtPointer) NULL,
79 (Widget) NULL,
80 (Widget) NULL,
81 (XyagMenuItem *) NULL
82 }
83 ,
84 #endif
85 {"line",0,NULL,NULL,NULL,False,True,False,False,NULL,NULL,NULL,NULL,NULL}
86 ,
87 {
88 "Quit",
89 'Q',
90 "Ctrl<Key>Q",
91 "Ctrl+Q",
92 &xmPushButtonGadgetClass,
93 False,
94 False,
95 False,
96 False,
97 CallbackFileQuit,
98 (XtPointer) NULL,
99 (Widget) NULL,
100 (Widget) NULL,
101 (XyagMenuItem *) NULL
102 }
103 ,
104 {
105 NULL, 0, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL
106 }
107 };
108
109 /*------------------------------------------------------------\
110 | CallbackFileOpen |
111 \------------------------------------------------------------*/
112
113 void
114 CallbackFileOpen(MyWidget, ClientData, CallData)
115 Widget MyWidget;
116 caddr_t ClientData;
117 caddr_t CallData;
118 {
119 XmString Filter;
120
121 if (XyagFirstFileOpen) {
122 XyagFirstFileOpen = 0;
123 /*
124 if (XyagFileFilter[2] == '\0') {
125 strcat(XyagFileFilter, XYAGLE_IN_CGV);
126 strcat(XyagFileExtention, XYAGLE_IN_CGV);
127 }
128 */
129 }
130
131 Filter = XmStringCreateSimple(XyagFileFilter);
132 XyagFileSelect(Filter, "Select netlist to view:", CallbackFileOpenOk, NULL, NULL);
133 XmStringFree(Filter);
134 }
135
136 /*------------------------------------------------------------\
137 | CallbackFileQuit |
138 \------------------------------------------------------------*/
139
140 void
141 CallbackFileQuit(MyWidget, ClientData, CallData)
142 Widget MyWidget;
143 caddr_t ClientData;
144 caddr_t CallData;
145 {
146 if(XyagCallbackFileQuitFonction != NULL)
147 XyagCallbackFileQuitFonction() ;
148 else
149 XyagConfirmQuit();
150 }
151
152 /*------------------------------------------------------------\
153 | CallbackFileOpenOk |
154 \------------------------------------------------------------*/
155
156 static void
157 CallbackFileOpenOk(MyWidget, ClientData, FileStruct )
158 Widget MyWidget;
159 caddr_t ClientData;
160 XmFileSelectionBoxCallbackStruct *FileStruct;
161 {
162 char *FileName;
163
164 XtUnmanageChild(MyWidget);
165
166 if ( FileStruct->value != NULL )
167 {
168 XmStringGetLtoR(FileStruct->value, XmSTRING_DEFAULT_CHARSET, &FileName);
169
170 FileName = XyagPostTreatString( FileName );
171
172 if (FileName != NULL)
173 {
174 // removecgvfiles(FileName, updatebacklist);
175 XyagFileOpen(FileName);
176 XyagChangeEditMode(XYAG_EDIT_SELECT);
177 }
178 else
179 {
180 XyagErrorMessage( XyagMainWindow, "Unable to load this file !" );
181 }
182 }
183 }
184
185 /*------------------------------------------------------------\
186 | CallbackDisassembleOk |
187 \------------------------------------------------------------*/
188 #if 0
189 static void
190 CallbackDisassembleOk(MyWidget, ClientData, FileStruct )
191 Widget MyWidget;
192 caddr_t ClientData;
193 XmFileSelectionBoxCallbackStruct *FileStruct;
194 {
195 XyagEnterPanel(&XyagToolsDisaPanel);
196 }
197 #endif