Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / tas / xtas / xtas_visualise_path.c
1 /****************************************************************************/
2 /* */
3 /* Produit : XTAS Version 5 */
4 /* Fichier : xtas_visualise_path.c */
5 /* */
6 /* Author(s) : Caroline BLED Date : 24/12/2002 */
7 /* */
8 /* */
9 /****************************************************************************/
10 #include "xtas.h"
11
12
13 Widget XtasVisualPathWidget = NULL;
14 char TYPE = XTAS_HILIGHT;
15
16 /*--------------------------------------------------------------------------*/
17 /* */
18 /* XtasCancelVisualPathCallback */
19 /* */
20 /*--------------------------------------------------------------------------*/
21 void XtasCancelVisualPathCallback( widget, client_data , call_data )
22 Widget widget;
23 XtPointer client_data;
24 XtPointer call_data;
25 {
26 XtUnmanageChild (XyagTopLevel);
27 XtUnmanageChild ((Widget) client_data);
28 // XalLeaveLimitedLoop ();
29 }
30
31
32 /*--------------------------------------------------------------------------*/
33 /* */
34 /* XtasVisualPathCallback */
35 /* */
36 /*--------------------------------------------------------------------------*/
37 void XtasVisualPathCallback( widget, client_data , call_data )
38 Widget widget ;
39 XtPointer client_data ;
40 XtPointer call_data ;
41 {
42 Arg args[10];
43 int n;
44 Widget row_widget, toggle;
45 XmString text;
46 Atom WM_DELETE_WINDOW;
47 static XtasWindowStruct *tas_winfos = NULL;
48
49
50 if ( XtasAppNotReady() ) return;
51
52
53 if (!tas_winfos)
54 tas_winfos = (XtasWindowStruct *) mbkalloc (sizeof(XtasWindowStruct));
55
56 *tas_winfos = *((XtasWindowStruct*)client_data);
57
58 if ( !XtasVisualPathWidget )
59 {
60 n = 0;
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 );
73
74 row_widget = XtVaCreateManagedWidget( "XtasRow", xmRowColumnWidgetClass, XtasVisualPathWidget,
75 XmNpacking, XmPACK_COLUMN,
76 XmNnumColumns, 2,
77 XmNorientation, XmHORIZONTAL,
78 XmNspacing, 15,
79 XmNmarginHeight, 10,
80 XmNmarginWidth, 55,
81 XmNisAligned, True,
82 XmNradioBehavior, True,
83 XmNradioAlwaysOne, True,
84 NULL);
85
86 text = XmStringCreateSimple( "Highlight" );
87 toggle = XtVaCreateManagedWidget( "XtasHighlight", xmToggleButtonWidgetClass, row_widget,
88 XmNindicatorType, XmONE_OF_MANY,
89 XmNset, True,
90 XmNlabelString, text,
91 NULL);
92 XmStringFree( text );
93 XtAddCallback( toggle, XmNvalueChangedCallback, XtasHighlightCallback, (XtPointer)NULL );
94
95 text = XmStringCreateSimple( "Extract" );
96 toggle = XtVaCreateManagedWidget( "XtasExtract", xmToggleButtonWidgetClass, row_widget,
97 XmNindicatorType, XmONE_OF_MANY,
98 XmNset, False,
99 XmNlabelString, text,
100 NULL);
101 XmStringFree( text );
102 XtAddCallback( toggle, XmNvalueChangedCallback, XtasExtractCallback, (XtPointer)NULL );
103
104 }
105 XtManageChild (XyagTopLevel);
106 XtManageChild( XtasVisualPathWidget );
107 // XalLimitedLoop(XtasVisualPathWidget);
108
109 }
110
111 /*--------------------------------------------------------------------------*/
112 /* */
113 /* XtasVisualPathOkCallback */
114 /* */
115 /*--------------------------------------------------------------------------*/
116 void XtasVisualPathOkCallback( widget, tas_winfos , call_data )
117 Widget widget ;
118 XtPointer tas_winfos ;
119 XtPointer call_data ;
120 {
121 XtasDetailPathSetStruct *detail_set = (XtasDetailPathSetStruct *)((XtasWindowStruct *)tas_winfos)->userdata;
122 chain_list *head;
123 ttvcritic_list *critic, *c;
124 cgv_interaction *cgvhead=NULL;
125 char mess[100];
126 char ext[4];
127
128 XtUnmanageChild(widget);
129
130 XtasPasqua();
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);
138 XtasFirePasqua ();
139 XtUnmanageChild (XyagTopLevel);
140 XalDrawMessage (((XtasWindowStruct *)tas_winfos)->errwidget, mess);
141 // XalLeaveLimitedLoop ();
142 return;
143 }
144 head = (chain_list *)detail_set->CUR_DETAIL->DATA;
145 critic = (ttvcritic_list *)(head->DATA);
146
147
148 for(c=critic ; c != NULL ; c = c->NEXT)
149 cgvhead = cgv_NetObject(cgvhead, c->NETNAME);
150
151
152 // cgvhead = cgv_NetObject(cgvhead, "a");
153 // cgvhead = cgv_NetObject(cgvhead, "y");
154 if (TYPE == XTAS_EXTRACT)
155 XyagExtract(cgvhead, 1);
156 else
157 XyagHiLight(cgvhead, 1);
158 }
159 XtasGetWarningMess ();
160 XtasFirePasqua ();
161
162
163 XtPopup (XyagTopLevel, XtGrabNone);
164 // XalLeaveLimitedLoop();
165
166 }
167
168
169 /*--------------------------------------------------------------------------*/
170 /* */
171 /* XtasHighlightCallback */
172 /* */
173 /*--------------------------------------------------------------------------*/
174 void XtasHighlightCallback( widget, client_data, call_data )
175 Widget widget ;
176 XtPointer client_data ;
177 XtPointer call_data ;
178 {
179 XmToggleButtonCallbackStruct *state = (XmToggleButtonCallbackStruct *) call_data ;
180 TYPE = ( state->set ) ? XTAS_HILIGHT : XTAS_EXTRACT ;
181
182 }
183
184 /*--------------------------------------------------------------------------*/
185 /* */
186 /* XtasExtractCallback */
187 /* */
188 /*--------------------------------------------------------------------------*/
189 void XtasExtractCallback( widget, client_data, call_data )
190 Widget widget ;
191 XtPointer client_data ;
192 XtPointer call_data ;
193 {
194 XmToggleButtonCallbackStruct *state = (XmToggleButtonCallbackStruct *) call_data ;
195 TYPE = ( state->set ) ? XTAS_EXTRACT : XTAS_HILIGHT ;
196
197 }
198
199