Danbias/Code/Misc/Utilities/EventHandler/EventButtonCollection.cpp

88 lines
1.7 KiB
C++
Raw Normal View History

2014-02-11 09:16:01 +01:00
//////////////////////////////////////
// Created by Pontus Fransson 2014 //
//////////////////////////////////////
2014-01-31 13:06:11 +01:00
#include "EventButtonCollection.h"
2014-02-12 09:08:38 +01:00
#include "EventHandler.h"
2014-02-11 09:16:01 +01:00
2014-01-31 13:06:11 +01:00
using namespace Oyster::Event;
EventButtonCollection::EventButtonCollection(EventCollectionState state)
: collectionState(state)
2014-01-31 13:06:11 +01:00
{
}
EventButtonCollection::~EventButtonCollection()
{
2014-02-14 09:44:21 +01:00
for(int i = 0; i < (int)EventHandler::Instance().collections.size(); i++)
2014-02-12 09:08:38 +01:00
{
if(EventHandler::Instance().collections.at(i) == this)
{
EventHandler::Instance().collections.erase(EventHandler::Instance().collections.begin() + i);
break;
2014-02-12 09:08:38 +01:00
}
}
2014-02-11 09:16:01 +01:00
int size = buttons.size();
for(int i = 0; i < size; i++)
{
delete buttons[i];
buttons[i] = NULL;
}
2014-01-31 13:06:11 +01:00
}
void EventButtonCollection::Update(MouseInput& input)
2014-01-31 13:06:11 +01:00
{
if(this->collectionState == EventCollectionState_Enabled)
2014-01-31 13:06:11 +01:00
{
2014-02-11 09:16:01 +01:00
for(int i = 0; i < (int)buttons.size(); i++)
{
buttons[i]->Update(input);
}
2014-01-31 13:06:11 +01:00
}
}
void EventButtonCollection::RenderTexture()
{
if(this->collectionState == EventCollectionState_Enabled)
{
for(int i = 0; i < (int)buttons.size(); i++)
{
buttons[i]->RenderTexture();
}
}
}
void EventButtonCollection::RenderText()
{
if(this->collectionState == EventCollectionState_Enabled)
{
for(int i = 0; i < (int)buttons.size(); i++)
{
buttons[i]->RenderText();
}
}
}
EventCollectionState EventButtonCollection::GetState() const
{
return collectionState;
}
void EventButtonCollection::SetState(const EventCollectionState state)
2014-01-31 13:06:11 +01:00
{
collectionState = state;
}
2014-01-31 13:06:11 +01:00
void EventButtonCollection::Clear()
{
int size = buttons.size();
for(int i = 0; i < size; i++)
{
delete buttons[i];
buttons[i] = NULL;
}
buttons.clear();
collectionState = EventCollectionState_Enabled;
2014-01-31 13:06:11 +01:00
}