Merge branch 'master' into gui

Conflicts:
	src/GUI/Frame.h
	src/InputManager.cpp
This commit is contained in:
2014-05-15 21:16:43 +02:00
84 changed files with 3645 additions and 1121 deletions
+75 -76
View File
@@ -1,76 +1,75 @@
#ifndef GUI_Frame_h__
#define GUI_Frame_h__
#include <memory>
#include "Util/Rectangle.h"
#include "EventBroker.h"
// HACK: Decouple renderer plz
#include "Renderer.h"
namespace GUI
{
class Frame : public Rectangle
{
public:
enum class Anchor
{
Left,
Right,
Top,
Bottom
};
// Set up a base frame with an event broker
Frame(std::shared_ptr<::EventBroker> eventBroker)
: EventBroker(eventBroker)
, Rectangle()
{ Initialize(); }
// Create a frame as a child
Frame(std::shared_ptr<Frame> parent)
: Rectangle(static_cast<Rectangle>(*parent)) // Clone parent rectangle using copy constructor
{ SetParent(parent); Initialize(); }
virtual void Initialize() { }
std::shared_ptr<Frame> Parent() const { return m_Parent; }
void SetParent(std::shared_ptr<Frame> parent)
{
parent->AddChild(std::shared_ptr<Frame>(this));
m_Parent = parent;
EventBroker = parent->EventBroker;
}
void AddChild(std::shared_ptr<Frame> child)
{
m_Children.push_back(child);
if (m_Parent != nullptr)
{
m_Parent->AddChild(child);
}
}
typedef std::list<std::shared_ptr<Frame>>::const_iterator FrameChildrenIterator;
FrameChildrenIterator begin()
{
return m_Children.begin();
}
FrameChildrenIterator end()
{
return m_Children.end();
}
virtual void Update(double dt) { }
virtual void Draw(Renderer* renderer) { }
protected:
std::shared_ptr<::EventBroker> EventBroker;
std::shared_ptr<Frame> m_Parent;
std::list<std::shared_ptr<Frame>> m_Children;
};
}
#endif // GUI_Frame_h__
//#ifndef GUI_Frame_h__
//#define GUI_Frame_h__
//
//#include <memory>
//
//#include "Util/Rectangle.h"
//#include "EventBroker.h"
//
//// HACK: Decouple renderer plz
//#include "Renderer.h"
//
//namespace GUI
//{
//
//class Frame : public Rectangle
//{
//public:
// enum class Anchor
// {
// Left,
// Right,
// Top,
// Bottom
// };
//
// // Set up a base frame with an event broker
// Frame(std::shared_ptr<::EventBroker> eventBroker)
// : EventBroker(eventBroker)
// , Rectangle()
// { Initialize(); }
// // Create a frame as a child
// Frame(std::shared_ptr<Frame> parent)
// : Rectangle(static_cast<Rectangle>(*parent)) // Clone parent rectangle using copy constructor
// { SetParent(parent); Initialize(); }
//
// virtual void Initialize() { }
// std::shared_ptr<Frame> Parent() const { return m_Parent; }
// void SetParent(std::shared_ptr<Frame> parent)
// {
// parent->AddChild(std::shared_ptr<Frame>(this));
// m_Parent = parent;
// EventBroker = parent->EventBroker;
// }
//
// void AddChild(std::shared_ptr<Frame> child)
// {
// m_Children.push_back(child);
// if (m_Parent != nullptr)
// {
// m_Parent->AddChild(child);
// }
// }
//
// typedef std::list<std::shared_ptr<Frame>>::const_iterator FrameChildrenIterator;
// FrameChildrenIterator begin()
// {
// return m_Children.begin();
// }
// FrameChildrenIterator end()
// {
// return m_Children.end();
// }
//
// virtual void Update(double dt) { }
// virtual void Draw(Renderer* renderer) { }
//
//protected:
// std::shared_ptr<::EventBroker> EventBroker;
// std::shared_ptr<Frame> m_Parent;
// std::list<std::shared_ptr<Frame>> m_Children;
//};
//
//}
//
//#endif // GUI_Frame_h__