void VSampleTouchButton::RecalculatePosition(VInputMap& InputMap) { m_fPosX = m_pFather->GetPosX() + m_fRelPosX; m_fPosY = m_pFather->GetPosY() + m_fRelPosY; if(m_spActiveScreenMask) { m_spActiveScreenMask->SetPos(m_fPosX,m_fPosY); } m_spTouchArea = new VTouchArea(VInputManager::GetTouchScreen(), VRectanglef(m_fPosX, m_fPosY, m_fPosX + m_fWidth, m_fPosY + m_fHeight), 1000.0f); if(m_bSingleHit) m_iAlternative = InputMap.MapTrigger(m_iControlIndex, m_spTouchArea, CT_TOUCH_ANY, VInputOptions::OncePerFrame(ONCE_ON_PRESS, m_iAlternative)); else m_iAlternative = InputMap.MapTrigger(m_iControlIndex, m_spTouchArea, CT_TOUCH_ANY, VInputOptions::Alternative(m_iAlternative, false)); }
void VAppWin::PlatformMapInput() { VInputMap* pInputMap = m_pAppImpl->GetInputMap(); #if defined(SUPPORTS_KEYBOARD) // Debug console is always available Vision::GetConsoleManager()->SetAllowed(true); pInputMap->MapTrigger(VAPP_EXIT, V_KEYBOARD, CT_KB_ESC, VInputOptions::OncePerFrame(ONCE_ON_RELEASE)); pInputMap->MapTrigger(VAPP_MENU, V_KEYBOARD, CT_KB_F1, VInputOptions::OncePerFrame(ONCE_ON_RELEASE)); pInputMap->MapTrigger(VAPP_MENU_UP, V_KEYBOARD, CT_KB_UP, VInputOptions::OncePerFrame(ONCE_ON_RELEASE)); pInputMap->MapTrigger(VAPP_MENU_DOWN, V_KEYBOARD, CT_KB_DOWN, VInputOptions::OncePerFrame(ONCE_ON_RELEASE)); pInputMap->MapTrigger(VAPP_MENU_CONFIRM, V_KEYBOARD, CT_KB_ENTER, VInputOptions::OncePerFrame(ONCE_ON_RELEASE)); pInputMap->MapTrigger(VAPP_MENU_BACK, V_KEYBOARD, CT_KB_BACKSP, VInputOptions::OncePerFrame(ONCE_ON_RELEASE)); #endif }
void VExitHandler::OnHandleCallback(IVisCallbackDataObject_cl* pData) { if (pData->m_pSender == &Vision::Callbacks.OnFrameUpdatePreRender) { if (!m_bEnabled) return; VInputMap* pInputMap = GetParent()->GetInputMap(); if (pInputMap->GetTrigger(VAPP_EXIT)) { VAppMenu* pMenu = GetParent()->GetAppModule<VAppMenu>(); if (pMenu && pMenu->IsVisible()) return; if (!m_bShowExitDialog) { VAppBase::Get()->Quit(); } else if (!m_spExitDlg->IsVisible()) { VAppMenu* pMenu = GetParent()->GetAppModule<VAppMenu>(); if (pMenu != NULL && pMenu->IsVisible()) pMenu->ToggleMainMenu(); if (!VInputMap::AreInputMapsLocked()) { VInputMap::LockInputMaps(true); m_spExitDlg->SetUnlockInput(true); } else { m_spExitDlg->SetUnlockInput(false); } GetParent()->GetInputMap()->SetEnabled(true); m_spExitDlg->SetVisible(true); VAppMenuContextPtr spContext = GetParent()->GetContext(); spContext->ShowDialog(m_spExitDlg); } } else if (m_spExitDlg->IsVisible()) { VExitDialog* pDialog = static_cast<VExitDialog*>(m_spExitDlg.GetPtr()); if (pDialog->IsExitTriggered()) { VAppBase::Get()->Quit(); return; } if (pInputMap->GetTrigger(VAPP_MENU_CONFIRM)) VAppBase::Get()->Quit(); else if (pInputMap->GetTrigger(VAPP_MENU_BACK)) pDialog->CloseDialog(); } } else if (pData->m_pSender == &Vision::Callbacks.OnVideoChanged) { const hkvVec2& vSize = m_spExitDlg->GetSize(); m_spExitDlg->SetPosition((static_cast<float>(Vision::Video.GetXRes()) - vSize.x)*0.5f, (static_cast<float>(Vision::Video.GetYRes()) - vSize.y)*0.5f); } }
void VAppAndroid::PlatformMapInput() { VInputMap* pInputMap = m_pAppImpl->GetInputMap(); pInputMap->MapTrigger(VAPP_EXIT, VInputManagerAndroid::GetKeyInput(), CT_PAD_ANDROID_BACK, VInputOptions::OncePerFrame(ONCE_ON_RELEASE)); pInputMap->MapTrigger(VAPP_MENU, VInputManagerAndroid::GetKeyInput(), CT_PAD_ANDROID_MENU, VInputOptions::OncePerFrame(ONCE_ON_RELEASE)); }