/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 - 2 0 2 1 ĠAnt on ĠTr ush kov Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġapp . the le ma . ui Ċ Ċ import Ġapp . the le ma . math . IV ec 2 Ċ import Ġapp . the le ma . math . Vec 2 Ċ Ċ /** Ċ Ġ* ĠMenu Ġused Ġin Ġ[ MenuBar ], Ġit Ġis Ġa Ġstandard Ġ[ PopupMenu ] Ġwith Ġt ittle Ġdisplayed Ġin ĠMenu Bar . Ċ Ġ* Ġ@ author ĠK ot cr ab Ċ Ġ*/ Ċ class ĠMenu ( val Ġtitle : ĠString ) Ġ: ĠPopup Menu () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġmenu Bar : ĠMenu Bar ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġopen Button : ĠText Button Ġ= ĠText Button ( title ) ĊĊĠĠĠ Ġprivate Ġfun Ġswitch Menu () Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Bar ?. close Menu () ĊĠĠĠĠĠĠĠ Ġshow Menu () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Menu () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpos : ĠI Vec 2 Ġ= Ġopen Button . local To Stage Coordinates ( Vec 2 ( 0 f , Ġ 0 f )) ĊĠĠĠĠĠĠĠ Ġset Position ( pos . x , Ġpos . y Ġ- Ġheight ) ĊĠĠĠĠĠĠĠ Ġopen Button . h ud ?. add Actor ( this ) ĊĠĠĠĠĠĠĠ Ġmenu Bar ?. setCurrent Menu ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠBoolean Ġ= Ġsuper . remove () ĊĠĠĠĠĠĠĠ Ġmenu Bar ?. setCurrent Menu ( null ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠCalled Ġby ĠMenu Bar Ġwhen Ġthis Ġmenu Ġis Ġadded Ġto Ġit Ġ Ġ*/ ĊĠĠĠ Ġfun Ġset MenuBar ( menu Bar : ĠMenu Bar ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . menu Bar Ġ= Ġmenu Bar ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġselect Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// open Button . isChecked Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġde select Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// open Button . isChecked Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtarget Actor Ġ= Ġopen Button ĊĠĠĠĠĠĠĠ Ġopen Button . addListener ( object Ġ: ĠInput Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtouch Down ( event : ĠInput Event , Ġx : ĠFloat , Ġy : ĠFloat , Ġpointer : ĠInt , Ġbutton : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( menu Bar ?. getCurrent Menu () Ġ=== Ġthis @ Menu ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Bar ?. close Menu () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġswitch Menu () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// event . stop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġenter ( event : ĠInput Event , Ġx : ĠFloat , Ġy : ĠFloat , Ġpointer : ĠInt , Ġfrom Actor : ĠActor ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( menu Bar ?. getCurrent Menu () Ġ!= Ġnull Ġ&& Ġmenu Bar ?. getCurrent Menu () Ġ!== Ġthis @ Menu ) Ġswitch Menu () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ