1 /****************************************************************************/
3 /* Produit : XTAS Version 5 */
4 /* Fichier : xtas_visualise_path.c */
6 /* Author(s) : Caroline BLED Date : 24/12/2002 */
9 /****************************************************************************/
13 Widget XtasVisualPathWidget
= NULL
;
14 char TYPE
= XTAS_HILIGHT
;
16 /*--------------------------------------------------------------------------*/
18 /* XtasCancelVisualPathCallback */
20 /*--------------------------------------------------------------------------*/
21 void XtasCancelVisualPathCallback( widget
, client_data
, call_data
)
23 XtPointer client_data
;
26 XtUnmanageChild (XyagTopLevel
);
27 XtUnmanageChild ((Widget
) client_data
);
28 // XalLeaveLimitedLoop ();
32 /*--------------------------------------------------------------------------*/
34 /* XtasVisualPathCallback */
36 /*--------------------------------------------------------------------------*/
37 void XtasVisualPathCallback( widget
, client_data
, call_data
)
39 XtPointer client_data
;
44 Widget row_widget
, toggle
;
46 Atom WM_DELETE_WINDOW
;
47 static XtasWindowStruct
*tas_winfos
= NULL
;
50 if ( XtasAppNotReady() ) return;
54 tas_winfos
= (XtasWindowStruct
*) mbkalloc (sizeof(XtasWindowStruct
));
56 *tas_winfos
= *((XtasWindowStruct
*)client_data
);
58 if ( !XtasVisualPathWidget
)
61 XtSetArg( args
[n
], XmNtitle
, XTAS_NAME
": Visualize Path" ); n
++;
62 XtSetArg( args
[n
], XmNdialogStyle
, XmDIALOG_APPLICATION_MODAL
); n
++;
63 XtasVisualPathWidget
= XmCreatePromptDialog( XtParent(XtParent(widget
)), "XtasInfosBox", args
, n
);
64 HelpFather
= XtasVisualPathWidget
;
65 XtUnmanageChild(XmSelectionBoxGetChild(XtasVisualPathWidget
, XmDIALOG_TEXT
));
66 XtUnmanageChild(XmSelectionBoxGetChild(XtasVisualPathWidget
, XmDIALOG_PROMPT_LABEL
));
67 XtAddCallback( XtasVisualPathWidget
, XmNokCallback
, XtasVisualPathOkCallback
, (XtPointer
)tas_winfos
);
68 XtAddCallback( XtasVisualPathWidget
, XmNcancelCallback
, XtasCancelVisualPathCallback
, (XtPointer
)XtasVisualPathWidget
);
69 XtAddCallback( XtasVisualPathWidget
, XmNhelpCallback
, XtasHelpCallback
, (XtPointer
)(XTAS_SRC_VISUPATH
|XTAS_HELP_MAIN
) );
70 WM_DELETE_WINDOW
= XmInternAtom(XtDisplay(XtasDeskMainForm
), "WM_DELETE_WINDOW", False
);
71 XmAddWMProtocolCallback(XtParent(XtasVisualPathWidget
), WM_DELETE_WINDOW
, XtasCancelCallback
, (XtPointer
)XtasVisualPathWidget
);
72 XmAddTabGroup( XtasVisualPathWidget
);
74 row_widget
= XtVaCreateManagedWidget( "XtasRow", xmRowColumnWidgetClass
, XtasVisualPathWidget
,
75 XmNpacking
, XmPACK_COLUMN
,
77 XmNorientation
, XmHORIZONTAL
,
82 XmNradioBehavior
, True
,
83 XmNradioAlwaysOne
, True
,
86 text
= XmStringCreateSimple( "Highlight" );
87 toggle
= XtVaCreateManagedWidget( "XtasHighlight", xmToggleButtonWidgetClass
, row_widget
,
88 XmNindicatorType
, XmONE_OF_MANY
,
93 XtAddCallback( toggle
, XmNvalueChangedCallback
, XtasHighlightCallback
, (XtPointer
)NULL
);
95 text
= XmStringCreateSimple( "Extract" );
96 toggle
= XtVaCreateManagedWidget( "XtasExtract", xmToggleButtonWidgetClass
, row_widget
,
97 XmNindicatorType
, XmONE_OF_MANY
,
101 XmStringFree( text
);
102 XtAddCallback( toggle
, XmNvalueChangedCallback
, XtasExtractCallback
, (XtPointer
)NULL
);
105 XtManageChild (XyagTopLevel
);
106 XtManageChild( XtasVisualPathWidget
);
107 // XalLimitedLoop(XtasVisualPathWidget);
111 /*--------------------------------------------------------------------------*/
113 /* XtasVisualPathOkCallback */
115 /*--------------------------------------------------------------------------*/
116 void XtasVisualPathOkCallback( widget
, tas_winfos
, call_data
)
118 XtPointer tas_winfos
;
119 XtPointer call_data
;
121 XtasDetailPathSetStruct
*detail_set
= (XtasDetailPathSetStruct
*)((XtasWindowStruct
*)tas_winfos
)->userdata
;
123 ttvcritic_list
*critic
, *c
;
124 cgv_interaction
*cgvhead
=NULL
;
128 XtUnmanageChild(widget
);
131 if (sigsetjmp( XtasMyEnv
, 1 ) == 0) {
132 if (XyagFileOpenByType(XtasMainParam
->ttvfig
->INFO
->FIGNAME
, CGV_FROM_CNS
) == 1)
133 if ((XyagFileOpenByType(XtasMainParam
->ttvfig
->INFO
->FIGNAME
, CGV_FROM_LOFIG
)) == 1) {
134 if (!strcmp(IN_LO
, "vlg")) sprintf (ext
, vlg_sfx
);
135 else if (!strcmp(IN_LO
, "vhd")) sprintf (ext
, vhd_sfx
);
136 else sprintf (ext
, IN_LO
);
137 sprintf (mess
, "Unable to open file %s.cns or %s.%s", XtasMainParam
->ttvfig
->INFO
->FIGNAME
, XtasMainParam
->ttvfig
->INFO
->FIGNAME
, ext
);
139 XtUnmanageChild (XyagTopLevel
);
140 XalDrawMessage (((XtasWindowStruct
*)tas_winfos
)->errwidget
, mess
);
141 // XalLeaveLimitedLoop ();
144 head
= (chain_list
*)detail_set
->CUR_DETAIL
->DATA
;
145 critic
= (ttvcritic_list
*)(head
->DATA
);
148 for(c
=critic
; c
!= NULL
; c
= c
->NEXT
)
149 cgvhead
= cgv_NetObject(cgvhead
, c
->NETNAME
);
152 // cgvhead = cgv_NetObject(cgvhead, "a");
153 // cgvhead = cgv_NetObject(cgvhead, "y");
154 if (TYPE
== XTAS_EXTRACT
)
155 XyagExtract(cgvhead
, 1);
157 XyagHiLight(cgvhead
, 1);
159 XtasGetWarningMess ();
163 XtPopup (XyagTopLevel
, XtGrabNone
);
164 // XalLeaveLimitedLoop();
169 /*--------------------------------------------------------------------------*/
171 /* XtasHighlightCallback */
173 /*--------------------------------------------------------------------------*/
174 void XtasHighlightCallback( widget
, client_data
, call_data
)
176 XtPointer client_data
;
177 XtPointer call_data
;
179 XmToggleButtonCallbackStruct
*state
= (XmToggleButtonCallbackStruct
*) call_data
;
180 TYPE
= ( state
->set
) ? XTAS_HILIGHT
: XTAS_EXTRACT
;
184 /*--------------------------------------------------------------------------*/
186 /* XtasExtractCallback */
188 /*--------------------------------------------------------------------------*/
189 void XtasExtractCallback( widget
, client_data
, call_data
)
191 XtPointer client_data
;
192 XtPointer call_data
;
194 XmToggleButtonCallbackStruct
*state
= (XmToggleButtonCallbackStruct
*) call_data
;
195 TYPE
= ( state
->set
) ? XTAS_EXTRACT
: XTAS_HILIGHT
;