--- a/DialogBox.st Sat Feb 10 17:31:03 1996 +0100
+++ b/DialogBox.st Sat Feb 10 17:57:06 1996 +0100
@@ -3214,25 +3214,37 @@
|w h p|
addedComponents notNil ifTrue:[
- w := addedComponents
- inject:0
- into:[:max :element |
- |eExt|
-
- eExt := (element preferredExtent x) + (element borderWidth * 2). "/ max:element extent x.
- max max:(eExt + element leftInset + element rightInset)].
+ w := addedComponents
+ inject:0
+ into:[:max :element |
+ |eExt prefX scale rel relX|
+
+ prefX := element preferredExtent x.
+
+ "/ special (for your convenience)
+ "/ if the element has been added with a relative width,
+ "/ scale it to get at least its preferred width
+
+ (rel := element relativeExtent) notNil ifTrue:[
+ relX := rel x.
+ (relX isNil or:[relX isInteger]) ifFalse:[
+ prefX := (prefX * (1 / relX)) rounded
+ ].
+ ].
+ eExt := prefX + (element borderWidth * 2). "/ max:element extent x.
+ max max:(eExt + element leftInset + element rightInset)].
] ifFalse:[
- w := super preferredExtent x.
+ w := super preferredExtent x.
].
w := w max:width.
h := yPosition + ViewSpacing.
buttonPanel subViews size ~~ 0 ifTrue:[
- p := buttonPanel preferredExtent.
- w := w max:p x.
- h := h
- + p y
- + ViewSpacing.
+ p := buttonPanel preferredExtent.
+ w := w max:p x.
+ h := h
+ + p y
+ + ViewSpacing.
].
"/ okButton isNil ifTrue:[
@@ -3246,7 +3258,7 @@
"/
^ w @ h
- "Modified: 27.1.1996 / 18:19:50 / cg"
+ "Modified: 9.2.1996 / 19:44:46 / cg"
! !
!DialogBox methodsFor:'special geometry settings'!
@@ -3410,5 +3422,5 @@
!DialogBox class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg/DialogBox.st,v 1.41 1996-02-10 16:31:03 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg/DialogBox.st,v 1.42 1996-02-10 16:57:06 cg Exp $'
! !