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(ExampleFiles.child);

a = SoundFileView(w, Rect(10,40, 700, 180))
	.soundfile_(f)
	.readWithTask(0, f.numFrames, showProgress: false )
	.resize_(1);

w.front;
)
::
