summaryrefslogtreecommitdiff
path: root/src/dyetool/gui
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-09-06 00:24:57 +0300
committerAndrei Karas <akaras@inbox.ru>2017-09-06 00:24:57 +0300
commitf82a8240b7f160e1a171871b3596cc13cabc34b2 (patch)
tree058fb0d37e7fbbb76e74921454834b02899a9a19 /src/dyetool/gui
parent471ebb87308b318d8b04f773954d2be4f49f080d (diff)
downloadmanaverse-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')
-rw-r--r--src/dyetool/gui/viewport.cpp272
-rw-r--r--src/dyetool/gui/viewport.h213
2 files changed, 0 insertions, 485 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()
-{
-}
diff --git a/src/dyetool/gui/viewport.h b/src/dyetool/gui/viewport.h
deleted file mode 100644
index 7b1aa32c4..000000000
--- a/src/dyetool/gui/viewport.h
+++ /dev/null
@@ -1,213 +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/>.
- */
-
-#ifndef DYETOOL_GUI_VIEWPORT_H
-#define DYETOOL_GUI_VIEWPORT_H
-
-#include "position.h"
-
-#include "gui/widgets/windowcontainer.h"
-
-#include "listeners/mouselistener.h"
-
-class ActorSprite;
-class Being;
-class FloorItem;
-class Graphics;
-class Map;
-class MapItem;
-
-/**
- * The viewport on the map. Displays the current map and handles mouse input
- * and the popup menu.
- */
-class Viewport final : public WindowContainer,
- public MouseListener,
- public ConfigListener
-{
- public:
- /**
- * Constructor.
- */
- Viewport();
-
- A_DELETE_COPY(Viewport)
-
- /**
- * Destructor.
- */
- ~Viewport();
-
- /**
- * Sets the map displayed by the viewport.
- */
- void setMap(Map *const map);
-
- /**
- * Draws the viewport.
- */
- void draw(Graphics *const graphics) override final A_NONNULL(2);
-
- void safeDraw(Graphics *const graphics) override final A_NONNULL(2);
-
- /**
- * Implements player to keep following mouse.
- */
- void logic() override final;
-
- /**
- * Toggles whether the path debug graphics are shown. normal,
- * debug with all images and grid, debug with out big images
- * and with out grid.
- */
- void toggleMapDrawType();
-
- void toggleCameraMode();
-
- /**
- * Handles mouse press on map.
- */
- void mousePressed(MouseEvent &event) override final;
-
- /**
- * Handles mouse move on map
- */
- void mouseDragged(MouseEvent &event) override final;
-
- /**
- * Handles mouse button release on map.
- */
- void mouseReleased(MouseEvent &event) override final;
-
- /**
- * Handles mouse move on map.
- */
- void mouseMoved(MouseEvent &event) override final;
-
- /**
- * A relevant config option changed.
- */
- void optionChanged(const std::string &name) override final;
-
- /**
- * Returns camera x offset in pixels.
- */
- int getCameraX() const noexcept2 A_WARN_UNUSED
- { return mPixelViewX; }
-
- /**
- * Returns camera y offset in pixels.
- */
- int getCameraY() const noexcept2 A_WARN_UNUSED
- { return mPixelViewY; }
-
- /**
- * Changes viewpoint by relative pixel coordinates.
- */
- void scrollBy(const int x, const int y)
- { mPixelViewX += x; mPixelViewY += y; }
-
- /**
- * Clear all hover item, being etc
- */
- void cleanHoverItems();
-
- Map *getMap() const noexcept2 A_WARN_UNUSED
- { return mMap; }
-
- void moveCamera(const int dx, const int dy);
-
- int getCameraRelativeX() const noexcept2 A_WARN_UNUSED
- { return mCameraRelativeX; }
-
- int getCameraRelativeY() const noexcept2 A_WARN_UNUSED
- { return mCameraRelativeY; }
-
- void setCameraRelativeX(const int n) noexcept2
- { mCameraRelativeX = n; }
-
- void setCameraRelativeY(const int n) noexcept2
- { mCameraRelativeY = n; }
-
- void videoResized();
-
- int mMouseX; /**< Current mouse position in pixels. */
- int mMouseY; /**< Current mouse position in pixels. */
-
- private:
- /**
- * Finds a path from the player to the mouse, and draws it. This is for
- * debug purposes.
- */
- void drawDebugPath(Graphics *const graphics) A_NONNULL(2);
-
- /**
- * Draws the given path.
- */
- void drawPath(Graphics *const graphics,
- const Path &path,
- const Color &color = Color(255, 0, 0))
- const A_NONNULL(2);
-
- bool leftMouseAction();
-
- bool openContextMenu(const MouseEvent &event);
-
- void walkByMouse(const MouseEvent &event);
-
- /**
- * Make the player go to the mouse position.
- */
- void followMouse();
-
- Map *mMap; /**< The current map. */
-
- Being *mHoverBeing; /**< Being mouse is currently over. */
- FloorItem *mHoverItem; /**< FloorItem mouse is currently over. */
- MapItem *mHoverSign; /**< Map sign mouse is currently over. */
-
- int mScrollRadius;
- int mScrollLaziness;
- int mScrollCenterOffsetX;
- int mScrollCenterOffsetY;
- int mMousePressX;
- int mMousePressY;
- int mPixelViewX; /**< Current viewpoint in pixels. */
- int mPixelViewY; /**< Current viewpoint in pixels. */
-
- int mLocalWalkTime; /**< Timestamp before the next walk can be sent. */
-
- int mCameraRelativeX;
- int mCameraRelativeY;
-
- bool mShowBeingPopup;
- bool mSelfMouseHeal;
- bool mEnableLazyScrolling;
- bool mMouseDirectionMove;
- bool mLongMouseClick;
- bool mMouseClicked;
- bool mPlayerFollowMouse;
-};
-
-extern Viewport *viewport; /**< The viewport. */
-
-#endif // DYETOOL_GUI_VIEWPORT_H