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 
37 
39  virtual void activate(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
40 
41  virtual QWidget* widgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* 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 slot_onStateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
55  virtual void setupInteractions(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
56  virtual void parameterDataUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
57  virtual bool isMe(const DtUUID& influencer) const;
58  virtual void slot_onStateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>& state);
59  virtual void nameChanged(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
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 
95 
96  public:
102 
103  protected:
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 
135 
136  static std::string creatorName();
137  virtual bool shouldBeHidden() const;
138 
139  virtual bool needsPageLogicForWidgetRepresentation() const;
140 
141  virtual QWidget* widgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
142 
143  virtual void setLogic(DtInformationDialogPageLogic* l);
144 
145  protected:
146  virtual QVariant value(int col, int role, const QTreeWidgetItem*,
148  virtual bool eventFilter(QObject*, QEvent*);
149  virtual bool valueNeedsUpdate(int col, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
150 
151  protected:
154  };
156  }
157 }
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:152
Definition: networkMessageInterface.h:28
int defenses() const
Definition: aggregateEngagementsPageLogic.h:48
std::set< QString > myTypes
Definition: aggregateEngagementsPageLogic.h:108
int myEngagements
Definition: aggregateEngagementsPageLogic.h:104
AttackExpirations myAttackExpirations
Definition: aggregateEngagementsPageLogic.h:93
Contains makVrv::DtAggregateInformationPageLogic class.
makVrv::DtSignalConnectionManager myConnectionManager
Definition: aggregateEngagementsPageLogic.h:106
DtShadedWidget * myDefendingCanvas
Definition: aggregateEngagementsPageLogic.h:100
DtItemUpdateFunctionCreator< DtAggregateEngagementsPageItem > DtAggregateEngagementsPageItemCreator
Definition: aggregateEngagementsPageLogic.h:155
DtAggregateEngagementsPageLogic * myAggLogic
Definition: aggregateEngagementsPageLogic.h:153
bool operator<(const AttackIdentifier &rhs) const
Definition: aggregateEngagementsPageLogic.h:84
Definition: informationDialogPage.h:204
bool myNeedsAttritionUpdate
Definition: aggregateEngagementsPageLogic.h:94
QLabel * myAttacking
Definition: aggregateEngagementsPageLogic.h:99
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:98
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:101
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:72
EngagementsMap myEngagementsMap
Definition: aggregateEngagementsPageLogic.h:111
QWidget * myWidgetRepresentation
Definition: aggregateEngagementsPageLogic.h:97
Items added DtAggregateInfoAggregateId DtAggregateInfoGlobalAggregateId DtAggregateInfoAggregateType ...
Definition: aggregateInformationPageLogic.h:39
Definition: informationDialogPage.h:69
int myDefenses
Definition: aggregateEngagementsPageLogic.h:105

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)