
# IPainter interface

*No description yet.*

```csharp
public interface IPainter
```

**Namespace:** SCH · **Assembly:** Altium.SDK.Interfaces

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [BrushColor](#brushcolor) | `int` | get; set |  |
| [CanvasHeight_Mils](#canvasheight_mils) | `int` | get |  |
| [CanvasWidth_Mils](#canvaswidth_mils) | `int` | get |  |
| [ClipRect](#cliprect) | [Rect](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/Rect.md) | get; set |  |
| [DoingRedraw](#doingredraw) | `bool` | get; set |  |
| [PenColor](#pencolor) | `int` | get; set |  |
| [PenWidth](#penwidth) | `int` | get; set |  |
| [ViewRect](#viewrect) | [Rect](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/Rect.md) | get; set |  |
| [XScaleFactor](#xscalefactor) | `double` | get; set |  |
| [YScaleFactor](#yscalefactor) | `double` | get; set |  |

### BrushColor

*No description yet.*

```csharp
int GetBrushColor();
int SetBrushColor(int argColor);
```

**Type:** `int` · **Access:** read/write

The accessors are extension methods of `IPainterHelper` (`using SCH;`).

### CanvasHeight_Mils

*No description yet.*

```csharp
int GetProperty_CanvasHeight_Mils();
```

**Type:** `int` · **Access:** read-only

### CanvasWidth_Mils

*No description yet.*

```csharp
int GetProperty_CanvasWidth_Mils();
```

**Type:** `int` · **Access:** read-only

### ClipRect

*No description yet.*

```csharp
Rect GetClipRect();
Rect SetClipRect(Rect argRect);
```

**Type:** [Rect](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/Rect.md) · **Access:** read/write

The accessors are extension methods of `IPainterHelper` (`using SCH;`).

### DoingRedraw

*No description yet.*

```csharp
bool GetProperty_DoingRedraw();
void SetProperty_DoingRedraw(bool argValue);
```

**Type:** `bool` · **Access:** read/write

### PenColor

*No description yet.*

```csharp
int GetPenColor();
int SetPenColor(int argColor);
```

**Type:** `int` · **Access:** read/write

The accessors are extension methods of `IPainterHelper` (`using SCH;`).

### PenWidth

*No description yet.*

```csharp
int GetPenWidth();
int SetPenWidth(int argWidth);
```

**Type:** `int` · **Access:** read/write

### ViewRect

*No description yet.*

```csharp
Rect GetViewRect();
Rect SetViewRect(Rect argRect);
```

**Type:** [Rect](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/Rect.md) · **Access:** read/write

The accessors are extension methods of `IPainterHelper` (`using SCH;`).

### XScaleFactor

*No description yet.*

```csharp
double GetProperty_XScaleFactor();
void SetProperty_XScaleFactor(double argValue);
```

**Type:** `double` · **Access:** read/write

### YScaleFactor

*No description yet.*

```csharp
double GetProperty_YScaleFactor();
void SetProperty_YScaleFactor(double argValue);
```

**Type:** `double` · **Access:** read/write

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [ClearExternalDisplayContext](#clearexternaldisplaycontext) | `void` |  |
| [ClearViewRect](#clearviewrect) | `void` |  |
| [DoCircle](#docircle) | `void` |  |
| [DoEllipse](#doellipse) | `void` |  |
| [DoFillRect](#dofillrect) | `void` |  |
| [DoLineTo](#dolineto) | `void` |  |
| [DoMoveTo](#domoveto) | `void` |  |
| [DoPole](#dopole) | `void` |  |
| [DoTextOut](#dotextout) | `void` |  |
| [DoZero](#dozero) | `void` |  |
| [DrawCursorTab](#drawcursortab) | `void` |  |
| [DrawDesignationSymbol](#drawdesignationsymbol) | `void` |  |
| [DrawHorizontalCursorLine](#drawhorizontalcursorline) | `void` |  |
| [DrawLinearXMinorDivisions](#drawlinearxminordivisions) | `void` |  |
| [DrawRect](#drawrect) | `void` |  |
| [DrawSelectionButton](#drawselectionbutton) | `void` |  |
| [DrawVerticalCursorLine](#drawverticalcursorline) | `void` |  |
| [DrawWaveScrollArrow](#drawwavescrollarrow) | `void` |  |
| [Export_ToScreen_HighLight](#export_toscreen_highlight) | `void` |  |
| [Export_ToScreen_Paint](#export_toscreen_paint) | `void` |  |
| [Export_ToScreen_Update](#export_toscreen_update) | `void` |  |
| [GetTextHeight](#gettextheight) | `int` |  |
| [GetTextWidth](#gettextwidth) | `int` |  |
| [SetFontAngle](#setfontangle) | `int` |  |
| [SetFontColor](#setfontcolor) | `int` |  |
| [SetFontSize](#setfontsize) | `int` |  |
| [SetFontStyle](#setfontstyle) | [TFontStyleSet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/TFontStyleSet.md) |  |
| [SetPenMode](#setpenmode) | [TPenMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TPenMode.md) |  |
| [SetPenStyle](#setpenstyle) | `ushort` |  |
| [SetScaling](#setscaling) | `void` |  |
| [SetupExternalDisplayContext](#setupexternaldisplaycontext) | `void` |  |
| [SetWindowHandle](#setwindowhandle) | `void` |  |
| [WriteStringWithinWidth](#writestringwithinwidth) | `void` |  |

### ClearExternalDisplayContext

*No description yet.*

```csharp
void ClearExternalDisplayContext();
```

**Returns:** nothing (`void`)

### ClearViewRect

*No description yet.*

```csharp
void ClearViewRect();
```

**Returns:** nothing (`void`)

### DoCircle

*No description yet.*

```csharp
void DoCircle(Point argTopLeft, int argDiameter);
void DoCircle(IPoint argTopLeft, int argDiameter);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argTopLeft` | [Point](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/Point.md) | value |
| `argDiameter` | `int` | value |

**Returns:** nothing (`void`)

The first overload is an extension method of `IPainterHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### DoEllipse

*No description yet.*

```csharp
void DoEllipse(int argX1, int argY1, int argX2, int argY2);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argX1` | `int` | value |
| `argY1` | `int` | value |
| `argX2` | `int` | value |
| `argY2` | `int` | value |

**Returns:** nothing (`void`)

### DoFillRect

*No description yet.*

```csharp
void DoFillRect(Rect argRect);
void DoFillRect(IRect argRect);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argRect` | [Rect](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/Rect.md) | value |

**Returns:** nothing (`void`)

The first overload is an extension method of `IPainterHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### DoLineTo

*No description yet.*

```csharp
void DoLineTo(int argX, int argY);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argX` | `int` | value |
| `argY` | `int` | value |

**Returns:** nothing (`void`)

### DoMoveTo

*No description yet.*

```csharp
void DoMoveTo(int argX, int argY);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argX` | `int` | value |
| `argY` | `int` | value |

**Returns:** nothing (`void`)

### DoPole

*No description yet.*

```csharp
void DoPole(int argX1, int argY1, int argX2, int argY2);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argX1` | `int` | value |
| `argY1` | `int` | value |
| `argX2` | `int` | value |
| `argY2` | `int` | value |

**Returns:** nothing (`void`)

### DoTextOut

*No description yet.*

```csharp
void DoTextOut(int argX, int argY, string argString);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argX` | `int` | value |
| `argY` | `int` | value |
| `argString` | `string` | value |

**Returns:** nothing (`void`)

### DoZero

*No description yet.*

```csharp
void DoZero(int argX1, int argY1, int argX2, int argY2);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argX1` | `int` | value |
| `argY1` | `int` | value |
| `argX2` | `int` | value |
| `argY2` | `int` | value |

**Returns:** nothing (`void`)

### DrawCursorTab

*No description yet.*

```csharp
void DrawCursorTab(int argX, int argY, char argLabelChar);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argX` | `int` | value |
| `argY` | `int` | value |
| `argLabelChar` | `char` | value |

**Returns:** nothing (`void`)

### DrawDesignationSymbol

*No description yet.*

```csharp
void DrawDesignationSymbol(int argnX, int argY, int argWaveIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argnX` | `int` | value |
| `argY` | `int` | value |
| `argWaveIndex` | `int` | value |

**Returns:** nothing (`void`)

### DrawHorizontalCursorLine

*No description yet.*

```csharp
void DrawHorizontalCursorLine(int argnX1, int argnX2, int argY, int argYMin, int argYMax);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argnX1` | `int` | value |
| `argnX2` | `int` | value |
| `argY` | `int` | value |
| `argYMin` | `int` | value |
| `argYMax` | `int` | value |

**Returns:** nothing (`void`)

### DrawLinearXMinorDivisions

*No description yet.*

```csharp
void DrawLinearXMinorDivisions(int argnX, int argTop, int argBottom, int argDivWidth);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argnX` | `int` | value |
| `argTop` | `int` | value |
| `argBottom` | `int` | value |
| `argDivWidth` | `int` | value |

**Returns:** nothing (`void`)

### DrawRect

*No description yet.*

```csharp
void DrawRect(Rect argRect, ushort argPenStyle);
void DrawRect(IRect argRect, ushort argPenStyle);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argRect` | [Rect](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/Rect.md) | value |
| `argPenStyle` | `ushort` | value |

**Returns:** nothing (`void`)

The first overload is an extension method of `IPainterHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### DrawSelectionButton

*No description yet.*

```csharp
void DrawSelectionButton(Rect argRect, bool argSelected);
void DrawSelectionButton(IRect argRect, bool argSelected);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argRect` | [Rect](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/Rect.md) | value |
| `argSelected` | `bool` | value |

**Returns:** nothing (`void`)

The first overload is an extension method of `IPainterHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### DrawVerticalCursorLine

*No description yet.*

```csharp
void DrawVerticalCursorLine(int argY1, int argY2, int argnX);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argY1` | `int` | value |
| `argY2` | `int` | value |
| `argnX` | `int` | value |

**Returns:** nothing (`void`)

### DrawWaveScrollArrow

*No description yet.*

```csharp
void DrawWaveScrollArrow(Rect argR, TScrollArrowDirection argDir, bool argHiLight);
void DrawWaveScrollArrow(IRect argR, int argDir, bool argHiLight);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argR` | [Rect](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/Rect.md) | value |
| `argDir` | [TScrollArrowDirection](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TScrollArrowDirection.md) | value |
| `argHiLight` | `bool` | value |

**Returns:** nothing (`void`)

The first overload is an extension method of `IPainterHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### Export_ToScreen_HighLight

*No description yet.*

```csharp
void Export_ToScreen_HighLight(IPrimitive argPrimitive, bool argHide);
void Export_ToScreen_HighLight(object argPrimitive, bool argHide);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argPrimitive` | [IPrimitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IPrimitive.md) | value |
| `argHide` | `bool` | value |

**Returns:** nothing (`void`)

The first overload is an extension method of `IPainterHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### Export_ToScreen_Paint

*No description yet.*

```csharp
void Export_ToScreen_Paint(IPrimitive argPrimitive);
void Export_ToScreen_Paint(object argPrimitive);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argPrimitive` | [IPrimitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IPrimitive.md) | value |

**Returns:** nothing (`void`)

The first overload is an extension method of `IPainterHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### Export_ToScreen_Update

*No description yet.*

```csharp
void Export_ToScreen_Update(IPrimitive argPrimitive, double argNewXPlotValue);
void Export_ToScreen_Update(object argPrimitive, double argNewXPlotValue);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argPrimitive` | [IPrimitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IPrimitive.md) | value |
| `argNewXPlotValue` | `double` | value |

**Returns:** nothing (`void`)

The first overload is an extension method of `IPainterHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### GetTextHeight

*No description yet.*

```csharp
int GetTextHeight(string argString);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argString` | `string` | value |

**Returns:** `int`

### GetTextWidth

*No description yet.*

```csharp
int GetTextWidth(string argString);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argString` | `string` | value |

**Returns:** `int`

### SetFontAngle

*No description yet.*

```csharp
int SetFontAngle(int argngle_Degrees);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argngle_Degrees` | `int` | value |

**Returns:** `int`

### SetFontColor

*No description yet.*

```csharp
int SetFontColor(int argColor);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argColor` | `int` | value |

**Returns:** `int`

Extension method of `IPainterHelper` (`using SCH;`).

### SetFontSize

*No description yet.*

```csharp
int SetFontSize(int argSize);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argSize` | `int` | value |

**Returns:** `int`

### SetFontStyle

*No description yet.*

```csharp
TFontStyleSet SetFontStyle(TFontStyleSet argStyle);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argStyle` | [TFontStyleSet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/TFontStyleSet.md) | value |

**Returns:** [TFontStyleSet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp/TFontStyleSet.md)

Extension method of `IPainterHelper` (`using SCH;`).

### SetPenMode

*No description yet.*

```csharp
TPenMode SetPenMode(TPenMode argMode);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argMode` | [TPenMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TPenMode.md) | value |

**Returns:** [TPenMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TPenMode.md)

Extension method of `IPainterHelper` (`using SCH;`).

### SetPenStyle

*No description yet.*

```csharp
ushort SetPenStyle(ushort argStyle);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argStyle` | `ushort` | value |

**Returns:** `ushort`

### SetScaling

*No description yet.*

```csharp
void SetScaling();
```

**Returns:** nothing (`void`)

### SetupExternalDisplayContext

*No description yet.*

```csharp
void SetupExternalDisplayContext(uint argDC);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argDC` | `uint` | value |

**Returns:** nothing (`void`)

### SetWindowHandle

*No description yet.*

```csharp
void SetWindowHandle(uint argHandle);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argHandle` | `uint` | value |

**Returns:** nothing (`void`)

### WriteStringWithinWidth

*No description yet.*

```csharp
void WriteStringWithinWidth(string argString, int argnX, int argY, int argMaxWidth);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argString` | `string` | value |
| `argnX` | `int` | value |
| `argY` | `int` | value |
| `argMaxWidth` | `int` | value |

**Returns:** nothing (`void`)

## Returned by

[IChart.Painter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IChart.md#painter), [ISDFGraphicalView.Painter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISDFGraphicalView.md#painter)

## Accepted by

[IChart.GetClipRect](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IChart.md#getcliprect)
