1 /****************************************************************************/
3 /* Produit : XTAS Version 5 */
4 /* Fichier : xtas_simu_path.c */
6 /* Author(s) : Caroline BLED Date : 02/25/2003 */
9 /****************************************************************************/
13 char XTAS_SIMU_RES
= 'N';
14 Widget XtasSimuParamWidget
= NULL
;
15 xtas_simu_param_struct
*XtasSimuParams
= NULL
;
16 char XTAS_SIMU_NEW_NETLIST
= 'N';
17 Widget XtasSimuMessageWidget
= NULL
;
19 /*--------------------------------------------------------------------------*/
21 /* XtasSimuCancelCallback */
23 /*--------------------------------------------------------------------------*/
24 void XtasSimuCancelCallback (widget
, client_data
, call_data
)
26 XtPointer client_data
;
29 XtUnmanageChild ((Widget
) client_data
);
32 /*--------------------------------------------------------------------------*/
34 /* XtasSimuSetParamString */
36 /*--------------------------------------------------------------------------*/
37 void XtasSimuSetParamString (dest
, text
)
42 *dest
= (char*) mbkalloc (sizeof (char) * (strlen(text
)+1));
44 *dest
= (char*) mbkrealloc (*dest
, sizeof (char) * (strlen(text
)+1));
49 /*--------------------------------------------------------------------------*/
51 /* XtasSimuFreeParams */
53 /*--------------------------------------------------------------------------*/
54 void XtasSimuFreeParams (void)
56 mbkfree (XtasSimuParams
->tec
);
57 mbkfree (XtasSimuParams
);
58 XtasSimuParams
= NULL
;
61 /*--------------------------------------------------------------------------*/
63 /* XtasDestroySimuParams */
65 /*--------------------------------------------------------------------------*/
66 void XtasDestroySimuParams (void)
68 if (XtasSimuParamWidget
) {
69 XtDestroyWidget (XtasSimuParamWidget
);
70 XtasSimuParamWidget
= NULL
;
73 XtasSimuFreeParams ();
76 /*--------------------------------------------------------------------------*/
78 /* XtasSimuUpdateMessageWindow */
80 /*--------------------------------------------------------------------------*/
81 void XtasSimuUpdateMessageWindow (parent
, message
, display
)
86 static Widget XtasSimuMessageLabel
= NULL
;
87 XmString text
, textLabel
;
92 textLabel
= XmStringCreateSimple ("");
94 textLabel
= XmStringCreateSimple (message
);
96 if (!XtasSimuMessageWidget
) {
97 text
= XmStringCreateSimple( "Simulation in progress..." ) ;
99 XtSetArg( args
[n
], XmNtitle
, XTAS_NAME
": Simulation " ) ; n
++ ;
100 XtSetArg( args
[n
], XmNmessageString
, text
) ; n
++ ;
101 XtSetArg( args
[n
], XmNwidth
, 300) ; n
++ ;
102 XtSetArg( args
[n
], XmNnoResize
, True
) ; n
++ ;
103 XtSetArg( args
[n
], XmNdialogStyle
, XmDIALOG_APPLICATION_MODAL
) ; n
++ ;
104 XtasSimuMessageWidget
= XmCreateWorkingDialog (parent
, "XtasInfosBox",args
, n
) ;
105 HelpFather
= XtasSimuMessageWidget
;
106 XtUnmanageChild (XtNameToWidget (XtasSimuMessageWidget
,"Help"));
107 XtUnmanageChild (XtNameToWidget (XtasSimuMessageWidget
,"Cancel"));
108 XtUnmanageChild (XtNameToWidget (XtasSimuMessageWidget
,"OK"));
109 XtUnmanageChild (XmMessageBoxGetChild (XtasSimuMessageWidget
,XmDIALOG_SEPARATOR
));
110 //XmAddTabGroup( XtasStbInProgressWidget ) ;
114 XtSetArg( args
[n
], XmNborderWidth
, 0 ) ; n
++ ;
115 form
= XtCreateManagedWidget( "XtasTitleForm", xmFormWidgetClass
, XtasSimuMessageWidget
, args
, n
) ;
118 XtSetArg( args
[n
], XmNtopAttachment
, XmATTACH_FORM
) ; n
++ ;
119 XtSetArg( args
[n
], XmNleftAttachment
, XmATTACH_FORM
) ; n
++ ;
120 XtSetArg( args
[n
], XmNrightAttachment
, XmATTACH_FORM
) ; n
++ ;
121 XtSetArg( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
) ; n
++ ;
122 XtSetArg( args
[n
], XmNalignment
, XmALIGNMENT_CENTER
) ; n
++ ;
123 XtSetArg( args
[n
], XmNlabelString
, textLabel
) ; n
++ ;
124 XtasSimuMessageLabel
= XtCreateManagedWidget( "XtasMainTitles", xmLabelGadgetClass
, form
, args
, n
) ;
129 XtVaSetValues(XtasSimuMessageLabel
, XmNlabelString
, textLabel
, NULL
);
130 // XtVaSetValues(XtasSimuMessageWidget, XmNwidth, 300, NULL);
135 XtManageChild( XtasSimuMessageWidget
) ;
136 XalForceUpdate(XtasSimuMessageWidget
) ;
139 XmStringFree(textLabel
);
143 /*--------------------------------------------------------------------------*/
145 /* XtasSimuDestroyMessageWindow */
147 /*--------------------------------------------------------------------------*/
148 void XtasSimuDestroyMessageWindow ()
151 if(XtasSimuMessageWidget
) {
152 XtUnmanageChild (XtasSimuMessageWidget
);
153 XmUpdateDisplay (XtParent(XtasSimuMessageWidget
));
154 XtDestroyWidget(XtasSimuMessageWidget
) ;
156 XtasSimuMessageWidget
= NULL
;
159 /*--------------------------------------------------------------------------*/
163 /*--------------------------------------------------------------------------*/
164 void XtasSimuPath (tas_winfos
)
165 XtasWindowStruct
*tas_winfos
;
167 XtasDetailPathSetStruct
*detail_set
;
169 ttvcritic_list
*critic
;
170 // static char *prevfigname = NULL;
171 static lofig_list
*lofig
= NULL
;
172 static cnsfig_list
*cnsfig
= NULL
;
178 chain_list
*chcritic
;
180 detail_set
= (XtasDetailPathSetStruct
*) tas_winfos
->userdata
;
181 head
= detail_set
->CUR_DETAIL
->DATA
;
185 if (sigsetjmp( XtasMyEnv
, 1 ) == 0)
187 XtasSimuUpdateMessageWindow (detail_set
->TOP_LEVEL
, " ", 0);
188 if (!lofig
|| (XTAS_SIMU_NEW_NETLIST
== 'Y')) {
189 if (filepath (XtasMainParam
->ttvfig
->INFO
->FIGNAME
,"cns"))
191 if ((filepath (XtasMainParam
->ttvfig
->INFO
->FIGNAME
,"gns")))
193 if ((filepath (XtasMainParam
->ttvfig
->INFO
->FIGNAME
,IN_LO
)))
196 XtasSimuUpdateMessageWindow (NULL
, "Loading cns figure", 1);
197 if((cnsfig
=getloadedcnsfig(XtasMainParam
->ttvfig
->INFO
->FIGNAME
)) == NULL
)
199 cnsfig
= getcnsfig(XtasMainParam
->ttvfig
->INFO
->FIGNAME
, NULL
);
200 cns_addmultivoltage(getloadedinffig(cnsfig
->NAME
),cnsfig
) ;
202 lofig
= getloadedlofig (XtasMainParam
->ttvfig
->INFO
->FIGNAME
);
206 lofig
= getlofig(XtasMainParam
->ttvfig
->INFO
->FIGNAME
,'A');
211 sprintf (buf
, "Can't get description of figure %s.\nSimulation aborted.",XtasMainParam
->ttvfig
->INFO
->FIGNAME
);
212 XalDrawMessage (tas_winfos
->errwidget
, buf
);
215 // if a gns file exist, create corresponding table
217 LoadDynamicLibraries (NULL
);
218 LATEST_GNS_RUN
= gnsParseCorrespondanceTables(XtasMainParam
->ttvfig
->INFO
->FIGNAME
);
219 UpdateTransistorsForYagle(LATEST_GNS_RUN
,TRUE
);
223 // prevfigname = XtasMainParam->ttvfig->INFO->FIGNAME;
224 XTAS_SIMU_NEW_NETLIST
= 'N';
226 XtasSetLabelString( detail_set
->INFO_HELP
, XTAS_NULINFO
);
227 XtasSetLabelString( detail_set
->INFO_HELP
, "Simulation is running..." );
230 // XtasCleanStates();
231 // XalSetCursor( detail_set->TOP_LEVEL, WAIT );
232 // XalForceUpdate( detail_set->TOP_LEVEL );
234 tas_simu_set_progression (XtasSimuUpdateMessageWindow
);
236 chcritic
= addchain( NULL
, critic
);
237 if((detail_set
->PARENT
->PARAM
->SCAN_TYPE
& TTV_FIND_MAX
) == TTV_FIND_MAX
)
238 res_simu
= tas_simu_netlist(XtasMainParam
->ttvfig
, lofig
, cnsfig
, NULL
, chcritic
, SIM_MAX
, 1, NULL
, NULL
, NULL
, 0 , 0 );
240 res_simu
= tas_simu_netlist(XtasMainParam
->ttvfig
, lofig
, cnsfig
, NULL
, chcritic
, SIM_MAX
, 1, NULL
, NULL
, NULL
, 0 , 0 );
241 // on appelle toujours avec SIM_MAX car TAS ne gere pas les bons delay min
242 // pour certain design
243 freechain( chcritic
);
246 XtasSimuDestroyMessageWindow ();
247 XtasGetWarningMess() ;
252 XtasSetLabelString( detail_set
->INFO_HELP
, XTAS_NULINFO
);
253 XtasSetLabelString( detail_set
->INFO_HELP
, "Simulation failed" );
257 XtasSetLabelString( detail_set
->INFO_HELP
, XTAS_NULINFO
);
258 XtasSetLabelString( detail_set
->INFO_HELP
, "Simulation is finished" );
262 XalSetCursor( detail_set
->TOP_LEVEL
, NORMAL
);
263 XalForceUpdate( detail_set
->TOP_LEVEL
);
266 XtasPathDetailList( detail_set
->PARENT
->TOP_LEVEL
,
267 detail_set
->PARENT
);
271 /*--------------------------------------------------------------------------*/
273 /* XtasSimuUpdateVariables */
275 /*--------------------------------------------------------------------------*/
276 void XtasSimuUpdateVariables (void)
278 char pt
[1024], buf
[1024];
281 SIM_TECHFILE
= sensitive_namealloc (XtasSimuParams
->tec
);
282 avt_sethashvar ("simTechnologyName", SIM_TECHFILE
);
285 V_INT_TAB
[__SIM_TOOL
].VALUE
= XtasSimuParams
->tool
;
286 SIM_SPICESTRING
= sensitive_namealloc (XtasSimuParams
->spicestr
);
287 avt_sethashvar ("avtSpiceString", SIM_SPICESTRING
);
288 SIM_SPICEOUT
= sensitive_namealloc (XtasSimuParams
->spice_out
);
289 avt_sethashvar ("avtSpiceOutFile", SIM_SPICEOUT
);
290 SIM_SPICESTDOUT
= sensitive_namealloc (XtasSimuParams
->spice_stdout
);
291 avt_sethashvar ("avtSpiceStdoutFile", SIM_SPICESTDOUT
);
292 V_BOOL_TAB
[__SIM_USE_PRINT
].VALUE
= XtasSimuParams
->use_print
==SIM_NO
?0:1;
293 V_BOOL_TAB
[__SIM_USE_MEAS
].VALUE
= XtasSimuParams
->use_meas
==SIM_NO
?0:1;
296 V_FLOAT_TAB
[__SIM_TIME
].VALUE
= XtasSimuParams
->trans_time
*1e-9;
297 V_FLOAT_TAB
[__SIM_POWER_SUPPLY
].VALUE
= XtasSimuParams
->vdd
;
298 sprintf (buf
, "%f", V_FLOAT_TAB
[__SIM_POWER_SUPPLY
].VALUE
);
299 avt_sethashvar ("simPowerSupply", buf
);
300 V_FLOAT_TAB
[__SIM_TEMP
].VALUE
= XtasSimuParams
->temp
;
301 sprintf (buf
, "%f", V_FLOAT_TAB
[__SIM_TEMP
].VALUE
);
302 avt_sethashvar ("simTemperature", buf
);
303 SIM_SPICE_OPTIONS
= sensitive_namealloc (XtasSimuParams
->spice_options
);
304 avt_sethashvar ("simSpiceOptions", SIM_SPICE_OPTIONS
);
307 V_FLOAT_TAB
[__SIM_TRAN_STEP
].VALUE
= XtasSimuParams
->trans_step
* 1e-12 ;
309 /* Input/Output Constraints */
310 SIM_INPUT_START
= XtasSimuParams
->input_start
* (1.0e-12);
311 sprintf (buf
, "%f", SIM_INPUT_START
);
312 avt_sethashvar ("simInputStartTime", buf
);
313 SIM_SLOP
= XtasSimuParams
->input_slope
;
314 sprintf (buf
, "%fe-12", SIM_SLOP
);
315 avt_sethashvar ("simSlope", buf
);
316 SIM_OUT_CAPA_VAL
= XtasSimuParams
->out_capa_val
;
317 sprintf (buf
, "%f", SIM_OUT_CAPA_VAL
);
318 avt_sethashvar ("simOutCapaValue", buf
);
321 SIM_VTH
= XtasSimuParams
->vth
/ 100.0;
322 sprintf (buf
, "%f", SIM_VTH
);
323 avt_sethashvar ("simVth", buf
);
324 SIM_VTH_HIGH
= XtasSimuParams
->vth_high
/ 100.0;
325 sprintf (buf
, "%f", SIM_VTH_HIGH
);
326 avt_sethashvar ("simVthHigh", buf
);
327 SIM_VTH_LOW
= XtasSimuParams
->vth_low
/ 100.0;
328 sprintf (buf
, "%f", SIM_VTH_LOW
);
329 avt_sethashvar ("simVthLow", buf
);
333 /*--------------------------------------------------------------------------*/
335 /* XtasSimuGetParamsValues */
337 /*--------------------------------------------------------------------------*/
338 int XtasSimuGetParamsValues (void)
345 /***** Get Technology File *****/
346 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuTechnoFileText");
347 text
= XmTextGetString (text_w
);
349 XtasSimuSetParamString (&(XtasSimuParams
->tec
), text
);
353 /***** Get Command Line *****/
354 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuCmdLineText");
355 text
= XmTextGetString (text_w
);
357 XtasSimuSetParamString (&(XtasSimuParams
->spicestr
), text
);
361 /***** Get output Format *****/
362 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuOutFormatText");
363 text
= XmTextGetString (text_w
);
365 XtasSimuSetParamString (&(XtasSimuParams
->spice_out
), text
);
369 /***** Get stdout Format *****/
370 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuStdoutFormatText");
371 text
= XmTextGetString (text_w
);
373 XtasSimuSetParamString (&(XtasSimuParams
->spice_stdout
), text
);
377 /***** Get Transient Values *****/
379 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuTimeText");
380 text
= XmTextGetString (text_w
);
382 value
= strtod (text
, &ptend
);
383 if((*ptend
!= '\0') || (value
< 0)) {
384 XalDrawMessage (XtasErrorWidget
, "Bad value for Time.\nIt must be a positive floating number.");
388 XtasSimuParams
->trans_time
= value
;
393 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuStepText");
394 text
= XmTextGetString (text_w
);
396 value
= strtod (text
, &ptend
);
397 if((*ptend
!= '\0') || (value
<= 0)) {
398 XalDrawMessage (XtasErrorWidget
, "Bad value for Step.\nIt must be a positive floating number.");
402 XtasSimuParams
->trans_step
= value
;
406 /***** Get Constraints Values *****/
407 /* Get Input Start Time Value */
408 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuInputStartText");
409 text
= XmTextGetString (text_w
);
411 value
= strtod (text
, &ptend
);
412 if((*ptend
!= '\0') || (value
< 0)) {
413 XalDrawMessage (XtasErrorWidget
, "Bad value for Input Start Time.\nIt must be a positive floating number.");
417 XtasSimuParams
->input_start
= value
;
421 /* Get Input Slope Time Value */
422 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuInputSlopeText");
423 text
= XmTextGetString (text_w
);
425 value
= strtod (text
, &ptend
);
426 if((*ptend
!= '\0') || (value
< 0)) {
427 XalDrawMessage (XtasErrorWidget
, "Bad value for Input Slope Time.\nIt must be a positive floating number.");
431 XtasSimuParams
->input_slope
= value
;
435 /* Get Out Capacitance Value Value */
436 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuOutCapaValText");
437 text
= XmTextGetString (text_w
);
439 value
= strtod (text
, &ptend
);
440 if((*ptend
!= '\0') || (value
< 0)) {
441 XalDrawMessage (XtasErrorWidget
, "Bad value for Output Capacitance Value.\nIt must be a positive floating number.");
445 XtasSimuParams
->out_capa_val
= value
;
449 /***** Get General Values *****/
451 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuVddText");
452 text
= XmTextGetString (text_w
);
454 value
= strtod (text
, &ptend
);
455 if((*ptend
!= '\0')) {
456 XalDrawMessage (XtasErrorWidget
, "Bad value for VDD.\nIt must be a floating number.");
460 XtasSimuParams
->vdd
= value
;
465 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuVthText");
466 text
= XmTextGetString (text_w
);
468 value
= strtod (text
, &ptend
);
469 if((*ptend
!= '\0') || (value
< 0) || (value
> 100)) {
470 XalDrawMessage (XtasErrorWidget
, "Bad value for VTH.\nIt must be a floating number\nbetween 0 and 100.");
474 XtasSimuParams
->vth
= value
;
478 /* Get VTH high Value */
479 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuVthhText");
480 text
= XmTextGetString (text_w
);
482 value
= strtod (text
, &ptend
);
483 if((*ptend
!= '\0') || (value
< 0) || (value
> 100)) {
484 XalDrawMessage (XtasErrorWidget
, "Bad value for VTH high.\nIt must be a floating number\nbetween 0 and 100.");
488 XtasSimuParams
->vth_high
= value
;
492 /* Get VTH low Value */
493 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuVthlText");
494 text
= XmTextGetString (text_w
);
496 value
= strtod (text
, &ptend
);
497 if((*ptend
!= '\0') || (value
< 0) || (value
> 100)) {
498 XalDrawMessage (XtasErrorWidget
, "Bad value for VTH low.\nIt must be a floating number\nbetween 0 and 100.");
502 XtasSimuParams
->vth_low
= value
;
507 /* Get temperature Value */
508 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuTempText");
509 text
= XmTextGetString (text_w
);
511 value
= strtod (text
, &ptend
);
512 if((*ptend
!= '\0')) {
513 XalDrawMessage (XtasErrorWidget
, "Bad value for Temperature.\nMust a floating number.");
517 XtasSimuParams
->temp
= value
;
521 /* Get Simulator's options string */
522 text_w
= XtNameToWidget (XtasSimuParamWidget
, "*XtasSimuOptionsText");
523 text
= XmTextGetString (text_w
);
525 XtasSimuSetParamString (&(XtasSimuParams
->spice_options
), text
);
533 /*--------------------------------------------------------------------------*/
535 /* XtasSimuPathOkCallback */
537 /*--------------------------------------------------------------------------*/
538 void XtasSimuPathOkCallback (widget
, client_data
, call_data
)
540 XtPointer client_data
;
541 XtPointer call_data
;
544 if (XtasSimuGetParamsValues () == 0) {
545 XtUnmanageChild (XtasSimuParamWidget
);
546 XalSetCursor( ((XtasWindowStruct
*)client_data
)->topwidget
, WAIT
);
547 XalForceUpdate (((XtasWindowStruct
*)client_data
)->topwidget
);
548 XtasSimuUpdateVariables ();
549 XtasSimuPath ((XtasWindowStruct
*)client_data
);
552 XtManageChild (XtasSimuParamWidget
);
556 /*--------------------------------------------------------------------------*/
558 /* XtasSimuAdvancedParamCallback */
560 /*--------------------------------------------------------------------------*/
561 void XtasSimuAdvancedParamCallback (widget
, client_data
, call_data
)
563 XtPointer client_data
;
564 XtPointer call_data
;
571 /*--------------------------------------------------------------------------*/
573 /* XtasSimuPathParamsToolCallback */
575 /*--------------------------------------------------------------------------*/
576 void XtasSimuPathParamsToolCallback (widget
, tool
, call_data
)
581 XmToggleButtonCallbackStruct
*state
= (XmToggleButtonCallbackStruct
*) call_data
;
584 XtasSimuParams
->tool
= (int)(long)tool
;
588 /*--------------------------------------------------------------------------*/
590 /* XtasSimuPathUsePrintCallback */
592 /*--------------------------------------------------------------------------*/
593 void XtasSimuPathUsePrintCallback (widget
, client_data
, call_data
)
595 XtPointer client_data
;
598 XmToggleButtonCallbackStruct
*state
= (XmToggleButtonCallbackStruct
*) call_data
;
601 XtasSimuParams
->use_print
= SIM_YES
;
603 XtasSimuParams
->use_print
= SIM_NO
;
606 /*--------------------------------------------------------------------------*/
608 /* XtasSimuPathUseMeasCallback */
610 /*--------------------------------------------------------------------------*/
611 void XtasSimuPathUseMeasCallback (widget
, client_data
, call_data
)
613 XtPointer client_data
;
616 XmToggleButtonCallbackStruct
*state
= (XmToggleButtonCallbackStruct
*) call_data
;
619 XtasSimuParams
->use_meas
= SIM_YES
;
621 XtasSimuParams
->use_meas
= SIM_NO
;
624 /*--------------------------------------------------------------------------*/
626 /* XtasSimuSelectTechnoFileOkCallback */
628 /*--------------------------------------------------------------------------*/
629 void XtasSimuSelectTechnoFileOkCallback (widget
, text_w
, call_data
)
634 XmFileSelectionBoxCallbackStruct
*file_struct
= (XmFileSelectionBoxCallbackStruct
*) call_data
;
638 XmStringGetLtoR (file_struct
->value
, XmSTRING_DEFAULT_CHARSET
, &filepath
);
639 XmTextSetString ((Widget
) text_w
, filepath
);
640 XmTextSetCursorPosition ((Widget
) text_w
, (XmTextPosition
) strlen(filepath
));
641 XmTextSetTopCharacter ((Widget
) text_w
, (XmTextPosition
) 0);
643 XtUnmanageChild (widget
);
646 /*--------------------------------------------------------------------------*/
648 /* XtasSimuSelectTechnoFileCallback */
650 /*--------------------------------------------------------------------------*/
651 void XtasSimuSelectTechnoFileCallback (widget
, text_w
, call_data
)
653 XtPointer text_w
; /* the TextWidget to print file path when it is selected */
658 Atom WM_DELETE_WINDOW
;
659 static Widget file_select
= NULL
;
661 // XalLeaveLimitedLoop ();
666 XtSetArg ( args
[n
], XmNtitle
, XTAS_NAME
": Simulation Technology File" ); n
++;
667 XtSetArg ( args
[n
], XmNminWidth
, 330 ); n
++;
668 XtSetArg ( args
[n
], XmNdialogStyle
, XmDIALOG_APPLICATION_MODAL
); n
++;
670 file_select
= XmCreateFileSelectionDialog (XtasSimuParamWidget
, "XtasFileSelect", args
, n
);
671 XtUnmanageChild (XmSelectionBoxGetChild (file_select
, XmDIALOG_HELP_BUTTON
));
672 XtAddCallback (file_select
, XmNokCallback
, XtasSimuSelectTechnoFileOkCallback
, (XtPointer
) text_w
);
673 XtAddCallback (file_select
, XmNcancelCallback
, XtasCancelCallback
, (XtPointer
) file_select
);
676 WM_DELETE_WINDOW
= XmInternAtom (XtDisplay (widget
), "WM_DELETE_WINDOW", False
);
677 XmAddWMProtocolCallback (XtParent (file_select
), WM_DELETE_WINDOW
,
678 XtasCancelCallback
, (XtPointer
) file_select
);
681 XtManageChild (file_select
);
684 /*--------------------------------------------------------------------------*/
686 /* XtasSimuParamsInit */
688 /*--------------------------------------------------------------------------*/
689 void XtasSimuParamsInit (void)
693 XtasSimuParams
= (xtas_simu_param_struct
*) mbkalloc (sizeof (xtas_simu_param_struct
));
696 XtasSimuParams
->tec
= NULL
;
698 XtasSimuSetParamString (&(XtasSimuParams
->tec
), SIM_TECHFILE
);
700 XtasSimuParams
->tec
= NULL
;
703 XtasSimuParams
->tool
= V_INT_TAB
[__SIM_TOOL
].VALUE
;
704 XtasSimuParams
->spicestr
= NULL
;
706 XtasSimuSetParamString (&(XtasSimuParams
->spicestr
), SIM_SPICESTRING
);
708 XtasSimuParams
->spicestr
= NULL
;
710 XtasSimuParams
->spice_out
= NULL
;
712 XtasSimuSetParamString (&(XtasSimuParams
->spice_out
), SIM_SPICEOUT
);
714 XtasSimuParams
->spice_out
= NULL
;
716 XtasSimuParams
->spice_stdout
= NULL
;
718 XtasSimuSetParamString (&(XtasSimuParams
->spice_stdout
), SIM_SPICESTDOUT
);
720 XtasSimuParams
->spice_stdout
= NULL
;
722 XtasSimuParams
->use_print
= V_BOOL_TAB
[__SIM_USE_PRINT
].VALUE
;
723 XtasSimuParams
->use_meas
= V_BOOL_TAB
[__SIM_USE_MEAS
].VALUE
;
726 XtasSimuParams
->trans_time
= V_FLOAT_TAB
[ __SIM_TIME
].VALUE
* 1e9
;
727 XtasSimuParams
->vdd
= V_FLOAT_TAB
[__SIM_POWER_SUPPLY
].VALUE
;
728 XtasSimuParams
->temp
= V_FLOAT_TAB
[__SIM_TEMP
].VALUE
;
729 XtasSimuParams
->spice_options
= NULL
;
730 if (SIM_SPICE_OPTIONS
)
731 XtasSimuSetParamString (&(XtasSimuParams
->spice_options
), SIM_SPICE_OPTIONS
);
733 XtasSimuParams
->spice_options
= NULL
;
736 XtasSimuParams
->trans_step
= V_FLOAT_TAB
[__SIM_TRAN_STEP
].VALUE
*1e12
;
738 /* Input/Output Constraints */
739 XtasSimuParams
->input_start
= SIM_INPUT_START
* (1.0e+12);
740 XtasSimuParams
->input_slope
= SIM_SLOP
;
741 if (SIM_OUT_CAPA_VAL
> 0)
742 XtasSimuParams
->out_capa_val
= SIM_OUT_CAPA_VAL
;
744 XtasSimuParams
->out_capa_val
= 0.0 ;
747 if (SIM_VTH
!= ELPINITTHR
)
748 XtasSimuParams
->vth
= SIM_VTH
* 100 ;
750 XtasSimuParams
->vth
= 0.5 * 100 ;
751 if (SIM_VTH_HIGH
!= ELPINITTHR
)
752 XtasSimuParams
->vth_high
= SIM_VTH_HIGH
* 100;
754 XtasSimuParams
->vth_high
= 0.8 * 100 ;
755 if (SIM_VTH_LOW
!= ELPINITTHR
)
756 XtasSimuParams
->vth_low
= SIM_VTH_LOW
* 100 ;
758 XtasSimuParams
->vth_low
= 0.2 * 100 ;
760 /* Data Extraction */
761 /* if ((env = V_STR_TAB[__SIM_MEAS_CMD].VALUE) != NULL)
762 XtasSimuSetParamString (&(XtasSimuParams->meas_cmd), env);
764 XtasSimuParams->meas_cmd = NULL;
765 if ((env = V_STR_TAB[__SIM_EXTRACT_RULE].VALUE) != NULL)
766 XtasSimuSetParamString (&(XtasSimuParams->extract_rule), env);
768 XtasSimuParams->extract_rule = NULL;*/
771 /*--------------------------------------------------------------------------*/
773 /* XtasSimuPathCallback */
775 /*--------------------------------------------------------------------------*/
776 void XtasSimuPathCallback (widget
, client_data
, call_data
)
778 XtPointer client_data
;
779 XtPointer call_data
;
781 /* Variables for motif */
784 Widget frame
, frame_top
;
785 Widget win_form
, frame_form
, form
;
786 Widget label_w
, text_w
, row_w
, toggle
, button
;
788 Pixmap pixmap
, open_pixmap
, f_pixmap
, r_pixmap
;
790 Atom WM_DELETE_WINDOW
;
793 /* Variables for treatment */
794 XtasWindowStruct
*tas_winfos
= (XtasWindowStruct
*)client_data
;
795 XtasDetailPathSetStruct
*detail_set
= (XtasDetailPathSetStruct
*)tas_winfos
->userdata
;
796 chain_list
*head
= detail_set
->CUR_DETAIL
->DATA
;
797 ttvcritic_list
*critic
= head
->DATA
;
799 if (!XtasSimuParamWidget
) {
801 XtasSimuParamsInit ();
803 XtasSimuParams
->input_slope
= tas_get_input_slope ( critic
);
806 XtSetArg ( args
[n
], XmNtitle
, XTAS_NAME
": Simulation Parameterization" ); n
++;
807 XtSetArg ( args
[n
], XmNdialogStyle
, XmDIALOG_APPLICATION_MODAL
); n
++;
808 XtSetArg ( args
[n
], XmNwidth
, 570); n
++;
809 XtSetArg ( args
[n
], XmNmaxWidth
, 570); n
++;
810 XtasSimuParamWidget
= XmCreatePromptDialog (XtasDeskMainForm
, "XtasParamBox", args
, n
);
811 XtUnmanageChild (XmSelectionBoxGetChild (XtasSimuParamWidget
, XmDIALOG_TEXT
));
812 XtUnmanageChild (XmSelectionBoxGetChild (XtasSimuParamWidget
, XmDIALOG_PROMPT_LABEL
));
813 XtAddCallback (XtasSimuParamWidget
, XmNokCallback
, XtasSimuPathOkCallback
, (XtPointer
)client_data
);
814 XtAddCallback (XtasSimuParamWidget
, XmNcancelCallback
, XtasSimuCancelCallback
, (XtPointer
)XtasSimuParamWidget
);
815 XtAddCallback (XtasSimuParamWidget
, XmNhelpCallback
, XtasHelpCallback
, (XtPointer
)(XTAS_SRC_SIMUPARAM
|XTAS_HELP_MAIN
));
816 WM_DELETE_WINDOW
= XmInternAtom(XtDisplay(XtasDeskMainForm
), "WM_DELETE_WINDOW", False
);
817 XmAddWMProtocolCallback(XtParent(XtasSimuParamWidget
), WM_DELETE_WINDOW
, XtasCancelCallback
, (XtPointer
)XtasSimuParamWidget
);
821 win_form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, XtasSimuParamWidget
, args
, n
);
823 XtVaGetValues (win_form
, XmNforeground
, &fg
, XmNbackground
, &bg
, NULL
);
824 r_pixmap
= XalGetPixmap (win_form
, XTAS_REDG_MAP
, fg
, bg
);
825 f_pixmap
= XalGetPixmap (win_form
, XTAS_FEDG_MAP
, fg
, bg
);
826 open_pixmap
= XalGetPixmap (win_form
, XTAS_OPEN_MAP
, fg
, bg
);
829 /***** Frame: Simulated Path *****/
831 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
832 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
833 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
834 frame_top
= XtCreateManagedWidget ("XtasFrame", xmFrameWidgetClass
, win_form
, args
, n
);
836 motif_str
= XmStringCreateSimple("Simulated Path");
838 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
839 #if XTAS_MOTIF_VERSION >= 20000
840 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_TITLE_CHILD
); n
++;
842 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_TITLE_CHILD
); n
++;
844 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, frame_top
, args
, n
);
845 XmStringFree (motif_str
);
848 #if XTAS_MOTIF_VERSION >= 20000
849 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_WORKAREA_CHILD
); n
++;
851 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_WORKAREA_CHILD
); n
++;
853 frame_form
= XtCreateManagedWidget ("XtasSubForm", xmFormWidgetClass
, frame_top
, args
, n
);
856 motif_str
= XmStringCreateSimple ("From:");
858 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
859 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
860 XtSetArg ( args
[n
], XmNleftOffset
, 5 ); n
++;
861 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
862 XtSetArg ( args
[n
], XmNwidth
, 40 ); n
++;
863 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
864 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_END
); n
++;
865 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, frame_form
, args
, n
);
866 XmStringFree (motif_str
);
868 if ((r_pixmap
== XmUNSPECIFIED_PIXMAP
) || (f_pixmap
== XmUNSPECIFIED_PIXMAP
))
870 motif_str
= ((critic
->SNODE
& TTV_NODE_UP
) == TTV_NODE_UP
) ? XmStringCreateSimple("(Rising)") : XmStringCreateSimple("(Falling)");
872 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
873 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
874 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
875 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
876 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
877 XtSetArg ( args
[n
], XmNleftWidget
, label_w
); n
++;
878 XtSetArg ( args
[n
], XmNwidth
, 40 ); n
++;
879 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
880 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, frame_form
, args
, n
);
881 XmStringFree (motif_str
);
885 pixmap
= ((critic
->SNODE
& TTV_NODE_UP
) == TTV_NODE_UP
) ? r_pixmap
: f_pixmap
;
887 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
888 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
889 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
890 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
891 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
892 XtSetArg ( args
[n
], XmNleftWidget
, label_w
); n
++;
893 XtSetArg ( args
[n
], XmNwidth
, 40 ); n
++;
894 XtSetArg ( args
[n
], XmNlabelType
, XmPIXMAP
); n
++;
895 XtSetArg ( args
[n
], XmNlabelPixmap
, pixmap
); n
++;
896 label_w
= XtCreateManagedWidget( "XtasLabels", xmLabelWidgetClass
, frame_form
, args
, n
);
900 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
901 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
902 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
903 XtSetArg ( args
[n
], XmNrightOffset
, 2 ); n
++;
904 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
905 XtSetArg ( args
[n
], XmNleftWidget
, label_w
); n
++;
906 XtSetArg ( args
[n
], XmNleftOffset
, 5 ); n
++;
907 XtSetArg ( args
[n
], XmNwidth
, 490 ); n
++;
908 XtSetArg ( args
[n
], XmNvalue
, critic
->NAME
); n
++;
909 XtSetArg ( args
[n
], XmNeditable
, False
); n
++;
910 XtSetArg ( args
[n
], XmNeditMode
, XmMULTI_LINE_EDIT
); n
++;
911 XtSetArg ( args
[n
], XmNresizeHeight
, True
); n
++;
912 XtSetArg ( args
[n
], XmNwordWrap
, True
); n
++;
913 XtSetArg ( args
[n
], XmNbackground
, bg
); n
++;
914 XtSetArg ( args
[n
], XmNbottomShadowColor
, bg
); n
++;
915 XtSetArg ( args
[n
], XmNbottomShadowPixmap
,XmUNSPECIFIED_PIXMAP
); n
++;
916 XtSetArg ( args
[n
], XmNtopShadowColor
, bg
); n
++;
917 XtSetArg ( args
[n
], XmNtopShadowPixmap
, XmUNSPECIFIED_PIXMAP
); n
++;
918 XtSetArg ( args
[n
], XmNcursorPositionVisible
, False
); n
++;
919 label_w
= XtCreateManagedWidget ("XtasLabels", xmTextWidgetClass
, frame_form
, args
, n
);
921 motif_str
= XmStringCreateSimple ("To:");
923 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
); n
++;
924 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
925 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
926 XtSetArg ( args
[n
], XmNleftOffset
, 5 ); n
++;
927 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
928 XtSetArg ( args
[n
], XmNwidth
, 40 ); n
++;
929 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
930 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_END
); n
++;
931 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, frame_form
, args
, n
);
932 XmStringFree (motif_str
);
934 /* recherche du point d'arrivee */
935 while (critic
->NEXT
!=NULL
)
938 if ((r_pixmap
== XmUNSPECIFIED_PIXMAP
) || (f_pixmap
== XmUNSPECIFIED_PIXMAP
))
940 motif_str
= ((critic
->SNODE
& TTV_NODE_UP
) == TTV_NODE_UP
) ? XmStringCreateSimple("(Rising)") : XmStringCreateSimple("(Falling)");
942 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
943 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
944 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
945 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
946 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
947 XtSetArg ( args
[n
], XmNleftWidget
, label_w
); n
++;
948 XtSetArg ( args
[n
], XmNwidth
, 40 ); n
++;
949 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
950 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, frame_form
, args
, n
);
951 XmStringFree (motif_str
);
955 pixmap
= ((critic
->SNODE
& TTV_NODE_UP
) == TTV_NODE_UP
) ? r_pixmap
: f_pixmap
;
957 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
958 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
959 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
960 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
961 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
962 XtSetArg ( args
[n
], XmNleftWidget
, label_w
); n
++;
963 XtSetArg ( args
[n
], XmNwidth
, 40 ); n
++;
964 XtSetArg ( args
[n
], XmNlabelType
, XmPIXMAP
); n
++;
965 XtSetArg ( args
[n
], XmNlabelPixmap
, pixmap
); n
++;
966 label_w
= XtCreateManagedWidget( "XtasLabels", xmLabelWidgetClass
, frame_form
, args
, n
);
970 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
971 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
972 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
973 XtSetArg ( args
[n
], XmNrightOffset
, 2 ); n
++;
974 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
975 XtSetArg ( args
[n
], XmNleftWidget
, label_w
); n
++;
976 XtSetArg ( args
[n
], XmNleftOffset
, 5 ); n
++;
977 XtSetArg ( args
[n
], XmNwidth
, 490 ); n
++;
978 XtSetArg ( args
[n
], XmNvalue
, critic
->NAME
); n
++;
979 XtSetArg ( args
[n
], XmNeditable
, False
); n
++;
980 XtSetArg ( args
[n
], XmNeditMode
, XmMULTI_LINE_EDIT
); n
++;
981 XtSetArg ( args
[n
], XmNresizeHeight
, True
); n
++;
982 XtSetArg ( args
[n
], XmNwordWrap
, True
); n
++;
983 XtSetArg ( args
[n
], XmNbackground
, bg
); n
++;
984 XtSetArg ( args
[n
], XmNbottomShadowColor
, bg
); n
++;
985 XtSetArg ( args
[n
], XmNbottomShadowPixmap
,XmUNSPECIFIED_PIXMAP
); n
++;
986 XtSetArg ( args
[n
], XmNtopShadowColor
, bg
); n
++;
987 XtSetArg ( args
[n
], XmNtopShadowPixmap
, XmUNSPECIFIED_PIXMAP
); n
++;
988 XtSetArg ( args
[n
], XmNcursorPositionVisible
, False
); n
++;
989 label_w
= XtCreateManagedWidget ("XtasLabels", xmTextWidgetClass
, frame_form
, args
, n
);
992 /***** Frame: Technology Name *****/
994 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
); n
++;
995 XtSetArg ( args
[n
], XmNtopWidget
, frame_top
); n
++;
996 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
997 XtSetArg ( args
[n
], XmNleftWidget
, frame_top
); n
++;
998 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
999 XtSetArg ( args
[n
], XmNrightWidget
, frame_top
); n
++;
1000 frame_top
= XtCreateManagedWidget ("XtasFrame", xmFrameWidgetClass
, win_form
, args
, n
);
1002 motif_str
= XmStringCreateSimple ("Technology File");
1004 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1005 #if XTAS_MOTIF_VERSION >= 20000
1006 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_TITLE_CHILD
); n
++;
1008 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_TITLE_CHILD
); n
++;
1010 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, frame_top
, args
, n
);
1011 XmStringFree (motif_str
);
1014 #if XTAS_MOTIF_VERSION >= 20000
1015 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1017 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1019 frame_form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, frame_top
, args
, n
);
1022 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1023 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1024 XtSetArg ( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
); n
++;
1025 XtSetArg ( args
[n
], XmNbottomOffset
, 5 ); n
++;
1026 XtSetArg ( args
[n
], XmNheight
, 35 ); n
++;
1027 XtSetArg ( args
[n
], XmNwidth
, 40 ); n
++;
1028 XtSetArg ( args
[n
], XmNlabelType
, XmPIXMAP
); n
++;
1029 XtSetArg ( args
[n
], XmNlabelPixmap
, open_pixmap
); n
++;
1030 XtSetArg ( args
[n
], XmNpushButtonEnabled
, True
); n
++;
1031 XtSetArg ( args
[n
], XmNshadowType
, XmSHADOW_ETCHED_OUT
); n
++;
1032 XtSetArg ( args
[n
], XmNshadowThickness
, 2 ); n
++;
1033 button
= XtCreateManagedWidget ("dbutton", xmDrawnButtonWidgetClass
, frame_form
, args
, n
);
1036 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1037 XtSetArg ( args
[n
], XmNtopWidget
, button
); n
++;
1038 XtSetArg ( args
[n
], XmNtopOffset
, 2 ); n
++;
1039 XtSetArg ( args
[n
], XmNbottomAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1040 XtSetArg ( args
[n
], XmNbottomWidget
, button
); n
++;
1041 XtSetArg ( args
[n
], XmNbottomOffset
, 2 ); n
++;
1042 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1043 XtSetArg ( args
[n
], XmNrightWidget
, button
); n
++;
1044 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1045 XtSetArg ( args
[n
], XmNwidth
, 375 ); n
++;
1046 text_w
= XtCreateManagedWidget ("XtasSimuTechnoFileText", xmTextWidgetClass
, frame_form
, args
, n
);
1047 XmTextSetString (text_w
, XtasSimuParams
->tec
);
1048 XtAddCallback(button
, XmNactivateCallback
, XtasSimuSelectTechnoFileCallback
, (XtPointer
)text_w
);
1051 motif_str
= XmStringCreateSimple ("Technology File:");
1053 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1054 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1055 XtSetArg ( args
[n
], XmNtopWidget
, text_w
); n
++;
1056 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1057 XtSetArg ( args
[n
], XmNbottomWidget
, text_w
); n
++;
1058 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1059 XtSetArg ( args
[n
], XmNleftOffset
, 5 ); n
++;
1060 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1061 XtSetArg ( args
[n
], XmNrightWidget
, text_w
); n
++;
1062 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1063 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1064 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, frame_form
, args
, n
);
1065 XmStringFree (motif_str
);
1068 /***** Frame : Simulation Tool *****/
1070 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
); n
++;
1071 XtSetArg ( args
[n
], XmNtopWidget
, frame_top
); n
++;
1072 XtSetArg ( args
[n
], XmNtopOffset
, 5 ); n
++;
1073 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1074 frame
= XtCreateManagedWidget ("XtasFrame", xmFrameWidgetClass
, win_form
, args
, n
);
1076 motif_str
= XmStringCreateSimple ("Simulation Tool");
1078 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1079 #if XTAS_MOTIF_VERSION >= 20000
1080 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_TITLE_CHILD
); n
++;
1082 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_TITLE_CHILD
); n
++;
1084 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, frame
, args
, n
);
1085 XmStringFree (motif_str
);
1089 #if XTAS_MOTIF_VERSION >= 20000
1090 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1092 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1094 frame_form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, frame
, args
, n
);
1097 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
1098 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1099 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1100 XtSetArg ( args
[n
], XmNpacking
, XmPACK_COLUMN
); n
++;
1101 XtSetArg ( args
[n
], XmNorientation
, XmVERTICAL
); n
++;
1102 XtSetArg ( args
[n
], XmNnumColumns
, 2 ); n
++;
1103 XtSetArg ( args
[n
], XmNradioBehavior
, True
); n
++;
1104 XtSetArg ( args
[n
], XmNradioAlwaysOne
, True
); n
++;
1105 XtSetArg ( args
[n
], XmNisAligned
, True
); n
++;
1106 XtSetArg ( args
[n
], XmNmarginHeight
, 5 ); n
++;
1107 XtSetArg ( args
[n
], XmNmarginWidth
, 60 ); n
++;
1108 XtSetArg ( args
[n
], XmNspacing
, 25 ); n
++;
1109 // XtSetArg ( args[n], XmNadjustLast, False ); n++;
1110 row_w
= XtCreateManagedWidget ("XtasRow", xmRowColumnWidgetClass
, frame_form
, args
, n
);
1112 motif_str
= XmStringCreateSimple ("Eldo");
1114 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1115 XtSetArg ( args
[n
], XmNset
, XtasSimuParams
->tool
== SIM_TOOL_ELDO
? True
:False
); n
++;
1116 toggle
= XtCreateManagedWidget ("XtasToggle", xmToggleButtonWidgetClass
, row_w
, args
, n
);
1117 XmStringFree ( motif_str
);
1118 XtAddCallback (toggle
, XmNvalueChangedCallback
, XtasSimuPathParamsToolCallback
, (XtPointer
)SIM_TOOL_ELDO
);
1120 motif_str
= XmStringCreateSimple ("NgSpice");
1122 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1123 XtSetArg ( args
[n
], XmNset
, XtasSimuParams
->tool
== SIM_TOOL_NGSPICE
? True
:False
); n
++;
1124 toggle
= XtCreateManagedWidget ("XtasToggle", xmToggleButtonWidgetClass
, row_w
, args
, n
);
1125 XmStringFree ( motif_str
);
1126 XtAddCallback (toggle
, XmNvalueChangedCallback
, XtasSimuPathParamsToolCallback
, (XtPointer
)SIM_TOOL_NGSPICE
);
1128 motif_str
= XmStringCreateSimple ("LtSpice");
1130 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1131 XtSetArg ( args
[n
], XmNset
, XtasSimuParams
->tool
== SIM_TOOL_LTSPICE
? True
:False
); n
++;
1132 toggle
= XtCreateManagedWidget ("XtasToggle", xmToggleButtonWidgetClass
, row_w
, args
, n
);
1133 XmStringFree ( motif_str
);
1134 XtAddCallback (toggle
, XmNvalueChangedCallback
, XtasSimuPathParamsToolCallback
, (XtPointer
)SIM_TOOL_LTSPICE
);
1136 motif_str
= XmStringCreateSimple ("MSpice");
1138 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1139 XtSetArg ( args
[n
], XmNset
, XtasSimuParams
->tool
== SIM_TOOL_MSPICE
? True
:False
); n
++;
1140 toggle
= XtCreateManagedWidget ("XtasToggle", xmToggleButtonWidgetClass
, row_w
, args
, n
);
1141 XmStringFree ( motif_str
);
1142 XtAddCallback (toggle
, XmNvalueChangedCallback
, XtasSimuPathParamsToolCallback
, (XtPointer
)SIM_TOOL_MSPICE
);
1144 motif_str
= XmStringCreateSimple ("HSpice");
1146 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1147 XtSetArg ( args
[n
], XmNset
, XtasSimuParams
->tool
== SIM_TOOL_HSPICE
? True
:False
); n
++;
1148 toggle
= XtCreateManagedWidget ("XtasToggle", xmToggleButtonWidgetClass
, row_w
, args
, n
);
1149 XmStringFree ( motif_str
);
1150 XtAddCallback (toggle
, XmNvalueChangedCallback
, XtasSimuPathParamsToolCallback
, (XtPointer
)SIM_TOOL_HSPICE
);
1152 motif_str
= XmStringCreateSimple ("Other");
1154 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1155 XtSetArg ( args
[n
], XmNset
, ((XtasSimuParams
->tool
== SIM_TOOL_TITAN
)||(XtasSimuParams
->tool
== SIM_TOOL_TITAN
)) ? True
:False
); n
++;
1156 toggle
= XtCreateManagedWidget ("XtasToggle", xmToggleButtonWidgetClass
, row_w
, args
, n
);
1157 XmStringFree ( motif_str
);
1158 XtAddCallback (toggle
, XmNvalueChangedCallback
, XtasSimuPathParamsToolCallback
, (XtPointer
)V_INT_TAB
[__SIM_TOOL
].VALUE
);
1161 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
); n
++;
1162 XtSetArg ( args
[n
], XmNtopWidget
, row_w
); n
++;
1163 XtSetArg ( args
[n
], XmNtopOffset
, 5 ); n
++;
1164 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1165 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1166 XtSetArg ( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
); n
++;
1167 form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, frame_form
, args
, n
);
1169 motif_str
= XmStringCreateSimple ("Command line:");
1171 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
1172 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1173 XtSetArg ( args
[n
], XmNleftOffset
, 5 ); n
++;
1174 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1175 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1176 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1177 XmStringFree (motif_str
);
1180 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1181 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1182 XtSetArg ( args
[n
], XmNbottomAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1183 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1184 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
1185 XtSetArg ( args
[n
], XmNleftWidget
, label_w
); n
++;
1186 XtSetArg ( args
[n
], XmNleftOffset
, 10 ); n
++;
1187 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1188 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1189 text_w
= XtCreateManagedWidget ("XtasSimuCmdLineText", xmTextWidgetClass
, form
, args
, n
);
1190 XmTextSetString (text_w
, XtasSimuParams
->spicestr
);
1192 motif_str
= XmStringCreateSimple ("Output File Format:");
1194 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
); n
++;
1195 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1196 XtSetArg ( args
[n
], XmNtopOffset
, 5 ); n
++;
1197 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1198 XtSetArg ( args
[n
], XmNleftOffset
, 5 ); n
++;
1199 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1200 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1201 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1202 XmStringFree (motif_str
);
1205 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1206 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1207 XtSetArg ( args
[n
], XmNbottomAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1208 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1209 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
1210 XtSetArg ( args
[n
], XmNleftWidget
, label_w
); n
++;
1211 XtSetArg ( args
[n
], XmNleftOffset
, 10 ); n
++;
1212 XtSetArg ( args
[n
], XmNwidth
, 50 ); n
++;
1213 text_w
= XtCreateManagedWidget ("XtasSimuOutFormatText", xmTextWidgetClass
, form
, args
, n
);
1214 XmTextSetString (text_w
, XtasSimuParams
->spice_out
);
1216 motif_str
= XmStringCreateSimple ("Stdout Redirection File Format:");
1218 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
); n
++;
1219 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1220 XtSetArg ( args
[n
], XmNtopOffset
, 5 ); n
++;
1221 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1222 XtSetArg ( args
[n
], XmNleftOffset
, 5 ); n
++;
1223 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1224 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1225 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1226 XmStringFree (motif_str
);
1229 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1230 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1231 XtSetArg ( args
[n
], XmNbottomAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1232 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1233 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
1234 XtSetArg ( args
[n
], XmNleftWidget
, label_w
); n
++;
1235 XtSetArg ( args
[n
], XmNleftOffset
, 10 ); n
++;
1236 XtSetArg ( args
[n
], XmNwidth
, 50 ); n
++;
1237 text_w
= XtCreateManagedWidget ("XtasSimuStdoutFormatText", xmTextWidgetClass
, form
, args
, n
);
1238 XmTextSetString (text_w
, XtasSimuParams
->spice_stdout
);
1240 motif_str
= XmStringCreateSimple( "Use Print" ) ;
1241 toggle
= XtVaCreateManagedWidget( "XtasSubTitles", xmToggleButtonWidgetClass
, form
,
1242 XmNset
, (XtasSimuParams
->use_print
== SIM_YES
) ? True
:False
,
1243 XmNtopAttachment
, XmATTACH_WIDGET
,
1244 XmNtopWidget
, label_w
,
1246 XmNleftAttachment
,XmATTACH_FORM
,
1249 XmNlabelString
, motif_str
,
1251 XmStringFree( motif_str
) ;
1252 XtAddCallback( toggle
, XmNvalueChangedCallback
, XtasSimuPathUsePrintCallback
, NULL
) ;
1254 motif_str
= XmStringCreateSimple( "Use Measure" ) ;
1255 toggle
= XtVaCreateManagedWidget( "XtasSubTitles", xmToggleButtonWidgetClass
, form
,
1256 XmNset
, (XtasSimuParams
->use_meas
== SIM_YES
) ? True
:False
,
1257 XmNtopAttachment
, XmATTACH_WIDGET
,
1258 XmNtopWidget
, toggle
,
1260 XmNleftAttachment
,XmATTACH_FORM
,
1262 XmNbottomAttachment
,XmATTACH_FORM
,
1265 XmNlabelString
, motif_str
,
1267 XmStringFree( motif_str
) ;
1268 XtAddCallback( toggle
, XmNvalueChangedCallback
, XtasSimuPathUseMeasCallback
, NULL
) ;
1271 /***** Frame: Input/Output Constraints *****/
1273 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
); n
++;
1274 XtSetArg ( args
[n
], XmNtopWidget
, frame
); n
++;
1275 XtSetArg ( args
[n
], XmNtopOffset
, 5 ); n
++;
1276 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1277 XtSetArg ( args
[n
], XmNleftWidget
, frame
); n
++;
1278 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1279 XtSetArg ( args
[n
], XmNrightWidget
, frame
); n
++;
1280 XtSetArg ( args
[n
], XmNbottomAttachment
, XmATTACH_FORM
); n
++;
1281 frame
= XtCreateManagedWidget ("XtasFrame", xmFrameWidgetClass
, win_form
, args
, n
);
1284 motif_str
= XmStringCreateSimple ("Input/Output Constraints");
1286 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1287 #if XTAS_MOTIF_VERSION >= 20000
1288 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_TITLE_CHILD
); n
++;
1290 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_TITLE_CHILD
); n
++;
1292 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, frame
, args
, n
);
1293 XmStringFree (motif_str
);
1296 #if XTAS_MOTIF_VERSION >= 20000
1297 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1299 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1301 XtSetArg ( args
[n
], XmNpacking
, XmPACK_COLUMN
); n
++;
1302 XtSetArg ( args
[n
], XmNorientation
, XmVERTICAL
); n
++;
1303 XtSetArg ( args
[n
], XmNnumColumns
, 1 ); n
++;
1304 XtSetArg ( args
[n
], XmNisAligned
, True
); n
++;
1305 XtSetArg ( args
[n
], XmNmarginHeight
, 5 ); n
++;
1306 XtSetArg ( args
[n
], XmNmarginWidth
, 17 ); n
++;
1307 XtSetArg ( args
[n
], XmNspacing
, 5 ); n
++;
1308 row_w
= XtCreateManagedWidget ("XtasRow", xmRowColumnWidgetClass
, frame
, args
, n
);
1310 /* FORM: Input Start Time */
1312 form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, row_w
, args
, n
);
1314 motif_str
= XmStringCreateSimple ("ps");
1316 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1317 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1318 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1319 XtSetArg ( args
[n
], XmNwidth
, 3*7 ); n
++;
1320 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1321 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1322 XmStringFree (motif_str
);
1325 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1326 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1327 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1328 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1329 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1330 XtSetArg ( args
[n
], XmNrightWidget
, label_w
); n
++;
1331 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1332 XtSetArg ( args
[n
], XmNwidth
, 60 ); n
++;
1333 text_w
= XtCreateManagedWidget ("XtasSimuInputStartText", xmTextWidgetClass
, form
, args
, n
);
1334 sprintf (buf
, "%.2f", XtasSimuParams
->input_start
);
1335 XmTextSetString (text_w
, buf
);
1337 motif_str
= XmStringCreateSimple ("Input Start Time =");
1339 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1340 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1341 XtSetArg ( args
[n
], XmNtopWidget
, text_w
); n
++;
1342 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1343 XtSetArg ( args
[n
], XmNbottomWidget
, text_w
); n
++;
1344 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1345 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1346 XtSetArg ( args
[n
], XmNrightWidget
, text_w
); n
++;
1347 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1348 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_END
); n
++;
1349 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1350 XmStringFree (motif_str
);
1352 /* FORM: Input Slope Time */
1354 form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, row_w
, args
, n
);
1356 motif_str
= XmStringCreateSimple ("ps");
1358 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1359 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1360 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1361 XtSetArg ( args
[n
], XmNwidth
, 3*7 ); n
++;
1362 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1363 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1364 XmStringFree (motif_str
);
1367 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1368 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1369 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1370 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1371 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1372 XtSetArg ( args
[n
], XmNrightWidget
, label_w
); n
++;
1373 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1374 XtSetArg ( args
[n
], XmNwidth
, 60 ); n
++;
1375 text_w
= XtCreateManagedWidget ("XtasSimuInputSlopeText", xmTextWidgetClass
, form
, args
, n
);
1376 sprintf (buf
, "%.2f", XtasSimuParams
->input_slope
);
1377 XmTextSetString (text_w
, buf
);
1379 motif_str
= XmStringCreateSimple ("Input Slope Time =");
1381 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1382 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1383 XtSetArg ( args
[n
], XmNtopWidget
, text_w
); n
++;
1384 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1385 XtSetArg ( args
[n
], XmNbottomWidget
, text_w
); n
++;
1386 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1387 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1388 XtSetArg ( args
[n
], XmNrightWidget
, text_w
); n
++;
1389 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1390 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_END
); n
++;
1391 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1392 XmStringFree (motif_str
);
1394 /* FORM: Input Slope Time */
1396 form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, row_w
, args
, n
);
1398 motif_str
= XmStringCreateSimple ("fF");
1400 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1401 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1402 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1403 XtSetArg ( args
[n
], XmNwidth
, 3*7 ); n
++;
1404 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1405 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1406 XmStringFree (motif_str
);
1409 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1410 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1411 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1412 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1413 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1414 XtSetArg ( args
[n
], XmNrightWidget
, label_w
); n
++;
1415 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1416 XtSetArg ( args
[n
], XmNwidth
, 60 ); n
++;
1417 text_w
= XtCreateManagedWidget ("XtasSimuOutCapaValText", xmTextWidgetClass
, form
, args
, n
);
1418 sprintf (buf
, "%.2f", XtasSimuParams
->out_capa_val
);
1419 XmTextSetString (text_w
, buf
);
1421 motif_str
= XmStringCreateSimple ("Output Capacitance Value =");
1423 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1424 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1425 XtSetArg ( args
[n
], XmNtopWidget
, text_w
); n
++;
1426 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1427 XtSetArg ( args
[n
], XmNbottomWidget
, text_w
); n
++;
1428 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1429 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1430 XtSetArg ( args
[n
], XmNrightWidget
, text_w
); n
++;
1431 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1432 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_END
); n
++;
1433 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1434 XmStringFree (motif_str
);
1437 /***** Frame : Step *****/
1439 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_WIDGET
); n
++;
1440 XtSetArg ( args
[n
], XmNleftWidget
, frame
); n
++;
1441 XtSetArg ( args
[n
], XmNleftOffset
, 5 ); n
++;
1442 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1443 XtSetArg ( args
[n
], XmNbottomWidget
, frame
); n
++;
1444 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1445 frame
= XtCreateManagedWidget ("XtasFrame", xmFrameWidgetClass
, win_form
, args
, n
);
1447 motif_str
= XmStringCreateSimple ("Step");
1449 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1450 #if XTAS_MOTIF_VERSION >= 20000
1451 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_TITLE_CHILD
); n
++;
1453 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_TITLE_CHILD
); n
++;
1455 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, frame
, args
, n
);
1456 XmStringFree (motif_str
);
1460 #if XTAS_MOTIF_VERSION >= 20000
1461 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1463 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1465 XtSetArg ( args
[n
], XmNpacking
, XmPACK_COLUMN
); n
++;
1466 XtSetArg ( args
[n
], XmNorientation
, XmVERTICAL
); n
++;
1467 XtSetArg ( args
[n
], XmNnumColumns
, 1 ); n
++;
1468 XtSetArg ( args
[n
], XmNisAligned
, True
); n
++;
1469 XtSetArg ( args
[n
], XmNmarginHeight
, 5 ); n
++;
1470 XtSetArg ( args
[n
], XmNmarginWidth
, 25 ); n
++;
1471 XtSetArg ( args
[n
], XmNspacing
, 5 ); n
++;
1472 row_w
= XtCreateManagedWidget ("XtasRow", xmRowColumnWidgetClass
, frame
, args
, n
);
1478 form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, row_w
, args
, n
);
1480 motif_str
= XmStringCreateSimple ("ps");
1482 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1483 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
1484 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1485 XtSetArg ( args
[n
], XmNrightOffset
, 24 ); n
++;
1486 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1487 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1488 XtSetArg ( args
[n
], XmNwidth
, 3*7 ); n
++; /* 7 = largeur moyenne d'un caractere */
1489 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1490 XmStringFree (motif_str
);
1493 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1494 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1495 XtSetArg ( args
[n
], XmNbottomAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1496 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1497 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1498 XtSetArg ( args
[n
], XmNrightWidget
, label_w
); n
++;
1499 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1500 XtSetArg ( args
[n
], XmNwidth
, 70 ); n
++;
1501 text_w
= XtCreateManagedWidget ("XtasSimuStepText", xmTextWidgetClass
, form
, args
, n
);
1502 sprintf (buf
, "%.3f", XtasSimuParams
->trans_step
);
1503 XmTextSetString (text_w
, buf
);
1505 motif_str
= XmStringCreateSimple ("Step =");
1507 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1508 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1509 XtSetArg ( args
[n
], XmNtopWidget
, text_w
); n
++;
1510 XtSetArg ( args
[n
], XmNbottomAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1511 XtSetArg ( args
[n
], XmNbottomWidget
, text_w
); n
++;
1512 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1513 XtSetArg ( args
[n
], XmNrightWidget
, text_w
); n
++;
1514 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1515 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1516 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_END
); n
++;
1517 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1518 XmStringFree (motif_str
);
1521 /***** Frame: Thresholds *****/
1523 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1524 XtSetArg ( args
[n
], XmNrightWidget
, frame
); n
++;
1525 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1526 XtSetArg ( args
[n
], XmNleftWidget
, frame
); n
++;
1527 XtSetArg ( args
[n
], XmNbottomAttachment
, XmATTACH_WIDGET
); n
++;
1528 XtSetArg ( args
[n
], XmNbottomWidget
, frame
); n
++;
1529 XtSetArg ( args
[n
], XmNbottomOffset
, 5 ); n
++;
1530 frame
= XtCreateManagedWidget ("XtasFrame", xmFrameWidgetClass
, win_form
, args
, n
);
1532 motif_str
= XmStringCreateSimple ("Thresholds");
1534 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1535 #if XTAS_MOTIF_VERSION >= 20000
1536 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_TITLE_CHILD
); n
++;
1538 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_TITLE_CHILD
); n
++;
1540 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, frame
, args
, n
);
1541 XmStringFree (motif_str
);
1544 #if XTAS_MOTIF_VERSION >= 20000
1545 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1547 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1549 XtSetArg ( args
[n
], XmNpacking
, XmPACK_COLUMN
); n
++;
1550 XtSetArg ( args
[n
], XmNorientation
, XmVERTICAL
); n
++;
1551 XtSetArg ( args
[n
], XmNnumColumns
, 1 ); n
++;
1552 XtSetArg ( args
[n
], XmNisAligned
, True
); n
++;
1553 XtSetArg ( args
[n
], XmNmarginHeight
, 10 ); n
++;
1554 XtSetArg ( args
[n
], XmNmarginWidth
, 17 ); n
++;
1555 XtSetArg ( args
[n
], XmNspacing
, 5 ); n
++;
1556 row_w
= XtCreateManagedWidget ("XtasRow", xmRowColumnWidgetClass
, frame
, args
, n
);
1561 form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, row_w
, args
, n
);
1563 motif_str
= XmStringCreateSimple ("%");
1565 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1566 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1567 XtSetArg ( args
[n
], XmNrightOffset
, 28 ); n
++;
1568 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1569 XtSetArg ( args
[n
], XmNwidth
, 15 ); n
++;
1570 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1571 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1572 XmStringFree (motif_str
);
1575 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1576 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1577 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1578 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1579 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1580 XtSetArg ( args
[n
], XmNrightWidget
, label_w
); n
++;
1581 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1582 XtSetArg ( args
[n
], XmNwidth
, 60 ); n
++;
1583 text_w
= XtCreateManagedWidget ("XtasSimuVthText", xmTextWidgetClass
, form
, args
, n
);
1584 sprintf (buf
, "%.2f", XtasSimuParams
->vth
);
1585 XmTextSetString (text_w
, buf
);
1587 motif_str
= XmStringCreateSimple ("VTH =");
1589 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1590 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1591 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1592 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1593 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1594 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1595 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1596 XtSetArg ( args
[n
], XmNrightWidget
, text_w
); n
++;
1597 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1598 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_END
); n
++;
1599 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1600 XmStringFree (motif_str
);
1604 form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, row_w
, args
, n
);
1606 motif_str
= XmStringCreateSimple ("%");
1608 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1609 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1610 XtSetArg ( args
[n
], XmNrightOffset
, 28 ); n
++;
1611 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1612 XtSetArg ( args
[n
], XmNwidth
, 15 ); n
++;
1613 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1614 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1615 XmStringFree (motif_str
);
1618 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1619 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1620 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1621 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1622 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1623 XtSetArg ( args
[n
], XmNrightWidget
, label_w
); n
++;
1624 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1625 XtSetArg ( args
[n
], XmNwidth
, 60 ); n
++;
1626 text_w
= XtCreateManagedWidget ("XtasSimuVthhText", xmTextWidgetClass
, form
, args
, n
);
1627 sprintf (buf
, "%.2f", XtasSimuParams
->vth_high
);
1628 XmTextSetString (text_w
, buf
);
1630 motif_str
= XmStringCreateSimple ("VTH high =");
1632 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1633 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1634 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1635 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1636 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1637 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1638 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1639 XtSetArg ( args
[n
], XmNrightWidget
, text_w
); n
++;
1640 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1641 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_END
); n
++;
1642 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1643 XmStringFree (motif_str
);
1647 form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, row_w
, args
, n
);
1649 motif_str
= XmStringCreateSimple ("%");
1651 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1652 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1653 XtSetArg ( args
[n
], XmNrightOffset
, 28 ); n
++;
1654 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1655 XtSetArg ( args
[n
], XmNwidth
, 15 ); n
++;
1656 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1657 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1658 XmStringFree (motif_str
);
1661 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1662 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1663 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1664 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1665 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1666 XtSetArg ( args
[n
], XmNrightWidget
, label_w
); n
++;
1667 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1668 XtSetArg ( args
[n
], XmNwidth
, 60 ); n
++;
1669 text_w
= XtCreateManagedWidget ("XtasSimuVthlText", xmTextWidgetClass
, form
, args
, n
);
1670 sprintf (buf
, "%.2f", XtasSimuParams
->vth_low
);
1671 XmTextSetString (text_w
, buf
);
1673 motif_str
= XmStringCreateSimple ("VTH low =");
1675 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1676 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1677 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1678 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1679 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1680 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1681 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1682 XtSetArg ( args
[n
], XmNrightWidget
, text_w
); n
++;
1683 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1684 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_END
); n
++;
1685 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1686 XmStringFree (motif_str
);
1690 /***** Frame: Conditions *****/
1692 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1693 XtSetArg ( args
[n
], XmNrightWidget
, frame
); n
++;
1694 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1695 XtSetArg ( args
[n
], XmNleftWidget
, frame
); n
++;
1696 XtSetArg ( args
[n
], XmNbottomAttachment
, XmATTACH_WIDGET
); n
++;
1697 XtSetArg ( args
[n
], XmNbottomWidget
, frame
); n
++;
1698 XtSetArg ( args
[n
], XmNbottomOffset
, 5 ); n
++;
1699 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
); n
++;
1700 XtSetArg ( args
[n
], XmNtopWidget
, frame_top
); n
++;
1701 XtSetArg ( args
[n
], XmNtopOffset
, 5 ); n
++;
1702 frame
= XtCreateManagedWidget ("XtasFrame", xmFrameWidgetClass
, win_form
, args
, n
);
1704 motif_str
= XmStringCreateSimple ("Conditions");
1706 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1707 #if XTAS_MOTIF_VERSION >= 20000
1708 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_TITLE_CHILD
); n
++;
1710 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_TITLE_CHILD
); n
++;
1712 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, frame
, args
, n
);
1713 XmStringFree (motif_str
);
1717 #if XTAS_MOTIF_VERSION >= 20000
1718 XtSetArg ( args
[n
], XmNframeChildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1720 XtSetArg ( args
[n
], XmNchildType
, XmFRAME_WORKAREA_CHILD
); n
++;
1722 frame_form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, frame
, args
, n
);
1725 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
1726 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1727 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1728 XtSetArg ( args
[n
], XmNpacking
, XmPACK_COLUMN
); n
++;
1729 XtSetArg ( args
[n
], XmNorientation
, XmVERTICAL
); n
++;
1730 XtSetArg ( args
[n
], XmNnumColumns
, 1 ); n
++;
1731 XtSetArg ( args
[n
], XmNisAligned
, True
); n
++;
1732 XtSetArg ( args
[n
], XmNmarginHeight
, 10 ); n
++;
1733 XtSetArg ( args
[n
], XmNmarginWidth
, 5 ); n
++;
1734 XtSetArg ( args
[n
], XmNspacing
, 5 ); n
++;
1735 row_w
= XtCreateManagedWidget ("XtasRow", xmRowColumnWidgetClass
, frame_form
, args
, n
);
1739 form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, row_w
, args
, n
);
1741 motif_str
= XmStringCreateSimple ("ns");
1743 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1744 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
1745 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1746 XtSetArg ( args
[n
], XmNrightOffset
, 24 ); n
++;
1747 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1748 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1749 XtSetArg ( args
[n
], XmNwidth
, 3*7 ); n
++; /* 7 = largeur moyenne d'un caractere */
1750 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1751 XmStringFree (motif_str
);
1754 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1755 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1756 XtSetArg ( args
[n
], XmNbottomAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1757 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1758 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1759 XtSetArg ( args
[n
], XmNrightWidget
, label_w
); n
++;
1760 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1761 XtSetArg ( args
[n
], XmNwidth
, 60 ); n
++;
1762 text_w
= XtCreateManagedWidget ("XtasSimuTimeText", xmTextWidgetClass
, form
, args
, n
);
1763 sprintf (buf
, "%.2f", XtasSimuParams
->trans_time
);
1764 XmTextSetString (text_w
, buf
);
1766 motif_str
= XmStringCreateSimple ("Time =");
1768 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1769 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1770 XtSetArg ( args
[n
], XmNtopWidget
, text_w
); n
++;
1771 XtSetArg ( args
[n
], XmNbottomAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1772 XtSetArg ( args
[n
], XmNbottomWidget
, text_w
); n
++;
1773 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1774 XtSetArg ( args
[n
], XmNrightWidget
, text_w
); n
++;
1775 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1776 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1777 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_END
); n
++;
1778 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1779 XmStringFree (motif_str
);
1783 form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, row_w
, args
, n
);
1785 motif_str
= XmStringCreateSimple ("V");
1787 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1788 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1789 XtSetArg ( args
[n
], XmNrightOffset
, 30 ); n
++;
1790 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1791 XtSetArg ( args
[n
], XmNwidth
, 15 ); n
++;
1792 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1793 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1794 XmStringFree (motif_str
);
1797 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1798 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1799 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1800 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1801 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1802 XtSetArg ( args
[n
], XmNrightWidget
, label_w
); n
++;
1803 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1804 XtSetArg ( args
[n
], XmNwidth
, 60 ); n
++;
1805 text_w
= XtCreateManagedWidget ("XtasSimuVddText", xmTextWidgetClass
, form
, args
, n
);
1806 sprintf (buf
, "%.2f", XtasSimuParams
->vdd
);
1807 XmTextSetString (text_w
, buf
);
1809 motif_str
= XmStringCreateSimple ("VDD =");
1811 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1812 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1813 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1814 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1815 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1816 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1817 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1818 XtSetArg ( args
[n
], XmNrightWidget
, text_w
); n
++;
1819 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1820 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_END
); n
++;
1821 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1822 XmStringFree (motif_str
);
1826 form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, row_w
, args
, n
);
1828 motif_str
= XmStringCreateSimple ("°C");
1830 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1831 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1832 XtSetArg ( args
[n
], XmNrightOffset
, 30 ); n
++;
1833 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1834 XtSetArg ( args
[n
], XmNwidth
, 15 ); n
++;
1835 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1836 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1837 XmStringFree (motif_str
);
1840 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1841 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1842 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1843 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1844 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1845 XtSetArg ( args
[n
], XmNrightWidget
, label_w
); n
++;
1846 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1847 XtSetArg ( args
[n
], XmNwidth
, 60 ); n
++;
1848 text_w
= XtCreateManagedWidget ("XtasSimuTempText", xmTextWidgetClass
, form
, args
, n
);
1849 sprintf (buf
, "%.2f", XtasSimuParams
->temp
);
1850 XmTextSetString (text_w
, buf
);
1852 motif_str
= XmStringCreateSimple ("Temperature =");
1854 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1855 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_OPPOSITE_WIDGET
); n
++;
1856 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1857 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_OPPOSITE_WIDGET
); n
++;
1858 XtSetArg ( args
[n
], XmNbottomWidget
, label_w
); n
++;
1859 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1860 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_WIDGET
); n
++;
1861 XtSetArg ( args
[n
], XmNrightWidget
, text_w
); n
++;
1862 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1863 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_END
); n
++;
1864 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1865 XmStringFree (motif_str
);
1867 /* FORM: OPTIONS1 */
1869 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
); n
++;
1870 XtSetArg ( args
[n
], XmNtopWidget
, row_w
); n
++;
1871 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1872 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1873 XtSetArg ( args
[n
], XmNbottomAttachment
,XmATTACH_FORM
); n
++;
1874 XtSetArg ( args
[n
], XmNbottomOffset
, 5 ); n
++;
1875 form
= XtCreateManagedWidget ("XtasForm", xmFormWidgetClass
, frame_form
, args
, n
);
1877 motif_str
= XmStringCreateSimple ("Simulator's options:");
1879 XtSetArg ( args
[n
], XmNlabelString
, motif_str
); n
++;
1880 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_FORM
); n
++;
1881 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1882 XtSetArg ( args
[n
], XmNleftOffset
, 5 ); n
++;
1883 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1884 XtSetArg ( args
[n
], XmNalignment
, XmALIGNMENT_BEGINNING
); n
++;
1885 label_w
= XtCreateManagedWidget ("XtasLabels", xmLabelWidgetClass
, form
, args
, n
);
1886 XmStringFree (motif_str
);
1889 XtSetArg ( args
[n
], XmNtopAttachment
, XmATTACH_WIDGET
); n
++;
1890 XtSetArg ( args
[n
], XmNtopWidget
, label_w
); n
++;
1891 XtSetArg ( args
[n
], XmNrightAttachment
, XmATTACH_FORM
); n
++;
1892 XtSetArg ( args
[n
], XmNrightOffset
, 5 ); n
++;
1893 XtSetArg ( args
[n
], XmNleftAttachment
, XmATTACH_FORM
); n
++;
1894 XtSetArg ( args
[n
], XmNleftOffset
, 5 ); n
++;
1895 XtSetArg ( args
[n
], XmNheight
, 30 ); n
++;
1896 text_w
= XtCreateManagedWidget ("XtasSimuOptionsText", xmTextWidgetClass
, form
, args
, n
);
1897 XmTextSetString (text_w
, XtasSimuParams
->spice_options
);
1901 XtManageChild (XtasSimuParamWidget
);
1902 // XalLimitedLoop (XtasSimuParamWidget);