VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
aggregateEngagementsPageLogic.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #pragma once
10 
11 #if !defined(Q_MOC_RUN)
17 #include <QStandardItemModel>
19 #endif
20 
21 class QWidget;
22 class QLabel;
23 
24 namespace makVrf
25 {
26  class DtNetworkMessageInterface;
27 
28  namespace makVrfGuiObjectInformationQt
29  {
30 
32  {
33  public:
35 
36  virtual ~DtAggregateEngagementsPageLogic() override;
37 
39  virtual void activate(DtSimObjectReference state) override;
40 
41  virtual QWidget* widgetRepresentation(QWidget* parent, DtSimObjectReference state);
42 
43  int engagements() const
44  {
45  return myEngagements;
46  }
47 
48  int defenses() const
49  {
50  return myDefenses;
51  }
52 
53  protected:
54  virtual void stateViewUpdated() override;
55  virtual void setupInteractions(DtSimObjectReference state);
56  virtual void parameterDataUpdated(DtSimObjectReference state) override;
57  virtual bool isMe(const DtUUID& influencer) const;
58  virtual void nameChanged(DtSimObjectReference);
59  virtual void slot_stateRemoved(DtSimObjectReference state);
60 
61  virtual void clear(QStandardItemModel*);
62  virtual QList<QStandardItem*> findMatchingItems(QStandardItemModel*, const DtUUID&, int column) const;
63  virtual void renameMatchingItems(QStandardItemModel*, const DtUUID&, int column) const;
64 
66  virtual void processInfluenceMessageCallback(DtNetworkMessageInterface* i);
67 
69  virtual void updateEngagement(QStandardItemModel* model,
70  const DtUUID& enemy, const DtUUID& attacker, const QString& type, int strength, bool isAttack);
71 
73  virtual void removeEngagement(QStandardItemModel* model,
74  const DtUUID& enemy, const DtUUID& attacker, const QString& type, bool isAttack);
75 
76  protected:
77 
79  {
82  std::string attackType;
83 
84  bool operator<(const AttackIdentifier& rhs) const
85  {
86  return (attackerId < rhs.attackerId ||
87  (attackerId == rhs.attackerId && targetId < rhs.targetId) ||
88  (attackerId == rhs.attackerId && targetId == rhs.targetId && attackType < rhs.attackType));
89  }
90  };
91  typedef std::map<AttackIdentifier, double> AttackExpirations;
92 
94 
95  public:
101 
102  protected:
105  bool myNeedsSetup = true;
107 
108  std::set<QString> myTypes;
109 
110  typedef std::map<QString, bool> EngagementsMap;
112  };
113 
115  {
116  Q_OBJECT
117  public:
119  : DtInfoIconItem(de)
120  , myOwnsLogic(false)
121  , myAggLogic(0)
122  {
123  myFixedItemWidth = 20;
124  }
125 
127  : DtInfoIconItem(l)
128  , myOwnsLogic(false)
129  {
130  myAggLogic = dynamic_cast<DtAggregateEngagementsPageLogic*>(l);
131  myFixedItemWidth = 20;
132  }
133 
134  virtual ~DtAggregateEngagementsPageItem() override;
135 
136  static std::string creatorName();
137  virtual bool shouldBeHidden(DtSimObjectReference) const override;
138 
139  virtual bool needsPageLogicForWidgetRepresentation() const override;
140 
141  virtual QWidget* widgetRepresentation(QWidget* parent, DtSimObjectReference) override;
142 
143  virtual void setLogic(DtInformationDialogPageLogic* l) override;
144 
145  protected:
146  virtual QVariant value(int col, int role, DtSimObjectReference) const override;
147  virtual bool eventFilter(QObject*, QEvent*) override;
148 
149  protected:
152  };
154  }
155 }
UUID is a unique ID wrapper class.
Definition: uuid.h:59
std::map< QString, bool > EngagementsMap
Definition: aggregateEngagementsPageLogic.h:110
std::string attackType
Definition: aggregateEngagementsPageLogic.h:82
bool myOwnsLogic
Definition: aggregateEngagementsPageLogic.h:150
Definition: networkMessageInterface.h:22
int defenses() const
Definition: aggregateEngagementsPageLogic.h:48
std::set< QString > myTypes
Definition: aggregateEngagementsPageLogic.h:108
int myEngagements
Definition: aggregateEngagementsPageLogic.h:103
AttackExpirations myAttackExpirations
Definition: aggregateEngagementsPageLogic.h:93
Contains makVrv::DtAggregateInformationPageLogic class.
makVrv::DtSignalConnectionManager myConnectionManager
Definition: aggregateEngagementsPageLogic.h:106
DtShadedWidget * myDefendingCanvas
Definition: aggregateEngagementsPageLogic.h:99
DtItemUpdateFunctionCreator< DtAggregateEngagementsPageItem > DtAggregateEngagementsPageItemCreator
Definition: aggregateEngagementsPageLogic.h:153
DtAggregateEngagementsPageLogic * myAggLogic
Definition: aggregateEngagementsPageLogic.h:151
bool operator<(const AttackIdentifier &rhs) const
Definition: aggregateEngagementsPageLogic.h:84
Definition: informationDialogPage.h:206
QLabel * myAttacking
Definition: aggregateEngagementsPageLogic.h:98
Definition: aggregateEngagementsPageLogic.h:31
Contains makVrv::DtAggregateInformationPageItems class.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtAggregateEngagementsPageItem(DtInformationDialogPageLogic *l)
Definition: aggregateEngagementsPageLogic.h:126
DtAggregateEngagementsPageItem(makVrv::DtDe &de)
Definition: aggregateEngagementsPageLogic.h:118
DtShadedWidget * myAttackingCanvas
Definition: aggregateEngagementsPageLogic.h:97
std::map< AttackIdentifier, double > AttackExpirations
Definition: aggregateEngagementsPageLogic.h:91
Base class to provide boost signal/slot management.
#define DT_DLL_VRFGUIOBJECTINFORMATIONQT
Contains DLL export macros.
Definition: vrfGuiObjectInformationQt.h:24
Definition: aggregateEngagementsPageLogic.h:114
int engagements() const
Definition: aggregateEngagementsPageLogic.h:43
QLabel * myDefending
Definition: aggregateEngagementsPageLogic.h:100
Definition: translator.h:58
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
EngagementsMap myEngagementsMap
Definition: aggregateEngagementsPageLogic.h:111
QWidget * myWidgetRepresentation
Definition: aggregateEngagementsPageLogic.h:96
Items added DtAggregateInfoAggregateId DtAggregateInfoGlobalAggregateId DtAggregateInfoAggregateType ...
Definition: aggregateInformationPageLogic.h:39
Definition: informationDialogPage.h:70
int myDefenses
Definition: aggregateEngagementsPageLogic.h:104

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)