DialogBox.st
changeset 354 dcad6936bfa6
parent 353 f93d08174b61
child 356 5f20a808ff76
--- 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 $'
 ! !