1 /*------------------------------------------------------------\
7 | Authors : Jacomme Ludovic |
11 \------------------------------------------------------------*/
15 #include <Xm/PushBG.h>
16 #include <Xm/CascadeBG.h>
30 #include "XMT_panel.h"
33 int XyagDependencyMode
= 0;
35 /*------------------------------------------------------------\
36 | EDIT menu definition |
37 \------------------------------------------------------------*/
39 XyagMenuItem XyagEditMenu
[] =
46 &xmPushButtonGadgetClass
,
58 {"line",0,NULL
,NULL
,NULL
,False
,True
,False
,False
,NULL
,NULL
,NULL
,NULL
,NULL
}
65 &xmPushButtonGadgetClass
,
82 &xmPushButtonGadgetClass
,
99 &xmPushButtonGadgetClass
,
108 (XyagMenuItem
*) NULL
111 {"line",0,NULL
,NULL
,NULL
,False
,True
,False
,False
,NULL
,NULL
,NULL
,NULL
,NULL
}
118 &xmPushButtonGadgetClass
,
127 (XyagMenuItem
*) NULL
130 {"line",0,NULL
,NULL
,NULL
,False
,True
,False
,False
,NULL
,NULL
,NULL
,NULL
,NULL
}
137 &xmPushButtonGadgetClass
,
142 CallbackPreviousExtract
,
146 (XyagMenuItem
*) NULL
154 &xmPushButtonGadgetClass
,
163 (XyagMenuItem
*) NULL
166 {"line",0,NULL
,NULL
,NULL
,False
,True
,False
,False
,NULL
,NULL
,NULL
,NULL
,NULL
}
173 &xmPushButtonGadgetClass
,
182 (XyagMenuItem
*) NULL
186 NULL
, 0, NULL
, NULL
, NULL
, 0, 0, 0, 0, NULL
, NULL
, NULL
, NULL
, NULL
190 /*------------------------------------------------------------\
191 | Callbacks for Hilite |
192 \------------------------------------------------------------*/
195 CallbackHilite(MyWidget
, ClientData
, CallData
)
200 switch (XyagDependencyMode
) {
202 XyagChangeEditMode(XYAG_EDIT_BACKWARDHILITE
);
205 XyagChangeEditMode(XYAG_EDIT_FORWARDHILITE
);
208 XyagChangeEditMode(XYAG_EDIT_BOTHHILITE
);
214 CallbackGoThru(MyWidget
, ClientData
, CallData
)
219 XyagChangeEditMode(XYAG_EDIT_TREE
);
223 CallbackSetDepth(MyWidget
, ClientData
, CallData
)
231 /*------------------------------------------------------------\
232 | Callbacks for Extract |
233 \------------------------------------------------------------*/
236 CallbackExtract(MyWidget
, ClientData
, CallData
)
241 switch (XyagDependencyMode
) {
243 XyagChangeEditMode(XYAG_EDIT_BACKWARDEXTRACT
);
246 XyagChangeEditMode(XYAG_EDIT_FORWARDEXTRACT
);
249 XyagChangeEditMode(XYAG_EDIT_BOTHEXTRACT
);
255 CallbackFullExtract(MyWidget
, ClientData
, CallData
)
260 /* if (XyagCnsMode) {
261 if (XyagFigureCgv == NULL)
263 if (XyagFigureCgv->NEXT == NULL)
266 while (XyagFigureCgv->NEXT != NULL) {
267 XyagFigureCgv = rmvcgvfig(XyagFigureCgv);
270 XyagRecomputeBound = XYAG_TRUE;
272 if (XyagFigureCgv != (cgvfig_list *) NULL) {
275 XyagInitializeZoom();
276 XyagDisplayFigure(0, 0, XyagGraphicDx, XyagGraphicDy);
278 XyagRefreshGraphicWindow(0, 0, XyagGraphicDx, XyagGraphicDy);
280 XyagSetMouseCursor(XyagGraphicWindow, XYAG_NORMAL_CURSOR);
283 XyagWarningMessage(XyagMainWindow, "Works only with CNS");
286 if (OPEN_STACK
==NULL
)
287 XyagWarningMessage(XyagMainWindow
, "No First Figure !");
288 else if (OPEN_STACK
->NEXT
==NULL
)
289 XyagWarningMessage(XyagMainWindow
, "This is already the first Figure !");
292 chain_list
*cl
=OPEN_STACK
, *prev
=NULL
;
293 while (cl
->NEXT
!=NULL
) { prev
=cl
; cl
=cl
->NEXT
;}
298 XyagRecomputeBound
= XYAG_TRUE
;
301 XyagFigureCgv
= (cgvfig_list
*)OPEN_STACK
->DATA
;
303 XyagChangeTopLevelTitle(XyagFigureCgv
->NAME
);
304 // XyagInitializeZoom();
306 XyagDisplayFigure(0, 0, XyagGraphicDx
, XyagGraphicDy
);
308 XyagRefreshGraphicWindow(0, 0, XyagGraphicDx
, XyagGraphicDy
);
310 XyagSetMouseCursor(XyagGraphicWindow
, XYAG_NORMAL_CURSOR
);
316 CallbackPreviousExtract(MyWidget
, ClientData
, CallData
)
321 /* if (XyagCnsMode) {
322 XyagRecomputeBound = XYAG_TRUE;
324 if (XyagFigureCgv != NULL && XyagFigureCgv->NEXT != NULL) {
325 XyagFigureCgv = rmvcgvfig(XyagFigureCgv);
327 if (XyagFigureCgv != NULL) {
330 XyagInitializeZoom();
331 XyagDisplayFigure(0, 0, XyagGraphicDx, XyagGraphicDy);
333 XyagRefreshGraphicWindow(0, 0, XyagGraphicDx, XyagGraphicDy);
335 XyagSetMouseCursor(XyagGraphicWindow, XYAG_NORMAL_CURSOR);
338 XyagWarningMessage(XyagMainWindow, "No Previous Figure !");
342 XyagWarningMessage(XyagMainWindow, "Works only with CNS");
345 if (OPEN_STACK
==NULL
|| OPEN_STACK
->NEXT
==NULL
)
346 XyagWarningMessage(XyagMainWindow
, "No Previous Figure !");
349 chain_list
*cl
=OPEN_STACK
;
350 XyagRecomputeBound
= XYAG_TRUE
;
351 OPEN_STACK
=OPEN_STACK
->NEXT
;
355 XyagFigureCgv
= (cgvfig_list
*)OPEN_STACK
->DATA
;
357 XyagChangeTopLevelTitle(XyagFigureCgv
->NAME
);
358 // XyagInitializeZoom();
360 XyagDisplayFigure(0, 0, XyagGraphicDx
, XyagGraphicDy
);
362 XyagRefreshGraphicWindow(0, 0, XyagGraphicDx
, XyagGraphicDy
);
364 XyagSetMouseCursor(XyagGraphicWindow
, XYAG_NORMAL_CURSOR
);
369 /*------------------------------------------------------------\
370 | CallbackEditIdentify |
371 \------------------------------------------------------------*/
374 CallbackEditIdentify(MyWidget
, ClientData
, CallData
)
379 XyagChangeEditMode(XYAG_EDIT_IDENTIFY
);
382 /*------------------------------------------------------------\
383 | CallbackEditBehaviour |
384 \------------------------------------------------------------*/
387 CallbackEditBehaviour(MyWidget
, ClientData
, CallData
)
392 XyagChangeEditMode(XYAG_EDIT_BEHAVIOUR
);
395 /*------------------------------------------------------------\
396 | CallbackEditSelect |
397 \------------------------------------------------------------*/
400 CallbackEditSelect(MyWidget
, ClientData
, CallData
)
405 XyagChangeEditMode(XYAG_EDIT_SELECT
);
408 /*------------------------------------------------------------\
409 | CallbackEditSearch |
410 \------------------------------------------------------------*/
413 CallbackEditSearch(MyWidget
, ClientData
, CallData
)