VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
quickAddHitTableEntry.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
14 
15 #include <QtWidgets/QDialog>
16 
17 class QHBoxLayout;
18 class QVBoxLayout;
19 class QPushButton;
21 class QLabel;
22 class QGridLayout;
23 class QLineEdit;
24 class QRadioButton;
25 class QListWidget;
28 
29 namespace makVrf
30 {
31  class DtEnumerationSelectionWidget;
32 }
33 
35 {
36  Q_OBJECT
37 
38 public:
39  DtQuickAddHitTableEntry(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = Qt::Tool);
40  virtual ~DtQuickAddHitTableEntry();
41 
42  virtual void setHitTableOptional(bool);
43 
44  virtual void setHitTableEntryAllowed(bool);
45  virtual bool addToHitTable() const;
46 
47  virtual void setCreatableAmmunitionOnly(bool);
48  virtual void setSupportsController(const QString&);
49  const QString& supportsController() const
50  {
51  return mySupportsController;
52  }
53 
54  virtual void setSystem(DtComponentSystemDefinition*);
55  virtual bool hasAmmunition(const DtAmmunitionParamsEntry*) const;
56 
57  virtual DtObjectType targetType() const;
58 
59  bool onlyCreatableAmmunition() const
60  {
61  return myCreatableOnly;
62  }
63 
66  virtual DtString selectedAmmunition() const;
67 
69  virtual double maximumRange() const;
70 
72  virtual double hitChanceAtMaximumRange() const;
73 
74 protected:
75  void setupHitSection();
76  void setupAmmoSection();
77  void setupRangeSection();
78  void addFiredAmmunition();
79 
80  virtual void updateAmmunition();
81  virtual void addCreatableFromExisting();
82  virtual void addAmmunitionFromExisting();
83 
84 protected slots:
85  virtual void targetTypeChanged(const DtObjectType&);
86  virtual void selectSpecificType();
87  virtual void updateOKButton();
88  virtual void hitTableChoiceChanged();
89  virtual void acceptIfValid();
90  virtual void onAddNewFromExisting();
91 
92 public:
94  QVBoxLayout* myHitSectionLayout;
97 
98  QVBoxLayout* myRangeSectionLayout;
102 
103  QGridLayout* myRangeLayout;
106 
109 
110  QHBoxLayout* myButtonLayout;
111  QVBoxLayout* myMainLayout;
115 
116  QVBoxLayout* myAmmoSectionLayout;
118  QListWidget* myFiredAmmunition;
120 
121 protected:
127 };
128 
131 {
132 public:
135 
138 
140  static DtQuickAddHitTableEntryCreator& instance(makVrv::DtDe&);
141 
143  static void registerInstance(makVrv::DtDe&, DtQuickAddHitTableEntryCreator*);
144 
146  virtual DtQuickAddHitTableEntry* create(QWidget* parent);
147 
148 protected:
150 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)