scide: LookupDialog - redo lookup on classes after partial lookup
[supercollider.git] / HelpSource / Classes / PageLayout.schelp
blob514cd8a6db895a088202717fed2d0febfb26b787
1 CLASS:: PageLayout
2 summary:: a Window with a FlowView on it for use in ObjectGui's MVC model
3 categories:: GUI
4 related:: Classes/ObjectGui, Classes/FlowView, Classes/Window, Classes/NotificationCenter
6 DESCRIPTION::
7 This class encapsulates the common task of creating a Window, adding a FlowView (CompositeView with a FlowLayout on it).  It also supports the MVC model by registering controllers that are then removed (sent the .remove message) when the Window closes.  Additionally it can resize itself to fit the contents.
10 CLASSMETHODS::
12 METHOD:: new
13 Create a Window with a FlowView on it.  The PageLayout object can be treated like a Window or like a View.
15 argument:: title
16 Window title
18 argument:: bounds
19 Bounds or nil.  Default of nil will size the window to the entire screen size.  Use .resizeToFit to shrink the window to the content size.
21 argument:: margin
22 FlowLayout margin.
24 argument:: background
25 Background color
27 argument:: scroll
28 boolean: add scroll bars or not.
30 argument:: front
31 boolean: whether to immediately display the window, bringing it to the front.  default is true.  You may choose to first add your views to the window and then front it which is useful for large slow GUIs
33 returns:: a PageLayout
36 INSTANCEMETHODS::
38 METHOD:: window
39 the Window object
41 returns:: a Window
43 METHOD:: view
44 the top most view on the Window
46 returns:: a View
48 METHOD:: isClosed
49 boolean: has the window been closed ?
51 returns:: boolean
53 METHOD:: onClose
54 Just as for Window, this method is called when the PageLayout's window is closed.  The actual Window's onClose method is used to trigger clean up operations, releasing dependencies and will also call this onClose function.
56 returns:: get/set onClose handler
58 METHOD:: asView
59 returns the top view
61 returns:: a View
63 METHOD:: asFlowView
65 argument:: bounds
66 if bounds are nil then it returns self, as a PageLayout is compatible with FlowView.  If bounds are supplied then a child FlowView is placed and returned
68 returns:: self or a new FlowView
70 METHOD:: bounds
71 inner bounds of the top level view.
73 returns:: a Rect
75 METHOD:: asPageLayout
76 Similar to asFlowView, this message converts nil and various other objects to a PageLayout. This is already a PageLayout, so it returns self.
78 argument:: name
79 Ignored. If the receiver had been nil then the name would be the Window name. 
81 argument:: bounds
82 Ignored. Would have been used to size the PageLayout
84 returns:: self
86 METHOD:: startRow
87 compatible with FlowView
89 returns:: self
91 METHOD:: indentedRemaining
92 compatible with FlowView
94 returns:: self
96 METHOD:: checkNotClosed
97 isClosed.not
99 returns:: boolean
101 METHOD:: front
102 bring Window to the front
104 returns:: self
106 METHOD:: hide
107 Hide window
109 returns:: self
111 METHOD:: show
112 Show the window if it was previously hidden.
114 returns:: self
116 METHOD:: close
117 Close the window, releasing any dependencies and calling the onClose handler.
119 returns:: self
121 METHOD:: refresh
122 Refresh the top level view
124 returns:: self
126 METHOD:: background
127 set background color of top level view
129 argument:: c
130 color
132 returns:: self
134 METHOD:: removeOnClose
135 Register an object, usually a ObjectGui subclass or an Updater so that when the Window closes the .remove message will be sent to it. This will cause the object to release its dependencies on its Model.  This means the ObjectGui (or other controller object) will stop getting update messages and will stop trying to update the View which has just been closed along with the Window.  It also means that if there is no link to the Model and no longer any Views that held links to the controller object, that the controller is now unreferenced and will be garbage collected.
137 argument:: dependant
138 the object that wishes to be sent .remove on closing the window
140 returns:: self
142 METHOD:: resizeToFit
143 Resize the top FlowView to fit its contents and then resize the Window to fit that.=
145 argument:: reflow
146 boolean: FlowView can relay all of its child views in cases where the bounds have changed or views have been removed.  This puts them all back in place one by one for the updated bounds.  So this may result in smaller over all bounds, after which the window is shrunk.
148 argument:: center
149 boolean: after resizing, re-center the window in the screen.
151 returns:: self
153 METHOD:: reflowAll
154 see FlowView reflowAll
156 returns:: self
158 METHOD:: fullScreen
159 go Full screen
161 returns:: self
163 METHOD:: endFullScreen
164 end full screen
166 returns:: self
168 subsection::FlowView extensions
170 METHOD:: flow
171 Place a new FlowView on the window
173 argument:: func
174 A handler that recieves the new FlowView as argument
176 argument:: bounds
177 Bounds fo the FlowView
179 returns:: (returnvalue)
181 METHOD:: vert
182 (describe method here)
184 argument:: func
185 (describe argument here)
187 argument:: bounds
188 (describe argument here)
190 argument:: spacing
191 (describe argument here)
193 returns:: (returnvalue)
195 METHOD:: horz
196 (describe method here)
198 argument:: func
199 (describe argument here)
201 argument:: bounds
202 (describe argument here)
204 argument:: spacing
205 (describe argument here)
207 returns:: (returnvalue)
209 METHOD:: comp
210 (describe method here)
212 argument:: func
213 (describe argument here)
215 argument:: bounds
216 (describe argument here)
218 returns:: (returnvalue)
220 METHOD:: scroll
221 (describe method here)
223 argument::  ... args
224 (describe argument here)
226 returns:: (returnvalue)
229 EXAMPLES::
231 code::
232 PageLayout.new