diff options
author | Andrei Karas <akaras@inbox.ru> | 2017-09-06 00:24:57 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2017-09-06 00:24:57 +0300 |
commit | f82a8240b7f160e1a171871b3596cc13cabc34b2 (patch) | |
tree | 058fb0d37e7fbbb76e74921454834b02899a9a19 /src/dyetool/gui/viewport.cpp | |
parent | 471ebb87308b318d8b04f773954d2be4f49f080d (diff) | |
download | manaverse-f82a8240b7f160e1a171871b3596cc13cabc34b2.tar.gz manaverse-f82a8240b7f160e1a171871b3596cc13cabc34b2.tar.bz2 manaverse-f82a8240b7f160e1a171871b3596cc13cabc34b2.tar.xz manaverse-f82a8240b7f160e1a171871b3596cc13cabc34b2.zip |
Move dyecmd separate sources from dyetool into progs/dyecmd directory.
Diffstat (limited to 'src/dyetool/gui/viewport.cpp')
-rw-r--r-- | src/dyetool/gui/viewport.cpp | 272 |
1 files changed, 0 insertions, 272 deletions
diff --git a/src/dyetool/gui/viewport.cpp b/src/dyetool/gui/viewport.cpp deleted file mode 100644 index 21719286f..000000000 --- a/src/dyetool/gui/viewport.cpp +++ /dev/null @@ -1,272 +0,0 @@ -/* - * The ManaPlus Client - * Copyright (C) 2004-2009 The Mana World Development Team - * Copyright (C) 2009-2010 The Mana Developers - * Copyright (C) 2011-2017 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/>. - */ - -#include "dyetool/gui/viewport.h" - -#include "configuration.h" -#include "sdlshared.h" - -#include "gui/gui.h" -#include "gui/popupmanager.h" - -#include "render/graphics.h" - -#include "debug.h" - -Viewport *viewport = nullptr; - -extern volatile int tick_time; - -Viewport::Viewport() : - WindowContainer(nullptr), - MouseListener(), - ConfigListener(), - mMouseX(0), - mMouseY(0), - mMap(nullptr), - mHoverBeing(nullptr), - mHoverItem(nullptr), - mHoverSign(nullptr), - mScrollRadius(config.getIntValue("ScrollRadius")), - mScrollLaziness(config.getIntValue("ScrollLaziness")), - mScrollCenterOffsetX(config.getIntValue("ScrollCenterOffsetX")), - mScrollCenterOffsetY(config.getIntValue("ScrollCenterOffsetY")), - mMousePressX(0), - mMousePressY(0), - mPixelViewX(0), - mPixelViewY(0), - mLocalWalkTime(-1), - mCameraRelativeX(0), - mCameraRelativeY(0), - mShowBeingPopup(config.getBoolValue("showBeingPopup")), - mSelfMouseHeal(config.getBoolValue("selfMouseHeal")), - mEnableLazyScrolling(config.getBoolValue("enableLazyScrolling")), - mMouseDirectionMove(config.getBoolValue("mouseDirectionMove")), - mLongMouseClick(config.getBoolValue("longmouseclick")), - mMouseClicked(false), - mPlayerFollowMouse(false) -{ - setOpaque(Opaque_false); - addMouseListener(this); - - config.addListener("ScrollLaziness", this); - config.addListener("ScrollRadius", this); - config.addListener("showBeingPopup", this); - config.addListener("selfMouseHeal", this); - config.addListener("enableLazyScrolling", this); - config.addListener("mouseDirectionMove", this); - config.addListener("longmouseclick", this); - - setFocusable(true); -} - -Viewport::~Viewport() -{ - config.removeListeners(this); - CHECKLISTENERS -} - -void Viewport::setMap(Map *const map A_UNUSED) -{ -} - -void Viewport::draw(Graphics *const graphics) -{ - BLOCK_START("Viewport::draw 1") - static int lastTick = tick_time; - - graphics->setColor(Color(64, 64, 64)); - graphics->fillRectangle( - Rect(0, 0, getWidth(), getHeight())); - - // Avoid freaking out when tick_time overflows - if (tick_time < lastTick) - lastTick = tick_time; - - // Draw contained widgets - WindowContainer::draw(graphics); - BLOCK_END("Viewport::draw 1") -} - -void Viewport::safeDraw(Graphics *const graphics) -{ - Viewport::draw(graphics); -} - -void Viewport::logic() -{ - BLOCK_START("Viewport::logic") - // Make the player follow the mouse position - // if the mouse is dragged elsewhere than in a window. - Gui::getMouseState(mMouseX, mMouseY); - BLOCK_END("Viewport::logic") -} - -void Viewport::followMouse() -{ -} - -void Viewport::drawDebugPath(Graphics *const graphics A_UNUSED) -{ -} - -bool Viewport::openContextMenu(const MouseEvent &event A_UNUSED) -{ - return false; -} - -void Viewport::mousePressed(MouseEvent &event) -{ - if (event.getSource() != this || event.isConsumed()) - return; - - mMouseClicked = true; - - mMousePressX = event.getX(); - mMousePressY = event.getY(); - const MouseButtonT eventButton = event.getButton(); - - // Right click might open a popup - if (eventButton == MouseButton::RIGHT) - { - if (openContextMenu(event)) - return; - } - - // If a popup is active, just remove it - if (PopupManager::isPopupMenuVisible()) - { - mPlayerFollowMouse = false; - PopupManager::hidePopupMenu(); - return; - } - - // Left click can cause different actions - if (!mLongMouseClick && eventButton == MouseButton::LEFT) - { - if (leftMouseAction()) - { - mPlayerFollowMouse = false; - return; - } - } -} - -void Viewport::walkByMouse(const MouseEvent &event A_UNUSED) -{ -} - -void Viewport::mouseDragged(MouseEvent &event) -{ - if (event.getSource() != this || event.isConsumed()) - { - mPlayerFollowMouse = false; - return; - } - if (mMouseClicked) - { - if (abs(event.getX() - mMousePressX) > 32 - || abs(event.getY() - mMousePressY) > 32) - { - mPlayerFollowMouse = true; - } - } - - walkByMouse(event); -} - -void Viewport::mouseReleased(MouseEvent &event) -{ - mPlayerFollowMouse = false; - mLocalWalkTime = -1; - if (mLongMouseClick && mMouseClicked) - { - mMouseClicked = false; - if (event.getSource() != this || event.isConsumed()) - return; - const MouseButtonT eventButton = event.getButton(); - if (eventButton == MouseButton::LEFT) - { - // long button press - if ((gui != nullptr) && gui->isLongPress()) - { - if (openContextMenu(event)) - { - gui->resetClickCount(); - return; - } - } - else - { - if (leftMouseAction()) - return; - } - walkByMouse(event); - } - } -} - -void Viewport::optionChanged(const std::string &name) -{ - if (name == "ScrollLaziness") - mScrollLaziness = config.getIntValue("ScrollLaziness"); - else if (name == "ScrollRadius") - mScrollRadius = config.getIntValue("ScrollRadius"); - else if (name == "showBeingPopup") - mShowBeingPopup = config.getBoolValue("showBeingPopup"); - else if (name == "selfMouseHeal") - mSelfMouseHeal = config.getBoolValue("selfMouseHeal"); - else if (name == "enableLazyScrolling") - mEnableLazyScrolling = config.getBoolValue("enableLazyScrolling"); - else if (name == "mouseDirectionMove") - mMouseDirectionMove = config.getBoolValue("mouseDirectionMove"); - else if (name == "longmouseclick") - mLongMouseClick = config.getBoolValue("longmouseclick"); -} - -void Viewport::mouseMoved(MouseEvent &event A_UNUSED) -{ -} - -void Viewport::toggleMapDrawType() -{ -} - -void Viewport::toggleCameraMode() -{ -} - -void Viewport::cleanHoverItems() -{ - mHoverBeing = nullptr; - mHoverItem = nullptr; - mHoverSign = nullptr; -} - -bool Viewport::leftMouseAction() -{ - return false; -} - -void Viewport::videoResized() -{ -} |