ACF $AcfVersion:0$
CPinShape.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5#include <i2d/CVector2d.h>
6#include <i2d/CPosition2d.h>
7
9
10
11namespace iview
12{
13
14
16{
17public:
19
21
22 // reimplemented (iview::IInteractiveShape)
23 virtual TouchState IsTouched(istd::CIndex2d position) const override;
24
25 // reimplemented (imod::IObserver)
26 virtual bool OnModelAttached(imod::IModel* modelPtr, istd::IChangeable::ChangeSet& changeMask) override;
27
28 // reimplemented (iview::IVisualizable)
29 virtual void Draw(QPainter& drawContext) const override;
30
31 // reimplemented (iview::IMouseActionObserver)
32 virtual bool OnMouseButton(istd::CIndex2d position, Qt::MouseButton buttonType, bool downFlag) override;
33 virtual bool OnMouseMove(istd::CIndex2d position) override;
34
35protected:
36 // reimplemented (iview::CShapeBase)
37 virtual i2d::CRect CalcBoundingBox() const override;
38
39 // reimplemented (iview::CInteractiveShapeBase)
40 virtual void BeginLogDrag(const i2d::CVector2d& reference) override;
41 virtual void SetLogDragPosition(const i2d::CVector2d& position) override;
42
44};
45
46
47} // namespace iview
48
49
50
51
Simple rectangle with integer bounds.
Definition CRect.h:22
Definition of position or mathematical vector on 2D plane.
Definition CVector2d.h:29
Common interface for model objects, that supports Model/Observer design pattern.
Definition IModel.h:25
Index implementation for addressing elements in 2D-space.
Definition CIndex2d.h:21
Set of change flags (its IDs).
Definition IChangeable.h:36
virtual TouchState IsTouched(istd::CIndex2d position) const override
Check, if any shape is touched.
i2d::CVector2d m_referencePosition
Definition CPinShape.h:43
CInteractiveShapeBase BaseClass
Definition CPinShape.h:18
virtual bool OnModelAttached(imod::IModel *modelPtr, istd::IChangeable::ChangeSet &changeMask) override
Callback invoked when an observable model is about to be attached to this observer.
virtual bool OnMouseButton(istd::CIndex2d position, Qt::MouseButton buttonType, bool downFlag) override
It is called, when mouse button is pushed down or up on this object.
virtual void Draw(QPainter &drawContext) const override
Draw this shape using draw context.
virtual bool OnMouseMove(istd::CIndex2d position) override
It is called, when mouse is moved.
virtual void SetLogDragPosition(const i2d::CVector2d &position) override
virtual void BeginLogDrag(const i2d::CVector2d &reference) override
virtual i2d::CRect CalcBoundingBox() const override
Calculate bounding box.
TouchState
Enumeration for possible shape touch states.
Definition ITouchable.h:25
In this library is defined 2D view concept and standard visualisation objects.