VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
entityHeadingDial.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
6 #pragma once
7 
9 
10 #include <qwt_compass.h>
11 
12 #include <boost/signals2.hpp>
13 
14 class QTimer;
15 class QLineEdit;
16 class QPushButton;
17 class QToolButton;
18 
19 namespace makVrf
20 {
26 
27  class DtEntityAttributeSpinBox;
29  {
30  Q_OBJECT
31  Q_PROPERTY(QColor RequestedValueMarking MEMBER myRequestedValueMarking USER true)
32  Q_PROPERTY(QColor ActualValueMarking MEMBER myActualValueMarking USER true)
33 
34  public:
35  explicit DtEntityHeadingDial(QWidget *parent = NULL);
36 
37  virtual ~DtEntityHeadingDial() override;
38 
39  virtual double actualValue();
40  virtual void setActualValue(double actualValue);
41 
42  virtual void setIcon(const QPixmap& icon);
43  const QPixmap& icon() const;
44 
45  virtual void setRequestedValue(double value, bool singleClick = true);
46 
47  virtual void setDisplayActualData(bool display);
48 
49  virtual int isMagneticNorth() const;
50  virtual void setMagneticNorth(bool unit);
51 
52  virtual bool active() const;
53 
54  boost::signals2::signal<void(double value, bool singleClick)> signal_requestedValueChanged;
55 
57  boost::signals2::signal<void(int turnDirection)> signal_turnDirectionChanged;
58 
60  boost::signals2::signal<void(bool isMagnetic)> signal_northTypeChanged;
61 
62  protected slots:
63  void mouseClickTimeout();
64  void onEditorFocussed(bool focus);
65  void onEditorReturnPressed();
66  void turnLeftClicked();
67  void turnDirectClicked();
68  void turnRightClicked();
69  void northTypeClicked();
70 
71  protected:
72  virtual void paintEvent(QPaintEvent* ev) override;
73 
74  virtual void mousePressEvent(QMouseEvent* event) override;
75  virtual void mouseReleaseEvent(QMouseEvent* event) override;
76  virtual void mouseDoubleClickEvent(QMouseEvent* event) override;
77  virtual void wheelEvent(QWheelEvent* event) override;
78 
79  virtual void resizeEvent(QResizeEvent* event) override;
80 
81  virtual void updateChildWidgetsPosition();
82 
84  virtual void wrapTo360(double& value);
85 
86  protected:
87  double myActualValue;
88 
89  QTimer* myMouseClickTimer;
90  bool mySecondClick;
91  bool myTimerStopped;
92  bool myDisplayActualData;
93 
94  QPixmap myIcon;
96  bool m_bEditingMode;
97 
98  QWidget* myTurnDirectionButtonsWidget;
99  QToolButton* myTurnLeftButton;
100  QToolButton* myTurnDirectButton;
101  QToolButton* myTurnRightButton;
102 
103  QToolButton* myNorthTypeButton;
104  bool myIsMagneticNorth;
105 
106  QColor myRequestedValueMarking;
107  QColor myActualValueMarking;
108 
109  bool myActive = false;
110  };
111 }
A customized spin box that supports signals for return key pressed event and focus in/out events...
Definition: entityAttributeSpinBox.h:19
Definition: entityHeadingDial.h:28
#define DT_DLL_VRFGUICOMMONQT
Definition: vrfGuiCommonQt.h:20

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)