VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
conditionalExpressionInterface.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
16 #include <boost/signals2.hpp>
17 #include <QtWidgets/QWidget>
18 #include <vrvCore/DtUniqueID.h>
19 #include <set>
20 
21 namespace makVrv
22 {
23  class DtDe;
24  ;
25 }
26 
27 class QWidget;
28 class DtSimCondExpr;
29 
30 namespace makVrf
31 {
32  class DtConditionalExpressionInterface;
33  class DtConditionalExpressionView;
34  class DtConditionalExpressionViewItem;
35 
40  {
41  public:
42  virtual DtConditionalExpressionInterface* create(makVrv::DtDe&, QWidget* parent) = 0;
43  virtual QString title() const = 0;
44  virtual bool canEditType(int) const = 0;
45  virtual bool canBeIncludedInGlobalPlan() const { return true; };
46  virtual bool isCompoundStatement() const { return false; };
47  virtual bool validOnlyForSyncMatrix() const { return false; };
48  };
49 
51  {
52  public:
54  virtual ~DtConditionExpressionLogic() override;
55 
56  public:
57  virtual void createConditional(DtConditionalExpressionView* parentView,
58  const std::set<makVrv::DtUniqueID>& data) = 0;
59 
60  virtual bool isComplete() const = 0;
61  virtual DtSimCondExpr* conditionalExpression() const = 0;
62  virtual void setupConditional(const DtSimCondExpr*, const std::set<makVrv::DtUniqueID>& data) = 0;
63  virtual void toBeDeleted() {};
64 
66  {
67  return myDe;
68  }
69 
71  virtual void accept();
72 
74  virtual void cancel();
75 
77  virtual void setupGui(DtConditionalExpressionView*, DtConditionalExpressionViewItem*, const std::set<makVrv::DtUniqueID>& data);
78 
79  public:
81 
82  protected:
85  };
86 
88  {
89  public:
90  //CTOR
91  DtConditionalExpressionInterface(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
92 
93  //DTOR
94  virtual ~DtConditionalExpressionInterface() override;
95 
97  virtual void run(DtConditionalExpressionView*, const std::set<makVrv::DtUniqueID>& data) = 0;
98 
99  virtual void setupGui(DtConditionalExpressionView*, DtConditionalExpressionViewItem*, const std::set<makVrv::DtUniqueID>& data) = 0;
100  virtual bool isComplete() const = 0;
101  virtual QString value() const = 0;
102  virtual void setValue(const QString&) = 0;
103  virtual DtSimCondExpr* conditionalExpression() const;
104  DtConditionExpressionLogic* logic() const { return myLogic; };
105 
107  virtual void setCancelButtonText(const QString&) = 0;
108  virtual void closeEvent(QCloseEvent*) override;
109 
110  virtual bool alwaysPopOut() const
111  {
112  return false;
113  }
114 
116  virtual QWidget* takeOKCancelButtonCanvas(QWidget* newParent) = 0;
117 
119  virtual void giveOKCancelButtonCanvas(QWidget*) = 0;
120 
121  virtual void toBeDeleted();
122 
124  virtual void setupConditional(const DtSimCondExpr*, const std::set<makVrv::DtUniqueID>& data) = 0;
125 
127  virtual bool bringsUpDialog() const;
128 
130  virtual void conditionComplete();
131  boost::signals2::signal<void ()> signal_conditionComplete;
132 
134  virtual void conditionCancelled();
135  boost::signals2::signal<void ()> signal_conditionCancelled;
136 
137  boost::signals2::signal<void (DtConditionalExpressionInterface*)> signal_destroyed;
138 
139  protected:
143  };
144 }
makVrv::DtSignalConnectionManager myConnections
Definition: conditionalExpressionInterface.h:142
virtual bool alwaysPopOut() const
Definition: conditionalExpressionInterface.h:110
makVrv::DtDe & myDe
Definition: conditionalExpressionInterface.h:140
makVrv::DtDe & myDe
Definition: conditionalExpressionInterface.h:80
Definition: conditionalExpressionInterface.h:87
boost::signals2::signal< void()> signal_conditionComplete
Definition: conditionalExpressionInterface.h:131
virtual bool canBeIncludedInGlobalPlan() const
Definition: conditionalExpressionInterface.h:45
DtConditionExpressionLogic * myLogic
Definition: conditionalExpressionInterface.h:141
virtual bool isCompoundStatement() const
Definition: conditionalExpressionInterface.h:46
DtConditionalExpressionViewItem represents a single conditional expression.
Definition: conditionalExpressionView.h:126
DtConditionalExpressionInterface * myInterface
Definition: conditionalExpressionInterface.h:83
DtConditionExpressionLogic * logic() const
Definition: conditionalExpressionInterface.h:104
Class that is used as a template for task/set dialogs.
Definition: conditionalExpressionInterface.h:39
virtual void toBeDeleted()
Definition: conditionalExpressionInterface.h:63
boost::signals2::signal< void(DtConditionalExpressionInterface *)> signal_destroyed
Definition: conditionalExpressionInterface.h:137
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
boost::signals2::signal< void()> signal_conditionCancelled
Definition: conditionalExpressionInterface.h:135
DtSimCondExpr is an abstract base class representing various Conditional Expressions used by the Plan...
Definition: simCondExpr.h:53
makVrv::DtDe & de()
Definition: conditionalExpressionInterface.h:65
Base class to provide boost signal/slot management.
Contains makVrv::DtUniqueID type.
makVrv::DtSignalConnectionManager myConnections
Definition: conditionalExpressionInterface.h:84
virtual bool validOnlyForSyncMatrix() const
Definition: conditionalExpressionInterface.h:47
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
Definition: conditionalExpressionInterface.h:50
#define DT_DLL_VRFGUITASKSETQT
Definition: vrfGuiTaskSetQt.h:22
DtConditionalExpressionView is the view that is used to create and modify conditional expressions...
Definition: conditionalExpressionView.h:50

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)