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 
18 #include <boost/signals2.hpp>
19 
24 
27 
29 #include <map>
30 
31 class DtEntityType;
32 class QWidget;
33 class QMainWindow;
34 
35 namespace makVrv
36 {
37  class DtDe;
38 }
39 
40 namespace makVrf
41 {
42  class DtPointObjectDefinitionDialog;
43  class DtCreateAndEditObjectDialogInterface;
44  class DtVrfObjectModifierDialogCreator;
45  class DtObjectDefinitionDialogCreationParameters;
46 
47 
49  {
50  public:
53  DtClonableUnicode(const makVrv::DtUnicode& orig) : DtUnicode(orig) {};
54  DtClonableUnicode(const DtClonableUnicode& orig) : DtUnicode(orig) {};
55  virtual ~DtClonableUnicode() {};
56 
57  virtual DtClonableUnicode* clone() const { return new DtClonableUnicode(*this); };
58  };
59 
69  {
72 
73  public:
74 
77 
80 
82  static DtVrfObjectModifierDialogManager& instance(makVrv::DtDe& de);
83 
85  virtual void connectToCreationManager();
86 
88  virtual void connectToEditingManager();
89 
91  virtual void disconnectFromCreationManager();
92 
94  virtual void disconnectFromEditingManager();
95 
98  virtual void setShowDialogs(bool flag);
99  bool showDialogs() const
100  {
101  return myShowDialogs;
102  }
103 
105  virtual void populateDialogFromStmt(const DtCreateObjectCommand* cmd);
106 
108  virtual void addDialogCreationFcnForKind(DtEntityType, DtObjectDefinitionDialogCreationParameters*);
109 
111  virtual void removeDialogCreationFcnForKind(DtEntityType);
112 
113  virtual void addDefaultTitle(const DtEntityType& key, const makVrv::DtUnicode&);
114  virtual DtClonableUnicode* defaultTitle(const DtEntityType&) const;
115 
116  protected:
118  virtual void slot_creatingObject(const DtEntityType& type, int force, DtCreationSignalType signalCreate = DtNoCreationSignal);
119 
121  virtual void slot_creatingTerrainProp();
122 
124  virtual void slot_creationStopped();
125 
127  virtual void slot_editingObject(const makVrv::DtUniqueID&, const DtEditingType&);
128  virtual void slot_editingObjectByEntityType(const DtEntityType& thisEntityType,
129  const DtEditingType& editType, const makVrv::DtUniqueID& principalID = 0);
130 
132  virtual void slot_editingTerrainProp(const makVrv::DtUniqueID&, const DtEditingType&);
133 
135  virtual void slot_editingStopped();
136 
138  virtual void destroyPropertiesDlg();
139 
143  virtual DtObjectDefinitionDialogCreationParameters* lookupCreatorFromEntityType(const DtEntityType& ent,
144  const std::string& keywords);
145 
146  virtual std::string findEntityTypeName(const DtEntityType& ent);
147 
148  public:
149  boost::signals2::signal<void (DtCreateAndEditObjectDialogInterface*)> signal_dialogCreated;
150  boost::signals2::signal<void (DtCreateAndEditObjectDialogInterface*)> signal_dialogAboutToBeDestroyed;
151 
152  protected:
153 
161 
162  //Default object titles for objects that do not have types in the mst file
164 
167  };
168 
169 
171  //entity-specific flags important to the dialog creation process
172 
174  {
175  public :
176 
177  DtObjectDefinitionDialogCreationParameters(DtVrfObjectModifierDialogCreator* objectModifierDialogCreatorIn, bool forceDialogToAppearInPlansIn = false);
178 
180 
181  DtVrfObjectModifierDialogCreator* objectModifierDialogCreator();
182 
183  bool forceDialogToAppearInPlans();
184 
185  void setObjectModifierDialogCreator(DtVrfObjectModifierDialogCreator* inputObjectModifierDialogCreator);
186 
187  void setForceDialogToAppearInPlans(bool inputForceDialogToAppearInPlans);
188 
190 
191  protected:
192 
194 
195  //This flag overrides previous user input regarding whether the create autohide dialog
196  //is closed in plan-based object creation and all kinds of object edits.
197  //The default is "false" but control objects are generally set to "true"
198 
200  };
201 
202 
203 
204 
205 }
Contains makVrv::DtUserInterfaceAssembler class.
Definition: createAndEditObjectDialogInterface.h:124
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:163
QMainWindow * myMainWindow
Definition: vrfObjectModifierDialogManager.h:155
DtOrderedEntityTypeList< DtObjectDefinitionDialogCreationParameters * > VrfCreateAndEditDialogCreators
Definition: vrfObjectModifierDialogManager.h:70
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
boost::signals2::signal< void(DtCreateAndEditObjectDialogInterface *)> signal_dialogCreated
Definition: vrfObjectModifierDialogManager.h:149
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:57
Contains makVrv:DtSelectionManager class.
DtEditingType
Definition: vrfObjectManipulationHandlerBaseClass.h:42
Definition: createAndEditObjectDialogInterface.h:29
DtClonableUnicode(const makVrv::DtUnicode &orig)
Definition: vrfObjectModifierDialogManager.h:53
DtOrderedEntityTypeList< DtClonableUnicode * > DefaultTitles
Definition: vrfObjectModifierDialogManager.h:71
bool showDialogs() const
Definition: vrfObjectModifierDialogManager.h:99
DtCreateAndEditObjectDialogInterface * myObjectPropertiesDlg
Definition: vrfObjectModifierDialogManager.h:156
Structure indexed by VrfCreateAndEditDialogCreators. Specifies a creator function and...
Definition: vrfObjectModifierDialogManager.h:173
DtClonableUnicode()
CTOR.
Definition: vrfObjectModifierDialogManager.h:52
makVrv::DtSignalConnectionManager myCreationSignals
Definition: vrfObjectModifierDialogManager.h:165
Contains makVrv::DtVirtualBaseClass class.
Definition: vrfObjectManipulationHandlerBaseClass.h:75
bool myForceDialogToAppearInPlans
Definition: vrfObjectModifierDialogManager.h:199
makVrv::DtDe & myDe
Definition: vrfObjectModifierDialogManager.h:154
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
boost::signals2::signal< void(DtCreateAndEditObjectDialogInterface *)> signal_dialogAboutToBeDestroyed
Definition: vrfObjectModifierDialogManager.h:150
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
VrfCreateAndEditDialogCreators myDialogCreators
mapping of DtEntityTypes (including possibly wildcards) to specific DtVrfObjectModifierDialogCreator ...
Definition: vrfObjectModifierDialogManager.h:158
Base class to provide boost signal/slot management.
DtVrfObjectModifierDialogCreator * myObjectModifierDialogCreator
Definition: vrfObjectModifierDialogManager.h:193
Manages the appearance/disposal of creation/editing dialogs associated with creating/editing vrforces...
Definition: vrfObjectModifierDialogManager.h:68
Definition: vrfObjectModifierDialogManager.h:48
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:72
virtual ~DtClonableUnicode()
Definition: vrfObjectModifierDialogManager.h:55
bool myShowDialogs
Definition: vrfObjectModifierDialogManager.h:160
DtCreationSignalType
Option to supply to the createObject method.
Definition: vrfObjectManipulationHandlerBaseClass.h:73
Contains makVrv::DtQtDeMainWindow class.
makVrv::DtSignalConnectionManager myEditingSignals
Definition: vrfObjectModifierDialogManager.h:166
DtClonableUnicode(const DtClonableUnicode &orig)
Definition: vrfObjectModifierDialogManager.h:54
bool myManualEdit
Definition: vrfObjectModifierDialogManager.h:159
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 Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)