from __future__ import annotations
from typing import Any, Protocol, runtime_checkable
from com.sun.star.uno import XInterface

@runtime_checkable
class XSimpleCanvas(XInterface, Protocol):
    def selectFont(self, sFontName: str, size: indouble, bold: bool, italic: bool) -> None: ...
    def setPenColor(self, nsRgbaColor: Color) -> None: ...
    def setFillColor(self, nsRgbaColor: Color) -> None: ...
    def setRectClip(self, aRect: RealRectangle2D) -> None: ...
    def setTransformation(self, aTransform: AffineMatrix2D) -> None: ...
    def drawPixel(self, aPoint: RealPoint2D) -> None: ...
    def drawLine(self, aStartPoint: RealPoint2D, aEndPoint: RealPoint2D) -> None: ...
    def drawRect(self, aRect: RealRectangle2D) -> None: ...
    def drawPolyPolygon(self, xPolyPolygon: XPolyPolygon2D) -> None: ...
    def drawText(self, aText: StringContext, aOutPos: RealPoint2D, nTextDirection: int) -> None: ...
    def drawBitmap(self, xBitmap: XBitmap, aLeftTop: RealPoint2D) -> None: ...
    def getDevice(self) -> XGraphicDevice: ...
    def getCanvas(self) -> XCanvas: ...
    def getFontMetrics(self) -> FontMetrics: ...
    def getCurrentFont(self) -> XCanvasFont: ...
    def getCurrentPenColor(self) -> Color: ...
    def getCurrentFillColor(self) -> Color: ...
    def getCurrentClipRect(self) -> RealRectangle2D: ...
    def getCurrentTransformation(self) -> AffineMatrix2D: ...
    def getCurrentViewState(self) -> ViewState: ...
    def getCurrentRenderState(self, bUseFillColor: bool) -> RenderState: ...
