|
Eclipse Platform 2.0 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.eclipse.swt.widgets.Widget | +--org.eclipse.swt.widgets.Control | +--org.eclipse.swt.widgets.Scrollable | +--org.eclipse.swt.widgets.Composite
Instances of this class are controls which are capable of containing other controls.
Note: The NO_BACKGROUND
, NO_FOCUS
, NO_MERGE_PAINTS
,
and NO_REDRAW_RESIZE
styles are intended for use with Canvas
.
They can be used with Composite
if you are drawing your own, but their
behavior is undefined if they are used with subclasses of Composite
other
than Canvas
.
This class may be subclassed by custom control implementors who are building controls that are constructed from aggregates of other controls.
Canvas
Field Summary |
Fields inherited from class org.eclipse.swt.widgets.Control |
handle |
Constructor Summary | |
Composite(Composite parent,
int style)
Constructs a new instance of this class given its parent and a style value describing its behavior and appearance. |
Method Summary | |
protected void |
checkSubclass()
Checks that this class can be subclassed. |
Point |
computeSize(int wHint,
int hHint,
boolean changed)
Returns the preferred size of the receiver. |
Control[] |
getChildren()
Returns an array containing the receiver's children. |
Layout |
getLayout()
Returns layout which is associated with the receiver, or null if one has not been set. |
Control[] |
getTabList()
Gets the last specified tabbing order for the control. |
void |
layout()
If the receiver has a layout, asks the layout to lay out (that is, set the size and location of) the receiver's children. |
void |
layout(boolean changed)
If the receiver has a layout, asks the layout to lay out (that is, set the size and location of) the receiver's children. |
boolean |
setFocus()
Causes the receiver to have the keyboard focus, such that all keyboard events will be delivered to it. |
void |
setLayout(Layout layout)
Sets the layout which is associated with the receiver to be the argument which may be null. |
void |
setTabList(Control[] tabList)
Sets the tabbing order for the specified controls to match the order that they occur in the argument list. |
Methods inherited from class org.eclipse.swt.widgets.Scrollable |
computeTrim, getClientArea, getHorizontalBar, getVerticalBar |
Methods inherited from class org.eclipse.swt.widgets.Widget |
addDisposeListener, addListener, checkWidget, dispose, getData, getData, getStyle, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, setData, setData, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public Composite(Composite parent, int style)
The style value is either one of the style constants defined in
class SWT
which is applicable to instances of this
class, or must be built by bitwise OR'ing together
(that is, using the int
"|" operator) two or more
of those SWT
style constants. The class description
lists the style constants that are applicable to the class.
Style bits are also inherited from superclasses.
parent
- a widget which will be the parent of the new instance (cannot be null)style
- the style of widget to construct
IllegalArgumentException
- SWTException
- SWT.NO_BACKGROUND
,
SWT.NO_FOCUS
,
SWT.NO_MERGE_PAINTS
,
SWT.NO_REDRAW_RESIZE
,
SWT.NO_RADIO_GROUP
,
Widget.getStyle()
Method Detail |
protected void checkSubclass()
Widget
The SWT class library is intended to be subclassed
only at specific, controlled points (most notably,
Composite
and Canvas
when
implementing new widgets). This method enforces this
rule unless it is overridden.
IMPORTANT: By providing an implementation of this method that allows a subclass of a class which does not normally allow subclassing to be created, the implementer agrees to be fully responsible for the fact that any such subclass will likely fail between SWT releases and will be strongly platform specific. No support is provided for user-written classes which are implemented in this fashion.
The ability to subclass outside of the allowed SWT classes is intended purely to enable those not on the SWT development team to implement patches in order to get around specific limitations in advance of when those limitations can be addressed by the team. Subclassing should not be attempted without an intimate and detailed understanding of the hierarchy.
checkSubclass
in class Widget
public Point computeSize(int wHint, int hHint, boolean changed)
Control
The preferred size of a control is the size that it would
best be displayed at. The width hint and height hint arguments
allow the caller to ask a control questions such as "Given a particular
width, how high does the control need to be to show all of the contents?"
To indicate that the caller does not wish to constrain a particular
dimension, the constant SWT.DEFAULT
is passed for the hint.
If the changed flag is true
, it indicates that the receiver's
contents have changed, therefore any caches that a layout manager
containing the control may have been keeping need to be flushed. When the
control is resized, the changed flag will be false
, so layout
manager caches can be retained.
computeSize
in class Control
wHint
- the width hint (can be SWT.DEFAULT
)hHint
- the height hint (can be SWT.DEFAULT
)changed
- true
if the control's contents have changed, and false
otherwise
Layout
,
Control.getBorderWidth()
,
Control.getBounds()
,
Control.getSize()
,
Control.pack()
,
"computeTrim, getClientArea for controls that implement them"public Control[] getChildren()
Note: This is not the actual structure used by the receiver to maintain its list of children, so modifying the array will not affect the receiver.
SWTException
- public Layout getLayout()
SWTException
- public Control[] getTabList()
SWTException
- setTabList(org.eclipse.swt.widgets.Control[])
public void layout()
This is equivalent to calling layout(true)
.
SWTException
- public void layout(boolean changed)
true
the layout must not rely
on any cached information it is keeping about the children. If it
is false
the layout may (potentially) simplify the
work it is doing by assuming that the state of the none of the
receiver's children has changed since the last layout.
If the receiver does not have a layout, do nothing.
changed
- true
if the layout must flush its caches, and false
otherwise
SWTException
- public boolean setFocus()
Control
setFocus
in class Control
true
if the control got focus, and false
if it was unable to.Control.forceFocus()
public void setLayout(Layout layout)
layout
- the receiver's new layout or null
SWTException
- public void setTabList(Control[] tabList)
tabList
- the ordered list of controls representing the tab order or null
IllegalArgumentException
- SWTException
-
|
Eclipse Platform 2.0 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |