![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtIndirectFireDialog.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00011 00012 #pragma once 00013 00014 #include <vrvUtil/signalslib.h> 00015 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00016 #include <vrvUtil/DtVirtualBaseClass.h> 00017 #include <vrfGuiCoreQt/indirectArtilleryDialogWidget.hpp> 00018 #include <vrvCore/DtStateView.h> 00019 #include <vrvCore/DtSelectionManager.h> 00020 #include <vrvUtil/DtSignalConnectionManager.h> 00021 00022 #include <QDialog> 00023 00024 namespace makVrv 00025 { 00026 class DtDe; 00027 class DtSimObjectEntry; 00028 } 00029 00030 class QTreeWidgetItem; 00031 class DtIfIndirectArtilleryData; 00032 00033 namespace makVrf 00034 { 00035 struct DtVrlinkSimulatedEnvironmentProcess; 00036 00040 class DT_DLL_VRFGUICOREQT DtIndirectFireDialog : public QDialog 00041 { 00042 Q_OBJECT 00043 00044 public: 00045 //CTOR 00046 DtIndirectFireDialog(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0); 00047 00048 //DTOR 00049 virtual ~DtIndirectFireDialog(); 00050 00051 virtual void closeEvent(QCloseEvent*); 00052 00054 boost::signal<void ()> signal_closing; 00055 00056 protected: 00058 virtual void setupGui(); 00059 00061 virtual void initConnections(); 00062 00064 virtual void slot_indirectArtilleryUpdated(makVrv::DtElementID, const std::string& name, const DtIfIndirectArtilleryData&); 00065 00067 virtual void slot_indirectArtilleryRemoved(makVrv::DtElementID); 00068 00070 virtual void slot_overlayVisibilityChanged(const std::string& layer, bool); 00071 00073 virtual void slot_overlayAdded(const std::string&); 00074 00076 virtual void slot_overlayRemoved(const std::string&); 00077 00078 protected slots: 00080 virtual void itemClicked(QTreeWidgetItem*); 00081 00083 virtual void itemDoubleClicked(QTreeWidgetItem*); 00084 00086 virtual void createArea(); 00087 00089 virtual void deleteArea(); 00090 00092 virtual void editArea(); 00093 00095 virtual void updateButtons(QTreeWidgetItem*); 00096 00098 virtual makVrv::DtElementID idFromItem(QTreeWidgetItem*) const; 00099 00100 virtual void selectionChanged(const makVrv::DtSelectionManager::IdSet& selected, const makVrv::DtSelectionManager::IdSet& deselected); 00101 00103 virtual void onIndirectFireLayerVisibilityChanged(); 00104 00105 public: 00106 Ui_DtIndirectFireDialogUi myUiImpl; 00107 00108 protected: 00109 makVrv::DtDe& myDe; 00110 makVrv::DtSignalConnectionManager myConnectionManager; 00111 00112 typedef std::map<makVrv::DtElementID, QTreeWidgetItem*> IndirectItemsMap; 00113 IndirectItemsMap myIndirectFire; 00114 }; 00115 00116 class DT_DLL_VRFGUICOREQT DtIndirectFireDialogCreator : public makVrv::DtVirtualBaseClass 00117 { 00118 public: 00119 DtIndirectFireDialogCreator(); 00120 virtual ~DtIndirectFireDialogCreator(); 00121 00123 static DtIndirectFireDialogCreator& instance(makVrv::DtDe&); 00124 00126 static void registerInstance(makVrv::DtDe& de, DtIndirectFireDialogCreator* instance); 00127 00128 virtual DtIndirectFireDialog* create(makVrv::DtDe&, QWidget* parent); 00129 }; 00130 }