Package org.eclipse.swt.widgets

## Class Canvas

- java.lang.Object
- - org.eclipse.swt.widgets.Widget
  - - org.eclipse.swt.widgets.Control
    - - org.eclipse.swt.widgets.Scrollable
      - - org.eclipse.swt.widgets.Composite
        - - org.eclipse.swt.widgets.Canvas

All Implemented Interfaces:
  `Drawable`

Direct Known Subclasses:
  `AbstractHyperlink`, `AnimatedProgress`, `CLabel`, `Decorations`, `ExpandableComposite`, `FormText`, `GLCanvas`, `StyledText`, `TableCursor`, `TreeCursor`

    public class Canvas
    extends Composite

Instances of this class provide a surface for drawing arbitrary graphics.

Styles:
  (none)
Events:
  (none)

This class may be subclassed by custom control implementors who are building controls that are not constructed from aggregates of other controls. That is, they are either painted using SWT graphics calls or are handled by native methods.

See Also:
  `Composite`, Canvas snippets, SWT Example: ControlExample, Sample code and further information

### Field Summary

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

`handle`

### Constructor Summary

Constructors
`Canvas​(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

All Methods Instance Methods Concrete Methods
`void` `drawBackground​(GC gc, int x, int y, int width, int height)` Fills the interior of the rectangle specified by the arguments, with the receiver's background.
`Caret` `getCaret()` Returns the caret.
`IME` `getIME()` Returns the IME.
`void` `scroll​(int destX, int destY, int x, int y, int width, int height, boolean all)` Scrolls a rectangular area of the receiver by first copying the source area to the destination and then causing the area of the source which is not covered by the destination to be repainted.
`void` `setCaret​(Caret caret)` Sets the receiver's caret.
`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.
`void` `setIME​(IME ime)` Sets the receiver's IME.

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

`changed, checkSubclass, drawBackground, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setFocus, setLayout, setLayoutDeferred, setTabList`

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

`computeTrim, getClientArea, getHorizontalBar, getScrollbarsMode, getVerticalBar`

### 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, 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, 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 Detail

#### Canvas

    public Canvas​(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
See Also:
  `SWT`, `Widget.getStyle()`

### Method Detail

#### drawBackground

    public void drawBackground​(GC gc,
                               int x,
                               int y,
                               int width,
                               int height)

Fills the interior of the rectangle specified by the arguments, with the receiver's background.

Parameters:
  `gc` - the gc where the rectangle is to be filled
  `x` - the x coordinate of the rectangle to be filled
  `y` - the y coordinate of the rectangle to be filled
  `width` - the width of the rectangle to be filled
  `height` - the height of the rectangle to be filled
Throws:
  `IllegalArgumentException` -
  - ERROR_NULL_ARGUMENT - if the gc is null
  - ERROR_INVALID_ARGUMENT - if the gc has been disposed
  `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.2

#### getCaret

    public Caret getCaret()

Returns the caret.

The caret for the control is automatically hidden and shown when the control is painted or resized, when focus is gained or lost and when an the control is scrolled. To avoid drawing on top of the caret, the programmer must hide and show the caret when drawing in the window any other time.

Returns:
  the caret for the receiver, may be 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

#### getIME

    public IME getIME()

Returns the IME.

Returns:
  the IME
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.4

#### scroll

    public void scroll​(int destX,
                       int destY,
                       int x,
                       int y,
                       int width,
                       int height,
                       boolean all)

Scrolls a rectangular area of the receiver by first copying the source area to the destination and then causing the area of the source which is not covered by the destination to be repainted. Children that intersect the rectangle are optionally moved during the operation. In addition, all outstanding paint events are flushed before the source area is copied to ensure that the contents of the canvas are drawn correctly.

Parameters:
  `destX` - the x coordinate of the destination
  `destY` - the y coordinate of the destination
  `x` - the x coordinate of the source
  `y` - the y coordinate of the source
  `width` - the width of the area
  `height` - the height of the area
  `all` - `true`if children should be scrolled, and `false` otherwise
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

#### setCaret

    public void setCaret​(Caret caret)

Sets the receiver's caret.

The caret for the control is automatically hidden and shown when the control is painted or resized, when focus is gained or lost and when an the control is scrolled. To avoid drawing on top of the caret, the programmer must hide and show the caret when drawing in the window any other time.

Parameters:
  `caret` - the new caret for the receiver, may be null
Throws:
  `IllegalArgumentException` -
  - ERROR_INVALID_ARGUMENT - if the caret has been disposed
  `SWTException` -
  - ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver

#### setFont

    public void setFont​(Font font)

Description copied from class: `Control`
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.

Overrides:
  `setFont` in class `Control`
Parameters:
  `font` - the new font (or null)

#### setIME

    public void setIME​(IME ime)

Sets the receiver's IME.

Parameters:
  `ime` - the new IME for the receiver, may be null
Throws:
  `IllegalArgumentException` -
  - ERROR_INVALID_ARGUMENT - if the IME has been disposed
  `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.4