Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / tas / xtas / xtas_paths.c
1 /****************************************************************************/
2 /* */
3 /* Chaine de CAO & VLSI Alliance */
4 /* */
5 /* Produit : XTAS Version 5 */
6 /* Fichier : xtas_paths.c */
7 /* */
8 /* (c) copyright 1991-1998 Laboratoire LIP6 equipe ASIM */
9 /* Tous droits reserves */
10 /* Support : e-mail alliance-support@asim.lip6.fr */
11 /* */
12 /* Author(s) : Nizar ABDALLAH Date : 01/04/1993 */
13 /* */
14 /* Modified by : Mathieu OKUYAMA Date : 05/21/1998 */
15 /* */
16 /* Modified by : Stephane PICAULT Date : 10/13/1998 */
17 /* Modified by : Date : ../../.... */
18 /* */
19 /****************************************************************************/
20 /* */
21 /* */
22 /****************************************************************************/
23
24
25 /*--------------------------------------------------------------------------*/
26 /* INCLUDE FILES */
27 /*--------------------------------------------------------------------------*/
28 #include "xtas.h"
29 #include "xtas_paths_menu.h"
30 #include "xtas_paths_button.h"
31
32
33
34 #define XTAS_PATH_FROM_LOFFSET_G 54
35 #define XTAS_PATH_FROM_LOFFSET_T 6
36
37 /*--------------------------------------------------------------------------*/
38 /* DEFINE */
39 /*--------------------------------------------------------------------------*/
40
41 /*--------------------------------------------------------------------------*/
42 /* WORK VARIABLES */
43 /*--------------------------------------------------------------------------*/
44 chain_list *XTAS_PATH_SESSION = NULL;
45 char *XTAS_SIGNAL = NULL;
46 Widget XTAS_FLSPATHRESLABEL = NULL;
47 Widget XTAS_PATHSSELECTEDWIDGET = NULL;
48 XtasPathListSetStruct *XtasPathsSavePathset = NULL;
49
50 /* Pathlist variables */
51 static int XtasCarLength1 ; /* max length of the name of the input */
52 static int XtasCarLength2 ; /* max length of the name of the output */
53 /*---------------------------------------------------------------------------*/
54 /* FUNCTIONS */
55 /*---------------------------------------------------------------------------*/
56
57 /*---------------------------------------------------------------------------*/
58 /* */
59 /* */
60 /*---------------------------------------------------------------------------*/
61 void XtasFillPathInfosForm (FocusSet)
62 XtasPathIndexTabElt *FocusSet;
63 {
64 Widget label;
65 ttvpath_list *path;
66 char buf [1024];
67
68 path = FocusSet->PATH;
69 /* From*/
70 label = XtNameToWidget (FocusSet->PATH_SET->TOP_LEVEL, "*XtasPathInfosFromLabel");
71 if (!label)
72 return;
73 sprintf (buf, "%s", path->NODE->ROOT->NAME);
74 XmTextSetString (label, buf);
75 /* To*/
76 label = XtNameToWidget (FocusSet->PATH_SET->TOP_LEVEL, "*XtasPathInfosToLabel");
77 if (!label)
78 return;
79 if (path->CMD)
80 sprintf (buf, "%s commanded by %s", path->ROOT->ROOT->NAME, path->CMD->ROOT->NAME);
81 else
82 sprintf (buf, "%s", path->ROOT->ROOT->NAME);
83 XmTextSetString (label, buf);
84 XmUpdateDisplay (label);
85 XmUpdateDisplay (XtParent(label));
86 /* Starting Time*/
87 label = XtNameToWidget (FocusSet->PATH_SET->TOP_LEVEL, "*XtasPathInfosSTimeLabel");
88 if (!label)
89 return;
90 sprintf (buf, "%.1f ps", path->DELAYSTART/TTV_UNIT);
91 XtasSetLabelString (label, buf);
92 /* Starting Slope */
93 label = XtNameToWidget (FocusSet->PATH_SET->TOP_LEVEL, "*XtasPathInfosSSlopeLabel");
94 if (!label)
95 return;
96 sprintf (buf, "%.1f ps", path->SLOPESTART/TTV_UNIT);
97 XtasSetLabelString (label, buf);
98 /* DataLag */
99 label = XtNameToWidget (FocusSet->PATH_SET->TOP_LEVEL, "*XtasPathInfosDataLagLabel");
100 if (!label)
101 return;
102 sprintf (buf, "%.1f ps", path->DATADELAY/TTV_UNIT);
103 XtasSetLabelString (label, buf);
104 /* Latch */
105 label = XtNameToWidget (FocusSet->PATH_SET->TOP_LEVEL, "*XtasPathInfosLatchLabel");
106 if (!label)
107 return;
108 if (path->LATCH) {
109 if (path->CMDLATCH)
110 if (path->LATCH->ROOT == path->CMDLATCH->ROOT)
111 sprintf (buf, "Prech: %s", path->LATCH->ROOT->NAME);
112 else
113 sprintf (buf, "Latch: %s commanded by %s", path->LATCH->ROOT->NAME, path->CMDLATCH->ROOT->NAME);
114 else
115 sprintf (buf, "Latch: %s", path->LATCH->ROOT->NAME);
116 XtasSetLabelString (label, buf);
117 }
118 else {
119 sprintf (buf, " ");
120 XtasSetLabelString (label, buf);
121 }
122 // /* Latch Command */
123 // label = XtNameToWidget (FocusSet->PATH_SET->TOP_LEVEL, "*XtasPathInfosLatchCmdLabel");
124 // if (!label)
125 // return;
126 // if (path->CMDLATCH)
127 // sprintf (buf, "%s", path->CMDLATCH->ROOT->NAME);
128 // else
129 // sprintf (buf, " ");
130 // XtasSetLabelString (label, buf);
131
132 }
133
134 /*---------------------------------------------------------------------------*/
135 /* */
136 /* */
137 /*---------------------------------------------------------------------------*/
138 void XtasPathsGetPathCmdCallback (widget, client_data, call_data)
139 Widget widget ;
140 XtPointer client_data ;
141 XtPointer call_data ;
142 {
143 XtasWindowStruct *tas_winfos = (XtasWindowStruct *) client_data;
144 short int mask = XTAS_REG, i;
145 ttvsig_list *ptsig;
146 chain_list *ch, *chain;
147 char buf[256], cmd_list[1024];
148 stbnode *ptnode;
149 ptype_list *ptype;
150 long hold;
151
152 if(XTAS_SIGNAL != NULL)
153 {
154 ptsig = ttv_getsig(XtasMainParam->ttvfig, XTAS_SIGNAL);
155 if(ptsig) {
156 if((ptsig->TYPE & TTV_SIG_L) != TTV_SIG_L)
157 XalDrawMessage(tas_winfos->errwidget, "No command found: \n the selected signal is not a register signal");
158 else {
159 strcpy(cmd_list , "");
160 chain = ttv_getlrcmd(XtasMainParam->ttvfig, ptsig);
161 for(ch = chain; ch ; ch = ch->NEXT) {
162 ttv_getsigname(XtasMainParam->ttvfig, buf, ((ttvevent_list*)ch->DATA)->ROOT);
163 strcat(cmd_list, buf);
164 strcat(cmd_list, " ");
165 }
166 if(chain)
167 freechain(chain);
168
169 XtasSetOrderByStartOrEnd( 10, 1, "*" ) ;
170 XtasSetOrderByStartOrEnd( 20, 1, cmd_list) ;
171
172 if((ptype = getptype(ptsig->USER,STB_HOLD)) != NULL)
173 hold = (long)ptype->DATA ;
174
175 if(ptype == NULL)
176 {
177 hold = STB_NO_TIME;
178 for(i = 0 ; i < 2 ; i++)
179 {
180 ptnode = stb_getstbnode(ptsig->NODE+i) ;
181 if(ptnode != NULL)
182 if(ptnode->HOLD < hold)
183 hold = ptnode->HOLD ;
184 }
185 }
186
187 if( hold < XtasMargin)
188 mask |= XTAS_HOLD;
189
190 XtasMainToolsCallback( widget, (XtPointer)(&mask), call_data ) ;
191 }
192 }
193 }
194 else
195 XalDrawMessage(tas_winfos->errwidget, XTAS_NSIGERR);
196
197 }
198
199 void XtasPathsGetPathCallback (widget, client_data, call_data)
200 Widget widget ;
201 XtPointer client_data ;
202 XtPointer call_data ;
203 {
204 short int mask = 0x0;
205
206 if(XTAS_SIGNAL != NULL)
207 {
208 XtasSetOrderByStartOrEnd( 10, 1, "*" ) ;
209 XtasSetOrderByStartOrEnd( 20, 1, XTAS_SIGNAL) ;
210 }
211 XtasMainToolsCallback( widget, (XtPointer)(&mask), call_data ) ;
212 }
213
214 /*---------------------------------------------------------------------------*/
215 /* */
216 /* */
217 /*---------------------------------------------------------------------------*/
218 void XtasRemovePathSession(window)
219 XtasWindowStruct *window ;
220 {
221 chain_list *head = XTAS_PATH_SESSION;
222 chain_list *chain ;
223 XtasWindowStruct *data;
224 XtasPathListSetStruct *path_set;
225
226 if(head != NULL) {
227 for(; head != NULL; head = head->NEXT ) {
228 data = head->DATA;
229 if((window == NULL) || (window == data)) {
230 path_set = data->userdata;
231 if(path_set->PARENT != NULL) {
232 for(chain = path_set->PARENT->PARA_SESSION ; chain != NULL; chain = chain->NEXT ) {
233 if((window == NULL) || (chain->DATA == window))
234 chain->DATA = NULL ;
235 }
236 }
237 for(chain = path_set->DETAIL_SESSION ; chain != NULL; chain = chain->NEXT ) {
238 if(chain->DATA != NULL) {
239 XtasRemoveDetailPathSession((XtasWindowStruct *)chain->DATA) ;
240 }
241 }
242 for(chain = path_set->PARA_SESSION ; chain != NULL; chain = chain->NEXT ) {
243 if(chain->DATA != NULL) {
244 XtasRemovePathSession((XtasWindowStruct *)chain->DATA) ;
245 }
246 }
247 XtasFreePathListSet( path_set );
248 XtDestroyWidget( data->topwidget );
249 mbkfree( data );
250 if(window == data)
251 break ;
252 }
253 }
254 if(window == NULL) {
255 freechain( XTAS_PATH_SESSION );
256 XTAS_PATH_SESSION = NULL;
257 }
258 else if(head != NULL)
259 XTAS_PATH_SESSION = delchain(XTAS_PATH_SESSION,head) ;
260 }
261 XTAS_PATHSSELECTEDWIDGET = NULL;
262 }
263
264 /*---------------------------------------------------------------------------*/
265 void XtasSavePaths(file,pathset)
266 FILE *file ;
267 XtasPathListSetStruct *pathset ;
268 {
269 ttvpath_list * path = pathset->CUR_PATH_WIN->DATA ;
270 int nbpath = pathset->PARAM->PATH_ITEM ;
271 char type ;
272 char *typedelay ;
273 long delay ;
274 int sizetype ;
275 int sizedelay ;
276 int sizeslope ;
277 int sizecumul ;
278 int sizename1 ;
279 int sizename2 ;
280 char name[1024] ;
281 char namx[1024] ;
282 char c[48] ;
283 int i ;
284
285 if(pathset->PARAM->CRITIC == 'Y')
286 type = 'M' ;
287 else if(pathset->PARAM->CRITIC == 'P')
288 type = 'P' ;
289 else
290 type = 'D' ;
291
292 XtasCalcSize(pathset->PARAM->ROOT_SIG_EDGE->TOP_FIG,
293 &sizetype,&sizedelay,NULL,&sizecumul,NULL,&sizeslope,NULL,
294 &sizename1,&sizename2,type,(chain_list *)path,&delay,NULL,XTAS_NONE,nbpath) ;
295
296 XtasPrintFirstEnd(file,sizetype,sizedelay,0,sizecumul,0,sizeslope,0,
297 sizename1,sizename2,XTAS_NONE) ;
298 XtasPrintLinesepar(file,sizetype,sizedelay,0,sizecumul,0,sizeslope,0,
299 sizename1,sizename2) ;
300
301 i = 1 ;
302
303 while(path != NULL)
304 {
305 if((path->TYPE & TTV_FIND_MAX) == TTV_FIND_MAX)
306 {
307 sprintf(name,"%c %s",type,"MAX") ;
308 }
309 else
310 {
311 sprintf(name,"%c %s",type,"MIN") ;
312 }
313 XtasPrintType(i,name,c,sizetype) ;
314 typedelay = c ;
315 XtasPrintLine(file,typedelay,sizetype,path->DELAY,sizedelay,(long)0,0,(long)0,
316 sizecumul,(long)0,0,path->SLOPE,sizeslope,(long)0,0,
317 ttv_getsigname(pathset->PARAM->ROOT_SIG_EDGE->TOP_FIG,
318 name,path->NODE->ROOT),sizename1,
319 XTAS_NODELEVEL(path->NODE),
320 ((path->TYPE & TTV_FIND_HZ) == TTV_FIND_HZ) ? 'Z' :
321 XTAS_NODELEVEL(path->ROOT),
322 ttv_getsigname(pathset->PARAM->ROOT_SIG_EDGE->TOP_FIG,
323 namx,path->ROOT->ROOT),sizename2) ;
324 path = path->NEXT ;
325 i++ ;
326 if(i > nbpath)
327 break ;
328 }
329
330 XtasPrintLinesepar(file,sizetype,sizedelay,0,sizecumul,0,sizeslope,0,
331 sizename1,sizename2) ;
332 XtasPrintFirstEnd(file,sizetype,sizedelay,0,sizecumul,0,sizeslope,0,
333 sizename1,sizename2,XTAS_NONE) ;
334 fprintf(file,"\n\n") ;
335 }
336
337 /*---------------------------------------------------------------------------*/
338 /* */
339 /* */
340 /*---------------------------------------------------------------------------*/
341 void XtasPathsSaveCallback( widget, client_data, call_data )
342 Widget widget;
343 XtPointer client_data;
344 XtPointer call_data;
345 {
346 XtasWindowStruct *widtab = (XtasWindowStruct *)client_data ;
347 XtasPathsSavePathset = (XtasPathListSetStruct *)widtab->userdata;
348
349 XtasSelectFileCallback( widget, (XtPointer)XTAS_PATH_MAP, call_data ) ;
350 }
351
352 void XtasPathsSelectFileOk (void)
353 {
354 FILE *file ;
355
356 if(XtasDataFileName != NULL)
357 {
358 file = fopen(XtasDataFileName,"a") ;
359 if(file != NULL)
360 {
361 XtasSavePaths(file,XtasPathsSavePathset) ;
362 fclose(file) ;
363 }
364 else
365 {
366 XalDrawMessage( XtasErrorWidget, XTAS_NOPENFL);
367 }
368 }
369 }
370
371 /*---------------------------------------------------------------------------*/
372 /* */
373 /* FUNCTION : XtasSignalsDetailCallback */
374 /* */
375 /* IN ARGS : .widget : The widget on which the event occurs. */
376 /* .client : The signal type. */
377 /* .call_data : Not significant. */
378 /* */
379 /* OUT ARGS : ( void ) */
380 /* */
381 /* OBJECT : The callback function for the View of signals detail */
382 /* */
383 /*---------------------------------------------------------------------------*/
384
385 void XtasSignalInfoCallback (widget, client_data , call_data)
386 Widget widget;
387 XtPointer client_data ;
388 XtPointer call_data ;
389 {
390 XtasWindowStruct *widtab = (XtasWindowStruct *)client_data ;
391
392 XalSetCursor ( widtab->topwidget, WAIT);
393 XalForceUpdate ( widtab->topwidget);
394
395 if (XTAS_SIGNAL)
396 XtasSignalsDetail ( widtab->topwidget, XTAS_SIGNAL) ;
397 else if ( XTAS_DISABLE_INFO == 'Y' )
398 XalDrawMessage (XtasErrorWidget, XTAS_INFOERR) ;
399 else
400 XalDrawMessage (XtasErrorWidget, XTAS_NSIGERR) ;
401
402 XalSetCursor ( widtab->topwidget, NORMAL) ;
403 }
404
405 /*---------------------------------------------------------------------------*/
406 /* FUNCTION : XtasCreate2SubForm */
407 /* */
408 /* Create the 2 subforms and display the infos on 2 signals named buf1 & buf2*/
409 /* */
410 /*---------------------------------------------------------------------------*/
411 void XtasCreate2SubForm(XtasPathSet,buf1,buf2)
412 XtasPathListSetStruct *XtasPathSet ;
413 char *buf1 ;
414 char *buf2 ;
415 {
416 Widget paned_window ;
417 Widget w1,w2 ;
418 static Widget last_paned_widget ;
419 static XtasPathListSetStruct* lastXtasPathSet ;
420 Arg args[10];
421 int n ;
422 XtWidgetGeometry size;
423
424 if (( last_paned_widget ) && ( lastXtasPathSet == XtasPathSet ))
425 XtDestroyWidget ( last_paned_widget ) ;
426 n=0;
427 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
428 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
429 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
430 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
431 paned_window = XtCreateManagedWidget( "XtasPanedWindow",
432 xmPanedWindowWidgetClass,
433 XtasPathSet->PATHLIST_2INFO,
434 args, n );
435 last_paned_widget = paned_window ;
436
437 n=0;
438 w1 = XtCreateManagedWidget ( "XtasNewDisp",
439 xmFormWidgetClass,
440 paned_window,
441 args, n );
442 w2 = XtCreateManagedWidget ( "XtasNewDisp",
443 xmFormWidgetClass,
444 paned_window,
445 args, n );
446 XtasFillInfosForm( w1, buf1 ) ;
447 XtasFillInfosForm( w2, buf2 ) ;
448
449 size.request_mode = CWHeight;
450 XtQueryGeometry (w1, NULL, &size);
451 XtVaSetValues (w1, XmNpaneMaximum, size.height, NULL);
452 XtQueryGeometry (w2, NULL, &size);
453 XtVaSetValues (w2, XmNpaneMaximum, size.height, NULL);
454
455 lastXtasPathSet = XtasPathSet ;
456 }
457
458 /*---------------------------------------------------------------------------*/
459 /* Focus the path so we can get detail path */
460 /* */
461 /*---------------------------------------------------------------------------*/
462
463 void XtasPathsFocus2Callback (widget, client_data , call_data)
464 Widget widget;
465 XtPointer client_data ;
466 XtPointer call_data ;
467 {
468 XmListCallbackStruct *cbs ;
469 chain_list *headsav = (chain_list *)client_data ;
470 chain_list *head;
471 int i ;
472
473 head = headsav ;
474
475 cbs = (XmListCallbackStruct*)call_data ;
476
477 i = 1 ;
478 while (head && (cbs) && (i < cbs->item_position)) {
479 head = head->NEXT ;
480 i++ ;
481 }
482
483 if ( head->DATA )
484 XtasPathsFocusCallback( widget, (XtPointer)head->DATA, call_data ) ;
485 }
486
487
488 /*---------------------------------------------------------------------------*/
489 /* */
490 /* FUNCTION : XtasGet2InfoCallback */
491 /* */
492 /* Displays the infos of the begining and the end of a path */
493 /* selected in the scrolled list */
494 /* */
495 /*---------------------------------------------------------------------------*/
496
497 void XtasGet2InfoCallback (widget, client_data , call_data)
498 Widget widget;
499 XtPointer client_data ;
500 XtPointer call_data ;
501 {
502 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
503 static XtasPathListSetStruct *LastXtasPathSet ;
504 XmListCallbackStruct *cbs ;
505 ttvpath_list *path;
506 char buf1[1024];
507 char buf2[1024];
508 static char *sig1;
509 static char *sig2;
510 int i;
511
512 XTAS_DISABLE_INFO = 'Y' ;
513 cbs = (XmListCallbackStruct*)call_data ;
514
515 path = XtasPathSet->CUR_PATH_WIN->DATA;
516 i = 1 ;
517 while (path&& (cbs) && (i < cbs->item_position)) {
518 path = path->NEXT ;
519 i++ ;
520 }
521
522 ttv_getsigname(XtasPathSet->PARAM->ROOT_SIG_EDGE->TOP_FIG, buf1,path->NODE->ROOT);
523 ttv_getsigname(XtasPathSet->PARAM->ROOT_SIG_EDGE->TOP_FIG, buf2,path->ROOT->ROOT);
524 if ( sig1 && (LastXtasPathSet == XtasPathSet))
525 mbkfree ( sig1 ) ;
526 if ( sig2 && (LastXtasPathSet == XtasPathSet))
527 mbkfree ( sig2 ) ;
528 sig1 = strdup(buf1) ;
529 sig2 = strdup(buf2) ;
530 XtasCreate2SubForm(XtasPathSet,sig1,sig2) ;
531 LastXtasPathSet = XtasPathSet ;
532 }
533
534 /*---------------------------------------------------------------------------*/
535 /* */
536 /* FUNCTION : XtasPathsCloseCallback */
537 /* */
538 /* IN ARGS : .widget : The widget on which the event occurs. */
539 /* .top : The window toplevel widget id. */
540 /* .call_data : Not significant. */
541 /* */
542 /* OUT ARGS : ( void ) */
543 /* */
544 /* OBJECT : */
545 /* */
546 /*---------------------------------------------------------------------------*/
547 void XtasPathsCloseCallback( widget, client_data, call_data )
548 Widget widget;
549 XtPointer client_data;
550 XtPointer call_data;
551 {
552 XtasWindowStruct * top = (XtasWindowStruct *)client_data ;
553
554 XtasRemovePathSession(top) ;
555 // XalLeaveLimitedLoop();
556 }
557
558 /*---------------------------------------------------------------------------*/
559 /* */
560 /* FUNCTION : XtasPathsFocusCallback */
561 /* */
562 /* IN ARGS : .widget : The widget on which the event occurs. */
563 /* .id : The path id, 0 if losing the focus. */
564 /* .call_data : Not significant. */
565 /* */
566 /* OUT ARGS : ( void ) */
567 /* */
568 /* OBJECT : The callback function for the focus in and out. */
569 /* */
570 /*---------------------------------------------------------------------------*/
571 void XtasSignalFocusCallback( widget, client_data, call_data )
572 Widget widget;
573 XtPointer client_data;
574 XtPointer call_data;
575 {
576 XTAS_SIGNAL = (char*)client_data ;
577 }
578 /*---------------------------------------------------------------------------*/
579 /* */
580 /* FUNCTION : XtasPathsDeselect */
581 /* */
582 /* OUT ARGS : ( void ) */
583 /* */
584 /*---------------------------------------------------------------------------*/
585 void XtasPathsDeselect( widget )
586 Widget widget;
587 {
588 Widget parent;
589 Pixel fg, bg;
590
591 parent = XtParent (widget);
592 XtVaGetValues(parent, XmNbackground,&bg,NULL );
593 XtVaSetValues(widget, XmNcursorPositionVisible, False, NULL) ;
594 XtVaSetValues (parent, XmNborderColor, bg, NULL);
595 }
596
597 /*---------------------------------------------------------------------------*/
598 /* */
599 /* FUNCTION : XtasGetFocusParentCallback */
600 /* */
601 /* IN ARGS : .widget : The widget on which the event occurs. */
602 /* .client_data : the false path result label. */
603 /* .call_data : Not significant. */
604 /* */
605 /* OUT ARGS : ( void ) */
606 /* */
607 /* OBJECT : The callback function for the focus in and out. */
608 /* */
609 /*---------------------------------------------------------------------------*/
610 void XtasGetFocusParentCallback( widget, client_data, call_data )
611 Widget widget;
612 XtPointer client_data;
613 XtPointer call_data;
614 {
615 XTAS_FLSPATHRESLABEL = (Widget)client_data ;
616 }
617
618 /*---------------------------------------------------------------------------*/
619 /* */
620 /* FUNCTION : XtasPathsFocusCallback */
621 /* */
622 /* IN ARGS : .widget : The widget on which the event occurs. */
623 /* .id : The path id, 0 if losing the focus. */
624 /* .call_data : Not significant. */
625 /* */
626 /* OUT ARGS : ( void ) */
627 /* */
628 /* OBJECT : The callback function for the focus in and out. */
629 /* */
630 /*---------------------------------------------------------------------------*/
631 void XtasPathsFocusCallback( widget, client_data, call_data )
632 Widget widget;
633 XtPointer client_data;
634 XtPointer call_data;
635 {
636 Pixel fg, bg;
637 Widget parent;
638
639 XtasPathIndexTabElt *FocusSet = ( XtasPathIndexTabElt *)client_data ;
640
641 if ( !XTAS_DISPLAY_NEW ) {
642 if (XTAS_PATHSSELECTEDWIDGET != NULL)
643 XtasPathsDeselect (XTAS_PATHSSELECTEDWIDGET);
644 XTAS_PATHSSELECTEDWIDGET = widget;
645 parent = XtParent (XTAS_PATHSSELECTEDWIDGET);
646 XtVaGetValues(parent , XmNforeground, &fg,NULL );
647 XtVaSetValues (XTAS_PATHSSELECTEDWIDGET, XmNcursorPositionVisible, True, NULL) ;
648 XtVaSetValues (parent, XmNborderColor, fg, NULL) ;
649 }
650 FocusSet->PATH_SET->PARAM->LOOK_PATH = FocusSet->PATH ;
651
652 XtasFillPathInfosForm (FocusSet);
653 }
654
655 /*---------------------------------------------------------------------------*/
656 /* */
657 /* FUNCTION : XtasPathsLosingFocusCallback */
658 /* */
659 /* IN ARGS : .widget : The widget on which the event occurs. */
660 /* .id : The path id, 0 if losing the focus. */
661 /* .call_data : Not significant. */
662 /* */
663 /* OUT ARGS : ( void ) */
664 /* */
665 /* OBJECT : The callback function for the focus in and out. */
666 /* */
667 /*---------------------------------------------------------------------------*/
668 void XtasLosingPathsFocusCallback( widget, client_data, call_data )
669 Widget widget;
670 XtPointer client_data;
671 XtPointer call_data;
672 {
673 }
674
675 /*---------------------------------------------------------------------------*/
676 /* */
677 /* FUNCTION : XtasFillPathList */
678 /* */
679 /* IN ARGS : .widget : The widget on which the event occurs. */
680 /* .widtab : The Set of the current window widgets. */
681 /* .call_data : Not significant. */
682 /* */
683 /* OUT ARGS : ( void ) */
684 /* */
685 /* OBJECT : The callback function for the View command */
686 /* */
687 /*---------------------------------------------------------------------------*/
688 void XtasFillPathList( XtasPathSet)
689 XtasPathListSetStruct *XtasPathSet;
690 {
691 Widget row_widget;
692 Widget list_widget;
693 Pixel tas_state_color;
694 Pixel tas_backg_color;
695 XmString text;
696 char value[1024];
697 Widget label_widget, text_from, text_to, text_slope, text_time;
698 Pixmap r_pixmap, f_pixmap, v_pixmap;
699 Arg args[10];
700 int n;
701 chain_list *head;
702 ttvpath_list *path;
703 int c, offset, limit, size;
704
705 list_widget = XtasPathSet->PATHLIST_SCROLL;
706 row_widget = XtasPathSet->PATHLIST_ROW;
707
708 if ((XtasPathSet->PARAM->REQUEST_TYPE & XTAS_SBS) == XTAS_SBS) {
709 offset = 10;
710 limit = 5;
711 }
712 else {
713 offset = 10;
714 limit = 10;
715 }
716
717
718 if ( row_widget != NULL )
719 {
720 if (XTAS_PATHSSELECTEDWIDGET != NULL) {
721 XtasPathsDeselect (XTAS_PATHSSELECTEDWIDGET);
722 XTAS_PATHSSELECTEDWIDGET = NULL;
723 }
724 XtDestroyWidget(row_widget);
725 }
726
727 row_widget = XtVaCreateWidget( "XtasPathsRow",
728 xmRowColumnWidgetClass,
729 list_widget,
730 XmNorientation, XmVERTICAL,
731 XmNspacing, 1,
732 NULL);
733
734 XtasPathSet->PATHLIST_ROW = row_widget;
735
736 XtVaGetValues(row_widget,XmNforeground,&tas_state_color,
737 XmNbackground,&tas_backg_color,NULL );
738
739 r_pixmap = XalGetPixmap( row_widget,
740 XTAS_REDG_MAP,
741 tas_state_color, tas_backg_color );
742 f_pixmap = XalGetPixmap( row_widget,
743 XTAS_FEDG_MAP,
744 tas_state_color, tas_backg_color );
745
746 head = XtasCreatePathTabIndex( XtasPathSet );
747 path = XtasPathSet->CUR_PATH_WIN->DATA;
748
749 if (XtasPathSet->CUR_PATH_WIN->PREV)
750 size = XtasPathSet->CUR_PATH_WIN->PREV->SIZE;
751 else
752 size = XtasPathSet->CUR_PATH_WIN->SIZE;
753 c = ((XtasPathSet->CUR_PATH_WIN->INDEX - 1) * size) + 1;
754
755 while ( head != NULL )
756 {
757 Widget sub_form;
758
759 n = 0;
760 XtSetArg( args[n], XmNborderWidth, 1 ); n++;
761 XtSetArg( args[n], XmNborderColor, tas_backg_color ); n++;
762 // XtSetArg( args[n], XmNwidth, 690 ); n++;
763 sub_form = XtCreateManagedWidget( "XtasSubForm",
764 xmFormWidgetClass,
765 row_widget,
766 args, n );
767 //XmAddTabGroup( sub_form );
768
769 if ( (r_pixmap == XmUNSPECIFIED_PIXMAP) || (f_pixmap == XmUNSPECIFIED_PIXMAP) )
770 {
771 text = ( ( path->NODE->TYPE & TTV_NODE_UP ) == TTV_NODE_UP) ? XmStringCreateSimple("rising") : XmStringCreateSimple("falling");
772 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
773 xmLabelWidgetClass,
774 sub_form,
775 XmNtopAttachment, XmATTACH_FORM,
776 XmNlabelString, text,
777 XmNleftAttachment, XmATTACH_FORM,
778 XmNleftOffset, 7,
779 XmNwidth, 40,
780 XmNheight, 25,
781 NULL);
782 XmStringFree( text );
783 }
784 else
785 {
786 v_pixmap = ( (path->NODE->TYPE & TTV_NODE_UP ) == TTV_NODE_UP) ? r_pixmap : f_pixmap;
787 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
788 xmLabelWidgetClass,
789 sub_form,
790 XmNtopAttachment, XmATTACH_FORM,
791 XmNlabelType, XmPIXMAP,
792 XmNlabelPixmap, v_pixmap,
793 XmNleftAttachment, XmATTACH_FORM,
794 XmNleftOffset, 7,
795 XmNwidth, 40,
796 XmNheight, 25,
797 NULL);
798 }
799
800 n = 0;
801 XtSetArg( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
802 XtSetArg( args[n], XmNleftWidget, label_widget ); n++;
803 XtSetArg( args[n], XmNrightOffset, 2 ); n++;
804 XtSetArg( args[n], XmNwidth, 150 ); n++;
805 XtSetArg( args[n], XmNshadowThickness, 1 ); n++;
806 XtSetArg( args[n], XmNcursorPositionVisible, False ); n++;
807 XtSetArg( args[n], XmNeditable, False ); n++;
808 text_from = XtCreateManagedWidget( "XtasUserField",
809 xmTextWidgetClass,
810 sub_form,
811 args, n);
812 /* XtAddCallback( text_from,
813 XmNactivateCallback,
814 XtasPathsDetailCallback,
815 (XtPointer)XtasPathSet );*/
816 XtAddCallback( text_from,
817 XmNfocusCallback,
818 XtasPathsFocusCallback,
819 (XtPointer)head->DATA );
820 XtAddCallback( text_from,
821 XmNlosingFocusCallback,
822 XtasLosingPathsFocusCallback,
823 (XtPointer)head->DATA );
824 ttv_getsigname(XtasPathSet->PARAM->ROOT_SIG_EDGE->TOP_FIG, value,path->NODE->ROOT);
825 XtAddCallback(text_from,
826 XmNfocusCallback,
827 XtasSignalFocusCallback,
828 (XtPointer)strdup (value));
829 XmTextSetString( text_from, value );
830 if ( (r_pixmap == XmUNSPECIFIED_PIXMAP) || (f_pixmap == XmUNSPECIFIED_PIXMAP) ||
831 ( ( path->TYPE & TTV_FIND_HZ ) == TTV_FIND_HZ ) )
832 {
833 if(( path->TYPE & TTV_FIND_HZ ) == TTV_FIND_HZ )
834 text = XmStringCreateSimple("highZ");
835 else
836 text = ( ( path->ROOT->TYPE & TTV_NODE_UP ) == TTV_NODE_UP) ? XmStringCreateSimple("rising") : XmStringCreateSimple("falling");
837 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
838 xmLabelWidgetClass,
839 sub_form,
840 XmNlabelString, text,
841 XmNleftAttachment, XmATTACH_WIDGET,
842 XmNleftWidget, text_from,
843 XmNleftOffset, 9,
844 XmNwidth, 40,
845 XmNheight, 25,
846 NULL);
847 XmStringFree( text );
848 }
849 else
850 {
851 v_pixmap = ( ( path->ROOT->TYPE & TTV_NODE_UP ) == TTV_NODE_UP) ? r_pixmap : f_pixmap;
852 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
853 xmLabelWidgetClass,
854 sub_form,
855 XmNlabelType, XmPIXMAP,
856 XmNlabelPixmap, v_pixmap,
857 XmNleftAttachment, XmATTACH_WIDGET,
858 XmNleftWidget, text_from,
859 XmNleftOffset, 9,
860 XmNwidth, 40,
861 XmNheight, 25,
862 NULL);
863 }
864 /*===== New Widget =====*/
865 n = 0;
866 XtSetArg( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
867 XtSetArg( args[n], XmNleftWidget, label_widget ); n++;
868 XtSetArg( args[n], XmNrightOffset, 2 ); n++;
869 XtSetArg( args[n], XmNwidth, 150 ); n++;
870 XtSetArg( args[n], XmNshadowThickness, 1 ); n++;
871 XtSetArg( args[n], XmNcursorPositionVisible, False ); n++;
872 XtSetArg( args[n], XmNeditable, False ); n++;
873 text_to = XtCreateManagedWidget( "XtasUserField",
874 xmTextWidgetClass,
875 sub_form,
876 args, n );
877 /* XtAddCallback( text_to,
878 XmNactivateCallback,
879 XtasPathsDetailCallback,
880 (XtPointer)XtasPathSet );*/
881 XtAddCallback( text_to,
882 XmNfocusCallback,
883 XtasPathsFocusCallback,
884 (XtPointer)head->DATA );
885 XtAddCallback( text_to,
886 XmNlosingFocusCallback,
887 XtasLosingPathsFocusCallback,
888 (XtPointer)head->DATA );
889 ttv_getsigname( XtasPathSet->PARAM->ROOT_SIG_EDGE->TOP_FIG, value, path->ROOT->ROOT);
890 XtAddCallback( text_to,
891 XmNfocusCallback,
892 XtasSignalFocusCallback,
893 (XtPointer)strdup (value));
894 XmTextSetString( text_to,value);
895
896 /*===== New Widget =====*/
897 n = 0;
898 XtSetArg( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
899 XtSetArg( args[n], XmNleftWidget, text_to ); n++;
900 XtSetArg( args[n], XmNleftOffset, 10 ); n++;
901 XtSetArg( args[n], XmNrightOffset, 2 ); n++;
902 XtSetArg( args[n], XmNwidth, 100 ); n++;
903 XtSetArg( args[n], XmNshadowThickness, 1 ); n++;
904 XtSetArg( args[n], XmNcursorPositionVisible, False ); n++;
905 XtSetArg( args[n], XmNeditable, False ); n++;
906 text_slope = XtCreateManagedWidget( "XtasUserField",
907 xmTextWidgetClass,
908 sub_form, args, n);
909 /* XtAddCallback( text_slope,
910 XmNactivateCallback,
911 XtasPathsDetailCallback,
912 (XtPointer)XtasPathSet );*/
913 XtAddCallback( text_slope,
914 XmNfocusCallback,
915 XtasPathsFocusCallback,
916 (XtPointer)head->DATA );
917 XtAddCallback( text_slope,
918 XmNlosingFocusCallback,
919 XtasLosingPathsFocusCallback,
920 (XtPointer)head->DATA );
921 XtAddCallback( text_slope,
922 XmNfocusCallback,
923 XtasSignalFocusCallback,
924 (XtPointer)NULL);
925 sprintf( value, "%.1f pS" , path->SLOPE/TTV_UNIT );
926 XmTextSetString( text_slope, value );
927
928 /*===== New Widget =====*/
929 n = 0;
930 XtSetArg( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
931 XtSetArg( args[n], XmNleftWidget, text_slope ); n++;
932
933 XtSetArg( args[n], XmNleftOffset, 2 ); n++;
934 XtSetArg( args[n], XmNrightOffset, 2 ); n++;
935 XtSetArg( args[n], XmNwidth, 100 ); n++;
936 XtSetArg( args[n], XmNshadowThickness, 1 ); n++;
937 XtSetArg( args[n], XmNcursorPositionVisible, False ); n++;
938 XtSetArg( args[n], XmNeditable, False ); n++;
939 text_time = XtCreateManagedWidget( "XtasUserField",
940 xmTextWidgetClass,
941 sub_form,
942 args, n);
943 /* XtAddCallback( text_time,
944 XmNactivateCallback,
945 XtasPathsDetailCallback,
946 (XtPointer)XtasPathSet );*/
947 XtAddCallback( text_time,
948 XmNfocusCallback,
949 XtasPathsFocusCallback,
950 (XtPointer)head->DATA );
951 XtAddCallback( text_time,
952 XmNlosingFocusCallback,
953 XtasLosingPathsFocusCallback,
954 (XtPointer)head->DATA );
955 XtAddCallback( text_time,
956 XmNfocusCallback,
957 XtasSignalFocusCallback,
958 (XtPointer)NULL);
959 sprintf( value, "%.1fpS" , (path->DELAY+path->DATADELAY)/ TTV_UNIT);
960 XmTextSetString( text_time, value );
961
962 /*===== New Widget =====*/
963
964 n = 0;
965 XtSetArg( args[n], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
966 XtSetArg( args[n], XmNtopWidget, text_time ); n++;
967 XtSetArg( args[n], XmNbottomAttachment,XmATTACH_OPPOSITE_WIDGET ); n++;
968 XtSetArg( args[n], XmNbottomWidget, text_time ); n++;
969 XtSetArg( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
970 XtSetArg( args[n], XmNleftWidget, text_time ); n++;
971 label_widget = XtCreateManagedWidget( "XtasLabel",
972 xmLabelWidgetClass,
973 sub_form,
974 args, n );
975 sprintf( value, "%i" , c );
976 XtasSetLabelString( label_widget, value);
977
978
979 /*===== Widget used to display false path result =====*/
980 n = 0;
981 XtSetArg( args[n], XmNtopOffset, 3 ); n++;
982 XtSetArg( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
983 XtSetArg( args[n], XmNleftWidget, label_widget ); n++;
984 XtSetArg( args[n], XmNleftOffset, 2 ); n++;
985 XtSetArg( args[n], XmNlabelType, XmPIXMAP ); n++;
986 XtSetArg( args[n], XmNheight, 20 ); n++;
987 XtSetArg( args[n], XmNwidth, 20 ); n++;
988 label_widget = XtCreateManagedWidget( "",
989 xmLabelWidgetClass,
990 sub_form,
991 args, n );
992
993
994
995 XtAddCallback(text_from,
996 XmNfocusCallback,
997 XtasGetFocusParentCallback,
998 (XtPointer)label_widget);
999 XtAddCallback(text_to,
1000 XmNfocusCallback,
1001 XtasGetFocusParentCallback,
1002 (XtPointer)label_widget);
1003 XtAddCallback(text_slope,
1004 XmNfocusCallback,
1005 XtasGetFocusParentCallback,
1006 (XtPointer)label_widget);
1007 XtAddCallback(text_time,
1008 XmNfocusCallback,
1009 XtasGetFocusParentCallback,
1010 (XtPointer)label_widget);
1011
1012 c++;
1013 head = head->NEXT;
1014 path = path->NEXT;
1015 }
1016 c--;
1017 if ((c > limit) || ((XtasPathSet->PARAM->REQUEST_TYPE & XTAS_SBS)==XTAS_SBS))
1018 XtVaSetValues (list_widget, XmNheight, offset + limit*32, NULL);
1019 else
1020 XtVaSetValues (list_widget, XmNheight, offset + c*32, NULL);
1021
1022
1023 XtManageChild( row_widget );
1024 }
1025
1026
1027 /*---------------------------------------------------------------------------*/
1028 /* */
1029 /* FUNCTION : XtasFillPathList2 */
1030 /* */
1031 /* New display of the paths list */
1032 /* */
1033 /*---------------------------------------------------------------------------*/
1034 void XtasFillPathList2( XtasPathSet)
1035 XtasPathListSetStruct *XtasPathSet;
1036 {
1037 XmString text;
1038 char value[1024];
1039 chain_list *head;
1040 chain_list *headsav;
1041 ttvpath_list *path;
1042 int c;
1043 char text_line[2048];
1044 char *first_signame;
1045 char *last_signame;
1046 char *tp;
1047 char *slope;
1048 char type_front1[1024];
1049 char type_front2[1024];
1050
1051 head = XtasCreatePathTabIndex( XtasPathSet );
1052 headsav = head ;
1053 path = XtasPathSet->CUR_PATH_WIN->DATA;
1054
1055 XmListDeleteAllItems(XtasPathSet->PATHLIST_SCROLL) ;
1056
1057 c = 1;
1058
1059 while ( head != NULL )
1060 {
1061 /* type du 1er front */
1062 if(( path->NODE->TYPE & TTV_NODE_UP ) == TTV_NODE_UP)
1063 sprintf(type_front1,"R ") ;
1064 else
1065 sprintf(type_front1,"F ") ;
1066
1067 /* type du 2e front */
1068 if (( path->TYPE & TTV_FIND_HZ ) == TTV_FIND_HZ)
1069 sprintf(type_front2,"Z ") ;
1070 else if(( path->ROOT->TYPE & TTV_NODE_UP ) == TTV_NODE_UP)
1071 sprintf(type_front2,"R ") ;
1072 else
1073 sprintf(type_front2,"F ") ;
1074
1075 /* first signal */
1076 ttv_getsigname(XtasPathSet->PARAM->ROOT_SIG_EDGE->TOP_FIG, value,path->NODE->ROOT);
1077 first_signame = XtasPlaceString(value,XtasCarLength1) ;
1078
1079 /* last signal */
1080 ttv_getsigname(XtasPathSet->PARAM->ROOT_SIG_EDGE->TOP_FIG, value,path->ROOT->ROOT);
1081 last_signame = XtasPlaceString(value,XtasCarLength2) ;
1082
1083 /* Slope */
1084 slope = XtasPlaceNbStringTTVUnit(path->SLOPE,TTV_UNIT) ;
1085
1086 /* Tp */
1087 tp = XtasPlaceNbStringTTVUnit(path->DELAY+path->DATADELAY, TTV_UNIT) ;
1088
1089 /* indice du chemin = c */
1090
1091 sprintf(text_line,"%s %s %s %s %spS %spS %d", first_signame, type_front1, type_front2,
1092 last_signame, slope, tp ,c) ;
1093
1094 mbkfree(first_signame) ;
1095 mbkfree(last_signame) ;
1096 mbkfree(slope);
1097 mbkfree(tp);
1098
1099 text = XmStringCreateSimple (text_line) ;
1100 XmListAddItemUnselected (XtasPathSet->PATHLIST_SCROLL, text, c) ;
1101 XmStringFree (text) ;
1102 c++;
1103 head = head->NEXT;
1104 path = path->NEXT;
1105 }
1106
1107 /* Call back to define on scroll list */
1108 XtAddCallback (XtasPathSet->PATHLIST_SCROLL,
1109 XmNbrowseSelectionCallback,
1110 XtasGet2InfoCallback,
1111 (XtPointer)XtasPathSet);
1112
1113 /* Call back to display signal details */
1114 XtAddCallback (XtasPathSet->PATHLIST_SCROLL,
1115 XmNbrowseSelectionCallback,
1116 XtasPathsFocus2Callback,
1117 (XtPointer)headsav);
1118 /*
1119 XtAddCallback( XtasPathSet->PATHLIST_SCROLL,
1120 XmNdefaultActionCallback,
1121 XtasPathsDetailCallback,
1122 (XtPointer)XtasPathSet);
1123 */
1124 }
1125
1126 /*---------------------------------------------------------------------------*/
1127 /* */
1128 /* */
1129 /* */
1130 /*---------------------------------------------------------------------------*/
1131 void XtasSigPathSelectCallback(widget, client_data , call_data )
1132 Widget widget;
1133 XtPointer client_data ;
1134 XtPointer call_data;
1135 {
1136 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1137 XmListCallbackStruct *cbs = (XmListCallbackStruct *)call_data ;
1138 int position, n;
1139 chain_list *sig_list;
1140 char text_info[1024];
1141 char text_info2[1024];
1142 ttvsig_list *head;
1143
1144 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1145 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1146
1147 XTAS_PATHSSELECTEDWIDGET = NULL;
1148
1149 sig_list = XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN->DATA;
1150 position = cbs->item_position;
1151
1152 for ( n = 1 ; n < position ; n++ )
1153 {
1154 sig_list = sig_list->NEXT;
1155 }
1156
1157 XtasPathSet->PARAM->CUR_SIG = sig_list;
1158 head = sig_list->DATA;
1159
1160 if ( XtasTtvGetPathList( XtasPathSet ) != NULL )
1161 {
1162 if ((XtasPathSet->PARAM->SCAN_TYPE & TTV_FIND_DUAL) == TTV_FIND_DUAL)
1163 sprintf( text_info, "Current Input Signal: %s",
1164 ttv_getsigname(XtasPathSet->PARAM->ROOT_SIG_EDGE->TOP_FIG,
1165 text_info2, head));
1166 else
1167 sprintf( text_info, "Current Output Signal: %s",
1168 ttv_getsigname(XtasPathSet->PARAM->ROOT_SIG_EDGE->TOP_FIG,
1169 text_info2, head));
1170
1171 XtasSetLabelString( XtasPathSet->INFO_CUR_SIG, text_info);
1172 if (XTAS_DISPLAY_NEW)
1173 XtasFillPathList2 (XtasPathSet) ;
1174 else
1175 XtasFillPathList( XtasPathSet );
1176 }
1177 else
1178 {
1179 if ((XtasPathSet->PARAM->SCAN_TYPE & TTV_FIND_DUAL) == TTV_FIND_DUAL)
1180 sprintf( text_info, "Current Input Signal: %s",
1181 ttv_getsigname(XtasPathSet->PARAM->ROOT_SIG_EDGE->TOP_FIG,
1182 text_info2, head));
1183 else
1184 sprintf( text_info, "Current Output Signal: %s",
1185 ttv_getsigname(XtasPathSet->PARAM->ROOT_SIG_EDGE->TOP_FIG,
1186 text_info2, head));
1187 XalDrawMessage( XtasWarningWidget , XTAS_NPATWAR ) ;
1188 }
1189
1190 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1191 }
1192
1193 /*---------------------------------------------------------------------------*/
1194 /* */
1195 /* XtasPathTreatEndCallback */
1196 /* */
1197 /*---------------------------------------------------------------------------*/
1198 void XtasPathTreatEndCallback( widget, client_data, call_data )
1199
1200 Widget widget;
1201 XtPointer client_data ;
1202 XtPointer call_data;
1203
1204 {
1205 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1206 XtasChainJmpList *head;
1207
1208 head = XtasPathSet->CUR_PATH_WIN;;
1209
1210 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_SIGINFO );
1211 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1212 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1213
1214 if (head->NEXT != NULL )
1215 {
1216 while( head->NEXT != NULL )
1217 {
1218 head = head->NEXT;
1219 XtasPathSet->CUR_PATH_WIN = head;
1220 }
1221 /* if (XTAS_DISPLAY_NEW)
1222 XtasFillPathList2 (XtasPathSet) ;
1223 else*/
1224 XtasFillPathList( XtasPathSet );
1225 }
1226 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1227 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1228 }
1229
1230 /*---------------------------------------------------------------------------*/
1231 /* */
1232 /* XtasPathTreatFastFwdCallback */
1233 /* */
1234 /*---------------------------------------------------------------------------*/
1235 void XtasPathTreatFastFwdCallback( widget, client_data, call_data )
1236
1237 Widget widget;
1238 XtPointer client_data ;
1239 XtPointer call_data;
1240
1241 {
1242 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1243
1244 XtasChainJmpList *head = XtasPathSet->CUR_PATH_WIN;;
1245
1246 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_SIGINFO );
1247 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1248 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1249
1250 if ( head->NEXT != NULL )
1251 {
1252 XtasPathSet->CUR_PATH_WIN = head->NEXT;
1253 head = head->NEXT;
1254 }
1255
1256 if ( head->NEXT != NULL )
1257 {
1258 XtasPathSet->CUR_PATH_WIN = head->NEXT;
1259 }
1260 /* if (XTAS_DISPLAY_NEW)
1261 XtasFillPathList2 (XtasPathSet) ;
1262 else*/
1263 XtasFillPathList( XtasPathSet );
1264
1265 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1266 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1267 }
1268
1269 /*---------------------------------------------------------------------------*/
1270 /* */
1271 /* */
1272 /* */
1273 /*---------------------------------------------------------------------------*/
1274 void XtasPathTreatMiddleCallback( widget, client_data, call_data )
1275
1276 Widget widget;
1277 XtPointer client_data ;
1278 XtPointer call_data;
1279
1280 {
1281 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1282
1283 XtasChainJmpList *head = XtasPathSet->CUR_PATH_WIN;;
1284
1285 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_SIGINFO );
1286 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1287 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1288
1289 if ( head->NEXT != NULL )
1290 {
1291 XtasPathSet->CUR_PATH_WIN = head->NEXT;
1292 /* if (XTAS_DISPLAY_NEW)
1293 XtasFillPathList2 (XtasPathSet) ;
1294 else */
1295 XtasFillPathList( XtasPathSet );
1296 }
1297
1298 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1299 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1300 }
1301
1302 /*---------------------------------------------------------------------------*/
1303 /* */
1304 /* */
1305 /* */
1306 /*---------------------------------------------------------------------------*/
1307 void XtasPathTreatNextCallback( widget, client_data , call_data )
1308 Widget widget;
1309 XtPointer client_data;
1310 XtPointer call_data;
1311 {
1312 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1313
1314 XtasChainJmpList *head = XtasPathSet->CUR_PATH_WIN;;
1315
1316 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_SIGINFO );
1317 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1318 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1319
1320 if ( head->NEXT != NULL )
1321 {
1322 XtasPathSet->CUR_PATH_WIN = head->NEXT;
1323 /* if (XTAS_DISPLAY_NEW)
1324 XtasFillPathList2 (XtasPathSet) ;
1325 else*/
1326 XtasFillPathList( XtasPathSet );
1327 }
1328
1329 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1330 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1331 }
1332
1333 /*---------------------------------------------------------------------------*/
1334 /* */
1335 /* */
1336 /* */
1337 /*---------------------------------------------------------------------------*/
1338 void XtasPathTreatFastRewCallback( widget, client_data, call_data )
1339 Widget widget;
1340 XtPointer client_data ;
1341 XtPointer call_data;
1342 {
1343 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1344
1345 XtasChainJmpList *head = XtasPathSet->CUR_PATH_WIN;;
1346
1347 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_SIGINFO );
1348 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1349 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1350
1351 if ( head->PREV != NULL )
1352 {
1353 head = head->PREV;
1354 if ( head->PREV != NULL )
1355 {
1356 head = head->PREV;
1357 XtasPathSet->CUR_PATH_WIN = head;
1358 /* if (XTAS_DISPLAY_NEW)
1359 XtasFillPathList2 (XtasPathSet) ;
1360 else*/
1361 XtasFillPathList( XtasPathSet );
1362 }
1363 else
1364 {
1365 XtasPathSet->CUR_PATH_WIN = head;
1366 /* if (XTAS_DISPLAY_NEW)
1367 XtasFillPathList2 (XtasPathSet) ;
1368 else*/
1369 XtasFillPathList( XtasPathSet );
1370 }
1371 }
1372
1373 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1374 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1375 }
1376
1377 /*---------------------------------------------------------------------------*/
1378 /* */
1379 /* */
1380 /* */
1381 /*---------------------------------------------------------------------------*/
1382 void XtasPathTreatTopCallback( widget, client_data, call_data )
1383
1384 Widget widget;
1385 XtPointer client_data ;
1386 XtPointer call_data;
1387
1388 {
1389 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1390
1391 XtasChainJmpList *head = XtasPathSet->CUR_PATH_WIN;;
1392
1393 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_SIGINFO );
1394 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1395 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1396 if ( head->PREV != NULL )
1397 {
1398 while ( head->PREV != NULL )
1399 {
1400 head = head->PREV;
1401 XtasPathSet->CUR_PATH_WIN = head;
1402 }
1403 /* if (XTAS_DISPLAY_NEW)
1404 XtasFillPathList2 (XtasPathSet) ;
1405 else*/
1406 XtasFillPathList( XtasPathSet );
1407 }
1408
1409 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1410 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1411 }
1412
1413 /*---------------------------------------------------------------------------*/
1414 /* */
1415 /* */
1416 /* */
1417 /*---------------------------------------------------------------------------*/
1418 void XtasPathTreatPrevCallback( widget, client_data, call_data )
1419
1420 Widget widget;
1421 XtPointer client_data ;
1422 XtPointer call_data;
1423
1424 {
1425 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1426
1427 XtasChainJmpList *head = XtasPathSet->CUR_PATH_WIN;;
1428
1429
1430 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_SIGINFO );
1431 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1432 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1433
1434 if ( head->PREV != NULL )
1435 {
1436 XtasPathSet->CUR_PATH_WIN = head->PREV;
1437 /* if (XTAS_DISPLAY_NEW)
1438 XtasFillPathList2 (XtasPathSet) ;
1439 else*/
1440 XtasFillPathList( XtasPathSet );
1441 }
1442
1443 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1444 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1445 }
1446
1447 /*---------------------------------------------------------------------------*/
1448 /* */
1449 /* */
1450 /* */
1451 /*---------------------------------------------------------------------------*/
1452 void XtasFillSigPathList( XtasPathSet )
1453
1454 XtasPathListSetStruct *XtasPathSet;
1455
1456 {
1457 int position = 0;
1458 chain_list *head;
1459 XmString motif_string;
1460 char buffer[1024];
1461
1462
1463 XmListDeleteAllItems( XtasPathSet->SIGNAL_LIST_SET->SIGLIST_SCROLL );
1464
1465 if ( XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN == NULL )
1466 {
1467 return;
1468 }
1469 head = XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN->DATA;
1470
1471 if ( head == NULL )
1472 {
1473
1474 /* XalDrawMessage( Xtaswarning_widget[type], XTAS_NSIGWAR ); */
1475
1476 }
1477 else
1478 {
1479 while ( position < XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN->SIZE )
1480 {
1481 /*------------------------------------------------*/
1482 /* traitement a modifier pour plus d'infos ? */
1483 /*------------------------------------------------*/
1484
1485 ttv_getsigname( XtasPathSet->SIGNAL_LIST_SET->SIGNAL->TOP_FIG,
1486 buffer, head->DATA);
1487 motif_string = XmStringCreateLtoR( buffer, XmSTRING_DEFAULT_CHARSET );
1488 XmListAddItemUnselected( XtasPathSet->SIGNAL_LIST_SET->SIGLIST_SCROLL,
1489 motif_string, ++position );
1490 XmStringFree( motif_string );
1491 head = head->NEXT;
1492 }
1493 }
1494 }
1495
1496 /*---------------------------------------------------------------------------*/
1497 /* */
1498 /* */
1499 /* */
1500 /*---------------------------------------------------------------------------*/
1501 void XtasSigPathTreatEndCallback( widget, client_data, call_data )
1502
1503 Widget widget;
1504 XtPointer client_data ;
1505 XtPointer call_data;
1506
1507 {
1508 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1509
1510 static XtasChainJmpList *head;
1511
1512 head = XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN;;
1513
1514 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_SIGINFO );
1515 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1516 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1517
1518 while ( head->NEXT != NULL )
1519 {
1520 head = head->NEXT;
1521 XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN = head;
1522 }
1523 XtasFillSigPathList( XtasPathSet );
1524
1525 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1526 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1527 }
1528
1529 /*---------------------------------------------------------------------------*/
1530 /* */
1531 /* */
1532 /* */
1533 /*---------------------------------------------------------------------------*/
1534 void XtasSigPathTreatFastFwdCallback( widget, client_data, call_data )
1535 Widget widget;
1536 XtPointer client_data ;
1537 XtPointer call_data;
1538 {
1539 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1540
1541 static XtasChainJmpList *head;
1542
1543 head = XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN;;
1544
1545 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_SIGINFO );
1546 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1547 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1548
1549 if ( head->NEXT != NULL )
1550 {
1551 head = head->NEXT;
1552 }
1553
1554 if ( head->NEXT != NULL )
1555 {
1556 head = head->NEXT;
1557 }
1558
1559 XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN = head;
1560
1561 XtasFillSigPathList( XtasPathSet );
1562
1563 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1564 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1565 }
1566
1567 /*---------------------------------------------------------------------------*/
1568 /* */
1569 /* */
1570 /* */
1571 /*---------------------------------------------------------------------------*/
1572 void XtasSigPathTreatNextCallback( widget, client_data , call_data )
1573
1574 Widget widget;
1575 XtPointer client_data ;
1576 XtPointer call_data;
1577
1578 {
1579 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1580
1581 static XtasChainJmpList *head;
1582
1583 head = XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN;;
1584
1585 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_SIGINFO );
1586 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1587 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1588
1589 if ( head->NEXT != NULL )
1590 {
1591 XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN = head->NEXT;
1592 XtasFillSigPathList( XtasPathSet );
1593 }
1594
1595 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1596 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1597 }
1598
1599 /*---------------------------------------------------------------------------*/
1600 /* */
1601 /* */
1602 /* */
1603 /*---------------------------------------------------------------------------*/
1604 void XtasSigPathTreatMiddleCallback( widget, client_data , call_data )
1605
1606 Widget widget;
1607 XtPointer client_data ;
1608 XtPointer call_data;
1609
1610 {
1611 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1612
1613 static XtasChainJmpList *head;
1614
1615 head = XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN;;
1616
1617 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_SIGINFO );
1618 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1619 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1620
1621 if ( head->NEXT != NULL )
1622 {
1623 XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN = head->NEXT;
1624 XtasFillSigPathList( XtasPathSet );
1625 }
1626
1627 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1628 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1629 }
1630
1631 /*---------------------------------------------------------------------------*/
1632 /* */
1633 /* */
1634 /* */
1635 /*---------------------------------------------------------------------------*/
1636 void XtasSigPathTreatPrevCallback( widget, client_data , call_data )
1637
1638 Widget widget;
1639 XtPointer client_data ;
1640 XtPointer call_data;
1641
1642 {
1643 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1644
1645 static XtasChainJmpList *head;
1646
1647 head = XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN;
1648
1649 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_SIGINFO );
1650 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1651 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1652
1653 if ( head->PREV != NULL )
1654 {
1655 XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN = head->PREV;
1656 XtasFillSigPathList( XtasPathSet );
1657 }
1658
1659 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1660 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1661 }
1662
1663 /*---------------------------------------------------------------------------*/
1664 /* */
1665 /* */
1666 /* */
1667 /*---------------------------------------------------------------------------*/
1668 void XtasSigPathTreatFastRewCallback( widget, client_data , call_data )
1669
1670 Widget widget;
1671 XtPointer client_data ;
1672 XtPointer call_data;
1673
1674 {
1675 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1676
1677 static XtasChainJmpList *head;
1678
1679 head = XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN;
1680
1681 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_SIGINFO );
1682 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1683 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1684
1685 if ( head->PREV != NULL )
1686 {
1687 head = head->PREV;
1688 }
1689 if ( head->PREV != NULL )
1690 {
1691 head = head->PREV;
1692 }
1693
1694 XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN = head;
1695
1696 XtasFillSigPathList( XtasPathSet );
1697
1698 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1699 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1700 }
1701
1702 /*---------------------------------------------------------------------------*/
1703 /* */
1704 /* */
1705 /* */
1706 /*---------------------------------------------------------------------------*/
1707 void XtasSigPathTreatTopCallback( widget, client_data , call_data )
1708
1709 Widget widget;
1710 XtPointer client_data;
1711 XtPointer call_data;
1712
1713 {
1714 XtasPathListSetStruct *XtasPathSet = (XtasPathListSetStruct *)client_data ;
1715
1716 static XtasChainJmpList *head;
1717
1718 head = XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN;
1719
1720 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_SIGINFO );
1721 XalSetCursor( XtasPathSet->TOP_LEVEL, WAIT );
1722 XalForceUpdate( XtasPathSet->TOP_LEVEL );
1723
1724 while ( head->PREV != NULL )
1725 {
1726 head = head->PREV;
1727 XtasPathSet->SIGNAL_LIST_SET->CUR_SIG_WIN = head;
1728 }
1729
1730 XtasFillSigPathList( XtasPathSet );
1731
1732 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1733 XalSetCursor( XtasPathSet->TOP_LEVEL, NORMAL );
1734 }
1735
1736 /*---------------------------------------------------------------------------*/
1737 /* */
1738 /* FUNCTION : XtasPathsButtonsCallback */
1739 /* */
1740 /* IN ARGS : .widget : The widget on which the event occurs. */
1741 /* .widtab : Table of important widgets for the current window. */
1742 /* .call_data : Not significant. */
1743 /* */
1744 /* OUT ARGS : ( void ) */
1745 /* */
1746 /* OBJECT : The callback function for the Options/Button's command */
1747 /* */
1748 /*---------------------------------------------------------------------------*/
1749 void XtasPathsButtonsCallback( widget, client_data , call_data )
1750
1751 Widget widget;
1752 XtPointer client_data ;
1753 XtPointer call_data;
1754
1755 {
1756 XtasWindowStruct *widtab = (XtasWindowStruct *)client_data ;
1757 XtasOptionsButtonsTreat( widtab->wrkwidget, &widtab->butwidget,
1758 XtasPathsButtonMenus, XtasPathsButtonOptions );
1759 }
1760
1761
1762 /*---------------------------------------------------------------------------*/
1763 /* */
1764 /* FUNCTION : XtasCreatePathsMenus */
1765 /* */
1766 /* IN ARGS : .parent : Parent widget for the Menu Bar. */
1767 /* */
1768 /* OUT ARGS : .The value of the Menu Bar widget. */
1769 /* */
1770 /* OBJECT : Creates the menu bar of the paths window. */
1771 /* */
1772 /*---------------------------------------------------------------------------*/
1773 Widget XtasCreatePathsMenus( parent , tas_winfos)
1774
1775 Widget parent;
1776 XtasWindowStruct *tas_winfos;
1777
1778 {
1779 Widget menu_bar;
1780 Arg args[20];
1781 int n;
1782
1783 for(n = 0 ; XtasPathsMenuFile[n].label != NULL ; n++)
1784 XtasPathsMenuFile[n].callback_data = (XtPointer)tas_winfos;
1785 for(n = 0 ; XtasPathsMenuView[n].label != NULL ; n++)
1786 XtasPathsMenuFile[n].callback_data = (XtPointer)tas_winfos;
1787 for(n = 0 ; XtasPathsMenuTools[n].label != NULL ; n++)
1788 XtasPathsMenuTools[n].callback_data = (XtPointer)tas_winfos;
1789 for(n = 0 ; XtasPathsMenuOptions[n].label != NULL ; n++)
1790 XtasPathsMenuOptions[n].callback_data = (XtPointer)tas_winfos;
1791
1792 /*-------------------*/
1793 /* Create a menu_bar */
1794 /*-------------------*/
1795
1796 n = 0;
1797 menu_bar = XmCreateMenuBar( parent, "XtasMenuBar", args, n );
1798
1799 XalBuildMenus( menu_bar, /* The Menu Bar widget id */
1800 XtasPathsMenu ); /* The main menu XalMenus structure */
1801
1802 return( menu_bar );
1803 }
1804
1805
1806 /*---------------------------------------------------------------------------*/
1807 /* */
1808 /* FUNCTION : XtasPathColumnsTitleMoveWithHSBCallback */
1809 /* */
1810 /*---------------------------------------------------------------------------*/
1811 void XtasPathColumnsTitleMoveWithHSBCallback (hsb, label, call_data)
1812 Widget hsb;
1813 XtPointer label;
1814 XtPointer call_data;
1815 {
1816 int loffset ;
1817 int value;
1818
1819 if (XTAS_DISPLAY_NEW == 0)
1820 loffset = XTAS_PATH_FROM_LOFFSET_G;
1821 else
1822 loffset = XTAS_PATH_FROM_LOFFSET_T;
1823
1824 XtVaGetValues (hsb, XmNvalue, &value, NULL);
1825
1826 XtVaSetValues (label, XmNleftOffset, (loffset - value), NULL);
1827 }
1828
1829
1830 /*---------------------------------------------------------------------------*/
1831 /* */
1832 /* FUNCTION : XtasCreatePathsList */
1833 /* */
1834 /* IN ARGS : .parent : The parent widget id. */
1835 /* .params : The get paths parameters. */
1836 /* .paths_list : The paths list description. */
1837 /* */
1838 /* OUT ARGS : ( void ) */
1839 /* */
1840 /* OBJECT : Creation of the signals window objects. */
1841 /* */
1842 /*---------------------------------------------------------------------------*/
1843 Widget XtasCreatePathsList( parent, XtasPathSet, tas_winfos )
1844
1845 Widget parent;
1846 XtasPathListSetStruct *XtasPathSet;
1847 XtasWindowStruct *tas_winfos;
1848
1849 {
1850 Widget label_widget;
1851 Widget FROM_label_widget;
1852 Widget list_widget;
1853 Widget form_t;
1854 Widget form, form1, form2;
1855 Widget dbase_form;
1856 Widget pan_widget;
1857 Widget form_widget;
1858 Widget buttons_form;
1859 Widget button;
1860 Widget frame;
1861 Widget separator1;
1862 Widget separator2;
1863 Widget tmp;
1864 Pixmap pixmap;
1865 XmString text;
1866 Pixel tas_state_color;
1867 Pixel tas_backg_color;
1868 Arg args[20];
1869 int n;
1870 char text_info[1024];
1871 ttvsig_list *head;
1872
1873 Widget scrollW;
1874
1875 /*-------------------------*/
1876 /* my var */
1877 /*-------------------------*/
1878 char value[1024];
1879 int lengthname1 ;
1880 int lengthname2 ;
1881 chain_list *headchain;
1882 ttvpath_list *path ;
1883 /* for paned windows */
1884 Widget paned_window ;
1885 Widget form1_window ;
1886 Widget form2_window ;
1887
1888
1889 /*-----------------------/---------------------------------------*/
1890 /* Create a Paned Window to split the Main window into many rows */
1891 /*-----------------------/---------------------------------------*/
1892 /*===== New Widget =====*/
1893 form_widget = XtVaCreateWidget( "XtasMainPan",
1894 xmFormWidgetClass,
1895 parent,
1896 XmNtopAttachment, XmATTACH_FORM,
1897 XmNbottomAttachment, XmATTACH_POSITION,
1898 XmNbottomPosition, 99,
1899 XmNleftAttachment, XmATTACH_POSITION,
1900 XmNleftPosition, 1,
1901 XmNrightAttachment, XmATTACH_POSITION,
1902 XmNrightPosition, 99,
1903 NULL);
1904
1905 /*-----------------------/------------------------*/
1906 /* Create a form to manage the first row children */
1907 /*-----------------------/------------------------*/
1908 /*===== New Widget =====*/
1909 n = 0;
1910 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
1911 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
1912 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
1913 buttons_form = XtCreateManagedWidget( "XtasMainButtons",
1914 xmFormWidgetClass,
1915 form_widget,
1916 args, n );
1917
1918 for ( n=0; XtasPathsButtonMenus[n].pix_file != -1 ; n++ )
1919 XtasPathsButtonMenus[n].callback_data = (XtPointer)tas_winfos ;
1920
1921 /*===== New Widget =====*/
1922 n = 0;
1923 XtSetArg( args[n], XmNnumColumns, 1 ); n++;
1924 XtSetArg( args[n], XmNorientation, XmHORIZONTAL ); n++;
1925 tas_winfos->butwidget = XalButtonMenus( buttons_form,
1926 XtasPathsButtonMenus,
1927 args, n,
1928 40, 40 );
1929 XtasAddDummyButton( tas_winfos->butwidget );
1930 XtManageChild( tas_winfos->butwidget );
1931 //XmAddTabGroup( tas_winfos->butwidget );
1932
1933 /*-------- separator ---*/
1934 /*===== New Widget =====*/
1935 n = 0;
1936 XtSetArg( args[n], XmNtopAttachment, XmATTACH_WIDGET ); n++;
1937 XtSetArg( args[n], XmNtopWidget, buttons_form ); n++;
1938 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
1939 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
1940 XtSetArg( args[n], XmNleftOffset, 3 ); n++;
1941 XtSetArg( args[n], XmNrightOffset, 3 ); n++;
1942 separator1 = XtCreateManagedWidget( "XtasMainButtons",
1943 xmSeparatorWidgetClass,
1944 form_widget,
1945 args, n );
1946
1947 /*-----------------------/--*/
1948 /* Create the message area */
1949 /*-----------------------/--*/
1950 /*===== New Widget =====*/
1951 n = 0;
1952 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
1953 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
1954 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
1955 XtSetArg( args[n], XmNtopOffset, 2 ); n++;
1956 XtSetArg( args[n], XmNleftOffset, 2 ); n++;
1957 XtSetArg( args[n], XmNrightOffset, 2 ); n++;
1958 form = XtCreateManagedWidget( "XtasShellSubForm",
1959 xmFormWidgetClass,
1960 form_widget,
1961 args, n );
1962
1963 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
1964 xmLabelWidgetClass, form,
1965 XmNtopAttachment, XmATTACH_FORM,
1966 XmNleftAttachment, XmATTACH_FORM,
1967 XmNleftOffset, 2,
1968 NULL);
1969 XtasSetLabelString( label_widget, "Informations Area" );
1970
1971 /*===== New Widget =====*/
1972 n = 0;
1973 XtSetArg( args[n], XmNtopAttachment, XmATTACH_WIDGET ); n++;
1974 XtSetArg( args[n], XmNtopWidget, label_widget ); n++;
1975 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
1976 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
1977 XtSetArg( args[n], XmNrightAttachment, XmATTACH_POSITION ); n++;
1978 XtSetArg( args[n], XmNrightPosition, 48 ); n++;
1979 frame = XtCreateManagedWidget( "XtasFrame",
1980 xmFrameWidgetClass,
1981 form,
1982 args, n );
1983
1984 /*===== New Widget =====*/
1985 n = 0;
1986 XtSetArg( args[n], XmNheight, 20 ); n++;
1987 XtasPathSet->INFO_USER = XtCreateManagedWidget( "XtasUserInfo",
1988 xmLabelWidgetClass,
1989 frame,
1990 args, n);
1991 XtasSetLabelString( XtasPathSet->INFO_USER, XTAS_NULINFO );
1992
1993 /*===== New Widget =====*/
1994 n = 0;
1995 XtSetArg( args[n], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
1996 XtSetArg( args[n], XmNtopWidget, frame ); n++;
1997 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
1998 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
1999 XtSetArg( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
2000 XtSetArg( args[n], XmNleftWidget, frame ); n++;
2001 frame = XtCreateManagedWidget( "XtasFrame",
2002 xmFrameWidgetClass,
2003 form, args, n );
2004
2005 /*===== New Widget =====*/
2006 n = 0;
2007 XtSetArg( args[n], XmNheight, 20 ); n++;
2008 XtasPathSet->INFO_HELP = XtCreateManagedWidget( "XtashelpInfo",
2009 xmLabelWidgetClass,
2010 frame,
2011 args, n);
2012 XtasSetLabelString( XtasPathSet->INFO_HELP, XTAS_NULINFO );
2013
2014
2015 /*----------------------*/
2016 /* Create a separator */
2017 /*----------------------*/
2018 /*===== New Widget =====*/
2019 n = 0;
2020 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_WIDGET ); n++;
2021 XtSetArg( args[n], XmNbottomWidget, form ); n++;
2022 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2023 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2024 XtSetArg( args[n], XmNleftOffset, 3 ); n++;
2025 XtSetArg( args[n], XmNrightOffset, 3 ); n++;
2026 separator2 = XtCreateManagedWidget( "separator2",
2027 xmSeparatorWidgetClass,
2028 form_widget,
2029 args, n );
2030
2031 /*-----------------------/------------------*/
2032 /* Paned Window pour les deux scrolled list */
2033 /*-----------------------/------------------*/
2034 /*===== New Widget =====*/
2035 n = 0;
2036 XtSetArg( args[n], XmNtopAttachment, XmATTACH_WIDGET ); n++;
2037 XtSetArg( args[n], XmNtopWidget, separator1 ); n++;
2038 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_WIDGET ); n++;
2039 XtSetArg( args[n], XmNbottomWidget, separator2 ); n++;
2040 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2041 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2042 pan_widget = XtCreateManagedWidget( "XtasShellSubForm",
2043 xmPanedWindowWidgetClass,
2044 form_widget,
2045 args, n );
2046
2047 /*-----------------------/------------------------*/
2048 /* Create a form to manage the next pan children */
2049 /*-----------------------/------------------------*/
2050 /*===== New Widget =====*/
2051 n = 0;
2052 form = XtCreateManagedWidget( "XtasShellSubForm",
2053 xmFormWidgetClass,
2054 pan_widget,
2055 args, n );
2056
2057 /*===== New Widget =====*/
2058 n = 0;
2059 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2060 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2061 label_widget = XtCreateManagedWidget( "XtasSubTitles",
2062 xmLabelGadgetClass,
2063 form,
2064 args, n );
2065 XtasSetLabelString( label_widget, "Search Parameters");
2066
2067 /*===== New Widget =====*/
2068 n = 0;
2069 XtSetArg( args[n], XmNtopAttachment, XmATTACH_WIDGET ); n++;
2070 XtSetArg( args[n], XmNtopWidget, label_widget ); n++;
2071 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2072 XtSetArg( args[n], XmNrightAttachment, XmATTACH_POSITION ); n++;
2073 XtSetArg( args[n], XmNrightPosition, 20 ); n++;
2074 frame = XtCreateManagedWidget( "XtasFrame",
2075 xmFrameWidgetClass,
2076 form,
2077 args, n );
2078
2079 /*===== New Widget =====*/
2080 n = 0;
2081 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2082 label_widget = XtCreateManagedWidget( "XtasFrame",
2083 xmLabelWidgetClass,
2084 frame,
2085 args, n );
2086 if ( (XtasPathSet->PARAM->SCAN_TYPE & TTV_FIND_DUAL) == TTV_FIND_DUAL )
2087 {
2088 XtasSetLabelString( label_widget, "Search from Start");
2089 }
2090 else
2091 {
2092 XtasSetLabelString( label_widget, "Search from End");
2093 }
2094
2095 /*===== New Widget =====*/
2096 n = 0;
2097 XtSetArg( args[n], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
2098 XtSetArg( args[n], XmNtopWidget, frame ); n++;
2099 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
2100 XtSetArg( args[n], XmNbottomWidget, frame ); n++;
2101 XtSetArg( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
2102 XtSetArg( args[n], XmNleftWidget, frame ); n++;
2103 XtSetArg( args[n], XmNrightAttachment, XmATTACH_POSITION ); n++;
2104 XtSetArg( args[n], XmNrightPosition, 40 ); n++;
2105 frame = XtCreateManagedWidget( "XtasFrame",
2106 xmFrameWidgetClass,
2107 form,
2108 args, n );
2109
2110 /*===== New Widget =====*/
2111 n = 0;
2112 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2113 label_widget = XtCreateManagedWidget( "XtasFrame",
2114 xmLabelWidgetClass,
2115 frame,
2116 args, n );
2117 if (( XtasPathSet->PARAM->SCAN_TYPE & TTV_FIND_MAX ) == TTV_FIND_MAX )
2118 {
2119 XtasSetLabelString( label_widget, "Max");
2120 }
2121 else
2122 {
2123 XtasSetLabelString( label_widget, "Min");
2124 }
2125
2126 /*===== New Widget =====*/
2127 n = 0;
2128 XtSetArg( args[n], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
2129 XtSetArg( args[n], XmNtopWidget, frame ); n++;
2130 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
2131 XtSetArg( args[n], XmNbottomWidget, frame ); n++;
2132 XtSetArg( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
2133 XtSetArg( args[n], XmNleftWidget, frame ); n++;
2134 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2135 frame = XtCreateManagedWidget( "XtasFrame",
2136 xmFrameWidgetClass,
2137 form,
2138 args, n );
2139 /*===== New Widget =====*/
2140 n = 0;
2141 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2142 label_widget = XtCreateManagedWidget( "XtasFrame",
2143 xmLabelWidgetClass,
2144 frame,
2145 args, n );
2146
2147 if(XtasPathSet->PARAM->DELAY_MIN == TTV_DELAY_MIN)
2148 {
2149 if(XtasPathSet->PARAM->DELAY_MAX == TTV_DELAY_MAX)
2150 sprintf(text_info, "Time Bounds: None ");
2151 else
2152 sprintf(text_info, "Time Bounds: delay < %.0f",
2153 XtasPathSet->PARAM->DELAY_MAX/TTV_UNIT);
2154 }
2155 else if(XtasPathSet->PARAM->DELAY_MAX == TTV_DELAY_MAX)
2156 {
2157 sprintf(text_info, "Time Bounds: %.0f < delay",
2158 XtasPathSet->PARAM->DELAY_MIN/TTV_UNIT);
2159 }
2160 else
2161 {
2162 sprintf( text_info,
2163 "Time Bounds: %.0f < delay < %.0f",
2164 XtasPathSet->PARAM->DELAY_MIN/TTV_UNIT, XtasPathSet->PARAM->DELAY_MAX/TTV_UNIT);
2165 }
2166 XtasSetLabelString( label_widget, text_info);
2167
2168 if ((XtasPathSet->PARAM->REQUEST_TYPE & XTAS_SBS) == XTAS_SBS )
2169 {
2170 /*===== New Widget =====*/
2171 n = 0;
2172 XtSetArg( args[n], XmNtopAttachment, XmATTACH_WIDGET ); n++;
2173 XtSetArg( args[n], XmNtopWidget, frame ); n++;
2174 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2175 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2176 frame = XtCreateManagedWidget( "XtasFrame",
2177 xmFrameWidgetClass,
2178 form,
2179 args, n );
2180
2181 /*===== New Widget =====*/
2182 n = 0;
2183 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2184 label_widget = XtCreateManagedWidget( "XtasFrame",
2185 xmLabelWidgetClass,
2186 frame,
2187 args, n );
2188 head = XtasPathSet->PARAM->CUR_SIG->DATA;
2189 if ((XtasPathSet->PARAM->SCAN_TYPE & TTV_FIND_DUAL) == TTV_FIND_DUAL)
2190 {
2191 sprintf( text_info, "Current Input Signal: ") ;
2192 ttv_getsigname( XtasPathSet->PARAM->ROOT_SIG_EDGE->TOP_FIG,
2193 text_info+strlen( text_info ), head );
2194 }
2195 else
2196 {
2197 sprintf( text_info, "Current Output Signal: ");
2198 ttv_getsigname( XtasPathSet->PARAM->ROOT_SIG_EDGE->TOP_FIG,
2199 text_info+strlen( text_info ), head) ;
2200 }
2201 XtasSetLabelString( label_widget, text_info);
2202 XtasPathSet->INFO_CUR_SIG = label_widget;
2203
2204 /*===== New Widget =====*/
2205 n = 0;
2206 XtSetArg( args[n], XmNborderWidth, 0 ); n++;
2207 XtSetArg( args[n], XmNtopAttachment, XmATTACH_WIDGET ); n++;
2208 XtSetArg( args[n], XmNtopWidget, frame ); n++;
2209 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2210 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2211 frame = XtCreateManagedWidget( "XtasShellSubForm",
2212 xmFrameWidgetClass,
2213 form,
2214 args, n );
2215
2216 /*===== New Widget =====*/
2217 n = 0;
2218 form_t = XtCreateManagedWidget( "XtasShellSubForm",
2219 xmFormWidgetClass,
2220 frame,
2221 args, n );
2222 /*----------------------*/
2223 /*===== New Widget =====*/
2224 n = 0;
2225 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2226 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2227 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2228 XtSetArg( args[n], XmNwidth, 60 ); n++;
2229 button = XtCreateManagedWidget( "XtasShellSubForm",
2230 xmPushButtonGadgetClass,
2231 form_t,
2232 args, n );
2233 XtAddCallback( button,
2234 XmNactivateCallback,
2235 XtasSigPathTreatEndCallback,
2236 (XtPointer)XtasPathSet);
2237 XtasSetLabelString( button, " ->| " );
2238
2239 /*===== New Widget =====*/
2240 n = 0;
2241 XtSetArg( args[n], XmNrightAttachment, XmATTACH_WIDGET ); n++;
2242 XtSetArg( args[n], XmNrightWidget, button ); n++;
2243 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2244 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2245 XtSetArg( args[n], XmNwidth, 60 ); n++;
2246 button = XtCreateManagedWidget( "XtasShellSubForm",
2247 xmPushButtonWidgetClass,
2248 form_t,
2249 args, n );
2250 XtAddCallback( button,
2251 XmNactivateCallback,
2252 XtasSigPathTreatFastFwdCallback,
2253 (XtPointer)XtasPathSet);
2254 XtasSetLabelString( button, " ->-> " );
2255
2256 /*===== New Widget =====*/
2257 n = 0;
2258 XtSetArg( args[n], XmNrightAttachment, XmATTACH_WIDGET ); n++;
2259 XtSetArg( args[n], XmNrightWidget, button ); n++;
2260 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2261 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2262 XtSetArg( args[n], XmNwidth, 60 ); n++;
2263 button = XtCreateManagedWidget( "XtasShellSubForm",
2264 xmPushButtonWidgetClass,
2265 form_t,
2266 args, n );
2267 XtAddCallback( button,
2268 XmNactivateCallback,
2269 XtasSigPathTreatNextCallback,
2270 (XtPointer)XtasPathSet);
2271 XtasSetLabelString( button, " -> " );
2272
2273 /*===== New Widget =====*/
2274 n = 0;
2275 XtSetArg( args[n], XmNrightAttachment, XmATTACH_WIDGET ); n++;
2276 XtSetArg( args[n], XmNrightWidget, button ); n++;
2277 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2278 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2279 XtSetArg( args[n], XmNwidth, 60 ); n++;
2280 button = XtCreateManagedWidget( "XtasShellSubForm",
2281 xmPushButtonWidgetClass,
2282 form_t,
2283 args, n );
2284 XtAddCallback( button,
2285 XmNactivateCallback,
2286 XtasSigPathTreatMiddleCallback,
2287 (XtPointer)XtasPathSet );
2288 XtasSetLabelString( button, " ->|<- " );
2289
2290 /*===== New Widget =====*/
2291 n = 0;
2292 XtSetArg( args[n], XmNrightAttachment, XmATTACH_WIDGET ); n++;
2293 XtSetArg( args[n], XmNrightWidget, button ); n++;
2294 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2295 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2296 XtSetArg( args[n], XmNwidth, 60 ); n++;
2297 button = XtCreateManagedWidget( "XtasShellSubForm",
2298 xmPushButtonWidgetClass,
2299 form_t,
2300 args, n );
2301 XtAddCallback( button,
2302 XmNactivateCallback,
2303 XtasSigPathTreatPrevCallback,
2304 (XtPointer)XtasPathSet );
2305 XtasSetLabelString( button, " <-" );
2306
2307 /*===== New Widget =====*/
2308 n = 0;
2309 XtSetArg( args[n], XmNrightAttachment, XmATTACH_WIDGET ); n++;
2310 XtSetArg( args[n], XmNrightWidget, button ); n++;
2311 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2312 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2313 XtSetArg( args[n], XmNwidth, 60 ); n++;
2314 button = XtCreateManagedWidget( "XtasShellSubForm",
2315 xmPushButtonWidgetClass,
2316 form_t,
2317 args, n );
2318 XtAddCallback( button,
2319 XmNactivateCallback,
2320 XtasSigPathTreatFastRewCallback,
2321 (XtPointer)XtasPathSet );
2322 XtasSetLabelString( button, " <-<- " );
2323
2324 /*===== New Widget =====*/
2325 n = 0;
2326 XtSetArg( args[n], XmNrightAttachment, XmATTACH_WIDGET ); n++;
2327 XtSetArg( args[n], XmNrightWidget, button ); n++;
2328 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2329 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2330 XtSetArg( args[n], XmNwidth, 60 ); n++;
2331 button = XtCreateManagedWidget( "XtasShellSubForm",
2332 xmPushButtonWidgetClass,
2333 form_t,
2334 args, n );
2335 XtAddCallback( button,
2336 XmNactivateCallback,
2337 XtasSigPathTreatTopCallback,
2338 (XtPointer)XtasPathSet );
2339 XtasSetLabelString( button, " |<- " );
2340
2341 /*------ titre ---------*/
2342 /*===== New Widget =====*/
2343 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
2344 xmLabelWidgetClass, form_t,
2345 XmNtopAttachment, XmATTACH_FORM,
2346 XmNbottomAttachment, XmATTACH_FORM,
2347 XmNleftAttachment, XmATTACH_FORM,
2348 XmNtopOffset, 2,
2349 XmNrightOffset, 2,
2350 XmNleftOffset, 2,
2351 NULL);
2352
2353 if ((XtasPathSet->PARAM->SCAN_TYPE & TTV_FIND_DUAL) == TTV_FIND_DUAL)
2354 {
2355 XtasSetLabelString( label_widget, "Input Signals List" );
2356 }
2357 else
2358 {
2359 XtasSetLabelString( label_widget, "Output Signals List" );
2360 }
2361
2362 /*===== New Widget =====*/
2363 n = 0;
2364 XtSetArg( args[n], XmNrightAttachment, XmATTACH_WIDGET ); n++;
2365 XtSetArg( args[n], XmNrightWidget, button ); n++;
2366 XtSetArg( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
2367 XtSetArg( args[n], XmNleftWidget, label_widget ); n++;
2368 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2369 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2370 XtSetArg( args[n], XmNwidth, 100 ); n++;
2371 XtasPathSet->SIGNAL_LIST_SET->INFO_PAGE
2372 = XtCreateManagedWidget( "XtasShellSubForm",
2373 xmLabelWidgetClass,
2374 form_t,
2375 args, n );
2376 XtasSetLabelString( XtasPathSet->SIGNAL_LIST_SET->INFO_PAGE, XTAS_NULINFO);
2377
2378 /*===== New Widget =====*/
2379 n=0;
2380 XtSetArg( args[n], XmNtopAttachment, XmATTACH_WIDGET ); n++;
2381 XtSetArg( args[n], XmNtopWidget, frame ); n++;
2382 XtSetArg( args[n], XmNtopOffset, 2 ); n++;
2383 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2384 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2385 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2386 XtSetArg( args[n], XmNscrollingPolicy, XmSTATIC ); n++;
2387 XtSetArg( args[n], XmNheight, 90 ); n++;
2388 list_widget = XmCreateScrolledList( form,
2389 "XtasUserField",
2390 args, n );
2391 XtManageChild( list_widget );
2392 XtAddCallback( list_widget,
2393 XmNdefaultActionCallback,
2394 XtasSigPathSelectCallback,
2395 (XtPointer)XtasPathSet );
2396 XtAddCallback( list_widget,
2397 XmNbrowseSelectionCallback,
2398 XtasSigPathSelectCallback,
2399 (XtPointer)XtasPathSet );
2400 //XmAddTabGroup( list_widget );
2401 XtasPathSet->SIGNAL_LIST_SET->SIGLIST_SCROLL = list_widget;
2402 XtasFillSigPathList( XtasPathSet );
2403
2404
2405 /*--------- deuxieme form/ pour les chemins -------------------------------*/
2406 /*===== New Widget =====*/
2407 n = 0;
2408 form = XtCreateManagedWidget( "XtasShellSubForm",
2409 xmFormWidgetClass,
2410 pan_widget,
2411 args, n );
2412
2413 n = 0;
2414 XtSetArg( args[n], XmNborderWidth, 0 ); n++;
2415 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2416 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2417 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2418 }
2419 else
2420 {
2421 n = 0;
2422 XtSetArg( args[n], XmNborderWidth, 0 ); n++;
2423 XtSetArg( args[n], XmNtopAttachment, XmATTACH_WIDGET ); n++;
2424 XtSetArg( args[n], XmNtopWidget, frame ); n++;
2425 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2426 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2427 }
2428
2429 XtSetArg( args[n], XmNheight, 30 ); n++;
2430 XtSetArg( args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++;
2431 label_widget = XtCreateManagedWidget( "XtasShellSubForm",
2432 xmLabelWidgetClass,
2433 form,
2434 args, n );
2435 XtasSetLabelString( label_widget, "Path Information" );
2436
2437 n = 0;
2438 XtSetArg( args[n], XmNborderWidth, 0 ); n++;
2439 XtSetArg( args[n], XmNtopAttachment, XmATTACH_WIDGET ); n++;
2440 XtSetArg( args[n], XmNtopWidget, label_widget ); n++;
2441 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2442 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2443 frame = XtCreateManagedWidget( "XtasShellSubForm",
2444 xmFrameWidgetClass,
2445 form,
2446 args, n );
2447 n = 0;
2448 form = XtCreateManagedWidget( "XtasPathInfosForm",
2449 xmFormWidgetClass,
2450 frame,
2451 args, n );
2452
2453 /*----------------------------------------------------------------------------------------*/
2454 n = 0;
2455 XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2456 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2457 XtSetArg (args[n], XmNleftOffset, 10 ); n++;
2458 XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2459 form1 = XtCreateManagedWidget( "XtasPathInfosForm", xmFormWidgetClass, form, args, n );
2460
2461 /* Information "Data Lag" */
2462 n = 0;
2463 XtSetArg ( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2464 XtSetArg ( args[n], XmNbottomOffset, 6 ); n++;
2465 XtSetArg ( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2466 XtSetArg ( args[n], XmNheight, 25 ); n++;
2467 XtSetArg ( args[n], XmNwidth, 100 ); n++;
2468 label_widget = XtCreateManagedWidget( "XtasShellSubForm", xmLabelWidgetClass, form1, args, n );
2469 XtasSetLabelString( label_widget, "Data Lag:" );
2470
2471 n = 0;
2472 XtSetArg ( args[n], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
2473 XtSetArg ( args[n], XmNtopWidget, label_widget ); n++;
2474 XtSetArg ( args[n], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
2475 XtSetArg ( args[n], XmNbottomWidget, label_widget ); n++;
2476 XtSetArg ( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
2477 XtSetArg ( args[n], XmNleftWidget, label_widget ); n++;
2478 XtSetArg ( args[n], XmNleftOffset, 2 ); n++;
2479 XtSetArg ( args[n], XmNrightAttachment, XmATTACH_POSITION ); n++;
2480 XtSetArg ( args[n], XmNrightPosition, 49 ); n++;
2481 XtSetArg ( args[n], XmNalignment, XmALIGNMENT_BEGINNING ); n++;
2482 label_widget = XtCreateManagedWidget( "XtasPathInfosDataLagLabel", xmLabelWidgetClass, form1, args, n );
2483 XtasSetLabelString( label_widget, "" );
2484
2485 /* Information "Latch" */
2486 n = 0;
2487 XtSetArg ( args[n], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
2488 XtSetArg ( args[n], XmNtopWidget, label_widget ); n++;
2489 XtSetArg ( args[n], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
2490 XtSetArg ( args[n], XmNbottomWidget, label_widget ); n++;
2491 XtSetArg ( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2492 XtSetArg ( args[n], XmNleftAttachment, XmATTACH_POSITION ); n++;
2493 XtSetArg ( args[n], XmNleftPosition, 50 ); n++;
2494 XtSetArg ( args[n], XmNalignment, XmALIGNMENT_BEGINNING ); n++;
2495 label_widget = XtCreateManagedWidget( "XtasPathInfosLatchLabel", xmLabelWidgetClass, form1, args, n );
2496 XtasSetLabelString( label_widget, " " );
2497
2498
2499 n = 0;
2500 XtSetArg (args[n], XmNbottomAttachment, XmATTACH_WIDGET ); n++;
2501 XtSetArg (args[n], XmNbottomWidget, form1 ); n++;
2502 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2503 XtSetArg (args[n], XmNleftOffset, 10 ); n++;
2504 XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2505 form1 = XtCreateManagedWidget( "XtasPathInfosForm", xmFormWidgetClass, form, args, n );
2506
2507 /* Information "Starting Slope" */
2508 n = 0;
2509 XtSetArg ( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2510 XtSetArg ( args[n], XmNheight, 25 ); n++;
2511 XtSetArg ( args[n], XmNwidth, 100 ); n++;
2512 label_widget = XtCreateManagedWidget( "XtasShellSubForm", xmLabelWidgetClass, form1, args, n );
2513 XtasSetLabelString( label_widget, "Starting Slope:" );
2514
2515 n = 0;
2516 XtSetArg ( args[n], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
2517 XtSetArg ( args[n], XmNtopWidget, label_widget ); n++;
2518 XtSetArg ( args[n], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
2519 XtSetArg ( args[n], XmNbottomWidget, label_widget ); n++;
2520 XtSetArg ( args[n], XmNrightAttachment, XmATTACH_POSITION ); n++;
2521 XtSetArg ( args[n], XmNrightPosition, 49 ); n++;
2522 XtSetArg ( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
2523 XtSetArg ( args[n], XmNleftWidget, label_widget ); n++;
2524 XtSetArg ( args[n], XmNleftOffset, 2 ); n++;
2525 XtSetArg ( args[n], XmNalignment, XmALIGNMENT_BEGINNING ); n++;
2526 label_widget = XtCreateManagedWidget( "XtasPathInfosSSlopeLabel",
2527 xmLabelWidgetClass,
2528 form1,
2529 args, n );
2530 XtasSetLabelString( label_widget, "" );
2531
2532 /* Information "Starting Time" */
2533 n = 0;
2534 XtSetArg ( args[n], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
2535 XtSetArg ( args[n], XmNtopWidget, label_widget ); n++;
2536 XtSetArg ( args[n], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
2537 XtSetArg ( args[n], XmNbottomWidget, label_widget ); n++;
2538 XtSetArg ( args[n], XmNleftAttachment, XmATTACH_POSITION ); n++;
2539 XtSetArg ( args[n], XmNleftPosition, 50 ); n++;
2540 XtSetArg ( args[n], XmNwidth, 100 ); n++;
2541 label_widget = XtCreateManagedWidget( "XtasShellSubForm", xmLabelWidgetClass, form1, args, n );
2542 XtasSetLabelString( label_widget, "Starting Time:" );
2543
2544 n = 0;
2545 XtSetArg ( args[n], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
2546 XtSetArg ( args[n], XmNtopWidget, label_widget ); n++;
2547 XtSetArg ( args[n], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
2548 XtSetArg ( args[n], XmNbottomWidget, label_widget ); n++;
2549 XtSetArg ( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2550 XtSetArg ( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
2551 XtSetArg ( args[n], XmNleftWidget, label_widget ); n++;
2552 XtSetArg ( args[n], XmNleftOffset, 2 ); n++;
2553 XtSetArg ( args[n], XmNalignment, XmALIGNMENT_BEGINNING ); n++;
2554 label_widget = XtCreateManagedWidget( "XtasPathInfosSTimeLabel", xmLabelWidgetClass, form1, args, n );
2555 XtasSetLabelString( label_widget, "" );
2556
2557 n = 0;
2558 XtSetArg (args[n], XmNbottomAttachment, XmATTACH_WIDGET ); n++;
2559 XtSetArg (args[n], XmNbottomWidget, form1 ); n++;
2560 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2561 XtSetArg (args[n], XmNleftOffset, 10 ); n++;
2562 XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2563 form1 = XtCreateManagedWidget( "XtasPathInfosForm", xmFormWidgetClass, form, args, n );
2564
2565 /* information "From" */
2566 n = 0;
2567 XtSetArg ( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2568 XtSetArg ( args[n], XmNtopOffset, 6 ); n++;
2569 XtSetArg ( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2570 XtSetArg ( args[n], XmNheight, 25 ); n++;
2571 XtSetArg ( args[n], XmNwidth, 100 ); n++;
2572 label_widget = XtCreateManagedWidget( "XtasShellSubForm", xmLabelWidgetClass, form1, args, n );
2573 XtasSetLabelString( label_widget, "From:" );
2574
2575
2576 XtVaGetValues( label_widget,
2577 XmNforeground,
2578 &tas_state_color,
2579 XmNbackground,
2580 &tas_backg_color,
2581 NULL );
2582
2583 n = 0;
2584 XtSetArg ( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2585 XtSetArg ( args[n], XmNrightAttachment, XmATTACH_POSITION ); n++;
2586 XtSetArg ( args[n], XmNrightPosition, 49 ); n++;
2587 XtSetArg ( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
2588 XtSetArg ( args[n], XmNleftWidget, label_widget ); n++;
2589 XtSetArg ( args[n], XmNleftOffset, 2 ); n++;
2590 XtSetArg ( args[n], XmNeditable, False ); n++;
2591 XtSetArg ( args[n], XmNeditMode, XmMULTI_LINE_EDIT ); n++;
2592 XtSetArg ( args[n], XmNwidth, 300 ); n++;
2593 XtSetArg ( args[n], XmNresizeHeight, True ); n++;
2594 XtSetArg ( args[n], XmNwordWrap, True ); n++;
2595 XtSetArg ( args[n], XmNvalue, " " ); n++;
2596 XtSetArg ( args[n], XmNcursorPositionVisible, False ); n++;
2597 XtSetArg ( args[n], XmNbackground, tas_backg_color ); n++;
2598 XtSetArg ( args[n], XmNbottomShadowColor,tas_backg_color ); n++;
2599 XtSetArg ( args[n], XmNbottomShadowPixmap,XmUNSPECIFIED_PIXMAP ); n++;
2600 XtSetArg ( args[n], XmNtopShadowColor, tas_backg_color ); n++;
2601 XtSetArg ( args[n], XmNtopShadowPixmap, XmUNSPECIFIED_PIXMAP ); n++;
2602 label_widget = XtCreateManagedWidget( "XtasPathInfosFromLabel", xmTextWidgetClass, form1, args, n );
2603 XtasSetLabelString( label_widget, "" );
2604
2605 /* information "To" */
2606 n = 0;
2607 XtSetArg ( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2608 XtSetArg ( args[n], XmNtopOffset, 6 ); n++;
2609 XtSetArg ( args[n], XmNleftAttachment, XmATTACH_POSITION ); n++;
2610 XtSetArg ( args[n], XmNleftPosition, 50 ); n++;
2611 XtSetArg ( args[n], XmNheight, 25 ); n++;
2612 XtSetArg ( args[n], XmNwidth, 100 ); n++;
2613 label_widget = XtCreateManagedWidget( "XtasShellSubForm", xmLabelWidgetClass, form1, args, n );
2614 XtasSetLabelString( label_widget, "To:" );
2615
2616
2617
2618 n = 0;
2619 XtSetArg ( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2620 XtSetArg ( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2621 XtSetArg ( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
2622 XtSetArg ( args[n], XmNleftWidget, label_widget ); n++;
2623 XtSetArg ( args[n], XmNleftOffset, 2 ); n++;
2624 XtSetArg ( args[n], XmNeditable, False ); n++;
2625 XtSetArg ( args[n], XmNeditMode, XmMULTI_LINE_EDIT ); n++;
2626 XtSetArg ( args[n], XmNwidth, 300 ); n++;
2627 XtSetArg ( args[n], XmNresizeHeight, True ); n++;
2628 XtSetArg ( args[n], XmNwordWrap, True ); n++;
2629 XtSetArg ( args[n], XmNvalue, " " ); n++;
2630 XtSetArg ( args[n], XmNcursorPositionVisible, False ); n++;
2631 XtSetArg ( args[n], XmNbackground, tas_backg_color ); n++;
2632 XtSetArg ( args[n], XmNbottomShadowColor,tas_backg_color ); n++;
2633 XtSetArg ( args[n], XmNbottomShadowPixmap,XmUNSPECIFIED_PIXMAP ); n++;
2634 XtSetArg ( args[n], XmNtopShadowColor, tas_backg_color ); n++;
2635 XtSetArg ( args[n], XmNtopShadowPixmap, XmUNSPECIFIED_PIXMAP ); n++;
2636 label_widget = XtCreateManagedWidget( "XtasPathInfosToLabel", xmTextWidgetClass, form1, args, n );
2637
2638
2639
2640
2641 n = 0;
2642 form = XtCreateManagedWidget( "XtasShellSubForm",
2643 xmFormWidgetClass,
2644 pan_widget,
2645 args, n );
2646
2647 /*===== New Widget =====*/
2648 n = 0;
2649 XtSetArg( args[n], XmNborderWidth, 0 ); n++;
2650 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2651 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2652 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2653 frame = XtCreateManagedWidget( "XtasShellSubForm",
2654 xmFrameWidgetClass,
2655 form,
2656 args, n );
2657 /*===== New Widget =====*/
2658 n = 0;
2659 form_t = XtCreateManagedWidget( "XtasShellSubForm",
2660 xmFormWidgetClass,
2661 frame,
2662 args, n );
2663
2664 // if (((XtasPathSet->PARAM->REQUEST_TYPE & XTAS_SBS) == XTAS_SBS) ||
2665 // ( XtasPathSet->PARAM->CRITIC == 'P' ))
2666 // {
2667 if (!XTAS_DISPLAY_NEW) {
2668 /*----------------------*/
2669 /*===== New Widget =====*/
2670 n = 0;
2671 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2672 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2673 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2674 XtSetArg( args[n], XmNwidth, 60 ); n++;
2675 button = XtCreateManagedWidget( "XtasShellSubForm",
2676 xmPushButtonWidgetClass,
2677 form_t,
2678 args, n );
2679 XtAddCallback( button,
2680 XmNactivateCallback,
2681 XtasPathTreatEndCallback,
2682 (XtPointer)XtasPathSet );
2683 XtasSetLabelString( button, " ->| " );
2684
2685 /*===== New Widget =====*/
2686 n = 0;
2687 XtSetArg( args[n], XmNrightAttachment, XmATTACH_WIDGET ); n++;
2688 XtSetArg( args[n], XmNrightWidget, button ); n++;
2689 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2690 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2691 XtSetArg( args[n], XmNwidth, 60 ); n++;
2692 button = XtCreateManagedWidget( "XtasShellSubForm",
2693 xmPushButtonWidgetClass,
2694 form_t,
2695 args, n );
2696 XtAddCallback( button,
2697 XmNactivateCallback,
2698 XtasPathTreatFastFwdCallback,
2699 (XtPointer)XtasPathSet );
2700 XtasSetLabelString( button, " ->-> " );
2701
2702 /*===== New Widget =====*/
2703 n = 0;
2704 XtSetArg( args[n], XmNrightAttachment, XmATTACH_WIDGET ); n++;
2705 XtSetArg( args[n], XmNrightWidget, button ); n++;
2706 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2707 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2708 XtSetArg( args[n], XmNwidth, 60 ); n++;
2709 button = XtCreateManagedWidget( "XtasShellSubForm",
2710 xmPushButtonWidgetClass,
2711 form_t,
2712 args, n );
2713 XtAddCallback( button,
2714 XmNactivateCallback,
2715 XtasPathTreatNextCallback,
2716 (XtPointer)XtasPathSet);
2717 XtasSetLabelString( button, " -> " );
2718
2719 /*===== New Widget =====*/
2720 /* n = 0;
2721 XtSetArg( args[n], XmNrightAttachment, XmATTACH_WIDGET ); n++;
2722 XtSetArg( args[n], XmNrightWidget, button ); n++;
2723 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2724 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2725 XtSetArg( args[n], XmNwidth, 60 ); n++;
2726 button = XtCreateManagedWidget( "XtasShellSubForm",
2727 xmPushButtonWidgetClass,
2728 form_t,
2729 args, n );
2730 XtAddCallback( button,
2731 XmNactivateCallback,
2732 XtasPathTreatMiddleCallback,
2733 (XtPointer)XtasPathSet );
2734 XtasSetLabelString( button, " ->|<- " );*/
2735
2736 /*===== New Widget =====*/
2737 n = 0;
2738 XtSetArg( args[n], XmNrightAttachment, XmATTACH_WIDGET ); n++;
2739 XtSetArg( args[n], XmNrightWidget, button ); n++;
2740 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2741 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2742 XtSetArg( args[n], XmNwidth, 60 ); n++;
2743 button = XtCreateManagedWidget( "XtasShellSubForm",
2744 xmPushButtonWidgetClass,
2745 form_t,
2746 args, n );
2747 XtAddCallback( button,
2748 XmNactivateCallback,
2749 XtasPathTreatPrevCallback,
2750 (XtPointer)XtasPathSet );
2751 XtasSetLabelString( button, " <- " );
2752
2753 /*===== New Widget =====*/
2754 n = 0;
2755 XtSetArg( args[n], XmNrightAttachment, XmATTACH_WIDGET ); n++;
2756 XtSetArg( args[n], XmNrightWidget, button ); n++;
2757 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2758 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2759 XtSetArg( args[n], XmNwidth, 60 ); n++;
2760 button = XtCreateManagedWidget( "XtasShellSubForm",
2761 xmPushButtonWidgetClass,
2762 form_t,
2763 args, n );
2764 XtAddCallback( button,
2765 XmNactivateCallback,
2766 XtasPathTreatFastRewCallback,
2767 (XtPointer)XtasPathSet );
2768 XtasSetLabelString( button, " <-<- " );
2769
2770 /*===== New Widget =====*/
2771 n = 0;
2772 XtSetArg( args[n], XmNrightAttachment, XmATTACH_WIDGET ); n++;
2773 XtSetArg( args[n], XmNrightWidget, button ); n++;
2774 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2775 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2776 XtSetArg( args[n], XmNwidth, 60 ); n++;
2777 button = XtCreateManagedWidget( "XtasShellSubForm",
2778 xmPushButtonWidgetClass,
2779 form_t,
2780 args, n );
2781 XtAddCallback( button,
2782 XmNactivateCallback,
2783 XtasPathTreatTopCallback,
2784 (XtPointer)XtasPathSet );
2785 XtasSetLabelString( button, " |<- " );
2786
2787 /*===== New Widget =====*/
2788 n = 0;
2789 XtSetArg( args[n], XmNrightAttachment, XmATTACH_WIDGET ); n++;
2790 XtSetArg( args[n], XmNrightWidget, button ); n++;
2791 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
2792 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2793 XtSetArg( args[n], XmNwidth, 100 ); n++;
2794 label_widget = XtCreateManagedWidget( "XtasShellSubForm",
2795 xmLabelWidgetClass,
2796 form_t,
2797 args, n );
2798 XtasSetLabelString( label_widget, "" );
2799 }
2800 /*--------------------- titre ---------------------------------------*/
2801
2802 if((XtasPathSet->PARAM->REQUEST_TYPE & XTAS_SBS) == XTAS_SBS) {
2803 if ((XtasPathSet->PARAM->REQUEST_TYPE & XTAS_PATHS) == XTAS_PATHS)
2804 text = XmStringCreateSimple( "Paths List" );
2805 else /*access*/
2806 text = XmStringCreateSimple( "Access List" );
2807 }
2808 else if (XtasPathSet->PARAM->CRITIC == 'P')
2809 text = XmStringCreateSimple( "Parallel Paths List" );
2810 // }
2811 else if ((XtasPathSet->PARAM->REQUEST_TYPE & XTAS_CRITIC) == XTAS_CRITIC)
2812 {
2813 if ((XtasPathSet->PARAM->REQUEST_TYPE & XTAS_PATHS) == XTAS_PATHS)
2814 text = XmStringCreateSimple( "Critic Path List" );
2815 else /* access */
2816 text = XmStringCreateSimple( "Critic Access List" );
2817 }
2818 else
2819 {
2820 if ((XtasPathSet->PARAM->REQUEST_TYPE & XTAS_PATHS) == XTAS_PATHS)
2821 text = XmStringCreateSimple( "All Paths" );
2822 else /* access */
2823 text = XmStringCreateSimple( "All Access" );
2824 }
2825
2826
2827 /*===== New Widget =====*/
2828 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
2829 xmLabelWidgetClass,
2830 form_t,
2831 XmNlabelString, text,
2832 XmNtopAttachment, XmATTACH_FORM,
2833 XmNbottomAttachment, XmATTACH_FORM,
2834 XmNleftAttachment, XmATTACH_FORM,
2835 XmNtopOffset, 2,
2836 XmNrightOffset, 2,
2837 XmNleftOffset, 2,
2838 NULL);
2839 XmStringFree( text );
2840
2841 /*===== New Widget =====*/
2842 n = 0;
2843 XtSetArg( args[n], XmNborderWidth, 0 ); n++;
2844 XtSetArg( args[n], XmNtopAttachment, XmATTACH_WIDGET ); n++;
2845 XtSetArg( args[n], XmNtopWidget, frame ); n++;
2846 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2847 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2848 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2849 XtSetArg( args[n], XmNrightOffset, 2 ); n++;
2850 dbase_form = XtCreateManagedWidget( "XtasTitleForm",
2851 xmFormWidgetClass,
2852 form,
2853 args, n );
2854
2855 /* longueur des noms des signaux */
2856 headchain = XtasCreatePathTabIndex( XtasPathSet );
2857 path = XtasPathSet->CUR_PATH_WIN->DATA;
2858
2859 XtasCarLength1 = XTAS_MIN_CARLENGTH;
2860 XtasCarLength2 = XTAS_MIN_CARLENGTH;
2861 while ( headchain != NULL ) {
2862 lengthname1 = strlen(ttv_getsigname(XtasPathSet->PARAM->ROOT_SIG_EDGE->TOP_FIG,
2863 value,path->NODE->ROOT)); /* longueur du signal source */
2864 lengthname2 = strlen(ttv_getsigname( XtasPathSet->PARAM->ROOT_SIG_EDGE->TOP_FIG,
2865 value, path->ROOT->ROOT)); /* longueur du signal destinataire */
2866 if(lengthname1 >= XtasCarLength1)
2867 XtasCarLength1 = lengthname1;
2868 if(lengthname2 >= XtasCarLength2)
2869 XtasCarLength2 = lengthname2;
2870 path = path->NEXT;
2871 headchain = headchain->NEXT;
2872 }
2873 if(XtasCarLength1 >= XTAS_MAX_CARLENGTH)
2874 XtasCarLength1 = XTAS_MAX_CARLENGTH;
2875 if(XtasCarLength2 >= XTAS_MAX_CARLENGTH)
2876 XtasCarLength2 = XTAS_MAX_CARLENGTH;
2877
2878 /*===== New Widget =====*/
2879 if(!XTAS_DISPLAY_NEW)
2880 {
2881
2882 text = XmStringCreateSimple( "From" );
2883 FROM_label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
2884 xmLabelWidgetClass,
2885 dbase_form,
2886 XmNlabelString, text,
2887 XmNtopAttachment, XmATTACH_FORM,
2888 XmNleftAttachment, XmATTACH_FORM,
2889 XmNwidth, 150,
2890 XmNtopOffset, 2,
2891 XmNleftOffset, XTAS_PATH_FROM_LOFFSET_G,
2892 XmNheight, 25,
2893 NULL);
2894 XmStringFree( text );
2895
2896 /*===== New Widget =====*/
2897 text = XmStringCreateSimple( "To" );
2898
2899 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
2900 xmLabelWidgetClass,
2901 dbase_form,
2902 XmNlabelString, text,
2903 XmNtopAttachment, XmATTACH_FORM,
2904 XmNleftAttachment, XmATTACH_WIDGET,
2905 XmNleftWidget, FROM_label_widget,
2906 XmNwidth, 150,
2907 XmNtopOffset, 2,
2908 XmNleftOffset, 49,
2909 XmNheight, 25,
2910 NULL);
2911 XmStringFree( text );
2912
2913 /*===== New Widget =====*/
2914 text = XmStringCreateSimple( "Output Slope" );
2915 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
2916 xmLabelWidgetClass,
2917 dbase_form,
2918 XmNlabelString, text,
2919 XmNtopAttachment, XmATTACH_FORM,
2920 XmNleftAttachment, XmATTACH_WIDGET,
2921 XmNleftWidget, label_widget,
2922 XmNwidth, 100,
2923 XmNtopOffset, 2,
2924 XmNleftOffset, 10,
2925 XmNheight, 25,
2926 NULL);
2927 XmStringFree( text );
2928
2929 /*===== New Widget =====*/
2930 pixmap = XalGetPixmap( label_widget,
2931 XTAS_TIME_MAP,
2932 tas_state_color,
2933 tas_backg_color );
2934
2935 if ( pixmap == XmUNSPECIFIED_PIXMAP )
2936 {
2937 text = XmStringCreateSimple( "Time" );
2938 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
2939 xmLabelWidgetClass,
2940 dbase_form,
2941 XmNlabelString, text,
2942 XmNtopAttachment, XmATTACH_FORM,
2943 XmNleftAttachment, XmATTACH_WIDGET,
2944 XmNleftWidget, label_widget,
2945 XmNwidth, 100,
2946 XmNtopOffset, 2,
2947 XmNrightOffset, 2,
2948 XmNleftOffset, 2,
2949 XmNheight, 25,
2950 NULL);
2951
2952 XmStringFree( text );
2953 }
2954 else
2955 {
2956 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
2957 xmLabelWidgetClass, dbase_form,
2958 XmNlabelType, XmPIXMAP,
2959 XmNlabelPixmap, pixmap,
2960 XmNtopAttachment, XmATTACH_FORM,
2961 XmNleftAttachment, XmATTACH_WIDGET,
2962 XmNleftWidget, label_widget,
2963 XmNwidth, 100,
2964 XmNtopOffset, 2,
2965 XmNrightOffset, 2,
2966 XmNleftOffset, 2,
2967 XmNheight, 25,
2968 NULL);
2969 }
2970 /*===== New Widget =====*/
2971 n=0;
2972 XtSetArg( args[n], XmNtopAttachment, XmATTACH_WIDGET ); n++;
2973 XtSetArg( args[n], XmNtopWidget, label_widget ); n++;
2974 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
2975 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
2976 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
2977 XtSetArg( args[n], XmNscrollBarPlacement, XmBOTTOM_RIGHT ); n++;
2978 XtSetArg( args[n], XmNscrollBarDisplayPolicy, XmAS_NEEDED ); n++;
2979 XtSetArg( args[n], XmNscrollingPolicy, XmAUTOMATIC ); n++;
2980 list_widget = XmCreateScrolledWindow( dbase_form,
2981 "XtasScrollWindow",
2982 args, n );
2983 XtVaGetValues (list_widget, XmNhorizontalScrollBar, &tmp, NULL);
2984 XtAddCallback (tmp, XmNvalueChangedCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
2985 XtAddCallback (tmp, XmNdragCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
2986 XtAddCallback (tmp, XmNincrementCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
2987 XtAddCallback (tmp, XmNdecrementCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
2988 XtAddCallback (tmp, XmNpageIncrementCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
2989 XtAddCallback (tmp, XmNpageDecrementCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
2990 XtAddCallback (tmp, XmNtoTopCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
2991 XtAddCallback (tmp, XmNtoBottomCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
2992 XtManageChild( list_widget );
2993 XtasPathSet->PATHLIST_SCROLL = list_widget;
2994
2995 XtasFillPathList( XtasPathSet );
2996 }
2997 else
2998 {
2999 /*===== New Widget =====*/
3000 text = XmStringCreateSimple( "From" );
3001 FROM_label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
3002 xmLabelWidgetClass,
3003 dbase_form,
3004 XmNlabelString, text,
3005 XmNtopAttachment, XmATTACH_FORM,
3006 XmNleftAttachment, XmATTACH_FORM,
3007 XmNwidth, XtasCarLength1*7,
3008 XmNtopOffset, 2,
3009 XmNrightOffset, 2,
3010 XmNleftOffset, XTAS_PATH_FROM_LOFFSET_T,
3011 XmNheight, 25,
3012 NULL);
3013 XmStringFree( text );
3014
3015 /*===== New Widget =====*/
3016 text = XmStringCreateSimple( "To" );
3017
3018 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
3019 xmLabelWidgetClass,
3020 dbase_form,
3021 XmNlabelString, text,
3022 XmNtopAttachment, XmATTACH_FORM,
3023 XmNleftAttachment, XmATTACH_WIDGET,
3024 XmNleftWidget, FROM_label_widget,
3025 XmNwidth, XtasCarLength2*7,
3026 XmNtopOffset, 2,
3027 XmNrightOffset, 2,
3028 XmNleftOffset, 60,
3029 XmNheight, 25,
3030 NULL);
3031 XmStringFree( text );
3032
3033 /*===== New Widget =====*/
3034 text = XmStringCreateSimple( "SLOPE" );
3035 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
3036 xmLabelWidgetClass,
3037 dbase_form,
3038 XmNlabelString, text,
3039 XmNtopAttachment, XmATTACH_FORM,
3040 XmNleftAttachment, XmATTACH_WIDGET,
3041 XmNleftWidget, label_widget,
3042 XmNwidth, 80,
3043 XmNtopOffset, 2,
3044 XmNrightOffset, 2,
3045 XmNleftOffset, 20,
3046 XmNheight, 25,
3047 NULL);
3048 XmStringFree( text );
3049
3050 /*===== New Widget =====*/
3051 XtVaGetValues( label_widget,
3052 XmNforeground,
3053 &tas_state_color,
3054 XmNbackground,
3055 &tas_backg_color,
3056 NULL );
3057 pixmap = XalGetPixmap( label_widget,
3058 XTAS_TIME_MAP,
3059 tas_state_color,
3060 tas_backg_color );
3061
3062 if ( pixmap == XmUNSPECIFIED_PIXMAP )
3063 {
3064 text = XmStringCreateSimple( "Time" );
3065 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
3066 xmLabelWidgetClass,
3067 dbase_form,
3068 XmNlabelString, text,
3069 XmNtopAttachment, XmATTACH_FORM,
3070 XmNleftAttachment, XmATTACH_WIDGET,
3071 XmNleftWidget, label_widget,
3072 XmNwidth, 80,
3073 XmNtopOffset, 2,
3074 XmNrightOffset, 2,
3075 XmNleftOffset, 2,
3076 XmNheight, 25,
3077 NULL);
3078
3079 XmStringFree( text );
3080 }
3081 else
3082 {
3083 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
3084 xmLabelWidgetClass, dbase_form,
3085 XmNlabelType, XmPIXMAP,
3086 XmNlabelPixmap, pixmap,
3087 XmNtopAttachment, XmATTACH_FORM,
3088 XmNleftAttachment, XmATTACH_WIDGET,
3089 XmNleftWidget, label_widget,
3090 XmNwidth, 80,
3091 XmNtopOffset, 2,
3092 XmNrightOffset, 2,
3093 XmNleftOffset, 2,
3094 XmNheight, 25,
3095 NULL);
3096 }
3097 /* creation of a paned windows which will contain 2 infos */
3098 n=0;
3099 XtSetArg( args[n], XmNtopAttachment, XmATTACH_WIDGET ); n++;
3100 XtSetArg( args[n], XmNtopWidget, label_widget ); n++;
3101 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
3102 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
3103 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
3104 XtSetArg( args[n], XmNheight, 250 ); n++;
3105 paned_window = XtCreateManagedWidget( "XtasPanedWindow",
3106 xmPanedWindowWidgetClass,
3107 dbase_form,
3108 args, n );
3109
3110 form1_window = XtVaCreateManagedWidget ( "XtasSubForm",
3111 xmFormWidgetClass,
3112 paned_window,
3113 NULL) ;
3114
3115 n=0;
3116 XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ); n++;
3117 XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ); n++;
3118 XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ); n++;
3119 XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ); n++;
3120 XtSetArg( args[n], XmNscrollingPolicy, XmSTATIC ); n++;
3121 XtSetArg( args[n], XmNheight, 170 ); n++;
3122 list_widget = XmCreateScrolledList( form1_window,
3123 "XtasTextualDisplay",
3124 args, n );
3125
3126 scrollW = XtParent (list_widget); /* on recupere la ScrolledWindow associee a la ScrolledList */
3127 XtVaGetValues (scrollW, XmNhorizontalScrollBar, &tmp, NULL);
3128 XtAddCallback (tmp, XmNvalueChangedCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
3129 XtAddCallback (tmp, XmNdragCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
3130 XtAddCallback (tmp, XmNincrementCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
3131 XtAddCallback (tmp, XmNdecrementCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
3132 XtAddCallback (tmp, XmNpageIncrementCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
3133 XtAddCallback (tmp, XmNpageDecrementCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
3134 XtAddCallback (tmp, XmNtoTopCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
3135 XtAddCallback (tmp, XmNtoBottomCallback, XtasPathColumnsTitleMoveWithHSBCallback, FROM_label_widget);
3136
3137 XtManageChild( list_widget );
3138 XtasPathSet->PATHLIST_SCROLL = list_widget;
3139
3140 XtasFillPathList2( XtasPathSet );
3141
3142 /* form2_window contient les deux subforms */
3143 /* pour afficher les infos des signaux */
3144 form2_window = XtVaCreateManagedWidget ( "XtasSubForm",
3145 xmFormWidgetClass,
3146 paned_window,
3147 XmNtopAttachment, XmATTACH_WIDGET,
3148 XmNtopWidget , form1_window ,
3149 NULL) ;
3150 XtasPathSet->PATHLIST_2INFO = form2_window ;
3151 }
3152 XtManageChild( form_widget );
3153 return( form_widget );
3154 }
3155
3156
3157 /*---------------------------------------------------------------------------*/
3158 /* */
3159 /* FUNCTION : XtasPathsList */
3160 /* */
3161 /* IN ARGS : .parent : The parent widget. */
3162 /* .params : The paths request parameters. */
3163 /* .paths_list : The list of paths to draw. */
3164 /* */
3165 /* OUT ARGS : The shell widget id. */
3166 /* */
3167 /* OBJECT : The main routine of Paths List Main window command */
3168 /* */
3169 /*---------------------------------------------------------------------------*/
3170 XtasWindowStruct *XtasPathsList( parent, params )
3171 Widget parent;
3172 XtasSearchPathParamStruct *params;
3173 {
3174 Widget main_window;
3175 Arg args[20];
3176 int n;
3177 int i;
3178 XtasPathListSetStruct *XtasPathSet;
3179 XtasWindowStruct *tas_winfos = NULL;
3180 char text_title[128];
3181 ttvpath_list *path;
3182
3183 /*-- initialisation de la structure de controle d'affichage -------------*/
3184 /* a ecrire par la suite sous forme d'une macro */
3185 /*-----------------------------------------------------------------------*/
3186
3187 if (XTAS_PATHSSELECTEDWIDGET != NULL) {
3188 XtasPathsDeselect (XTAS_PATHSSELECTEDWIDGET);
3189 XTAS_PATHSSELECTEDWIDGET = NULL;
3190 }
3191
3192 XtasPathSet = XtasNewPathListSet( params );
3193
3194 if ( XtasPathSet->PARAM->LOOK_PATH != NULL )
3195 /*------------ chemins paralleles ----------------*/
3196 {
3197 XtasPathSet->PARAM->CRITIC = 'P';
3198 if ( XtasTtvGetParaList( XtasPathSet ) == NULL )
3199 {
3200 XtasFreePathListSet( XtasPathSet );
3201 return( NULL );
3202 }
3203 n = 0;
3204 XtSetArg( args[n], XmNwidth, 690 ); n++;
3205 sprintf (text_title, XTAS_NAME": Parallel Paths Window - %s", XtasMainParam->ttvfig->INFO->FIGNAME);
3206 XtSetArg( args[n], XmNtitle, text_title ); n++;
3207 for(i = 0 ; XtasPathsMenuHelp[i].label != NULL ; i++){
3208 XtasPathsMenuHelp[i].callback_data = (XtPointer) ((long)XtasPathsMenuHelp[i].callback_data & (~XTAS_SRC_PATHS));
3209 XtasPathsMenuHelp[i].callback_data = (XtPointer) ((long)XtasPathsMenuHelp[i].callback_data | XTAS_SRC_PARA);
3210 }
3211
3212 }
3213 /*------------ chemins a delay determine ---------*/
3214 else
3215 {
3216 if ( (params->REQUEST_TYPE & XTAS_SBS) == XTAS_SBS )
3217 {
3218 if (/*((params->REQUEST_TYPE & XTAS_ACCESS) == XTAS_ACCESS) ||*/
3219 ((params->SCAN_TYPE & TTV_FIND_DUAL) == TTV_FIND_DUAL))
3220 XtasPathSet->SIGNAL_LIST_SET->SIGNAL->TYPE &= ~TTV_SIG_Q;
3221 if ( XtasTtvGetSigList( XtasPathSet->SIGNAL_LIST_SET ) == NULL )
3222 {
3223 XtasFreePathListSet( XtasPathSet );
3224 return( NULL );
3225 }
3226 else
3227 {
3228 if ( XtasCleanTtvSigList( XtasPathSet ) == 0 )
3229 {
3230 return( NULL );
3231 }
3232 }
3233 /*===== New Widget =====*/
3234 }
3235 /*------------ chemins max/min --------------------*/
3236 else
3237 {
3238 if ( XtasTtvGetPathList( XtasPathSet ) == NULL )
3239 {
3240 return( NULL );
3241 }
3242 }
3243
3244 n = 0;
3245 XtSetArg( args[n], XmNwidth, 690); n++;
3246 sprintf (text_title, XTAS_NAME": Paths Window - %s", XtasMainParam->ttvfig->INFO->FIGNAME);
3247 XtSetArg( args[n], XmNtitle, text_title ); n++;
3248 }
3249
3250 tas_winfos = (XtasWindowStruct *)mbkalloc( sizeof(XtasWindowStruct) );
3251 tas_winfos->userdata = XtasPathSet;
3252 XTAS_PATH_SESSION = addchain(XTAS_PATH_SESSION,tas_winfos) ;
3253
3254 tas_winfos->topwidget = XtVaCreatePopupShell( NULL,
3255 topLevelShellWidgetClass,
3256 parent,
3257 XmNallowShellResize, False,
3258 XmNdeleteResponse, XmDESTROY,
3259 NULL );
3260
3261 HelpFather = tas_winfos->topwidget ;
3262 XtSetValues( tas_winfos->topwidget, args, n );
3263
3264 XtasPathSet->TOP_LEVEL = tas_winfos->topwidget;
3265
3266 /*------------------------------------------------*/
3267 /* Create the Alliance applications standard Icon */
3268 /*------------------------------------------------*/
3269 XalCustomIcon( tas_winfos->topwidget, XTAS_PATH_MAP );
3270
3271 n = 0;
3272 main_window = XmCreateMainWindow( tas_winfos->topwidget,
3273 "XtasMain",
3274 args, n );
3275 XtManageChild( main_window );
3276
3277 /*------------------------------------------------------------------*/
3278 /* Create the menu bar now, so it can be in the motif default areas */
3279 /*------------------------------------------------------------------*/
3280 tas_winfos->menwidget = XtasCreatePathsMenus( main_window , tas_winfos);
3281 XtManageChild( tas_winfos->menwidget );
3282
3283 tas_winfos->wrkwidget = XtasCreatePathsList( main_window, XtasPathSet, tas_winfos );
3284 XtManageChild( tas_winfos->wrkwidget );
3285
3286 /*----------------------------------------*/
3287 /* Creates a Motif Error and Warning Boxs */
3288 /*----------------------------------------*/
3289 tas_winfos->errwidget = XalCreateErrorBox( tas_winfos->wrkwidget );
3290 tas_winfos->warwidget = XalCreateWarningBox( tas_winfos->wrkwidget );
3291
3292 XmMainWindowSetAreas( main_window,
3293 tas_winfos->menwidget,
3294 (Widget)0,
3295 (Widget)0,
3296 (Widget)0,
3297 tas_winfos->wrkwidget );
3298
3299 XtPopup( tas_winfos->topwidget, XtGrabNone );
3300 return ( tas_winfos );
3301 }
3302