90 lines
2.1 KiB
Text
90 lines
2.1 KiB
Text
title:: Resize behaviour
|
|
summary:: Resize behavior for View and its subclasses
|
|
categories:: GUI
|
|
|
|
section:: Description
|
|
method:: resize
|
|
The link::Classes/View#-resize:: method takes nine different values as argument defining the behavior of the view when the containing window is resized. Each view responds relatively to the stretches of its parent view.
|
|
|
|
table::
|
|
## 1 || 2 || 3
|
|
## 4 || 5 || 6
|
|
## 7 || 8 || 9
|
|
::
|
|
|
|
list::
|
|
## 1 - fixed to left, fixed to top
|
|
## 2 - horizontally elastic, fixed to top
|
|
## 3 - fixed to right, fixed to top
|
|
|
|
## 4 - fixed to left, vertically elastic
|
|
## 5 - horizontally elastic, vertically elastic
|
|
## 6 - fixed to right, vertically elastic
|
|
|
|
## 7 - fixed to left, fixed to bottom
|
|
## 8 - horizontally elastic, fixed to bottom
|
|
## 9 - fixed to right, fixed to bottom
|
|
::
|
|
|
|
section:: Examples
|
|
|
|
code::
|
|
// resize behaviours
|
|
// use the PopUpMenus to mix resize modes
|
|
(
|
|
var a;
|
|
|
|
a = { |i|
|
|
var w, b, x,k,t,p;
|
|
k=i;
|
|
i = i + 1;
|
|
w = Window("resize:"+i, Rect(10 + (k%3 * 220), Window.screenBounds.height- [250,460,670].at(k/3), 200, 180));
|
|
b = w.view.bounds;
|
|
x = CompositeView(w, w.view.bounds.insetBy(20,20))
|
|
.background_(Color.rand)
|
|
.resize_(i);
|
|
|
|
y = CompositeView(x, x.bounds.moveTo(0,0).insetBy(20,20))
|
|
.background_(Color.rand)
|
|
.resize_(i);
|
|
|
|
y.decorator = FlowLayout(y.bounds).gap_(0.0 @ 0.0);
|
|
|
|
t = StaticText(y, Rect(0, 0, 40, 40))
|
|
.background_(Color.rand.alpha_(0.8))
|
|
.resize_(i)
|
|
.string_(i)
|
|
.font_(Font("Helvetica", 26));
|
|
|
|
p=PopUpMenu(y,40@40).items_((1..9).collect(_.asString)).value_(i-1).resize_(i)
|
|
.action_{|m| t.string_((m.value+1).asString); [p,t].do(_.resize_(m.value+1))};
|
|
|
|
w.front;
|
|
w.onClose = {a.do(_.close) };
|
|
|
|
} ! 9;
|
|
)
|
|
|
|
|
|
// the popupmenu contains the various modes
|
|
|
|
(
|
|
w = Window("soundfile test", Rect(200, 200, 720, 250));
|
|
|
|
p = PopUpMenu(w, Rect(10,10,80,24))
|
|
.items_( Array.fill(9, {arg i; (i+1).asString;}) )
|
|
.action_({ arg sbs;
|
|
a.resize_(sbs.value+1);
|
|
});
|
|
|
|
f = SoundFile.new;
|
|
f.openRead(Platform.resourceDir +/+ "sounds/a11wlk01.wav");
|
|
|
|
a = SoundFileView(w, Rect(10,40, 700, 180))
|
|
.soundfile_(f)
|
|
.readWithTask(0, f.numFrames, showProgress: false )
|
|
.resize_(1);
|
|
|
|
w.front;
|
|
)
|
|
::
|