VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfObjectModifierDialogManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
17 #include <boost/signals2.hpp>
18 
23 
26 
28 #include <map>
29 
30 class DtEntityType;
31 class QWidget;
32 class QMainWindow;
33 
34 namespace makVrv
35 {
36  class DtDe;
37 }
38 
39 namespace makVrf
40 {
41  class DtPointObjectDefinitionDialog;
42  class DtCreateAndEditObjectDialogInterface;
43  class DtVrfObjectModifierDialogCreator;
44  class DtObjectDefinitionDialogCreationParameters;
45 
46 
48  {
49  public:
52  DtClonableUnicode(const makVrv::DtUnicode& orig) : DtUnicode(orig) {};
53  DtClonableUnicode(const DtClonableUnicode& orig) : DtUnicode(orig) {};
54  virtual ~DtClonableUnicode() override {};
55 
56  virtual DtClonableUnicode* clone() const { return new DtClonableUnicode(*this); };
57  };
58 
68  {
71 
72  public:
73 
76 
78  virtual ~DtVrfObjectModifierDialogManager() override;
79 
81  static DtVrfObjectModifierDialogManager& instance(makVrv::DtDe& de);
82 
84  virtual void connectToCreationManager();
85 
87  virtual void connectToEditingManager();
88 
90  virtual void disconnectFromCreationManager();
91 
93  virtual void disconnectFromEditingManager();
94 
97  virtual void setShowDialogs(bool flag);
98  bool showDialogs() const
99  {
100  return myShowDialogs;
101  }
102 
104  virtual void populateDialogFromStmt(const DtCreateObjectCommand* cmd);
105 
107  virtual void addDialogCreationFcnForKind(DtEntityType, DtObjectDefinitionDialogCreationParameters*);
108 
110  virtual void removeDialogCreationFcnForKind(DtEntityType);
111 
112  virtual void addDefaultTitle(const DtEntityType& key, const makVrv::DtUnicode&);
113  virtual DtClonableUnicode* defaultTitle(const DtEntityType&) const;
114 
115  protected:
117  virtual void slot_creatingObject(const DtEntityType& type, int force, DtCreationSignalType signalCreate = DtNoCreationSignal);
118 
120  virtual void slot_creatingTerrainProp();
121 
123  virtual void slot_creationStopped();
124 
126  virtual void slot_editingObject(const makVrv::DtUniqueID&, const DtEditingType&);
127  virtual void slot_editingObjectByEntityType(const DtEntityType& thisEntityType,
128  const DtEditingType& editType, const makVrv::DtUniqueID& principalID = 0);
129 
131  virtual void slot_editingTerrainProp(const makVrv::DtUniqueID&, const DtEditingType&);
132 
134  virtual void slot_editingStopped();
135 
137  virtual void destroyPropertiesDlg();
138 
142  virtual DtObjectDefinitionDialogCreationParameters* lookupCreatorFromEntityType(const DtEntityType& ent,
143  const std::string& keywords);
144 
145  virtual std::string findEntityTypeName(const DtEntityType& ent);
146 
147  public:
148  boost::signals2::signal<void (DtCreateAndEditObjectDialogInterface*)> signal_dialogCreated;
149  boost::signals2::signal<void (DtCreateAndEditObjectDialogInterface*)> signal_dialogAboutToBeDestroyed;
150 
151  protected:
152 
160 
161  //Default object titles for objects that do not have types in the mst file
163 
166  };
167 
168 
170  //entity-specific flags important to the dialog creation process
171 
173  {
174  public :
175 
176  DtObjectDefinitionDialogCreationParameters(DtVrfObjectModifierDialogCreator* objectModifierDialogCreatorIn, bool forceDialogToAppearInPlansIn = false);
177 
179 
180  DtVrfObjectModifierDialogCreator* objectModifierDialogCreator();
181 
182  bool forceDialogToAppearInPlans();
183 
184  void setObjectModifierDialogCreator(DtVrfObjectModifierDialogCreator* inputObjectModifierDialogCreator);
185 
186  void setForceDialogToAppearInPlans(bool inputForceDialogToAppearInPlans);
187 
189 
190  protected:
191 
193 
194  //This flag overrides previous user input regarding whether the create autohide dialog
195  //is closed in plan-based object creation and all kinds of object edits.
196  //The default is "false" but control objects are generally set to "true"
197 
199  };
200 
201 
202 
203 
204 }
Contains makVrv::DtUserInterfaceAssembler class.
Definition: createAndEditObjectDialogInterface.h:122
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
DefaultTitles myDefaultObjectTitles
Definition: vrfObjectModifierDialogManager.h:162
QMainWindow * myMainWindow
Definition: vrfObjectModifierDialogManager.h:154
DtOrderedEntityTypeList< DtObjectDefinitionDialogCreationParameters * > VrfCreateAndEditDialogCreators
Definition: vrfObjectModifierDialogManager.h:69
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
boost::signals2::signal< void(DtCreateAndEditObjectDialogInterface *)> signal_dialogCreated
Definition: vrfObjectModifierDialogManager.h:148
DtSimCommand subclass for creating a new VrfObjects. Used for both single and multi-point objects...
Definition: createObjectCommand.h:36
virtual DtClonableUnicode * clone() const
Definition: vrfObjectModifierDialogManager.h:56
Contains makVrv:DtSelectionManager class.
DtEditingType
Definition: vrfObjectManipulationHandlerBaseClass.h:42
Definition: createAndEditObjectDialogInterface.h:27
DtClonableUnicode(const makVrv::DtUnicode &orig)
Definition: vrfObjectModifierDialogManager.h:52
DtOrderedEntityTypeList< DtClonableUnicode * > DefaultTitles
Definition: vrfObjectModifierDialogManager.h:70
bool showDialogs() const
Definition: vrfObjectModifierDialogManager.h:98
DtCreateAndEditObjectDialogInterface * myObjectPropertiesDlg
Definition: vrfObjectModifierDialogManager.h:155
Structure indexed by VrfCreateAndEditDialogCreators. Specifies a creator function and...
Definition: vrfObjectModifierDialogManager.h:172
DtClonableUnicode()
CTOR.
Definition: vrfObjectModifierDialogManager.h:51
makVrv::DtSignalConnectionManager myCreationSignals
Definition: vrfObjectModifierDialogManager.h:164
Contains makVrv::DtVirtualBaseClass class.
Definition: vrfObjectManipulationHandlerBaseClass.h:75
bool myForceDialogToAppearInPlans
Definition: vrfObjectModifierDialogManager.h:198
makVrv::DtDe & myDe
Definition: vrfObjectModifierDialogManager.h:153
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
boost::signals2::signal< void(DtCreateAndEditObjectDialogInterface *)> signal_dialogAboutToBeDestroyed
Definition: vrfObjectModifierDialogManager.h:149
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
VrfCreateAndEditDialogCreators myDialogCreators
mapping of DtEntityTypes (including possibly wildcards) to specific DtVrfObjectModifierDialogCreator ...
Definition: vrfObjectModifierDialogManager.h:157
Base class to provide boost signal/slot management.
DtVrfObjectModifierDialogCreator * myObjectModifierDialogCreator
Definition: vrfObjectModifierDialogManager.h:192
Manages the appearance/disposal of creation/editing dialogs associated with creating/editing vrforces...
Definition: vrfObjectModifierDialogManager.h:67
Definition: vrfObjectModifierDialogManager.h:47
virtual ~DtClonableUnicode() override
Definition: vrfObjectModifierDialogManager.h:54
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
bool myShowDialogs
Definition: vrfObjectModifierDialogManager.h:159
DtCreationSignalType
Option to supply to the createObject method.
Definition: vrfObjectManipulationHandlerBaseClass.h:73
Contains makVrv::DtQtDeMainWindow class.
makVrv::DtSignalConnectionManager myEditingSignals
Definition: vrfObjectModifierDialogManager.h:165
DtClonableUnicode(const DtClonableUnicode &orig)
Definition: vrfObjectModifierDialogManager.h:53
bool myManualEdit
Definition: vrfObjectModifierDialogManager.h:158
The Qt main window. There will be only one of these per DtDe instance. Note, this window will be dest...
Definition: DtQtDeMainWindow.h:44

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)