5 flow { arg func,bounds;
7 f = FlowView(this,bounds ?? { this.bounds });
12 comp { arg func,bounds;
14 f = GUI.compositeView.new(this,bounds ?? { this.bounds });
23 deepDo { arg function;
26 this.children.do({arg child;
27 child.deepDo(function);
34 this.deepDo({ arg child; all = all.add(child) });
42 deepDo { arg function;
45 this.children.do({arg child;
46 child.deepDo(function);
53 this.deepDo({ arg child; all = all.add(child) });
60 flow { arg func,bounds;
62 f = FlowView(this,bounds); // flow view intellegently calc defaults bounds
64 if(bounds.isNil,{ f.resizeToFit });
67 horz { arg func,bounds;
69 comp = GUI.hLayoutView.new(this,bounds ?? { this.bounds });
70 comp.tryPerform('spacing_',GUI.skin.gap.x);
74 vert { arg func,bounds;
76 comp = GUI.vLayoutView.new(this,bounds ?? { this.bounds });
77 comp.tryPerform('spacing_',GUI.skin.gap.y);
81 comp { arg func,bounds;
83 comp = GUI.compositeView.new(this,bounds ?? { this.bounds });
87 scroll { arg func,bounds,autohidesScrollers=true,autoScrolls=true,
88 hasHorizontalScroller=true,hasVerticalScroller=true;
90 comp = GUI.scrollView.new(this,bounds ?? { this.bounds });
91 comp.autohidesScrollers = autohidesScrollers;
92 comp.autoScrolls = autoScrolls;
93 comp.hasHorizontalScroller = hasHorizontalScroller;
94 comp.hasVerticalScroller = hasVerticalScroller;
102 // because a scroll view inside an h or v layout will crash the lang
103 // layer in a composite view to protect it until we fix that bug.
104 scroll { arg func,bounds,autohidesScrollers=true,autoScrolls=true,
105 hasHorizontalScroller=true,hasVerticalScroller=true;
108 ^comp.scroll(func,comp.bounds.setOriginAbsolute(comp),
109 autohidesScrollers,autoScrolls,hasHorizontalScroller,hasVerticalScroller);