xref: /haiku/docs/user/interface/Control.dox (revision 6ac7032dc66744139522bdef3fab49d4e894a84a)
1*6ac7032dSJohn Scipione/*
2*6ac7032dSJohn Scipione * Copyright 2011, Haiku inc.
3*6ac7032dSJohn Scipione * Distributed under the terms of the MIT License.
4*6ac7032dSJohn Scipione *
5*6ac7032dSJohn Scipione * Documentation by:
6*6ac7032dSJohn Scipione *		John Scipione, jscipione@gmail.com
7*6ac7032dSJohn Scipione * Corresponds to:
8*6ac7032dSJohn Scipione *		/trunk/headers/os/interface/Control.h	 rev 42794
9*6ac7032dSJohn Scipione *		/trunk/src/kits/interface/Control.cpp	 rev 42794
10*6ac7032dSJohn Scipione */
11*6ac7032dSJohn Scipione
12*6ac7032dSJohn Scipione/*!
13*6ac7032dSJohn Scipione	\file Control.h
14*6ac7032dSJohn Scipione	\brief BControl class definition and support enums.
15*6ac7032dSJohn Scipione*/
16*6ac7032dSJohn Scipione
17*6ac7032dSJohn Scipione
18*6ac7032dSJohn Scipione/*!
19*6ac7032dSJohn Scipione	\var B_CONTROL_ON
20*6ac7032dSJohn Scipione	Control on
21*6ac7032dSJohn Scipione*/
22*6ac7032dSJohn Scipione
23*6ac7032dSJohn Scipione
24*6ac7032dSJohn Scipione/*!
25*6ac7032dSJohn Scipione	\var B_CONTROL_OFF
26*6ac7032dSJohn Scipione	Control off
27*6ac7032dSJohn Scipione*/
28*6ac7032dSJohn Scipione
29*6ac7032dSJohn Scipione
30*6ac7032dSJohn Scipione/*!
31*6ac7032dSJohn Scipione	\class BControl
32*6ac7032dSJohn Scipione	\ingroup interface
33*6ac7032dSJohn Scipione	\ingroup libbe
34*6ac7032dSJohn Scipione	\brief BControl is the base class for user-event handling objects.
35*6ac7032dSJohn Scipione
36*6ac7032dSJohn Scipione	Simple controls such as BCheckBox and BButton deviate only a bit from
37*6ac7032dSJohn Scipione	BControl, whereas more complicated controls such as BColorControl and
38*6ac7032dSJohn Scipione	BSlider re-implement much more functionality. Whether you are building
39*6ac7032dSJohn Scipione	a simple control or something more complicated you should inherit from
40*6ac7032dSJohn Scipione	BControl as it provides a common set of methods for intercepting
41*6ac7032dSJohn Scipione	received messages from mouse and keyboard events.
42*6ac7032dSJohn Scipione
43*6ac7032dSJohn Scipione	Controls have state which they keep in their value. The value of a
44*6ac7032dSJohn Scipione	control, stored as an int32, is read and set by the virtual Value() and
45*6ac7032dSJohn Scipione	SetValue() methods. BControl defines \c B_CONTROL_ON and \c B_CONTROL_OFF
46*6ac7032dSJohn Scipione	values that you can use as a convenience if your control has a simple
47*6ac7032dSJohn Scipione	on/off state. If your BControl derived class stores a larger set of
48*6ac7032dSJohn Scipione	states then you should define your own integer values instead.
49*6ac7032dSJohn Scipione*/
50*6ac7032dSJohn Scipione
51*6ac7032dSJohn Scipione
52*6ac7032dSJohn Scipione/*!
53*6ac7032dSJohn Scipione	\fn BControl::BControl(BRect frame, const char *name, const char *label,
54*6ac7032dSJohn Scipione						   BMessage *message, uint32 resizingMode,
55*6ac7032dSJohn Scipione						   uint32 flags)
56*6ac7032dSJohn Scipione	\brief Construct a control in the \a frame with a \a name, \a label,
57*6ac7032dSJohn Scipione		model \a message, \a resizingMode, and creation \a flags.
58*6ac7032dSJohn Scipione
59*6ac7032dSJohn Scipione	The initial value of the control is set to 0 (\c B_CONTROL_OFF).
60*6ac7032dSJohn Scipione	The \a label and the \a message parameters can be set to \c NULL.
61*6ac7032dSJohn Scipione
62*6ac7032dSJohn Scipione	\param frame The \a frame to draw the control in.
63*6ac7032dSJohn Scipione	\param name The \a name of the control.
64*6ac7032dSJohn Scipione	\param label The \a label displayed along with the control.
65*6ac7032dSJohn Scipione	\param message The \a message to send when the control is activated.
66*6ac7032dSJohn Scipione	\param resizingMode Defines the behavior of the control as the parent
67*6ac7032dSJohn Scipione		view resizes.
68*6ac7032dSJohn Scipione	\param flags Behavior \a flags for the control. See BView for details.
69*6ac7032dSJohn Scipione*/
70*6ac7032dSJohn Scipione
71*6ac7032dSJohn Scipione
72*6ac7032dSJohn Scipione/*!
73*6ac7032dSJohn Scipione	\fn BControl::BControl(const char *name, const char *label,
74*6ac7032dSJohn Scipione						   BMessage *message, uint32 flags)
75*6ac7032dSJohn Scipione	\brief Construct a control with a \a name, \a label, model \a message,
76*6ac7032dSJohn Scipione		and creation \a flags suitable for use with the Layout API.
77*6ac7032dSJohn Scipione
78*6ac7032dSJohn Scipione	The initial value of the control is set to 0 (\c B_CONTROL_OFF).
79*6ac7032dSJohn Scipione	The \a label and the \a message parameters can be set to \c NULL.
80*6ac7032dSJohn Scipione
81*6ac7032dSJohn Scipione	\param name The \a name of the control.
82*6ac7032dSJohn Scipione	\param label The \a label displayed along with the control.
83*6ac7032dSJohn Scipione	\param message The \a message to send when the control is activated.
84*6ac7032dSJohn Scipione	\param flags Behavior \a flags for the control. See BView for details.
85*6ac7032dSJohn Scipione*/
86*6ac7032dSJohn Scipione
87*6ac7032dSJohn Scipione
88*6ac7032dSJohn Scipione/*!
89*6ac7032dSJohn Scipione	\fn BControl::~BControl()
90*6ac7032dSJohn Scipione	\brief Frees all memory used by the BControl object including the memory
91*6ac7032dSJohn Scipione		used by the model message.
92*6ac7032dSJohn Scipione*/
93*6ac7032dSJohn Scipione
94*6ac7032dSJohn Scipione
95*6ac7032dSJohn Scipione/*!
96*6ac7032dSJohn Scipione	\fn BControl::BControl(BMessage *archive)
97*6ac7032dSJohn Scipione	\brief Constructs a BControl object from an \a archive message.
98*6ac7032dSJohn Scipione
99*6ac7032dSJohn Scipione	This method is usually not called directly. If you want to build a
100*6ac7032dSJohn Scipione	control from a message you should call Instantiate() which can
101*6ac7032dSJohn Scipione	handle errors properly.
102*6ac7032dSJohn Scipione
103*6ac7032dSJohn Scipione	If the \a archive deep, the BControl object will also unarchive each
104*6ac7032dSJohn Scipione	of its child views recursively.
105*6ac7032dSJohn Scipione
106*6ac7032dSJohn Scipione	\param archive The \a archive message to restore from.
107*6ac7032dSJohn Scipione*/
108*6ac7032dSJohn Scipione
109*6ac7032dSJohn Scipione
110*6ac7032dSJohn Scipione/*!
111*6ac7032dSJohn Scipione	\fn BArchivable* BControl::Instantiate(BMessage *archive)
112*6ac7032dSJohn Scipione	\brief Creates a new object from an \a archive.
113*6ac7032dSJohn Scipione
114*6ac7032dSJohn Scipione	If the message is a valid object then the instance created from the
115*6ac7032dSJohn Scipione	passed in \a archive will be returned. Otherwise this method will
116*6ac7032dSJohn Scipione	return \c NULL.
117*6ac7032dSJohn Scipione
118*6ac7032dSJohn Scipione	\param archive The \a archive message.
119*6ac7032dSJohn Scipione
120*6ac7032dSJohn Scipione	\returns An instance of the object if \a archive is valid or \c NULL.
121*6ac7032dSJohn Scipione
122*6ac7032dSJohn Scipione	\sa BArchivable::Instantiate()
123*6ac7032dSJohn Scipione*/
124*6ac7032dSJohn Scipione
125*6ac7032dSJohn Scipione
126*6ac7032dSJohn Scipione/*!
127*6ac7032dSJohn Scipione	\fn status_t BControl::Archive(BMessage *archive, bool deep) const
128*6ac7032dSJohn Scipione	\brief Archives the object into \a archive.
129*6ac7032dSJohn Scipione
130*6ac7032dSJohn Scipione	\param archive The target \a archive that the data will go into.
131*6ac7032dSJohn Scipione	\param deep Whether or not to recursively archive child views.
132*6ac7032dSJohn Scipione
133*6ac7032dSJohn Scipione	\retval B_OK The archive operation was successful.
134*6ac7032dSJohn Scipione	\retval B_BAD_VALUE \c NULL \a archive message.
135*6ac7032dSJohn Scipione	\retval B_ERROR The archive operation failed.
136*6ac7032dSJohn Scipione
137*6ac7032dSJohn Scipione	\sa BArchivable::Archive()
138*6ac7032dSJohn Scipione*/
139*6ac7032dSJohn Scipione
140*6ac7032dSJohn Scipione
141*6ac7032dSJohn Scipione/*!
142*6ac7032dSJohn Scipione	\fn void BControl::WindowActivated(bool active)
143*6ac7032dSJohn Scipione	\brief Hook method that is called when the attached window becomes
144*6ac7032dSJohn Scipione		activated or deactivated.
145*6ac7032dSJohn Scipione
146*6ac7032dSJohn Scipione	The BControl is redrawn if it is a child of the focused view.
147*6ac7032dSJohn Scipione
148*6ac7032dSJohn Scipione	\param active \c true if the window becomes activated, \c false if the
149*6ac7032dSJohn Scipione		window becomes deactivated.
150*6ac7032dSJohn Scipione
151*6ac7032dSJohn Scipione	\sa BView::WindowActivated()
152*6ac7032dSJohn Scipione*/
153*6ac7032dSJohn Scipione
154*6ac7032dSJohn Scipione
155*6ac7032dSJohn Scipione/*!
156*6ac7032dSJohn Scipione	\fn void BControl::AttachedToWindow()
157*6ac7032dSJohn Scipione	\brief Hook method that is called when the object is attached to a
158*6ac7032dSJohn Scipione		window.
159*6ac7032dSJohn Scipione
160*6ac7032dSJohn Scipione	This method overrides BView::AttachedToWindow() setting the low color
161*6ac7032dSJohn Scipione	and view color of the BControl so that it matches the view color of the
162*6ac7032dSJohn Scipione	control's parent view. It also makes the attached window the default
163*6ac7032dSJohn Scipione	target for Invoke() as long as another target has not already been set.
164*6ac7032dSJohn Scipione
165*6ac7032dSJohn Scipione	\sa BView::AttachedToWindow()
166*6ac7032dSJohn Scipione	\sa Invoke()
167*6ac7032dSJohn Scipione	\sa BInvoker::SetTarget()
168*6ac7032dSJohn Scipione*/
169*6ac7032dSJohn Scipione
170*6ac7032dSJohn Scipione
171*6ac7032dSJohn Scipione/*!
172*6ac7032dSJohn Scipione	\fn void BControl::DetachedFromWindow()
173*6ac7032dSJohn Scipione	\brief Hook method that is called when the object is detached from a
174*6ac7032dSJohn Scipione		window.
175*6ac7032dSJohn Scipione
176*6ac7032dSJohn Scipione	\sa BView::DetachedFromWindow()
177*6ac7032dSJohn Scipione*/
178*6ac7032dSJohn Scipione
179*6ac7032dSJohn Scipione
180*6ac7032dSJohn Scipione/*!
181*6ac7032dSJohn Scipione	\fn void BControl::AllAttached()
182*6ac7032dSJohn Scipione	\brief Similar to AttachedToWindow() but this method is triggered after
183*6ac7032dSJohn Scipione		all child views have already been attached to a window.
184*6ac7032dSJohn Scipione
185*6ac7032dSJohn Scipione	\sa BView::AllAttached()
186*6ac7032dSJohn Scipione*/
187*6ac7032dSJohn Scipione
188*6ac7032dSJohn Scipione
189*6ac7032dSJohn Scipione/*!
190*6ac7032dSJohn Scipione	\fn void BControl::AllDetached()
191*6ac7032dSJohn Scipione	\brief Similar to AttachedToWindow() but this method is triggered after
192*6ac7032dSJohn Scipione		all child views have already been detached from a window.
193*6ac7032dSJohn Scipione
194*6ac7032dSJohn Scipione	\sa BView::AllDetached()
195*6ac7032dSJohn Scipione*/
196*6ac7032dSJohn Scipione
197*6ac7032dSJohn Scipione
198*6ac7032dSJohn Scipione/*!
199*6ac7032dSJohn Scipione	\fn void BControl::MakeFocus(bool focused)
200*6ac7032dSJohn Scipione	\brief Gives or removes focus from the control.
201*6ac7032dSJohn Scipione
202*6ac7032dSJohn Scipione	BControl::MakeFocus() overrides BView::MakeFocus() to call Draw() when
203*6ac7032dSJohn Scipione	the focus changes. Derived classes generally don't have to re-implement
204*6ac7032dSJohn Scipione	MakeFocus().
205*6ac7032dSJohn Scipione
206*6ac7032dSJohn Scipione	IsFocusChanging() returns \c true when Draw() is called from this method.
207*6ac7032dSJohn Scipione
208*6ac7032dSJohn Scipione	\param focused \a true to set focus, \a false to remove it.
209*6ac7032dSJohn Scipione
210*6ac7032dSJohn Scipione	\sa BView::MakeFocus()
211*6ac7032dSJohn Scipione	\sa IsFocusChanging()
212*6ac7032dSJohn Scipione*/
213*6ac7032dSJohn Scipione
214*6ac7032dSJohn Scipione
215*6ac7032dSJohn Scipione/*!
216*6ac7032dSJohn Scipione	\fn void BControl::KeyDown(const char *bytes, int32 numBytes)
217*6ac7032dSJohn Scipione	\brief Hook method that is called when a keyboard key is pressed.
218*6ac7032dSJohn Scipione
219*6ac7032dSJohn Scipione	Overrides BView::KeyDown() to toggle the control value and then
220*6ac7032dSJohn Scipione	calls Invoke() for \c B_SPACE or \c B_ENTER. If this is not desired
221*6ac7032dSJohn Scipione	you should override this method in derived classes.
222*6ac7032dSJohn Scipione
223*6ac7032dSJohn Scipione	The KeyDown() method is only called if the BControl is the focus view
224*6ac7032dSJohn Scipione	in the active window. If the window has a default button, \c B_ENTER
225*6ac7032dSJohn Scipione	will be passed to that object instead of the focus view.
226*6ac7032dSJohn Scipione
227*6ac7032dSJohn Scipione	\param bytes The bytes of the key combination pressed.
228*6ac7032dSJohn Scipione	\param numBytes The number of bytes in \a bytes.
229*6ac7032dSJohn Scipione
230*6ac7032dSJohn Scipione	\sa BView::KeyDown()
231*6ac7032dSJohn Scipione	\sa MakeFocus()
232*6ac7032dSJohn Scipione*/
233*6ac7032dSJohn Scipione
234*6ac7032dSJohn Scipione
235*6ac7032dSJohn Scipione/*!
236*6ac7032dSJohn Scipione	\fn void BControl::MouseDown(BPoint point)
237*6ac7032dSJohn Scipione	\brief Hook method that is called when a mouse button is pressed.
238*6ac7032dSJohn Scipione
239*6ac7032dSJohn Scipione	\param point The point on the screen where to mouse pointer is when
240*6ac7032dSJohn Scipione		the mouse button is pressed.
241*6ac7032dSJohn Scipione
242*6ac7032dSJohn Scipione	\sa BView::MouseDown()
243*6ac7032dSJohn Scipione*/
244*6ac7032dSJohn Scipione
245*6ac7032dSJohn Scipione
246*6ac7032dSJohn Scipione/*!
247*6ac7032dSJohn Scipione	\fn void BControl::MouseUp(BPoint point)
248*6ac7032dSJohn Scipione	\brief Hook method that is called when a mouse button is released.
249*6ac7032dSJohn Scipione
250*6ac7032dSJohn Scipione	\param point The point on the screen where to mouse pointer is when
251*6ac7032dSJohn Scipione		the mouse button is released.
252*6ac7032dSJohn Scipione
253*6ac7032dSJohn Scipione	\sa BView::MouseUp()
254*6ac7032dSJohn Scipione*/
255*6ac7032dSJohn Scipione
256*6ac7032dSJohn Scipione
257*6ac7032dSJohn Scipione/*!
258*6ac7032dSJohn Scipione	\fn void BControl::MouseMoved(BPoint point, uint32 transit,
259*6ac7032dSJohn Scipione								  const BMessage *message)
260*6ac7032dSJohn Scipione	\brief Hook method that is called when the mouse is moved.
261*6ac7032dSJohn Scipione
262*6ac7032dSJohn Scipione	\sa BView::MouseMoved()
263*6ac7032dSJohn Scipione*/
264*6ac7032dSJohn Scipione
265*6ac7032dSJohn Scipione
266*6ac7032dSJohn Scipione/*!
267*6ac7032dSJohn Scipione	\fn void BControl::SetLabel(const char *label)
268*6ac7032dSJohn Scipione	\brief Sets the \a label of the control.
269*6ac7032dSJohn Scipione
270*6ac7032dSJohn Scipione	If the \a label changes the control is redrawn.
271*6ac7032dSJohn Scipione
272*6ac7032dSJohn Scipione	\param label The \a label to set, can be \c NULL.
273*6ac7032dSJohn Scipione*/
274*6ac7032dSJohn Scipione
275*6ac7032dSJohn Scipione
276*6ac7032dSJohn Scipione/*!
277*6ac7032dSJohn Scipione	\fn const char* BControl::Label() const
278*6ac7032dSJohn Scipione	\brief Gets the label of the control.
279*6ac7032dSJohn Scipione
280*6ac7032dSJohn Scipione	returns The control's label.
281*6ac7032dSJohn Scipione*/
282*6ac7032dSJohn Scipione
283*6ac7032dSJohn Scipione
284*6ac7032dSJohn Scipione/*!
285*6ac7032dSJohn Scipione	\fn void BControl::SetValue(int32 value)
286*6ac7032dSJohn Scipione	\brief Sets the value of the control.
287*6ac7032dSJohn Scipione
288*6ac7032dSJohn Scipione	If the \a value changes the control is redrawn.
289*6ac7032dSJohn Scipione
290*6ac7032dSJohn Scipione	\param value The \a value to set.
291*6ac7032dSJohn Scipione
292*6ac7032dSJohn Scipione	\sa SetValueNoUpdate()
293*6ac7032dSJohn Scipione*/
294*6ac7032dSJohn Scipione
295*6ac7032dSJohn Scipione
296*6ac7032dSJohn Scipione/*!
297*6ac7032dSJohn Scipione	\fn void BControl::SetValueNoUpdate(int32 value)
298*6ac7032dSJohn Scipione	\brief Sets the value of the control without redrawing.
299*6ac7032dSJohn Scipione
300*6ac7032dSJohn Scipione	\param value The \a value to set.
301*6ac7032dSJohn Scipione
302*6ac7032dSJohn Scipione	\sa SetValue()
303*6ac7032dSJohn Scipione*/
304*6ac7032dSJohn Scipione
305*6ac7032dSJohn Scipione
306*6ac7032dSJohn Scipione/*!
307*6ac7032dSJohn Scipione	\fn int32 BControl::Value() const
308*6ac7032dSJohn Scipione	\brief Gets the value of the control.
309*6ac7032dSJohn Scipione
310*6ac7032dSJohn Scipione	\returns The control's value.
311*6ac7032dSJohn Scipione*/
312*6ac7032dSJohn Scipione
313*6ac7032dSJohn Scipione
314*6ac7032dSJohn Scipione/*!
315*6ac7032dSJohn Scipione	\fn void BControl::SetEnabled(bool enabled)
316*6ac7032dSJohn Scipione	\brief Enables or disables the control.
317*6ac7032dSJohn Scipione
318*6ac7032dSJohn Scipione	BControl objects are enabled by default. If the control changes enabled
319*6ac7032dSJohn Scipione	state then it is redrawn.
320*6ac7032dSJohn Scipione
321*6ac7032dSJohn Scipione	Disabled controls generally won't allow the user to focus on them
322*6ac7032dSJohn Scipione	(The \c B_NAVIGABLE flag is turned off), and don't post any messages.
323*6ac7032dSJohn Scipione
324*6ac7032dSJohn Scipione	Disabled controls in derived classes should be drawn in subdued colors
325*6ac7032dSJohn Scipione	to visually indicate that they are disabled and should not respond to
326*6ac7032dSJohn Scipione	keyboard or mouse events.
327*6ac7032dSJohn Scipione
328*6ac7032dSJohn Scipione	\param enabled If \c true enables the control, if \c false, disables it.
329*6ac7032dSJohn Scipione*/
330*6ac7032dSJohn Scipione
331*6ac7032dSJohn Scipione
332*6ac7032dSJohn Scipione/*!
333*6ac7032dSJohn Scipione	\fn bool BControl::IsEnabled() const
334*6ac7032dSJohn Scipione	\brief Gets whether or not the control is currently enabled.
335*6ac7032dSJohn Scipione
336*6ac7032dSJohn Scipione	\returns \c true if the control is enabled, \c false if it is disabled.
337*6ac7032dSJohn Scipione*/
338*6ac7032dSJohn Scipione
339*6ac7032dSJohn Scipione
340*6ac7032dSJohn Scipione/*!
341*6ac7032dSJohn Scipione	\fn void BControl::GetPreferredSize(float *_width, float *_height)
342*6ac7032dSJohn Scipione	\brief Fill out the preferred width and height of the control
343*6ac7032dSJohn Scipione		into the \a _width and \a _height parameters.
344*6ac7032dSJohn Scipione
345*6ac7032dSJohn Scipione	Derived classes can override this method to set the preferred
346*6ac7032dSJohn Scipione	width and height of the control.
347*6ac7032dSJohn Scipione
348*6ac7032dSJohn Scipione	\param _width Pointer to a \c float to hold the width of the control.
349*6ac7032dSJohn Scipione	\param _height Pointer to a \c float to hold the height of the control.
350*6ac7032dSJohn Scipione
351*6ac7032dSJohn Scipione	\sa BView::GetPreferredSize()
352*6ac7032dSJohn Scipione*/
353*6ac7032dSJohn Scipione
354*6ac7032dSJohn Scipione
355*6ac7032dSJohn Scipione/*!
356*6ac7032dSJohn Scipione	\fn void BControl::ResizeToPreferred()
357*6ac7032dSJohn Scipione	\brief Resize the control to its preferred size.
358*6ac7032dSJohn Scipione
359*6ac7032dSJohn Scipione	\sa BView::ResizeToPreferred()
360*6ac7032dSJohn Scipione*/
361*6ac7032dSJohn Scipione
362*6ac7032dSJohn Scipione
363*6ac7032dSJohn Scipione/*!
364*6ac7032dSJohn Scipione	\fn status_t BControl::Invoke(BMessage *message)
365*6ac7032dSJohn Scipione	\brief Sends a copy of the model \a message to the designated target.
366*6ac7032dSJohn Scipione
367*6ac7032dSJohn Scipione	BControl::Invoke() overrides BInvoker::Invoke(). Derived classes
368*6ac7032dSJohn Scipione	should use this method in their MouseDown() and KeyDown() methods
369*6ac7032dSJohn Scipione	and should call IsEnabled() to check if the control is enabled
370*6ac7032dSJohn Scipione	before calling Invoke().
371*6ac7032dSJohn Scipione
372*6ac7032dSJohn Scipione	The following fields added to the BMessage:
373*6ac7032dSJohn Scipione		- "when"	\c B_INT64_TYPE	system_time()
374*6ac7032dSJohn Scipione		- "source"	\c B_POINTER_TYPE	A pointer to the BControl object.
375*6ac7032dSJohn Scipione
376*6ac7032dSJohn Scipione	\param message The \a message to send.
377*6ac7032dSJohn Scipione
378*6ac7032dSJohn Scipione	\sa BInvoker::Invoke()
379*6ac7032dSJohn Scipione	\sa IsEnabled()
380*6ac7032dSJohn Scipione*/
381*6ac7032dSJohn Scipione
382*6ac7032dSJohn Scipione
383*6ac7032dSJohn Scipione/*!
384*6ac7032dSJohn Scipione	\fn BHandler* BControl::ResolveSpecifier(BMessage *message, int32 index,
385*6ac7032dSJohn Scipione											 BMessage *specifier, int32 what,
386*6ac7032dSJohn Scipione											 const char *property)
387*6ac7032dSJohn Scipione	\brief Determine the proper specifier for scripting messages.
388*6ac7032dSJohn Scipione
389*6ac7032dSJohn Scipione	\sa BHandler::ResolveSpecifier()
390*6ac7032dSJohn Scipione*/
391*6ac7032dSJohn Scipione
392*6ac7032dSJohn Scipione
393*6ac7032dSJohn Scipione/*!
394*6ac7032dSJohn Scipione	\fn status_t BControl::GetSupportedSuites(BMessage *message)
395*6ac7032dSJohn Scipione	\brief Report the suites of understood messages.
396*6ac7032dSJohn Scipione
397*6ac7032dSJohn Scipione	\sa BHandler::GetSupportedSuites();
398*6ac7032dSJohn Scipione*/
399*6ac7032dSJohn Scipione
400*6ac7032dSJohn Scipione
401*6ac7032dSJohn Scipione/*!
402*6ac7032dSJohn Scipione	\fn status_t BControl::Perform(perform_code code, void* _data)
403*6ac7032dSJohn Scipione	\brief Perform some action. (Internal Method)
404*6ac7032dSJohn Scipione
405*6ac7032dSJohn Scipione	The following perform codes are recognized:
406*6ac7032dSJohn Scipione		- \c PERFORM_CODE_MIN_SIZE
407*6ac7032dSJohn Scipione		- \c PERFORM_CODE_MAX_SIZE
408*6ac7032dSJohn Scipione		- \c PERFORM_CODE_PREFERRED_SIZE
409*6ac7032dSJohn Scipione		- \c PERFORM_CODE_LAYOUT_ALIGNMENT
410*6ac7032dSJohn Scipione		- \c PERFORM_CODE_HAS_HEIGHT_FOR_WIDTH
411*6ac7032dSJohn Scipione		- \c PERFORM_CODE_GET_HEIGHT_FOR_WIDTH
412*6ac7032dSJohn Scipione		- \c PERFORM_CODE_SET_LAYOUT
413*6ac7032dSJohn Scipione		- \c PERFORM_CODE_INVALIDATE_LAYOUT
414*6ac7032dSJohn Scipione		- \c PERFORM_CODE_DO_LAYOUT
415*6ac7032dSJohn Scipione
416*6ac7032dSJohn Scipione	\param code The perform code.
417*6ac7032dSJohn Scipione	\param _data A pointer to store some data.
418*6ac7032dSJohn Scipione
419*6ac7032dSJohn Scipione	\returns A status code.
420*6ac7032dSJohn Scipione
421*6ac7032dSJohn Scipione	\sa BHandler::Perform()
422*6ac7032dSJohn Scipione*/
423