Package org.eclipse.swt.widgets

# Class Scrollable

java.lang.Object
org.eclipse.swt.widgets.Widget
org.eclipse.swt.widgets.Control
org.eclipse.swt.widgets.Scrollable

All Implemented Interfaces:
  `Drawable`

Direct Known Subclasses:
  `Composite`, `List`, `Text`

public abstract class Scrollable extends Control
This class is the abstract superclass of all classes which represent controls that have standard scroll bars.

Styles:
  H_SCROLL, V_SCROLL
Events:
  (none)

IMPORTANT: This class is intended to be subclassed only within the SWT implementation.

See Also:
  - Sample code and further information
Restriction:
  This class is not intended to be subclassed by clients.

## Field Summary

### Fields inherited from class org.eclipse.swt.widgets.Control

`handle`

## Constructor Summary

Constructors
Constructor
Description
`Scrollable(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

Modifier and Type
Method
Description
`Rectangle`
`computeTrim(int x, int y, int width, int height)`
Given a desired client area for the receiver (as described by the arguments), returns the bounding rectangle which would be required to produce that client area.
`Rectangle`
`getClientArea()`
Returns a rectangle which describes the area of the receiver which is capable of displaying data (that is, not covered by the "trimmings").
`ScrollBar`
`getHorizontalBar()`
Returns the receiver's horizontal scroll bar if it has one, and null if it does not.
`int`
`getScrollbarsMode()`
Returns the mode of the receiver's scrollbars.
`ScrollBar`
`getVerticalBar()`
Returns the receiver's vertical scroll bar if it has one, and null if it does not.

### Methods inherited from class org.eclipse.swt.widgets.Control

`addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addMouseMoveListener, addMouseTrackListener, addMouseWheelListener, addPaintListener, addTouchListener, addTraverseListener, computeSize, computeSize, dragDetect, dragDetect, forceFocus, getAccessible, getBackground, getBackgroundImage, getBorderWidth, getBounds, getCursor, getDragDetect, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getRegion, getShell, getSize, getTextDirection, getToolTipText, getTouchEnabled, getVisible, internal_dispose_GC, internal_new_GC, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removeMouseWheelListener, removePaintListener, removeTouchListener, removeTraverseListener, requestLayout, setBackground, setBackgroundImage, setBounds, setBounds, setCapture, setCursor, setDragDetect, setEnabled, setFocus, setFont, setForeground, setLayoutData, setLocation, setLocation, setMenu, setOrientation, setParent, setRedraw, setRegion, setSize, setSize, setTextDirection, setToolTipText, setTouchEnabled, setVisible, toControl, toControl, toDisplay, toDisplay, traverse, traverse, traverse, update`

### Methods inherited from class org.eclipse.swt.widgets.Widget

`addDisposeListener, addListener, checkSubclass, checkWidget, dispose, getData, getData, getDisplay, getListeners, getStyle, isAutoDirection, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, setData, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.eclipse.swt.graphics.Drawable

`isAutoScalable`

## Constructor Details

### Scrollable

public Scrollable(Composite parent, int style)
Constructs a new instance of this class given its parent and a style value describing its behavior and appearance.

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.

Parameters:
  `parent` - a composite control which will be the parent of the new instance (cannot be null)
  `style` - the style of control to construct
Throws:
  `IllegalArgumentException` -
  - ERROR_NULL_ARGUMENT - if the parent is null
  `SWTException` -
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
  - ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
See Also:
  - `SWT.H_SCROLL`
  - `SWT.V_SCROLL`
  - `Widget.checkSubclass()`
  - `Widget.getStyle()`

## Method Details

### computeTrim

public Rectangle computeTrim(int x, int y, int width, int height)
Given a desired client area for the receiver (as described by the arguments), returns the bounding rectangle which would be required to produce that client area.

In other words, it returns a rectangle such that, if the receiver's bounds were set to that rectangle, the area of the receiver which is capable of displaying data (that is, not covered by the "trimmings") would be the rectangle described by the arguments (relative to the receiver's parent).

Parameters:
  `x` - the desired x coordinate of the client area
  `y` - the desired y coordinate of the client area
  `width` - the desired width of the client area
  `height` - the desired height of the client area
Returns:
  the required bounds to produce the given client area
Throws:
  `SWTException` -
  - ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
See Also:
  - `getClientArea()`

### getClientArea

public Rectangle getClientArea()
Returns a rectangle which describes the area of the receiver which is capable of displaying data (that is, not covered by the "trimmings").

Returns:
  the client area
Throws:
  `SWTException` -
  - ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
See Also:
  - `computeTrim(int, int, int, int)`

### getHorizontalBar

public ScrollBar getHorizontalBar()
Returns the receiver's horizontal scroll bar if it has one, and null if it does not.

Returns:
  the horizontal scroll bar (or null)
Throws:
  `SWTException` -
  - ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver

### getScrollbarsMode

public int getScrollbarsMode()
Returns the mode of the receiver's scrollbars. This will be bitwise OR of one or more of the constants defined in class `SWT`.

- `SWT.SCROLLBAR_OVERLAY` - if receiver uses overlay scrollbars
- `SWT.NONE` - otherwise

Returns:
  the mode of scrollbars
Throws:
  `SWTException` -
  - ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
Since:
  3.8
See Also:
  - `SWT.SCROLLBAR_OVERLAY`

### getVerticalBar

public ScrollBar getVerticalBar()
Returns the receiver's vertical scroll bar if it has one, and null if it does not.

Returns:
  the vertical scroll bar (or null)
Throws:
  `SWTException` -
  - ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver