package Ġcom . so y wiz . k orge . view Ċ Ċ import Ġcom . so y wiz . k ds . iter ators .* Ċ import Ġcom . so y wiz . k orge . bitmap font .* Ċ import Ġcom . so y wiz . k orge . html .* Ċ import Ġcom . so y wiz . k orge . internal .* Ċ import Ġcom . so y wiz . k orge . render .* Ċ import Ġcom . so y wiz . k orge . scene .* Ċ import Ġcom . so y wiz . kor im . bitmap .* Ċ import Ġcom . so y wiz . kor im . color .* Ċ import Ġcom . so y wiz . kor im . font .* Ċ import Ġcom . so y wiz . k orm a . geom .* Ċ Ċ @ K orge Deprecated Ċ inline Ġfun ĠContainer . text Old ( ĊĠĠĠ Ġtext : ĠString , ĊĠĠĠ Ġtext Size : ĠDouble Ġ= Ġ 1 6 . 0 , ĊĠĠĠ Ġcolor : ĠRGBA Ġ= ĠColors . WHITE , ĊĠĠĠ Ġfont : ĠBitmap Font Ġ= Ġdebug B mp Font , ĊĠĠĠ Ġfonts Catalog : ĠHtml . Fonts Catalog Ġ= ĠHtml . Default Fonts Catalog , ĊĠĠĠ Ġcallback : Ġ@ View Dsl Marker ĠText Old . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ) Ġ= ĠText Old ( text , Ġtext Size Ġ= Ġtext Size , Ġcolor Ġ= Ġcolor , Ġfont Ġ= Ġfont , Ġfonts Catalog Ġ= Ġfonts Catalog ). addTo ( this , Ġcallback ) Ċ Ċ @ K orge Deprecated Ċ class ĠText Old Ġ: ĠView (), ĠI Text , ĠI Html Ġ{ Ċ ĉ comp anion Ġobject Ġ{ Ċĉ ĉ operator Ġfun Ġinvoke ( Ċĉĉ ĉ text : ĠString , Ċĉĉ ĉ text Size : ĠDouble Ġ= Ġ 1 6 . 0 , Ċĉĉ ĉ color : ĠRGBA Ġ= ĠColors . WHITE , Ċĉĉ ĉ font : ĠBitmap Font Ġ= Ġdebug B mp Font , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfonts Catalog : ĠHtml . Fonts Catalog Ġ= ĠHtml . Default Fonts Catalog , Ċĉ ĉ ): ĠText Old Ġ= ĠText Old (). apply Ġ{ Ċĉĉ ĉ this . format Ġ= ĠHtml . Format ( color Ġ= Ġcolor , Ġface Ġ= Ġfont , Ġsize Ġ= Ġtext Size . toInt ()) Ċĉĉ ĉ if Ġ( text Ġ!= Ġ"") Ġthis . text Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . fonts Catalog Ġ= Ġfonts Catalog Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ // var Ġvertical Align : ĠHtml . Vertical Alignment Ġ= ĠHtml . Vertical Alignment . TOP ĊĠĠĠ Ġvar Ġfonts Catalog : ĠHtml . Fonts Catalog Ġ= ĠHtml . Default Fonts Catalog Ċ ĉ val Ġtext Bounds Ġ= ĠRectangle ( 0 , Ġ 0 , Ġ 1 0 2 4 , Ġ 1 0 2 4 ) Ċ ĉ private Ġval Ġtemp Rect Ġ= ĠRectangle () Ċ ĉ var Ġ_ text : ĠString Ġ= Ġ"" Ċ ĉ var Ġ_ html : ĠString Ġ= Ġ"" Ċ ĉ var Ġdocument : ĠHtml . Document ? Ġ= Ġnull Ċ ĉ private Ġvar Ġ_ format : ĠHtml . Format Ġ= ĠHtml . Format () Ċ ĉ var Ġfiltering Ġ= Ġtrue ĊĠĠĠ Ġvar Ġsmoothing : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfiltering ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfiltering Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} Ċ ĉ var Ġauto Size Ġ= Ġtrue Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ field Ġ= Ġvalue Ċĉĉ ĉ re calculate Bounds When Required () Ċĉ ĉ } Ċ ĉ var Ġbgcolor Ġ= ĠColors . TRANSP ARENT _ BLACK ĊĊ ĉ fun Ġset Text Bounds ( rect : ĠRectangle ) Ġ{ Ċĉ ĉ this . text Bounds . copyFrom ( rect ) Ċĉ ĉ auto Size Ġ= Ġfalse Ċ ĉ } ĊĊ ĉ fun Ġun setText Bounds () Ġ{ Ċĉ ĉ auto Size Ġ= Ġtrue Ċ ĉ } ĊĊ ĉ var Ġformat : ĠHtml . Format Ċĉ ĉ get () Ġ= Ġ_ format Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ _ format Ġ= Ġvalue Ċĉĉ ĉ if Ġ( value Ġ!= Ġdocument ?. default Format ) Ġ{ Ċĉĉĉ ĉ document ?. default Format ?. parent Ġ= Ġvalue Ċĉĉ ĉ } Ċĉĉ ĉ re calculate Bounds When Required () Ċĉ ĉ } ĊĊĠĠĠ Ġvar Ġfont : ĠFont ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġformat . computed Face ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġrun Ġ{ Ġformat . face Ġ= Ġvalue Ġ} ĊĊĠĠĠ Ġvar Ġcolor : ĠRGBA ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġformat . computed Color ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġrun Ġ{ Ġformat . color Ġ= Ġvalue Ġ} ĊĊĠĠĠ Ġvar Ġtext Size : ĠDouble ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġformat . computed Size . toDouble () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġrun Ġ{ Ġformat . size Ġ= Ġvalue . toInt () Ġ} ĊĊ ĉ override Ġvar Ġtext : ĠString Ċĉ ĉ get () Ġ= Ġif Ġ( document Ġ!= Ġnull ) Ġdocument ?. xml ?. text Ġ?: Ġ"" Ġelse Ġ_ text Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ _ text Ġ= Ġvalue Ċĉĉ ĉ _ html Ġ= Ġ"" Ċĉĉ ĉ document Ġ= Ġnull Ċĉĉ ĉ re calculate Bounds When Required () Ċĉ ĉ } Ċ ĉ override Ġvar Ġhtml : ĠString Ċĉ ĉ get () Ġ= Ġif Ġ( document Ġ!= Ġnull ) Ġ_ html Ġelse Ġ_ text Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ document Ġ= ĠHtml . parse ( value , Ġfonts Catalog ) Ċĉĉ ĉ re layout () Ċĉĉ ĉ document !!. default Format . parent Ġ= Ġformat Ċĉĉ ĉ _ text Ġ= Ġ"" Ċĉĉ ĉ _ html Ġ= Ġvalue Ċĉĉ ĉ _ format Ġ= Ġdocument !!. first Format . con solid ate () Ċĉ ĉ } ĊĊ ĉ fun Ġre layout () Ġ{ Ċĉ ĉ document ?. do Position ing ( fonts Catalog , Ġtext Bounds ) Ċ ĉ } ĊĊĠĠĠ Ġ// override Ġfun Ġhit Test ( x : ĠDouble , Ġy : ĠDouble ): ĠView ? Ġ{ ĊĠĠĠ Ġ// ĠĠĠ Ġval Ġrect Ġ= Ġwhen Ġ{ ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġauto Size Ġ-> Ġtemp Rect . also Ġ{ Ġfonts . get Bounds ( text , Ġformat , Ġout Ġ= Ġit ) Ġ} ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġelse Ġ-> Ġtext Bounds ĊĠĠĠ Ġ// ĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠĠĠ Ġreturn Ġif Ġ( rect . contains ( global ToLocal X ( x , Ġy ), Ġglobal ToLocal Y ( x , Ġy ))) Ġthis Ġelse Ġnull ĊĠĠĠ Ġ//} ĊĊĠĠĠ Ġoverride Ġfun Ġrender Internal ( ctx : ĠRender Context ) Ġ{ Ċĉ ĉ if Ġ(! visible ) Ġreturn Ċĉ ĉ val Ġcolor Mul Ġ= Ġrender Color Mul Ċĉ ĉ val Ġcolor Add Ġ= Ġrender Color Add Ċĉ ĉ val Ġm Ġ= Ġglobal Matrix Ċĉ ĉ if Ġ( document Ġ!= Ġnull ) Ġ{ Ċĉĉ ĉ document !!. all Spans . fast ForEach Ġ{ Ġspan Ġ-> Ċĉĉĉ ĉ val Ġfont Ġ= Ġfonts Catalog . get Bitmap Font ( span . format . computed Face ) Ċĉĉĉ ĉ val Ġformat Ġ= Ġspan . format ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfont . draw Text ( Ċĉĉĉĉ ĉ ctx , Ġformat . computed Size . toDouble (), Ġtext , Ċĉĉĉĉ ĉ span . bounds . x . toInt (), Ġspan . bounds . y . toInt (), Ċĉĉĉĉ ĉ m , Ċĉĉĉĉ ĉ col Mul Ġ= ĠRGBA . multiply ( color Mul , Ġformat . computed Color ), Ċĉĉĉĉ ĉ col Add Ġ= Ġcolor Add , Ċĉĉĉĉ ĉ blend Mode Ġ= Ġrender Blend Mode , Ċĉĉĉĉ ĉ filtering Ġ= Ġfiltering Ċĉĉĉ ĉ ) Ċĉĉ ĉ } Ċĉ ĉ } Ġelse Ġ{ Ċĉĉ ĉ val Ġfont Ġ= Ġformat . computed Face Ċĉĉ ĉ val Ġanchor Ġ= Ġformat . computed Align . anchor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfonts Catalog . get Bounds ( text , Ġformat , Ġout Ġ= Ġtemp Rect ) Ċĉĉ ĉ // println (" temp Rect =$ temp Rect , Ġtext Bounds =$ text Bounds ") Ċĉĉ ĉ // temp Rect . set To An ch ored Rectangle ( temp Rect , Ġformat . align . anchor , Ġtext Bounds ) Ċĉĉ ĉ // val Ġx Ġ= Ġ( text Bounds . width ) Ġ* Ġanchor . sx Ġ- Ġtemp Rect . width Ċĉĉ ĉ val Ġpx Ġ= Ġtext Bounds . x Ġ+ Ġ( text Bounds . width Ġ- Ġtemp Rect . width ) Ġ* Ġanchor . sx Ċĉĉ ĉ // val Ġx Ġ= Ġtext Bounds . x Ġ+ Ġ( text Bounds . width ) Ġ* Ġanchor . sx Ċĉĉ ĉ val Ġpy Ġ= Ġtext Bounds . y Ġ+ Ġ( text Bounds . height Ġ- Ġtemp Rect . height ) Ġ* Ġanchor . sy ĊĊĉĉ ĉ if Ġ( bg color . a Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġctx . use Batch er Ġ{ Ġbatch Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbatch . draw Quad ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġctx . get Tex ( Bit maps . white ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= Ġtext Bounds . x . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ= Ġtext Bounds . y . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġtext Bounds . width . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġtext Bounds . height . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Ġ= Ġm , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiltering Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Mul Ġ= ĠRGBA . multiply ( bg color , Ġrender Color Mul ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Add Ġ= Ġcolor Add , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblend Factors Ġ= Ġrender Blend Mode . factors ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċĉĉ ĉ } ĊĊĉĉ ĉ // println (" Ġ-> Ġ($ x , Ġ$ y )") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfonts Catalog . get Bitmap Font ( font ). draw Text ( Ċĉĉĉ ĉ ctx , Ġformat . computed Size . toDouble (), Ġtext , Ġpx . toInt (), Ġpy . toInt (), Ċĉĉĉ ĉ m , Ċĉĉĉ ĉ col Mul Ġ= ĠRGBA . multiply ( color Mul , Ġformat . computed Color ), Ċĉĉĉ ĉ col Add Ġ= Ġcolor Add , Ċĉĉĉ ĉ blend Mode Ġ= Ġrender Blend Mode , Ċĉĉĉ ĉ filtering Ġ= Ġfiltering Ċĉĉ ĉ ) Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ private Ġfun Ġre calculate Bounds () Ġ{ ĊĠĠĠĠĠĠĠ Ġfonts Catalog . get Bounds ( text , Ġformat , Ġout Ġ= Ġtext Bounds ) ĊĠĠĠĠĠĠĠ Ġ// println (" text Bounds : Ġ$ text Bounds ") Ċ ĉ } ĊĊ ĉ private Ġfun Ġre calculate Bounds When Required () Ġ{ Ċĉ ĉ if Ġ( auto Size ) Ġre calculate Bounds () Ċ ĉ } ĊĊ ĉ override Ġfun Ġget Local Bounds Internal ( out : ĠRectangle ) Ġ{ Ċĉ ĉ if Ġ( document Ġ!= Ġnull ) Ġ{ Ċĉĉ ĉ out . copyFrom ( document !!. bounds ) Ċĉ ĉ } Ġelse Ġ{ Ċĉĉ ĉ if Ġ( auto Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfonts Catalog . get Bounds ( text , Ġformat , Ġout ) Ċĉĉĉ ĉ out . set To An ch ored Rectangle ( out , Ġformat . computed Align . anchor , Ġtext Bounds ) Ċĉĉ ĉ } Ġelse Ġ{ Ċĉĉĉ ĉ out . copyFrom ( text Bounds ) Ċĉĉ ĉ } Ċĉ ĉ } ĊĠĠĠĠĠĠĠ Ġ// println (" getLocal Bounds Internal =$ out ") Ċ ĉ } ĊĊ ĉ override Ġfun Ġcreate Instance (): ĠView Ġ= ĠText Old () Ċ ĉ override Ġfun Ġcopy Props From ( source : ĠView ) Ġ{ Ċĉ ĉ super . copy Props From ( source ) Ċĉ ĉ source Ġas ĠText Old Ċĉ ĉ this . text Bounds . copyFrom ( source . text Bounds ) Ċĉ ĉ if Ġ( source ._ html . isNotEmpty ()) Ġ{ Ċĉĉ ĉ this . html Ġ= Ġsource . html Ċĉ ĉ } Ġelse Ġ{ Ċĉĉ ĉ this . text Ġ= Ġsource . text Ċĉ ĉ } Ċ ĉ } Ċ } Ċ