From 8f18fc87e3225e3560af89a91fbe77c65c02e375 Mon Sep 17 00:00:00 2001 From: Tobias Dahl Date: Thu, 13 Mar 2014 20:59:25 +0100 Subject: [PATCH] [WIP] Frames --- Escape-the-Dawn/Frame.cpp | 91 ++++++++++++++++++++++++++++------ Escape-the-Dawn/Frame.h | 23 +++++---- Escape-the-Dawn/GUIManager.cpp | 4 +- Escape-the-Dawn/GUIManager.h | 5 +- Escape-the-Dawn/Rectangle.h | 8 +++ 5 files changed, 103 insertions(+), 28 deletions(-) diff --git a/Escape-the-Dawn/Frame.cpp b/Escape-the-Dawn/Frame.cpp index bf996ed..1c3c753 100644 --- a/Escape-the-Dawn/Frame.cpp +++ b/Escape-the-Dawn/Frame.cpp @@ -3,51 +3,74 @@ GUI::Frame::Frame() { rectangle = new Rectangle(); + texture = nullptr; } int GUI::Frame::GetWidth() { - return rectangle; + return rectangle->Width(); } int GUI::Frame::GetHeight() { - return rectangle.Height(); + return rectangle->Height(); } int GUI::Frame::GetX() { - return rectangle; + return rectangle->X(); } int GUI::Frame::GetY() { - return rectangle.Y(); + return rectangle->Y(); } -void GUI::Frame::SetWidth(int wid) +int GUI::Frame::GetRight() { - rectangle.width(wid); + return rectangle->Right(); } -void GUI::Frame::SetHeight(int hei) +int GUI::Frame::GetLeft() { - rectangle.height(hei); + return rectangle->Left(); } -void GUI::Frame::SetX(int xcord) +int GUI::Frame::GetBottom() { - rectangle.X(xcord) + return rectangle->Bottom(); } -void GUI::Frame::SetY(int ycord) +int GUI::Frame::GetTop() { - rectangle.Y(ycord) + return rectangle->Right(); } +void GUI::Frame::SetWidth(int _width) +{ + rectangle->Width(_width); +} + +void GUI::Frame::SetHeight(int _height) +{ + rectangle->Height(_height); +} + +void GUI::Frame::SetX(int _x) +{ + rectangle->X(_x); +} + +void GUI::Frame::SetY(int _y) +{ + rectangle->Y(_y); +} + + + Rectangle GUI::Frame::AbsouluteRectangle() { - + } bool GUI::Frame::Visible() @@ -85,8 +108,48 @@ void GUI::Frame::Update(double dt) } +void AddChild(GUI::Frame childFrame) +{ + childFrame.Parent = this; + if (!Children.Contains(childFrame)) + Children.Add(childFrame); +} + +/// +/// Remove a child frame from the frame. +/// +/// The child frame to remove. +void RemoveChild(GUI::Frame childFrame) +{ + if (Children.Contains(childFrame)) + Children.Remove(childFrame); +} + +/// +/// Destroys the frame and all its children. +/// +void Destroy() +{ + if (Parent != null) + Parent.RemoveChild(this); + + Manager.Remove(this); +} + +void GUI::Frame::SetTexture(std::string fileName) +{ + //texture == någonTextureIDunno; +} + void GUI::Frame::Draw() { - + if (Visible) + { + if (texture != nullptr) + { + //Drawshit + } + } } + */ \ No newline at end of file diff --git a/Escape-the-Dawn/Frame.h b/Escape-the-Dawn/Frame.h index 2e9a3f4..69dd6d7 100644 --- a/Escape-the-Dawn/Frame.h +++ b/Escape-the-Dawn/Frame.h @@ -1,4 +1,4 @@ -/*#ifndef Frame_h__ +#ifndef Frame_h__ #define Frame_h__ #include @@ -7,7 +7,7 @@ #include "GUIManager.h" #include "Texture.h" #include "Color.h" -//#include "Camera.h" +#include "Camera.h" namespace GUI { @@ -22,14 +22,19 @@ public: int GetHeight(); int GetX(); int GetY(); - void SetWidth(int wid); - void SetHeight(int hei); - void SetX( int xcord); - void SetY(int ycord); + int GetRight(); + int GetLeft(); + int GetBottom(); + int GetTop(); + void SetWidth(int _width); + void SetHeight(int _height); + void SetX( int _x); + void SetY(int _y); + void SetTexture(std::string fileName); Rectangle *rectangle; Rectangle AbsouluteRectangle(); - Texture texture; - Color color; + Texture* texture; + Color* color; bool _Visible; bool Visible(); int layer; @@ -48,4 +53,4 @@ protected: }; } -#endif*/ \ No newline at end of file +#endif \ No newline at end of file diff --git a/Escape-the-Dawn/GUIManager.cpp b/Escape-the-Dawn/GUIManager.cpp index 40b50d3..4956638 100644 --- a/Escape-the-Dawn/GUIManager.cpp +++ b/Escape-the-Dawn/GUIManager.cpp @@ -2,7 +2,7 @@ int GUI::GUIManager::Add(Frame frame) { - //Frame.Add(frame); - //return CreateUID(); + Frame.Add(frame); + return CreateUID(); } */ \ No newline at end of file diff --git a/Escape-the-Dawn/GUIManager.h b/Escape-the-Dawn/GUIManager.h index 7b8434a..57b66a7 100644 --- a/Escape-the-Dawn/GUIManager.h +++ b/Escape-the-Dawn/GUIManager.h @@ -1,4 +1,4 @@ -/*#ifndef GUIManager_h__ +#ifndef GUIManager_h__ #define GUIManager_h__ #include "Frame.h" @@ -18,9 +18,8 @@ private: static int uidIndex; }; - } -#endif */ \ No newline at end of file +#endif \ No newline at end of file diff --git a/Escape-the-Dawn/Rectangle.h b/Escape-the-Dawn/Rectangle.h index 2f6d0cd..d866955 100644 --- a/Escape-the-Dawn/Rectangle.h +++ b/Escape-the-Dawn/Rectangle.h @@ -22,6 +22,14 @@ public: int Y() const { return y; } void Y(int val) { y = val; } + + int Left() const { return x; } + + int Right() const { return x+width; } + + int Top() const { return y; } + + int Bottom() const { return y+height; } }; Rectangle::Rectangle()