diff options
-rw-r--r-- | src/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | src/enums/gui/orientation.h | 78 | ||||
-rw-r--r-- | src/gui/widgets/slider.cpp | 14 | ||||
-rw-r--r-- | src/gui/widgets/slider.h | 18 |
5 files changed, 92 insertions, 20 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d71075615..b60a9f195 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1325,6 +1325,7 @@ SET(SRCS enums/gui/dialogtype.h enums/gui/gradienttype.h enums/gui/itemamountwindowusage.h + enums/gui/orientation.h enums/gui/progresscolorid.h enums/gui/serverdialogdonwloadstatus.h enums/gui/shoplistboxtype.h diff --git a/src/Makefile.am b/src/Makefile.am index 15a8d2865..5f6baeba7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -126,6 +126,7 @@ SRC += events/actionevent.h \ enums/gui/dialogtype.h \ enums/gui/gradienttype.h \ enums/gui/itemamountwindowusage.h \ + enums/gui/orientation.h \ enums/gui/progresscolorid.h \ enums/gui/serverdialogdonwloadstatus.h \ enums/gui/shoplistboxtype.h \ diff --git a/src/enums/gui/orientation.h b/src/enums/gui/orientation.h new file mode 100644 index 000000000..81c3f305b --- /dev/null +++ b/src/enums/gui/orientation.h @@ -0,0 +1,78 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2016 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 <http://www.gnu.org/licenses/>. + */ + +/* _______ __ __ __ ______ __ __ _______ __ __ + * / _____/\ / /\ / /\ / /\ / ____/\ / /\ / /\ / ___ /\ / |\/ /\ + * / /\____\// / // / // / // /\___\// /_// / // /\_/ / // , |/ / / + * / / /__ / / // / // / // / / / ___ / // ___ / // /| ' / / + * / /_// /\ / /_// / // / // /_/_ / / // / // /\_/ / // / | / / + * /______/ //______/ //_/ //_____/\ /_/ //_/ //_/ //_/ //_/ /|_/ / + * \______\/ \______\/ \_\/ \_____\/ \_\/ \_\/ \_\/ \_\/ \_\/ \_\/ + * + * 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 ENUMS_GUI_ORIENTATION_H +#define ENUMS_GUI_ORIENTATION_H + +#include "enums/simpletypes/enumdefines.h" + +enumStart(Orientation) +{ + HORIZONTAL = 0, + VERTICAL +} +enumEnd(Orientation); + +#endif // ENUMS_GUI_ORIENTATION_H diff --git a/src/gui/widgets/slider.cpp b/src/gui/widgets/slider.cpp index 5d8e47d2c..ee649947a 100644 --- a/src/gui/widgets/slider.cpp +++ b/src/gui/widgets/slider.cpp @@ -101,7 +101,7 @@ Slider::Slider(Widget2 *const widget, mStepLength(stepLength), mScaleStart(0), mScaleEnd(scaleEnd), - mOrientation(HORIZONTAL), + mOrientation(Orientation::HORIZONTAL), mVertexes(new ImageCollection), mMarkerLength(10), mHasMouse(false) @@ -120,7 +120,7 @@ Slider::Slider(Widget2 *const widget, mStepLength(stepLength), mScaleStart(scaleStart), mScaleEnd(scaleEnd), - mOrientation(HORIZONTAL), + mOrientation(Orientation::HORIZONTAL), mVertexes(new ImageCollection), mMarkerLength(10), mHasMouse(false) @@ -382,7 +382,7 @@ void Slider::mousePressed(MouseEvent &event) && x >= 0 && x <= width && y >= 0 && y <= height) { event.consume(); - if (mOrientation == HORIZONTAL) + if (mOrientation == Orientation::HORIZONTAL) setValue(markerPositionToValue(x - mMarkerLength / 2)); else setValue(markerPositionToValue(height - y - mMarkerLength / 2)); @@ -392,7 +392,7 @@ void Slider::mousePressed(MouseEvent &event) void Slider::mouseDragged(MouseEvent &event) { - if (mOrientation == HORIZONTAL) + if (mOrientation == Orientation::HORIZONTAL) { setValue(markerPositionToValue(event.getX() - mMarkerLength / 2)); } @@ -425,7 +425,7 @@ void Slider::keyPressed(KeyEvent& event) { const InputActionT action = event.getActionId(); - if (mOrientation == HORIZONTAL) + if (mOrientation == Orientation::HORIZONTAL) { if (action == InputAction::GUI_RIGHT) { @@ -479,7 +479,7 @@ void Slider::setValue(const double value) double Slider::markerPositionToValue(const int v) const { int w; - if (mOrientation == HORIZONTAL) + if (mOrientation == Orientation::HORIZONTAL) w = mDimension.width; else w = mDimension.height; @@ -491,7 +491,7 @@ double Slider::markerPositionToValue(const int v) const int Slider::valueToMarkerPosition(const double value) const { int v; - if (mOrientation == HORIZONTAL) + if (mOrientation == Orientation::HORIZONTAL) v = mDimension.width; else v = mDimension.height; diff --git a/src/gui/widgets/slider.h b/src/gui/widgets/slider.h index b6d065634..b70f3f000 100644 --- a/src/gui/widgets/slider.h +++ b/src/gui/widgets/slider.h @@ -66,6 +66,8 @@ #ifndef GUI_WIDGETS_SLIDER_H #define GUI_WIDGETS_SLIDER_H +#include "enums/gui/orientation.h" + #include "listeners/keylistener.h" #include "listeners/mouselistener.h" @@ -86,16 +88,6 @@ class Slider final : public Widget, { public: /** - * Draw orientations for the slider. A slider can be drawn vertically or - * horizontally. - */ - enum Orientation - { - HORIZONTAL = 0, - VERTICAL - }; - - /** * Constructor with scale start equal to 0. */ Slider(Widget2 *const widget, @@ -236,7 +228,7 @@ class Slider final : public Widget, * @param orientation The orientation of the slider. * @see getOrientation */ - void setOrientation(const Orientation orientation) + void setOrientation(const OrientationT orientation) { mOrientation = orientation; } /** @@ -246,7 +238,7 @@ class Slider final : public Widget, * @return The orientation of the slider. * @see setOrientation */ - Orientation getOrientation() const + OrientationT getOrientation() const { return mOrientation; } /** @@ -343,7 +335,7 @@ class Slider final : public Widget, * Holds the orientation of the slider. A slider can be drawn * vertically or horizontally. */ - Orientation mOrientation; + OrientationT mOrientation; ImageCollection *mVertexes A_NONNULLPOINTER; |