ACF $AcfVersion:0$
CAnnulusShape.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 <iview/CPinShape.h>
6
7
8namespace iview
9{
10
11
13{
14public:
17
19
20 virtual bool IsEditableRadiusInner() const;
21 virtual void SetEditableRadiusInner(bool editable = true);
22 virtual bool IsEditableRadiusOuter() const;
23 virtual void SetEditableRadiusOuter(bool editable = true);
24
25 virtual bool IsEditableRadius() const;
26 virtual void SetEditableRadius(bool editable = true);
27
28 virtual bool IsCenterVisible() const;
29 virtual void SetCenterVisible(bool state = true);
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
35 // reimplemented (iview::IVisualizable)
36 virtual void Draw(QPainter& drawContext) const override;
37
38 // reimplemented (imod::IObserver)
39 virtual bool OnModelAttached(imod::IModel* modelPtr, istd::IChangeable::ChangeSet& changeMask) override;
40
41 // reimplemented (iview::ITouchable)
42 virtual TouchState IsTouched(istd::CIndex2d position) const override;
43
44protected:
45 // reimplemented (iview::CShapeBase)
46 virtual i2d::CRect CalcBoundingBox() const override;
47
49
52
59
61};
62
63
64} // namespace iview
65
66
67
68
69
Simple rectangle with integer bounds.
Definition CRect.h:22
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 bool OnMouseMove(istd::CIndex2d position) override
It is called, when mouse is moved.
virtual i2d::CRect CalcBoundingBox() const override
Calculate bounding box.
virtual void SetEditableRadius(bool editable=true)
virtual void SetCenterVisible(bool state=true)
virtual bool IsEditableRadiusOuter() const
virtual void Draw(QPainter &drawContext) const override
Draw this shape using draw context.
virtual bool IsEditableRadius() const
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 SetEditableRadiusOuter(bool editable=true)
virtual bool IsCenterVisible() const
virtual void SetEditableRadiusInner(bool editable=true)
virtual bool IsEditableRadiusInner() const
virtual TouchState IsTouched(istd::CIndex2d position) const override
Check, if any shape is touched.
CInteractiveShapeBase ShapeBaseClass
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.
TouchState
Enumeration for possible shape touch states.
Definition ITouchable.h:25
In this library is defined 2D view concept and standard visualisation objects.