package Ġcontrols . props . types Ċ Ċ import ĠBase Sketch Ċ import Ġcontrols . panels . Control Style Ċ import Ġcontrols . panels . Control Tab Ċ import Ġcontrols . panels . Tabs Builder . Companion . single Tab Ċ import Ġcontrols . panels . pane lex t . dropdown Ċ import Ġcontrols . panels . pane lex t . slider Pair Ċ import Ġcontrols . panels . pane lex t . toggle Ċ import Ġcontrols . props . Prop Data Ċ import Ġcoordinate . Bound Rect Ċ import Ġcoordinate . Point Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġutil . print . Orientation Ċ import Ġutil . print . Paper Ċ import Ġutil . with ĊĊ Ċ @ Serializable Ċ data Ġclass ĠCanvas Prop ( ĊĠ Ġvar Ġpaper : ĠPaper Ġ= ĠPaper . Square Black , ĊĠ Ġvar Ġbound Box Center : ĠPoint Ġ= ĠPoint . Half , ĊĠ Ġvar Ġbound Box Scale : ĠPoint Ġ= ĠPoint ( 0 . 8 , Ġ 0 . 8 ), ĊĠ Ġvar Ġdraw Bound Rect : ĠBoolean Ġ= Ġtrue , ĊĠ Ġvar Ġorientation : ĠOrientation Ġ= ĠOrientation . Land scape , Ċ ) Ġ: ĠProp Data < Canvas Prop > Ġ{ ĊĠ Ġconstructor ( ĊĠĠĠ Ġc : ĠCanvas Prop , ĊĠĠĠ Ġpaper : ĠPaper ? Ġ= Ġnull , ĊĠĠĠ Ġbound Box Center : ĠPoint ? Ġ= Ġnull , ĊĠĠĠ Ġbound Box Scale : ĠPoint ? Ġ= Ġnull , ĊĠĠĠ Ġdraw Bound Rect : ĠBoolean ? Ġ= Ġnull , ĊĠĠĠ Ġorientation : ĠOrientation ? Ġ= Ġnull , ĊĠ Ġ) Ġ: Ġthis ( ĊĠĠĠ Ġpaper Ġ?: Ġc . paper , ĊĠĠĠ Ġbound Box Center Ġ?: Ġc . bound Box Center , ĊĠĠĠ Ġbound Box Scale Ġ?: Ġc . bound Box Scale , ĊĠĠĠ Ġdraw Bound Rect Ġ?: Ġc . draw Bound Rect , ĊĠĠĠ Ġorientation Ġ?: Ġc . orientation , ĊĠ Ġ) ĊĊĠ Ġval Ġpage Px : ĠPoint Ġget () Ġ= Ġpaper . px ( orientation ) ĊĊĠ Ġval Ġbound Rect Ġget () Ġ= Ġcalc Bound Rect () ĊĊĠ Ġprivate Ġfun Ġcalc Bound Rect (): ĠBound Rect Ġ= ĊĠĠĠ Ġpaper ĊĠĠĠĠĠ Ġ. to Bound Rect ( orientation ) ĊĠĠĠĠĠ Ġ. scale ( bound Box Scale , Ġnew Center Ġ= Ġbound Box Center Ġ* Ġpage Px ) ĊĊĠ Ġoverride Ġfun Ġto Serializer () Ġ= Ġserializer () ĊĊĠ Ġoverride Ġfun Ġclone () Ġ= ĠCanvas Prop ( this ) ĊĊĠ Ġfun Ġmark Canvas Dirty ( sketch : ĠBase Sketch ) Ġ= Ġsketch . with Ġ{ ĊĠĠĠ Ġupdate Size ( page Px ) ĊĊĠĠĠ ĠbackgroundColor Ġ= Ġpaper . default BackgroundColor ĊĠĠĠ Ġstroke Color Ġ= Ġpaper . default Stroke Color ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġbind (): ĠList < Control Tab > Ġ= Ġsingle Tab (" Sp iral Prop ") Ġ{ ĊĠĠĠ Ġdropdown (:: paper ) Ġ{ Ġmark Canvas Dirty ( this ) Ġ} ĊĠĠĠ Ġdropdown (:: orientation ) Ġ{ Ġmark Canvas Dirty ( this ) Ġ} ĊĠĠĠ Ġcol Ġ{ ĊĠĠĠĠĠ Ġstyle Ġ= ĠControl Style . Red ĊĠĠĠĠĠ Ġtoggle (:: draw Bound Rect ) ĊĠĠĠĠĠ Ġslider Pair (:: bound Box Center ) ĊĠĠĠĠĠ Ġslider Pair (:: bound Box Scale , Ġwith Lock Toggle Ġ= Ġtrue , Ġdefault Locked Ġ= Ġfalse ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun ĠBase Sketch . update Canvas ( canvas Prop : ĠCanvas Prop ) Ġ{ ĊĠĠĠĠĠ Ġcanvas Prop . mark Canvas Dirty ( this ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ