![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2012 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00009 00010 #pragma once 00011 00012 #include <vrvUtil/signalslib.h> 00013 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00014 #include <vrfGuiCoreQt/indirectArtilleryPropertiesWidget.hpp> 00015 #include <vrfmsgs/ifModifyIndirectArtilleryObject.h> 00016 00017 00019 #include <vrvUtil/DtUnitConverterCollection.h> 00020 #include <vrvUtil/DtSignalConnectionManager.h> 00021 #include <vrvUtil/DtUnicode.h> 00022 #include <vrvUtil/DtVirtualBaseClass.h> 00023 00024 #include <QTime> 00025 00026 class DtIfIndirectArtilleryData; 00027 class DtEntityType; 00028 class QString; 00029 class DtString; 00030 00031 00032 namespace makVrf 00033 { 00034 class DtIndirectFireSettingsDataLogic; 00035 00039 class DT_DLL_VRFGUICOREQT DtIndirectFireSettingsDataWidget : public QWidget 00040 { 00041 00042 Q_OBJECT 00043 00044 public: 00045 00047 DtIndirectFireSettingsDataWidget(makVrv::DtDe& de, QWidget* parent); 00048 00050 virtual ~DtIndirectFireSettingsDataWidget(); 00051 00052 virtual void setStartImmediate(bool); 00053 virtual bool startImmediate() const; 00054 00055 virtual void setStartAtTime(bool); 00056 virtual bool startAtTime() const; 00057 00058 virtual void setStartTimeEnabled(bool b); 00059 virtual void setStartTime(int days, const QTime&); 00060 virtual int startTime() const; 00061 00062 virtual void setTimeBetweenSalvosEnabled(bool); 00063 virtual void setTimeBetweenSalvos(const QTime&); 00064 virtual int timeBetweenSalvos() const; 00065 00066 virtual void setScatterTimeSpinBoxEnabled(bool); 00067 virtual void setScatterTime(int); 00068 virtual int scatterTime() const; 00069 00070 virtual void setNumberOfSalvos(int); 00071 virtual int numberOfSalvos() const; 00072 00073 virtual void setRoundsPerSalvo(int); 00074 virtual int roundsPerSalvo() const; 00075 00076 virtual void setMunitionType(const DtEntityType&); 00077 virtual DtEntityType munitionType() const; 00078 00079 virtual void setAltitudeAboveTerrainUnits(makVrv::DtUnicode); 00080 00081 virtual void setAltitudeAboveTerrain(double d); 00082 virtual double altitudeAboveTerrain() const; 00083 00084 virtual void addMunitionType(const QString& muni, const DtString& type); 00085 00087 virtual void setupGui(); 00088 00090 virtual DtIndirectFireSettingsDataLogic* logic(); 00091 00093 boost::signal<void ()> signal_indirectArtilleryDataChanged; 00094 00095 protected slots: 00097 virtual void onIndirectFireDataChanged(); 00098 00099 protected: 00100 00102 virtual void setupConnections(); 00103 00104 virtual DtIndirectFireSettingsDataLogic* createLogic(); 00105 00106 virtual int timeToSeconds(const QTime&) const; 00107 00108 public: 00109 Ui_DtIndirectArtilleryPropertiesWidgetUI myUiImpl; 00110 00111 protected: 00112 makVrv::DtDe& myDe; 00113 DtIndirectFireSettingsDataLogic* myLogic; 00114 }; 00115 00117 class DT_DLL_VRFGUICOREQT DtIndirectFireSettingsDataLogic 00118 { 00119 public: 00120 DtIndirectFireSettingsDataLogic(makVrv::DtDe&, DtIndirectFireSettingsDataWidget*); 00121 virtual ~DtIndirectFireSettingsDataLogic(); 00122 00124 virtual void setupGui(); 00125 00127 virtual void setupFromData(const DtIfIndirectArtilleryData&); 00128 00129 boost::signal<void (const DtIfIndirectArtilleryData&)> signal_indirectArtilleryDataChanged; 00130 00131 protected: 00132 00134 virtual void slot_onIndirctArtilleryDataChanged(); 00135 00137 virtual void createConnections(); 00138 00140 virtual void dayTimeFor(int& days, QTime& time, int seconds) const; 00141 virtual QTime timeFor(int seconds) const; 00142 00144 virtual void slot_displayUnitChanged(makVrv::DtUnitConverterCollection::DisplayUnitType type, int unit, int oldUnit); 00145 00148 virtual void slot_displayUnitDecimalsChanged( 00149 makVrv::DtUnitConverterCollection::DisplayUnitType, int, int); 00150 00151 protected: 00153 virtual void indirectArtilleryChanged(const DtIfIndirectArtilleryData&); 00154 00156 virtual DtIfIndirectArtilleryData defaultData() const; 00157 00158 protected: 00159 DtIndirectFireSettingsDataWidget* myInterface; 00160 makVrv::DtDe& myDe; 00161 makVrv::DtSignalConnectionManager myConnections; 00162 DtIfIndirectArtilleryData myIndirectFireData; 00163 }; 00164 00166 class DT_DLL_VRFGUICOREQT DtIndirectFireSettingsDataWidgetCreator : public makVrv::DtVirtualBaseClass 00167 { 00168 public: 00169 DtIndirectFireSettingsDataWidgetCreator(); 00170 virtual ~DtIndirectFireSettingsDataWidgetCreator(); 00171 00173 static DtIndirectFireSettingsDataWidgetCreator& instance(makVrv::DtDe& de); 00174 00176 static void registerInstance(makVrv::DtDe&, DtIndirectFireSettingsDataWidgetCreator*); 00177 00178 virtual DtIndirectFireSettingsDataWidget* create(makVrv::DtDe& de, QWidget* parent); 00179 }; 00180 }