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
}
Esempio n. 3
0
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);
  }
}
Esempio n. 4
0
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));
}