Button

Instances of this class represent a selectable user interface object that issues notification when pressed and released. <dl> <dt><b>Styles:</b></dt> <dd>ARROW, CHECK, PUSH, RADIO, TOGGLE, FLAT</dd> <dd>UP, DOWN, LEFT, RIGHT, CENTER</dd> <dt><b>Events:</b></dt> <dd>Selection</dd> </dl> <p> Note: Only one of the styles ARROW, CHECK, PUSH, RADIO, and TOGGLE may be specified. </p><p> Note: Only one of the styles LEFT, RIGHT, and CENTER may be specified. </p><p> Note: Only one of the styles UP, DOWN, LEFT, and RIGHT may be specified when the ARROW style is specified. </p><p> IMPORTANT: This class is intended to be subclassed <em>only</em> within the SWT implementation. </p>

@see <a href="http://www.eclipse.org/swt/snippets/#button">Button snippets</a> @see <a href="http://www.eclipse.org/swt/examples.php">SWT Example: ControlExample</a> @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>

Constructors

this
this(Composite parent, int style)

Constructs a new instance of this class given its parent and a style value describing its behavior and appearance. <p> The style value is either one of the style constants defined in class <code>SWT</code> which is applicable to instances of this class, or must be built by <em>bitwise OR</em>'ing together (that is, using the <code>int</code> "|" operator) two or more of those <code>SWT</code> style constants. The class description lists the style constants that are applicable to the class. Style bits are also inherited from superclasses. </p>

Members

Functions

addSelectionListener
void addSelectionListener(SelectionListener listener)

Adds the listener to the collection of listeners who will be notified when the control is selected by the user, by sending it one of the messages defined in the <code>SelectionListener</code> interface. <p> <code>widgetSelected</code> is called when the control is selected by the user. <code>widgetDefaultSelected</code> is not called. </p>

getAlignment
int getAlignment()

Returns a value which describes the position of the text or image in the receiver. The value will be one of <code>LEFT</code>, <code>RIGHT</code> or <code>CENTER</code> unless the receiver is an <code>ARROW</code> button, in which case, the alignment will indicate the direction of the arrow (one of <code>LEFT</code>, <code>RIGHT</code>, <code>UP</code> or <code>DOWN</code>).

getGrayed
bool getGrayed()

Returns <code>true</code> if the receiver is grayed, and false otherwise. When the widget does not have the <code>CHECK</code> style, return false.

getImage
Image getImage()

Returns the receiver's image if it has one, or null if it does not.

getSelection
bool getSelection()

Returns <code>true</code> if the receiver is selected, and false otherwise. <p> When the receiver is of type <code>CHECK</code> or <code>RADIO</code>, it is selected when it is checked. When it is of type <code>TOGGLE</code>, it is selected when it is pushed in. If the receiver is of any other type, this method returns false.

getText
String getText()

Returns the receiver's text, which will be an empty string if it has never been set or if the receiver is an <code>ARROW</code> button.

removeSelectionListener
void removeSelectionListener(SelectionListener listener)

Removes the listener from the collection of listeners who will be notified when the control is selected by the user.

setAlignment
void setAlignment(int alignment)

Controls how text, images and arrows will be displayed in the receiver. The argument should be one of <code>LEFT</code>, <code>RIGHT</code> or <code>CENTER</code> unless the receiver is an <code>ARROW</code> button, in which case, the argument indicates the direction of the arrow (one of <code>LEFT</code>, <code>RIGHT</code>, <code>UP</code> or <code>DOWN</code>).

setGrayed
void setGrayed(bool grayed)

Sets the grayed state of the receiver. This state change only applies if the control was created with the SWT.CHECK style.

setImage
void setImage(Image image)

Sets the receiver's image to the argument, which may be <code>null</code> indicating that no image should be displayed. <p> Note that a Button can display an image and text simultaneously on Windows (starting with XP), GTK+ and OSX. On other platforms, a Button that has an image and text set into it will display the image or text that was set most recently. </p> @param image the image to display on the receiver (may be <code>null</code>)

setSelection
void setSelection(bool selected)

Sets the selection state of the receiver, if it is of type <code>CHECK</code>, <code>RADIO</code>, or <code>TOGGLE</code>.

setText
void setText(String string)

Sets the receiver's text. <p> This method sets the button label. The label may include the mnemonic character but must not contain line delimiters. </p> <p> Mnemonics are indicated by an '&amp;' that causes the next character to be the mnemonic. When the user presses a key sequence that matches the mnemonic, a selection event occurs. On most platforms, the mnemonic appears underlined but may be emphasized in a platform specific manner. The mnemonic indicator character '&amp;' can be escaped by doubling it in the string, causing a single '&amp;' to be displayed. </p><p> Note that a Button can display an image and text simultaneously on Windows (starting with XP), GTK+ and OSX. On other platforms, a Button that has an image and text set into it will display the image or text that was set most recently. </p> @param string the new text

Inherited Members

From Control

print
bool print(GC gc)

Prints the receiver and all children.

computeSize
Point computeSize(int wHint, int hHint)

Returns the preferred size of the receiver. <p> The <em>preferred size</em> 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 <code>SWT.DEFAULT</code> is passed for the hint. </p>

computeSize
Point computeSize(int wHint, int hHint, bool changed)

Returns the preferred size of the receiver. <p> The <em>preferred size</em> 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 <code>SWT.DEFAULT</code> is passed for the hint. </p><p> If the changed flag is <code>true</code>, it indicates that the receiver's <em>contents</em> 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 <code>false</code>, so layout manager caches can be retained. </p>

getAccessible
Accessible getAccessible()

Returns the accessible object for the receiver. If this is the first time this object is requested, then the object is created and returned.

getBounds
Rectangle getBounds()

Returns a rectangle describing the receiver's size and location relative to its parent (or its display if its parent is null), unless the receiver is a shell. In this case, the location is relative to the display.

setBounds
void setBounds(Rectangle rect)

Sets the receiver's size and location to the rectangular area specified by the argument. The <code>x</code> and <code>y</code> fields of the rectangle are relative to the receiver's parent (or its display if its parent is null). <p> Note: Attempting to set the width or height of the receiver to a negative number will cause that value to be set to zero instead. </p>

setBounds
void setBounds(int x, int y, int width, int height)

Sets the receiver's size and location to the rectangular area specified by the arguments. The <code>x</code> and <code>y</code> arguments are relative to the receiver's parent (or its display if its parent is null), unless the receiver is a shell. In this case, the <code>x</code> and <code>y</code> arguments are relative to the display. <p> Note: Attempting to set the width or height of the receiver to a negative number will cause that value to be set to zero instead. </p>

getLocation
Point getLocation()

Returns a point describing the receiver's location relative to its parent (or its display if its parent is null), unless the receiver is a shell. In this case, the point is relative to the display.

setLocation
void setLocation(Point location)

Sets the receiver's location to the point specified by the arguments which are relative to the receiver's parent (or its display if its parent is null), unless the receiver is a shell. In this case, the point is relative to the display.

setLocation
void setLocation(int x, int y)

Sets the receiver's location to the point specified by the arguments which are relative to the receiver's parent (or its display if its parent is null), unless the receiver is a shell. In this case, the point is relative to the display.

getSize
Point getSize()

Returns a point describing the receiver's size. The x coordinate of the result is the width of the receiver. The y coordinate of the result is the height of the receiver.

setSize
void setSize(Point size)

Sets the receiver's size to the point specified by the argument. <p> Note: Attempting to set the width or height of the receiver to a negative number will cause them to be set to zero instead. </p>

setRegion
void setRegion(Region region)

Sets the shape of the control to the region specified by the argument. When the argument is null, the default shape of the control is restored.

setSize
void setSize(int width, int height)

Sets the receiver's size to the point specified by the arguments. <p> Note: Attempting to set the width or height of the receiver to a negative number will cause that value to be set to zero instead. </p>

moveAbove
void moveAbove(Control control)

Moves the receiver above the specified control in the drawing order. If the argument is null, then the receiver is moved to the top of the drawing order. The control at the top of the drawing order will not be covered by other controls even if they occupy intersecting areas.

moveBelow
void moveBelow(Control control)

Moves the receiver below the specified control in the drawing order. If the argument is null, then the receiver is moved to the bottom of the drawing order. The control at the bottom of the drawing order will be covered by all other controls which occupy intersecting areas.

pack
void pack()

Causes the receiver to be resized to its preferred size. For a composite, this involves computing the preferred size from its layout, if there is one.

pack
void pack(bool changed)

Causes the receiver to be resized to its preferred size. For a composite, this involves computing the preferred size from its layout, if there is one. <p> If the changed flag is <code>true</code>, it indicates that the receiver's <em>contents</em> 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 <code>false</code>, so layout manager caches can be retained. </p>

setLayoutData
void setLayoutData(Object layoutData)

Sets the layout data associated with the receiver to the argument.

toControl
Point toControl(int x, int y)

Returns a point which is the result of converting the argument, which is specified in display relative coordinates, to coordinates relative to the receiver. <p> @param x the x coordinate to be translated @param y the y coordinate to be translated @return the translated coordinates

toControl
Point toControl(Point point)

Returns a point which is the result of converting the argument, which is specified in display relative coordinates, to coordinates relative to the receiver. <p> @param point the point to be translated (must not be null) @return the translated coordinates

toDisplay
Point toDisplay(int x, int y)

Returns a point which is the result of converting the argument, which is specified in coordinates relative to the receiver, to display relative coordinates. <p> @param x the x coordinate to be translated @param y the y coordinate to be translated @return the translated coordinates

toDisplay
Point toDisplay(Point point)

Returns a point which is the result of converting the argument, which is specified in coordinates relative to the receiver, to display relative coordinates. <p> @param point the point to be translated (must not be null) @return the translated coordinates

addControlListener
void addControlListener(ControlListener listener)

Adds the listener to the collection of listeners who will be notified when the control is moved or resized, by sending it one of the messages defined in the <code>ControlListener</code> interface.

addDragDetectListener
void addDragDetectListener(DragDetectListener listener)

Adds the listener to the collection of listeners who will be notified when a drag gesture occurs, by sending it one of the messages defined in the <code>DragDetectListener</code> interface.

addFocusListener
void addFocusListener(FocusListener listener)

Adds the listener to the collection of listeners who will be notified when the control gains or loses focus, by sending it one of the messages defined in the <code>FocusListener</code> interface.

addHelpListener
void addHelpListener(HelpListener listener)

Adds the listener to the collection of listeners who will be notified when help events are generated for the control, by sending it one of the messages defined in the <code>HelpListener</code> interface.

addKeyListener
void addKeyListener(KeyListener listener)

Adds the listener to the collection of listeners who will be notified when keys are pressed and released on the system keyboard, by sending it one of the messages defined in the <code>KeyListener</code> interface. <p> When a key listener is added to a control, the control will take part in widget traversal. By default, all traversal keys (such as the tab key and so on) are delivered to the control. In order for a control to take part in traversal, it should listen for traversal events. Otherwise, the user can traverse into a control but not out. Note that native controls such as table and tree implement key traversal in the operating system. It is not necessary to add traversal listeners for these controls, unless you want to override the default traversal. </p> @param listener the listener which should be notified

addMenuDetectListener
void addMenuDetectListener(MenuDetectListener listener)

Adds the listener to the collection of listeners who will be notified when the platform-specific context menu trigger has occurred, by sending it one of the messages defined in the <code>MenuDetectListener</code> interface.

addMouseListener
void addMouseListener(MouseListener listener)

Adds the listener to the collection of listeners who will be notified when mouse buttons are pressed and released, by sending it one of the messages defined in the <code>MouseListener</code> interface.

addMouseMoveListener
void addMouseMoveListener(MouseMoveListener listener)

Adds the listener to the collection of listeners who will be notified when the mouse moves, by sending it one of the messages defined in the <code>MouseMoveListener</code> interface.

addMouseTrackListener
void addMouseTrackListener(MouseTrackListener listener)

Adds the listener to the collection of listeners who will be notified when the mouse passes or hovers over controls, by sending it one of the messages defined in the <code>MouseTrackListener</code> interface.

addMouseWheelListener
void addMouseWheelListener(MouseWheelListener listener)

Adds the listener to the collection of listeners who will be notified when the mouse wheel is scrolled, by sending it one of the messages defined in the <code>MouseWheelListener</code> interface.

addPaintListener
void addPaintListener(PaintListener listener)

Adds the listener to the collection of listeners who will be notified when the receiver needs to be painted, by sending it one of the messages defined in the <code>PaintListener</code> interface.

addTraverseListener
void addTraverseListener(TraverseListener listener)

Adds the listener to the collection of listeners who will be notified when traversal events occur, by sending it one of the messages defined in the <code>TraverseListener</code> interface.

removeControlListener
void removeControlListener(ControlListener listener)

Removes the listener from the collection of listeners who will be notified when the control is moved or resized.

removeDragDetectListener
void removeDragDetectListener(DragDetectListener listener)

Removes the listener from the collection of listeners who will be notified when a drag gesture occurs.

removeFocusListener
void removeFocusListener(FocusListener listener)

Removes the listener from the collection of listeners who will be notified when the control gains or loses focus.

removeHelpListener
void removeHelpListener(HelpListener listener)

Removes the listener from the collection of listeners who will be notified when the help events are generated for the control.

removeKeyListener
void removeKeyListener(KeyListener listener)

Removes the listener from the collection of listeners who will be notified when keys are pressed and released on the system keyboard.

removeMenuDetectListener
void removeMenuDetectListener(MenuDetectListener listener)

Removes the listener from the collection of listeners who will be notified when the platform-specific context menu trigger has occurred.

removeMouseListener
void removeMouseListener(MouseListener listener)

Removes the listener from the collection of listeners who will be notified when mouse buttons are pressed and released.

removeMouseMoveListener
void removeMouseMoveListener(MouseMoveListener listener)

Removes the listener from the collection of listeners who will be notified when the mouse moves.

removeMouseTrackListener
void removeMouseTrackListener(MouseTrackListener listener)

Removes the listener from the collection of listeners who will be notified when the mouse passes or hovers over controls.

removeMouseWheelListener
void removeMouseWheelListener(MouseWheelListener listener)

Removes the listener from the collection of listeners who will be notified when the mouse wheel is scrolled.

removePaintListener
void removePaintListener(PaintListener listener)

Removes the listener from the collection of listeners who will be notified when the receiver needs to be painted.

removeTraverseListener
void removeTraverseListener(TraverseListener listener)

Removes the listener from the collection of listeners who will be notified when traversal events occur.

dragDetect
bool dragDetect(Event event)

Detects a drag and drop gesture. This method is used to detect a drag gesture when called from within a mouse down listener.

dragDetect
bool dragDetect(MouseEvent event)

Detects a drag and drop gesture. This method is used to detect a drag gesture when called from within a mouse down listener.

forceFocus
bool forceFocus()

Forces the receiver to have the <em>keyboard focus</em>, causing all keyboard events to be delivered to it.

getBackground
Color getBackground()

Returns the receiver's background color.

getBackgroundImage
Image getBackgroundImage()

Returns the receiver's background image.

getBorderWidth
int getBorderWidth()

Returns the receiver's border width.

getCursor
Cursor getCursor()

Returns the receiver's cursor, or null if it has not been set. <p> When the mouse pointer passes over a control its appearance is changed to match the control's cursor. </p>

getDragDetect
bool getDragDetect()

Returns <code>true</code> if the receiver is detecting drag gestures, and <code>false</code> otherwise.

getEnabled
bool getEnabled()

Returns <code>true</code> if the receiver is enabled, and <code>false</code> otherwise. A disabled control is typically not selectable from the user interface and draws with an inactive or "grayed" look.

getFont
Font getFont()

Returns the font that the receiver will use to paint textual information.

getForeground
Color getForeground()

Returns the foreground color that the receiver will use to draw.

getLayoutData
Object getLayoutData()

Returns layout data which is associated with the receiver.

getMenu
Menu getMenu()

Returns the receiver's pop up menu if it has one, or null if it does not. All controls may optionally have a pop up menu that is displayed when the user requests one for the control. The sequence of key strokes, button presses and/or button releases that are used to request a pop up menu is platform specific.

getMonitor
org.eclipse.swt.widgets.Monitor.Monitor getMonitor()

Returns the receiver's monitor.

getParent
Composite getParent()

Returns the receiver's parent, which must be a <code>Composite</code> or null when the receiver is a shell that was created with null or a display for a parent.

getRegion
Region getRegion()

Returns the region that defines the shape of the control, or null if the control has the default shape.

getShell
Shell getShell()

Returns the receiver's shell. For all controls other than shells, this simply returns the control's nearest ancestor shell. Shells return themselves, even if they are children of other shells.

getToolTipText
String getToolTipText()

Returns the receiver's tool tip text, or null if it has not been set.

getVisible
bool getVisible()

Returns <code>true</code> if the receiver is visible, and <code>false</code> otherwise. <p> If one of the receiver's ancestors is not visible or some other condition makes the receiver not visible, this method may still indicate that it is considered visible even though it may not actually be showing. </p>

internal_new_GC
GdkGC* internal_new_GC(GCData data)

Invokes platform specific functionality to allocate a new GC handle. <p> <b>IMPORTANT:</b> This method is <em>not</em> part of the public API for <code>Control</code>. It is marked public only so that it can be shared within the packages provided by SWT. It is not available on all platforms, and should never be called from application code. </p>

internal_dispose_GC
void internal_dispose_GC(GdkGC* gdkGC, GCData data)

Invokes platform specific functionality to dispose a GC handle. <p> <b>IMPORTANT:</b> This method is <em>not</em> part of the public API for <code>Control</code>. It is marked public only so that it can be shared within the packages provided by SWT. It is not available on all platforms, and should never be called from application code. </p>

isReparentable
bool isReparentable()

Returns <code>true</code> if the underlying operating system supports this reparenting, otherwise <code>false</code>

isEnabled
bool isEnabled()

Returns <code>true</code> if the receiver is enabled and all ancestors up to and including the receiver's nearest ancestor shell are enabled. Otherwise, <code>false</code> is returned. A disabled control is typically not selectable from the user interface and draws with an inactive or "grayed" look.

isFocusControl
bool isFocusControl()

Returns <code>true</code> if the receiver has the user-interface focus, and <code>false</code> otherwise.

isVisible
bool isVisible()

Returns <code>true</code> if the receiver is visible and all ancestors up to and including the receiver's nearest ancestor shell are visible. Otherwise, <code>false</code> is returned.

redraw
void redraw()

Causes the entire bounds of the receiver to be marked as needing to be redrawn. The next time a paint request is processed, the control will be completely painted, including the background.

redraw
void redraw(int x, int y, int width, int height, bool all)

Causes the rectangular area of the receiver specified by the arguments to be marked as needing to be redrawn. The next time a paint request is processed, that area of the receiver will be painted, including the background. If the <code>all</code> flag is <code>true</code>, any children of the receiver which intersect with the specified area will also paint their intersecting areas. If the <code>all</code> flag is <code>false</code>, the children will not be painted.

setBackground
void setBackground(Color color)

Sets the receiver's background color to the color specified by the argument, or to the default system color for the control if the argument is null. <p> Note: This operation is a hint and may be overridden by the platform. For example, on Windows the background of a Button cannot be changed. </p> @param color the new color (or null)

setBackgroundImage
void setBackgroundImage(Image image)

Sets the receiver's background image to the image specified by the argument, or to the default system color for the control if the argument is null. The background image is tiled to fill the available space. <p> Note: This operation is a hint and may be overridden by the platform. For example, on Windows the background of a Button cannot be changed. </p> @param image the new image (or null)

setCapture
void setCapture(bool capture)

If the argument is <code>true</code>, causes the receiver to have all mouse events delivered to it until the method is called with <code>false</code> as the argument. Note that on some platforms, a mouse button must currently be down for capture to be assigned.

setCursor
void setCursor(Cursor cursor)

Sets the receiver's cursor to the cursor specified by the argument, or to the default cursor for that kind of control if the argument is null. <p> When the mouse pointer passes over a control its appearance is changed to match the control's cursor. </p>

setDragDetect
void setDragDetect(bool dragDetect)

Sets the receiver's drag detect state. If the argument is <code>true</code>, the receiver will detect drag gestures, otherwise these gestures will be ignored.

setEnabled
void setEnabled(bool enabled)

Enables the receiver if the argument is <code>true</code>, and disables it otherwise. A disabled control is typically not selectable from the user interface and draws with an inactive or "grayed" look.

setFocus
bool setFocus()

Causes the receiver to have the <em>keyboard focus</em>, such that all keyboard events will be delivered to it. Focus reassignment will respect applicable platform constraints.

setFont
void setFont(Font font)

Sets the font that the receiver will use to paint textual information to the font specified by the argument, or to the default font for that kind of control if the argument is null.

setForeground
void setForeground(Color color)

Sets the receiver's foreground color to the color specified by the argument, or to the default system color for the control if the argument is null. <p> Note: This operation is a hint and may be overridden by the platform. </p> @param color the new color (or null)

setMenu
void setMenu(Menu menu)

Sets the receiver's pop up menu to the argument. All controls may optionally have a pop up menu that is displayed when the user requests one for the control. The sequence of key strokes, button presses and/or button releases that are used to request a pop up menu is platform specific. <p> Note: Disposing of a control that has a pop up menu will dispose of the menu. To avoid this behavior, set the menu to null before the control is disposed. </p>

setParent
bool setParent(Composite parent)

Changes the parent of the widget to be the one provided if the underlying operating system supports this feature. Returns <code>true</code> if the parent is successfully changed.

setRedraw
void setRedraw(bool redraw)

If the argument is <code>false</code>, causes subsequent drawing operations in the receiver to be ignored. No drawing of any kind can occur in the receiver until the flag is set to true. Graphics operations that occurred while the flag was <code>false</code> are lost. When the flag is set to <code>true</code>, the entire widget is marked as needing to be redrawn. Nested calls to this method are stacked. <p> Note: This operation is a hint and may not be supported on some platforms or for some widgets. </p>

setToolTipText
void setToolTipText(String str)

Sets the receiver's tool tip text to the argument, which may be null indicating that no tool tip text should be shown.

setVisible
void setVisible(bool visible)

Marks the receiver as visible if the argument is <code>true</code>, and marks it invisible otherwise. <p> If one of the receiver's ancestors is not visible or some other condition makes the receiver not visible, marking it visible may not actually cause it to be displayed. </p>

traverse
bool traverse(int traversal)

Based on the argument, perform one of the expected platform traversal action. The argument should be one of the constants: <code>SWT.TRAVERSE_ESCAPE</code>, <code>SWT.TRAVERSE_RETURN</code>, <code>SWT.TRAVERSE_TAB_NEXT</code>, <code>SWT.TRAVERSE_TAB_PREVIOUS</code>, <code>SWT.TRAVERSE_ARROW_NEXT</code> and <code>SWT.TRAVERSE_ARROW_PREVIOUS</code>.

update
void update()

Forces all outstanding paint requests for the widget to be processed before this method returns. If there are no outstanding paint request, this method does nothing. <p> Note: This method does not cause a redraw. </p>

Meta