VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
informationDialogManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 
14 #include <boost/signals2.hpp>
15 
21 
24 
26 #include <vrvCore/DtUniqueID.h>
27 
29 
30 #include <vlpi/entityType.h>
31 
32 namespace makVrv
33 {
34  class DtDe;
35 }
36 
37 #define DtInformationDialogToken "ShowInformationDialog"
38 
39 namespace makVrf
40 {
41  class DtGuiSimObject;
42 
43  namespace makVrfGuiObjectInformationQt
44  {
49 
50  class DtInformationDialog;
52 
61  {
62  public:
63 
65  virtual ~DtInformationDialogManager() override;
66 
68  static DtInformationDialogManager& instance(makVrv::DtDe& de);
69 
70  public:
71  virtual void showDialogsFor(const makVrv::DtSelectionManager::IdSet&);
72  virtual void showDialogFor(const makVrv::DtUniqueID&);
73  virtual void scenarioEventStarted(DtSimObjectReference);
74 
75  virtual void showInformationDialogFor(makVrv::DtUniqueID, const std::string& page);
76 
77  virtual void addDialogCreator(makVrv::DtElementEntry::ObjectType, const std::string&);
78 
80  virtual void addDialogCreator(const DtEntityType&, const std::string&);
81 
83  virtual void removeDialogCreator(const DtEntityType&);
84 
85  virtual bool hasDialogFor(const makVrv::DtSelectionManager::IdSet& idSet) const;
86  virtual bool hasDialogFor(const makVrv::DtUniqueID&) const;
87 
90  virtual DtInformationDialogWidgetSection* createDialogWidgetSection(makVrv::DtUniqueID);
91  virtual DtInformationDialogWidgetSection* createDialogWidgetSection(const std::string& creator,
93 
94  virtual std::string dialogCreatorForElementType(makVrv::DtElementEntry::ObjectType) const;
95  virtual std::string dialogCreatorFor(const DtEntityType&) const;
96  virtual std::string dialogCreatorFor(makVrv::DtUniqueID id) const;
97 
98  DtInformationPageConfiguration& informationPageConfiguration();
99  const DtInformationPageConfiguration& informationPageConfiguration() const;
100  DtInformationPageAssembler& informationPageAssembler();
101 
102  virtual DtInformationDialogPage* createPage(const std::string& pageName);
103 
105  virtual std::string pageForInformationItem(const std::string& item) const;
106 
108  virtual DtInformationDialogHandler* createInformationDialog(const std::string& collection, DtSimObjectReference);
109 
110  virtual void removeAllInformationDialogs();
111 
113  boost::signals2::signal<void (DtInformationDialogHandler*, const DtEntityType&)> signal_dialogAboutToBeCreated;
114 
116  boost::signals2::signal<void (DtInformationDialogHandler*, const DtEntityType&)> signal_dialogCreated;
117 
120 
123  virtual void addSelectedObjectInformationCreator(makVrv::DtElementEntry::ObjectType, const std::string&);
124 
126  virtual void addSelectedObjectInformationCreator(const DtEntityType&, const std::string&);
127 
129  virtual void removeSelectedObjectInformationCreator(const DtEntityType&);
130 
131  virtual bool hasSelectedObjectInformationFor(const makVrv::DtUniqueID&) const;
132 
133  virtual std::string selectedObjectInformationCreatorForElementType(makVrv::DtElementEntry::ObjectType) const;
134  virtual std::string selectedObjectInformationCreatorFor(const DtEntityType&) const;
135  virtual std::string selectedObjectInformationCreatorFor(makVrv::DtUniqueID id) const;
136 
138  virtual std::string proposedCreator(makVrv::DtUniqueID) const;
139  virtual DtInformationDialogWidgetSection* createSelectedObjectInformationWidgetSection(makVrv::DtUniqueID, const std::string& useCreator = "");
140  virtual DtInformationDialogWidgetSection* createSelectedObjectInformationWidgetSection(const std::string& creator,
143 
145  virtual void setMaximumSectionsPerDialog(int);
147  {
148  return myMaximumSectionsPerDialog;
149  }
150 
152  boost::signals2::signal<void ()> signal_informationDialogSetupComplete;
153 
154  protected:
155  virtual void slot_safeToAccessData();
156  virtual void scenarioRewinding();
157  virtual void slot_onStateAboutToBeRemoved(DtSimObjectReference);
158  virtual void slot_objectAdded(DtSimObjectReference);
159 
160  virtual void slot_infoDialogDestroyed(DtInformationDialogHandler* dlg, const makVrv::DtUniqueID&, bool keepSettingsData = false);
161 
162  virtual void slot_guiInstalled(bool lockStage);
163 
164  virtual void scenarioEventConcluded(DtSimObjectReference);
165  virtual void multiSelectionDialogDestroyed(DtInformationDialogHandler*);
166  virtual void initializeConnections();
167 
168  virtual bool keepInformationDialogUpOnRewind(const std::string& content) const;
169 
170  virtual bool isExternalState(makVrv::DtUniqueID) const;
171 
172  protected:
173  typedef std::map<makVrv::DtElementEntry::ObjectType, std::string> DtDialogTypeCreatorList;
174 
178 
181 
182  std::map<makVrv::DtUniqueID, DtInformationDialogHandler*> myDialogs;
185 
186  typedef std::set<DtInformationSectionedDialog*> MultipleSelectionDialogs;
190  std::map<makVrv::DtUniqueID, std::string> myWaitingForSimEntries;
191  boost::signals2::scoped_connection mySimEntryAddedConnection;
192  };
193  }
194 }
DtInformationPageAssembler myPageAssembler
Definition: informationDialogManager.h:184
boost::signals2::signal< void()> signal_informationDialogSetupComplete
Signal sent when setup is complete. After this signal is sent you can install your overrides for the ...
Definition: informationDialogManager.h:152
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
boost::signals2::signal< void(DtInformationDialogHandler *, const DtEntityType &)> signal_dialogAboutToBeCreated
Sent before any dialog initialization.
Definition: informationDialogManager.h:113
PageCollectionLocation
Definition: DtPageConfiguration.h:42
int myMaximumSectionsPerDialog
Definition: informationDialogManager.h:189
Definition: DtPageConfiguration.h:53
MultipleSelectionDialogs myMultipleSelectionDialogs
Definition: informationDialogManager.h:187
Contains makVrv:DtSelectionManager class.
This is the Qt specific implementation of the page assembler. Actual page creators must be registered...
Definition: informationPageAssembler.h:33
DtOrderedEntityTypeList< std::string * > mySelectedObjectInformationCreatorsByEntityType
Definition: informationDialogManager.h:180
std::map< makVrv::DtUniqueID, std::string > myWaitingForSimEntries
Definition: informationDialogManager.h:190
std::map< makVrv::DtElementEntry::ObjectType, std::string > DtDialogTypeCreatorList
Definition: informationDialogManager.h:173
std::set< DtInformationSectionedDialog * > MultipleSelectionDialogs
Definition: informationDialogManager.h:186
unsigned int ObjectType
Definition: DtElementEntry.h:54
Contains makVrv::DtPageConfiguration class.
Contains makVrf::DtInformationPagePath class.
Contains makVrv::DtVirtualBaseClass class.
boost::signals2::scoped_connection mySimEntryAddedConnection
Definition: informationDialogManager.h:191
const makVrv::DtPageConfiguration::PageCollectionLocation DtInformationDialogWithoutObjectConsole
Definition: informationDialogManager.h:47
std::map< makVrv::DtUniqueID, DtInformationDialogHandler * > myDialogs
Definition: informationDialogManager.h:182
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtDialogTypeCreatorList myDialogCreators
Definition: informationDialogManager.h:176
const makVrv::DtPageConfiguration::PageCollectionLocation DtInformationDialogWithObjectConsole
Definition: informationDialogManager.h:45
!!!!!
Definition: informationDialogHandler.h:146
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Base class to provide boost signal/slot management.
#define DT_DLL_VRFGUIOBJECTINFORMATIONQT
Contains DLL export macros.
Definition: vrfGuiObjectInformationQt.h:24
makVrv::DtDe & myDe
Definition: informationDialogManager.h:175
Definition: informationDialogWidgetSection.h:50
Contains DtInformationPageConfiguration class.
int maximumSectionsPerDialog() const
Definition: informationDialogManager.h:146
Contains makVrv::DtUniqueID type.
makVrv::DtSignalConnectionManager myConnections
Definition: informationDialogManager.h:188
Contains makVrfGuiObjectInformationQt::DtInformationPageAssembler class.
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
DtInformationPageConfiguration myPageConfiguration
Definition: informationDialogManager.h:183
boost::signals2::signal< void(DtInformationDialogHandler *, const DtEntityType &)> signal_dialogCreated
Sent after dialog has been fully initialized.
Definition: informationDialogManager.h:116
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
DtDialogTypeCreatorList mySelectedObjectInformationCreators
Definition: informationDialogManager.h:177
A configuration of the pages in the gui.
Definition: informationPageConfiguration.h:23
DtOrderedEntityTypeList< std::string * > myDialogCreatorsByEntityType
Definition: informationDialogManager.h:179

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)