diff options
author | Max Horn | 2007-03-17 00:07:34 +0000 |
---|---|---|
committer | Max Horn | 2007-03-17 00:07:34 +0000 |
commit | 8fc8c4847df493de85736447c1c8d9528a9b1299 (patch) | |
tree | 597b3d3da0b249ff9dc9ecd510b79a69592c87f0 /backends/events/default/default-events.cpp | |
parent | 4951f82c65d31e1f62041c9c07cf74181c035ce7 (diff) | |
download | scummvm-rg350-8fc8c4847df493de85736447c1c8d9528a9b1299.tar.gz scummvm-rg350-8fc8c4847df493de85736447c1c8d9528a9b1299.tar.bz2 scummvm-rg350-8fc8c4847df493de85736447c1c8d9528a9b1299.zip |
Implemented a simple EventManager class
svn-id: r26154
Diffstat (limited to 'backends/events/default/default-events.cpp')
-rw-r--r-- | backends/events/default/default-events.cpp | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/backends/events/default/default-events.cpp b/backends/events/default/default-events.cpp new file mode 100644 index 0000000000..9c92eef1d2 --- /dev/null +++ b/backends/events/default/default-events.cpp @@ -0,0 +1,87 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2002-2007 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + * + */ + +#if !defined(DISABLE_DEFAULT_EVENTMANAGER) + +#include "common/stdafx.h" +#include "common/system.h" +#include "backends/events/default/default-events.h" + +DefaultEventManager::DefaultEventManager(OSystem *boss) : + _boss(boss), + _buttonState(0), + _modifierState(0), + _shouldQuit(false) { + + assert(_boss); +} + +DefaultEventManager::~DefaultEventManager() { + +} + +bool DefaultEventManager::pollEvent(OSystem::Event &event) { + bool result; + + result = _boss->pollEvent(event); + + if (result) { + switch (event.type) { + case OSystem::EVENT_KEYDOWN: + case OSystem::EVENT_KEYUP: + _modifierState = event.kbd.flags; + break; + case OSystem::EVENT_MOUSEMOVE: + _mousePos = event.mouse; + break; + + case OSystem::EVENT_LBUTTONDOWN: + _mousePos = event.mouse; + _buttonState |= LBUTTON; + break; + case OSystem::EVENT_LBUTTONUP: + _mousePos = event.mouse; + _buttonState &= ~LBUTTON; + break; + + case OSystem::EVENT_RBUTTONDOWN: + _mousePos = event.mouse; + _buttonState |= RBUTTON; + break; + case OSystem::EVENT_RBUTTONUP: + _mousePos = event.mouse; + _buttonState &= ~RBUTTON; + break; + + case OSystem::EVENT_QUIT: + _shouldQuit = true; + break; + + default: + break; + } + } + + return result; +} + +#endif // !defined(DISABLE_DEFAULT_EVENTMANAGER) |