package Ġimg ui . internal . api Ċ Ċ import Ġgli _. has Ċ import Ġimg ui .* Ċ import Ġimg ui . ImGui . io Ċ import Ġimg ui . api . g Ċ Ċ /** ĠInputs Ċ Ġ* Ġ ĠFIXME : ĠEvent ually Ġwe Ġshould Ġaim Ġto Ġmove Ġe . g . ĠIs Active Id Using Key () Ġinto ĠIs Key XXX Ġfunctions . Ġ*/ Ċ internal Ġinterface Ġinputs Ġ{ ĊĊĠĠĠ Ġfun Ġset Item Using Mouse Wheel () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġg . current Window !!. dc . last ItemId ĊĠĠĠĠĠĠĠ Ġif Ġ( g . hover ed Id Ġ== Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg . hover ed Id Using Mouse Wheel Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( g . active Id Ġ== Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg . active Id Using Mouse Wheel Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġfun ĠisActive Id Using Nav Dir ( dir : ĠDir ): ĠBoolean Ġ= Ġg . active Id Using Nav Dir Mask Ġhas Ġ( 1 Ġshl Ġdir ) ĊĊĠĠĠ Ġin fix Ġfun ĠisActive Id Using Nav Input ( input : ĠNav Input ): ĠBoolean Ġ= Ġg . active Id Using Nav Input Mask Ġhas Ġ( 1 Ġshl Ġinput ) ĊĠĠĠ Ġin fix Ġfun ĠisActive Id Using Key ( key : ĠKey ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġassert ( key . i Ġ< Ġ 6 4 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġg . active Id Using Key Input Mask . and ( 1 L Ġshl Ġkey . i ) Ġ!= Ġ 0 L Ġ// ĠTODO ĠLong . has ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠReturn Ġif Ġa Ġmouse Ġclick / drag Ġwent Ġpast Ġthe Ġgiven Ġthreshold . ĠValid Ġto Ġcall Ġduring Ġthe ĠMouse Released Ġframe . ĊĠĠĠĠ Ġ* Ġ Ġ[ Internal ] ĠThis Ġdoesn 't Ġtest Ġif Ġthe Ġbutton Ġis Ġpressed Ġ*/ ĊĠĠĠ Ġfun Ġis Mouse Drag Past Threshold ( button : ĠMouse Button , Ġlock Threshold _: ĠFloat ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġassert ( button . i Ġin Ġio . mouse Down . indices ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! io . mouse Down [ button . i ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġlock Threshold Ġ= Ġlock Threshold _ ĊĠĠĠĠĠĠĠ Ġif Ġ( lock Threshold Ġ< Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlock Threshold Ġ= Ġio . mouse Drag Threshold ĊĠĠĠĠĠĠĠ Ġreturn Ġio . mouse Drag Max Distance S qr [ button . i ] Ġ>= Ġlock Threshold Ġ* Ġlock Threshold ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġthe Ġrest Ġof Ġinputs Ġfunctions Ġare Ġin Ġthe ĠNav Input Ġenum ĊĊĠĠĠ Ġ/** Ġ~ Get Merged Key Mod Flags Ġ*/ ĊĠĠĠ Ġval Ġmerged Key Mod Flags : ĠKey Mod Flags ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġkey Mod Flags : ĠKey Mod Flags Ġ= ĠKey Mod . None . i ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ImGui . io . key Ctrl ) Ġkey Mod Flags Ġ= Ġkey Mod Flags Ġor ĠKey Mod . Ctrl . i ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ImGui . io . key Shift ) Ġkey Mod Flags Ġ= Ġkey Mod Flags Ġor ĠKey Mod . Shift . i ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ImGui . io . key Alt ) Ġkey Mod Flags Ġ= Ġkey Mod Flags Ġor ĠKey Mod . Alt . i ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ImGui . io . key Super ) Ġkey Mod Flags Ġ= Ġkey Mod Flags Ġor ĠKey Mod . Super . i ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġkey Mod Flags ĊĠĠĠĠĠĠĠ Ġ} Ċ }