1 /****************************************************************************/
3 /* Produit : XTAS Version 5 */
4 /* Fichier : xtas_ctk_noise.c */
6 /* Author(s) : Caroline BLED Date : 03/24/2003 */
9 /****************************************************************************/
11 #include "xtas_ctk_noise_menu.h"
12 #include "xtas_ctk_noise_button.h"
13 #include "xtas_stb_pbar.h"
16 #define XTAS_NOISE_NAME_MAX_LENGTH 50
17 #define XTAS_NOISE_NAME_MIN_LENGTH 11
19 #define XTAS_NOISE_LABEL_RANK_WIDTH_T 5*7 /* 7 = largeur moyenne d'un caractere */
20 #define XTAS_NOISE_LABEL_RANK_WIDTH_G 5*7 /* 7 = largeur moyenne d'un caractere */
21 #define XTAS_NOISE_LABEL_TRANS_WIDTH_T 5*7 /* Textual Display */
22 #define XTAS_NOISE_LABEL_TRANS_WIDTH_G 5*7 /* Graphical Display */
23 #define XTAS_NOISE_LABEL_NAMES_WIDTH_G 121
24 #define XTAS_NOISE_LABEL_MODEL_WIDTH_T 5*7
25 #define XTAS_NOISE_LABEL_MODEL_WIDTH_G 6*7
26 #define XTAS_NOISE_LABEL_NOISE_WIDTH_T 7*7
27 #define XTAS_NOISE_LABEL_NOISE_WIDTH_G 10*7
28 #define XTAS_NOISE_LABEL_SCORE_WIDTH_T 9*7
29 #define XTAS_NOISE_LABEL_SCORE_WIDTH_G 9*7
30 #define XTAS_NOISE_OFFSET_T 7
31 #define XTAS_NOISE_OFFSET_T2 3
32 #define XTAS_NOISE_OFFSET_G 3
33 #define XTAS_NOISE_OFFSET_GROUP_T 3*7
34 #define XTAS_NOISE_OFFSET_GROUP_G 7
35 #define XTAS_NOISE_LEFT_OFFSET_T 8
36 #define XTAS_NOISE_LEFT_OFFSET_G 8 /* offset a gauche pour le titre de la premiere colonne */
38 #define XTAS_NOISE_LABEL_OVR_UND_WIDTH_T ( XTAS_NOISE_LABEL_MODEL_WIDTH_T + \
39 2*XTAS_NOISE_LABEL_NOISE_WIDTH_T + \
40 2*XTAS_NOISE_OFFSET_T )
42 #define XTAS_NOISE_LABEL_OVR_UND_WIDTH_G ( XTAS_NOISE_LABEL_MODEL_WIDTH_G + \
43 2*XTAS_NOISE_LABEL_NOISE_WIDTH_G + \
44 2*XTAS_NOISE_OFFSET_G )
46 #define XTAS_NOISE_LABEL_SCORES_WIDTH_T ( 5*XTAS_NOISE_LABEL_SCORE_WIDTH_T + \
47 4*XTAS_NOISE_OFFSET_T)
49 #define XTAS_NOISE_LABEL_SCORES_WIDTH_G ( 5*XTAS_NOISE_LABEL_SCORE_WIDTH_G + \
50 4*XTAS_NOISE_OFFSET_G)
52 #define XTAS_NOISE_WINDOW_WIDTH_T XTAS_NOISE_LEFT_OFFSET_T + \
53 XTAS_NOISE_LABEL_RANK_WIDTH_T + \
54 XTAS_NOISE_LABEL_TRANS_WIDTH_T + \
55 2*XTAS_NOISE_LABEL_OVR_UND_WIDTH_T + \
56 XTAS_NOISE_LABEL_SCORES_WIDTH_T + \
57 3*XTAS_NOISE_OFFSET_T + \
58 4*XTAS_NOISE_OFFSET_GROUP_T + \
59 40 /* ecart fixe a droite du tableau pour
60 le voir entierement */
62 #define XTAS_NOISE_WINDOW_WIDTH_G XTAS_NOISE_LEFT_OFFSET_G + \
63 XTAS_NOISE_LABEL_RANK_WIDTH_G + \
64 XTAS_NOISE_LABEL_TRANS_WIDTH_G + \
65 XTAS_NOISE_LABEL_NAMES_WIDTH_G + \
66 2*XTAS_NOISE_LABEL_OVR_UND_WIDTH_G + \
67 XTAS_NOISE_LABEL_SCORES_WIDTH_G + \
68 2*XTAS_NOISE_OFFSET_G + \
69 4*XTAS_NOISE_OFFSET_GROUP_G + \
70 40 /* ecart fixe a droite du tableau pour
71 le voir entierement */
73 #define XTAS_NOISE_SORTBUTTON_WIDTH_G (( XTAS_NOISE_LABEL_RANK_WIDTH_G + \
74 XTAS_NOISE_LABEL_TRANS_WIDTH_G + \
75 XTAS_NOISE_LABEL_NAMES_WIDTH_G + \
76 XTAS_NOISE_OFFSET_GROUP_G ) / 2)
78 #define XTAS_NOISE_SORTBUTTON_WIDTH_T (( XTAS_NOISE_LABEL_RANK_WIDTH_T + \
79 XTAS_NOISE_LABEL_TRANS_WIDTH_T + \
80 2*XTAS_NOISE_OFFSET_GROUP_T ) / 2)
84 #define XTAS_NOISE_NO_SELECT -1
86 #define XTAS_CTK_OFFSET 2
88 static int XTAS_NOISE_MAX_NBSIG_WINDOW
;
90 Widget XtasNoiseParamWidget
= NULL
;
91 Widget XtasNoiseResultsWidget
= NULL
;
92 Widget XtasNoiseScoresWidget
= NULL
;
93 stb_ctk_stat
*XtasNoiseTab
= NULL
;
94 int XtasNoiseLabelSigNameLength
= XTAS_NOISE_NAME_MIN_LENGTH
;
95 int XtasNoiseLabelNetNameLength
= XTAS_NOISE_NAME_MIN_LENGTH
;
96 int XtasNoiseSelectedIndex
= XTAS_NOISE_NO_SELECT
;
97 int XtasNoiseCurrentTopIndex
= 0;
100 /* functions prototypes */
101 void XtasNoiseFillGraphicalList ( int new, Widget widget
, XtasWindowStruct
*win_struct
);
102 void XtasUpdateNoiseTextualScrollList (Widget list
);
105 /*---------------------------------------------------------------------------*/
107 /* FUNCTION : XtasNoiseColumnsTitleMoveWithHSBCallback */
109 /* IN ARGS : .parent : The widget on which the event occurs. */
111 /* .cbs : Toolkit informations. */
113 /* OUT ARGS : ( void ) */
115 /* OBJECT : The callback function for the button "OK" of Crosstalk */
116 /* informations window. */
118 /*---------------------------------------------------------------------------*/
119 void XtasNoiseColumnsTitleMoveWithHSBCallback (hsb
, label
, call_data
)
127 if (XTAS_DISPLAY_NEW
== 0)
128 loffset
= XTAS_NOISE_LEFT_OFFSET_G
;
130 loffset
= XTAS_NOISE_LEFT_OFFSET_T
;
132 XtVaGetValues (hsb
, XmNvalue
, &value
, NULL
);
134 XtVaSetValues (label
, XmNleftOffset
, (loffset
- value
), NULL
);
139 /*---------------------------------------------------------------------------*/
141 /* FUNCTION : XtasNoiseScoreOkCallback */
143 /* IN ARGS : .parent : The widget on which the event occurs. */
145 /* .cbs : Toolkit informations. */
147 /* OUT ARGS : ( void ) */
149 /* OBJECT : The callback function for the button "OK" of Crosstalk */
150 /* informations window. */
152 /*---------------------------------------------------------------------------*/
153 void XtasNoiseScoreOkCallback (parent
, client_data
, call_data
)
155 XtPointer client_data
;
158 Widget spinbox
, scroll
;
159 int pos_coef_noise
, pos_coef_interval
, pos_coef_ctk
, pos_coef_activity
;
160 int pos_min_noise
, pos_min_interval
, pos_min_ctk
, pos_min_activity
;
161 XtasWindowStruct
*tas_winfos
= (XtasWindowStruct
*)client_data
;
163 Widget pan_widget
, label
;
165 WidgetList widget_list
;
167 #if XTAS_MOTIF_VERSION >= 20100
168 /**** Spin Boxes ****/
170 spinbox
= XtNameToWidget (parent
, "*XtasNoiseCoefBox");
171 XtVaGetValues (spinbox
, XmNposition
, &pos_coef_noise
, NULL
);
172 spinbox
= XtNameToWidget (parent
, "*XtasNoiseMinBox");
173 XtVaGetValues (spinbox
, XmNposition
, &pos_min_noise
, NULL
);
175 /* interval update */
176 spinbox
= XtNameToWidget (parent
, "*XtasIntervalCoefBox");
177 XtVaGetValues (spinbox
, XmNposition
, &pos_coef_interval
, NULL
);
178 spinbox
= XtNameToWidget (parent
, "*XtasIntervalMinBox");
179 XtVaGetValues (spinbox
, XmNposition
, &pos_min_interval
, NULL
);
181 /* crosstalk update */
182 spinbox
= XtNameToWidget (parent
, "*XtasCtkCoefBox");
183 XtVaGetValues (spinbox
, XmNposition
, &pos_coef_ctk
, NULL
);
184 spinbox
= XtNameToWidget (parent
, "*XtasCtkMinBox");
185 XtVaGetValues (spinbox
, XmNposition
, &pos_min_ctk
, NULL
);
187 /* activity update */
188 spinbox
= XtNameToWidget (parent
, "*XtasActivityCoefBox");
189 XtVaGetValues (spinbox
, XmNposition
, &pos_coef_activity
, NULL
);
190 spinbox
= XtNameToWidget (parent
, "*XtasActivityMinBox");
191 XtVaGetValues (spinbox
, XmNposition
, &pos_min_activity
, NULL
);
193 /**** Text Boxes **** -> il faut verifier la valeur */
195 text
= XmTextGetString (XtNameToWidget (parent
, "*XtasNoiseCoefBox"));
197 pos_coef_noise
= strtol( text
, &ptend
, 10);
198 if((*ptend
!= '\0')||(pos_coef_noise
< 0)||(pos_coef_noise
> 10)) {
200 XtManageChild (XtasNoiseScoresWidget
);
201 XalDrawMessage(XtasErrorWidget
, "Bad value for Noise Coef.\nMust be a positive integer between 0 and 10." );
206 text
= XmTextGetString (XtNameToWidget (parent
, "*XtasNoiseMinBox"));
208 pos_min_noise
= strtol( text
, &ptend
, 10);
209 if((*ptend
!= '\0')||(pos_min_noise
< 0)||(pos_coef_noise
> 10)) {
211 XtManageChild (XtasNoiseScoresWidget
);
212 XalDrawMessage(XtasErrorWidget
, "Bad value for Noise Min.\nMust be a positive integer between 0 and 10." );
218 /* interval update */
219 text
= XmTextGetString (XtNameToWidget (parent
, "*XtasIntervalCoefBox"));
221 pos_coef_interval
= strtol( text
, &ptend
, 10);
222 if((*ptend
!= '\0')||(pos_coef_interval
< 0)||(pos_coef_noise
> 10)) {
224 XtManageChild (XtasNoiseScoresWidget
);
225 XalDrawMessage(XtasErrorWidget
, "Bad value for Interval Coef.\nMust be a positive integer between 0 and 10." );
230 text
= XmTextGetString (XtNameToWidget (parent
, "*XtasIntervalMinBox"));
232 pos_min_interval
= strtol( text
, &ptend
, 10);
233 if((*ptend
!= '\0')||(pos_min_interval
< 0)||(pos_coef_noise
> 10)) {
235 XtManageChild (XtasNoiseScoresWidget
);
236 XalDrawMessage(XtasErrorWidget
, "Bad value for Interval Min.\nMust be a positive integer between 0 and 10." );
242 /* crosstalk update */
243 text
= XmTextGetString (XtNameToWidget (parent
, "*XtasCtkCoefBox"));
245 pos_coef_ctk
= strtol( text
, &ptend
, 10);
246 if((*ptend
!= '\0')||(pos_coef_ctk
< 0)||(pos_coef_noise
> 10)) {
248 XtManageChild (XtasNoiseScoresWidget
);
249 XalDrawMessage(XtasErrorWidget
, "Bad value for Crosstalk Coef.\nMust be a positive integer between 0 and 10." );
254 text
= XmTextGetString (XtNameToWidget (parent
, "*XtasCtkMinBox"));
256 pos_min_ctk
= strtol( text
, &ptend
, 10);
257 if((*ptend
!= '\0')||(pos_min_ctk
< 0)||(pos_coef_noise
> 10)) {
259 XtManageChild (XtasNoiseScoresWidget
);
260 XalDrawMessage(XtasErrorWidget
, "Bad value for Crosstalk Min.\nMust be a positive integer between 0 and 10." );
266 /* activity update */
267 text
= XmTextGetString (XtNameToWidget (parent
, "*XtasActivityCoefBox"));
269 pos_coef_activity
= strtol( text
, &ptend
, 10);
270 if((*ptend
!= '\0')||(pos_coef_activity
< 0)||(pos_coef_noise
> 10)) {
272 XtManageChild (XtasNoiseScoresWidget
);
273 XalDrawMessage(XtasErrorWidget
, "Bad value for Interval Coef.\nMust be a positive integer between 0 and 10." );
278 text
= XmTextGetString (XtNameToWidget (parent
, "*XtasActivityMinBox"));
280 pos_min_activity
= strtol( text
, &ptend
, 10);
281 if((*ptend
!= '\0')||(pos_min_activity
< 0)||(pos_coef_noise
> 10)) {
283 XtManageChild (XtasNoiseScoresWidget
);
284 XalDrawMessage(XtasErrorWidget
, "Bad value for Noise Min.\nMust be a positive integer. between 0 and 10" );
291 stb_ctk_set_coef_score (pos_coef_noise
, pos_coef_ctk
, pos_coef_interval
, pos_coef_activity
);
292 stb_ctk_set_min_score (pos_min_noise
, pos_min_ctk
, pos_min_interval
, pos_min_activity
);
293 stb_ctk_sort_stat(XtasNoiseTab
, STB_CTK_SORT_SCORE_TOTAL
);
294 if (XTAS_DISPLAY_NEW
== 0) {
295 scroll
= XtNameToWidget ((Widget
)tas_winfos
->wrkwidget
, "*XtasScrollNoiseWidget");
297 // pan_widget = XtNameToWidget ((Widget)tas_winfos->wrkwidget, "*XtasPanWindow");
298 // XtVaGetValues (pan_widget, XmNnumChildren, &nb, XmNchildren, &widget_list, NULL);
299 //// for (i=0 ; i<nb ; i++)
300 //// XtDestroyWidget (widget_list[i]);
301 // XtDestroyWidget (widget_list[0]);
302 // label = XtNameToWidget ((Widget)tas_winfos->wrkwidget, "*XtasTitlesInsideAlimMax");
303 // if (pan_widget && label)
304 // XtasCreateNoiseGraphicalScrollList (pan_widget, tas_winfos, label);
307 XtasNoiseTreatTopCallback (NULL
, (XtPointer
)scroll
, NULL
);
310 scroll
= XtNameToWidget ((Widget
)tas_winfos
->wrkwidget
, "*XtasTextualDisplay");
311 XtasUpdateNoiseTextualScrollList (scroll
);
316 /*---------------------------------------------------------------------------*/
318 /* FUNCTION : XtasNoiseScoreConfigCallback */
320 /* IN ARGS : .parent : The widget on which the event occurs. */
322 /* .cbs : Toolkit informations. */
324 /* OUT ARGS : ( void ) */
326 /* OBJECT : The callback function for the button "OK" of Crosstalk */
327 /* informations window. */
329 /*---------------------------------------------------------------------------*/
330 void XtasNoiseScoreConfigCallback (parent
, client_data
, call_data
)
332 XtPointer client_data
;
337 char *spinname
, *tname
;
338 Widget row
, frame_form
, form
, formsb
, label
, spinbox
, spin_TF
;
339 Atom WM_DELETE_WINDOW
;
343 if (!XtasNoiseScoresWidget
) {
345 XtSetArg ( args
[n
], XmNtitle
, XTAS_NAME
": Scores Configuration" ); n
++;
346 XtSetArg ( args
[n
], XmNdialogStyle
, XmDIALOG_APPLICATION_MODAL
); n
++;
347 XtSetArg( args
[n
], XmNwidth
, 255) ; n
++ ;
348 XtasNoiseScoresWidget
= XmCreatePromptDialog(XtasNoiseResultsWidget
, "XtasInfosBox",args
, n
) ;
349 HelpFather
= XtasNoiseScoresWidget
;
350 XtUnmanageChild(XmSelectionBoxGetChild(XtasNoiseScoresWidget
,XmDIALOG_TEXT
)) ;
351 XtUnmanageChild(XmSelectionBoxGetChild(XtasNoiseScoresWidget
,XmDIALOG_PROMPT_LABEL
)) ;
352 XtUnmanageChild(XmSelectionBoxGetChild(XtasNoiseScoresWidget
,XmDIALOG_HELP_BUTTON
)) ;
353 XtAddCallback( XtasNoiseScoresWidget
, XmNokCallback
, XtasNoiseScoreOkCallback
, (XtPointer
)client_data
) ;
354 XtAddCallback( XtasNoiseScoresWidget
, XmNcancelCallback
, XtasCancelCallback
, (XtPointer
)XtasNoiseScoresWidget
) ;
355 // XtAddCallback( XtasNoiseScoresWidget, XmNhelpCallback, XtasHelpCallback, (XtPointer)(XTAS_HELP_MAIN|)) ;
356 WM_DELETE_WINDOW
= XmInternAtom(XtDisplay(XtasNoiseResultsWidget
), "WM_DELETE_WINDOW", False
);
357 XmAddWMProtocolCallback(XtParent(XtasNoiseScoresWidget
), WM_DELETE_WINDOW
, XtasCancelCallback
, (XtPointer
)XtasNoiseScoresWidget
);
361 frame_form
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, XtasNoiseScoresWidget
, args
, n
) ;
364 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
365 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
366 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
367 form
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, frame_form
, args
, n
) ;
369 text
= XmStringCreateSimple( "MIN" ) ;
371 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
372 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
373 XtSetArg ( args
[n
], XmNrightOffset
, 3 ); n
++;
374 XtSetArg ( args
[n
], XmNwidth
, 54 ); n
++;
375 label
= XtCreateManagedWidget( "XtasMainTitles", xmLabelWidgetClass
, form
, args
, n
) ;
377 text
= XmStringCreateSimple( "COEF" ) ;
379 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
380 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
381 XtSetArg ( args
[n
], XmNrightWidget
, label
); n
++;
382 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
383 XtSetArg ( args
[n
], XmNwidth
, 54 ); n
++;
384 label
= XtCreateManagedWidget( "XtasMainTitles", xmLabelWidgetClass
, form
, args
, n
) ;
386 text
= XmStringCreateSimple( " " ) ;
388 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
389 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
390 XtSetArg ( args
[n
], XmNrightWidget
, label
); n
++;
391 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
392 label
= XtCreateManagedWidget( "XtasMainTitles", xmLabelWidgetClass
, form
, args
, n
) ;
395 row
= XtVaCreateManagedWidget( "XtasRow", xmRowColumnWidgetClass
, frame_form
, XmNtopAttachment
, XmATTACH_WIDGET
,
397 XmNleftAttachment
, XmATTACH_FORM
,
398 XmNrightAttachment
, XmATTACH_FORM
,
399 XmNbottomAttachment
,XmATTACH_FORM
,
400 XmNpacking
, XmPACK_COLUMN
,
402 XmNorientation
, XmVERTICAL
,
408 form
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, row
, args
, n
) ;
411 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
412 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_FORM
); n
++;
413 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
414 formsb
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, form
, args
, n
) ;
416 #if XTAS_MOTIF_VERSION >= 20100
418 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
419 XtSetArg ( args
[n
], XmNcolumns
, 2 ); n
++;
420 XtSetArg ( args
[n
], XmNspinBoxChildType
,XmNUMERIC
); n
++;
421 XtSetArg ( args
[n
], XmNminimumValue
, 0 ); n
++;
422 XtSetArg ( args
[n
], XmNmaximumValue
, 10 ); n
++;
423 XtSetArg ( args
[n
], XmNincrementValue
, 1 ); n
++;
424 XtSetArg ( args
[n
], XmNeditable
, FALSE
); n
++;
425 XtSetArg ( args
[n
], XmNpositionType
, XmPOSITION_VALUE
); n
++;
426 XtSetArg ( args
[n
], XmNposition
, stb_ctk_get_min_noise() ); n
++;
427 XtSetArg ( args
[n
], XmNwrap
, FALSE
); n
++;
428 spinbox
= XtCreateManagedWidget ("XtasNoiseMinBox", xmSimpleSpinBoxWidgetClass
, formsb
, args
, n
);
429 spinname
= XtName (spinbox
);
430 tname
= XtMalloc ((unsigned) strlen (spinname
) + 4);
431 sprintf (tname
, "%s_TF", spinname
);
432 spin_TF
= XtNameToWidget (spinbox
, tname
);
433 XtVaSetValues (spin_TF
, XmNcursorPositionVisible
, False
, NULL
);
434 XtFree (tname
); tname
= NULL
;
437 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
438 XtSetArg ( args
[n
], XmNwidth
, 55 ); n
++;
439 XtSetArg ( args
[n
], XmNeditable
, True
); n
++;
440 XtSetArg ( args
[n
], XmNcursorPositionVisible
, True
); n
++;
441 spinbox
= XtCreateManagedWidget ("XtasNoiseMinBox", xmTextWidgetClass
, formsb
, args
, n
);
442 sprintf (buf
, "%d", stb_ctk_get_min_noise());
443 XmTextSetString (spinbox
, buf
);
447 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
448 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_FORM
); n
++;
449 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
450 XtSetArg ( args
[n
], XmNrightWidget
, formsb
); n
++;
451 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
452 formsb
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, form
, args
, n
) ;
455 #if XTAS_MOTIF_VERSION >= 20100
457 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
458 XtSetArg ( args
[n
], XmNcolumns
, 2 ); n
++;
459 XtSetArg ( args
[n
], XmNspinBoxChildType
,XmNUMERIC
); n
++;
460 XtSetArg ( args
[n
], XmNminimumValue
, 0 ); n
++;
461 XtSetArg ( args
[n
], XmNmaximumValue
, 10 ); n
++;
462 XtSetArg ( args
[n
], XmNincrementValue
, 1 ); n
++;
463 XtSetArg ( args
[n
], XmNeditable
, FALSE
); n
++;
464 XtSetArg ( args
[n
], XmNpositionType
, XmPOSITION_VALUE
); n
++;
465 XtSetArg ( args
[n
], XmNposition
, stb_ctk_get_coef_noise() ); n
++;
466 XtSetArg ( args
[n
], XmNwrap
, FALSE
); n
++;
467 spinbox
= XtCreateManagedWidget ("XtasNoiseCoefBox", xmSimpleSpinBoxWidgetClass
, formsb
, args
, n
);
468 spinname
= XtName (spinbox
);
469 tname
= XtMalloc ((unsigned) strlen (spinname
) + 4);
470 sprintf (tname
, "%s_TF", spinname
);
471 spin_TF
= XtNameToWidget (spinbox
, tname
);
472 XtVaSetValues (spin_TF
, XmNcursorPositionVisible
, False
, NULL
);
473 XtFree (tname
); tname
= NULL
;
476 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
477 XtSetArg ( args
[n
], XmNwidth
, 55 ); n
++;
478 XtSetArg ( args
[n
], XmNeditable
, True
); n
++;
479 XtSetArg ( args
[n
], XmNcursorPositionVisible
, True
); n
++;
480 spinbox
= XtCreateManagedWidget ("XtasNoiseCoefBox", xmTextWidgetClass
, formsb
, args
, n
);
481 sprintf (buf
, "%d", stb_ctk_get_coef_noise());
482 XmTextSetString (spinbox
, buf
);
485 text
= XmStringCreateSimple( "Noise" ) ;
487 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
488 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
489 XtSetArg ( args
[n
], XmNtopWidget
, formsb
); n
++;
490 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
491 XtSetArg ( args
[n
], XmNbottomWidget
, formsb
); n
++;
492 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
493 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
494 XtSetArg ( args
[n
], XmNrightWidget
, formsb
); n
++;
495 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
496 label
= XtCreateManagedWidget( "XtasMainTitles", xmLabelWidgetClass
, form
, args
, n
) ;
501 form
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, row
, args
, n
) ;
504 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
505 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_FORM
); n
++;
506 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
507 formsb
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, form
, args
, n
) ;
509 #if XTAS_MOTIF_VERSION >= 20100
511 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
512 XtSetArg ( args
[n
], XmNcolumns
, 2 ); n
++;
513 XtSetArg ( args
[n
], XmNspinBoxChildType
,XmNUMERIC
); n
++;
514 XtSetArg ( args
[n
], XmNminimumValue
, 0 ); n
++;
515 XtSetArg ( args
[n
], XmNmaximumValue
, 10 ); n
++;
516 XtSetArg ( args
[n
], XmNincrementValue
, 1 ); n
++;
517 XtSetArg ( args
[n
], XmNeditable
, False
); n
++;
518 XtSetArg ( args
[n
], XmNpositionType
, XmPOSITION_VALUE
); n
++;
519 XtSetArg ( args
[n
], XmNposition
, stb_ctk_get_min_interval() ); n
++;
520 XtSetArg ( args
[n
], XmNwrap
, False
); n
++;
521 spinbox
= XtCreateManagedWidget ("XtasIntervalMinBox", xmSimpleSpinBoxWidgetClass
, formsb
, args
, n
);
522 spinname
= XtName (spinbox
);
523 tname
= XtMalloc ((unsigned) strlen (spinname
) + 4);
524 sprintf (tname
, "%s_TF", spinname
);
525 spin_TF
= XtNameToWidget (spinbox
, tname
);
526 XtVaSetValues (spin_TF
, XmNcursorPositionVisible
, False
, NULL
);
530 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
531 XtSetArg ( args
[n
], XmNwidth
, 55 ); n
++;
532 XtSetArg ( args
[n
], XmNeditable
, True
); n
++;
533 XtSetArg ( args
[n
], XmNcursorPositionVisible
, True
); n
++;
534 spinbox
= XtCreateManagedWidget ("XtasIntervalMinBox", xmTextWidgetClass
, formsb
, args
, n
);
535 sprintf (buf
, "%d", stb_ctk_get_min_interval());
536 XmTextSetString (spinbox
, buf
);
540 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
541 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_FORM
); n
++;
542 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
543 XtSetArg ( args
[n
], XmNrightWidget
, formsb
); n
++;
544 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
545 formsb
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, form
, args
, n
) ;
547 #if XTAS_MOTIF_VERSION >= 20100
549 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
550 XtSetArg ( args
[n
], XmNcolumns
, 2 ); n
++;
551 XtSetArg ( args
[n
], XmNspinBoxChildType
,XmNUMERIC
); n
++;
552 XtSetArg ( args
[n
], XmNminimumValue
, 0 ); n
++;
553 XtSetArg ( args
[n
], XmNmaximumValue
, 10 ); n
++;
554 XtSetArg ( args
[n
], XmNincrementValue
, 1 ); n
++;
555 XtSetArg ( args
[n
], XmNeditable
, FALSE
); n
++;
556 XtSetArg ( args
[n
], XmNpositionType
, XmPOSITION_VALUE
); n
++;
557 XtSetArg ( args
[n
], XmNposition
, stb_ctk_get_coef_interval() ); n
++;
558 XtSetArg ( args
[n
], XmNwrap
, FALSE
); n
++;
559 spinbox
= XtCreateManagedWidget ("XtasIntervalCoefBox", xmSimpleSpinBoxWidgetClass
, formsb
, args
, n
);
560 spinname
= XtName (spinbox
);
561 tname
= XtMalloc ((unsigned) strlen (spinname
) + 4);
562 sprintf (tname
, "%s_TF", spinname
);
563 spin_TF
= XtNameToWidget (spinbox
, tname
);
564 XtVaSetValues (spin_TF
, XmNcursorPositionVisible
, False
, NULL
);
565 XtFree (tname
); tname
= NULL
;
568 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
569 XtSetArg ( args
[n
], XmNwidth
, 55 ); n
++;
570 XtSetArg ( args
[n
], XmNeditable
, True
); n
++;
571 XtSetArg ( args
[n
], XmNcursorPositionVisible
, True
); n
++;
572 spinbox
= XtCreateManagedWidget ("XtasIntervalCoefBox", xmTextWidgetClass
, formsb
, args
, n
);
573 sprintf (buf
, "%d", stb_ctk_get_coef_interval());
574 XmTextSetString (spinbox
, buf
);
577 text
= XmStringCreateSimple( "Interval" ) ;
579 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
580 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
581 XtSetArg ( args
[n
], XmNtopWidget
, formsb
); n
++;
582 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
583 XtSetArg ( args
[n
], XmNbottomWidget
, formsb
); n
++;
584 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
585 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
586 XtSetArg ( args
[n
], XmNrightWidget
, formsb
); n
++;
587 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
588 label
= XtCreateManagedWidget( "XtasMainTitles", xmLabelWidgetClass
, form
, args
, n
) ;
590 /* Crosstalk Score */
592 form
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, row
, args
, n
) ;
595 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
596 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_FORM
); n
++;
597 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
598 formsb
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, form
, args
, n
) ;
600 #if XTAS_MOTIF_VERSION >= 20100
602 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
603 XtSetArg ( args
[n
], XmNcolumns
, 2 ); n
++;
604 XtSetArg ( args
[n
], XmNspinBoxChildType
,XmNUMERIC
); n
++;
605 XtSetArg ( args
[n
], XmNminimumValue
, 0 ); n
++;
606 XtSetArg ( args
[n
], XmNmaximumValue
, 10 ); n
++;
607 XtSetArg ( args
[n
], XmNincrementValue
, 1 ); n
++;
608 XtSetArg ( args
[n
], XmNeditable
, FALSE
); n
++;
609 XtSetArg ( args
[n
], XmNpositionType
, XmPOSITION_VALUE
); n
++;
610 XtSetArg ( args
[n
], XmNposition
, stb_ctk_get_min_ctk() ); n
++;
611 XtSetArg ( args
[n
], XmNwrap
, FALSE
); n
++;
612 spinbox
= XtCreateManagedWidget ("XtasCtkMinBox", xmSimpleSpinBoxWidgetClass
, formsb
, args
, n
);
613 spinname
= XtName (spinbox
);
614 tname
= XtMalloc ((unsigned) strlen (spinname
) + 4);
615 sprintf (tname
, "%s_TF", spinname
);
616 spin_TF
= XtNameToWidget (spinbox
, tname
);
617 XtVaSetValues (spin_TF
, XmNcursorPositionVisible
, False
, NULL
);
621 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
622 XtSetArg ( args
[n
], XmNwidth
, 55 ); n
++;
623 XtSetArg ( args
[n
], XmNeditable
, True
); n
++;
624 XtSetArg ( args
[n
], XmNcursorPositionVisible
, True
); n
++;
625 spinbox
= XtCreateManagedWidget ("XtasCtkMinBox", xmTextWidgetClass
, formsb
, args
, n
);
626 sprintf (buf
, "%d", stb_ctk_get_min_ctk());
627 XmTextSetString (spinbox
, buf
);
631 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
632 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_FORM
); n
++;
633 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
634 XtSetArg ( args
[n
], XmNrightWidget
, formsb
); n
++;
635 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
636 formsb
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, form
, args
, n
) ;
638 #if XTAS_MOTIF_VERSION >= 20100
640 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
641 XtSetArg ( args
[n
], XmNcolumns
, 2 ); n
++;
642 XtSetArg ( args
[n
], XmNspinBoxChildType
,XmNUMERIC
); n
++;
643 XtSetArg ( args
[n
], XmNminimumValue
, 0 ); n
++;
644 XtSetArg ( args
[n
], XmNmaximumValue
, 10 ); n
++;
645 XtSetArg ( args
[n
], XmNincrementValue
, 1 ); n
++;
646 XtSetArg ( args
[n
], XmNeditable
, FALSE
); n
++;
647 XtSetArg ( args
[n
], XmNpositionType
, XmPOSITION_VALUE
); n
++;
648 XtSetArg ( args
[n
], XmNposition
, stb_ctk_get_coef_ctk() ); n
++;
649 XtSetArg ( args
[n
], XmNwrap
, FALSE
); n
++;
650 spinbox
= XtCreateManagedWidget ("XtasCtkCoefBox", xmSimpleSpinBoxWidgetClass
, formsb
, args
, n
);
651 spinname
= XtName (spinbox
);
652 tname
= XtMalloc ((unsigned) strlen (spinname
) + 4);
653 sprintf (tname
, "%s_TF", spinname
);
654 spin_TF
= XtNameToWidget (spinbox
, tname
);
655 XtVaSetValues (spin_TF
, XmNcursorPositionVisible
, False
, NULL
);
656 XtFree (tname
); tname
= NULL
;
659 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
660 XtSetArg ( args
[n
], XmNwidth
, 55 ); n
++;
661 XtSetArg ( args
[n
], XmNeditable
, True
); n
++;
662 XtSetArg ( args
[n
], XmNcursorPositionVisible
, True
); n
++;
663 spinbox
= XtCreateManagedWidget ("XtasCtkCoefBox", xmTextWidgetClass
, formsb
, args
, n
);
664 sprintf (buf
, "%d", stb_ctk_get_coef_ctk());
665 XmTextSetString (spinbox
, buf
);
668 text
= XmStringCreateSimple( "Crosstalk" ) ;
670 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
671 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
672 XtSetArg ( args
[n
], XmNtopWidget
, formsb
); n
++;
673 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
674 XtSetArg ( args
[n
], XmNbottomWidget
, formsb
); n
++;
675 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
676 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
677 XtSetArg ( args
[n
], XmNrightWidget
, formsb
); n
++;
678 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
679 label
= XtCreateManagedWidget( "XtasMainTitles", xmLabelWidgetClass
, form
, args
, n
) ;
683 form
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, row
, args
, n
) ;
686 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
687 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_FORM
); n
++;
688 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
689 formsb
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, form
, args
, n
) ;
691 #if XTAS_MOTIF_VERSION >= 20100
693 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
694 XtSetArg ( args
[n
], XmNcolumns
, 2 ); n
++;
695 XtSetArg ( args
[n
], XmNspinBoxChildType
,XmNUMERIC
); n
++;
696 XtSetArg ( args
[n
], XmNminimumValue
, 0 ); n
++;
697 XtSetArg ( args
[n
], XmNmaximumValue
, 10 ); n
++;
698 XtSetArg ( args
[n
], XmNincrementValue
, 1 ); n
++;
699 XtSetArg ( args
[n
], XmNeditable
, FALSE
); n
++;
700 XtSetArg ( args
[n
], XmNpositionType
, XmPOSITION_VALUE
); n
++;
701 XtSetArg ( args
[n
], XmNposition
, stb_ctk_get_min_activity() ); n
++;
702 XtSetArg ( args
[n
], XmNwrap
, FALSE
); n
++;
703 spinbox
= XtCreateManagedWidget ("XtasActivityMinBox", xmSimpleSpinBoxWidgetClass
, formsb
, args
, n
);
704 spinname
= XtName (spinbox
);
705 tname
= XtMalloc ((unsigned) strlen (spinname
) + 4);
706 sprintf (tname
, "%s_TF", spinname
);
707 spin_TF
= XtNameToWidget (spinbox
, tname
);
708 XtVaSetValues (spin_TF
, XmNcursorPositionVisible
, False
, NULL
);
712 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
713 XtSetArg ( args
[n
], XmNwidth
, 55 ); n
++;
714 XtSetArg ( args
[n
], XmNeditable
, True
); n
++;
715 XtSetArg ( args
[n
], XmNcursorPositionVisible
, True
); n
++;
716 spinbox
= XtCreateManagedWidget ("XtasActivityMinBox", xmTextWidgetClass
, formsb
, args
, n
);
717 sprintf (buf
, "%d", stb_ctk_get_min_activity());
718 XmTextSetString (spinbox
, buf
);
722 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
723 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_FORM
); n
++;
724 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
725 XtSetArg ( args
[n
], XmNrightWidget
, formsb
); n
++;
726 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
727 formsb
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, form
, args
, n
) ;
729 #if XTAS_MOTIF_VERSION >= 20100
731 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
732 XtSetArg ( args
[n
], XmNcolumns
, 2 ); n
++;
733 XtSetArg ( args
[n
], XmNspinBoxChildType
,XmNUMERIC
); n
++;
734 XtSetArg ( args
[n
], XmNminimumValue
, 0 ); n
++;
735 XtSetArg ( args
[n
], XmNmaximumValue
, 10 ); n
++;
736 XtSetArg ( args
[n
], XmNincrementValue
, 1 ); n
++;
737 XtSetArg ( args
[n
], XmNeditable
, FALSE
); n
++;
738 XtSetArg ( args
[n
], XmNpositionType
, XmPOSITION_VALUE
); n
++;
739 XtSetArg ( args
[n
], XmNposition
, stb_ctk_get_coef_activity() ); n
++;
740 XtSetArg ( args
[n
], XmNwrap
, FALSE
); n
++;
741 spinbox
= XtCreateManagedWidget ("XtasActivityCoefBox", xmSimpleSpinBoxWidgetClass
, formsb
, args
, n
);
742 spinname
= XtName (spinbox
);
743 tname
= XtMalloc ((unsigned) strlen (spinname
) + 4);
744 sprintf (tname
, "%s_TF", spinname
);
745 spin_TF
= XtNameToWidget (spinbox
, tname
);
746 XtVaSetValues (spin_TF
, XmNcursorPositionVisible
, False
, NULL
);
747 XtFree (tname
); tname
= NULL
;
750 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
751 XtSetArg ( args
[n
], XmNwidth
, 55 ); n
++;
752 XtSetArg ( args
[n
], XmNeditable
, True
); n
++;
753 XtSetArg ( args
[n
], XmNcursorPositionVisible
, True
); n
++;
754 spinbox
= XtCreateManagedWidget ("XtasActivityCoefBox", xmTextWidgetClass
, formsb
, args
, n
);
755 sprintf (buf
, "%d", stb_ctk_get_coef_activity());
756 XmTextSetString (spinbox
, buf
);
759 text
= XmStringCreateSimple( "Activity" ) ;
761 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
762 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
763 XtSetArg ( args
[n
], XmNtopWidget
, formsb
); n
++;
764 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
765 XtSetArg ( args
[n
], XmNbottomWidget
, formsb
); n
++;
766 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
767 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
768 XtSetArg ( args
[n
], XmNrightWidget
, formsb
); n
++;
769 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
770 label
= XtCreateManagedWidget( "XtasMainTitles", xmLabelWidgetClass
, form
, args
, n
) ;
775 XtManageChild (XtasNoiseScoresWidget
);
779 /*---------------------------------------------------------------------------*/
781 /* FUNCTION : XtasCtkInfoOkCallback */
783 /* IN ARGS : .parent : The widget on which the event occurs. */
785 /* .cbs : Toolkit informations. */
787 /* OUT ARGS : ( void ) */
789 /* OBJECT : The callback function for the button "OK" of Crosstalk */
790 /* informations window. */
792 /*---------------------------------------------------------------------------*/
793 void XtasCtkInfoOkCallback(parent
, client_data
, call_data
)
795 XtPointer client_data
;
796 XtPointer call_data
;
798 XtDestroyWidget( (Widget
)client_data
) ;
801 /*---------------------------------------------------------------------------*/
803 /* FUNCTION : XtasCtkInfoOkCallback */
805 /* IN ARGS : .parent : The widget on which the event occurs. */
807 /* .cbs : Toolkit informations. */
809 /* OUT ARGS : ( void ) */
811 /* OBJECT : The callback function for the button "OK" of Crosstalk */
812 /* informations window. */
814 /*---------------------------------------------------------------------------*/
815 int XtasSortAgrList (stb_ctk_detail_agr_list
**p1
, stb_ctk_detail_agr_list
**p2
)
817 if ((*p1
)->CC
> (*p2
)->CC
) return -1;
818 if ((*p1
)->CC
< (*p2
)->CC
) return +1;
822 void XtasFillAgressorsList(agr_list
, nb_agr
, list_widget
, length1
, length2
)
823 stb_ctk_detail_agr_list
*agr_list
;
829 stb_ctk_detail_agr_list
*p
;
837 stb_ctk_detail_agr_list
**tab
;
839 XmListDeleteAllItems(list_widget
) ;
842 if(agr_list
== NULL
) {
843 text
= XmStringCreateSimple ("no aggressor") ;
844 XmListAddItemUnselected (list_widget
, text
, c
) ;
845 XmStringFree (text
) ;
848 tab
= (stb_ctk_detail_agr_list
**)mbkalloc(sizeof(stb_ctk_detail_agr_list
*)*nb_agr
);
850 for ( c
=0, p
=agr_list
; p
; p
=p
->NEXT
, c
++)
853 qsort (tab
, nb_agr
, sizeof(stb_ctk_detail_agr_list
*), (int (*)(const void *, const void*))XtasSortAgrList
);
855 for ( c
= 0 ; c
< nb_agr
; c
++) {
857 name
= XtasPlaceString(tab
[c
]->TTVAGR
->NAME
,length1
);
859 name
= XtasPlaceString("",length1
);
861 netname
= XtasPlaceString(tab
[c
]->NETNAME
,length2
);
863 if( tab
[c
]->ACT_WORST
)
866 if( tab
[c
]->ACT_MUTEX_WORST
)
872 if( tab
[c
]->ACT_BEST
)
875 if( tab
[c
]->ACT_MUTEX_BEST
)
881 if( tab
[c
]->NOISE_RISE_PEAK
)
884 if( tab
[c
]->NOISE_RISE_EXCLUDED
)
890 if( tab
[c
]->NOISE_FALL_PEAK
)
893 if( tab
[c
]->NOISE_FALL_EXCLUDED
)
899 sprintf(textline
,"%s %s %c%c%c%c %.3ffF",name
, netname
, b
, w
, r
, f
, ((tab
[c
]->CC
)*1000.0));
903 text
= XmStringCreateSimple (textline
) ;
904 XmListAddItemUnselected (list_widget
, text
, c
+1) ;
905 XmStringFree (text
) ;
912 /*---------------------------------------------------------------------------*/
914 /* FUNCTION : XtasCtkInfoDetailCallback */
916 /* IN ARGS : .parent : The parent widget id. */
917 /* .path_detail : The path detail description. */
919 /* OUT ARGS : ( void ) */
921 /* OBJECT : Creation de la liste des erreurs de stabilite */
923 /*---------------------------------------------------------------------------*/
924 void XtasCtkInfoDetailCallback(parent
, client_data
, call_data
)
926 XtPointer client_data
;
929 XmListCallbackStruct
*cbs
= (XmListCallbackStruct
*)call_data
;
930 Widget widget
= (Widget
)client_data
;
934 XalSetCursor( widget
, WAIT
);
935 XalForceUpdate( widget
);
937 XmStringGetLtoR( cbs
->item
, XmSTRING_DEFAULT_CHARSET
, &item
);
938 s
= strchr (item
, ' ');
940 if (strlen(item
) != 0)
941 XtasSignalsDetail( widget
, item
);
943 XalDrawMessage (XtasErrorWidget
, "Cannot display information on signal: no signame.");
944 XalSetCursor( widget
, NORMAL
);
949 /*---------------------------------------------------------------------------*/
951 /* FUNCTION : XtasCtkInfoColumnsTitleMoveWithHSBCallback */
953 /* IN ARGS : .parent : The parent widget. */
955 /* .call_data : Toolkit informations. */
957 /* OUT ARGS : ( void ) */
961 /*---------------------------------------------------------------------------*/
962 void XtasCtkInfoColumnsTitleMoveWithHSBCallback( hsb
, label
, call_data
)
970 loffset
= XTAS_CTK_OFFSET
;
972 XtVaGetValues (hsb
, XmNvalue
, &value
, NULL
);
974 XtVaSetValues ((Widget
)label
, XmNleftOffset
, (loffset
- value
), NULL
);
978 int XtasAlphaStrCmp (char **s1
, char **s2
)
980 return strcmp(*s1
, *s2
);
983 int XtasReverseAlphaStrCmp (char **s1
, char **s2
)
985 return strcmp(*s2
, *s1
);
988 int XtasAscendCapaValueCmp (char **s1
, char **s2
)
993 c
= strrchr (*s1
, ' ');
994 f1
= strtod (c
, &end
);
995 c
= strrchr (*s2
, ' ');
996 f2
= strtod (c
, &end
);
998 if (f1
<f2
) return -1;
999 if (f1
>f2
) return +1;
1002 int XtasDescendCapaValueCmp (char **s1
, char **s2
)
1007 c
= strrchr (*s1
, ' ');
1008 f1
= strtod (c
, &end
);
1009 c
= strrchr (*s2
, ' ');
1010 f2
= strtod (c
, &end
);
1012 if (f1
>f2
) return -1;
1013 if (f1
<f2
) return +1;
1017 void XtasCtkInfoSortByNameCallback (parent
, list_w
, call_data
)
1020 XtPointer call_data
;
1022 char **tabagressors
;
1026 XmStringTable itemTable
;
1027 XmString motif_string
;
1028 static int click
= -1;
1031 XtVaGetValues (list_w
, XmNitems
, &itemTable
, XmNitemCount
, &c
, NULL
);
1034 tabagressors
= (char**)mbkalloc (sizeof(char *)*c
);
1036 for (i
=0 ; i
<c
; i
++) {
1037 XmStringGetLtoR( itemTable
[i
], XmSTRING_DEFAULT_CHARSET
, &tabagressors
[i
] );
1041 qsort( tabagressors
, c
, sizeof(char*), (int (*)(const void*, const void*))XtasAlphaStrCmp
);
1042 // XtVaSetValues (XtNameToWidget (XtParent(parent), "*XtasArrowSigButton"), XmNarrowDirection, XmARROW_DOWN, NULL);
1045 qsort( tabagressors
, c
, sizeof(char*), (int (*)(const void*, const void*))XtasReverseAlphaStrCmp
);
1046 // XtVaSetValues (XtNameToWidget (XtParent(parent), "*XtasArrowSigButton"), XmNarrowDirection, XmARROW_UP, NULL);
1049 XmListDeleteAllItems (list_w
);
1050 for (i
=0; i
<c
; i
++) {
1051 motif_string
= XmStringCreateSimple (tabagressors
[i
]) ;
1052 XmListAddItemUnselected (list_w
, motif_string
, i
+1) ;
1053 XmStringFree ( motif_string
) ;
1056 mbkfree (tabagressors
);
1059 void XtasCtkInfoSortByCapaValueCallback (parent
, list_w
, call_data
)
1062 XtPointer call_data
;
1064 char **tabagressors
;
1068 XmStringTable itemTable
;
1069 XmString motif_string
;
1070 static int click
= -1;
1072 XtVaGetValues (list_w
, XmNitems
, &itemTable
, XmNitemCount
, &c
, NULL
);
1076 tabagressors
= (char**)mbkalloc (sizeof(char *)*c
);
1078 for (i
=0 ; i
<c
; i
++) {
1079 XmStringGetLtoR( itemTable
[i
], XmSTRING_DEFAULT_CHARSET
, &tabagressors
[i
] );
1083 qsort( tabagressors
, c
, sizeof(char*), (int (*)(const void*, const void*))XtasDescendCapaValueCmp
);
1085 qsort( tabagressors
, c
, sizeof(char*), (int (*)(const void*, const void*))XtasAscendCapaValueCmp
);
1087 XmListDeleteAllItems (list_w
);
1088 for (i
=0; i
<c
; i
++) {
1089 motif_string
= XmStringCreateSimple (tabagressors
[i
]) ;
1090 XmListAddItemUnselected (list_w
, motif_string
, i
+1) ;
1091 XmStringFree ( motif_string
) ;
1094 mbkfree (tabagressors
);
1098 /*---------------------------------------------------------------------------*/
1100 /* FUNCTION : XtasDisplayCtkInfo */
1102 /* IN ARGS : .parent : The parent widget. */
1103 /* .client_data : */
1104 /* .call_data : Toolkit informations. */
1106 /* OUT ARGS : ( void ) */
1108 /* OBJECT : The drawing function for crosstalk informations */
1110 /*---------------------------------------------------------------------------*/
1111 void XtasDisplayCtkInfo( parent
, event
, errorWidget
)
1113 ttvevent_list
*event
;
1114 XalMessageWidgetStruct
*errorWidget
;
1119 Widget form
, sub_form
, sub_sub_form
, frame
, frame2
, label_widget
;
1120 Widget ctkInfoWidget
, tmp_widget
, row_widget
;
1121 Widget paned_window
, form1_window
, list_widget
;
1122 stb_ctk_detail
*detail
= NULL
;
1124 int lengthName
, lengthNetname
, length
;
1125 stb_ctk_detail_agr_list
*p
;
1126 Pixmap r_pixmap
, f_pixmap
, v_pixmap
;
1127 Pixel tas_state_color
,tas_backg_color
;
1128 char text_title
[128];
1129 Widget SIG_label_widget
,/* ARROWSIG_label_widget, */CAPA_label_widget
, scrollW
;
1131 ttvevent_list
*stbevent
;
1132 ttvfig_list
*ttvfig
;
1136 if(sigsetjmp( XtasMyEnv
, 1 ) == 0) {
1138 if( ( event
->ROOT
->TYPE
& TTV_SIG_CO
) == TTV_SIG_CO
) {
1139 ttvfig
= XtasMainParam
->stbfig
->FIG
;
1140 ttv_expfigsig( ttvfig
, event
->ROOT
, ttvfig
->INFO
->LEVEL
, ttvfig
->INFO
->LEVEL
, TTV_STS_T
, TTV_FILE_DTX
);
1141 for( line
= event
->INLINE
; line
; line
= line
->NEXT
) {
1142 if ( ( line
->TYPE
& TTV_LINE_RC
) == TTV_LINE_RC
)
1146 stbevent
= event
->INLINE
->NODE
;
1148 detail
= stb_ctk_get_detail(XtasMainParam
->stbfig
, stbevent
);
1155 XtasGetWarningMess ();
1158 if(detail
!= NULL
) {
1160 sprintf (text_title
, XTAS_NAME
": Crosstalk Infos - %s", XtasMainParam
->ttvfig
->INFO
->FIGNAME
);
1161 // XtSetArg( args[n], XmNtitle, XTAS_NAME": Crosstalk Infos" ); n++;
1162 XtSetArg( args
[n
], XmNtitle
, text_title
); n
++;
1163 XtSetArg( args
[n
], XmNminWidth
, 450 ); n
++;
1164 XtSetArg( args
[n
], XmNminHeight
, 410 ); n
++;
1165 XtSetArg( args
[n
], XmNmaxHeight
, 410 ); n
++;
1166 XtSetArg( args
[n
], XmNdialogStyle
, XmDIALOG_APPLICATION_MODAL
); n
++;
1167 ctkInfoWidget
= XmCreatePromptDialog( parent
, "XtasInfosBox", args
, n
);
1168 HelpFather
= ctkInfoWidget
;
1169 XtUnmanageChild( XmSelectionBoxGetChild( ctkInfoWidget
, XmDIALOG_TEXT
));
1170 XtUnmanageChild( XmSelectionBoxGetChild( ctkInfoWidget
, XmDIALOG_PROMPT_LABEL
));
1171 XtUnmanageChild( XmSelectionBoxGetChild( ctkInfoWidget
, XmDIALOG_CANCEL_BUTTON
));
1172 XtAddCallback( ctkInfoWidget
, XmNokCallback
, XtasCtkInfoOkCallback
, (XtPointer
)ctkInfoWidget
);
1173 XtAddCallback( ctkInfoWidget
, XmNhelpCallback
, XtasHelpCallback
, (XtPointer
)(XTAS_HELP_MAIN
|XTAS_SRC_CTKINFO
)) ;
1175 form
= XtCreateManagedWidget( "XtasDeskMainForm", xmFormWidgetClass
, ctkInfoWidget
, args
, n
);
1178 /*------------- frame Noise -------------*/
1180 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1181 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_FORM
); n
++;
1182 frame2
= XtCreateManagedWidget( "XtasFrame", xmFrameWidgetClass
, form
, args
, n
);
1185 #if XTAS_MOTIF_VERSION >= 20000
1186 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1188 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1190 sub_form
= XtCreateManagedWidget ("XtasSubForm", xmFormWidgetClass
, frame2
, args
, n
);
1193 text
= XmStringCreateSimple("Noise");
1195 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
1196 #if XTAS_MOTIF_VERSION >= 20000
1197 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_TITLE_CHILD
); n
++;
1199 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_TITLE_CHILD
); n
++;
1201 label_widget
= XtCreateManagedWidget( "XtasLabel", xmLabelWidgetClass
, frame2
, args
, n
);
1205 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
1206 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1207 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1208 sub_sub_form
= XtCreateManagedWidget ("XtasSubSubForm", xmFormWidgetClass
, sub_form
, args
, n
);
1212 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
1213 XtSetArg( args
[n
], XmNcursorPositionVisible
,False
); n
++;
1214 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
1215 XtSetArg( args
[n
], XmNcolumns
, 8 ); n
++;
1216 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1217 XtSetArg( args
[n
], XmNrightOffset
, 95 ); n
++;
1218 tmp_widget
= XtCreateManagedWidget( "XtasUserField", xmTextWidgetClass
, sub_sub_form
, args
, n
);
1219 sprintf(buf
,"%.3f V",(detail
->NOISE_VTH
));
1220 XmTextSetString( tmp_widget
, buf
);
1223 text
= XmStringCreateSimple("Vth:");
1225 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1226 XtSetArg ( args
[n
], XmNtopWidget
, tmp_widget
); n
++;
1227 XtSetArg ( args
[n
], XmNbottomAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1228 XtSetArg ( args
[n
], XmNbottomWidget
, tmp_widget
); n
++;
1229 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1230 XtSetArg ( args
[n
], XmNrightWidget
, tmp_widget
); n
++;
1231 XtSetArg ( args
[n
], XmNrightOffset
, 10 ); n
++;
1232 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
1233 label_widget
= XtCreateManagedWidget( "XtasLabel", xmLabelWidgetClass
, sub_sub_form
, args
, n
);
1238 row_widget
= XtVaCreateManagedWidget( "XtasRow", xmRowColumnWidgetClass
, sub_form
,
1239 XmNtopAttachment
, XmATTACH_WIDGET
,
1240 XmNtopWidget
, sub_sub_form
,
1242 XmNbottomAttachment
,XmATTACH_FORM
,
1243 XmNrightAttachment
, XmATTACH_FORM
,
1244 XmNleftAttachment
, XmATTACH_FORM
,
1245 XmNpacking
, XmPACK_COLUMN
,
1246 XmNorientation
, XmHORIZONTAL
,
1247 XmNentryAlignment
, XmALIGNMENT_CENTER
,
1254 sub_sub_form
= XtCreateManagedWidget( "XtasForm", xmFormWidgetClass
, row_widget
, args
, n
);
1257 text
= XmStringCreateSimple("Rise Peak");
1258 XtSetArg( args
[n
], XmNlabelString
, text
); n
++;
1259 XtSetArg( args
[n
], XmNalignment
, XmALIGNMENT_CENTER
); n
++;
1260 label_widget
= XtCreateManagedWidget( "XtasLabel", xmLabelWidgetClass
, row_widget
, args
, n
);
1264 text
= XmStringCreateSimple("Fall Peak");
1265 XtSetArg( args
[n
], XmNlabelString
, text
); n
++;
1266 XtSetArg( args
[n
], XmNalignment
, XmALIGNMENT_CENTER
); n
++;
1267 label_widget
= XtCreateManagedWidget( "XtasLabel", xmLabelWidgetClass
, row_widget
, args
, n
);
1271 text
= XmStringCreateSimple("Model");
1272 XtSetArg( args
[n
], XmNlabelString
, text
); n
++;
1273 label_widget
= XtCreateManagedWidget( "XtasLabel", xmLabelWidgetClass
, row_widget
, args
, n
);
1277 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
1278 XtSetArg( args
[n
], XmNcursorPositionVisible
,False
); n
++;
1279 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
1280 XtSetArg( args
[n
], XmNcolumns
, XTAS_NOISE_LABEL_MODEL_WIDTH_G
/ 7); n
++;
1281 tmp_widget
= XtCreateManagedWidget( "XtasUserField", xmTextWidgetClass
, row_widget
, args
, n
);
1282 XmTextSetString( tmp_widget
, detail
->MODEL_OVR
);
1285 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
1286 XtSetArg( args
[n
], XmNcursorPositionVisible
,False
); n
++;
1287 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
1288 XtSetArg( args
[n
], XmNcolumns
, XTAS_NOISE_LABEL_MODEL_WIDTH_G
/ 7); n
++;
1289 tmp_widget
= XtCreateManagedWidget( "XtasUserField", xmTextWidgetClass
, row_widget
, args
, n
);
1290 XmTextSetString( tmp_widget
, detail
->MODEL_UND
);
1293 text
= XmStringCreateSimple("Max Noise");
1294 XtSetArg( args
[n
], XmNlabelString
, text
); n
++;
1295 label_widget
= XtCreateManagedWidget( "XtasLabel", xmLabelWidgetClass
, row_widget
, args
, n
);
1299 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
1300 XtSetArg( args
[n
], XmNcursorPositionVisible
,False
); n
++;
1301 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
1302 XtSetArg( args
[n
], XmNcolumns
, XTAS_NOISE_LABEL_NOISE_WIDTH_G
/ 7); n
++;
1303 tmp_widget
= XtCreateManagedWidget( "XtasUserField", xmTextWidgetClass
, row_widget
, args
, n
);
1304 sprintf(buf
,"%.0f mV",(detail
->NOISE_MAX_OVR
*1000.0));
1305 XmTextSetString( tmp_widget
, buf
);
1308 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
1309 XtSetArg( args
[n
], XmNcursorPositionVisible
,False
); n
++;
1310 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
1311 XtSetArg( args
[n
], XmNcolumns
, XTAS_NOISE_LABEL_NOISE_WIDTH_G
/ 7); n
++;
1312 tmp_widget
= XtCreateManagedWidget( "XtasUserField", xmTextWidgetClass
, row_widget
, args
, n
);
1313 sprintf(buf
,"%.0f mV",(detail
->NOISE_MAX_UND
*1000.0));
1314 XmTextSetString( tmp_widget
, buf
);
1317 text
= XmStringCreateSimple("Real Noise");
1318 XtSetArg( args
[n
], XmNlabelString
, text
); n
++;
1319 label_widget
= XtCreateManagedWidget( "XtasLabel", xmLabelWidgetClass
, row_widget
, args
, n
);
1323 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
1324 XtSetArg( args
[n
], XmNcursorPositionVisible
,False
); n
++;
1325 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
1326 XtSetArg( args
[n
], XmNcolumns
, XTAS_NOISE_LABEL_NOISE_WIDTH_G
/ 7); n
++;
1327 tmp_widget
= XtCreateManagedWidget( "XtasUserField", xmTextWidgetClass
, row_widget
, args
, n
);
1328 sprintf(buf
,"%.0f mV",(detail
->NOISE_OVR
*1000.0));
1329 XmTextSetString( tmp_widget
, buf
);
1332 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
1333 XtSetArg( args
[n
], XmNcursorPositionVisible
,False
); n
++;
1334 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
1335 XtSetArg( args
[n
], XmNcolumns
, XTAS_NOISE_LABEL_NOISE_WIDTH_G
/ 7); n
++;
1336 tmp_widget
= XtCreateManagedWidget( "XtasUserField", xmTextWidgetClass
, row_widget
, args
, n
);
1337 sprintf(buf
,"%.0f mV",(detail
->NOISE_UND
*1000.0));
1338 XmTextSetString( tmp_widget
, buf
);
1340 /*------------- frame Agressors list -------------*/
1342 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
1343 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1344 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
1345 XtSetArg ( args
[n
], XmNleftWidget
, frame2
); n
++;
1346 XtSetArg ( args
[n
], XmNleftOffset
, 5 ); n
++;
1347 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1348 XtSetArg ( args
[n
], XmNbottomWidget
, frame2
); n
++;
1349 frame
= XtCreateManagedWidget( "XtasFrame", xmFrameWidgetClass
, form
, args
, n
);
1352 #if XTAS_MOTIF_VERSION >= 20000
1353 XtSetArg (args
[n
], XmNframeChildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1355 XtSetArg (args
[n
], XmNchildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1357 sub_form
= XtCreateManagedWidget("XtasForm",xmFormWidgetClass
, frame
, args
, n
);
1360 text
= XmStringCreateSimple("Agressors List");
1362 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
1363 #if XTAS_MOTIF_VERSION >= 20000
1364 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_TITLE_CHILD
); n
++;
1366 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_TITLE_CHILD
); n
++;
1368 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_CENTER
); n
++;
1369 label_widget
= XtCreateManagedWidget( "XtasLabel", xmLabelWidgetClass
, frame
, args
, n
);
1372 /* calcul des largeurs max pour le name et le netname */
1373 lengthName
= XTAS_MIN_CARLENGTH
;
1374 lengthNetname
= XTAS_MIN_CARLENGTH
;
1376 for (nb_agr
=0, p
=detail
->AGRLIST
; p
; p
=p
->NEXT
, nb_agr
++) {
1378 if((length
= strlen(p
->TTVAGR
->NAME
)) >= lengthName
)
1379 lengthName
= length
;
1380 if((length
= strlen(p
->NETNAME
)) >= lengthNetname
)
1381 lengthNetname
= length
;
1384 if(lengthName
>= XTAS_MAX_CARLENGTH
)
1385 lengthName
= XTAS_MAX_CARLENGTH
;
1386 if(lengthNetname
>= XTAS_MAX_CARLENGTH
)
1387 lengthNetname
= XTAS_MAX_CARLENGTH
;
1390 text
= XmStringCreateSimple("Signal Name");
1392 XtSetArg (args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
1393 XtSetArg (args
[n
], XmNtopOffset
, 7 ); n
++;
1394 // XtSetArg (args[n], XmNtopWidget, frame2 ); n++;
1395 XtSetArg (args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1396 XtSetArg (args
[n
], XmNleftOffset
, XTAS_CTK_OFFSET
); n
++;
1397 XtSetArg (args
[n
], XmNlabelString
, text
); n
++;
1398 XtSetArg (args
[n
], XmNwidth
, lengthName
*7 ); n
++; /* 7 = largeur max d'un caractere */
1399 SIG_label_widget
= XtCreateManagedWidget("XtasSigButton", xmPushButtonWidgetClass
, sub_form
, args
, n
);
1402 XtSetArg (args[n], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
1403 XtSetArg (args[n], XmNtopWidget, SIG_label_widget ); n++;
1404 XtSetArg (args[n], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET ); n++;
1405 XtSetArg (args[n], XmNbottomWidget, SIG_label_widget ); n++;
1406 XtSetArg (args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
1407 XtSetArg (args[n], XmNleftWidget, SIG_label_widget ); n++;
1408 XtSetArg (args[n], XmNarrowDirection, XmARROW_UP ); n++;
1409 ARROWSIG_label_widget = XtCreateManagedWidget("XtasArrowSigButton", xmArrowButtonWidgetClass, sub_form, args, n);
1411 text
= XmStringCreateSimple("Net Name");
1413 XtSetArg (args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1414 XtSetArg (args
[n
], XmNtopWidget
, SIG_label_widget
); n
++;
1415 XtSetArg (args
[n
], XmNbottomAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1416 XtSetArg (args
[n
], XmNbottomWidget
, SIG_label_widget
); n
++;
1417 XtSetArg (args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
1418 XtSetArg (args
[n
], XmNleftWidget
, SIG_label_widget
); n
++;
1419 XtSetArg (args
[n
], XmNleftOffset
, 7 ); n
++;
1420 XtSetArg (args
[n
], XmNlabelString
, text
); n
++;
1421 XtSetArg (args
[n
], XmNwidth
, lengthNetname
*7 ); n
++; /* 7 = largeur max d'un caractere */
1422 label_widget
= XtCreateManagedWidget("XtasLabel", xmLabelWidgetClass
, sub_form
, args
, n
);
1425 text
= XmStringCreateSimple(" ");
1427 XtSetArg (args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1428 XtSetArg (args
[n
], XmNtopWidget
, label_widget
); n
++;
1429 XtSetArg (args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
1430 XtSetArg (args
[n
], XmNleftWidget
, label_widget
); n
++;
1431 XtSetArg (args
[n
], XmNleftOffset
, 2*7 ); n
++;
1432 XtSetArg (args
[n
], XmNlabelString
, text
); n
++;
1433 XtSetArg (args
[n
], XmNwidth
, 4*7 ); n
++; /* 7 = largeur max d'un caractere */
1434 label_widget
= XtCreateManagedWidget("XtasLabel", xmLabelWidgetClass
, sub_form
, args
, n
);
1437 text
= XmStringCreateSimple("Capa");
1439 XtSetArg (args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1440 XtSetArg (args
[n
], XmNtopWidget
, label_widget
); n
++;
1441 XtSetArg (args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
1442 XtSetArg (args
[n
], XmNleftWidget
, label_widget
); n
++;
1443 XtSetArg (args
[n
], XmNleftOffset
, 2*7 ); n
++;
1444 XtSetArg (args
[n
], XmNlabelString
, text
); n
++;
1445 XtSetArg (args
[n
], XmNwidth
, 8*7 ); n
++; /* 7 = largeur max d'un caractere */
1446 CAPA_label_widget
= XtCreateManagedWidget("XtasLabel", xmPushButtonWidgetClass
, sub_form
, args
, n
);
1450 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
); n
++;
1451 XtSetArg( args
[n
], XmNtopWidget
, CAPA_label_widget
); n
++;
1452 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
); n
++;
1453 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1454 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1455 paned_window
= XtCreateManagedWidget( "XtasPanedWindow",
1456 xmPanedWindowWidgetClass
,
1460 form1_window
= XtVaCreateManagedWidget ( "XtasSubForm",
1466 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
1467 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
); n
++;
1468 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1469 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1470 XtSetArg( args
[n
], XmNvisibleItemCount
, 15 ); n
++;
1471 XtSetArg( args
[n
], XmNscrollBarPlacement
, XmBOTTOM_RIGHT
); n
++;
1472 XtSetArg( args
[n
], XmNscrollBarDisplayPolicy
, XmAS_NEEDED
); n
++;
1473 XtSetArg( args
[n
], XmNscrollingPolicy
, XmAUTOMATIC
); n
++;
1474 list_widget
= XmCreateScrolledList( form1_window
, "XtasTextualDisplay", args
, n
);
1476 scrollW
= XtParent (list_widget
); /* on recupere la ScrolledWindow associee a la ScrolledList */
1477 XtVaGetValues (scrollW
, XmNhorizontalScrollBar
, &tmp_widget
, NULL
);
1478 XtAddCallback (tmp_widget
, XmNvalueChangedCallback
, XtasCtkInfoColumnsTitleMoveWithHSBCallback
, SIG_label_widget
);
1479 XtAddCallback (tmp_widget
, XmNdragCallback
, XtasCtkInfoColumnsTitleMoveWithHSBCallback
, SIG_label_widget
);
1480 XtAddCallback (tmp_widget
, XmNincrementCallback
, XtasCtkInfoColumnsTitleMoveWithHSBCallback
, SIG_label_widget
);
1481 XtAddCallback (tmp_widget
, XmNdecrementCallback
, XtasCtkInfoColumnsTitleMoveWithHSBCallback
, SIG_label_widget
);
1482 XtAddCallback (tmp_widget
, XmNpageIncrementCallback
, XtasCtkInfoColumnsTitleMoveWithHSBCallback
, SIG_label_widget
);
1483 XtAddCallback (tmp_widget
, XmNpageDecrementCallback
, XtasCtkInfoColumnsTitleMoveWithHSBCallback
, SIG_label_widget
);
1484 XtAddCallback (tmp_widget
, XmNtoTopCallback
, XtasCtkInfoColumnsTitleMoveWithHSBCallback
, SIG_label_widget
);
1485 XtAddCallback (tmp_widget
, XmNtoBottomCallback
, XtasCtkInfoColumnsTitleMoveWithHSBCallback
, SIG_label_widget
);
1487 XtManageChild( list_widget
);
1488 XtasFillAgressorsList(detail
->AGRLIST
, nb_agr
, list_widget
, lengthName
, lengthNetname
);
1489 XtAddCallback (list_widget
, XmNdefaultActionCallback
, XtasCtkInfoDetailCallback
, ctkInfoWidget
);
1491 XtAddCallback (SIG_label_widget
, XmNactivateCallback
, XtasCtkInfoSortByNameCallback
, list_widget
);
1492 // XtAddCallback (ARROWSIG_label_widget, XmNactivateCallback, XtasCtkInfoSortByNameCallback, list_widget);
1493 XtAddCallback (CAPA_label_widget
, XmNactivateCallback
, XtasCtkInfoSortByCapaValueCallback
, list_widget
);
1497 /*------------- frame General -------------*/
1499 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1500 XtSetArg ( args
[n
], XmNtopWidget
, frame
); n
++;
1501 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1502 XtSetArg ( args
[n
], XmNleftWidget
, frame2
); n
++;
1503 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1504 XtSetArg ( args
[n
], XmNrightWidget
, frame2
); n
++;
1505 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_WIDGET
); n
++;
1506 XtSetArg ( args
[n
], XmNbottomWidget
, frame2
); n
++;
1507 XtSetArg ( args
[n
], XmNbottomOffset
, 5 ); n
++;
1508 frame
= XtCreateManagedWidget( "XtasFrame", xmFrameWidgetClass
, form
, args
, n
);
1510 text
= XmStringCreateSimple ("General");
1512 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
1513 #if XTAS_MOTIF_VERSION >= 20000
1514 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_TITLE_CHILD
); n
++;
1516 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_TITLE_CHILD
); n
++;
1518 label_widget
= XtCreateManagedWidget ("XatsLabels", xmLabelWidgetClass
, frame
, args
, n
);
1522 #if XTAS_MOTIF_VERSION >= 20000
1523 XtSetArg( args
[n
], XmNframeChildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1525 XtSetArg( args
[n
], XmNchildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1527 sub_form
= XtCreateManagedWidget ("XtasSubForm", xmFormWidgetClass
, frame
, args
, n
);
1530 text
= XmStringCreateSimple ("Signal:");
1532 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
1533 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
1534 XtSetArg ( args
[n
], XmNtopOffset
, 7 ); n
++;
1535 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1536 XtSetArg ( args
[n
], XmNleftOffset
, 7 ); n
++;
1537 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
1538 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1539 XtSetArg ( args
[n
], XmNheight
, 25 ); n
++;
1540 label_widget
= XtCreateManagedWidget( "XtasLabel", xmLabelWidgetClass
, sub_form
, args
, n
);
1543 XtVaGetValues(sub_form
,XmNforeground
,&tas_state_color
,
1544 XmNbackground
,&tas_backg_color
,NULL
);
1545 r_pixmap
= XalGetPixmap( sub_form
, XTAS_REDG_MAP
, tas_state_color
, tas_backg_color
);
1546 f_pixmap
= XalGetPixmap( sub_form
, XTAS_FEDG_MAP
, tas_state_color
, tas_backg_color
);
1548 if ( (r_pixmap
== XmUNSPECIFIED_PIXMAP
) || (f_pixmap
== XmUNSPECIFIED_PIXMAP
) )
1550 text
= ( ( event
->TYPE
& TTV_NODE_UP
) == TTV_NODE_UP
) ? XmStringCreateSimple("(Rising)") : XmStringCreateSimple("(Falling)");
1551 tmp_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
1554 XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
,
1555 XmNtopWidget
, label_widget
,
1556 XmNlabelString
, text
,
1557 XmNleftAttachment
, XmATTACH_WIDGET
,
1558 XmNleftWidget
, label_widget
,
1563 XmStringFree( text
);
1567 v_pixmap
= ( (event
->TYPE
& TTV_NODE_UP
) == TTV_NODE_UP
) ? r_pixmap
: f_pixmap
;
1568 tmp_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
1571 XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
,
1572 XmNtopWidget
, label_widget
,
1573 XmNlabelType
, XmPIXMAP
,
1574 XmNlabelPixmap
, v_pixmap
,
1575 XmNleftAttachment
, XmATTACH_WIDGET
,
1576 XmNleftWidget
, label_widget
,
1583 ttv_getsigname (XtasMainParam
->stbfig
->FIG
, buf
, event
->ROOT
);
1584 text
= XmStringCreateSimple (buf
);
1586 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1587 XtSetArg ( args
[n
], XmNtopWidget
, tmp_widget
); n
++;
1588 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
1589 XtSetArg ( args
[n
], XmNleftWidget
, tmp_widget
); n
++;
1590 XtSetArg ( args
[n
], XmNleftOffset
, 5 ); n
++;
1591 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
1592 XtSetArg ( args
[n
], XmNheight
, 25 ); n
++;
1593 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1594 label_widget
= XtCreateManagedWidget( "XtasLabel", xmLabelWidgetClass
, sub_form
, args
, n
);
1597 text
= XmStringCreateSimple( "Ground Capacitance:" );
1599 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
); n
++;
1600 XtSetArg ( args
[n
], XmNtopWidget
, label_widget
); n
++;
1601 XtSetArg ( args
[n
], XmNtopOffset
, 5 ); n
++;
1602 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1603 XtSetArg ( args
[n
], XmNleftOffset
, 7 ); n
++;
1604 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
1605 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1606 XtSetArg ( args
[n
], XmNwidth
, 150 ); n
++;
1607 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1608 label_widget
= XtCreateManagedWidget( "XtasLabel", xmLabelWidgetClass
, sub_form
, args
, n
);
1612 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1613 XtSetArg( args
[n
], XmNtopWidget
, label_widget
); n
++;
1614 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1615 XtSetArg( args
[n
], XmNbottomWidget
, label_widget
); n
++;
1616 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
1617 XtSetArg( args
[n
], XmNleftWidget
, label_widget
); n
++;
1618 XtSetArg( args
[n
], XmNleftOffset
, 5 ); n
++;
1619 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
1620 XtSetArg( args
[n
], XmNcursorPositionVisible
,False
); n
++;
1621 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
1622 XtSetArg( args
[n
], XmNcolumns
, 10 ); n
++;
1623 tmp_widget
= XtCreateManagedWidget( "XtasUserField", xmTextWidgetClass
, sub_form
, args
, n
);
1624 sprintf(buf
,"%.3f fF",(detail
->CM
*1000.0));
1625 XmTextSetString( tmp_widget
, buf
);
1627 text
= XmStringCreateSimple( "Crosstalk Capacitance:" );
1629 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
); n
++;
1630 XtSetArg ( args
[n
], XmNtopWidget
, label_widget
); n
++;
1631 XtSetArg ( args
[n
], XmNtopOffset
, 5 ); n
++;
1632 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1633 XtSetArg ( args
[n
], XmNleftOffset
, 7 ); n
++;
1634 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
1635 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1636 XtSetArg ( args
[n
], XmNwidth
, 150 ); n
++;
1637 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1638 label_widget
= XtCreateManagedWidget( "XtasLabel", xmLabelWidgetClass
, sub_form
, args
, n
);
1643 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1644 XtSetArg( args
[n
], XmNtopWidget
, label_widget
); n
++;
1645 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1646 XtSetArg( args
[n
], XmNbottomWidget
, label_widget
); n
++;
1647 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1648 XtSetArg( args
[n
], XmNleftWidget
, tmp_widget
); n
++;
1649 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
1650 XtSetArg( args
[n
], XmNcursorPositionVisible
,False
); n
++;
1651 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
1652 XtSetArg( args
[n
], XmNcolumns
, 10 ); n
++;
1653 tmp_widget
= XtCreateManagedWidget( "XtasUserField", xmTextWidgetClass
, sub_form
, args
, n
);
1654 sprintf(buf
,"%.3f fF",(detail
->CC
*1000.0));
1655 XmTextSetString( tmp_widget
, buf
);
1658 stb_ctk_free_detail(XtasMainParam
->stbfig
,detail
);
1659 XtManageChild( ctkInfoWidget
);
1663 XalDrawMessage(errorWidget
,
1664 "Crosstalk informations display impossible:\nno information.");
1667 /*---------------------------------------------------------------------------*/
1669 /* FUNCTION : XtasNoiseCloseCallback */
1671 /* IN ARGS : .widget : The widget on which the event occurs. */
1672 /* .top : The window toplevel widget id. */
1673 /* .call_data : Not significant. */
1675 /* OUT ARGS : ( void ) */
1679 /*---------------------------------------------------------------------------*/
1680 void XtasNoiseCloseCallback( widget
, client_data
, call_data
)
1682 XtPointer client_data
;
1683 XtPointer call_data
;
1685 XtUnmanageChild (XtasNoiseResultsWidget
);
1686 XtDestroyWidget (XtasNoiseResultsWidget
);
1687 if (XtasNoiseScoresWidget
) {
1688 XtDestroyWidget (XtasNoiseScoresWidget
);
1689 XtasNoiseScoresWidget
= NULL
;
1691 XtasNoiseResultsWidget
= NULL
;
1694 /*---------------------------------------------------------------------------*/
1696 /* FUNCTION : XtasNoiseDetailCallback */
1698 /* IN ARGS : .parent : The parent widget id. */
1699 /* .path_detail : The path detail description. */
1701 /* OUT ARGS : ( void ) */
1703 /* OBJECT : Creation de la liste des erreurs de stabilite */
1705 /*---------------------------------------------------------------------------*/
1706 void XtasNoiseDetailCallback(parent
, client_data
, call_data
)
1708 XtPointer client_data
;
1709 XtPointer call_data
;
1711 XtasWindowStruct
*tas_winfos
= (XtasWindowStruct
*)client_data
;
1714 if (XtasNoiseSelectedIndex
== XTAS_NOISE_NO_SELECT
)
1715 XalDrawMessage( tas_winfos
->errwidget
, XTAS_NSIGERR
);
1717 XalSetCursor( tas_winfos
->topwidget
, WAIT
);
1718 XalForceUpdate( tas_winfos
->topwidget
);
1719 ttv_getsigname (XtasMainParam
->stbfig
->FIG
, buf
, XtasNoiseTab
->TAB
[XtasNoiseSelectedIndex
].NODE
->ROOT
);
1720 XtasSignalsDetail( tas_winfos
->wrkwidget
, buf
);
1721 XalSetCursor( tas_winfos
->topwidget
, NORMAL
);
1726 /*---------------------------------------------------------------------------*/
1728 /* FUNCTION : XtasNoiseButtonsCallback */
1730 /* IN ARGS : .widget : The widget on which the event occurs. */
1731 /* .widtab : Table of important widgets for the current window. */
1732 /* .call_data : Not significant. */
1734 /* OUT ARGS : ( void ) */
1736 /* OBJECT : The callback function for the Options/Button's command */
1738 /*---------------------------------------------------------------------------*/
1739 void XtasNoiseButtonsCallback( widget
, client_data
, call_data
)
1741 XtPointer client_data
;
1742 XtPointer call_data
;
1744 XtasWindowStruct
*widtab
= (XtasWindowStruct
*)client_data
;
1745 XtasOptionsButtonsTreat( widtab
->wrkwidget
, &widtab
->butwidget
,
1746 XtasNoiseButtonMenus
, XtasNoiseButtonOptions
);
1751 /*---------------------------------------------------------------------------*/
1753 /* FUNCTION : XtasNoiseCtkInfoCallback */
1755 /* IN ARGS : .parent : The parent widget id. */
1756 /* .path_detail : The path detail description. */
1758 /* OUT ARGS : ( void ) */
1760 /* OBJECT : Creation de la liste des erreurs de stabilite */
1762 /*---------------------------------------------------------------------------*/
1763 void XtasNoiseCtkInfoCallback(parent
, client_data
, call_data
)
1765 XtPointer client_data
;
1766 XtPointer call_data
;
1768 XtasWindowStruct
*tas_winfos
= (XtasWindowStruct
*)client_data
;
1770 if (XtasNoiseSelectedIndex
== XTAS_NOISE_NO_SELECT
)
1771 XalDrawMessage( tas_winfos
->errwidget
, XTAS_NSIGERR
);
1773 XalSetCursor( tas_winfos
->topwidget
, WAIT
);
1774 XtasSetLabelString( tas_winfos
->meswidget
, "Looking for Crosstalk Informations ...");
1775 XalForceUpdate( tas_winfos
->topwidget
);
1777 XtasDisplayCtkInfo(tas_winfos
->topwidget
,
1778 XtasNoiseTab
->TAB
[XtasNoiseSelectedIndex
].NODE
,
1779 tas_winfos
->errwidget
);
1781 XalSetCursor( tas_winfos
->topwidget
, NORMAL
);
1782 XtasSetLabelString( tas_winfos
->meswidget
, " ");
1783 XalForceUpdate( tas_winfos
->topwidget
);
1788 /*---------------------------------------------------------------------------*/
1790 /* FUNCTION : XtasNoiseGetIndexSelectedCallback */
1792 /* IN ARGS : .parent : The parent widget id. */
1793 /* .path_detail : The path detail description. */
1795 /* OUT ARGS : ( void ) */
1797 /* OBJECT : Creation de la liste des erreurs de stabilite */
1799 /*---------------------------------------------------------------------------*/
1800 void XtasNoiseGetSelectedIndexCallback (parent
, client_data
, call_data
)
1802 XtPointer client_data
;
1803 XtPointer call_data
;
1805 Widget list_widget
= (Widget
) client_data
;
1806 int *pos_list
, pos_count
;
1807 if (XmListGetSelectedPos(list_widget
, &pos_list
, &pos_count
))
1808 XtasNoiseSelectedIndex
= pos_list
[0]-1;
1812 /*---------------------------------------------------------------------------*/
1814 /* FUNCTION : XtasNoiseGetTextualInfoCallback */
1816 /* IN ARGS : .parent : The parent widget id. */
1817 /* .path_detail : The path detail description. */
1819 /* OUT ARGS : ( void ) */
1821 /* OBJECT : Creation de la liste des erreurs de stabilite */
1823 /*---------------------------------------------------------------------------*/
1824 void XtasNoiseGetTextualInfoCallback (parent
, client_data
, call_data
)
1826 XtPointer client_data
;
1827 XtPointer call_data
;
1829 char *signame
=(char*)mbkalloc(1024);
1830 XmListCallbackStruct
*cbs
= (XmListCallbackStruct
*) call_data
;
1833 static Widget info_form
= NULL
, prev_parent
= NULL
;
1836 if ((info_form
&& (prev_parent
== (Widget
)client_data
)) || (info_form
&& (XtasNoiseTab
->NBDISPLAY
==0)))
1837 XtDestroyWidget ( info_form
) ;
1839 if (XtasNoiseTab
->NBDISPLAY
> 0) {
1840 prev_parent
= (Widget
)client_data
;
1843 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
) ; n
++ ;
1844 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
) ; n
++ ;
1845 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
) ; n
++ ;
1846 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
) ; n
++ ;
1847 info_form
= XtCreateManagedWidget( "XtasSubForm",
1849 (Widget
)client_data
,
1852 ttv_getsigname(XtasMainParam
->stbfig
->FIG
, signame
, XtasNoiseTab
->TAB
[(cbs
->item_position
)-1].NODE
->ROOT
);
1853 XtasFillInfosForm (info_form
, signame
);
1857 /*---------------------------------------------------------------------------*/
1859 /* FUNCTION : XtasUpdateNoiseTextualScrollList */
1861 /* IN ARGS : .parent : The parent widget id. */
1862 /* .path_detail : The path detail description. */
1864 /* OUT ARGS : ( void ) */
1866 /* OBJECT : Creation de la liste des erreurs de stabilite */
1868 /*---------------------------------------------------------------------------*/
1869 void XtasUpdateNoiseTextualScrollList (list
)
1873 int i
, position
= 0 ;
1874 XmString motif_string
;
1876 char *ovrmod
, *undmod
;
1878 char textline
[1024];
1879 int score_global
, score_noise
, score_ctk
, score_interval
, score_activity
;
1881 Widget labelSIGNAME
;
1883 XmListDeleteAllItems (list
);
1885 if((XtasNoiseTab
== NULL
) || (XtasNoiseTab
->NBDISPLAY
== 0))
1887 sprintf(textline
,"no noise") ;
1888 motif_string
= XmStringCreateSimple(textline
) ;
1890 XmListAddItemUnselected( list
, motif_string
, ++position
) ;
1891 XmStringFree( motif_string
) ;
1895 /* recherche de la longueur max des noms de signaux */
1896 for ( i
= 0 ; i
< XtasNoiseTab
->NBDISPLAY
; i
++ ) {
1897 ptsig
= XtasNoiseTab
->TAB
[i
].NODE
->ROOT
;
1898 ttv_getsigname (XtasMainParam
->stbfig
->FIG
, buf
, ptsig
);
1899 if ((width
= strlen(buf
)) > XtasNoiseLabelSigNameLength
)
1900 XtasNoiseLabelSigNameLength
= width
;
1902 labelSIGNAME
= XtNameToWidget (XtParent(XtParent(XtParent(XtParent(list
)))), "*XtasNoiseSigName");
1903 XtVaSetValues (labelSIGNAME
, XmNwidth
, ((XtasNoiseLabelSigNameLength
+ 1) * 7), NULL
);
1906 for( i
= 0 ; i
< XtasNoiseTab
->NBDISPLAY
; i
++)
1908 ptsig
= XtasNoiseTab
->TAB
[i
].NODE
->ROOT
;
1909 ttv_getsigname (XtasMainParam
->stbfig
->FIG
, buf
, ptsig
);
1910 signame
= XtasPlaceString (buf
, XtasNoiseLabelSigNameLength
+2 );
1911 strcpy ( textline
, " " );
1912 strcat ( textline
, XtasNoiseTab
->TAB
[i
].NOISE_MODEL
);
1913 ovrmod
= XtasPlaceString ( textline
, (XTAS_NOISE_LABEL_MODEL_WIDTH_T
/ 7) );
1914 strcpy ( textline
, " " );
1915 strcat ( textline
, XtasNoiseTab
->TAB
[i
].NOISE_MODEL
);
1916 undmod
= XtasPlaceString ( textline
, (XTAS_NOISE_LABEL_MODEL_WIDTH_T
/ 7) );
1918 score_global
= stb_ctk_get_score_total (&XtasNoiseTab
->TAB
[i
]);
1919 score_noise
= stb_ctk_get_score_noise (&XtasNoiseTab
->TAB
[i
]);
1920 score_interval
= stb_ctk_get_score_interval (&XtasNoiseTab
->TAB
[i
]);
1921 score_ctk
= stb_ctk_get_score_ctk (&XtasNoiseTab
->TAB
[i
]);
1922 score_activity
= stb_ctk_get_score_activity (&XtasNoiseTab
->TAB
[i
]);
1924 sprintf(textline
, "%5d %5s %s %5s %4.0f mV %4.0f mV %5s %4.0f mV %4.0f mV %9d %9d %9d %9d %9d",
1925 i
+1, ((XtasNoiseTab
->TAB
[i
].NODE
->TYPE
& TTV_NODE_UP
) == TTV_NODE_UP
) ? "Low ":"High",
1927 ovrmod
,XtasNoiseTab
->TAB
[i
].RISE_PEAK_MAX
*1000.0, XtasNoiseTab
->TAB
[i
].RISE_PEAK_REAL
*1000.0,
1928 undmod
,XtasNoiseTab
->TAB
[i
].FALL_PEAK_MAX
*1000.0, XtasNoiseTab
->TAB
[i
].FALL_PEAK_REAL
*1000.0,
1929 score_global
, score_noise
, score_interval
, score_ctk
, score_activity
) ;
1931 motif_string
= XmStringCreateSimple (textline
) ;
1932 XmListAddItemUnselected (list
, motif_string
, position
) ;
1933 XmStringFree ( motif_string
) ;
1939 /*---------------------------------------------------------------------------*/
1941 /* FUNCTION : XtasCreateNoiseTextualScrollList */
1943 /* IN ARGS : .parent : The parent widget id. */
1944 /* .path_detail : The path detail description. */
1946 /* OUT ARGS : ( void ) */
1948 /* OBJECT : Creation de la liste des erreurs de stabilite */
1950 /*---------------------------------------------------------------------------*/
1951 Widget
XtasCreateNoiseTextualScrollList(scform
, tas_winfos
, label_widget
)
1953 XtasWindowStruct
*tas_winfos
;
1954 Widget label_widget
;
1957 int i
, n
, position
= 0 ;
1958 Widget list_form
, info_form
, scroll
, scrollW
, tmp_widget
;
1959 XmString motif_string
;
1961 char *ovrmod
, *undmod
;
1963 char textline
[1024];
1964 int score_global
, score_noise
, score_interval
, score_ctk
, score_activity
;
1968 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1969 list_form
= XtCreateManagedWidget( "XtasSubForm",
1974 XtSetArg( args
[n
], XmNheight
, 170) ; n
++ ;
1975 info_form
= XtCreateManagedWidget( "XtasSubForm",
1981 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
) ; n
++ ;
1982 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
) ; n
++ ;
1983 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
) ; n
++ ;
1984 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
) ; n
++ ;
1985 XtSetArg( args
[n
], XmNscrollingPolicy
, XmSTATIC
) ; n
++ ;
1986 XtSetArg( args
[n
], XmNvisibleItemCount
, 25 ) ; n
++ ;
1987 // XtSetArg( args[n], XmNheight, 250 ) ; n++ ;
1988 scroll
= XmCreateScrolledList( list_form
, "XtasTextualDisplay", args
, n
) ;
1989 XmListDeleteAllItems( scroll
) ;
1991 if((XtasNoiseTab
== NULL
) || (XtasNoiseTab
->NBDISPLAY
== 0))
1993 sprintf(textline
,"no noise") ;
1994 motif_string
= XmStringCreateSimple(textline
) ;
1996 XmListAddItemUnselected( scroll
, motif_string
, ++position
) ;
1997 XmStringFree( motif_string
) ;
2000 if (XtasNoiseTab
== NULL
) {
2001 XtManageChild( scroll
) ;
2006 for( i
= 0 ; i
< XtasNoiseTab
->NBDISPLAY
; i
++)
2009 ptsig
= XtasNoiseTab
->TAB
[i
].NODE
->ROOT
;
2011 ttv_getsigname (XtasMainParam
->stbfig
->FIG
, textline
, ptsig
);
2013 signame
= XtasPlaceString (textline
, XtasNoiseLabelSigNameLength
+1 );
2014 /* netname = XtasPlaceString (ptsig->NETNAME, XtasNoiseLabelNetNameLength+1 ); */
2015 strcpy ( textline
, " " );
2016 strcat ( textline
, XtasNoiseTab
->TAB
[i
].NOISE_MODEL
);
2017 ovrmod
= XtasPlaceString ( textline
, (XTAS_NOISE_LABEL_MODEL_WIDTH_T
/ 7) );
2018 strcpy ( textline
, " " );
2019 strcat ( textline
, XtasNoiseTab
->TAB
[i
].NOISE_MODEL
);
2020 undmod
= XtasPlaceString ( textline
, (XTAS_NOISE_LABEL_MODEL_WIDTH_T
/ 7) );
2022 score_global
= stb_ctk_get_score_total (&XtasNoiseTab
->TAB
[i
]);
2023 score_noise
= stb_ctk_get_score_noise (&XtasNoiseTab
->TAB
[i
]);
2024 score_interval
= stb_ctk_get_score_interval (&XtasNoiseTab
->TAB
[i
]);
2025 score_ctk
= stb_ctk_get_score_ctk (&XtasNoiseTab
->TAB
[i
]);
2026 score_activity
= stb_ctk_get_score_activity (&XtasNoiseTab
->TAB
[i
]);
2028 sprintf(textline
, "%5d %5s %s %5s %4.0f mV %4.0f mV %5s %4.0f mV %4.0f mV %9d %9d %9d %9d %9d",
2029 i
+1, ((XtasNoiseTab
->TAB
[i
].NODE
->TYPE
& TTV_NODE_UP
) == TTV_NODE_UP
) ? "Low ":"High",
2031 ovrmod
,XtasNoiseTab
->TAB
[i
].RISE_PEAK_MAX
*1000.0, XtasNoiseTab
->TAB
[i
].RISE_PEAK_REAL
*1000.0,
2032 undmod
,XtasNoiseTab
->TAB
[i
].FALL_PEAK_MAX
*1000.0, XtasNoiseTab
->TAB
[i
].FALL_PEAK_REAL
*1000.0,
2033 score_global
, score_noise
, score_interval
, score_ctk
, score_activity
) ;
2035 motif_string
= XmStringCreateSimple (textline
) ;
2036 XmListAddItemUnselected (scroll
, motif_string
, position
) ;
2037 XmStringFree ( motif_string
) ;
2041 // mbkfree(XtasNoiseTab) ;
2043 XtAddCallback (scroll
,
2044 XmNbrowseSelectionCallback
,
2045 XtasNoiseGetSelectedIndexCallback
,
2048 XtAddCallback (scroll
,
2049 XmNbrowseSelectionCallback
,
2050 XtasNoiseGetTextualInfoCallback
,
2051 (XtPointer
)info_form
);
2053 XtAddCallback (scroll
,
2054 XmNdefaultActionCallback
,
2055 XtasNoiseCtkInfoCallback
,
2056 (XtPointer
)tas_winfos
);
2058 scrollW
= XtParent (scroll
); /* on recupere la ScrolledWindow associee a la ScrolledList */
2059 XtVaGetValues (scrollW
, XmNhorizontalScrollBar
, &tmp_widget
, NULL
);
2060 XtAddCallback (tmp_widget
, XmNvalueChangedCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2061 XtAddCallback (tmp_widget
, XmNdragCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2062 XtAddCallback (tmp_widget
, XmNincrementCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2063 XtAddCallback (tmp_widget
, XmNdecrementCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2064 XtAddCallback (tmp_widget
, XmNpageIncrementCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2065 XtAddCallback (tmp_widget
, XmNpageDecrementCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2066 XtAddCallback (tmp_widget
, XmNtoTopCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2067 XtAddCallback (tmp_widget
, XmNtoBottomCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2070 XtManageChild( scroll
) ;
2074 /*---------------------------------------------------------------------------*/
2076 /* FUNCTION : XtasNoiseFocusCallback */
2078 /* IN ARGS : .parent : The parent widget id. */
2079 /* .path_detail : The path detail description. */
2081 /* OUT ARGS : ( void ) */
2083 /* OBJECT : Creation de la liste des erreurs de stabilite */
2085 /*---------------------------------------------------------------------------*/
2086 void XtasNoiseFocusCallback (parent
, client_data
, call_data
)
2088 XtPointer client_data
;
2089 XtPointer call_data
;
2091 XtVaSetValues (parent
, XmNcursorPositionVisible
, True
, NULL
);
2092 XtasNoiseSelectedIndex
= (int)(long) client_data
;
2095 /*---------------------------------------------------------------------------*/
2097 /* FUNCTION : XtasLosingNoiseFocusCallback */
2099 /* IN ARGS : .parent : The parent widget id. */
2100 /* .path_detail : The path detail description. */
2102 /* OUT ARGS : ( void ) */
2104 /* OBJECT : Creation de la liste des erreurs de stabilite */
2106 /*---------------------------------------------------------------------------*/
2107 void XtasLosingNoiseFocusCallback (parent
, client_data
, call_data
)
2109 XtPointer client_data
;
2110 XtPointer call_data
;
2112 XtVaSetValues (parent
, XmNcursorPositionVisible
, False
, NULL
);
2115 /*---------------------------------------------------------------------------*/
2117 /* FUNCTION : XtasNoiseFillGraphicalList */
2119 /* IN ARGS : .parent : The parent widget id. */
2120 /* .path_detail : The path detail description. */
2122 /* OUT ARGS : ( void ) */
2124 /* OBJECT : Creation de la liste des erreurs de stabilite */
2126 /*---------------------------------------------------------------------------*/
2127 void XtasNoiseFillGraphicalList ( new, widget
, win_struct
)
2130 XtasWindowStruct
*win_struct
;
2132 static Widget row_widget
=NULL
;
2135 Widget sub_form
, label_widget
, txt_widget
;
2137 XmString motif_string
;
2138 static XtasWindowStruct
*tas_winfos
;
2141 if (row_widget
&& (new==0)) {
2142 XtUnmanageChild (row_widget
);
2143 XtDestroyWidget (row_widget
);
2146 tas_winfos
= win_struct
;
2147 else if (new == 2) {
2148 tas_winfos
= win_struct
;
2152 // if (!row_widget && (new==0)) {
2153 // sub_form = XtNameToWidget (widget, "*XtasUserField");
2155 // XtUnmanageChild (sub_form);
2156 // XtDestroyWidget (sub_form);
2161 if((XtasNoiseTab
== NULL
) || (XtasNoiseTab
->NBDISPLAY
== 0))
2164 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
) ; n
++ ;
2165 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
) ; n
++ ;
2166 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
) ; n
++ ;
2167 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
) ; n
++ ;
2168 XtSetArg( args
[n
], XmNrightOffset
, 10 ) ; n
++ ;
2169 XtSetArg( args
[n
], XmNheight
, 342 ) ; n
++ ;
2171 // XtSetArg( args[n], XmNvisibleItemCount, 25 ) ; n++ ;
2172 row_widget
= XmCreateList( widget
, "XtasUserField", args
, n
) ;
2173 XmListDeleteAllItems( row_widget
) ;
2175 sprintf(text
,"no noise \
2179 motif_string
= XmStringCreateSimple(text
) ;
2181 XmListAddItemUnselected( row_widget
, motif_string
, ++position
) ;
2182 XmStringFree( motif_string
) ;
2186 row_widget
= XtVaCreateWidget( "XtasNoiseRow",
2187 xmRowColumnWidgetClass
,
2189 XmNorientation
, XmVERTICAL
,
2192 for ( i
= XtasNoiseCurrentTopIndex
; (i
< (XtasNoiseCurrentTopIndex
+XTAS_NOISE_MAX_NBSIG_WINDOW
)) && (i
< XtasNoiseTab
->NBDISPLAY
) ; i
++) {
2194 sub_form
= XtCreateManagedWidget( "XtasSubForm",
2199 sprintf(text
, "%d", i
+1);
2200 motif_string
= XmStringCreateSimple (text
);
2202 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
2203 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
2204 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_FORM
); n
++;
2205 XtSetArg ( args
[n
], XmNlabelString
, motif_string
); n
++;
2206 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_END
); n
++;
2207 XtSetArg ( args
[n
], XmNwidth
, XTAS_NOISE_LABEL_RANK_WIDTH_G
); n
++;
2208 XtSetArg ( args
[n
], XmNheight
, 25 ); n
++;
2209 label_widget
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, sub_form
, args
, n
);
2210 XmStringFree( motif_string
);
2213 motif_string
= ( ( XtasNoiseTab
->TAB
[i
].NODE
->TYPE
& TTV_NODE_UP
) == TTV_NODE_UP
) ? XmStringCreateSimple("Low ") : XmStringCreateSimple("High");
2214 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
2217 XmNtopAttachment
, XmATTACH_FORM
,
2218 XmNbottomAttachment
, XmATTACH_FORM
,
2219 XmNlabelString
, motif_string
,
2220 XmNleftAttachment
, XmATTACH_WIDGET
,
2221 XmNleftWidget
, label_widget
,
2222 XmNleftOffset
, XTAS_NOISE_OFFSET_GROUP_G
,
2223 XmNwidth
, XTAS_NOISE_LABEL_TRANS_WIDTH_G
,
2226 XmStringFree( motif_string
);
2229 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
2230 XtSetArg( args
[n
], XmNleftWidget
, label_widget
); n
++;
2231 XtSetArg( args
[n
], XmNleftOffset
, XTAS_NOISE_OFFSET_G
); n
++;
2232 XtSetArg( args
[n
], XmNwidth
, XTAS_NOISE_LABEL_NAMES_WIDTH_G
); n
++;
2233 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
2234 XtSetArg( args
[n
], XmNcursorPositionVisible
, False
); n
++;
2235 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
2236 txt_widget
= XtCreateManagedWidget( "XtasUserField",
2240 ttv_getsigname (XtasMainParam
->stbfig
->FIG
, text
, XtasNoiseTab
->TAB
[i
].NODE
->ROOT
);
2241 XmTextSetString( txt_widget
, text
);
2243 XtAddCallback( txt_widget
,
2244 XmNactivateCallback
,
2245 XtasNoiseCtkInfoCallback
,
2246 (XtPointer
)tas_winfos
);
2247 XtAddCallback( txt_widget
,
2249 XtasNoiseFocusCallback
,
2250 (XtPointer
)(long)i
);
2251 XtAddCallback( txt_widget
,
2252 XmNlosingFocusCallback
,
2253 XtasLosingNoiseFocusCallback
,
2254 (XtPointer
)(long)i
);
2259 XtSetArg( args[n], XmNleftAttachment, XmATTACH_WIDGET ); n++;
2260 XtSetArg( args[n], XmNleftWidget, txt_widget ); n++;
2261 XtSetArg( args[n], XmNleftOffset, XTAS_NOISE_OFFSET_G ); n++;
2262 XtSetArg( args[n], XmNwidth, XTAS_NOISE_LABEL_NAMES_WIDTH_G ); n++;
2263 XtSetArg( args[n], XmNshadowThickness, 1 ); n++;
2264 XtSetArg( args[n], XmNcursorPositionVisible, False ); n++;
2265 XtSetArg( args[n], XmNeditable, False ); n++;
2266 txt_widget = XtCreateManagedWidget( "XtasUserField",
2270 XmTextSetString( txt_widget, XtasNoiseTab[i].NODE->ROOT->NETNAME );
2272 XtAddCallback( txt_widget,
2273 XmNactivateCallback,
2274 XtasNoiseCtkInfoCallback,
2275 (XtPointer)tas_winfos );
2276 XtAddCallback( txt_widget,
2278 XtasNoiseFocusCallback,
2280 XtAddCallback( txt_widget,
2281 XmNlosingFocusCallback,
2282 XtasLosingNoiseFocusCallback,
2287 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
2288 XtSetArg( args
[n
], XmNleftWidget
, txt_widget
); n
++;
2289 XtSetArg( args
[n
], XmNleftOffset
, XTAS_NOISE_OFFSET_GROUP_G
); n
++;
2290 XtSetArg( args
[n
], XmNwidth
, XTAS_NOISE_LABEL_MODEL_WIDTH_G
); n
++;
2291 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
2292 XtSetArg( args
[n
], XmNcursorPositionVisible
, False
); n
++;
2293 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
2294 txt_widget
= XtCreateManagedWidget( "XtasUserField",
2298 XmTextSetString( txt_widget
, XtasNoiseTab
->TAB
[i
].NOISE_MODEL
);
2301 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
2302 XtSetArg( args
[n
], XmNleftWidget
, txt_widget
); n
++;
2303 XtSetArg( args
[n
], XmNleftOffset
, XTAS_NOISE_OFFSET_G
); n
++;
2304 XtSetArg( args
[n
], XmNwidth
, XTAS_NOISE_LABEL_NOISE_WIDTH_G
); n
++;
2305 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
2306 XtSetArg( args
[n
], XmNcursorPositionVisible
, False
); n
++;
2307 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
2308 txt_widget
= XtCreateManagedWidget( "XtasUserField",
2312 sprintf (text
, "%.0f mV",XtasNoiseTab
->TAB
[i
].RISE_PEAK_MAX
*1000.0);
2313 XmTextSetString( txt_widget
, text
);
2316 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
2317 XtSetArg( args
[n
], XmNleftWidget
, txt_widget
); n
++;
2318 XtSetArg( args
[n
], XmNleftOffset
, XTAS_NOISE_OFFSET_G
); n
++;
2319 XtSetArg( args
[n
], XmNwidth
, XTAS_NOISE_LABEL_NOISE_WIDTH_G
); n
++;
2320 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
2321 XtSetArg( args
[n
], XmNcursorPositionVisible
, False
); n
++;
2322 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
2323 txt_widget
= XtCreateManagedWidget( "XtasUserField",
2327 sprintf (text
, "%.0f mV",XtasNoiseTab
->TAB
[i
].RISE_PEAK_REAL
*1000.0);
2328 XmTextSetString( txt_widget
, text
);
2331 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
2332 XtSetArg( args
[n
], XmNleftWidget
, txt_widget
); n
++;
2333 XtSetArg( args
[n
], XmNleftOffset
, XTAS_NOISE_OFFSET_GROUP_G
); n
++;
2334 XtSetArg( args
[n
], XmNwidth
, XTAS_NOISE_LABEL_MODEL_WIDTH_G
); n
++;
2335 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
2336 XtSetArg( args
[n
], XmNcursorPositionVisible
, False
); n
++;
2337 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
2338 txt_widget
= XtCreateManagedWidget( "XtasUserField",
2342 XmTextSetString( txt_widget
, XtasNoiseTab
->TAB
[i
].NOISE_MODEL
);
2345 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
2346 XtSetArg( args
[n
], XmNleftWidget
, txt_widget
); n
++;
2347 XtSetArg( args
[n
], XmNleftOffset
, XTAS_NOISE_OFFSET_G
); n
++;
2348 XtSetArg( args
[n
], XmNwidth
, XTAS_NOISE_LABEL_NOISE_WIDTH_G
); n
++;
2349 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
2350 XtSetArg( args
[n
], XmNcursorPositionVisible
, False
); n
++;
2351 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
2352 txt_widget
= XtCreateManagedWidget( "XtasUserField",
2356 sprintf (text
, "%.0f mV",XtasNoiseTab
->TAB
[i
].FALL_PEAK_MAX
*1000.0);
2357 XmTextSetString( txt_widget
, text
);
2360 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
2361 XtSetArg( args
[n
], XmNleftWidget
, txt_widget
); n
++;
2362 XtSetArg( args
[n
], XmNleftOffset
, XTAS_NOISE_OFFSET_G
); n
++;
2363 XtSetArg( args
[n
], XmNwidth
, XTAS_NOISE_LABEL_NOISE_WIDTH_G
); n
++;
2364 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
2365 XtSetArg( args
[n
], XmNcursorPositionVisible
, False
); n
++;
2366 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
2367 txt_widget
= XtCreateManagedWidget( "XtasUserField",
2371 sprintf (text
, "%.0f mV",XtasNoiseTab
->TAB
[i
].FALL_PEAK_REAL
*1000.0);
2372 XmTextSetString( txt_widget
, text
);
2377 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
2378 XtSetArg( args
[n
], XmNleftWidget
, txt_widget
); n
++;
2379 XtSetArg( args
[n
], XmNleftOffset
, XTAS_NOISE_OFFSET_GROUP_G
); n
++;
2380 XtSetArg( args
[n
], XmNwidth
, XTAS_NOISE_LABEL_SCORE_WIDTH_G
); n
++;
2381 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
2382 XtSetArg( args
[n
], XmNcursorPositionVisible
, False
); n
++;
2383 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
2384 txt_widget
= XtCreateManagedWidget( "XtasUserField",
2388 sprintf (text
, "%9d",stb_ctk_get_score_total (&XtasNoiseTab
->TAB
[i
]));
2389 XmTextSetString( txt_widget
, text
);
2392 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
2393 XtSetArg( args
[n
], XmNleftWidget
, txt_widget
); n
++;
2394 XtSetArg( args
[n
], XmNleftOffset
, XTAS_NOISE_OFFSET_G
); n
++;
2395 XtSetArg( args
[n
], XmNwidth
, XTAS_NOISE_LABEL_SCORE_WIDTH_G
); n
++;
2396 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
2397 XtSetArg( args
[n
], XmNcursorPositionVisible
, False
); n
++;
2398 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
2399 txt_widget
= XtCreateManagedWidget( "XtasUserField",
2403 sprintf (text
, "%9d",stb_ctk_get_score_noise (&XtasNoiseTab
->TAB
[i
]));
2404 XmTextSetString( txt_widget
, text
);
2407 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
2408 XtSetArg( args
[n
], XmNleftWidget
, txt_widget
); n
++;
2409 XtSetArg( args
[n
], XmNleftOffset
, XTAS_NOISE_OFFSET_G
); n
++;
2410 XtSetArg( args
[n
], XmNwidth
, XTAS_NOISE_LABEL_SCORE_WIDTH_G
); n
++;
2411 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
2412 XtSetArg( args
[n
], XmNcursorPositionVisible
, False
); n
++;
2413 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
2414 txt_widget
= XtCreateManagedWidget( "XtasUserField",
2418 sprintf (text
, "%9d",stb_ctk_get_score_interval (&XtasNoiseTab
->TAB
[i
]));
2419 XmTextSetString( txt_widget
, text
);
2422 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
2423 XtSetArg( args
[n
], XmNleftWidget
, txt_widget
); n
++;
2424 XtSetArg( args
[n
], XmNleftOffset
, XTAS_NOISE_OFFSET_G
); n
++;
2425 XtSetArg( args
[n
], XmNwidth
, XTAS_NOISE_LABEL_SCORE_WIDTH_G
); n
++;
2426 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
2427 XtSetArg( args
[n
], XmNcursorPositionVisible
, False
); n
++;
2428 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
2429 txt_widget
= XtCreateManagedWidget( "XtasUserField",
2433 sprintf (text
, "%9d",stb_ctk_get_score_ctk (&XtasNoiseTab
->TAB
[i
]));
2434 XmTextSetString( txt_widget
, text
);
2437 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
2438 XtSetArg( args
[n
], XmNleftWidget
, txt_widget
); n
++;
2439 XtSetArg( args
[n
], XmNleftOffset
, XTAS_NOISE_OFFSET_G
); n
++;
2440 XtSetArg( args
[n
], XmNwidth
, XTAS_NOISE_LABEL_SCORE_WIDTH_G
); n
++;
2441 XtSetArg( args
[n
], XmNshadowThickness
, 1 ); n
++;
2442 XtSetArg( args
[n
], XmNcursorPositionVisible
, False
); n
++;
2443 XtSetArg( args
[n
], XmNeditable
, False
); n
++;
2444 txt_widget
= XtCreateManagedWidget( "XtasUserField",
2448 sprintf (text
, "%9d",stb_ctk_get_score_activity (&XtasNoiseTab
->TAB
[i
]));
2449 XmTextSetString( txt_widget
, text
);
2453 XtManageChild(row_widget
);
2459 /*---------------------------------------------------------------------------*/
2461 /* FUNCTION : XtasNoiseFillNbVisualizeResults */
2463 /* IN ARGS : .parent : The parent widget id. */
2464 /* .path_detail : The path detail description. */
2466 /* OUT ARGS : ( void ) */
2468 /* OBJECT : Creation de la liste des erreurs de stabilite */
2470 /*---------------------------------------------------------------------------*/
2471 void XtasNoiseFillNbVisualizeResults (new, label_widget
)
2473 Widget label_widget
;
2475 static Widget label
;
2476 char str
[50] = "Results " ;
2481 if (XtasNoiseTab
->NBDISPLAY
== 0)
2485 sprintf (text
, "%d", XtasNoiseCurrentTopIndex
+1);
2487 strcat (str
, " - ");
2489 if ((XtasNoiseCurrentTopIndex
+ XTAS_NOISE_MAX_NBSIG_WINDOW
) <= XtasNoiseTab
->NBDISPLAY
)
2490 end
= XtasNoiseCurrentTopIndex
+ XTAS_NOISE_MAX_NBSIG_WINDOW
;
2492 end
= XtasNoiseTab
->NBDISPLAY
;
2493 sprintf (text
, "%d", end
);
2495 strcat (str
, " / ");
2497 sprintf (text
, "%d", XtasNoiseTab
->NBDISPLAY
);
2502 if (new == 1) /* une nouvelle fenetre de resultats est en train d'etre creee
2503 c'est le premier appel a cette fonction */
2504 label
= label_widget
;
2506 XtasSetLabelString (label
, str
);
2510 /*---------------------------------------------------------------------------*/
2512 /* FUNCTION : XtasCreateNoiseGraphicalScrollList */
2514 /* IN ARGS : .parent : The parent widget id. */
2515 /* .path_detail : The path detail description. */
2517 /* OUT ARGS : ( void ) */
2519 /* OBJECT : Creation de la liste des erreurs de stabilite */
2521 /*---------------------------------------------------------------------------*/
2522 Widget
XtasCreateNoiseGraphicalScrollList(scform
, tas_winfos
,label_widget
)
2524 XtasWindowStruct
*tas_winfos
;
2525 Widget label_widget
;
2529 Widget list_form
, scroll
, sc_nonoise
;
2531 XmString motif_string
;
2535 list_form
= XtCreateManagedWidget( "XtasSubForm",
2541 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
2542 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
); n
++;
2543 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
2544 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
2545 XtSetArg( args
[n
], XmNscrollingPolicy
, XmSTATIC
); n
++;
2546 XtSetArg( args
[n
], XmNheight
, 350 ); n
++;
2547 scroll
= XmCreateScrolledWindow( list_form
,
2548 "XtasScrollNoiseWidget",
2552 // if((XtasNoiseTab == NULL) || (XtasNoiseTab->NBDISPLAY == 0))
2555 // XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ) ; n++ ;
2556 // XtSetArg( args[n], XmNbottomAttachment, XmATTACH_FORM ) ; n++ ;
2557 // XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ) ; n++ ;
2558 // XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ) ; n++ ;
2559 // XtSetArg( args[n], XmNrightOffset, 10 ) ; n++ ;
2560 // XtSetArg( args[n], XmNheight, 342 ) ; n++ ;
2562 // // XtSetArg( args[n], XmNvisibleItemCount, 25 ) ; n++ ;
2563 // sc_nonoise = XmCreateList( scroll, "XtasUserField", args , n ) ;
2564 // XmListDeleteAllItems( sc_nonoise ) ;
2566 // sprintf(text,"no noise \
2570 // motif_string = XmStringCreateSimple(text) ;
2572 // XmListAddItemUnselected( sc_nonoise, motif_string, ++position ) ;
2573 // XmStringFree( motif_string ) ;
2574 // XtManageChild( sc_nonoise );
2579 XtVaGetValues (scroll
, XmNhorizontalScrollBar
, &tmp_widget
, NULL
);
2580 XtAddCallback (tmp_widget
, XmNvalueChangedCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2581 XtAddCallback (tmp_widget
, XmNdragCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2582 XtAddCallback (tmp_widget
, XmNincrementCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2583 XtAddCallback (tmp_widget
, XmNdecrementCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2584 XtAddCallback (tmp_widget
, XmNpageIncrementCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2585 XtAddCallback (tmp_widget
, XmNpageDecrementCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2586 XtAddCallback (tmp_widget
, XmNtoTopCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2587 XtAddCallback (tmp_widget
, XmNtoBottomCallback
, XtasNoiseColumnsTitleMoveWithHSBCallback
, label_widget
);
2589 // if((XtasNoiseTab == NULL) || (XtasNoiseTab->NBDISPLAY == 0))
2590 // XtasNoiseFillGraphicalList (2, scroll, tas_winfos);
2592 XtasNoiseFillGraphicalList (1, scroll
, tas_winfos
);
2594 XtManageChild( scroll
);
2600 /*---------------------------------------------------------------------------*/
2602 /* FUNCTION : XtasNoiseTreatEndCallback */
2604 /* IN ARGS : .parent : The parent widget id. */
2605 /* .path_detail : The path detail description. */
2607 /* OUT ARGS : ( void ) */
2609 /* OBJECT : Creation de la liste des erreurs de stabilite */
2611 /*---------------------------------------------------------------------------*/
2612 void XtasNoiseTreatEndCallback( parent
, client_data
, call_data
)
2614 XtPointer client_data
;
2615 XtPointer call_data
;
2617 XtasNoiseCurrentTopIndex
= XtasNoiseTab
->NBDISPLAY
- XTAS_NOISE_MAX_NBSIG_WINDOW
;
2618 XtasNoiseFillGraphicalList (0, (Widget
) client_data
, NULL
);
2619 XtasNoiseFillNbVisualizeResults (0, NULL
);
2620 XtSetSensitive (XtNameToWidget (XtasNoiseResultsWidget
, "*XtasButtonsFormNext"), False
);
2621 XtSetSensitive (XtNameToWidget (XtasNoiseResultsWidget
, "*XtasButtonsFormPrev"), True
);
2624 /*---------------------------------------------------------------------------*/
2626 /* FUNCTION : XtasNoiseTreatFastFwdCallback */
2628 /* IN ARGS : .parent : The parent widget id. */
2629 /* .path_detail : The path detail description. */
2631 /* OUT ARGS : ( void ) */
2633 /* OBJECT : Creation de la liste des erreurs de stabilite */
2635 /*---------------------------------------------------------------------------*/
2636 void XtasNoiseTreatFastFwdCallback( parent
, client_data
, call_data
)
2638 XtPointer client_data
;
2639 XtPointer call_data
;
2641 XtasNoiseCurrentTopIndex
+= 3 * XTAS_NOISE_MAX_NBSIG_WINDOW
;
2642 if(XtasNoiseCurrentTopIndex
> XtasNoiseTab
->NBDISPLAY
- XTAS_NOISE_MAX_NBSIG_WINDOW
) {
2643 XtasNoiseCurrentTopIndex
= XtasNoiseTab
->NBDISPLAY
- XTAS_NOISE_MAX_NBSIG_WINDOW
;
2644 XtSetSensitive (XtNameToWidget (XtasNoiseResultsWidget
, "*XtasButtonsFormNext"), False
);
2647 XtSetSensitive (XtNameToWidget (XtasNoiseResultsWidget
, "*XtasButtonsFormPrev"), True
);
2648 XtasNoiseFillGraphicalList (0, (Widget
) client_data
, NULL
);
2649 XtasNoiseFillNbVisualizeResults (0, NULL
);
2652 /*---------------------------------------------------------------------------*/
2654 /* FUNCTION : XtasNoiseTreatNextCallback */
2656 /* IN ARGS : .parent : The parent widget id. */
2657 /* .path_detail : The path detail description. */
2659 /* OUT ARGS : ( void ) */
2661 /* OBJECT : Creation de la liste des erreurs de stabilite */
2663 /*---------------------------------------------------------------------------*/
2664 void XtasNoiseTreatNextCallback( parent
, client_data
, call_data
)
2666 XtPointer client_data
;
2667 XtPointer call_data
;
2669 XtasNoiseCurrentTopIndex
+= XTAS_NOISE_MAX_NBSIG_WINDOW
;
2670 if(XtasNoiseCurrentTopIndex
> XtasNoiseTab
->NBDISPLAY
- XTAS_NOISE_MAX_NBSIG_WINDOW
) {
2671 XtasNoiseCurrentTopIndex
= XtasNoiseTab
->NBDISPLAY
- XTAS_NOISE_MAX_NBSIG_WINDOW
;
2672 XtSetSensitive (XtNameToWidget (XtasNoiseResultsWidget
, "*XtasButtonsFormNext"), False
);
2675 XtSetSensitive (XtNameToWidget (XtasNoiseResultsWidget
, "*XtasButtonsFormPrev"), True
);
2676 XtasNoiseFillGraphicalList (0, (Widget
) client_data
, NULL
);
2677 XtasNoiseFillNbVisualizeResults (0, NULL
);
2681 /*---------------------------------------------------------------------------*/
2683 /* FUNCTION : XtasNoiseTreatPrevCallback */
2685 /* IN ARGS : .parent : The parent widget id. */
2686 /* .path_detail : The path detail description. */
2688 /* OUT ARGS : ( void ) */
2690 /* OBJECT : Creation de la liste des erreurs de stabilite */
2692 /*---------------------------------------------------------------------------*/
2693 void XtasNoiseTreatPrevCallback( parent
, client_data
, call_data
)
2695 XtPointer client_data
;
2696 XtPointer call_data
;
2698 XtasNoiseCurrentTopIndex
-= XTAS_NOISE_MAX_NBSIG_WINDOW
;
2699 if(XtasNoiseCurrentTopIndex
< 0) {
2700 XtasNoiseCurrentTopIndex
= 0;
2701 XtSetSensitive (XtNameToWidget (XtasNoiseResultsWidget
, "*XtasButtonsFormPrev"), False
);
2704 XtSetSensitive (XtNameToWidget (XtasNoiseResultsWidget
, "*XtasButtonsFormNext"), True
);
2705 XtasNoiseFillGraphicalList (0, (Widget
) client_data
, NULL
);
2706 XtasNoiseFillNbVisualizeResults (0, NULL
);
2709 /*---------------------------------------------------------------------------*/
2711 /* FUNCTION : XtasNoiseTreatFastRewCallback */
2713 /* IN ARGS : .parent : The parent widget id. */
2714 /* .path_detail : The path detail description. */
2716 /* OUT ARGS : ( void ) */
2718 /* OBJECT : Creation de la liste des erreurs de stabilite */
2720 /*---------------------------------------------------------------------------*/
2721 void XtasNoiseTreatFastRewCallback( parent
, client_data
, call_data
)
2723 XtPointer client_data
;
2724 XtPointer call_data
;
2726 XtasNoiseCurrentTopIndex
-= 3 * XTAS_NOISE_MAX_NBSIG_WINDOW
;
2727 if(XtasNoiseCurrentTopIndex
< 0) {
2728 XtasNoiseCurrentTopIndex
= 0;
2729 XtSetSensitive (XtNameToWidget (XtasNoiseResultsWidget
, "*XtasButtonsFormPrev"), False
);
2732 XtSetSensitive (XtNameToWidget (XtasNoiseResultsWidget
, "*XtasButtonsFormNext"), True
);
2733 XtasNoiseFillGraphicalList (0, (Widget
) client_data
, NULL
);
2734 XtasNoiseFillNbVisualizeResults (0, NULL
);
2738 /*---------------------------------------------------------------------------*/
2740 /* FUNCTION : XtasNoiseTreatTopCallback */
2742 /* IN ARGS : .parent : The parent widget id. */
2743 /* .path_detail : The path detail description. */
2745 /* OUT ARGS : ( void ) */
2747 /* OBJECT : Creation de la liste des erreurs de stabilite */
2749 /*---------------------------------------------------------------------------*/
2750 void XtasNoiseTreatTopCallback( parent
, client_data
, call_data
)
2752 XtPointer client_data
;
2753 XtPointer call_data
;
2755 XtasNoiseCurrentTopIndex
= 0;
2756 XtasNoiseFillGraphicalList (0, (Widget
) client_data
, NULL
);
2757 XtasNoiseFillNbVisualizeResults (0, NULL
);
2758 XtSetSensitive (XtNameToWidget (XtasNoiseResultsWidget
, "*XtasButtonsFormPrev"), False
);
2759 if(XtasNoiseTab
->NBDISPLAY
>= XTAS_NOISE_MAX_NBSIG_WINDOW
)
2760 XtSetSensitive (XtNameToWidget (XtasNoiseResultsWidget
, "*XtasButtonsFormNext"), True
);
2762 XtSetSensitive (XtNameToWidget (XtasNoiseResultsWidget
, "*XtasButtonsFormNext"), False
);
2767 /*---------------------------------------------------------------------------*/
2769 /* FUNCTION : XtasCreateNoiseList */
2771 /* IN ARGS : .parent : The parent widget id. */
2772 /* .path_detail : The path detail description. */
2774 /* OUT ARGS : ( void ) */
2776 /* OBJECT : Creation de la liste des erreurs de stabilite */
2778 /*---------------------------------------------------------------------------*/
2779 void XtasNoiseSortInsideAlimMaxCallback (parent
, client_data
, call_data
)
2781 XtPointer client_data
;
2782 XtPointer call_data
;
2784 stb_ctk_sort_stat(XtasNoiseTab
, STB_CTK_SORT_INSIDE_ALIM_MAX
);
2785 XtasNoiseSelectedIndex
= XTAS_NOISE_NO_SELECT
;
2786 if (XTAS_DISPLAY_NEW
== 0) {
2787 XtasNoiseCurrentTopIndex
= 0;
2788 XtasNoiseTreatTopCallback (parent
, (Widget
)client_data
, NULL
);
2791 XtasUpdateNoiseTextualScrollList ((Widget
)client_data
);
2795 void XtasNoiseSortInsideAlimRealCallback (parent
, client_data
, call_data
)
2797 XtPointer client_data
;
2798 XtPointer call_data
;
2800 stb_ctk_sort_stat(XtasNoiseTab
, STB_CTK_SORT_INSIDE_ALIM_REAL
);
2801 XtasNoiseSelectedIndex
= XTAS_NOISE_NO_SELECT
;
2802 if (XTAS_DISPLAY_NEW
== 0) {
2803 XtasNoiseCurrentTopIndex
= 0;
2804 XtasNoiseTreatTopCallback (parent
, (Widget
)client_data
, NULL
);
2807 XtasUpdateNoiseTextualScrollList ((Widget
)client_data
);
2811 void XtasNoiseSortRiseMaxCallback (parent
, client_data
, call_data
)
2813 XtPointer client_data
;
2814 XtPointer call_data
;
2816 stb_ctk_sort_stat(XtasNoiseTab
, STB_CTK_SORT_RISE_MAX
);
2817 XtasNoiseSelectedIndex
= XTAS_NOISE_NO_SELECT
;
2818 if (XTAS_DISPLAY_NEW
== 0) {
2819 XtasNoiseCurrentTopIndex
= 0;
2820 XtasNoiseTreatTopCallback (parent
, (Widget
)client_data
, NULL
);
2823 XtasUpdateNoiseTextualScrollList ((Widget
)client_data
);
2827 void XtasNoiseSortRiseRealCallback (parent
, client_data
, call_data
)
2829 XtPointer client_data
;
2830 XtPointer call_data
;
2832 stb_ctk_sort_stat(XtasNoiseTab
, STB_CTK_SORT_RISE_REAL
);
2833 XtasNoiseSelectedIndex
= XTAS_NOISE_NO_SELECT
;
2834 if (XTAS_DISPLAY_NEW
== 0) {
2835 XtasNoiseCurrentTopIndex
= 0;
2836 XtasNoiseTreatTopCallback (parent
, (Widget
)client_data
, NULL
);
2839 XtasUpdateNoiseTextualScrollList ((Widget
)client_data
);
2843 void XtasNoiseSortFallMaxCallback (parent
, client_data
, call_data
)
2845 XtPointer client_data
;
2846 XtPointer call_data
;
2848 stb_ctk_sort_stat(XtasNoiseTab
, STB_CTK_SORT_FALL_MAX
);
2849 XtasNoiseSelectedIndex
= XTAS_NOISE_NO_SELECT
;
2850 if (XTAS_DISPLAY_NEW
== 0) {
2851 XtasNoiseCurrentTopIndex
= 0;
2852 XtasNoiseTreatTopCallback (parent
, (Widget
)client_data
, NULL
);
2855 XtasUpdateNoiseTextualScrollList ((Widget
)client_data
);
2859 void XtasNoiseSortFallRealCallback (parent
, client_data
, call_data
)
2861 XtPointer client_data
;
2862 XtPointer call_data
;
2864 stb_ctk_sort_stat(XtasNoiseTab
, STB_CTK_SORT_FALL_REAL
);
2865 XtasNoiseSelectedIndex
= XTAS_NOISE_NO_SELECT
;
2866 if (XTAS_DISPLAY_NEW
== 0) {
2867 XtasNoiseCurrentTopIndex
= 0;
2868 XtasNoiseTreatTopCallback (parent
, (Widget
)client_data
, NULL
);
2871 XtasUpdateNoiseTextualScrollList ((Widget
)client_data
);
2875 void XtasNoiseSortScoreGlobalCallback (parent
, client_data
, call_data
)
2877 XtPointer client_data
;
2878 XtPointer call_data
;
2880 stb_ctk_sort_stat(XtasNoiseTab
, STB_CTK_SORT_SCORE_TOTAL
);
2881 XtasNoiseSelectedIndex
= XTAS_NOISE_NO_SELECT
;
2882 if (XTAS_DISPLAY_NEW
== 0) {
2883 XtasNoiseCurrentTopIndex
= 0;
2884 XtasNoiseTreatTopCallback (parent
, (Widget
)client_data
, NULL
);
2887 XtasUpdateNoiseTextualScrollList ((Widget
)client_data
);
2891 void XtasNoiseSortScoreCrosstalkCallback (parent
, client_data
, call_data
)
2893 XtPointer client_data
;
2894 XtPointer call_data
;
2896 stb_ctk_sort_stat(XtasNoiseTab
, STB_CTK_SORT_SCORE_CTK
);
2897 XtasNoiseSelectedIndex
= XTAS_NOISE_NO_SELECT
;
2898 if (XTAS_DISPLAY_NEW
== 0) {
2899 XtasNoiseCurrentTopIndex
= 0;
2900 XtasNoiseTreatTopCallback (parent
, (Widget
)client_data
, NULL
);
2903 XtasUpdateNoiseTextualScrollList ((Widget
)client_data
);
2906 void XtasNoiseSortScoreNoiseCallback (parent
, client_data
, call_data
)
2908 XtPointer client_data
;
2909 XtPointer call_data
;
2911 stb_ctk_sort_stat(XtasNoiseTab
, STB_CTK_SORT_SCORE_NOISE
);
2912 XtasNoiseSelectedIndex
= XTAS_NOISE_NO_SELECT
;
2913 if (XTAS_DISPLAY_NEW
== 0) {
2914 XtasNoiseCurrentTopIndex
= 0;
2915 XtasNoiseTreatTopCallback (parent
, (Widget
)client_data
, NULL
);
2918 XtasUpdateNoiseTextualScrollList ((Widget
)client_data
);
2921 void XtasNoiseSortScoreIntervalCallback (parent
, client_data
, call_data
)
2923 XtPointer client_data
;
2924 XtPointer call_data
;
2926 stb_ctk_sort_stat(XtasNoiseTab
, STB_CTK_SORT_SCORE_INTERVAL
);
2927 XtasNoiseSelectedIndex
= XTAS_NOISE_NO_SELECT
;
2928 if (XTAS_DISPLAY_NEW
== 0) {
2929 XtasNoiseCurrentTopIndex
= 0;
2930 XtasNoiseTreatTopCallback (parent
, (Widget
)client_data
, NULL
);
2933 XtasUpdateNoiseTextualScrollList ((Widget
)client_data
);
2936 void XtasNoiseSortScoreActivityCallback (parent
, client_data
, call_data
)
2938 XtPointer client_data
;
2939 XtPointer call_data
;
2941 stb_ctk_sort_stat(XtasNoiseTab
, STB_CTK_SORT_SCORE_ACTIVITY
);
2942 XtasNoiseSelectedIndex
= XTAS_NOISE_NO_SELECT
;
2943 if (XTAS_DISPLAY_NEW
== 0) {
2944 XtasNoiseCurrentTopIndex
= 0;
2945 XtasNoiseTreatTopCallback (parent
, (Widget
)client_data
, NULL
);
2948 XtasUpdateNoiseTextualScrollList ((Widget
)client_data
);
2954 /*---------------------------------------------------------------------------*/
2956 /* FUNCTION : XtasCreateNoiseList */
2958 /* IN ARGS : .parent : The parent widget id. */
2959 /* .path_detail : The path detail description. */
2961 /* OUT ARGS : ( void ) */
2963 /* OBJECT : Creation de la liste des erreurs de stabilite */
2965 /*---------------------------------------------------------------------------*/
2966 Widget
XtasCreateNoiseList( parent
, tas_winfos
)
2968 XtasWindowStruct
*tas_winfos
;
2970 Widget form_widget
, form
, dbase_form
, pan_widget
;
2971 Widget label_widget
, button
;
2973 Widget buttons_form
;
2974 Widget b_rise_max
, b_rise_real
, b_fall_max
, b_fall_real
;
2975 Widget b_ins_max
, b_ins_real
;
2976 Widget b_score_global
, b_score_noise
, b_score_int
, b_score_ctk
, b_score_act
;
2977 Widget separator1
, separator2
;
2982 form_widget
= XtVaCreateWidget( "XtasMainPan",
2985 XmNtopAttachment
, XmATTACH_FORM
,
2986 XmNbottomAttachment
, XmATTACH_POSITION
,
2987 XmNbottomPosition
, 99,
2988 XmNleftAttachment
, XmATTACH_POSITION
,
2990 XmNrightAttachment
, XmATTACH_POSITION
,
2991 XmNrightPosition
, 99,
2993 HelpFather
= form_widget
;
2996 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
) ; n
++ ;
2997 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
) ; n
++ ;
2998 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
) ; n
++ ;
2999 buttons_form
= XtCreateManagedWidget( "XtasNoiseButtons", xmFormWidgetClass
, form_widget
, args
, n
) ;
3000 for ( n
=0 ; XtasNoiseButtonMenus
[n
].pix_file
!= -1 ; n
++ )
3001 XtasNoiseButtonMenus
[n
].callback_data
= (XtPointer
) tas_winfos
;
3003 XtSetArg( args
[n
], XmNnumColumns
, 1 ) ; n
++ ;
3004 XtSetArg( args
[n
], XmNorientation
, XmHORIZONTAL
) ; n
++ ;
3005 tas_winfos
->butwidget
= XalButtonMenus( buttons_form
, XtasNoiseButtonMenus
, args
,
3007 XtasAddDummyButton( tas_winfos
->butwidget
) ;
3008 XtManageChild( tas_winfos
->butwidget
) ;
3010 /*---------------------------------------------------------------------------*/
3011 /* creation d'un separateur */
3012 /*---------------------------------------------------------------------------*/
3014 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
) ; n
++ ;
3015 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
) ; n
++ ;
3016 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
) ; n
++ ;
3017 XtSetArg( args
[n
], XmNtopWidget
, buttons_form
) ; n
++ ;
3018 separator1
= XtCreateManagedWidget( "XtasSeparator", xmSeparatorWidgetClass
, form_widget
, args
, n
) ;
3021 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
) ; n
++ ;
3022 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
) ; n
++ ;
3023 XtSetArg( args
[n
], XmNtopWidget
, separator1
) ; n
++ ;
3024 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
) ; n
++ ;
3025 form
= XtCreateManagedWidget( "XtasShellSubForm", xmFormWidgetClass
, form_widget
, args
, n
) ;
3027 /* Max Noise label */
3028 //sprintf(buffer,"Max noise : %.0f mV (rise peak)", XtasNoiseTab[0].OVR_MAX*1000.0) ;
3029 //text = XmStringCreateSimple (buffer);
3031 //XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ) ; n++ ;
3032 //XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ) ; n++ ;
3033 //XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ) ; n++ ;
3034 //frame = XtCreateManagedWidget( "XtasFrame", xmFrameWidgetClass, form, args, n ) ;
3035 //XtSetArg( args[n], XmNrecomputeSize, False ) ; n++ ;
3036 //XtSetArg( args[n], XmNlabelString, text ) ; n++ ;
3037 //XtSetArg( args[n], XmNalignment, XmALIGNMENT_BEGINNING ) ; n++ ;
3038 //label_widget = XtCreateManagedWidget( "XtasSubTitles", xmLabelGadgetClass, frame, args, n ) ;
3039 //XmStringFree (text);
3041 ///* On signal label */
3042 //sprintf(buffer,"On signal : (%s) %s ",((XtasNoiseTab[0].NODE->TYPE & TTV_NODE_UP) == TTV_NODE_UP) ? "Rise":"Fall",
3043 // XtasNoiseTab[0].NODE->ROOT->NAME) ;
3044 //text = XmStringCreateSimple (buffer);
3046 //XtSetArg( args[n], XmNtopAttachment, XmATTACH_WIDGET ) ; n++ ;
3047 //XtSetArg( args[n], XmNtopWidget, frame ) ; n++ ;
3048 //XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ) ; n++ ;
3049 //XtSetArg( args[n], XmNrightAttachment, XmATTACH_FORM ) ; n++ ;
3050 //frame = XtCreateManagedWidget( "XtasFrame", xmFrameWidgetClass, form, args, n ) ;
3051 //XtSetArg( args[n], XmNrecomputeSize, False ) ; n++ ;
3052 //XtSetArg( args[n], XmNlabelString, text ) ; n++ ;
3053 //XtSetArg( args[n], XmNalignment, XmALIGNMENT_BEGINNING ) ; n++ ;
3054 //label_widget = XtCreateManagedWidget( "XtasSubTitles", xmLabelGadgetClass, frame, args, n ) ;
3055 //XmStringFree (text);
3061 XtSetArg( args
[n
], XmNborderWidth
, 0 ) ; n
++ ;
3062 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
) ; n
++ ;
3063 // XtSetArg( args[n], XmNtopWidget, frame ) ; n++ ;
3064 // XtSetArg( args[n], XmNtopOffset, 10 ) ; n++ ;
3065 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
) ; n
++ ;
3066 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
) ; n
++ ;
3067 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
) ; n
++ ;
3068 XtSetArg( args
[n
], XmNrightOffset
, 2 ) ; n
++ ;
3069 dbase_form
= XtCreateManagedWidget( "XtasTitleForm", xmFormWidgetClass
, form
, args
, n
) ;
3073 text
= XmStringCreateSimple( "Inside Alim Max" ) ;
3074 b_ins_max
= XtVaCreateManagedWidget( "XtasTitlesInsideAlimMax",
3075 xmPushButtonWidgetClass
,
3077 XmNlabelString
, text
,
3078 XmNtopAttachment
, XmATTACH_FORM
,
3079 XmNleftAttachment
, XmATTACH_FORM
,
3080 XmNwidth
, XTAS_DISPLAY_NEW
? (XTAS_NOISE_SORTBUTTON_WIDTH_T
+(((XtasNoiseLabelSigNameLength
+ 1) * 7)/2)):XTAS_NOISE_SORTBUTTON_WIDTH_G
,
3082 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LEFT_OFFSET_T
:XTAS_NOISE_LEFT_OFFSET_G
,
3085 XmStringFree( text
) ;
3087 text
= XmStringCreateSimple( "Inside Alim Real" ) ;
3088 b_ins_real
= XtVaCreateManagedWidget( "XtasMainTitles",
3089 xmPushButtonWidgetClass
,
3091 XmNlabelString
, text
,
3092 XmNtopAttachment
, XmATTACH_FORM
,
3093 XmNleftAttachment
, XmATTACH_WIDGET
,
3094 XmNleftWidget
, b_ins_max
,
3095 XmNwidth
, XTAS_DISPLAY_NEW
? (XTAS_NOISE_SORTBUTTON_WIDTH_T
+(((XtasNoiseLabelSigNameLength
+ 1) * 7)/2)):XTAS_NOISE_SORTBUTTON_WIDTH_G
,
3097 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_OFFSET_T2
:XTAS_NOISE_OFFSET_G
,
3100 XmStringFree( text
) ;
3102 text
= XmStringCreateSimple( "Rank" ) ;
3103 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
3106 XmNlabelString
, text
,
3107 XmNtopAttachment
, XmATTACH_WIDGET
,
3108 XmNtopWidget
, b_ins_max
,
3109 XmNleftAttachment
, XmATTACH_OPPOSITE_WIDGET
,
3110 XmNleftWidget
, b_ins_max
,
3111 XmNalignment
, XmALIGNMENT_END
,
3112 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_RANK_WIDTH_T
:XTAS_NOISE_LABEL_RANK_WIDTH_G
,
3116 XmStringFree( text
) ;
3118 text
= XmStringCreateSimple( "Level" ) ;
3119 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
3122 XmNlabelString
, text
,
3123 XmNtopAttachment
, XmATTACH_WIDGET
,
3124 XmNtopWidget
, b_ins_max
,
3125 XmNleftAttachment
, XmATTACH_WIDGET
,
3126 XmNleftWidget
, label_widget
,
3127 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_TRANS_WIDTH_T
: XTAS_NOISE_LABEL_TRANS_WIDTH_G
,
3129 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_OFFSET_GROUP_T
:XTAS_NOISE_OFFSET_GROUP_G
,
3132 XmStringFree( text
) ;
3134 text
= XmStringCreateSimple( "Signal Name" ) ;
3135 label_widget
= XtVaCreateManagedWidget( "XtasNoiseSigName",
3138 XmNlabelString
, text
,
3139 XmNtopAttachment
, XmATTACH_WIDGET
,
3140 XmNtopWidget
, b_ins_real
,
3141 XmNleftAttachment
, XmATTACH_WIDGET
,
3142 XmNleftWidget
, label_widget
,
3143 XmNwidth
, XTAS_DISPLAY_NEW
? ((XtasNoiseLabelSigNameLength
+ 1) * 7) :XTAS_NOISE_LABEL_NAMES_WIDTH_G
,
3145 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_OFFSET_T
:XTAS_NOISE_OFFSET_G
,
3148 XmStringFree( text
) ;
3150 /* text = XmStringCreateSimple( "Net Name" ) ;
3151 label_widget = XtVaCreateManagedWidget( "XtasMainTitles",
3154 XmNlabelString, text,
3155 XmNtopAttachment, XmATTACH_WIDGET,
3156 XmNtopWidget, b_ins_real,
3157 XmNleftAttachment, XmATTACH_WIDGET,
3158 XmNleftWidget, label_widget,
3159 XmNwidth, XTAS_DISPLAY_NEW ? ((XtasNoiseLabelNetNameLength + 1) * 7) :XTAS_NOISE_LABEL_NAMES_WIDTH_G ,
3161 XmNleftOffset, XTAS_DISPLAY_NEW ? XTAS_NOISE_OFFSET_T:XTAS_NOISE_OFFSET_G,
3164 XmStringFree( text ) ;
3166 text
= XmStringCreateSimple( "RISE PEAK" ) ;
3167 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
3170 XmNlabelString
, text
,
3171 XmNtopAttachment
, XmATTACH_FORM
,
3172 XmNleftAttachment
, XmATTACH_WIDGET
,
3173 XmNleftWidget
, label_widget
,
3174 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_OVR_UND_WIDTH_T
:XTAS_NOISE_LABEL_OVR_UND_WIDTH_G
,
3176 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_OFFSET_GROUP_T
+5:XTAS_NOISE_OFFSET_GROUP_G
,
3179 XmStringFree( text
) ;
3180 text
= XmStringCreateSimple( "Model" ) ;
3181 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
3184 XmNlabelString
, text
,
3185 XmNtopAttachment
, XmATTACH_WIDGET
,
3186 XmNtopWidget
, label_widget
,
3187 XmNleftAttachment
, XmATTACH_OPPOSITE_WIDGET
,
3188 XmNleftWidget
, label_widget
,
3189 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_MODEL_WIDTH_T
:XTAS_NOISE_LABEL_MODEL_WIDTH_G
,
3193 XmStringFree( text
) ;
3195 text
= XmStringCreateSimple( "Max" ) ;
3196 b_rise_max
= XtVaCreateManagedWidget( "XtasMainTitles",
3197 xmPushButtonWidgetClass
,
3199 XmNlabelString
, text
,
3200 XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
,
3201 XmNtopWidget
, label_widget
,
3202 XmNleftAttachment
, XmATTACH_WIDGET
,
3203 XmNleftWidget
, label_widget
,
3204 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_NOISE_WIDTH_T
:XTAS_NOISE_LABEL_NOISE_WIDTH_G
,
3205 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_OFFSET_T
:XTAS_NOISE_OFFSET_G
,
3208 XmStringFree( text
) ;
3210 text
= XmStringCreateSimple( "Real" ) ;
3211 b_rise_real
= XtVaCreateManagedWidget( "XtasMainTitles",
3212 xmPushButtonWidgetClass
,
3214 XmNlabelString
, text
,
3215 XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
,
3216 XmNtopWidget
, b_rise_max
,
3217 XmNleftAttachment
, XmATTACH_WIDGET
,
3218 XmNleftWidget
, b_rise_max
,
3219 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_NOISE_WIDTH_T
:XTAS_NOISE_LABEL_NOISE_WIDTH_G
,
3220 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_OFFSET_T
:XTAS_NOISE_OFFSET_G
,
3223 XmStringFree( text
) ;
3226 text
= XmStringCreateSimple( "FALL PEAK" ) ;
3227 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
3230 XmNlabelString
, text
,
3231 XmNtopAttachment
, XmATTACH_FORM
,
3232 XmNleftAttachment
, XmATTACH_WIDGET
,
3233 XmNleftWidget
, b_rise_real
,
3234 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_OVR_UND_WIDTH_T
:XTAS_NOISE_LABEL_OVR_UND_WIDTH_G
,
3236 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_OFFSET_GROUP_T
:XTAS_NOISE_OFFSET_GROUP_G
,
3239 XmStringFree( text
) ;
3240 text
= XmStringCreateSimple( "Model" ) ;
3241 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
3244 XmNlabelString
, text
,
3245 XmNtopAttachment
, XmATTACH_WIDGET
,
3246 XmNtopWidget
, label_widget
,
3247 XmNleftAttachment
, XmATTACH_OPPOSITE_WIDGET
,
3248 XmNleftWidget
, label_widget
,
3249 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_MODEL_WIDTH_T
:XTAS_NOISE_LABEL_MODEL_WIDTH_G
,
3253 XmStringFree( text
) ;
3255 text
= XmStringCreateSimple( "Max" ) ;
3256 b_fall_max
= XtVaCreateManagedWidget( "XtasMainTitles",
3257 xmPushButtonWidgetClass
,
3259 XmNlabelString
, text
,
3260 XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
,
3261 XmNtopWidget
, label_widget
,
3262 XmNleftAttachment
, XmATTACH_WIDGET
,
3263 XmNleftWidget
, label_widget
,
3264 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_NOISE_WIDTH_T
:XTAS_NOISE_LABEL_NOISE_WIDTH_G
,
3265 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_OFFSET_T
:XTAS_NOISE_OFFSET_G
,
3268 XmStringFree( text
) ;
3270 text
= XmStringCreateSimple( "Real" ) ;
3271 b_fall_real
= XtVaCreateManagedWidget( "XtasMainTitles",
3272 xmPushButtonWidgetClass
,
3274 XmNlabelString
, text
,
3275 XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
,
3276 XmNtopWidget
, b_fall_max
,
3277 XmNleftAttachment
, XmATTACH_WIDGET
,
3278 XmNleftWidget
, b_fall_max
,
3279 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_NOISE_WIDTH_T
:XTAS_NOISE_LABEL_NOISE_WIDTH_G
,
3280 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_OFFSET_T
:XTAS_NOISE_OFFSET_G
,
3283 XmStringFree( text
) ;
3285 text
= XmStringCreateSimple( "SCORES" ) ;
3286 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles",
3289 XmNlabelString
, text
,
3290 XmNtopAttachment
, XmATTACH_FORM
,
3291 XmNleftAttachment
, XmATTACH_WIDGET
,
3292 XmNleftWidget
, b_fall_real
,
3293 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_SCORES_WIDTH_T
:XTAS_NOISE_LABEL_SCORES_WIDTH_G
,
3295 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_OFFSET_GROUP_T
:XTAS_NOISE_OFFSET_GROUP_G
,
3298 XmStringFree( text
) ;
3299 text
= XmStringCreateSimple( "Global" ) ;
3300 b_score_global
= XtVaCreateManagedWidget( "XtasMainTitles",
3301 xmPushButtonWidgetClass
,
3303 XmNlabelString
, text
,
3304 XmNtopAttachment
, XmATTACH_WIDGET
,
3305 XmNtopWidget
, label_widget
,
3306 XmNleftAttachment
, XmATTACH_OPPOSITE_WIDGET
,
3307 XmNleftWidget
, label_widget
,
3308 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_SCORE_WIDTH_T
:XTAS_NOISE_LABEL_SCORE_WIDTH_G
,
3312 XmStringFree( text
) ;
3313 text
= XmStringCreateSimple( "Noise" ) ;
3314 b_score_noise
= XtVaCreateManagedWidget( "XtasMainTitles",
3315 xmPushButtonWidgetClass
,
3317 XmNlabelString
, text
,
3318 XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
,
3319 XmNtopWidget
, b_score_global
,
3320 XmNleftAttachment
, XmATTACH_WIDGET
,
3321 XmNleftWidget
, b_score_global
,
3322 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_SCORE_WIDTH_T
:XTAS_NOISE_LABEL_SCORE_WIDTH_G
,
3323 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_OFFSET_T
:XTAS_NOISE_OFFSET_G
,
3326 XmStringFree( text
) ;
3327 text
= XmStringCreateSimple( "Interval" ) ;
3328 b_score_int
= XtVaCreateManagedWidget( "XtasMainTitles",
3329 xmPushButtonWidgetClass
,
3331 XmNlabelString
, text
,
3332 XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
,
3333 XmNtopWidget
, b_score_noise
,
3334 XmNleftAttachment
, XmATTACH_WIDGET
,
3335 XmNleftWidget
, b_score_noise
,
3336 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_SCORE_WIDTH_T
:XTAS_NOISE_LABEL_SCORE_WIDTH_G
,
3337 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_OFFSET_T
:XTAS_NOISE_OFFSET_G
,
3340 XmStringFree( text
) ;
3341 text
= XmStringCreateSimple( "Crosstalk" ) ;
3342 b_score_ctk
= XtVaCreateManagedWidget( "XtasMainTitles",
3343 xmPushButtonWidgetClass
,
3345 XmNlabelString
, text
,
3346 XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
,
3347 XmNtopWidget
, b_score_int
,
3348 XmNleftAttachment
, XmATTACH_WIDGET
,
3349 XmNleftWidget
, b_score_int
,
3350 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_SCORE_WIDTH_T
:XTAS_NOISE_LABEL_SCORE_WIDTH_G
,
3351 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_OFFSET_T
:XTAS_NOISE_OFFSET_G
,
3354 XmStringFree( text
) ;
3355 text
= XmStringCreateSimple( "Activity" ) ;
3356 b_score_act
= XtVaCreateManagedWidget( "XtasMainTitles",
3357 xmPushButtonWidgetClass
,
3359 XmNlabelString
, text
,
3360 XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
,
3361 XmNtopWidget
, b_score_ctk
,
3362 XmNleftAttachment
, XmATTACH_WIDGET
,
3363 XmNleftWidget
, b_score_ctk
,
3364 XmNwidth
, XTAS_DISPLAY_NEW
? XTAS_NOISE_LABEL_SCORE_WIDTH_T
:XTAS_NOISE_LABEL_SCORE_WIDTH_G
,
3365 XmNleftOffset
, XTAS_DISPLAY_NEW
? XTAS_NOISE_OFFSET_T
:XTAS_NOISE_OFFSET_G
,
3368 XmStringFree( text
) ;
3371 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
) ; n
++ ;
3372 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
) ; n
++ ;
3373 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
) ; n
++ ;
3374 XtSetArg( args
[n
], XmNtopOffset
, 2 ) ; n
++ ;
3375 XtSetArg( args
[n
], XmNleftOffset
, 2 ) ; n
++ ;
3376 XtSetArg( args
[n
], XmNrightOffset
, 2 ) ; n
++ ;
3377 form
= XtCreateManagedWidget( "XtasShellSubForm", xmFormWidgetClass
, form_widget
, args
, n
) ;
3379 /* begin of old display */
3380 label_widget
= XtVaCreateManagedWidget( "XtasMainTitles", xmLabelWidgetClass
, form
,
3381 XmNtopAttachment
, XmATTACH_FORM
,
3382 XmNleftAttachment
, XmATTACH_FORM
,
3385 XtasSetLabelString( label_widget
, "Informations Area" ) ;
3388 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
) ; n
++ ;
3389 XtSetArg( args
[n
], XmNtopWidget
, label_widget
) ; n
++ ;
3390 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
) ; n
++ ;
3391 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
) ; n
++ ;
3392 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_POSITION
) ; n
++ ;
3393 XtSetArg( args
[n
], XmNrightPosition
, 48 ) ; n
++ ;
3394 frame
= XtCreateManagedWidget( "XtasFrame", xmFrameWidgetClass
, form
, args
, n
) ;
3396 XtSetArg( args
[n
], XmNheight
, 20 ) ; n
++ ;
3397 tas_winfos
->meswidget
= XtCreateManagedWidget( "XtasUserInfo", xmLabelWidgetClass
, frame
, args
, n
) ;
3398 XtasSetLabelString( tas_winfos
->meswidget
, XTAS_NULINFO
) ;
3402 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
) ; n
++ ;
3403 XtSetArg( args
[n
], XmNtopWidget
, frame
) ; n
++ ;
3404 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
) ; n
++ ;
3405 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
) ; n
++ ;
3406 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
) ; n
++ ;
3407 XtSetArg( args
[n
], XmNleftWidget
, frame
) ; n
++ ;
3408 frame
= XtCreateManagedWidget( "XtasFrame", xmFrameWidgetClass
, form
, args
, n
) ;
3410 XtSetArg( args
[n
], XmNheight
, 20 ) ; n
++ ;
3411 tas_winfos
->hlpwidget
= XtCreateManagedWidget( "XtasHelpInfo", xmLabelWidgetClass
, frame
, args
, n
) ;
3412 XtasSetLabelString( tas_winfos
->hlpwidget
, XTAS_NULINFO
) ;
3415 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_WIDGET
) ; n
++ ;
3416 XtSetArg( args
[n
], XmNbottomWidget
, form
) ; n
++ ;
3417 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
) ; n
++ ;
3418 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
) ; n
++ ;
3419 XtSetArg( args
[n
], XmNleftOffset
, 3 ) ; n
++ ;
3420 XtSetArg( args
[n
], XmNrightOffset
, 3 ) ; n
++ ;
3421 separator2
= XtCreateManagedWidget( "separator2", xmSeparatorWidgetClass
, form_widget
, args
, n
) ;
3424 // XtSetArg( args[n], XmNbottomAttachment, XmATTACH_WIDGET ) ; n++ ;
3425 // XtSetArg( args[n], XmNbottomWidget, separator2 ) ; n++ ;
3426 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
) ; n
++ ;
3427 XtSetArg( args
[n
], XmNtopWidget
, dbase_form
) ; n
++ ;
3428 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
) ; n
++ ;
3429 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
) ; n
++ ;
3430 pan_widget
= XtCreateManagedWidget( "XtasPanWindow", xmPanedWindowWidgetClass
, form_widget
, args
, n
) ;
3432 if (XTAS_DISPLAY_NEW
== 0)
3434 if((form
= XtasCreateNoiseGraphicalScrollList(pan_widget
, tas_winfos
, b_ins_max
))) {
3435 XtAddCallback( b_ins_max
, XmNactivateCallback
, XtasNoiseSortInsideAlimMaxCallback
, (XtPointer
) form
);
3436 XtAddCallback( b_ins_real
, XmNactivateCallback
, XtasNoiseSortInsideAlimRealCallback
, (XtPointer
) form
);
3437 XtAddCallback( b_rise_max
, XmNactivateCallback
, XtasNoiseSortRiseMaxCallback
, (XtPointer
) form
);
3438 XtAddCallback( b_rise_real
, XmNactivateCallback
, XtasNoiseSortRiseRealCallback
, (XtPointer
) form
);
3439 XtAddCallback( b_fall_max
, XmNactivateCallback
, XtasNoiseSortFallMaxCallback
, (XtPointer
) form
);
3440 XtAddCallback( b_fall_real
, XmNactivateCallback
, XtasNoiseSortFallRealCallback
, (XtPointer
) form
);
3441 XtAddCallback( b_score_global
, XmNactivateCallback
, XtasNoiseSortScoreGlobalCallback
, (XtPointer
) form
);
3442 XtAddCallback( b_score_noise
, XmNactivateCallback
, XtasNoiseSortScoreNoiseCallback
, (XtPointer
) form
);
3443 XtAddCallback( b_score_ctk
, XmNactivateCallback
, XtasNoiseSortScoreCrosstalkCallback
, (XtPointer
) form
);
3444 XtAddCallback( b_score_int
, XmNactivateCallback
, XtasNoiseSortScoreIntervalCallback
, (XtPointer
) form
);
3445 XtAddCallback( b_score_act
, XmNactivateCallback
, XtasNoiseSortScoreActivityCallback
, (XtPointer
) form
);
3448 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_WIDGET
) ; n
++ ;
3449 XtSetArg( args
[n
], XmNbottomWidget
, separator2
) ; n
++ ;
3450 XtSetArg( args
[n
], XmNbottomOffset
, 5 ) ; n
++ ;
3451 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
) ; n
++ ;
3452 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
) ; n
++ ;
3453 XtSetArg( args
[n
], XmNrightOffset
, 5 ) ; n
++ ;
3454 dbase_form
= XtCreateManagedWidget( "XtasFrame", xmFormWidgetClass
, form_widget
, args
, n
) ;
3456 XtVaSetValues (pan_widget
, XmNbottomAttachment
, XmATTACH_WIDGET
, XmNbottomWidget
, dbase_form
, NULL
);
3459 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
3460 XtSetArg( args
[n
], XmNleftOffset
, 5 ); n
++;
3461 label_widget
= XtCreateManagedWidget( "XtasLabels", xmLabelWidgetClass
, dbase_form
, args
, n
);
3462 XtasNoiseFillNbVisualizeResults (1, label_widget
);
3465 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
3466 XtSetArg ( args
[n
], XmNsensitive
, XtasNoiseTab
->NBDISPLAY
<= XTAS_NOISE_MAX_NBSIG_WINDOW
? False
:True
); n
++;
3467 buttons_form
= XtCreateManagedWidget ("XtasButtonsFormNext", xmFormWidgetClass
, dbase_form
, args
, n
);
3470 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
3471 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
3472 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
); n
++;
3473 XtSetArg ( args
[n
], XmNwidth
, 60 ); n
++;
3474 button
= XtCreateManagedWidget( "XtasShellSubForm",
3475 xmPushButtonWidgetClass
,
3478 XtasSetLabelString( button
, " ->| " );
3480 XtAddCallback( button
,
3481 XmNactivateCallback
,
3482 XtasNoiseTreatEndCallback
,
3486 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
3487 XtSetArg( args
[n
], XmNrightWidget
, button
); n
++;
3488 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
3489 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
); n
++;
3490 XtSetArg( args
[n
], XmNwidth
, 60 ); n
++;
3491 button
= XtCreateManagedWidget( "XtasShellSubForm",
3492 xmPushButtonWidgetClass
,
3495 XtasSetLabelString( button
, " ->-> " );
3496 XtAddCallback( button
,
3497 XmNactivateCallback
,
3498 XtasNoiseTreatFastFwdCallback
,
3502 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
3503 XtSetArg( args
[n
], XmNrightWidget
, button
); n
++;
3504 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
3505 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
); n
++;
3506 XtSetArg( args
[n
], XmNwidth
, 60 ); n
++;
3507 button
= XtCreateManagedWidget( "XtasShellSubForm",
3508 xmPushButtonWidgetClass
,
3511 XtasSetLabelString( button
, " -> " );
3512 XtAddCallback( button
,
3513 XmNactivateCallback
,
3514 XtasNoiseTreatNextCallback
,
3518 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
3519 XtSetArg ( args
[n
], XmNrightWidget
, buttons_form
); n
++;
3520 XtSetArg ( args
[n
], XmNsensitive
, False
); n
++;
3521 buttons_form
= XtCreateManagedWidget ("XtasButtonsFormPrev", xmFormWidgetClass
, dbase_form
, args
, n
);
3524 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
3525 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
3526 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
); n
++;
3527 XtSetArg( args
[n
], XmNwidth
, 60 ); n
++;
3528 button
= XtCreateManagedWidget( "XtasShellSubForm",
3529 xmPushButtonWidgetClass
,
3532 XtasSetLabelString( button
, " <- " );
3533 XtAddCallback( button
,
3534 XmNactivateCallback
,
3535 XtasNoiseTreatPrevCallback
,
3539 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
3540 XtSetArg( args
[n
], XmNrightWidget
, button
); n
++;
3541 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
3542 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
); n
++;
3543 XtSetArg( args
[n
], XmNwidth
, 60 ); n
++;
3544 button
= XtCreateManagedWidget( "XtasShellSubForm",
3545 xmPushButtonWidgetClass
,
3548 XtasSetLabelString( button
, " <-<- " );
3549 XtAddCallback( button
,
3550 XmNactivateCallback
,
3551 XtasNoiseTreatFastRewCallback
,
3555 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
3556 XtSetArg( args
[n
], XmNrightWidget
, button
); n
++;
3557 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
3558 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
); n
++;
3559 XtSetArg( args
[n
], XmNwidth
, 60 ); n
++;
3560 button
= XtCreateManagedWidget( "XtasShellSubForm",
3561 xmPushButtonWidgetClass
,
3564 XtasSetLabelString( button
, " |<- " );
3565 XtAddCallback( button
,
3566 XmNactivateCallback
,
3567 XtasNoiseTreatTopCallback
,
3572 form
= XtasCreateNoiseTextualScrollList(pan_widget
, tas_winfos
, b_ins_max
) ;
3573 XtAddCallback( b_ins_max
, XmNactivateCallback
, XtasNoiseSortInsideAlimMaxCallback
, (XtPointer
) form
);
3574 XtAddCallback( b_ins_real
, XmNactivateCallback
, XtasNoiseSortInsideAlimRealCallback
, (XtPointer
) form
);
3575 XtAddCallback( b_rise_max
, XmNactivateCallback
, XtasNoiseSortRiseMaxCallback
, (XtPointer
) form
);
3576 XtAddCallback( b_rise_real
, XmNactivateCallback
, XtasNoiseSortRiseRealCallback
, (XtPointer
) form
);
3577 XtAddCallback( b_fall_max
, XmNactivateCallback
, XtasNoiseSortFallMaxCallback
, (XtPointer
) form
);
3578 XtAddCallback( b_fall_real
, XmNactivateCallback
, XtasNoiseSortFallRealCallback
, (XtPointer
) form
);
3579 XtAddCallback( b_score_global
, XmNactivateCallback
, XtasNoiseSortScoreGlobalCallback
, (XtPointer
) form
);
3580 XtAddCallback( b_score_noise
, XmNactivateCallback
, XtasNoiseSortScoreNoiseCallback
, (XtPointer
) form
);
3581 XtAddCallback( b_score_ctk
, XmNactivateCallback
, XtasNoiseSortScoreCrosstalkCallback
, (XtPointer
) form
);
3582 XtAddCallback( b_score_int
, XmNactivateCallback
, XtasNoiseSortScoreIntervalCallback
, (XtPointer
) form
);
3583 XtAddCallback( b_score_act
, XmNactivateCallback
, XtasNoiseSortScoreActivityCallback
, (XtPointer
) form
);
3588 XtManageChild( form_widget
) ;
3589 return(form_widget
) ;
3593 /*---------------------------------------------------------------------------*/
3595 /* FUNCTION : XtasCreateNoiseMenus */
3597 /* IN ARGS : .parent : Parent widget for the Menu Bar. */
3599 /* OUT ARGS : .The value of the Menu Bar widget. */
3601 /* OBJECT : Creates the menu bar of the detail window. */
3603 /*---------------------------------------------------------------------------*/
3604 Widget
XtasCreateNoiseMenus( parent
, tas_winfos
)
3606 XtasWindowStruct
*tas_winfos
;
3612 for(n
= 0 ; XtasNoiseMenuFile
[n
].label
!= NULL
; n
++)
3613 XtasNoiseMenuFile
[n
].callback_data
= (XtPointer
) tas_winfos
;
3614 for(n
= 0 ; XtasNoiseMenuView
[n
].label
!= NULL
; n
++)
3615 XtasNoiseMenuView
[n
].callback_data
= (XtPointer
) tas_winfos
;
3616 for(n
= 0 ; XtasNoiseMenuOptions
[n
].label
!= NULL
; n
++)
3617 XtasNoiseMenuOptions
[n
].callback_data
= (XtPointer
) tas_winfos
;
3620 menu_bar
= XmCreateMenuBar( parent
, "XtasMenuBar", args
, n
) ;
3621 XalBuildMenus( menu_bar
, XtasNoiseMenu
) ;
3622 return( menu_bar
) ;
3625 /*---------------------------------------------------------------------------*/
3627 /* FUNCTION : XtasNoiseAnalysis */
3629 /* IN ARGS : number of item per page */
3631 /* OUT ARGS : ( void ) */
3633 /* OBJECT : the noise analysis function. */
3635 /*---------------------------------------------------------------------------*/
3636 int XtasNoiseAnalysis (void)
3639 XtasWindowStruct
*tas_winfos
;
3641 Widget main_window
;
3643 ttvsig_list
*ptsig
;
3647 if(sigsetjmp( XtasMyEnv
, 1 ) == 0) {
3648 ctk_setprogressbar(XtasStbInProgress
);
3649 XtasNoiseTab
= stb_ctk_get_stat(XtasMainParam
->stbfig
);
3650 XtasDestroyStbInProgress();
3663 if (XTAS_DISPLAY_NEW
) {
3664 for ( n
= 0 ; n
< XtasNoiseTab
->NBDISPLAY
; n
++ ) {
3665 ptsig
= XtasNoiseTab
->TAB
[n
].NODE
->ROOT
;
3667 ttv_getsigname (XtasMainParam
->stbfig
->FIG
, buf
, ptsig
);
3669 if ((width
= strlen(buf
)) > XtasNoiseLabelSigNameLength
) {
3670 /// if (width < XTAS_NOISE_NAME_MAX_LENGTH)
3671 XtasNoiseLabelSigNameLength
= width
;
3673 /// XtasNoiseLabelSigNameLength = XTAS_NOISE_NAME_MAX_LENGTH;
3676 /* if ((width = strlen(ptsig->NETNAME)) > XtasNoiseLabelNetNameLength ) {
3677 if (width < XTAS_NOISE_NAME_MAX_LENGTH)
3678 XtasNoiseLabelNetNameLength = width;
3680 XtasNoiseLabelNetNameLength = XTAS_NOISE_NAME_MAX_LENGTH;
3684 // width = XTAS_NOISE_WINDOW_WIDTH_T + (XtasNoiseLabelSigNameLength*7) + (XtasNoiseLabelNetNameLength*7);
3686 width
= XTAS_NOISE_WINDOW_WIDTH_T
+ (XtasNoiseLabelSigNameLength
*7);
3689 /* Creation de la structure pour la fenetre de resultats */
3690 tas_winfos
= (XtasWindowStruct
*) mbkalloc (sizeof(XtasWindowStruct
));
3691 tas_winfos
->topwidget
= XtVaCreatePopupShell (NULL
, topLevelShellWidgetClass
,
3693 XmNallowShellResize
, False
,
3694 XmNdeleteResponse
, XmDESTROY
,
3696 XtasNoiseResultsWidget
= tas_winfos
->topwidget
;
3699 sprintf (buf
, XTAS_NAME
": Noise Analysis Results - %s", XtasMainParam
->ttvfig
->INFO
->FIGNAME
);
3700 // XtSetArg (args[n], XmNtitle , XTAS_NAME": Noise Analysis Results");n++ ;
3701 XtSetArg (args
[n
], XmNtitle
, buf
);n
++ ;
3702 XtSetArg (args
[n
], XmNwidth
, XTAS_DISPLAY_NEW
? width
:XTAS_NOISE_WINDOW_WIDTH_G
); n
++ ;
3703 XtSetValues (tas_winfos
->topwidget
, args
, n
);
3705 XalCustomIcon (tas_winfos
->topwidget
, XTAS_NOISE_MAP
);
3706 main_window
= XmCreateMainWindow (tas_winfos
->topwidget
, "XtasMain", args
, n
);
3707 XtManageChild (main_window
);
3708 tas_winfos
->menwidget
= XtasCreateNoiseMenus (main_window
, tas_winfos
);
3709 XtManageChild (tas_winfos
->menwidget
);
3711 tas_winfos
->wrkwidget
= XtasCreateNoiseList (main_window
, tas_winfos
);
3713 tas_winfos
->errwidget
= XalCreateErrorBox (tas_winfos
->wrkwidget
);
3714 tas_winfos
->warwidget
= XalCreateWarningBox (tas_winfos
->wrkwidget
);
3716 XmMainWindowSetAreas (main_window
,
3717 tas_winfos
->menwidget
,
3721 tas_winfos
->wrkwidget
);
3723 XtPopup (tas_winfos
->topwidget
, XtGrabNone
);
3727 /*---------------------------------------------------------------------------*/
3729 /* FUNCTION : XtasNoiseOkCallback */
3731 /* IN ARGS : .parent : The parent widget. */
3732 /* .client_data : */
3733 /* .call_data : Toolkit informations. */
3735 /* OUT ARGS : ( void ) */
3737 /* OBJECT : The drawing function for crosstalk informations */
3739 /*---------------------------------------------------------------------------*/
3740 void XtasNoiseOkCallback ( parent
, client_data
, call_data
)
3742 XtPointer client_data
;
3743 XtPointer call_data
;
3749 XtasWindowStruct
*stb_result
= (XtasWindowStruct
*) client_data
;
3751 if (XtasNoiseResultsWidget
) {
3752 XtDestroyWidget (XtasNoiseResultsWidget
) ;
3753 XtasNoiseResultsWidget
= NULL
;
3757 // mbkfree (XtasNoiseTab);
3758 XtasNoiseTab
= NULL
;
3761 XtasNoiseSelectedIndex
= XTAS_NOISE_NO_SELECT
;
3762 XtasNoiseCurrentTopIndex
= 0;
3764 if (XTAS_DISPLAY_NEW
== 0) {
3765 text
= XmTextGetString(XtNameToWidget(parent
, "*XtasNoiseNbItemText"));
3766 nb_item
= strtol (text
, &ptend
, 10);
3767 if((*ptend
!= '\0') || (nb_item
< 0)) {
3768 XtManageChild (parent
);
3769 XalDrawMessage ( stb_result
->errwidget
,
3770 "Bad value for Number of items per page:\nMust be a positive integer.");
3776 XTAS_NOISE_MAX_NBSIG_WINDOW
= nb_item
;
3778 XtUnmanageChild (parent
);
3780 XalSetCursor( stb_result
->topwidget
, WAIT
);
3781 XtasSetLabelString( stb_result
->meswidget
, "Noise Analysis is running...");
3782 XalForceUpdate( stb_result
->topwidget
);
3784 if (XtasNoiseAnalysis () != 0) {
3785 XalSetCursor( stb_result
->topwidget
, NORMAL
);
3786 XtasSetLabelString( stb_result
->meswidget
, "No Noise");
3787 XalForceUpdate( stb_result
->topwidget
);
3790 XalSetCursor( stb_result
->topwidget
, NORMAL
);
3791 XtasSetLabelString( stb_result
->meswidget
, "Noise Analysis Completed");
3792 XalForceUpdate( stb_result
->topwidget
);
3797 /*---------------------------------------------------------------------------*/
3799 /* FUNCTION : XtasCancelNoiseCallback */
3801 /* IN ARGS : .parent : The parent widget. */
3802 /* .client_data : */
3803 /* .call_data : Toolkit informations. */
3805 /* OUT ARGS : ( void ) */
3807 /* OBJECT : The drawing function for crosstalk informations */
3809 /*---------------------------------------------------------------------------*/
3810 void XtasCancelNoiseCallback ( parent
, client_data
, call_data
)
3812 XtPointer client_data
;
3813 XtPointer call_data
;
3815 XtUnmanageChild ((Widget
)client_data
);
3819 /*---------------------------------------------------------------------------*/
3821 /* FUNCTION : XtasNoiseCallback */
3823 /* IN ARGS : .parent : The parent widget. */
3824 /* .client_data : */
3825 /* .call_data : Toolkit informations. */
3827 /* OUT ARGS : ( void ) */
3829 /* OBJECT : The drawing function for crosstalk informations */
3831 /*---------------------------------------------------------------------------*/
3832 void XtasNoiseCallback (parent
, client_data
, call_data
)
3834 XtPointer client_data
;
3835 XtPointer call_data
;
3839 Atom WM_DELETE_WINDOW
;
3840 Widget form
, frame
, sub_form
, label_widget
, text_widget
;
3842 XtasWindowStruct
*tas_winfos
= (XtasWindowStruct
*)client_data
;
3844 if (XtasAppNotReady ())
3847 if ((XTAS_CTX_LOADED
& XTAS_FROM_ANALYSIS
) != XTAS_FROM_ANALYSIS
) {
3848 XalDrawMessage(tas_winfos
->errwidget
,
3849 "Crosstalk Analysis must have been run before");
3853 if (XTAS_DISPLAY_NEW
== 1) {
3854 XtasNoiseOkCallback (XtasMainWindow
, (XtPointer
)client_data
, NULL
);
3857 if(!XtasNoiseParamWidget
) {
3859 XtSetArg ( args
[n
], XmNtitle
, XTAS_NAME
": Noise Parameterization" ); n
++;
3860 XtSetArg ( args
[n
], XmNdialogStyle
, XmDIALOG_APPLICATION_MODAL
); n
++;
3861 // XtSetArg ( args[n], XmNminWidth, 200 ); n++;
3862 // XtSetArg ( args[n], XmNmaxWidth, 200 ); n++;
3863 // XtSetArg ( args[n], XmNminHeight, 200 ); n++;
3864 // XtSetArg ( args[n], XmNmaxHeight, 200 ); n++;
3865 XtasNoiseParamWidget
= XmCreatePromptDialog (tas_winfos
->topwidget
, "XtasParamBox", args
, n
);
3866 HelpFather
= XtasNoiseParamWidget
;
3867 XtUnmanageChild(XmSelectionBoxGetChild(XtasNoiseParamWidget
,XmDIALOG_TEXT
));
3868 XtUnmanageChild(XmSelectionBoxGetChild(XtasNoiseParamWidget
,XmDIALOG_PROMPT_LABEL
));
3869 XtUnmanageChild(XmSelectionBoxGetChild(XtasNoiseParamWidget
,XmDIALOG_HELP_BUTTON
));
3870 XtAddCallback( XtasNoiseParamWidget
, XmNokCallback
, XtasNoiseOkCallback
, (XtPointer
)client_data
);
3871 XtAddCallback( XtasNoiseParamWidget
, XmNcancelCallback
, XtasCancelNoiseCallback
, (XtPointer
)XtasNoiseParamWidget
);
3872 WM_DELETE_WINDOW
= XmInternAtom(XtDisplay(XtasDeskMainForm
), "WM_DELETE_WINDOW", False
);
3873 XmAddWMProtocolCallback(XtParent(XtasNoiseParamWidget
), WM_DELETE_WINDOW
, XtasCancelNoiseCallback
, (XtPointer
)XtasNoiseParamWidget
);
3876 form
= XtCreateManagedWidget( "XtasForm", xmFormWidgetClass
, XtasNoiseParamWidget
, args
, n
);
3879 /*--------- frame <Number of signals to display> ---------*/
3881 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
3882 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
3883 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
3884 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_FORM
); n
++;
3885 frame
= XtCreateManagedWidget( "XtasFrame", xmFrameWidgetClass
, form
, args
, n
);
3887 text
= XmStringCreateSimple ("Results Display");
3889 #if XTAS_MOTIF_VERSION >= 20000
3890 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_TITLE_CHILD
); n
++;
3892 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_TITLE_CHILD
); n
++;
3894 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
3895 label_widget
= XtCreateManagedWidget( "XtasLabels", xmLabelWidgetClass
, frame
, args
, n
);
3896 XmStringFree (text
);
3899 #if XTAS_MOTIF_VERSION >= 20000
3900 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_WORKAREA_CHILD
); n
++;
3902 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_WORKAREA_CHILD
); n
++;
3904 sub_form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, frame
, args
, n
);
3907 sub_form
= XtCreateManagedWidget( "XtasNoiseMaxSigForm", xmFormWidgetClass
, sub_form
, args
, n
);
3909 text
= XmStringCreateSimple ("Number of items per page");
3911 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
3912 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
3913 XtSetArg ( args
[n
], XmNleftOffset
, 5 ); n
++;
3914 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_FORM
); n
++;
3915 XtSetArg ( args
[n
], XmNlabelString
, text
); n
++;
3916 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
3917 label_widget
= XtCreateManagedWidget( "XtasLabel", xmLabelWidgetClass
, sub_form
, args
, n
);
3918 XmStringFree (text
);
3921 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
3922 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_FORM
); n
++;
3923 XtSetArg ( args
[n
], XmNbottomOffset
, 5 ); n
++;
3924 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
3925 XtSetArg ( args
[n
], XmNleftWidget
, label_widget
); n
++;
3926 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
3927 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
3928 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
3929 XtSetArg ( args
[n
], XmNwidth
, 50 ); n
++;
3930 text_widget
= XtCreateManagedWidget( "XtasNoiseNbItemText", xmTextWidgetClass
, sub_form
, args
, n
);
3931 XmTextSetString (text_widget
, "15");
3935 XtManageChild (XtasNoiseParamWidget
);