mirror of https://github.com/OpenMW/openmw.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.3 KiB
C++
115 lines
3.3 KiB
C++
#ifndef CSV_RENDER_EDITMODE_H
|
|
#define CSV_RENDER_EDITMODE_H
|
|
|
|
#include "../widget/modebutton.hpp"
|
|
|
|
class QDragEnterEvent;
|
|
class QDropEvent;
|
|
class QDragMoveEvent;
|
|
class QPoint;
|
|
class QMouseEvent;
|
|
class QObject;
|
|
class QWidget;
|
|
|
|
namespace CSVWidget
|
|
{
|
|
class SceneToolbar;
|
|
}
|
|
|
|
namespace CSVRender
|
|
{
|
|
class WorldspaceWidget;
|
|
struct WorldspaceHitResult;
|
|
|
|
class EditMode : public CSVWidget::ModeButton
|
|
{
|
|
Q_OBJECT
|
|
|
|
WorldspaceWidget* mWorldspaceWidget;
|
|
unsigned int mMask;
|
|
|
|
protected:
|
|
WorldspaceWidget& getWorldspaceWidget();
|
|
|
|
public:
|
|
EditMode(WorldspaceWidget* worldspaceWidget, const QIcon& icon, unsigned int mask, const QString& tooltip = "",
|
|
QWidget* parent = nullptr);
|
|
|
|
unsigned int getInteractionMask() const;
|
|
|
|
void activate(CSVWidget::SceneToolbar* toolbar) override;
|
|
|
|
/// Default-implementation: Ignored.
|
|
virtual void setEditLock(bool locked);
|
|
|
|
/// Default-implementation: Ignored.
|
|
virtual void primaryOpenPressed(const WorldspaceHitResult& hit);
|
|
|
|
/// Default-implementation: Ignored.
|
|
virtual void primaryEditPressed(const WorldspaceHitResult& hit);
|
|
|
|
/// Default-implementation: Ignored.
|
|
virtual void secondaryEditPressed(const WorldspaceHitResult& hit);
|
|
|
|
/// Default-implementation: Ignored.
|
|
virtual void primarySelectPressed(const WorldspaceHitResult& hit);
|
|
|
|
/// Default-implementation: Ignored.
|
|
virtual void secondarySelectPressed(const WorldspaceHitResult& hit);
|
|
|
|
/// Default-implementation: Ignored.
|
|
virtual void tertiarySelectPressed(const WorldspaceHitResult& hit);
|
|
|
|
/// Default-implementation: ignore and return false
|
|
///
|
|
/// \return Drag accepted?
|
|
virtual bool primaryEditStartDrag(const QPoint& pos);
|
|
|
|
/// Default-implementation: ignore and return false
|
|
///
|
|
/// \return Drag accepted?
|
|
virtual bool secondaryEditStartDrag(const QPoint& pos);
|
|
|
|
/// Default-implementation: ignore and return false
|
|
///
|
|
/// \return Drag accepted?
|
|
virtual bool primarySelectStartDrag(const QPoint& pos);
|
|
|
|
/// Default-implementation: ignore and return false
|
|
///
|
|
/// \return Drag accepted?
|
|
virtual bool secondarySelectStartDrag(const QPoint& pos);
|
|
|
|
/// Default-implementation: ignored
|
|
virtual void drag(const QPoint& pos, int diffX, int diffY, double speedFactor);
|
|
|
|
/// Default-implementation: ignored
|
|
virtual void dragCompleted(const QPoint& pos);
|
|
|
|
/// Default-implementation: ignored
|
|
///
|
|
/// \note dragAborted will not be called, if the drag is aborted via changing
|
|
/// editing mode
|
|
virtual void dragAborted();
|
|
|
|
/// Default-implementation: ignored
|
|
virtual void dragWheel(int diff, double speedFactor);
|
|
|
|
/// Default-implementation: ignored
|
|
void dragEnterEvent(QDragEnterEvent* event) override;
|
|
|
|
/// Default-implementation: ignored
|
|
void dropEvent(QDropEvent* event) override;
|
|
|
|
/// Default-implementation: ignored
|
|
void dragMoveEvent(QDragMoveEvent* event) override;
|
|
|
|
void mouseMoveEvent(QMouseEvent* event) override;
|
|
|
|
/// Default: return -1
|
|
virtual int getSubMode() const;
|
|
};
|
|
}
|
|
|
|
#endif
|