bool WindowInputSource::handleInput() { MSG msg; if (PeekMessage(&msg, _window, 0, 0, PM_REMOVE)) { if (msg.message == WM_QUIT) { notifyQuit(); return true; } TranslateMessage(&msg); // translate and dispatch to event queue DispatchMessage(&msg); return true; // More messages might be in queue. } return false; }
void EditorState::notifyPopupMenuAccept(MyGUI::MenuCtrl* _sender, MyGUI::MenuItem* _item) { if (mPopupMenuFile == _item->getMenuCtrlParent()) { std::string id = _item->getItemId(); if (id == "File/Load") { notifyLoad(); } else if (id == "File/Save") { notifySave(); } else if (id == "File/SaveAs") { setModeSaveLoadDialog(true, fileName); } else if (id == "File/Clear") { notifyClear(); } else if (id == "File/Settings") { notifySettings(); } else if (id == "File/Test") { notifyTest(); } else if (id == "File/RecentFiles") { saveOrLoadLayout(false, false, *_item->getItemData<MyGUI::UString>()); } else if (id == "File/Quit") { notifyQuit(); } } }
//=================================================================================== void EditorState::injectKeyPress(MyGUI::KeyCode _key, MyGUI::Char _text) { MyGUI::InputManager& input = MyGUI::InputManager::getInstance(); if (testMode) { if (input.isModalAny() == false) { if (_key == MyGUI::KeyCode::Escape) { notifyEndTest(); } } getGUI()->injectKeyPress(_key, _text); //base::BaseManager::injectKeyPress(_key, _text); return; } if (input.isModalAny()) { if (mOpenSaveFileDialog->isVisible()) { if (_key == MyGUI::KeyCode::Escape) mOpenSaveFileDialog->eventEndDialog(false); else if (_key == MyGUI::KeyCode::Return) mOpenSaveFileDialog->eventEndDialog(true); } } else { if (_key == MyGUI::KeyCode::Escape) { notifyQuit(); return; } if (input.isControlPressed()) { if (_key == MyGUI::KeyCode::O || _key == MyGUI::KeyCode::L) notifyLoad(); else if (_key == MyGUI::KeyCode::S) notifySave(); else if (_key == MyGUI::KeyCode::Z) { um->undo(); notifySelectWidget(nullptr); } else if ((_key == MyGUI::KeyCode::Y) || ((input.isShiftPressed()) && (_key == MyGUI::KeyCode::Z))) { um->redo(); notifySelectWidget(nullptr); } else if (_key == MyGUI::KeyCode::T) { notifyTest(); return; } else if (_key == MyGUI::KeyCode::R) { mPropertiesPanelView->toggleRelativeMode(); return; } } } getGUI()->injectKeyPress(_key, _text); //base::BaseManager::injectKeyPress(_key, _text); }