F
fogh
Guest
Hi All,
Like the previous version, it gives proper resizing horizontal+vertical to the benefit of the "outputs" and "variables". This version also reduces the height used by labels.
I have put somewhere in the comments my interpretation of what "attachments" do. I also removed the symbol-to-string / string-to-symbol when passing field names.
It is tested with IC446 and IC50. It might very well work with IC442, while it probably doesn t with IC51.
/**********************************************************************
analog artist UI fix by F. Oghdayan , 2004.
**********************************************************************/
procedure(CSessionList()
mapcar( lambda((w) getq(w sevSession))
setof( window hiGetWindowList() getq(window sevSession))
);mapcar
);proc
;; example: car(CSessionlist())~>windowForm~>fieldList
;; enable overwrite of read-only functions.
sstatus(debugMode t)
;; declare the functions read only , to avoid overwrite by cadence context file
sstatus(writeProtect t)
when( fboundp('sevSetWindowForm) && !fboundp('CsevSetWindowForm)
CsevSetWindowForm_org=getd('sevSetWindowForm)
procedure( ADErollback() putd('sevSetWindowForm CsevSetWindowForm_org) );proc
);when
procedure( CsevSetWindowForm(session)
let(
()
;( CsevWindowFormInitialSize CsevWindowFormFields CsevWindowFormAttachments quotedfields)
session->windowForm = hiCreateAppForm(
?name sevGlobalSymbol('WindowForm session)
;;?initialSize t ;-] the simple truth is just not good enough.
?initialSize CsevWindowFormInitialSize=CsevSetWindowFormInitialSize() ;; CsevMainFormHeight should in fact retrieve window Ysize and substract banner+menu from that . Now gives roughly 372-49 = 323
?fields CsevWindowFormFields=CsevSetWindowFormFields(session)
?attachmentList let( ();(quotedfields)
quotedfields=mapcar(lambda( (Csevfield) getq(car(Csevfield) hiFieldSym ) ) CsevWindowFormFields)
CsevWindowFormAttachments=CsevSetWindowFormAttachments(quotedfields)
);let
);hiCreateAppForm
);let
);proc
procedure( CsevSetWindowFormInitialSize()
let(
;; from "xprop" : program specified size: 578 by 372
( (xpropXsize 577) (xpropYsize 367) (fieldattribXsize 536) (fieldattribYsize 359) )
;range(xpropXsize xpropYsize)
;range(fieldattribXsize fieldattribYsize)
;;536:312
;;536:318
;566:318
/* sevWindowWidth() => 578 ; sevWindowHeight() => 372 */
;;?initialSize list(sevMainFormWidth() CsevMainFormHeight())
;; CsevMainFormHeight should in fact retrieve window Ysize and substract banner+menu from that . Now gives roughly 372-49 = 323
list( sevWindowWidth()-3 sevWindowHeight()-90 )
));let&proc
procedure( CsevSetWindowFormFields(session)
let( ( (row 0) )
mapcan(
lambda( (fieldWithArgs)
apply('CsevMainFormFieldSets cons(session fieldWithArgs) )
);lambda
list(
list('design row )
list('lib ++row )
list('cell ++row )
list('view ++row )
list('varListBox)
list('anaListBox (row = 0) )
list('outListBox)
list('prompt)
)
);mapcan
))
/* __________________________________________________ */
procedure( CsevSetWindowFormAttachments(fields)
let( ()
/*fields=list(
'design 'designLabel 'lib 'cell 'view 'varListBoxHeader
'varListBoxLabel 'varListBox 'anaListBoxHeader 'anaListBoxLabel 'anaListBox
'outListBoxHeader 'outListBoxLabel
;; 'artistPlottingMode 'myfield ;;this must be uncommented with ic51
'outListBox 'prompt
)
*/
foreach( mapcar field fields
CsevMainFormAttachments( field )
)
))
/* __________________________________________________ */
procedure( CsevMainFormAttachments( field )
let(( LLF LRF LD RRF RLF RD TTF TBF TD BBF BTF BD (unspecified 0))
;; LLF is Left side of field following Left side of form at Fixed distance
LLF=hicLeftPositionSet
;; LRF is Left side of field following Right side of form at Fixed distance
LRF=unspecified ;; alas, this doesnt exist. But it will work if RRF and left is unspecified ( nil ).
;; LD is Left side of field following Dynamic right and left side of form at proportional position.
LD=hicLeftPercentSet
;; et coetera
RRF=hicRightPositionSet
RLF=unspecified ;this is default behaviour when no attachment exists
RD=hicRightPercentSet
TTF=hicTopPositionSet
TBF=unspecified ;; it works with BBF
TD=hicTopPercentSet
BBF=hicBottomPositionSet
BTF=unspecified
BD=hicBottomPercentSet
;;
;;design designLabel lib cell view varListBoxHeader
;;varListBoxLabel varListBox anaListBoxHeader anaListBoxLabel anaListBox
;;outListBoxHeader outListBoxLabel artistPlottingMode myfield outListBox
;;prompt
errset(if( debug printf("attaching field %L\n" field) ))
case(field
((design designLabel lib cell view) TTF|BTF|LLF|RD )
((anaListBox anaListBoxHeader anaListBoxLabel) TTF|BTF|LD|RRF )
((varListBoxHeader varListBoxLabel) TTF|BTF|LLF|RD )
(varListBox TTF|BBF|LLF|RD )
((outListBoxHeader outListBoxLabel) TTF|BTF|LD|RRF )
(outListBox TTF|BBF|LD|RRF )
((artistPlottingMode myfield) TBF|BBF|LD|RRF )
(prompt TBF|BBF|LLF|RRF )
; (t unspecified)
(t nil)
);case
);let
);procedure
/* __________________________________________________ */
putd('sevSetWindowForm getd('CsevSetWindowForm))
sstatus(debugMode nil)
/*****************************************************************************/
/* the variable CsevWindowFormFields inserted in the hicreateAppForm in sevSetWindowForm has lenght 15. Each of the 15 lists contains 2 elements. first element is a GUI structure.
foreach(struct mapcar('car CsevWindowFormFields) printf("%L\n" getq(struct hiFieldSym)) )
Function that returns attachments: We should return topleft for design (1) , bottomleft for varListBox (8) , topright for anaListBox (11) , bottomright for outListBox (14)
*/
procedure( CsevMainFormFieldSets( session fieldName \@optional row)
let(
(
(formWidth sevMainFormWidth() ) ;536
(lboxWidth sevListBoxWidth(strlen(sevVarSummaryLine())) ) ;177
rboxWidth
(labelHeight 30)
(boxLabelHeight sevListBoxHeight(1) ) ;33
ySecondRow
(labelWidth 50)
(labelJustification 'left )
desFieldWidth
(topBoxRows 3)
(bottomBoxRows 6)
(desrefleftpos 10) ; position for the library , cell , view labels
tw3
) ; local vars declared
labelHeight=labelHeight-9
tw3=5
;;
rboxWidth = formWidth - lboxWidth ;359
ySecondRow = labelHeight + boxLabelHeight - tw3 + sevListBoxHeight(topBoxRows) - tw3 ;122
desFieldWidth = lboxWidth - labelWidth
case( fieldName
(design
list(
/*
list(hiCreateFrameField(?name fieldName ?labelText " ")
2:2
;2:3
165:120 30
);Frame
*/
list(hiCreateLabel(?name
concat(fieldName
'Label
) ?labelText "Design" ?justification
'center
)
desrefleftpos 2+row * labelHeight)
( lboxWidth - desrefleftpos ):labelHeight
);Label
);fieldlist
);design
(lib
if( sevHiWithoutTurbo()
;;then
list(list(hiCreateOutputStringField(?name fieldName ?prompt "Library" ?value (sevLibrary(session) || ""))
desrefleftpos row*labelHeight+6)
( lboxWidth - 8 - desrefleftpos):labelHeight labelWidth ))
;;else
list(list(hiCreateLabel(?name concat(fieldName 'Label) ?labelText "Library" ?justification labelJustification )
desrefleftpos row*labelHeight+6)
labelWidth:labelHeight )
list(hiCreateStringField(?name fieldName ?value (sevLibrary(session) || "") ?editable nil )
labelWidth row*labelHeight+6)
desFieldWidth:labelHeight ))
);fi
);lib
(cell
if( sevHiWithoutTurbo() list(list(hiCreateOutputStringField(?name fieldName ?prompt "Cell" ?value
(sevCell(session) || "")
)
(desrefleftpos( row * labelHeight) + 2))
( lboxWidth - 8 - desrefleftpos):labelHeight labelWidth
)
) list(list(hiCreateLabel(?name
concat(fieldName
'Label
) ?labelText "Cell" ?justification
labelJustification
)
(desrefleftpos( row * labelHeight) + 2))
( labelWidth - desrefleftpos):labelHeight
)
list(hiCreateStringField(?name fieldName ?value
(sevCell(session) || "") ?editable
nil
)
(labelWidth - desrefleftpos)( row * labelHeight) + 2)
(desFieldWidth:labelHeight)
)
)))
(view
if( sevHiWithoutTurbo() list(list(hiCreateOutputStringField(?name fieldName ?prompt "View" ?value
(sevView(session) || "")
)
(desrefleftpos( row * labelHeight) - 2) )
( lboxWidth - 8 - desrefleftpos):labelHeight labelWidth
)
) list(list(hiCreateLabel(?name
concat(fieldName
'Label
) ?labelText "View" ?justification
labelJustification
)
desrefleftpos row*labelHeight - 2)
( labelWidth - desrefleftpos):labelHeight
)
list(hiCreateStringField(?name fieldName ?value
(sevView(session) || "") ?editable
nil
)
labelWidth row*labelHeight - 2)
( desFieldWidth - desrefleftpos):labelHeight
)
)))
(anaListBox
list(list(hiCreateLabel(?name
concat(fieldName
'Header
) ?labelText "Analyses" ?justification
'center
)
lboxWidth row * labelHeight)
rboxWidth:labelHeight
)
list(hiCreateListBoxField(?name
concat(fieldName
'Label
) ?choices
list(sevAnaSummaryLine()) ?numRows
1 ?changeCB
sprintf(nil "(sevUnselectAll '%L)" session)
)
lboxWidthadd1(row) * labelHeight)
rboxWidth:boxLabelHeight
)
list(hiCreateListBoxField(?name fieldName ?choices
sevNonEmptyStringList() ?numRows
topBoxRows ?changeCB
buildString(list(sprintf(nil "(sevUnselectVars '%L)" session)
sprintf(nil "(sevUnselectOuts '%L)" session)
)
) ?doubleClickCB
sprintf(nil "(sevEditSelectedAnas '%L)" session)
?multipleSelect t
)
lboxWidth add1(row)*labelHeight + boxLabelHeight - tw3 - 8 )
rboxWidthsevListBoxHeight(topBoxRows) + 8 )
)
))
(varListBox
list(list(hiCreateLabel(?name
concat(fieldName
'Header
) ?labelText "Design Variables" ?justification
'center
)
0:ySecondRow
lboxWidth:labelHeight
)
list(hiCreateListBoxField(?name
concat(fieldName
'Label
) ?choices
list(sevVarSummaryLine()) ?numRows
1 ?changeCB
sprintf(nil "(sevUnselectAll '%L)" session)
)
0 ySecondRow + labelHeight)
lboxWidth:boxLabelHeight
)
list(hiCreateListBoxField(?name fieldName ?choices
sevNonEmptyStringList() ?numRows
bottomBoxRows ?changeCB
buildString(list(sprintf(nil "(sevUnselectAnas '%L)" session)
sprintf(nil "(sevUnselectOuts '%L)" session)
)
) ?doubleClickCB
sprintf(nil "(sevEditSelectedVars '%L)" session)
?multipleSelect t
)
0 ySecondRow + labelHeight + boxLabelHeight - tw3 - 8)
lboxWidthsevListBoxHeight(bottomBoxRows) + 8 )
)
))
(outListBox
list(list(hiCreateLabel(?name
concat(fieldName
'Header
) ?labelText "Outputs" ?justification
'center
)
lboxWidth:ySecondRow
rboxWidth:labelHeight
)
list(hiCreateListBoxField(?name
concat(fieldName
'Label
) ?choices
list(sevOutSummaryLine()) ?numRows
1 ?changeCB
sprintf(nil "(sevUnselectAll '%L)" session)
)
lboxWidth ySecondRow + labelHeight )
rboxWidth:boxLabelHeight
)
list(hiCreateListBoxField(?name fieldName ?choices
sevNonEmptyStringList() ?numRows
bottomBoxRows ?changeCB
buildString(list(sprintf(nil "(sevUnselectAnas '%L)" session)
sprintf(nil "(sevUnselectVars '%L)" session)
)
) ?doubleClickCB
sprintf(nil "(sevEditSelectedOuts '%L)" session)
?multipleSelect t
)
lboxWidth ySecondRow + labelHeight + boxLabelHeight - tw3 - 8 )
rboxWidthsevListBoxHeight(bottomBoxRows) + 0)
)
))
(prompt
list(list(hiCreateLabel(?name fieldName ?labelText " " ?justification
'left
)
0 ySecondRow + labelHeight + boxLabelHeight - tw3 + sevListBoxHeight(bottomBoxRows) + -17)
(formWidth:26)
)
))
)
)
)
Like the previous version, it gives proper resizing horizontal+vertical to the benefit of the "outputs" and "variables". This version also reduces the height used by labels.
I have put somewhere in the comments my interpretation of what "attachments" do. I also removed the symbol-to-string / string-to-symbol when passing field names.
It is tested with IC446 and IC50. It might very well work with IC442, while it probably doesn t with IC51.
/**********************************************************************
analog artist UI fix by F. Oghdayan , 2004.
**********************************************************************/
procedure(CSessionList()
mapcar( lambda((w) getq(w sevSession))
setof( window hiGetWindowList() getq(window sevSession))
);mapcar
);proc
;; example: car(CSessionlist())~>windowForm~>fieldList
;; enable overwrite of read-only functions.
sstatus(debugMode t)
;; declare the functions read only , to avoid overwrite by cadence context file
sstatus(writeProtect t)
when( fboundp('sevSetWindowForm) && !fboundp('CsevSetWindowForm)
CsevSetWindowForm_org=getd('sevSetWindowForm)
procedure( ADErollback() putd('sevSetWindowForm CsevSetWindowForm_org) );proc
);when
procedure( CsevSetWindowForm(session)
let(
()
;( CsevWindowFormInitialSize CsevWindowFormFields CsevWindowFormAttachments quotedfields)
session->windowForm = hiCreateAppForm(
?name sevGlobalSymbol('WindowForm session)
;;?initialSize t ;-] the simple truth is just not good enough.
?initialSize CsevWindowFormInitialSize=CsevSetWindowFormInitialSize() ;; CsevMainFormHeight should in fact retrieve window Ysize and substract banner+menu from that . Now gives roughly 372-49 = 323
?fields CsevWindowFormFields=CsevSetWindowFormFields(session)
?attachmentList let( ();(quotedfields)
quotedfields=mapcar(lambda( (Csevfield) getq(car(Csevfield) hiFieldSym ) ) CsevWindowFormFields)
CsevWindowFormAttachments=CsevSetWindowFormAttachments(quotedfields)
);let
);hiCreateAppForm
);let
);proc
procedure( CsevSetWindowFormInitialSize()
let(
;; from "xprop" : program specified size: 578 by 372
( (xpropXsize 577) (xpropYsize 367) (fieldattribXsize 536) (fieldattribYsize 359) )
;range(xpropXsize xpropYsize)
;range(fieldattribXsize fieldattribYsize)
;;536:312
;;536:318
;566:318
/* sevWindowWidth() => 578 ; sevWindowHeight() => 372 */
;;?initialSize list(sevMainFormWidth() CsevMainFormHeight())
;; CsevMainFormHeight should in fact retrieve window Ysize and substract banner+menu from that . Now gives roughly 372-49 = 323
list( sevWindowWidth()-3 sevWindowHeight()-90 )
));let&proc
procedure( CsevSetWindowFormFields(session)
let( ( (row 0) )
mapcan(
lambda( (fieldWithArgs)
apply('CsevMainFormFieldSets cons(session fieldWithArgs) )
);lambda
list(
list('design row )
list('lib ++row )
list('cell ++row )
list('view ++row )
list('varListBox)
list('anaListBox (row = 0) )
list('outListBox)
list('prompt)
)
);mapcan
))
/* __________________________________________________ */
procedure( CsevSetWindowFormAttachments(fields)
let( ()
/*fields=list(
'design 'designLabel 'lib 'cell 'view 'varListBoxHeader
'varListBoxLabel 'varListBox 'anaListBoxHeader 'anaListBoxLabel 'anaListBox
'outListBoxHeader 'outListBoxLabel
;; 'artistPlottingMode 'myfield ;;this must be uncommented with ic51
'outListBox 'prompt
)
*/
foreach( mapcar field fields
CsevMainFormAttachments( field )
)
))
/* __________________________________________________ */
procedure( CsevMainFormAttachments( field )
let(( LLF LRF LD RRF RLF RD TTF TBF TD BBF BTF BD (unspecified 0))
;; LLF is Left side of field following Left side of form at Fixed distance
LLF=hicLeftPositionSet
;; LRF is Left side of field following Right side of form at Fixed distance
LRF=unspecified ;; alas, this doesnt exist. But it will work if RRF and left is unspecified ( nil ).
;; LD is Left side of field following Dynamic right and left side of form at proportional position.
LD=hicLeftPercentSet
;; et coetera
RRF=hicRightPositionSet
RLF=unspecified ;this is default behaviour when no attachment exists
RD=hicRightPercentSet
TTF=hicTopPositionSet
TBF=unspecified ;; it works with BBF
TD=hicTopPercentSet
BBF=hicBottomPositionSet
BTF=unspecified
BD=hicBottomPercentSet
;;
;;design designLabel lib cell view varListBoxHeader
;;varListBoxLabel varListBox anaListBoxHeader anaListBoxLabel anaListBox
;;outListBoxHeader outListBoxLabel artistPlottingMode myfield outListBox
;;prompt
errset(if( debug printf("attaching field %L\n" field) ))
case(field
((design designLabel lib cell view) TTF|BTF|LLF|RD )
((anaListBox anaListBoxHeader anaListBoxLabel) TTF|BTF|LD|RRF )
((varListBoxHeader varListBoxLabel) TTF|BTF|LLF|RD )
(varListBox TTF|BBF|LLF|RD )
((outListBoxHeader outListBoxLabel) TTF|BTF|LD|RRF )
(outListBox TTF|BBF|LD|RRF )
((artistPlottingMode myfield) TBF|BBF|LD|RRF )
(prompt TBF|BBF|LLF|RRF )
; (t unspecified)
(t nil)
);case
);let
);procedure
/* __________________________________________________ */
putd('sevSetWindowForm getd('CsevSetWindowForm))
sstatus(debugMode nil)
/*****************************************************************************/
/* the variable CsevWindowFormFields inserted in the hicreateAppForm in sevSetWindowForm has lenght 15. Each of the 15 lists contains 2 elements. first element is a GUI structure.
foreach(struct mapcar('car CsevWindowFormFields) printf("%L\n" getq(struct hiFieldSym)) )
Function that returns attachments: We should return topleft for design (1) , bottomleft for varListBox (8) , topright for anaListBox (11) , bottomright for outListBox (14)
*/
procedure( CsevMainFormFieldSets( session fieldName \@optional row)
let(
(
(formWidth sevMainFormWidth() ) ;536
(lboxWidth sevListBoxWidth(strlen(sevVarSummaryLine())) ) ;177
rboxWidth
(labelHeight 30)
(boxLabelHeight sevListBoxHeight(1) ) ;33
ySecondRow
(labelWidth 50)
(labelJustification 'left )
desFieldWidth
(topBoxRows 3)
(bottomBoxRows 6)
(desrefleftpos 10) ; position for the library , cell , view labels
tw3
) ; local vars declared
labelHeight=labelHeight-9
tw3=5
;;
rboxWidth = formWidth - lboxWidth ;359
ySecondRow = labelHeight + boxLabelHeight - tw3 + sevListBoxHeight(topBoxRows) - tw3 ;122
desFieldWidth = lboxWidth - labelWidth
case( fieldName
(design
list(
/*
list(hiCreateFrameField(?name fieldName ?labelText " ")
2:2
;2:3
165:120 30
);Frame
*/
list(hiCreateLabel(?name
concat(fieldName
'Label
) ?labelText "Design" ?justification
'center
)
desrefleftpos 2+row * labelHeight)
( lboxWidth - desrefleftpos ):labelHeight
);Label
);fieldlist
);design
(lib
if( sevHiWithoutTurbo()
;;then
list(list(hiCreateOutputStringField(?name fieldName ?prompt "Library" ?value (sevLibrary(session) || ""))
desrefleftpos row*labelHeight+6)
( lboxWidth - 8 - desrefleftpos):labelHeight labelWidth ))
;;else
list(list(hiCreateLabel(?name concat(fieldName 'Label) ?labelText "Library" ?justification labelJustification )
desrefleftpos row*labelHeight+6)
labelWidth:labelHeight )
list(hiCreateStringField(?name fieldName ?value (sevLibrary(session) || "") ?editable nil )
labelWidth row*labelHeight+6)
desFieldWidth:labelHeight ))
);fi
);lib
(cell
if( sevHiWithoutTurbo() list(list(hiCreateOutputStringField(?name fieldName ?prompt "Cell" ?value
(sevCell(session) || "")
)
(desrefleftpos( row * labelHeight) + 2))
( lboxWidth - 8 - desrefleftpos):labelHeight labelWidth
)
) list(list(hiCreateLabel(?name
concat(fieldName
'Label
) ?labelText "Cell" ?justification
labelJustification
)
(desrefleftpos( row * labelHeight) + 2))
( labelWidth - desrefleftpos):labelHeight
)
list(hiCreateStringField(?name fieldName ?value
(sevCell(session) || "") ?editable
nil
)
(labelWidth - desrefleftpos)( row * labelHeight) + 2)
(desFieldWidth:labelHeight)
)
)))
(view
if( sevHiWithoutTurbo() list(list(hiCreateOutputStringField(?name fieldName ?prompt "View" ?value
(sevView(session) || "")
)
(desrefleftpos( row * labelHeight) - 2) )
( lboxWidth - 8 - desrefleftpos):labelHeight labelWidth
)
) list(list(hiCreateLabel(?name
concat(fieldName
'Label
) ?labelText "View" ?justification
labelJustification
)
desrefleftpos row*labelHeight - 2)
( labelWidth - desrefleftpos):labelHeight
)
list(hiCreateStringField(?name fieldName ?value
(sevView(session) || "") ?editable
nil
)
labelWidth row*labelHeight - 2)
( desFieldWidth - desrefleftpos):labelHeight
)
)))
(anaListBox
list(list(hiCreateLabel(?name
concat(fieldName
'Header
) ?labelText "Analyses" ?justification
'center
)
lboxWidth row * labelHeight)
rboxWidth:labelHeight
)
list(hiCreateListBoxField(?name
concat(fieldName
'Label
) ?choices
list(sevAnaSummaryLine()) ?numRows
1 ?changeCB
sprintf(nil "(sevUnselectAll '%L)" session)
)
lboxWidthadd1(row) * labelHeight)
rboxWidth:boxLabelHeight
)
list(hiCreateListBoxField(?name fieldName ?choices
sevNonEmptyStringList() ?numRows
topBoxRows ?changeCB
buildString(list(sprintf(nil "(sevUnselectVars '%L)" session)
sprintf(nil "(sevUnselectOuts '%L)" session)
)
) ?doubleClickCB
sprintf(nil "(sevEditSelectedAnas '%L)" session)
?multipleSelect t
)
lboxWidth add1(row)*labelHeight + boxLabelHeight - tw3 - 8 )
rboxWidthsevListBoxHeight(topBoxRows) + 8 )
)
))
(varListBox
list(list(hiCreateLabel(?name
concat(fieldName
'Header
) ?labelText "Design Variables" ?justification
'center
)
0:ySecondRow
lboxWidth:labelHeight
)
list(hiCreateListBoxField(?name
concat(fieldName
'Label
) ?choices
list(sevVarSummaryLine()) ?numRows
1 ?changeCB
sprintf(nil "(sevUnselectAll '%L)" session)
)
0 ySecondRow + labelHeight)
lboxWidth:boxLabelHeight
)
list(hiCreateListBoxField(?name fieldName ?choices
sevNonEmptyStringList() ?numRows
bottomBoxRows ?changeCB
buildString(list(sprintf(nil "(sevUnselectAnas '%L)" session)
sprintf(nil "(sevUnselectOuts '%L)" session)
)
) ?doubleClickCB
sprintf(nil "(sevEditSelectedVars '%L)" session)
?multipleSelect t
)
0 ySecondRow + labelHeight + boxLabelHeight - tw3 - 8)
lboxWidthsevListBoxHeight(bottomBoxRows) + 8 )
)
))
(outListBox
list(list(hiCreateLabel(?name
concat(fieldName
'Header
) ?labelText "Outputs" ?justification
'center
)
lboxWidth:ySecondRow
rboxWidth:labelHeight
)
list(hiCreateListBoxField(?name
concat(fieldName
'Label
) ?choices
list(sevOutSummaryLine()) ?numRows
1 ?changeCB
sprintf(nil "(sevUnselectAll '%L)" session)
)
lboxWidth ySecondRow + labelHeight )
rboxWidth:boxLabelHeight
)
list(hiCreateListBoxField(?name fieldName ?choices
sevNonEmptyStringList() ?numRows
bottomBoxRows ?changeCB
buildString(list(sprintf(nil "(sevUnselectAnas '%L)" session)
sprintf(nil "(sevUnselectVars '%L)" session)
)
) ?doubleClickCB
sprintf(nil "(sevEditSelectedOuts '%L)" session)
?multipleSelect t
)
lboxWidth ySecondRow + labelHeight + boxLabelHeight - tw3 - 8 )
rboxWidthsevListBoxHeight(bottomBoxRows) + 0)
)
))
(prompt
list(list(hiCreateLabel(?name fieldName ?labelText " " ?justification
'left
)
0 ySecondRow + labelHeight + boxLabelHeight - tw3 + sevListBoxHeight(bottomBoxRows) + -17)
(formWidth:26)
)
))
)
)
)