Incremental Engine  1.0.6
A 2D Game Engine to create Idle Games
IncrementalEngine::MultiPanel Class Reference

#include <MultiPanel.h>

Inheritance diagram for IncrementalEngine::MultiPanel:
IncrementalEngine::Actor IncrementalEngine::Transformable IncrementalEngine::Drawable

Classes

struct  PanelButtonPair
 

Public Member Functions

 MultiPanel ()
 
virtual ~MultiPanel () override
 
virtual void Update (float dt) override
 
void AddPair (Panel *panel, Button *button, Texture *buttonSelectedTexture=nullptr, Texture *buttonUnselectedTexture=nullptr)
 
- Public Member Functions inherited from IncrementalEngine::Actor
virtual ~Actor ()
 
virtual void Init ()
 
virtual HRESULT Draw (ID3D11DeviceContext *deviceContext) override
 
void UpdateRecursive (float dt)
 
HRESULT DrawRecursive (ID3D11DeviceContext *deviceContext)
 
virtual FloatRect GetLocalBounds ()
 
FloatRect GetGlobalBounds ()
 
void Center ()
 
const Transform GetWorldTransform ()
 
const D3DXVECTOR2 GetWorldPosition ()
 
const D3DXVECTOR2 GetWorldScale ()
 
const float GetWorldRotation ()
 
void SetWorldPosition (D3DXVECTOR2 value)
 
virtual void SetPosition (float x, float y) override
 
virtual void SetPosition (const D3DXVECTOR2 &position) override
 
virtual const D3DXVECTOR2 & GetPosition () const override
 
ActorGetParent () const
 
virtual void SetParent (Actor *value, const bool fixWorldPosition=true)
 
void SetActive (bool active)
 
bool IsActive ()
 
- Public Member Functions inherited from IncrementalEngine::Transformable
 Transformable ()
 
virtual void SetScale (float factorX, float factorY)
 
virtual void SetScale (const D3DXVECTOR2 &factors)
 
virtual void SetOrigin (float x, float y)
 
virtual void SetOrigin (const D3DXVECTOR2 &origin)
 
virtual void SetRotation (float angle)
 
virtual float GetRotation () const
 
virtual const D3DXVECTOR2 & GetScale () const
 
virtual const D3DXVECTOR2 & GetOrigin () const
 
void Move (float offsetX, float offsetY)
 
void Move (const D3DXVECTOR2 &offset)
 
void Rotate (float angle)
 
void Scale (float factorX, float factorY)
 
void Scale (const D3DXVECTOR2 &factor)
 
const TransformGetTransform () const
 
const TransformGetInverseTransform () const
 

Private Attributes

vector< PanelButtonPair_panelButtonPairs
 
int _selectedPanel
 

Additional Inherited Members

- Protected Member Functions inherited from IncrementalEngine::Drawable
void CopyParameters (Drawable *drawable)
 
- Protected Attributes inherited from IncrementalEngine::Transformable
bool _transformNeedUpdate
 
- Protected Attributes inherited from IncrementalEngine::Drawable
RenderWindow_renderWindow
 
ShaderManager_shaderManager
 
ID3D11Device * _device
 

Detailed Description

Definition at line 9 of file MultiPanel.h.

Constructor & Destructor Documentation

◆ MultiPanel()

IncrementalEngine::MultiPanel::MultiPanel ( )

Definition at line 5 of file MultiPanel.cpp.

6  {
7  _panelButtonPairs = vector<PanelButtonPair>();
8  }

◆ ~MultiPanel()

IncrementalEngine::MultiPanel::~MultiPanel ( )
overridevirtual

Definition at line 10 of file MultiPanel.cpp.

11  {
12  _panelButtonPairs.clear();
13  }

Member Function Documentation

◆ AddPair()

void IncrementalEngine::MultiPanel::AddPair ( Panel panel,
Button button,
Texture buttonSelectedTexture = nullptr,
Texture buttonUnselectedTexture = nullptr 
)

Definition at line 48 of file MultiPanel.cpp.

54  {
55  bool firstPair = _panelButtonPairs.size() == 0;
56  panel->SetActive(firstPair);
57 
58  if (buttonSelectedTexture != nullptr && buttonUnselectedTexture != nullptr)
59  {
60  button->SetTexture(firstPair ? buttonSelectedTexture : buttonUnselectedTexture);
61  }
62 
63  _panelButtonPairs.push_back({
64  panel,
65  button,
66  buttonSelectedTexture,
67  buttonUnselectedTexture
68  });
69  }

◆ Update()

void IncrementalEngine::MultiPanel::Update ( float  dt)
overridevirtual

Reimplemented from IncrementalEngine::Actor.

Definition at line 15 of file MultiPanel.cpp.

16  {
17  auto newSelectedPanel = -1;
18  for (int i = 0; i < _panelButtonPairs.size(); i++)
19  {
20  if (_panelButtonPairs[i].Button->Pressed())
21  {
22  newSelectedPanel = i;
23  break;
24  }
25  }
26 
27  if (newSelectedPanel != -1 && newSelectedPanel != _selectedPanel)
28  {
29  for (int i = 0; i < _panelButtonPairs.size(); i++)
30  {
31  bool isSelected = i == newSelectedPanel;
32  _panelButtonPairs[i].Panel->SetActive(isSelected);
33 
34  if (_panelButtonPairs[i].ButtonSelectedTexture != nullptr &&
35  _panelButtonPairs[i].ButtonUnselectedTexture != nullptr)
36  {
37  _panelButtonPairs[i].Button->SetTexture(isSelected ?
38  _panelButtonPairs[i].ButtonSelectedTexture :
39  _panelButtonPairs[i].ButtonUnselectedTexture
40  );
41  }
42  }
43 
44  _selectedPanel = newSelectedPanel;
45  }
46  }

Member Data Documentation

◆ _panelButtonPairs

vector<PanelButtonPair> IncrementalEngine::MultiPanel::_panelButtonPairs
private

Definition at line 33 of file MultiPanel.h.

◆ _selectedPanel

int IncrementalEngine::MultiPanel::_selectedPanel
private

Definition at line 34 of file MultiPanel.h.

IncrementalEngine::MultiPanel::_panelButtonPairs
vector< PanelButtonPair > _panelButtonPairs
Definition: MultiPanel.h:33
IncrementalEngine::MultiPanel::_selectedPanel
int _selectedPanel
Definition: MultiPanel.h:34