/* Ċ Ġ* ĠCopyright Ġ 2 0 0 0 - 2 0 1 6 ĠNik ol ay ĠCh ash nik ov . Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ Ċ /** Ċ Ġ* Ġ@ author Ġn ik Ċ Ġ*/ Ċ package Ġorg . nik . presentation Assistant Ċ Ċ import Ġcom . intellij . openapi . keymap . Key map Manager Ċ import Ġcom . intellij . openapi . util . System Info Ċ import Ġcom . intellij . util . Platform Utils Ċ Ċ enum Ġclass ĠKey map Kind ( val ĠdisplayName : ĠString , Ġval Ġdefault Key map Name : ĠString ) Ġ{ ĊĠĠĠ ĠWIN (" Win / Linux ", Ġ"\ $ default "), ĊĠĠĠ ĠMAC (" Mac ", Ġ" Mac ĠOS ĠX Ġ 1 0 . 5 + "); ĊĊĠĠĠ Ġfun Ġget Alternative Kind () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ ĠWIN Ġ-> ĠMAC ĊĠĠĠĠĠĠĠ ĠMAC Ġ-> Ġif Ġ( Platform Utils . is App Code ()) Ġnull Ġelse ĠWIN ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠgetCurrent OS Kind () Ġ= Ġwhen Ġ{ ĊĠĠĠ ĠSystem Info . is Mac Ġ-> ĠKey map Kind . MAC ĊĠĠĠ Ġelse Ġ-> ĠKey map Kind . WIN Ċ } Ċ Ċ class ĠKey map Description ( var Ġname : ĠString Ġ= Ġ"", Ġvar Ġdisplay Text : ĠString Ġ= Ġ"") Ġ{ ĊĠĠĠ Ġfun Ġget Kind () Ġ= Ġif Ġ( name . contains (" Mac ĠOS ")) ĠKey map Kind . MAC Ġelse ĠKey map Kind . WIN ĊĠĠĠ Ġfun ĠgetKey map () Ġ= ĠKey map Manager . getInstance (). getKey map ( name ) ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġother Ġis ĠKey map Description Ġ&& Ġother . name Ġ== Ġname Ġ&& Ġother . display Text Ġ== Ġdisplay Text ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġname . hashCode () Ġ+ Ġ 3 1 * display Text . hashCode () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠgetDefault Main Key map () Ġ= ĠKey map Description ( getCurrent OS Kind (). default Key map Name , Ġ"") Ċ fun ĠgetDefault Alternative Key map () Ġ= ĊĠĠĠĠĠĠĠ ĠgetCurrent OS Kind (). get Alternative Kind ()?. let Ġ{ ĠKey map Description ( it . default Key map Name , Ġ" for Ġ${ it . displayName }") Ġ} Ċ