From 9ca8495acdebb975a7b0777e11d7c599e61c0185 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 16 Feb 2014 13:16:49 +0300 Subject: move inputevent into events directory. --- src/CMakeLists.txt | 3 +- src/Makefile.am | 3 +- src/events/inputguievent.h | 187 ++++++++++++++++++++++++++++++++++++++++++++ src/gui/base/inputevent.cpp | 117 --------------------------- src/gui/base/inputevent.hpp | 177 ----------------------------------------- src/gui/base/keyevent.cpp | 10 +-- src/gui/base/keyevent.hpp | 4 +- src/gui/base/mouseevent.cpp | 10 +-- src/gui/base/mouseevent.hpp | 4 +- 9 files changed, 203 insertions(+), 312 deletions(-) create mode 100644 src/events/inputguievent.h delete mode 100644 src/gui/base/inputevent.cpp delete mode 100644 src/gui/base/inputevent.hpp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2a79f5839..9c82f792b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -782,7 +782,7 @@ SET(SRCS gui/base/font.hpp gui/base/gui.hpp gui/base/input.hpp - gui/base/inputevent.hpp + events/inputguievent.h gui/base/key.hpp gui/base/keyevent.hpp gui/base/keyinput.hpp @@ -815,7 +815,6 @@ SET(SRCS gui/base/focushandler.cpp gui/base/font.cpp gui/base/gui.cpp - gui/base/inputevent.cpp gui/base/key.cpp gui/base/keyevent.cpp gui/base/keyinput.cpp diff --git a/src/Makefile.am b/src/Makefile.am index 8a731c17f..94a671dfc 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -168,7 +168,7 @@ manaplus_SOURCES += events/actionevent.h \ render/graphics.h \ gui/base/gui.hpp \ gui/base/input.hpp \ - gui/base/inputevent.hpp \ + events/inputguievent.h \ gui/base/key.hpp \ gui/base/keyevent.hpp \ gui/base/keyinput.hpp \ @@ -201,7 +201,6 @@ manaplus_SOURCES += events/actionevent.h \ gui/base/focushandler.cpp \ gui/base/font.cpp \ gui/base/gui.cpp \ - gui/base/inputevent.cpp \ gui/base/key.cpp \ gui/base/keyevent.cpp \ gui/base/keyinput.cpp \ diff --git a/src/events/inputguievent.h b/src/events/inputguievent.h new file mode 100644 index 000000000..a2aefc35f --- /dev/null +++ b/src/events/inputguievent.h @@ -0,0 +1,187 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2014 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * 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 + * 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, see . + */ + +/* _______ __ __ __ ______ __ __ _______ __ __ + * / _____/\ / /\ / /\ / /\ / ____/\ / /\ / /\ / ___ /\ / |\/ /\ + * / /\____\// / // / // / // /\___\// /_// / // /\_/ / // , |/ / / + * / / /__ / / // / // / // / / / ___ / // ___ / // /| ' / / + * / /_// /\ / /_// / // / // /_/_ / / // / // /\_/ / // / | / / + * /______/ //______/ //_/ //_____/\ /_/ //_/ //_/ //_/ //_/ /|_/ / + * \______\/ \______\/ \_\/ \_____\/ \_\/ \_\/ \_\/ \_\/ \_\/ \_\/ + * + * Copyright (c) 2004 - 2008 Olof Naessén and Per Larsson + * + * + * Per Larsson a.k.a finalman + * Olof Naessén a.k.a jansem/yakslem + * + * Visit: http://guichan.sourceforge.net + * + * License: (BSD) + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name of Guichan nor the names of its contributors may + * be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef EVENTS_INPUTEVENT_HPP +#define EVENTS_INPUTEVENT_HPP + +#include "events/event.h" + +/** + * Base class for all events concerning input. + * + * @author Olof Naessén + * @since 0.6.0 + */ +class InputGuiEvent: public Event +{ + public: + /** + * Constructor. + * + * @param source The source widget of the event. + * @param isShiftPressed True if shift is pressed, false otherwise. + * @param isControlPressed True if control is pressed, false otherwise. + * @param isAltPressed True if alt is pressed, false otherwise. + * @param isMetaPressed True if meta is pressed, false otherwise. + */ + InputGuiEvent(gcn::Widget *const source, + const bool shiftPressed, + const bool controlPressed, + const bool altPressed, + const bool metaPressed) : + Event(source), + mShiftPressed(shiftPressed), + mControlPressed(controlPressed), + mAltPressed(altPressed), + mMetaPressed(metaPressed), + mIsConsumed(false) + { } + + /** + * Checks if shift is pressed. + * + * @return True if shift was pressed at the same time as the key, + * false otherwise. + */ + bool isShiftPressed() const A_WARN_UNUSED + { return mShiftPressed; } + + /** + * Checks if control is pressed. + * + * @return True if control was pressed at the same time as the key, + * false otherwise. + */ + bool isControlPressed() const A_WARN_UNUSED + { return mControlPressed; } + + /** + * Checks if alt is pressed. + * + * @return True if alt was pressed at the same time as the key, + * false otherwise. + */ + bool isAltPressed() const A_WARN_UNUSED + { return mAltPressed; } + + /** + * Checks whether meta is pressed. + * + * @return True if meta was pressed at the same time as the key, + * false otherwise. + */ + bool isMetaPressed() const A_WARN_UNUSED + { return mMetaPressed; } + + /** + * Marks the event as consumed. Input event listeners may discard + * consumed input or act on consumed input. An example of a widget + * that discards consumed input is the ScrollArea widget that + * discards consumed mouse wheel events so the ScrollArea will not + * scroll if for instance a Slider's value inside the ScrollArea was + * changed with the mouse wheel. + * + * @see isConsumed + */ + void consume() + { mIsConsumed = true; } + + /** + * Checks if the input event is consumed. + * + * @return True if the input event is consumed, + * false otherwise. + * @see consume + */ + bool isConsumed() const A_WARN_UNUSED + { return mIsConsumed; } + + protected: + /** + * True if shift is pressed, false otherwise. + */ + bool mShiftPressed; + + /** + * True if control is pressed, false otherwise. + */ + bool mControlPressed; + + /** + * True if alt is pressed, false otherwise. + */ + bool mAltPressed; + + /** + * True if meta is pressed, false otherwise. + */ + bool mMetaPressed; + + /** + * True if the input event is consumed, + * false otherwise. + */ + bool mIsConsumed; +}; + +#endif // EVENTS_INPUTEVENT_HPP diff --git a/src/gui/base/inputevent.cpp b/src/gui/base/inputevent.cpp deleted file mode 100644 index 3251a102f..000000000 --- a/src/gui/base/inputevent.cpp +++ /dev/null @@ -1,117 +0,0 @@ -/* - * The ManaPlus Client - * Copyright (C) 2011-2014 The ManaPlus Developers - * - * This file is part of The ManaPlus Client. - * - * 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 - * 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, see . - */ - -/* _______ __ __ __ ______ __ __ _______ __ __ - * / _____/\ / /\ / /\ / /\ / ____/\ / /\ / /\ / ___ /\ / |\/ /\ - * / /\____\// / // / // / // /\___\// /_// / // /\_/ / // , |/ / / - * / / /__ / / // / // / // / / / ___ / // ___ / // /| ' / / - * / /_// /\ / /_// / // / // /_/_ / / // / // /\_/ / // / | / / - * /______/ //______/ //_/ //_____/\ /_/ //_/ //_/ //_/ //_/ /|_/ / - * \______\/ \______\/ \_\/ \_____\/ \_\/ \_\/ \_\/ \_\/ \_\/ \_\/ - * - * Copyright (c) 2004 - 2008 Olof Naessén and Per Larsson - * - * - * Per Larsson a.k.a finalman - * Olof Naessén a.k.a jansem/yakslem - * - * Visit: http://guichan.sourceforge.net - * - * License: (BSD) - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name of Guichan nor the names of its contributors may - * be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * For comments regarding functions please see the header file. - */ - -#include "gui/base/inputevent.hpp" - -#include "debug.h" - -namespace gcn -{ - InputEvent::InputEvent(Widget *const source, - const bool shiftPressed, - const bool controlPressed, - const bool altPressed, - const bool metaPressed) - :Event(source), - mShiftPressed(shiftPressed), - mControlPressed(controlPressed), - mAltPressed(altPressed), - mMetaPressed(metaPressed), - mIsConsumed(false) - { - } - - bool InputEvent::isShiftPressed() const - { - return mShiftPressed; - } - - bool InputEvent::isControlPressed() const - { - return mControlPressed; - } - - bool InputEvent::isAltPressed() const - { - return mAltPressed; - } - - bool InputEvent::isMetaPressed() const - { - return mMetaPressed; - } - - void InputEvent::consume() - { - mIsConsumed = true; - } - - bool InputEvent::isConsumed() const - { - return mIsConsumed; - } -} // namespace gcn diff --git a/src/gui/base/inputevent.hpp b/src/gui/base/inputevent.hpp deleted file mode 100644 index fab68e2a4..000000000 --- a/src/gui/base/inputevent.hpp +++ /dev/null @@ -1,177 +0,0 @@ -/* - * The ManaPlus Client - * Copyright (C) 2011-2014 The ManaPlus Developers - * - * This file is part of The ManaPlus Client. - * - * 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 - * 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, see . - */ - -/* _______ __ __ __ ______ __ __ _______ __ __ - * / _____/\ / /\ / /\ / /\ / ____/\ / /\ / /\ / ___ /\ / |\/ /\ - * / /\____\// / // / // / // /\___\// /_// / // /\_/ / // , |/ / / - * / / /__ / / // / // / // / / / ___ / // ___ / // /| ' / / - * / /_// /\ / /_// / // / // /_/_ / / // / // /\_/ / // / | / / - * /______/ //______/ //_/ //_____/\ /_/ //_/ //_/ //_/ //_/ /|_/ / - * \______\/ \______\/ \_\/ \_____\/ \_\/ \_\/ \_\/ \_\/ \_\/ \_\/ - * - * Copyright (c) 2004 - 2008 Olof Naessén and Per Larsson - * - * - * Per Larsson a.k.a finalman - * Olof Naessén a.k.a jansem/yakslem - * - * Visit: http://guichan.sourceforge.net - * - * License: (BSD) - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name of Guichan nor the names of its contributors may - * be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef GCN_INPUTEVENT_HPP -#define GCN_INPUTEVENT_HPP - -#include "events/event.h" - -namespace gcn -{ - /** - * Base class for all events concerning input. - * - * @author Olof Naessén - * @since 0.6.0 - */ - class InputEvent: public Event - { - public: - /** - * Constructor. - * - * @param source The source widget of the event. - * @param isShiftPressed True if shift is pressed, false otherwise. - * @param isControlPressed True if control is pressed, false otherwise. - * @param isAltPressed True if alt is pressed, false otherwise. - * @param isMetaPressed True if meta is pressed, false otherwise. - */ - InputEvent(Widget *const source, - const bool shiftPressed, - const bool controlPressed, - const bool altPressed, - const bool metaPressed); - - /** - * Checks if shift is pressed. - * - * @return True if shift was pressed at the same time as the key, - * false otherwise. - */ - bool isShiftPressed() const A_WARN_UNUSED; - - /** - * Checks if control is pressed. - * - * @return True if control was pressed at the same time as the key, - * false otherwise. - */ - bool isControlPressed() const A_WARN_UNUSED; - - /** - * Checks if alt is pressed. - * - * @return True if alt was pressed at the same time as the key, - * false otherwise. - */ - bool isAltPressed() const A_WARN_UNUSED; - - /** - * Checks whether meta is pressed. - * - * @return True if meta was pressed at the same time as the key, - * false otherwise. - */ - bool isMetaPressed() const A_WARN_UNUSED; - - /** - * Marks the event as consumed. Input event listeners may discard - * consumed input or act on consumed input. An example of a widget - * that discards consumed input is the ScrollArea widget that - * discards consumed mouse wheel events so the ScrollArea will not - * scroll if for instance a Slider's value inside the ScrollArea was - * changed with the mouse wheel. - * - * @see isConsumed - */ - void consume(); - - /** - * Checks if the input event is consumed. - * - * @return True if the input event is consumed, - * false otherwise. - * @see consume - */ - bool isConsumed() const A_WARN_UNUSED; - - protected: - /** - * True if shift is pressed, false otherwise. - */ - bool mShiftPressed; - - /** - * True if control is pressed, false otherwise. - */ - bool mControlPressed; - - /** - * True if alt is pressed, false otherwise. - */ - bool mAltPressed; - - /** - * True if meta is pressed, false otherwise. - */ - bool mMetaPressed; - - /** - * True if the input event is consumed, - * false otherwise. - */ - bool mIsConsumed; - }; -} // namespace gcn - -#endif // end GCN_INPUTEVENT_HPP diff --git a/src/gui/base/keyevent.cpp b/src/gui/base/keyevent.cpp index 35c4f06a5..d8d954bf3 100644 --- a/src/gui/base/keyevent.cpp +++ b/src/gui/base/keyevent.cpp @@ -79,11 +79,11 @@ namespace gcn const unsigned int type, const bool numericPad, const Key& key) : - InputEvent(source, - shiftPressed, - controlPressed, - altPressed, - metaPressed), + InputGuiEvent(source, + shiftPressed, + controlPressed, + altPressed, + metaPressed), mType(type), mIsNumericPad(numericPad), mKey(key) diff --git a/src/gui/base/keyevent.hpp b/src/gui/base/keyevent.hpp index 4f2fa05a3..dd2b5f296 100644 --- a/src/gui/base/keyevent.hpp +++ b/src/gui/base/keyevent.hpp @@ -64,7 +64,7 @@ #ifndef GCN_KEYEVENT_HPP #define GCN_KEYEVENT_HPP -#include "gui/base/inputevent.hpp" +#include "events/inputguievent.h" #include "gui/base/key.hpp" namespace gcn @@ -74,7 +74,7 @@ namespace gcn /** * Represents a key event. */ - class KeyEvent: public InputEvent + class KeyEvent: public InputGuiEvent { public: /** diff --git a/src/gui/base/mouseevent.cpp b/src/gui/base/mouseevent.cpp index 653974a83..9577059cc 100644 --- a/src/gui/base/mouseevent.cpp +++ b/src/gui/base/mouseevent.cpp @@ -81,11 +81,11 @@ namespace gcn const int x, const int y, const int clickCount) : - InputEvent(source, - shiftPressed, - controlPressed, - altPressed, - metaPressed), + InputGuiEvent(source, + shiftPressed, + controlPressed, + altPressed, + metaPressed), mType(type), mButton(button), mX(x), diff --git a/src/gui/base/mouseevent.hpp b/src/gui/base/mouseevent.hpp index 93c1fc0a7..2853d01bf 100644 --- a/src/gui/base/mouseevent.hpp +++ b/src/gui/base/mouseevent.hpp @@ -64,7 +64,7 @@ #ifndef GCN_MOUSEEVENT_HPP #define GCN_MOUSEEVENT_HPP -#include "gui/base/inputevent.hpp" +#include "events/inputguievent.h" namespace gcn { @@ -77,7 +77,7 @@ namespace gcn * @author Olof Naessén * @since 0.6.0 */ - class MouseEvent: public InputEvent + class MouseEvent: public InputGuiEvent { public: /** -- cgit v1.2.3-70-g09d2