package Ġm og ul . demo Ċ Ċ import Ġm og ul . generated . button Ċ import Ġm og ul . generated . four Boxes Ċ import Ġm og ul . generated . global K ob x Counter Ċ import Ġm og ul . generated . k ob x Counter Ċ import Ġm og ul . k ob x . Demo Store Ċ import Ġm og ul . k ob x . K ob X Ċ import Ġm og ul . micro dom . Micro Dom Ċ import Ġm og ul . micro dom . primitives . Vertical Direction Ċ import Ġm og ul . platform . MouseEvent Ċ import Ġm og ul . react . ElementType Ċ import Ġm og ul . react . State ful Component Ċ import Ġm og ul . react . dom . app Gui Ċ import Ġm og ul . react . dom . layout Box Ċ import Ġm og ul . react . dom . run App Ċ import Ġm og ul . react . gui Ċ import Ġm og ul . react . injection . container Ċ Ċ data Ġclass ĠMy AppState ( ĊĠĠĠ Ġval Ġwindow Count : ĠInt , ĊĠĠĠ Ġval Ġglobal Counter : ĠInt Ċ ) Ċ Ċ @ Suppress (" UNUSED _ PARAMETER ") Ċ class ĠMy App Ġ: ĠStateful Component < Nothing , ĠMy AppState >() Ġ{ ĊĊĠĠĠ Ġoverride Ġval ĠinitialState Ġ= ĠMy AppState ( window Count Ġ= Ġ 1 , Ġglobal Counter Ġ= Ġ 0 ) ĊĊĠĠĠ Ġoverride Ġfun Ġrender () Ġ= Ġapp Gui Ġ{ ĊĠĠĠĠĠĠĠ Ġ( 1 .. state . window Count ). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow ( title Ġ= Ġ" mo g ul -$ platform Name Ġ#$ it ", Ġwidth Ġ= Ġ 8 0 0 , Ġheight Ġ= Ġ 6 0 0 , Ġroot Ġ= Ġgui Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Box ( direction Ġ= ĠVertical Direction , Ġspacing Ġ= Ġ 1 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfour Boxes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Window Ġ#$ it . ĠClick Ġon Ġthe Ġsmall Ġboxes .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon More Windows Ġ= Ġthis @ My App :: on More Windows , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon F ew er Windows Ġ= Ġthis @ My App :: on F ew er Windows ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- " Global Ġcounter : Ġ${ state . global Counter }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton ( text Ġ= Ġ" Increment ", ĠonClick Ġ= Ġthis @ My App :: increment Global Counter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk ob x Counter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglobal K ob x Counter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon More Windows ( event : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġis Ġcalled Ġseparately Ġto Ġtest Ġthe Ġbatch ing Ġof Ġupdates . ĊĠĠĠĠĠĠĠ ĠsetState ( state . copy ( window Count Ġ= Ġstate . window Count Ġ+ Ġ 1 )) ĊĠĠĠĠĠĠĠ ĠsetState ( state . copy ( global Counter Ġ= Ġstate . global Counter Ġ+ Ġ 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon F ew er Windows ( event : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ ĠsetState ( state . copy ( window Count Ġ= Ġstate . window Count Ġ- Ġ 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġincrement Global Counter ( event : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ ĠsetState ( state . copy ( global Counter Ġ= Ġstate . global Counter Ġ+ Ġ 1 )) ĊĠĠĠ Ġ} Ċ Ċ } Ċ val Ġmy App Type Ġ= ĠElementType (" My App ", Ġ{ ĠMy App () Ġ}) Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġval Ġ( engine , Ġevents ) Ġ= Ġplatform Init () ĊĠĠĠ Ġval Ġmicro Dom Ġ= ĠMicro Dom ( engine , Ġevents ) ĊĊĠĠĠ Ġrun App ( micro Dom , Ġmy App Type , Ġcontainer Ġ= Ġcontainer Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġstring Ġtags Ġare Ġonly Ġrequired Ġbecause Ġthe Ġcurrent Ġpreview Ġof ĠKotlin ĠNative Ġdoesn 't Ġhave Ġ` T :: class ` ĊĠĠĠĠĠĠĠ Ġregister (" K ob X ") Ġ{ ĠK ob X () Ġ} ĊĠĠĠĠĠĠĠ Ġregister (" Demo Store ") Ġ{ ĠDemo Store ( get (" K ob X ")) Ġ} ĊĠĠĠ Ġ}) Ċ // ĠĠĠ Ġrun App ( micro Dom , Ġlive Reload Type , ĠLive Reload Props ( engine )) Ċ } Ċ