1 /****************************************************************************/
3 /* Chaine de CAO & VLSI Alliance */
5 /* Produit : XTAS Version 5 */
6 /* Fichier : xtas_paths.c */
8 /* (c) copyright 1991-1998 Laboratoire LIP6 equipe ASIM */
9 /* Tous droits reserves */
10 /* Support : e-mail alliance-support@asim.lip6.fr */
12 /* Author(s) : Nizar ABDALLAH Date : 01/04/1993 */
14 /* Modified by : Mathieu OKUYAMA Date : 05/21/1998 */
16 /* Modified by : Stephane PICAULT Date : 10/13/1998 */
17 /* Modified by : Date : ../../.... */
19 /****************************************************************************/
22 /****************************************************************************/
25 /*--------------------------------------------------------------------------*/
27 /*--------------------------------------------------------------------------*/
29 #include "xtas_paths_menu.h"
30 #include "xtas_paths_button.h"
34 #define XTAS_PATH_FROM_LOFFSET_G 54
35 #define XTAS_PATH_FROM_LOFFSET_T 6
37 /*--------------------------------------------------------------------------*/
39 /*--------------------------------------------------------------------------*/
41 /*--------------------------------------------------------------------------*/
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
;
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 /*---------------------------------------------------------------------------*/
55 /*---------------------------------------------------------------------------*/
57 /*---------------------------------------------------------------------------*/
60 /*---------------------------------------------------------------------------*/
61 void XtasFillPathInfosForm (FocusSet
)
62 XtasPathIndexTabElt
*FocusSet
;
68 path
= FocusSet
->PATH
;
70 label
= XtNameToWidget (FocusSet
->PATH_SET
->TOP_LEVEL
, "*XtasPathInfosFromLabel");
73 sprintf (buf
, "%s", path
->NODE
->ROOT
->NAME
);
74 XmTextSetString (label
, buf
);
76 label
= XtNameToWidget (FocusSet
->PATH_SET
->TOP_LEVEL
, "*XtasPathInfosToLabel");
80 sprintf (buf
, "%s commanded by %s", path
->ROOT
->ROOT
->NAME
, path
->CMD
->ROOT
->NAME
);
82 sprintf (buf
, "%s", path
->ROOT
->ROOT
->NAME
);
83 XmTextSetString (label
, buf
);
84 XmUpdateDisplay (label
);
85 XmUpdateDisplay (XtParent(label
));
87 label
= XtNameToWidget (FocusSet
->PATH_SET
->TOP_LEVEL
, "*XtasPathInfosSTimeLabel");
90 sprintf (buf
, "%.1f ps", path
->DELAYSTART
/TTV_UNIT
);
91 XtasSetLabelString (label
, buf
);
93 label
= XtNameToWidget (FocusSet
->PATH_SET
->TOP_LEVEL
, "*XtasPathInfosSSlopeLabel");
96 sprintf (buf
, "%.1f ps", path
->SLOPESTART
/TTV_UNIT
);
97 XtasSetLabelString (label
, buf
);
99 label
= XtNameToWidget (FocusSet
->PATH_SET
->TOP_LEVEL
, "*XtasPathInfosDataLagLabel");
102 sprintf (buf
, "%.1f ps", path
->DATADELAY
/TTV_UNIT
);
103 XtasSetLabelString (label
, buf
);
105 label
= XtNameToWidget (FocusSet
->PATH_SET
->TOP_LEVEL
, "*XtasPathInfosLatchLabel");
110 if (path
->LATCH
->ROOT
== path
->CMDLATCH
->ROOT
)
111 sprintf (buf
, "Prech: %s", path
->LATCH
->ROOT
->NAME
);
113 sprintf (buf
, "Latch: %s commanded by %s", path
->LATCH
->ROOT
->NAME
, path
->CMDLATCH
->ROOT
->NAME
);
115 sprintf (buf
, "Latch: %s", path
->LATCH
->ROOT
->NAME
);
116 XtasSetLabelString (label
, buf
);
120 XtasSetLabelString (label
, buf
);
122 // /* Latch Command */
123 // label = XtNameToWidget (FocusSet->PATH_SET->TOP_LEVEL, "*XtasPathInfosLatchCmdLabel");
126 // if (path->CMDLATCH)
127 // sprintf (buf, "%s", path->CMDLATCH->ROOT->NAME);
129 // sprintf (buf, " ");
130 // XtasSetLabelString (label, buf);
134 /*---------------------------------------------------------------------------*/
137 /*---------------------------------------------------------------------------*/
138 void XtasPathsGetPathCmdCallback (widget
, client_data
, call_data
)
140 XtPointer client_data
;
141 XtPointer call_data
;
143 XtasWindowStruct
*tas_winfos
= (XtasWindowStruct
*) client_data
;
144 short int mask
= XTAS_REG
, i
;
146 chain_list
*ch
, *chain
;
147 char buf
[256], cmd_list
[1024];
152 if(XTAS_SIGNAL
!= NULL
)
154 ptsig
= ttv_getsig(XtasMainParam
->ttvfig
, XTAS_SIGNAL
);
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");
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
, " ");
169 XtasSetOrderByStartOrEnd( 10, 1, "*" ) ;
170 XtasSetOrderByStartOrEnd( 20, 1, cmd_list
) ;
172 if((ptype
= getptype(ptsig
->USER
,STB_HOLD
)) != NULL
)
173 hold
= (long)ptype
->DATA
;
178 for(i
= 0 ; i
< 2 ; i
++)
180 ptnode
= stb_getstbnode(ptsig
->NODE
+i
) ;
182 if(ptnode
->HOLD
< hold
)
183 hold
= ptnode
->HOLD
;
187 if( hold
< XtasMargin
)
190 XtasMainToolsCallback( widget
, (XtPointer
)(&mask
), call_data
) ;
195 XalDrawMessage(tas_winfos
->errwidget
, XTAS_NSIGERR
);
199 void XtasPathsGetPathCallback (widget
, client_data
, call_data
)
201 XtPointer client_data
;
202 XtPointer call_data
;
204 short int mask
= 0x0;
206 if(XTAS_SIGNAL
!= NULL
)
208 XtasSetOrderByStartOrEnd( 10, 1, "*" ) ;
209 XtasSetOrderByStartOrEnd( 20, 1, XTAS_SIGNAL
) ;
211 XtasMainToolsCallback( widget
, (XtPointer
)(&mask
), call_data
) ;
214 /*---------------------------------------------------------------------------*/
217 /*---------------------------------------------------------------------------*/
218 void XtasRemovePathSession(window
)
219 XtasWindowStruct
*window
;
221 chain_list
*head
= XTAS_PATH_SESSION
;
223 XtasWindowStruct
*data
;
224 XtasPathListSetStruct
*path_set
;
227 for(; head
!= NULL
; head
= head
->NEXT
) {
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
))
237 for(chain
= path_set
->DETAIL_SESSION
; chain
!= NULL
; chain
= chain
->NEXT
) {
238 if(chain
->DATA
!= NULL
) {
239 XtasRemoveDetailPathSession((XtasWindowStruct
*)chain
->DATA
) ;
242 for(chain
= path_set
->PARA_SESSION
; chain
!= NULL
; chain
= chain
->NEXT
) {
243 if(chain
->DATA
!= NULL
) {
244 XtasRemovePathSession((XtasWindowStruct
*)chain
->DATA
) ;
247 XtasFreePathListSet( path_set
);
248 XtDestroyWidget( data
->topwidget
);
255 freechain( XTAS_PATH_SESSION
);
256 XTAS_PATH_SESSION
= NULL
;
258 else if(head
!= NULL
)
259 XTAS_PATH_SESSION
= delchain(XTAS_PATH_SESSION
,head
) ;
261 XTAS_PATHSSELECTEDWIDGET
= NULL
;
264 /*---------------------------------------------------------------------------*/
265 void XtasSavePaths(file
,pathset
)
267 XtasPathListSetStruct
*pathset
;
269 ttvpath_list
* path
= pathset
->CUR_PATH_WIN
->DATA
;
270 int nbpath
= pathset
->PARAM
->PATH_ITEM
;
285 if(pathset
->PARAM
->CRITIC
== 'Y')
287 else if(pathset
->PARAM
->CRITIC
== 'P')
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
) ;
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
) ;
305 if((path
->TYPE
& TTV_FIND_MAX
) == TTV_FIND_MAX
)
307 sprintf(name
,"%c %s",type
,"MAX") ;
311 sprintf(name
,"%c %s",type
,"MIN") ;
313 XtasPrintType(i
,name
,c
,sizetype
) ;
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
) ;
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") ;
337 /*---------------------------------------------------------------------------*/
340 /*---------------------------------------------------------------------------*/
341 void XtasPathsSaveCallback( widget
, client_data
, call_data
)
343 XtPointer client_data
;
346 XtasWindowStruct
*widtab
= (XtasWindowStruct
*)client_data
;
347 XtasPathsSavePathset
= (XtasPathListSetStruct
*)widtab
->userdata
;
349 XtasSelectFileCallback( widget
, (XtPointer
)XTAS_PATH_MAP
, call_data
) ;
352 void XtasPathsSelectFileOk (void)
356 if(XtasDataFileName
!= NULL
)
358 file
= fopen(XtasDataFileName
,"a") ;
361 XtasSavePaths(file
,XtasPathsSavePathset
) ;
366 XalDrawMessage( XtasErrorWidget
, XTAS_NOPENFL
);
371 /*---------------------------------------------------------------------------*/
373 /* FUNCTION : XtasSignalsDetailCallback */
375 /* IN ARGS : .widget : The widget on which the event occurs. */
376 /* .client : The signal type. */
377 /* .call_data : Not significant. */
379 /* OUT ARGS : ( void ) */
381 /* OBJECT : The callback function for the View of signals detail */
383 /*---------------------------------------------------------------------------*/
385 void XtasSignalInfoCallback (widget
, client_data
, call_data
)
387 XtPointer client_data
;
388 XtPointer call_data
;
390 XtasWindowStruct
*widtab
= (XtasWindowStruct
*)client_data
;
392 XalSetCursor ( widtab
->topwidget
, WAIT
);
393 XalForceUpdate ( widtab
->topwidget
);
396 XtasSignalsDetail ( widtab
->topwidget
, XTAS_SIGNAL
) ;
397 else if ( XTAS_DISABLE_INFO
== 'Y' )
398 XalDrawMessage (XtasErrorWidget
, XTAS_INFOERR
) ;
400 XalDrawMessage (XtasErrorWidget
, XTAS_NSIGERR
) ;
402 XalSetCursor ( widtab
->topwidget
, NORMAL
) ;
405 /*---------------------------------------------------------------------------*/
406 /* FUNCTION : XtasCreate2SubForm */
408 /* Create the 2 subforms and display the infos on 2 signals named buf1 & buf2*/
410 /*---------------------------------------------------------------------------*/
411 void XtasCreate2SubForm(XtasPathSet
,buf1
,buf2
)
412 XtasPathListSetStruct
*XtasPathSet
;
416 Widget paned_window
;
418 static Widget last_paned_widget
;
419 static XtasPathListSetStruct
* lastXtasPathSet
;
422 XtWidgetGeometry size
;
424 if (( last_paned_widget
) && ( lastXtasPathSet
== XtasPathSet
))
425 XtDestroyWidget ( last_paned_widget
) ;
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
,
435 last_paned_widget
= paned_window
;
438 w1
= XtCreateManagedWidget ( "XtasNewDisp",
442 w2
= XtCreateManagedWidget ( "XtasNewDisp",
446 XtasFillInfosForm( w1
, buf1
) ;
447 XtasFillInfosForm( w2
, buf2
) ;
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
);
455 lastXtasPathSet
= XtasPathSet
;
458 /*---------------------------------------------------------------------------*/
459 /* Focus the path so we can get detail path */
461 /*---------------------------------------------------------------------------*/
463 void XtasPathsFocus2Callback (widget
, client_data
, call_data
)
465 XtPointer client_data
;
466 XtPointer call_data
;
468 XmListCallbackStruct
*cbs
;
469 chain_list
*headsav
= (chain_list
*)client_data
;
475 cbs
= (XmListCallbackStruct
*)call_data
;
478 while (head
&& (cbs
) && (i
< cbs
->item_position
)) {
484 XtasPathsFocusCallback( widget
, (XtPointer
)head
->DATA
, call_data
) ;
488 /*---------------------------------------------------------------------------*/
490 /* FUNCTION : XtasGet2InfoCallback */
492 /* Displays the infos of the begining and the end of a path */
493 /* selected in the scrolled list */
495 /*---------------------------------------------------------------------------*/
497 void XtasGet2InfoCallback (widget
, client_data
, call_data
)
499 XtPointer client_data
;
500 XtPointer call_data
;
502 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
503 static XtasPathListSetStruct
*LastXtasPathSet
;
504 XmListCallbackStruct
*cbs
;
512 XTAS_DISABLE_INFO
= 'Y' ;
513 cbs
= (XmListCallbackStruct
*)call_data
;
515 path
= XtasPathSet
->CUR_PATH_WIN
->DATA
;
517 while (path
&& (cbs
) && (i
< cbs
->item_position
)) {
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
))
526 if ( sig2
&& (LastXtasPathSet
== XtasPathSet
))
528 sig1
= strdup(buf1
) ;
529 sig2
= strdup(buf2
) ;
530 XtasCreate2SubForm(XtasPathSet
,sig1
,sig2
) ;
531 LastXtasPathSet
= XtasPathSet
;
534 /*---------------------------------------------------------------------------*/
536 /* FUNCTION : XtasPathsCloseCallback */
538 /* IN ARGS : .widget : The widget on which the event occurs. */
539 /* .top : The window toplevel widget id. */
540 /* .call_data : Not significant. */
542 /* OUT ARGS : ( void ) */
546 /*---------------------------------------------------------------------------*/
547 void XtasPathsCloseCallback( widget
, client_data
, call_data
)
549 XtPointer client_data
;
552 XtasWindowStruct
* top
= (XtasWindowStruct
*)client_data
;
554 XtasRemovePathSession(top
) ;
555 // XalLeaveLimitedLoop();
558 /*---------------------------------------------------------------------------*/
560 /* FUNCTION : XtasPathsFocusCallback */
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. */
566 /* OUT ARGS : ( void ) */
568 /* OBJECT : The callback function for the focus in and out. */
570 /*---------------------------------------------------------------------------*/
571 void XtasSignalFocusCallback( widget
, client_data
, call_data
)
573 XtPointer client_data
;
576 XTAS_SIGNAL
= (char*)client_data
;
578 /*---------------------------------------------------------------------------*/
580 /* FUNCTION : XtasPathsDeselect */
582 /* OUT ARGS : ( void ) */
584 /*---------------------------------------------------------------------------*/
585 void XtasPathsDeselect( widget
)
591 parent
= XtParent (widget
);
592 XtVaGetValues(parent
, XmNbackground
,&bg
,NULL
);
593 XtVaSetValues(widget
, XmNcursorPositionVisible
, False
, NULL
) ;
594 XtVaSetValues (parent
, XmNborderColor
, bg
, NULL
);
597 /*---------------------------------------------------------------------------*/
599 /* FUNCTION : XtasGetFocusParentCallback */
601 /* IN ARGS : .widget : The widget on which the event occurs. */
602 /* .client_data : the false path result label. */
603 /* .call_data : Not significant. */
605 /* OUT ARGS : ( void ) */
607 /* OBJECT : The callback function for the focus in and out. */
609 /*---------------------------------------------------------------------------*/
610 void XtasGetFocusParentCallback( widget
, client_data
, call_data
)
612 XtPointer client_data
;
615 XTAS_FLSPATHRESLABEL
= (Widget
)client_data
;
618 /*---------------------------------------------------------------------------*/
620 /* FUNCTION : XtasPathsFocusCallback */
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. */
626 /* OUT ARGS : ( void ) */
628 /* OBJECT : The callback function for the focus in and out. */
630 /*---------------------------------------------------------------------------*/
631 void XtasPathsFocusCallback( widget
, client_data
, call_data
)
633 XtPointer client_data
;
639 XtasPathIndexTabElt
*FocusSet
= ( XtasPathIndexTabElt
*)client_data
;
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
) ;
650 FocusSet
->PATH_SET
->PARAM
->LOOK_PATH
= FocusSet
->PATH
;
652 XtasFillPathInfosForm (FocusSet
);
655 /*---------------------------------------------------------------------------*/
657 /* FUNCTION : XtasPathsLosingFocusCallback */
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. */
663 /* OUT ARGS : ( void ) */
665 /* OBJECT : The callback function for the focus in and out. */
667 /*---------------------------------------------------------------------------*/
668 void XtasLosingPathsFocusCallback( widget
, client_data
, call_data
)
670 XtPointer client_data
;
675 /*---------------------------------------------------------------------------*/
677 /* FUNCTION : XtasFillPathList */
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. */
683 /* OUT ARGS : ( void ) */
685 /* OBJECT : The callback function for the View command */
687 /*---------------------------------------------------------------------------*/
688 void XtasFillPathList( XtasPathSet
)
689 XtasPathListSetStruct
*XtasPathSet
;
693 Pixel tas_state_color
;
694 Pixel tas_backg_color
;
697 Widget label_widget
, text_from
, text_to
, text_slope
, text_time
;
698 Pixmap r_pixmap
, f_pixmap
, v_pixmap
;
703 int c
, offset
, limit
, size
;
705 list_widget
= XtasPathSet
->PATHLIST_SCROLL
;
706 row_widget
= XtasPathSet
->PATHLIST_ROW
;
708 if ((XtasPathSet
->PARAM
->REQUEST_TYPE
& XTAS_SBS
) == XTAS_SBS
) {
718 if ( row_widget
!= NULL
)
720 if (XTAS_PATHSSELECTEDWIDGET
!= NULL
) {
721 XtasPathsDeselect (XTAS_PATHSSELECTEDWIDGET
);
722 XTAS_PATHSSELECTEDWIDGET
= NULL
;
724 XtDestroyWidget(row_widget
);
727 row_widget
= XtVaCreateWidget( "XtasPathsRow",
728 xmRowColumnWidgetClass
,
730 XmNorientation
, XmVERTICAL
,
734 XtasPathSet
->PATHLIST_ROW
= row_widget
;
736 XtVaGetValues(row_widget
,XmNforeground
,&tas_state_color
,
737 XmNbackground
,&tas_backg_color
,NULL
);
739 r_pixmap
= XalGetPixmap( row_widget
,
741 tas_state_color
, tas_backg_color
);
742 f_pixmap
= XalGetPixmap( row_widget
,
744 tas_state_color
, tas_backg_color
);
746 head
= XtasCreatePathTabIndex( XtasPathSet
);
747 path
= XtasPathSet
->CUR_PATH_WIN
->DATA
;
749 if (XtasPathSet
->CUR_PATH_WIN
->PREV
)
750 size
= XtasPathSet
->CUR_PATH_WIN
->PREV
->SIZE
;
752 size
= XtasPathSet
->CUR_PATH_WIN
->SIZE
;
753 c
= ((XtasPathSet
->CUR_PATH_WIN
->INDEX
- 1) * size
) + 1;
755 while ( head
!= NULL
)
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",
767 //XmAddTabGroup( sub_form );
769 if ( (r_pixmap
== XmUNSPECIFIED_PIXMAP
) || (f_pixmap
== XmUNSPECIFIED_PIXMAP
) )
771 text
= ( ( path
->NODE
->TYPE
& TTV_NODE_UP
) == TTV_NODE_UP
) ? XmStringCreateSimple("rising") : XmStringCreateSimple("falling");
772 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
775 XmNtopAttachment
, XmATTACH_FORM
,
776 XmNlabelString
, text
,
777 XmNleftAttachment
, XmATTACH_FORM
,
782 XmStringFree( text
);
786 v_pixmap
= ( (path
->NODE
->TYPE
& TTV_NODE_UP
) == TTV_NODE_UP
) ? r_pixmap
: f_pixmap
;
787 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
790 XmNtopAttachment
, XmATTACH_FORM
,
791 XmNlabelType
, XmPIXMAP
,
792 XmNlabelPixmap
, v_pixmap
,
793 XmNleftAttachment
, XmATTACH_FORM
,
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",
812 /* XtAddCallback( text_from,
814 XtasPathsDetailCallback,
815 (XtPointer)XtasPathSet );*/
816 XtAddCallback( text_from
,
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
,
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
) )
833 if(( path
->TYPE
& TTV_FIND_HZ
) == TTV_FIND_HZ
)
834 text
= XmStringCreateSimple("highZ");
836 text
= ( ( path
->ROOT
->TYPE
& TTV_NODE_UP
) == TTV_NODE_UP
) ? XmStringCreateSimple("rising") : XmStringCreateSimple("falling");
837 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
840 XmNlabelString
, text
,
841 XmNleftAttachment
, XmATTACH_WIDGET
,
842 XmNleftWidget
, text_from
,
847 XmStringFree( text
);
851 v_pixmap
= ( ( path
->ROOT
->TYPE
& TTV_NODE_UP
) == TTV_NODE_UP
) ? r_pixmap
: f_pixmap
;
852 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
855 XmNlabelType
, XmPIXMAP
,
856 XmNlabelPixmap
, v_pixmap
,
857 XmNleftAttachment
, XmATTACH_WIDGET
,
858 XmNleftWidget
, text_from
,
864 /*===== New Widget =====*/
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",
877 /* XtAddCallback( text_to,
879 XtasPathsDetailCallback,
880 (XtPointer)XtasPathSet );*/
881 XtAddCallback( text_to
,
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
,
892 XtasSignalFocusCallback
,
893 (XtPointer
)strdup (value
));
894 XmTextSetString( text_to
,value
);
896 /*===== New Widget =====*/
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",
909 /* XtAddCallback( text_slope,
911 XtasPathsDetailCallback,
912 (XtPointer)XtasPathSet );*/
913 XtAddCallback( text_slope
,
915 XtasPathsFocusCallback
,
916 (XtPointer
)head
->DATA
);
917 XtAddCallback( text_slope
,
918 XmNlosingFocusCallback
,
919 XtasLosingPathsFocusCallback
,
920 (XtPointer
)head
->DATA
);
921 XtAddCallback( text_slope
,
923 XtasSignalFocusCallback
,
925 sprintf( value
, "%.1f pS" , path
->SLOPE
/TTV_UNIT
);
926 XmTextSetString( text_slope
, value
);
928 /*===== New Widget =====*/
930 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
931 XtSetArg( args
[n
], XmNleftWidget
, text_slope
); n
++;
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",
943 /* XtAddCallback( text_time,
945 XtasPathsDetailCallback,
946 (XtPointer)XtasPathSet );*/
947 XtAddCallback( text_time
,
949 XtasPathsFocusCallback
,
950 (XtPointer
)head
->DATA
);
951 XtAddCallback( text_time
,
952 XmNlosingFocusCallback
,
953 XtasLosingPathsFocusCallback
,
954 (XtPointer
)head
->DATA
);
955 XtAddCallback( text_time
,
957 XtasSignalFocusCallback
,
959 sprintf( value
, "%.1fpS" , (path
->DELAY
+path
->DATADELAY
)/ TTV_UNIT
);
960 XmTextSetString( text_time
, value
);
962 /*===== New Widget =====*/
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",
975 sprintf( value
, "%i" , c
);
976 XtasSetLabelString( label_widget
, value
);
979 /*===== Widget used to display false path result =====*/
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( "",
995 XtAddCallback(text_from
,
997 XtasGetFocusParentCallback
,
998 (XtPointer
)label_widget
);
999 XtAddCallback(text_to
,
1001 XtasGetFocusParentCallback
,
1002 (XtPointer
)label_widget
);
1003 XtAddCallback(text_slope
,
1005 XtasGetFocusParentCallback
,
1006 (XtPointer
)label_widget
);
1007 XtAddCallback(text_time
,
1009 XtasGetFocusParentCallback
,
1010 (XtPointer
)label_widget
);
1017 if ((c
> limit
) || ((XtasPathSet
->PARAM
->REQUEST_TYPE
& XTAS_SBS
)==XTAS_SBS
))
1018 XtVaSetValues (list_widget
, XmNheight
, offset
+ limit
*32, NULL
);
1020 XtVaSetValues (list_widget
, XmNheight
, offset
+ c
*32, NULL
);
1023 XtManageChild( row_widget
);
1027 /*---------------------------------------------------------------------------*/
1029 /* FUNCTION : XtasFillPathList2 */
1031 /* New display of the paths list */
1033 /*---------------------------------------------------------------------------*/
1034 void XtasFillPathList2( XtasPathSet
)
1035 XtasPathListSetStruct
*XtasPathSet
;
1040 chain_list
*headsav
;
1043 char text_line
[2048];
1044 char *first_signame
;
1048 char type_front1
[1024];
1049 char type_front2
[1024];
1051 head
= XtasCreatePathTabIndex( XtasPathSet
);
1053 path
= XtasPathSet
->CUR_PATH_WIN
->DATA
;
1055 XmListDeleteAllItems(XtasPathSet
->PATHLIST_SCROLL
) ;
1059 while ( head
!= NULL
)
1061 /* type du 1er front */
1062 if(( path
->NODE
->TYPE
& TTV_NODE_UP
) == TTV_NODE_UP
)
1063 sprintf(type_front1
,"R ") ;
1065 sprintf(type_front1
,"F ") ;
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 ") ;
1073 sprintf(type_front2
,"F ") ;
1076 ttv_getsigname(XtasPathSet
->PARAM
->ROOT_SIG_EDGE
->TOP_FIG
, value
,path
->NODE
->ROOT
);
1077 first_signame
= XtasPlaceString(value
,XtasCarLength1
) ;
1080 ttv_getsigname(XtasPathSet
->PARAM
->ROOT_SIG_EDGE
->TOP_FIG
, value
,path
->ROOT
->ROOT
);
1081 last_signame
= XtasPlaceString(value
,XtasCarLength2
) ;
1084 slope
= XtasPlaceNbStringTTVUnit(path
->SLOPE
,TTV_UNIT
) ;
1087 tp
= XtasPlaceNbStringTTVUnit(path
->DELAY
+path
->DATADELAY
, TTV_UNIT
) ;
1089 /* indice du chemin = c */
1091 sprintf(text_line
,"%s %s %s %s %spS %spS %d", first_signame
, type_front1
, type_front2
,
1092 last_signame
, slope
, tp
,c
) ;
1094 mbkfree(first_signame
) ;
1095 mbkfree(last_signame
) ;
1099 text
= XmStringCreateSimple (text_line
) ;
1100 XmListAddItemUnselected (XtasPathSet
->PATHLIST_SCROLL
, text
, c
) ;
1101 XmStringFree (text
) ;
1107 /* Call back to define on scroll list */
1108 XtAddCallback (XtasPathSet
->PATHLIST_SCROLL
,
1109 XmNbrowseSelectionCallback
,
1110 XtasGet2InfoCallback
,
1111 (XtPointer
)XtasPathSet
);
1113 /* Call back to display signal details */
1114 XtAddCallback (XtasPathSet
->PATHLIST_SCROLL
,
1115 XmNbrowseSelectionCallback
,
1116 XtasPathsFocus2Callback
,
1117 (XtPointer
)headsav
);
1119 XtAddCallback( XtasPathSet->PATHLIST_SCROLL,
1120 XmNdefaultActionCallback,
1121 XtasPathsDetailCallback,
1122 (XtPointer)XtasPathSet);
1126 /*---------------------------------------------------------------------------*/
1130 /*---------------------------------------------------------------------------*/
1131 void XtasSigPathSelectCallback(widget
, client_data
, call_data
)
1133 XtPointer client_data
;
1134 XtPointer call_data
;
1136 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1137 XmListCallbackStruct
*cbs
= (XmListCallbackStruct
*)call_data
;
1139 chain_list
*sig_list
;
1140 char text_info
[1024];
1141 char text_info2
[1024];
1144 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1145 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1147 XTAS_PATHSSELECTEDWIDGET
= NULL
;
1149 sig_list
= XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
->DATA
;
1150 position
= cbs
->item_position
;
1152 for ( n
= 1 ; n
< position
; n
++ )
1154 sig_list
= sig_list
->NEXT
;
1157 XtasPathSet
->PARAM
->CUR_SIG
= sig_list
;
1158 head
= sig_list
->DATA
;
1160 if ( XtasTtvGetPathList( XtasPathSet
) != NULL
)
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
,
1167 sprintf( text_info
, "Current Output Signal: %s",
1168 ttv_getsigname(XtasPathSet
->PARAM
->ROOT_SIG_EDGE
->TOP_FIG
,
1171 XtasSetLabelString( XtasPathSet
->INFO_CUR_SIG
, text_info
);
1172 if (XTAS_DISPLAY_NEW
)
1173 XtasFillPathList2 (XtasPathSet
) ;
1175 XtasFillPathList( XtasPathSet
);
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
,
1184 sprintf( text_info
, "Current Output Signal: %s",
1185 ttv_getsigname(XtasPathSet
->PARAM
->ROOT_SIG_EDGE
->TOP_FIG
,
1187 XalDrawMessage( XtasWarningWidget
, XTAS_NPATWAR
) ;
1190 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1193 /*---------------------------------------------------------------------------*/
1195 /* XtasPathTreatEndCallback */
1197 /*---------------------------------------------------------------------------*/
1198 void XtasPathTreatEndCallback( widget
, client_data
, call_data
)
1201 XtPointer client_data
;
1202 XtPointer call_data
;
1205 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1206 XtasChainJmpList
*head
;
1208 head
= XtasPathSet
->CUR_PATH_WIN
;;
1210 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_SIGINFO
);
1211 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1212 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1214 if (head
->NEXT
!= NULL
)
1216 while( head
->NEXT
!= NULL
)
1219 XtasPathSet
->CUR_PATH_WIN
= head
;
1221 /* if (XTAS_DISPLAY_NEW)
1222 XtasFillPathList2 (XtasPathSet) ;
1224 XtasFillPathList( XtasPathSet
);
1226 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1227 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1230 /*---------------------------------------------------------------------------*/
1232 /* XtasPathTreatFastFwdCallback */
1234 /*---------------------------------------------------------------------------*/
1235 void XtasPathTreatFastFwdCallback( widget
, client_data
, call_data
)
1238 XtPointer client_data
;
1239 XtPointer call_data
;
1242 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1244 XtasChainJmpList
*head
= XtasPathSet
->CUR_PATH_WIN
;;
1246 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_SIGINFO
);
1247 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1248 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1250 if ( head
->NEXT
!= NULL
)
1252 XtasPathSet
->CUR_PATH_WIN
= head
->NEXT
;
1256 if ( head
->NEXT
!= NULL
)
1258 XtasPathSet
->CUR_PATH_WIN
= head
->NEXT
;
1260 /* if (XTAS_DISPLAY_NEW)
1261 XtasFillPathList2 (XtasPathSet) ;
1263 XtasFillPathList( XtasPathSet
);
1265 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1266 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1269 /*---------------------------------------------------------------------------*/
1273 /*---------------------------------------------------------------------------*/
1274 void XtasPathTreatMiddleCallback( widget
, client_data
, call_data
)
1277 XtPointer client_data
;
1278 XtPointer call_data
;
1281 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1283 XtasChainJmpList
*head
= XtasPathSet
->CUR_PATH_WIN
;;
1285 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_SIGINFO
);
1286 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1287 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1289 if ( head
->NEXT
!= NULL
)
1291 XtasPathSet
->CUR_PATH_WIN
= head
->NEXT
;
1292 /* if (XTAS_DISPLAY_NEW)
1293 XtasFillPathList2 (XtasPathSet) ;
1295 XtasFillPathList( XtasPathSet
);
1298 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1299 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1302 /*---------------------------------------------------------------------------*/
1306 /*---------------------------------------------------------------------------*/
1307 void XtasPathTreatNextCallback( widget
, client_data
, call_data
)
1309 XtPointer client_data
;
1310 XtPointer call_data
;
1312 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1314 XtasChainJmpList
*head
= XtasPathSet
->CUR_PATH_WIN
;;
1316 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_SIGINFO
);
1317 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1318 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1320 if ( head
->NEXT
!= NULL
)
1322 XtasPathSet
->CUR_PATH_WIN
= head
->NEXT
;
1323 /* if (XTAS_DISPLAY_NEW)
1324 XtasFillPathList2 (XtasPathSet) ;
1326 XtasFillPathList( XtasPathSet
);
1329 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1330 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1333 /*---------------------------------------------------------------------------*/
1337 /*---------------------------------------------------------------------------*/
1338 void XtasPathTreatFastRewCallback( widget
, client_data
, call_data
)
1340 XtPointer client_data
;
1341 XtPointer call_data
;
1343 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1345 XtasChainJmpList
*head
= XtasPathSet
->CUR_PATH_WIN
;;
1347 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_SIGINFO
);
1348 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1349 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1351 if ( head
->PREV
!= NULL
)
1354 if ( head
->PREV
!= NULL
)
1357 XtasPathSet
->CUR_PATH_WIN
= head
;
1358 /* if (XTAS_DISPLAY_NEW)
1359 XtasFillPathList2 (XtasPathSet) ;
1361 XtasFillPathList( XtasPathSet
);
1365 XtasPathSet
->CUR_PATH_WIN
= head
;
1366 /* if (XTAS_DISPLAY_NEW)
1367 XtasFillPathList2 (XtasPathSet) ;
1369 XtasFillPathList( XtasPathSet
);
1373 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1374 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1377 /*---------------------------------------------------------------------------*/
1381 /*---------------------------------------------------------------------------*/
1382 void XtasPathTreatTopCallback( widget
, client_data
, call_data
)
1385 XtPointer client_data
;
1386 XtPointer call_data
;
1389 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1391 XtasChainJmpList
*head
= XtasPathSet
->CUR_PATH_WIN
;;
1393 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_SIGINFO
);
1394 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1395 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1396 if ( head
->PREV
!= NULL
)
1398 while ( head
->PREV
!= NULL
)
1401 XtasPathSet
->CUR_PATH_WIN
= head
;
1403 /* if (XTAS_DISPLAY_NEW)
1404 XtasFillPathList2 (XtasPathSet) ;
1406 XtasFillPathList( XtasPathSet
);
1409 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1410 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1413 /*---------------------------------------------------------------------------*/
1417 /*---------------------------------------------------------------------------*/
1418 void XtasPathTreatPrevCallback( widget
, client_data
, call_data
)
1421 XtPointer client_data
;
1422 XtPointer call_data
;
1425 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1427 XtasChainJmpList
*head
= XtasPathSet
->CUR_PATH_WIN
;;
1430 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_SIGINFO
);
1431 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1432 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1434 if ( head
->PREV
!= NULL
)
1436 XtasPathSet
->CUR_PATH_WIN
= head
->PREV
;
1437 /* if (XTAS_DISPLAY_NEW)
1438 XtasFillPathList2 (XtasPathSet) ;
1440 XtasFillPathList( XtasPathSet
);
1443 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1444 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1447 /*---------------------------------------------------------------------------*/
1451 /*---------------------------------------------------------------------------*/
1452 void XtasFillSigPathList( XtasPathSet
)
1454 XtasPathListSetStruct
*XtasPathSet
;
1459 XmString motif_string
;
1463 XmListDeleteAllItems( XtasPathSet
->SIGNAL_LIST_SET
->SIGLIST_SCROLL
);
1465 if ( XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
== NULL
)
1469 head
= XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
->DATA
;
1474 /* XalDrawMessage( Xtaswarning_widget[type], XTAS_NSIGWAR ); */
1479 while ( position
< XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
->SIZE
)
1481 /*------------------------------------------------*/
1482 /* traitement a modifier pour plus d'infos ? */
1483 /*------------------------------------------------*/
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
);
1496 /*---------------------------------------------------------------------------*/
1500 /*---------------------------------------------------------------------------*/
1501 void XtasSigPathTreatEndCallback( widget
, client_data
, call_data
)
1504 XtPointer client_data
;
1505 XtPointer call_data
;
1508 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1510 static XtasChainJmpList
*head
;
1512 head
= XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
;;
1514 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_SIGINFO
);
1515 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1516 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1518 while ( head
->NEXT
!= NULL
)
1521 XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
= head
;
1523 XtasFillSigPathList( XtasPathSet
);
1525 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1526 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1529 /*---------------------------------------------------------------------------*/
1533 /*---------------------------------------------------------------------------*/
1534 void XtasSigPathTreatFastFwdCallback( widget
, client_data
, call_data
)
1536 XtPointer client_data
;
1537 XtPointer call_data
;
1539 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1541 static XtasChainJmpList
*head
;
1543 head
= XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
;;
1545 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_SIGINFO
);
1546 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1547 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1549 if ( head
->NEXT
!= NULL
)
1554 if ( head
->NEXT
!= NULL
)
1559 XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
= head
;
1561 XtasFillSigPathList( XtasPathSet
);
1563 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1564 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1567 /*---------------------------------------------------------------------------*/
1571 /*---------------------------------------------------------------------------*/
1572 void XtasSigPathTreatNextCallback( widget
, client_data
, call_data
)
1575 XtPointer client_data
;
1576 XtPointer call_data
;
1579 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1581 static XtasChainJmpList
*head
;
1583 head
= XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
;;
1585 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_SIGINFO
);
1586 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1587 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1589 if ( head
->NEXT
!= NULL
)
1591 XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
= head
->NEXT
;
1592 XtasFillSigPathList( XtasPathSet
);
1595 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1596 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1599 /*---------------------------------------------------------------------------*/
1603 /*---------------------------------------------------------------------------*/
1604 void XtasSigPathTreatMiddleCallback( widget
, client_data
, call_data
)
1607 XtPointer client_data
;
1608 XtPointer call_data
;
1611 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1613 static XtasChainJmpList
*head
;
1615 head
= XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
;;
1617 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_SIGINFO
);
1618 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1619 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1621 if ( head
->NEXT
!= NULL
)
1623 XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
= head
->NEXT
;
1624 XtasFillSigPathList( XtasPathSet
);
1627 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1628 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1631 /*---------------------------------------------------------------------------*/
1635 /*---------------------------------------------------------------------------*/
1636 void XtasSigPathTreatPrevCallback( widget
, client_data
, call_data
)
1639 XtPointer client_data
;
1640 XtPointer call_data
;
1643 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1645 static XtasChainJmpList
*head
;
1647 head
= XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
;
1649 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_SIGINFO
);
1650 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1651 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1653 if ( head
->PREV
!= NULL
)
1655 XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
= head
->PREV
;
1656 XtasFillSigPathList( XtasPathSet
);
1659 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1660 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1663 /*---------------------------------------------------------------------------*/
1667 /*---------------------------------------------------------------------------*/
1668 void XtasSigPathTreatFastRewCallback( widget
, client_data
, call_data
)
1671 XtPointer client_data
;
1672 XtPointer call_data
;
1675 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1677 static XtasChainJmpList
*head
;
1679 head
= XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
;
1681 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_SIGINFO
);
1682 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1683 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1685 if ( head
->PREV
!= NULL
)
1689 if ( head
->PREV
!= NULL
)
1694 XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
= head
;
1696 XtasFillSigPathList( XtasPathSet
);
1698 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1699 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1702 /*---------------------------------------------------------------------------*/
1706 /*---------------------------------------------------------------------------*/
1707 void XtasSigPathTreatTopCallback( widget
, client_data
, call_data
)
1710 XtPointer client_data
;
1711 XtPointer call_data
;
1714 XtasPathListSetStruct
*XtasPathSet
= (XtasPathListSetStruct
*)client_data
;
1716 static XtasChainJmpList
*head
;
1718 head
= XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
;
1720 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_SIGINFO
);
1721 XalSetCursor( XtasPathSet
->TOP_LEVEL
, WAIT
);
1722 XalForceUpdate( XtasPathSet
->TOP_LEVEL
);
1724 while ( head
->PREV
!= NULL
)
1727 XtasPathSet
->SIGNAL_LIST_SET
->CUR_SIG_WIN
= head
;
1730 XtasFillSigPathList( XtasPathSet
);
1732 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1733 XalSetCursor( XtasPathSet
->TOP_LEVEL
, NORMAL
);
1736 /*---------------------------------------------------------------------------*/
1738 /* FUNCTION : XtasPathsButtonsCallback */
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. */
1744 /* OUT ARGS : ( void ) */
1746 /* OBJECT : The callback function for the Options/Button's command */
1748 /*---------------------------------------------------------------------------*/
1749 void XtasPathsButtonsCallback( widget
, client_data
, call_data
)
1752 XtPointer client_data
;
1753 XtPointer call_data
;
1756 XtasWindowStruct
*widtab
= (XtasWindowStruct
*)client_data
;
1757 XtasOptionsButtonsTreat( widtab
->wrkwidget
, &widtab
->butwidget
,
1758 XtasPathsButtonMenus
, XtasPathsButtonOptions
);
1762 /*---------------------------------------------------------------------------*/
1764 /* FUNCTION : XtasCreatePathsMenus */
1766 /* IN ARGS : .parent : Parent widget for the Menu Bar. */
1768 /* OUT ARGS : .The value of the Menu Bar widget. */
1770 /* OBJECT : Creates the menu bar of the paths window. */
1772 /*---------------------------------------------------------------------------*/
1773 Widget
XtasCreatePathsMenus( parent
, tas_winfos
)
1776 XtasWindowStruct
*tas_winfos
;
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
;
1792 /*-------------------*/
1793 /* Create a menu_bar */
1794 /*-------------------*/
1797 menu_bar
= XmCreateMenuBar( parent
, "XtasMenuBar", args
, n
);
1799 XalBuildMenus( menu_bar
, /* The Menu Bar widget id */
1800 XtasPathsMenu
); /* The main menu XalMenus structure */
1806 /*---------------------------------------------------------------------------*/
1808 /* FUNCTION : XtasPathColumnsTitleMoveWithHSBCallback */
1810 /*---------------------------------------------------------------------------*/
1811 void XtasPathColumnsTitleMoveWithHSBCallback (hsb
, label
, call_data
)
1814 XtPointer call_data
;
1819 if (XTAS_DISPLAY_NEW
== 0)
1820 loffset
= XTAS_PATH_FROM_LOFFSET_G
;
1822 loffset
= XTAS_PATH_FROM_LOFFSET_T
;
1824 XtVaGetValues (hsb
, XmNvalue
, &value
, NULL
);
1826 XtVaSetValues (label
, XmNleftOffset
, (loffset
- value
), NULL
);
1830 /*---------------------------------------------------------------------------*/
1832 /* FUNCTION : XtasCreatePathsList */
1834 /* IN ARGS : .parent : The parent widget id. */
1835 /* .params : The get paths parameters. */
1836 /* .paths_list : The paths list description. */
1838 /* OUT ARGS : ( void ) */
1840 /* OBJECT : Creation of the signals window objects. */
1842 /*---------------------------------------------------------------------------*/
1843 Widget
XtasCreatePathsList( parent
, XtasPathSet
, tas_winfos
)
1846 XtasPathListSetStruct
*XtasPathSet
;
1847 XtasWindowStruct
*tas_winfos
;
1850 Widget label_widget
;
1851 Widget FROM_label_widget
;
1854 Widget form
, form1
, form2
;
1858 Widget buttons_form
;
1866 Pixel tas_state_color
;
1867 Pixel tas_backg_color
;
1870 char text_info
[1024];
1875 /*-------------------------*/
1877 /*-------------------------*/
1881 chain_list
*headchain
;
1882 ttvpath_list
*path
;
1883 /* for paned windows */
1884 Widget paned_window
;
1885 Widget form1_window
;
1886 Widget form2_window
;
1889 /*-----------------------/---------------------------------------*/
1890 /* Create a Paned Window to split the Main window into many rows */
1891 /*-----------------------/---------------------------------------*/
1892 /*===== New Widget =====*/
1893 form_widget
= XtVaCreateWidget( "XtasMainPan",
1896 XmNtopAttachment
, XmATTACH_FORM
,
1897 XmNbottomAttachment
, XmATTACH_POSITION
,
1898 XmNbottomPosition
, 99,
1899 XmNleftAttachment
, XmATTACH_POSITION
,
1901 XmNrightAttachment
, XmATTACH_POSITION
,
1902 XmNrightPosition
, 99,
1905 /*-----------------------/------------------------*/
1906 /* Create a form to manage the first row children */
1907 /*-----------------------/------------------------*/
1908 /*===== New Widget =====*/
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",
1918 for ( n
=0; XtasPathsButtonMenus
[n
].pix_file
!= -1 ; n
++ )
1919 XtasPathsButtonMenus
[n
].callback_data
= (XtPointer
)tas_winfos
;
1921 /*===== New Widget =====*/
1923 XtSetArg( args
[n
], XmNnumColumns
, 1 ); n
++;
1924 XtSetArg( args
[n
], XmNorientation
, XmHORIZONTAL
); n
++;
1925 tas_winfos
->butwidget
= XalButtonMenus( buttons_form
,
1926 XtasPathsButtonMenus
,
1929 XtasAddDummyButton( tas_winfos
->butwidget
);
1930 XtManageChild( tas_winfos
->butwidget
);
1931 //XmAddTabGroup( tas_winfos->butwidget );
1933 /*-------- separator ---*/
1934 /*===== New Widget =====*/
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
,
1947 /*-----------------------/--*/
1948 /* Create the message area */
1949 /*-----------------------/--*/
1950 /*===== New Widget =====*/
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",
1963 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
1964 xmLabelWidgetClass
, form
,
1965 XmNtopAttachment
, XmATTACH_FORM
,
1966 XmNleftAttachment
, XmATTACH_FORM
,
1969 XtasSetLabelString( label_widget
, "Informations Area" );
1971 /*===== New Widget =====*/
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",
1984 /*===== New Widget =====*/
1986 XtSetArg( args
[n
], XmNheight
, 20 ); n
++;
1987 XtasPathSet
->INFO_USER
= XtCreateManagedWidget( "XtasUserInfo",
1991 XtasSetLabelString( XtasPathSet
->INFO_USER
, XTAS_NULINFO
);
1993 /*===== New Widget =====*/
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",
2005 /*===== New Widget =====*/
2007 XtSetArg( args
[n
], XmNheight
, 20 ); n
++;
2008 XtasPathSet
->INFO_HELP
= XtCreateManagedWidget( "XtashelpInfo",
2012 XtasSetLabelString( XtasPathSet
->INFO_HELP
, XTAS_NULINFO
);
2015 /*----------------------*/
2016 /* Create a separator */
2017 /*----------------------*/
2018 /*===== New Widget =====*/
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
,
2031 /*-----------------------/------------------*/
2032 /* Paned Window pour les deux scrolled list */
2033 /*-----------------------/------------------*/
2034 /*===== New Widget =====*/
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
,
2047 /*-----------------------/------------------------*/
2048 /* Create a form to manage the next pan children */
2049 /*-----------------------/------------------------*/
2050 /*===== New Widget =====*/
2052 form
= XtCreateManagedWidget( "XtasShellSubForm",
2057 /*===== New Widget =====*/
2059 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
2060 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
2061 label_widget
= XtCreateManagedWidget( "XtasSubTitles",
2065 XtasSetLabelString( label_widget
, "Search Parameters");
2067 /*===== New Widget =====*/
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",
2079 /*===== New Widget =====*/
2081 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
2082 label_widget
= XtCreateManagedWidget( "XtasFrame",
2086 if ( (XtasPathSet
->PARAM
->SCAN_TYPE
& TTV_FIND_DUAL
) == TTV_FIND_DUAL
)
2088 XtasSetLabelString( label_widget
, "Search from Start");
2092 XtasSetLabelString( label_widget
, "Search from End");
2095 /*===== New Widget =====*/
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",
2110 /*===== New Widget =====*/
2112 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
2113 label_widget
= XtCreateManagedWidget( "XtasFrame",
2117 if (( XtasPathSet
->PARAM
->SCAN_TYPE
& TTV_FIND_MAX
) == TTV_FIND_MAX
)
2119 XtasSetLabelString( label_widget
, "Max");
2123 XtasSetLabelString( label_widget
, "Min");
2126 /*===== New Widget =====*/
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",
2139 /*===== New Widget =====*/
2141 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
2142 label_widget
= XtCreateManagedWidget( "XtasFrame",
2147 if(XtasPathSet
->PARAM
->DELAY_MIN
== TTV_DELAY_MIN
)
2149 if(XtasPathSet
->PARAM
->DELAY_MAX
== TTV_DELAY_MAX
)
2150 sprintf(text_info
, "Time Bounds: None ");
2152 sprintf(text_info
, "Time Bounds: delay < %.0f",
2153 XtasPathSet
->PARAM
->DELAY_MAX
/TTV_UNIT
);
2155 else if(XtasPathSet
->PARAM
->DELAY_MAX
== TTV_DELAY_MAX
)
2157 sprintf(text_info
, "Time Bounds: %.0f < delay",
2158 XtasPathSet
->PARAM
->DELAY_MIN
/TTV_UNIT
);
2163 "Time Bounds: %.0f < delay < %.0f",
2164 XtasPathSet
->PARAM
->DELAY_MIN
/TTV_UNIT
, XtasPathSet
->PARAM
->DELAY_MAX
/TTV_UNIT
);
2166 XtasSetLabelString( label_widget
, text_info
);
2168 if ((XtasPathSet
->PARAM
->REQUEST_TYPE
& XTAS_SBS
) == XTAS_SBS
)
2170 /*===== New Widget =====*/
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",
2181 /*===== New Widget =====*/
2183 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
2184 label_widget
= XtCreateManagedWidget( "XtasFrame",
2188 head
= XtasPathSet
->PARAM
->CUR_SIG
->DATA
;
2189 if ((XtasPathSet
->PARAM
->SCAN_TYPE
& TTV_FIND_DUAL
) == TTV_FIND_DUAL
)
2191 sprintf( text_info
, "Current Input Signal: ") ;
2192 ttv_getsigname( XtasPathSet
->PARAM
->ROOT_SIG_EDGE
->TOP_FIG
,
2193 text_info
+strlen( text_info
), head
);
2197 sprintf( text_info
, "Current Output Signal: ");
2198 ttv_getsigname( XtasPathSet
->PARAM
->ROOT_SIG_EDGE
->TOP_FIG
,
2199 text_info
+strlen( text_info
), head
) ;
2201 XtasSetLabelString( label_widget
, text_info
);
2202 XtasPathSet
->INFO_CUR_SIG
= label_widget
;
2204 /*===== New Widget =====*/
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",
2216 /*===== New Widget =====*/
2218 form_t
= XtCreateManagedWidget( "XtasShellSubForm",
2222 /*----------------------*/
2223 /*===== New Widget =====*/
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
,
2233 XtAddCallback( button
,
2234 XmNactivateCallback
,
2235 XtasSigPathTreatEndCallback
,
2236 (XtPointer
)XtasPathSet
);
2237 XtasSetLabelString( button
, " ->| " );
2239 /*===== New Widget =====*/
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
,
2250 XtAddCallback( button
,
2251 XmNactivateCallback
,
2252 XtasSigPathTreatFastFwdCallback
,
2253 (XtPointer
)XtasPathSet
);
2254 XtasSetLabelString( button
, " ->-> " );
2256 /*===== New Widget =====*/
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
,
2267 XtAddCallback( button
,
2268 XmNactivateCallback
,
2269 XtasSigPathTreatNextCallback
,
2270 (XtPointer
)XtasPathSet
);
2271 XtasSetLabelString( button
, " -> " );
2273 /*===== New Widget =====*/
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
,
2284 XtAddCallback( button
,
2285 XmNactivateCallback
,
2286 XtasSigPathTreatMiddleCallback
,
2287 (XtPointer
)XtasPathSet
);
2288 XtasSetLabelString( button
, " ->|<- " );
2290 /*===== New Widget =====*/
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
,
2301 XtAddCallback( button
,
2302 XmNactivateCallback
,
2303 XtasSigPathTreatPrevCallback
,
2304 (XtPointer
)XtasPathSet
);
2305 XtasSetLabelString( button
, " <-" );
2307 /*===== New Widget =====*/
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
,
2318 XtAddCallback( button
,
2319 XmNactivateCallback
,
2320 XtasSigPathTreatFastRewCallback
,
2321 (XtPointer
)XtasPathSet
);
2322 XtasSetLabelString( button
, " <-<- " );
2324 /*===== New Widget =====*/
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
,
2335 XtAddCallback( button
,
2336 XmNactivateCallback
,
2337 XtasSigPathTreatTopCallback
,
2338 (XtPointer
)XtasPathSet
);
2339 XtasSetLabelString( button
, " |<- " );
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
,
2353 if ((XtasPathSet
->PARAM
->SCAN_TYPE
& TTV_FIND_DUAL
) == TTV_FIND_DUAL
)
2355 XtasSetLabelString( label_widget
, "Input Signals List" );
2359 XtasSetLabelString( label_widget
, "Output Signals List" );
2362 /*===== New Widget =====*/
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",
2376 XtasSetLabelString( XtasPathSet
->SIGNAL_LIST_SET
->INFO_PAGE
, XTAS_NULINFO
);
2378 /*===== New Widget =====*/
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
,
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
);
2405 /*--------- deuxieme form/ pour les chemins -------------------------------*/
2406 /*===== New Widget =====*/
2408 form
= XtCreateManagedWidget( "XtasShellSubForm",
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
++;
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
++;
2429 XtSetArg( args
[n
], XmNheight
, 30 ); n
++;
2430 XtSetArg( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
2431 label_widget
= XtCreateManagedWidget( "XtasShellSubForm",
2435 XtasSetLabelString( label_widget
, "Path Information" );
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",
2448 form
= XtCreateManagedWidget( "XtasPathInfosForm",
2453 /*----------------------------------------------------------------------------------------*/
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
);
2461 /* Information "Data Lag" */
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:" );
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
, "" );
2485 /* Information "Latch" */
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
, " " );
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
);
2507 /* Information "Starting Slope" */
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:" );
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",
2530 XtasSetLabelString( label_widget
, "" );
2532 /* Information "Starting Time" */
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:" );
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
, "" );
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
);
2565 /* information "From" */
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:" );
2576 XtVaGetValues( label_widget
,
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
, "" );
2605 /* information "To" */
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:" );
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
);
2642 form
= XtCreateManagedWidget( "XtasShellSubForm",
2647 /*===== New Widget =====*/
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",
2657 /*===== New Widget =====*/
2659 form_t
= XtCreateManagedWidget( "XtasShellSubForm",
2664 // if (((XtasPathSet->PARAM->REQUEST_TYPE & XTAS_SBS) == XTAS_SBS) ||
2665 // ( XtasPathSet->PARAM->CRITIC == 'P' ))
2667 if (!XTAS_DISPLAY_NEW
) {
2668 /*----------------------*/
2669 /*===== New Widget =====*/
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
,
2679 XtAddCallback( button
,
2680 XmNactivateCallback
,
2681 XtasPathTreatEndCallback
,
2682 (XtPointer
)XtasPathSet
);
2683 XtasSetLabelString( button
, " ->| " );
2685 /*===== New Widget =====*/
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
,
2696 XtAddCallback( button
,
2697 XmNactivateCallback
,
2698 XtasPathTreatFastFwdCallback
,
2699 (XtPointer
)XtasPathSet
);
2700 XtasSetLabelString( button
, " ->-> " );
2702 /*===== New Widget =====*/
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
,
2713 XtAddCallback( button
,
2714 XmNactivateCallback
,
2715 XtasPathTreatNextCallback
,
2716 (XtPointer
)XtasPathSet
);
2717 XtasSetLabelString( button
, " -> " );
2719 /*===== New Widget =====*/
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,
2730 XtAddCallback( button,
2731 XmNactivateCallback,
2732 XtasPathTreatMiddleCallback,
2733 (XtPointer)XtasPathSet );
2734 XtasSetLabelString( button, " ->|<- " );*/
2736 /*===== New Widget =====*/
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
,
2747 XtAddCallback( button
,
2748 XmNactivateCallback
,
2749 XtasPathTreatPrevCallback
,
2750 (XtPointer
)XtasPathSet
);
2751 XtasSetLabelString( button
, " <- " );
2753 /*===== New Widget =====*/
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
,
2764 XtAddCallback( button
,
2765 XmNactivateCallback
,
2766 XtasPathTreatFastRewCallback
,
2767 (XtPointer
)XtasPathSet
);
2768 XtasSetLabelString( button
, " <-<- " );
2770 /*===== New Widget =====*/
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
,
2781 XtAddCallback( button
,
2782 XmNactivateCallback
,
2783 XtasPathTreatTopCallback
,
2784 (XtPointer
)XtasPathSet
);
2785 XtasSetLabelString( button
, " |<- " );
2787 /*===== New Widget =====*/
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",
2798 XtasSetLabelString( label_widget
, "" );
2800 /*--------------------- titre ---------------------------------------*/
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" );
2806 text
= XmStringCreateSimple( "Access List" );
2808 else if (XtasPathSet
->PARAM
->CRITIC
== 'P')
2809 text
= XmStringCreateSimple( "Parallel Paths List" );
2811 else if ((XtasPathSet
->PARAM
->REQUEST_TYPE
& XTAS_CRITIC
) == XTAS_CRITIC
)
2813 if ((XtasPathSet
->PARAM
->REQUEST_TYPE
& XTAS_PATHS
) == XTAS_PATHS
)
2814 text
= XmStringCreateSimple( "Critic Path List" );
2816 text
= XmStringCreateSimple( "Critic Access List" );
2820 if ((XtasPathSet
->PARAM
->REQUEST_TYPE
& XTAS_PATHS
) == XTAS_PATHS
)
2821 text
= XmStringCreateSimple( "All Paths" );
2823 text
= XmStringCreateSimple( "All Access" );
2827 /*===== New Widget =====*/
2828 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
2831 XmNlabelString
, text
,
2832 XmNtopAttachment
, XmATTACH_FORM
,
2833 XmNbottomAttachment
, XmATTACH_FORM
,
2834 XmNleftAttachment
, XmATTACH_FORM
,
2839 XmStringFree( text
);
2841 /*===== New Widget =====*/
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",
2855 /* longueur des noms des signaux */
2856 headchain
= XtasCreatePathTabIndex( XtasPathSet
);
2857 path
= XtasPathSet
->CUR_PATH_WIN
->DATA
;
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
;
2871 headchain
= headchain
->NEXT
;
2873 if(XtasCarLength1
>= XTAS_MAX_CARLENGTH
)
2874 XtasCarLength1
= XTAS_MAX_CARLENGTH
;
2875 if(XtasCarLength2
>= XTAS_MAX_CARLENGTH
)
2876 XtasCarLength2
= XTAS_MAX_CARLENGTH
;
2878 /*===== New Widget =====*/
2879 if(!XTAS_DISPLAY_NEW
)
2882 text
= XmStringCreateSimple( "From" );
2883 FROM_label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
2886 XmNlabelString
, text
,
2887 XmNtopAttachment
, XmATTACH_FORM
,
2888 XmNleftAttachment
, XmATTACH_FORM
,
2891 XmNleftOffset
, XTAS_PATH_FROM_LOFFSET_G
,
2894 XmStringFree( text
);
2896 /*===== New Widget =====*/
2897 text
= XmStringCreateSimple( "To" );
2899 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
2902 XmNlabelString
, text
,
2903 XmNtopAttachment
, XmATTACH_FORM
,
2904 XmNleftAttachment
, XmATTACH_WIDGET
,
2905 XmNleftWidget
, FROM_label_widget
,
2911 XmStringFree( text
);
2913 /*===== New Widget =====*/
2914 text
= XmStringCreateSimple( "Output Slope" );
2915 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
2918 XmNlabelString
, text
,
2919 XmNtopAttachment
, XmATTACH_FORM
,
2920 XmNleftAttachment
, XmATTACH_WIDGET
,
2921 XmNleftWidget
, label_widget
,
2927 XmStringFree( text
);
2929 /*===== New Widget =====*/
2930 pixmap
= XalGetPixmap( label_widget
,
2935 if ( pixmap
== XmUNSPECIFIED_PIXMAP
)
2937 text
= XmStringCreateSimple( "Time" );
2938 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
2941 XmNlabelString
, text
,
2942 XmNtopAttachment
, XmATTACH_FORM
,
2943 XmNleftAttachment
, XmATTACH_WIDGET
,
2944 XmNleftWidget
, label_widget
,
2952 XmStringFree( text
);
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
,
2970 /*===== New Widget =====*/
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
,
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
;
2995 XtasFillPathList( XtasPathSet
);
2999 /*===== New Widget =====*/
3000 text
= XmStringCreateSimple( "From" );
3001 FROM_label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
3004 XmNlabelString
, text
,
3005 XmNtopAttachment
, XmATTACH_FORM
,
3006 XmNleftAttachment
, XmATTACH_FORM
,
3007 XmNwidth
, XtasCarLength1
*7,
3010 XmNleftOffset
, XTAS_PATH_FROM_LOFFSET_T
,
3013 XmStringFree( text
);
3015 /*===== New Widget =====*/
3016 text
= XmStringCreateSimple( "To" );
3018 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
3021 XmNlabelString
, text
,
3022 XmNtopAttachment
, XmATTACH_FORM
,
3023 XmNleftAttachment
, XmATTACH_WIDGET
,
3024 XmNleftWidget
, FROM_label_widget
,
3025 XmNwidth
, XtasCarLength2
*7,
3031 XmStringFree( text
);
3033 /*===== New Widget =====*/
3034 text
= XmStringCreateSimple( "SLOPE" );
3035 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
3038 XmNlabelString
, text
,
3039 XmNtopAttachment
, XmATTACH_FORM
,
3040 XmNleftAttachment
, XmATTACH_WIDGET
,
3041 XmNleftWidget
, label_widget
,
3048 XmStringFree( text
);
3050 /*===== New Widget =====*/
3051 XtVaGetValues( label_widget
,
3057 pixmap
= XalGetPixmap( label_widget
,
3062 if ( pixmap
== XmUNSPECIFIED_PIXMAP
)
3064 text
= XmStringCreateSimple( "Time" );
3065 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
3068 XmNlabelString
, text
,
3069 XmNtopAttachment
, XmATTACH_FORM
,
3070 XmNleftAttachment
, XmATTACH_WIDGET
,
3071 XmNleftWidget
, label_widget
,
3079 XmStringFree( text
);
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
,
3097 /* creation of a paned windows which will contain 2 infos */
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
,
3110 form1_window
= XtVaCreateManagedWidget ( "XtasSubForm",
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",
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
);
3137 XtManageChild( list_widget
);
3138 XtasPathSet
->PATHLIST_SCROLL
= list_widget
;
3140 XtasFillPathList2( XtasPathSet
);
3142 /* form2_window contient les deux subforms */
3143 /* pour afficher les infos des signaux */
3144 form2_window
= XtVaCreateManagedWidget ( "XtasSubForm",
3147 XmNtopAttachment
, XmATTACH_WIDGET
,
3148 XmNtopWidget
, form1_window
,
3150 XtasPathSet
->PATHLIST_2INFO
= form2_window
;
3152 XtManageChild( form_widget
);
3153 return( form_widget
);
3157 /*---------------------------------------------------------------------------*/
3159 /* FUNCTION : XtasPathsList */
3161 /* IN ARGS : .parent : The parent widget. */
3162 /* .params : The paths request parameters. */
3163 /* .paths_list : The list of paths to draw. */
3165 /* OUT ARGS : The shell widget id. */
3167 /* OBJECT : The main routine of Paths List Main window command */
3169 /*---------------------------------------------------------------------------*/
3170 XtasWindowStruct
*XtasPathsList( parent
, params
)
3172 XtasSearchPathParamStruct
*params
;
3178 XtasPathListSetStruct
*XtasPathSet
;
3179 XtasWindowStruct
*tas_winfos
= NULL
;
3180 char text_title
[128];
3183 /*-- initialisation de la structure de controle d'affichage -------------*/
3184 /* a ecrire par la suite sous forme d'une macro */
3185 /*-----------------------------------------------------------------------*/
3187 if (XTAS_PATHSSELECTEDWIDGET
!= NULL
) {
3188 XtasPathsDeselect (XTAS_PATHSSELECTEDWIDGET
);
3189 XTAS_PATHSSELECTEDWIDGET
= NULL
;
3192 XtasPathSet
= XtasNewPathListSet( params
);
3194 if ( XtasPathSet
->PARAM
->LOOK_PATH
!= NULL
)
3195 /*------------ chemins paralleles ----------------*/
3197 XtasPathSet
->PARAM
->CRITIC
= 'P';
3198 if ( XtasTtvGetParaList( XtasPathSet
) == NULL
)
3200 XtasFreePathListSet( XtasPathSet
);
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
);
3213 /*------------ chemins a delay determine ---------*/
3216 if ( (params
->REQUEST_TYPE
& XTAS_SBS
) == XTAS_SBS
)
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
)
3223 XtasFreePathListSet( XtasPathSet
);
3228 if ( XtasCleanTtvSigList( XtasPathSet
) == 0 )
3233 /*===== New Widget =====*/
3235 /*------------ chemins max/min --------------------*/
3238 if ( XtasTtvGetPathList( XtasPathSet
) == NULL
)
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
++;
3250 tas_winfos
= (XtasWindowStruct
*)mbkalloc( sizeof(XtasWindowStruct
) );
3251 tas_winfos
->userdata
= XtasPathSet
;
3252 XTAS_PATH_SESSION
= addchain(XTAS_PATH_SESSION
,tas_winfos
) ;
3254 tas_winfos
->topwidget
= XtVaCreatePopupShell( NULL
,
3255 topLevelShellWidgetClass
,
3257 XmNallowShellResize
, False
,
3258 XmNdeleteResponse
, XmDESTROY
,
3261 HelpFather
= tas_winfos
->topwidget
;
3262 XtSetValues( tas_winfos
->topwidget
, args
, n
);
3264 XtasPathSet
->TOP_LEVEL
= tas_winfos
->topwidget
;
3266 /*------------------------------------------------*/
3267 /* Create the Alliance applications standard Icon */
3268 /*------------------------------------------------*/
3269 XalCustomIcon( tas_winfos
->topwidget
, XTAS_PATH_MAP
);
3272 main_window
= XmCreateMainWindow( tas_winfos
->topwidget
,
3275 XtManageChild( main_window
);
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
);
3283 tas_winfos
->wrkwidget
= XtasCreatePathsList( main_window
, XtasPathSet
, tas_winfos
);
3284 XtManageChild( tas_winfos
->wrkwidget
);
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
);
3292 XmMainWindowSetAreas( main_window
,
3293 tas_winfos
->menwidget
,
3297 tas_winfos
->wrkwidget
);
3299 XtPopup( tas_winfos
->topwidget
, XtGrabNone
);
3300 return ( tas_winfos
);