Package org.eclipse.swt.graphics

# Interface Drawable

All Known Implementing Classes:
  `AbstractFilteredViewerComposite`, `AbstractHyperlink`, `AnimatedProgress`, `Browser`, `Button`, `Canvas`, `CBanner`, `CCombo`, `CLabel`, `Combo`, `CompareContentViewerSwitchingPane`, `CompareStructureViewerSwitchingPane`, `CompareViewerPane`, `CompareViewerSwitchingPane`, `Composite`, `ContextHelpDialog.Description`, `Control`, `CoolBar`, `CTabFolder`, `DateTime`, `Decorations`, `Device`, `Display`, `DrillDownComposite`, `ExpandableComposite`, `ExpandBar`, `FilteredList`, `FilteredTable`, `FilteredTree`, `FilteredTree`, `Form`, `FormText`, `GLCanvas`, `Group`, `HeapStatus`, `Hyperlink`, `HyperlinkLabel`, `Image`, `ImageBasedFrame`, `ImageHyperlink`, `Label`, `Link`, `List`, `MessageLine`, `OleClientSite`, `OleControlSite`, `OleFrame`, `PageBook`, `PDFDocument`, `Printer`, `ProgressBar`, `ProgressIndicator`, `ProgressMonitorPart`, `Sash`, `SashForm`, `Scale`, `Scrollable`, `ScrolledComposite`, `ScrolledForm`, `ScrolledFormText`, `ScrolledPageBook`, `Section`, `SharedScrolledComposite`, `Shell`, `Slider`, `Spinner`, `Splitter`, `StyledText`, `TabFolder`, `Table`, `TableCursor`, `Text`, `ToggleHyperlink`, `ToolBar`, `Tree`, `TreeCursor`, `TreeNode`, `Twistie`, `ViewForm`

public interface Drawable
Implementers of `Drawable` can have a graphics context (GC) created for them, and then they can be drawn on by sending messages to their associated GC. SWT images, and device objects such as the Display device and the Printer device, are drawables.

IMPORTANT: This interface is not part of the SWT public API. It is marked public only so that it can be shared within the packages provided by SWT. It should never be referenced from application code.

See Also:
  - `Device`
  - `Image`
  - `GC`

## Method Summary

Modifier and Type
Method
Description
`void`
`internal_dispose_GC(long handle, GCData data)`
Invokes platform specific functionality to dispose a GC handle.
`long`
`internal_new_GC(GCData data)`
Invokes platform specific functionality to allocate a new GC handle.
`default boolean`
`isAutoScalable()`
Returns `true` iff coordinates can be auto-scaled on this drawable and `false` if not.

## Method Details

### internal_new_GC

long internal_new_GC(GCData data)
Invokes platform specific functionality to allocate a new GC handle.

IMPORTANT: This method is not part of the public API for `Drawable`. 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.

Parameters:
  `data` - the platform specific GC data
Returns:
  the platform specific GC handle
Restriction:
  This method is not intended to be referenced by clients.

### internal_dispose_GC

void internal_dispose_GC(long handle, GCData data)
Invokes platform specific functionality to dispose a GC handle.

IMPORTANT: This method is not part of the public API for `Drawable`. 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.

Parameters:
  `handle` - the platform specific GC handle
  `data` - the platform specific GC data
Restriction:
  This method is not intended to be referenced by clients.

### isAutoScalable

default boolean isAutoScalable()
Returns `true` iff coordinates can be auto-scaled on this drawable and `false` if not. E.g. a `GC` method should not auto-scale the bounds of a figure drawn on a Printer device, but it may have to auto-scale when drawing on a high-DPI Display monitor.

Returns:
  `true` if auto-scaling is enabled for this drawable
Restriction:
  This method is not intended to be referenced by clients.