package Ġorg . hex works . z ir con . internal . grid Ċ Ċ import Ġorg . hex works . z ir con . api . data . Position Ċ import Ġorg . hex works . z ir con . api . input . KeyStroke Ċ import Ġorg . hex works . z ir con . api . input . Mouse Action Ċ import Ġorg . hex works . z ir con . api . input . Mouse ActionType Ċ import Ġorg . hex works . z ir con . api . input . Mouse ActionType .* Ċ import Ġorg . hex works . z ir con . api . util . TextUtils Ċ import Ġorg . hex works . z ir con . internal . Z ir con Ċ import Ġorg . hex works . z ir con . internal . config . Runtime Config Ċ import Ġorg . hex works . z ir con . internal . event . Z ir con Event Ċ import Ġorg . hex works . z ir con . internal . event . Z ir con Scope Ċ import Ġjava . awt . Graphics Environment Ċ import Ġjava . awt . Mouse Info Ċ import Ġjava . awt . Toolkit Ċ import Ġjava . awt . datat rans fer . Data Flavor Ċ import Ġjava . awt . event . Mouse Adapter Ċ import Ġjava . awt . event . MouseEvent Ċ import Ġjava . awt . event . Mouse Wheel Event Ċ Ċ open Ġclass ĠTerminal Mouse Listener ( private Ġval Ġfont Width : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġfont Height : ĠInt ) Ġ: ĠMouse Adapter () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġlast Mouse Location Ġ= ĠPosition . unknown () ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Clicked ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Graphics Environment . is Head less (). not () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMouse Info . getNumberOf Buttons () Ġ> Ġ 2 Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . button Ġ== ĠMouseEvent . BUTTON 2 Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRuntime Config . config . is Clipboard Available ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaste Selection Content () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd Action To Key Queue ( MOUSE _ CLICK ED , Ġe ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Released ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Action To Key Queue ( MOUSE _ RELEASE D , Ġe ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Moved ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Action To Key Queue ( MOUSE _ MOVED , Ġe ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Entered ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Action To Key Queue ( MOUSE _ ENTER ED , Ġe ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Exit ed ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Action To Key Queue ( MOUSE _ EXIT ED , Ġe ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Drag ged ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Action To Key Queue ( MOUSE _ DR AG GED , Ġe ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Pressed ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Action To Key Queue ( MOUSE _ PRES SED , Ġe ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Wheel Moved ( e : ĠMouse Wheel Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaction Type Ġ= Ġif Ġ( e . prec ise Wheel Rotation Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMO USE _ W HE EL _ ROT ATED _ DOWN ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMO USE _ W HE EL _ ROT ATED _ UP ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ( 0 .. e . prec ise Wheel Rotation . toInt ()). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Action To Key Queue ( action Type , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Action To Key Queue ( action Type : ĠMouse ActionType , Ġe : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= ĠPosition . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= ĠMath . max ( 0 , Ġe . x . div ( font Width )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ= ĠMath . max ( 0 , Ġe . y . div ( font Height ))) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMouse Action ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Type Ġ= Ġaction Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Ġ= Ġe . button , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( mouse Moved To New Position ( action Type , Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. or ( isNot Move Event ( action Type ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Mouse Location Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠZ ir con . event Bus . publish ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Ġ= ĠZ ir con Event . Input ( it ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Scope Ġ= ĠZ ir con Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . err . println (" position Ġfor Ġmouse Ġevent Ġ'$ e ' Ġwas Ġout Ġof Ġbounds . ĠIt Ġis Ġdropped .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Not Move Event ( action Type : ĠMouse ActionType ) Ġ= Ġaction Type Ġ!= ĠMO USE _ MOVED ĊĊĠĠĠ Ġprivate Ġfun Ġmouse Moved To New Position ( action Type : ĠMouse ActionType , Ġposition : ĠPosition ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Type Ġ== ĠMO USE _ MOVED Ġ&& Ġposition Ġ!= Ġlast Mouse Location ĊĊĠĠĠ Ġprivate Ġfun Ġpaste Selection Content () Ġ{ ĊĠĠĠĠĠĠĠ ĠToolkit . getDefault Toolkit (). system Selection ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinject String As Key St ro kes ( it . getData ( Data Flavor . string Flavor ) Ġas ĠString ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinject String As Key St ro kes ( string : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstring . filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText Utils . is Print able Character ( it ) ĊĠĠĠĠĠĠĠ Ġ}. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ ir con . event Bus . publish ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Ġ= ĠZ ir con Event . Input ( KeyStroke ( character Ġ= Ġit )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Scope Ġ= ĠZ ir con Scope ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ