ACF $AcfVersion:0$
CArcShape.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// ACF includes
6#include <iview/CPinShape.h>
7
8
9namespace iview
10{
11
12
13class CArcShape: public CPinShape
14{
15
16public:
19
21
22 virtual bool IsEditableRadius() const;
23 virtual void SetEditableRadius(bool editable = true);
24 virtual bool IsEditableStartAngle() const;
25 virtual void SetEditableStartAngle(bool editable = true);
26 virtual bool IsEditableAngleWidth() const;
27 virtual void SetEditableAngleWidth(bool editable = true);
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
52
60
62};
63
64
65} // namespace iview
66
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
CPinShape BaseClass
Definition CArcShape.h:17
virtual void SetEditableStartAngle(bool editable=true)
bool m_isCenterVisible
Definition CArcShape.h:49
virtual void SetEditableRadius(bool editable=true)
virtual bool IsEditableStartAngle() const
bool m_isEditableStartAngle
Definition CArcShape.h:50
virtual TouchState IsTouched(istd::CIndex2d position) const override
Check, if any shape is touched.
bool m_isEditableAngleWidth
Definition CArcShape.h:51
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 IsCenterVisible() const
virtual void SetCenterVisible(bool state=true)
virtual void SetEditableAngleWidth(bool editable=true)
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 Draw(QPainter &drawContext) const override
Draw this shape using draw context.
bool m_isEditableRadius
Definition CArcShape.h:48
virtual bool OnMouseMove(istd::CIndex2d position) override
It is called, when mouse is moved.
CInteractiveShapeBase ShapeBaseClass
Definition CArcShape.h:18
virtual bool IsEditableAngleWidth() const
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.