ACF $AcfVersion:0$
CConsoleGui.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
10#include <iview/CViewport.h>
12
13
14// Forward declarations
15class QVBoxLayout;
16class QGridLayout;
17class QHBoxLayout;
18class QScrollBar;
19class QStatusBar;
20class QLabel;
21class QToolButton;
22
23
24namespace iview
25{
26
27
31{
32 Q_OBJECT
33 Q_ENUMS(FitMode)
34
35 Q_PROPERTY(bool ZoomToFit READ IsZoomToFit WRITE SetZoomToFit)
36 Q_PROPERTY(bool GridVisible READ IsGridVisible WRITE SetGridVisible)
37 Q_PROPERTY(bool RulerVisible READ IsRulerVisible WRITE SetRulerVisible)
40 Q_PROPERTY(bool GridInMm READ IsGridInMm WRITE SetGridInMm)
52 Q_PROPERTY(FitMode FitMode READ GetFitMode WRITE SetFitMode)
53
54public:
56
65
66 explicit CConsoleGui(QWidget* parent = NULL);
67
69
73 void SetShapeStatusInfo(IShapeStatusInfo* shapeStatusInfoPtr);
74
75 bool IsFullScreenMode() const;
76 void SetFullScreenMode(bool isFullScreen);
77
80
81 // reimplemented (iview::CConsoleBase)
82 virtual const CViewport& GetView() const override;
83 virtual CViewport& GetViewRef() override;
84 virtual void UpdateCursorInfo(const QString& infoText) override;
85
86 // reimplemented (ibase::ICommandsProvider)
87 virtual const ibase::IHierarchicalCommand* GetCommands() const override;
88
89public Q_SLOTS:
90 void OnZoomIn();
91 void OnZoomOut();
93 void OnZoomToFit(bool state);
99 void OnShowScrollbars(bool state);
100 void OnShowGrid(bool state);
101 void OnShowRuler(bool state);
104 void OnShowGridInMm(bool state);
105 void OnHScrollbarChanged(int newPos);
106 void OnVScrollbarChanged(int newPos);
110
111Q_SIGNALS:
112 bool selectionChanged(const iview::IShapeView& view, const istd::CIndex2d& position, const iview::IInteractiveShape& shape, bool state);
113 bool mouseClicked(const iview::IShapeView& view, const istd::CIndex2d& position, Qt::MouseButton buttonType, bool state, const iview::IInteractiveShape* shapePtr);
114
116
117protected:
118 virtual void UpdateZoomInOutState();
120
121 virtual bool OnKeyPressed(int key, Qt::KeyboardModifiers modifiers);
122
123 // events
124 virtual bool OnWheelEvent(QWheelEvent* eventPtr);
125 virtual bool OnMouseDoubleClickEvent(QEvent* eventPtr);
126 virtual bool OnKeyPressEvent(QKeyEvent* eventPtr);
127
128 // reimplemented (iview::IEditModeButtons)
129 virtual void UpdateEditModeButtons(int mode) override;
130
131 // reimplemented (iview::CConsoleBase)
132 virtual void UpdateButtonsState() override;
133 virtual void UpdateComponentsPosition() override;
134 virtual void UpdateCommands() override;
135 virtual bool OnSelectChange(const iview::IShapeView& view, const istd::CIndex2d& position, const iview::IInteractiveShape& shape, bool state) override;
136 virtual bool OnViewMouseButton(const iview::IShapeView& view, const istd::CIndex2d& position, Qt::MouseButton buttonType, bool state, const iview::IInteractiveShape* shapePtr) override;
137 virtual void OnBoundingBoxChanged() override;
138
139 // reimplemented (QObject)
140 virtual bool eventFilter(QObject* sourcePtr, QEvent* eventPtr) override;
141
142protected:
144 {
145 public:
147 :m_parent(parent)
148 {
149 }
150
152 };
153
155
156protected:
159
160 QVBoxLayout* m_mainLayoutPtr;
161 QGridLayout* m_centerLayoutPtr;
162
166
167 // commands
170
177
182
187
189
191
194 QWidget* m_viewWidget;
196
198};
199
200
201// inline methods
202
203// view access
204
205inline const CViewport& CConsoleGui::GetView() const
206{
207 Q_ASSERT(m_viewPtr != NULL);
208
209 return *m_viewPtr;
210}
211
212
214{
215 Q_ASSERT(m_viewPtr != NULL);
216
217 return *m_viewPtr;
218}
219
220
221} // namespace iview
222
223
224
225
Interface for a provider of the heriarchical commands.
Implementation of hierarchical command based on QAction from Qt.
Index implementation for addressing elements in 2D-space.
Definition CIndex2d.h:21
Common interface to define the hierarchical graph structures.
bool IsRulerButtonVisible() const
bool AreUserModeButtonsVisible() const
bool IsScrollbarsButtonVisible() const
void SetButtonsPanelVertical(bool state=true)
bool AreZoomsVisible() const
void SetZoomsVisible(bool state=true)
void SetRulerButtonVisible(bool state=true)
FitMode
Control fitting mode, to fit area of interest (AOI) to display.
bool AreScrollbarsVisible() const
void SetScrollbarsButtonVisible(bool state=true)
void SetPolylineButtonsVisible(bool state=true)
bool IsDistanceMeasureToolActive() const
bool IsZoomToFit() const
void SetRulerVisible(bool state=true)
void SetUserModeButtonsVisible(bool state=true)
bool IsGridInMm() const
bool IsGridVisible() const
bool ArePolylineButtonsVisible() const
bool IsButtonsPanelVertical() const
void SetGridInMm(bool state=true)
void SetGridVisible(bool state=true)
bool IsRulerVisible() const
void SetGridButtonVisible(bool state=true)
void SetMmButtonVisible(bool state=true)
FitMode GetFitMode() const
bool IsButtonsPanelVisible() const
bool IsPointMeasureToolActive() const
void SetFitMode(FitMode mode)
bool IsZoomToFitVisible() const
void SetZoomToFit(bool state=true)
bool IsMmButtonVisible() const
void SetPointMeasureToolActive(bool state=true)
void SetDistanceMeasureToolActive(bool state=true)
void SetButtonsPanelVisible(bool state=true)
bool IsGridButtonVisible() const
void SetZoomToFitVisible(bool state=true)
void SetScrollbarsVisible(bool state=true)
UiResourcesManager(CConsoleGui &parent)
void OnActivateDistanceMeasureTool(bool state)
void OnShowScrollbars(bool state)
void OnShowRuler(bool state)
virtual bool OnWheelEvent(QWheelEvent *eventPtr)
QScrollBar * m_horizontalScrollbarPtr
virtual void UpdateCommands() override
Recalculate menu commands.
iqtgui::CHierarchicalCommand m_pointsSubCommand
void SetExtraEditModeButtons(iview::IEditModeButtons *otherModeButtonsPtr)
UiResourcesManager m_uiResourcesManager
QScrollBar * m_verticalScrollbarPtr
iqtgui::CHierarchicalCommand m_rootCommands
virtual void UpdateEditModeButtons(int mode) override
Called after edit mode got changed.
iqtgui::CHierarchicalCommand m_pointMeasureToolCommand
iqtgui::CHierarchicalCommand m_gridVisibleCommand
iqtgui::CHierarchicalCommand m_zoomInCommand
QToolButton * m_navigatorPopupButtonPtr
IEditModeButtons * m_otherModeButtonsPtr
void OnActivatePointMeasureTool(bool state)
virtual bool OnSelectChange(const iview::IShapeView &view, const istd::CIndex2d &position, const iview::IInteractiveShape &shape, bool state) override
void OnFitContentsToView()
QVBoxLayout * m_mainLayoutPtr
void SetFullScreenMode(bool isFullScreen)
CConsoleGui(QWidget *parent=NULL)
virtual bool OnKeyPressEvent(QKeyEvent *eventPtr)
bool IsFullScreenMode() const
iqtgui::CHierarchicalCommand m_zoomResetCommand
iqtgui::CHierarchicalCommand m_pointsMoveCommand
virtual void UpdateScrollbarsValues()
iqtgui::CHierarchicalCommand m_gridInMmVisibleCommand
iqtgui::CHierarchicalCommand m_scrollVisibleCommand
virtual void UpdateZoomInOutState()
bool mouseClicked(const iview::IShapeView &view, const istd::CIndex2d &position, Qt::MouseButton buttonType, bool state, const iview::IInteractiveShape *shapePtr)
IShapeStatusInfo * m_shapeStatusInfoPtr
virtual bool OnViewMouseButton(const iview::IShapeView &view, const istd::CIndex2d &position, Qt::MouseButton buttonType, bool state, const iview::IInteractiveShape *shapePtr) override
void OnVScrollbarChanged(int newPos)
iqtgui::CHierarchicalCommand m_commands
virtual void OnBoundingBoxChanged() override
virtual void UpdateButtonsState() override
Recalculates enabling flags for buttons.
iqtgui::CHierarchicalCommand m_zoomToFitCommand
virtual CViewport & GetViewRef() override
Get access to internal view implementation.
iqtgui::CHierarchicalCommand m_pointsSelectCommand
QWidget * m_viewWidget
void OnShowGrid(bool state)
virtual const CViewport & GetView() const override
Get access to internal view implementation.
iqtgui::CHierarchicalCommand m_rulerVisibleCommand
virtual bool OnMouseDoubleClickEvent(QEvent *eventPtr)
iqtgui::CHierarchicalCommand m_distanceMeasureToolCommand
virtual bool eventFilter(QObject *sourcePtr, QEvent *eventPtr) override
iview::CViewport * m_viewPtr
void SetShapeStatusInfo(IShapeStatusInfo *shapeStatusInfoPtr)
Set status info object for the console shapes.
bool DistanceMeasureToolActive
Definition CConsoleGui.h:38
iqtgui::CHierarchicalCommand m_pointsAddCommand
void OnZoomToFit(bool state)
bool selectionChanged(const iview::IShapeView &view, const istd::CIndex2d &position, const iview::IInteractiveShape &shape, bool state)
iqtgui::CHierarchicalCommand m_zoomOutCommand
virtual void UpdateCursorInfo(const QString &infoText) override
virtual const ibase::IHierarchicalCommand * GetCommands() const override
Get list of menu commands.
virtual bool OnKeyPressed(int key, Qt::KeyboardModifiers modifiers)
void OnBoundingBoxChangedSlot()
void OnShowGridInMm(bool state)
void OnHScrollbarChanged(int newPos)
QGridLayout * m_centerLayoutPtr
virtual void UpdateComponentsPosition() override
Recalculates position of all components.
iview::CScreenTransform m_savedTransform
Update state of edit mode buttons.
Common interface for all display console shapes which can interacts with user.
Interface for access local bitmap information.
Common interface for a general shape view implementations.
Definition IShapeView.h:30
#define NULL
Definition istd.h:74
In this library is defined 2D view concept and standard visualisation objects.