style improvements in Window.cpp / Window.h

This commit is contained in:
jacob1 2015-07-09 22:59:01 -04:00
parent f65c4363b1
commit 67bcd5e863
2 changed files with 125 additions and 152 deletions

View File

@ -26,8 +26,8 @@ Window::Window(Point _position, Point _size):
Window::~Window() Window::~Window()
{ {
for(unsigned i = 0, sz = Components.size(); i < sz; ++i) for (unsigned i = 0, sz = Components.size(); i < sz; ++i)
if( Components[i] ) if (Components[i])
{ {
delete Components[i]; delete Components[i];
} }
@ -36,19 +36,18 @@ Window::~Window()
void Window::AddComponent(Component* c) void Window::AddComponent(Component* c)
{ {
// TODO: do a check if component was already added? if (c->GetParentWindow() == NULL)
if(c->GetParentWindow()==NULL)
{ {
c->SetParentWindow(this); c->SetParentWindow(this);
Components.push_back(c); Components.push_back(c);
if(Engine::Ref().GetMouseX() > Position.X + c->Position.X && Engine::Ref().GetMouseX() < Position.X + c->Position.X + c->Size.X && if (Engine::Ref().GetMouseX() > Position.X + c->Position.X && Engine::Ref().GetMouseX() < Position.X + c->Position.X + c->Size.X &&
Engine::Ref().GetMouseY() > Position.Y + c->Position.Y && Engine::Ref().GetMouseY() < Position.Y + c->Position.Y + c->Size.Y) Engine::Ref().GetMouseY() > Position.Y + c->Position.Y && Engine::Ref().GetMouseY() < Position.Y + c->Position.Y + c->Size.Y)
c->OnMouseEnter(Engine::Ref().GetMouseX() - (Position.X + c->Position.X), Engine::Ref().GetMouseY() - (Position.Y + c->Position.Y)); c->OnMouseEnter(Engine::Ref().GetMouseX() - (Position.X + c->Position.X), Engine::Ref().GetMouseY() - (Position.Y + c->Position.Y));
} }
else else
{ {
//Component already has a state, don't sad it //Component already in a window
} }
} }
@ -65,14 +64,14 @@ Component* Window::GetComponent(unsigned idx)
void Window::RemoveComponent(Component* c) void Window::RemoveComponent(Component* c)
{ {
// remove component WITHOUT freeing it. // remove component WITHOUT freeing it.
for(unsigned i = 0; i < Components.size(); ++i) for (unsigned i = 0; i < Components.size(); ++i)
{ {
// find the appropriate component index // find the appropriate component index
if(Components[i] == c) if (Components[i] == c)
{ {
//Make sure any events don't continue //Make sure any events don't continue
halt = true; halt = true;
if(Components[i]==focusedComponent_) if (Components[i] == focusedComponent_)
focusedComponent_ = NULL; focusedComponent_ = NULL;
if (Components[i] == hoverComponent) if (Components[i] == hoverComponent)
hoverComponent = NULL; hoverComponent = NULL;
@ -87,13 +86,13 @@ void Window::RemoveComponent(Component* c)
void Window::OnTryExit(ExitMethod method) void Window::OnTryExit(ExitMethod method)
{ {
if(cancelButton && method != MouseOutside) if (cancelButton && method != MouseOutside)
cancelButton->DoAction(); cancelButton->DoAction();
} }
void Window::OnTryOkay(OkayMethod method) void Window::OnTryOkay(OkayMethod method)
{ {
if(okayButton) if (okayButton)
okayButton->DoAction(); okayButton->DoAction();
} }
@ -101,7 +100,7 @@ void Window::RemoveComponent(unsigned idx)
{ {
halt = true; halt = true;
// free component and remove it. // free component and remove it.
if(Components[idx]==focusedComponent_) if (Components[idx] == focusedComponent_)
focusedComponent_ = NULL; focusedComponent_ = NULL;
if (Components[idx] == hoverComponent) if (Components[idx] == hoverComponent)
hoverComponent = NULL; hoverComponent = NULL;
@ -121,32 +120,27 @@ void Window::FocusComponent(Component* c)
void Window::DoExit() void Window::DoExit()
{ {
OnExit(); OnExit();
} }
void Window::DoInitialized() void Window::DoInitialized()
{ {
OnInitialized(); OnInitialized();
} }
void Window::DoBlur() void Window::DoBlur()
{ {
OnBlur(); OnBlur();
} }
void Window::DoFocus() void Window::DoFocus()
{ {
OnFocus(); OnFocus();
} }
void Window::DoDraw() void Window::DoDraw()
{ {
OnDraw(); OnDraw();
//draw
for (int i = 0, sz = Components.size(); i < sz; ++i) for (int i = 0, sz = Components.size(); i < sz; ++i)
if (Components[i]->Visible && ((Components[i] != focusedComponent_ && Components[i] != hoverComponent) || Components[i]->GetParent())) if (Components[i]->Visible && ((Components[i] != focusedComponent_ && Components[i] != hoverComponent) || Components[i]->GetParent()))
{ {
@ -157,19 +151,18 @@ void Window::DoDraw()
} }
else else
{ {
if( Components[i]->Position.X+Position.X + Components[i]->Size.X >= 0 && if (scrpos.X + Components[i]->Size.X >= 0 &&
Components[i]->Position.Y+Position.Y + Components[i]->Size.Y >= 0 && scrpos.Y + Components[i]->Size.Y >= 0 &&
Components[i]->Position.X+Position.X < ui::Engine::Ref().GetWidth() && scrpos.X < ui::Engine::Ref().GetWidth() &&
Components[i]->Position.Y+Position.Y < ui::Engine::Ref().GetHeight() ) scrpos.Y < ui::Engine::Ref().GetHeight())
{ {
Point scrpos(Components[i]->Position.X + Position.X, Components[i]->Position.Y + Position.Y); Components[i]->Draw(scrpos);
Components[i]->Draw( Point(scrpos) );
} }
} }
#ifdef DEBUG #ifdef DEBUG
if(debugMode) if (debugMode)
{ {
if(focusedComponent_==Components[i]) if (focusedComponent_==Components[i])
{ {
ui::Engine::Ref().g->fillrect(Components[i]->Position.X+Position.X, Components[i]->Position.Y+Position.Y, Components[i]->Size.X, Components[i]->Size.Y, 0, 255, 0, 90); ui::Engine::Ref().g->fillrect(Components[i]->Position.X+Position.X, Components[i]->Position.Y+Position.Y, Components[i]->Size.X, Components[i]->Size.Y, 0, 255, 0, 90);
} }
@ -206,9 +199,9 @@ void Window::DoDraw()
} }
} }
#ifdef DEBUG #ifdef DEBUG
if(debugMode) if (debugMode)
{ {
if(focusedComponent_) if (focusedComponent_)
{ {
int xPos = focusedComponent_->Position.X+focusedComponent_->Size.X+5+Position.X; int xPos = focusedComponent_->Position.X+focusedComponent_->Size.X+5+Position.X;
Graphics * g = ui::Engine::Ref().g; Graphics * g = ui::Engine::Ref().g;
@ -218,9 +211,9 @@ void Window::DoDraw()
sprintf(tempString, "Position: L %d, R %d, T: %d, B: %d", focusedComponent_->Position.X, Size.X-(focusedComponent_->Position.X+focusedComponent_->Size.X), focusedComponent_->Position.Y, Size.Y-(focusedComponent_->Position.Y+focusedComponent_->Size.Y)); sprintf(tempString, "Position: L %d, R %d, T: %d, B: %d", focusedComponent_->Position.X, Size.X-(focusedComponent_->Position.X+focusedComponent_->Size.X), focusedComponent_->Position.Y, Size.Y-(focusedComponent_->Position.Y+focusedComponent_->Size.Y));
sprintf(tempString2, "Size: %d, %d", focusedComponent_->Size.X, focusedComponent_->Size.Y); sprintf(tempString2, "Size: %d, %d", focusedComponent_->Size.X, focusedComponent_->Size.Y);
if(Graphics::textwidth(tempString)+xPos > WINDOWW) if (Graphics::textwidth(tempString)+xPos > WINDOWW)
xPos = WINDOWW-(Graphics::textwidth(tempString)+5); xPos = WINDOWW-(Graphics::textwidth(tempString)+5);
if(Graphics::textwidth(tempString2)+xPos > WINDOWW) if (Graphics::textwidth(tempString2)+xPos > WINDOWW)
xPos = WINDOWW-(Graphics::textwidth(tempString2)+5); xPos = WINDOWW-(Graphics::textwidth(tempString2)+5);
g->drawtext(xPos, focusedComponent_->Position.Y+Position.Y+1, tempString, 0, 0, 0, 200); g->drawtext(xPos, focusedComponent_->Position.Y+Position.Y+1, tempString, 0, 0, 0, 200);
@ -237,13 +230,13 @@ void Window::DoDraw()
void Window::DoTick(float dt) void Window::DoTick(float dt)
{ {
#ifdef DEBUG #ifdef DEBUG
if(debugMode) if (debugMode)
return; return;
#endif #endif
//on mouse hover //on mouse hover
for(int i = Components.size() - 1; i >= 0 && !halt; --i) for (int i = Components.size() - 1; i >= 0 && !halt; --i)
{ {
if(!Components[i]->Locked && if (!Components[i]->Locked &&
ui::Engine::Ref().GetMouseX() >= Components[i]->Position.X+Position.X && ui::Engine::Ref().GetMouseX() >= Components[i]->Position.X+Position.X &&
ui::Engine::Ref().GetMouseY() >= Components[i]->Position.Y+Position.Y && ui::Engine::Ref().GetMouseY() >= Components[i]->Position.Y+Position.Y &&
ui::Engine::Ref().GetMouseX() < Components[i]->Position.X+Position.X + Components[i]->Size.X && ui::Engine::Ref().GetMouseX() < Components[i]->Position.X+Position.X + Components[i]->Size.X &&
@ -255,7 +248,7 @@ void Window::DoTick(float dt)
} }
//tick //tick
for(int i = 0, sz = Components.size(); i < sz && !halt; ++i) for (int i = 0, sz = Components.size(); i < sz && !halt; ++i)
{ {
Components[i]->Tick(dt); Components[i]->Tick(dt);
} }
@ -265,50 +258,50 @@ void Window::DoTick(float dt)
OnTick(dt); OnTick(dt);
if(destruct) if (destruct)
finalise(); finalise();
} }
void Window::DoKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt) void Window::DoKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt)
{ {
#ifdef DEBUG #ifdef DEBUG
if(key == KEY_TAB && ctrl) if (key == KEY_TAB && ctrl)
debugMode = !debugMode; debugMode = !debugMode;
if(debugMode) if (debugMode)
{ {
if(focusedComponent_!=NULL) if (focusedComponent_!=NULL)
{ {
if(shift) if (shift)
{ {
if(key == KEY_UP) if (key == KEY_UP)
focusedComponent_->Size.Y--; focusedComponent_->Size.Y--;
if(key == KEY_DOWN) if (key == KEY_DOWN)
focusedComponent_->Size.Y++; focusedComponent_->Size.Y++;
if(key == KEY_LEFT) if (key == KEY_LEFT)
focusedComponent_->Size.X--; focusedComponent_->Size.X--;
if(key == KEY_RIGHT) if (key == KEY_RIGHT)
focusedComponent_->Size.X++; focusedComponent_->Size.X++;
} }
if(ctrl) if (ctrl)
{ {
if(key == KEY_UP) if (key == KEY_UP)
focusedComponent_->Size.Y++; focusedComponent_->Size.Y++;
if(key == KEY_DOWN) if (key == KEY_DOWN)
focusedComponent_->Size.Y--; focusedComponent_->Size.Y--;
if(key == KEY_LEFT) if (key == KEY_LEFT)
focusedComponent_->Size.X++; focusedComponent_->Size.X++;
if(key == KEY_RIGHT) if (key == KEY_RIGHT)
focusedComponent_->Size.X--; focusedComponent_->Size.X--;
} }
if(!shift) if (!shift)
{ {
if(key == KEY_UP) if (key == KEY_UP)
focusedComponent_->Position.Y--; focusedComponent_->Position.Y--;
if(key == KEY_DOWN) if (key == KEY_DOWN)
focusedComponent_->Position.Y++; focusedComponent_->Position.Y++;
if(key == KEY_LEFT) if (key == KEY_LEFT)
focusedComponent_->Position.X--; focusedComponent_->Position.X--;
if(key == KEY_RIGHT) if (key == KEY_RIGHT)
focusedComponent_->Position.X++; focusedComponent_->Position.X++;
} }
if (key == KEY_DELETE) if (key == KEY_DELETE)
@ -319,37 +312,37 @@ void Window::DoKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool a
} }
else else
{ {
if(shift) if (shift)
{ {
if(key == KEY_UP) if (key == KEY_UP)
Size.Y--; Size.Y--;
if(key == KEY_DOWN) if (key == KEY_DOWN)
Size.Y++; Size.Y++;
if(key == KEY_LEFT) if (key == KEY_LEFT)
Size.X--; Size.X--;
if(key == KEY_RIGHT) if (key == KEY_RIGHT)
Size.X++; Size.X++;
} }
if(ctrl) if (ctrl)
{ {
if(key == KEY_UP) if (key == KEY_UP)
Size.Y++; Size.Y++;
if(key == KEY_DOWN) if (key == KEY_DOWN)
Size.Y--; Size.Y--;
if(key == KEY_LEFT) if (key == KEY_LEFT)
Size.X++; Size.X++;
if(key == KEY_RIGHT) if (key == KEY_RIGHT)
Size.X--; Size.X--;
} }
if(!shift) if (!shift)
{ {
if(key == KEY_UP) if (key == KEY_UP)
Position.Y--; Position.Y--;
if(key == KEY_DOWN) if (key == KEY_DOWN)
Position.Y++; Position.Y++;
if(key == KEY_LEFT) if( key == KEY_LEFT)
Position.X--; Position.X--;
if(key == KEY_RIGHT) if (key == KEY_RIGHT)
Position.X++; Position.X++;
} }
} }
@ -357,22 +350,22 @@ void Window::DoKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool a
} }
#endif #endif
//on key press //on key press
if(focusedComponent_ != NULL) if (focusedComponent_ != NULL)
{ {
if(!focusedComponent_->Locked && focusedComponent_->Visible) if (!focusedComponent_->Locked && focusedComponent_->Visible)
focusedComponent_->OnKeyPress(key, character, shift, ctrl, alt); focusedComponent_->OnKeyPress(key, character, shift, ctrl, alt);
} }
if(!stop) if (!stop)
OnKeyPress(key, character, shift, ctrl, alt); OnKeyPress(key, character, shift, ctrl, alt);
if(key == KEY_ESCAPE) if (key == KEY_ESCAPE)
OnTryExit(Escape); OnTryExit(Escape);
if(key == KEY_ENTER || key == KEY_RETURN) if (key == KEY_ENTER || key == KEY_RETURN)
OnTryOkay(Enter); OnTryOkay(Enter);
if(destruct) if (destruct)
finalise(); finalise();
} }
@ -383,15 +376,15 @@ void Window::DoKeyRelease(int key, Uint16 character, bool shift, bool ctrl, bool
return; return;
#endif #endif
//on key unpress //on key unpress
if(focusedComponent_ != NULL) if (focusedComponent_ != NULL)
{ {
if(!focusedComponent_->Locked && focusedComponent_->Visible) if (!focusedComponent_->Locked && focusedComponent_->Visible)
focusedComponent_->OnKeyRelease(key, character, shift, ctrl, alt); focusedComponent_->OnKeyRelease(key, character, shift, ctrl, alt);
} }
if(!stop) if (!stop)
OnKeyRelease(key, character, shift, ctrl, alt); OnKeyRelease(key, character, shift, ctrl, alt);
if(destruct) if (destruct)
finalise(); finalise();
} }
@ -401,15 +394,15 @@ void Window::DoMouseDown(int x_, int y_, unsigned button)
int x = x_ - Position.X; int x = x_ - Position.X;
int y = y_ - Position.Y; int y = y_ - Position.Y;
bool clickState = false; bool clickState = false;
for(int i = Components.size() - 1; i > -1 && !halt; --i) for (int i = Components.size() - 1; i > -1 && !halt; --i)
{ {
if(!Components[i]->Locked && Components[i]->Visible) if (!Components[i]->Locked && Components[i]->Visible)
{ {
if(x >= Components[i]->Position.X && y >= Components[i]->Position.Y && x < Components[i]->Position.X + Components[i]->Size.X && y < Components[i]->Position.Y + Components[i]->Size.Y) if (x >= Components[i]->Position.X && y >= Components[i]->Position.Y && x < Components[i]->Position.X + Components[i]->Size.X && y < Components[i]->Position.Y + Components[i]->Size.Y)
{ {
FocusComponent(Components[i]); FocusComponent(Components[i]);
#ifdef DEBUG #ifdef DEBUG
if(!debugMode) if (!debugMode)
#endif #endif
Components[i]->OnMouseClick(x - Components[i]->Position.X, y - Components[i]->Position.Y, button); Components[i]->OnMouseClick(x - Components[i]->Position.X, y - Components[i]->Position.Y, button);
clickState = true; clickState = true;
@ -418,28 +411,28 @@ void Window::DoMouseDown(int x_, int y_, unsigned button)
} }
} }
if(!clickState) if (!clickState)
FocusComponent(NULL); FocusComponent(NULL);
#ifdef DEBUG #ifdef DEBUG
if(debugMode) if (debugMode)
return; return;
#endif #endif
//on mouse down //on mouse down
for(int i = Components.size() - 1; i > -1 && !halt; --i) for (int i = Components.size() - 1; i > -1 && !halt; --i)
{ {
if(!Components[i]->Locked && Components[i]->Visible) if (!Components[i]->Locked && Components[i]->Visible)
Components[i]->OnMouseDown(x, y, button); Components[i]->OnMouseDown(x, y, button);
} }
if(!stop) if (!stop)
OnMouseDown(x_, y_, button); OnMouseDown(x_, y_, button);
if(!clickState && (x_ < Position.X || y_ < Position.Y || x_ > Position.X+Size.X || y_ > Position.Y+Size.Y)) if (!clickState && (x_ < Position.X || y_ < Position.Y || x_ > Position.X+Size.X || y_ > Position.Y+Size.Y))
OnTryExit(MouseOutside); OnTryExit(MouseOutside);
if(destruct) if (destruct)
finalise(); finalise();
} }
@ -449,40 +442,39 @@ void Window::DoMouseMove(int x_, int y_, int dx, int dy)
int x = x_ - Position.X; int x = x_ - Position.X;
int y = y_ - Position.Y; int y = y_ - Position.Y;
#ifdef DEBUG #ifdef DEBUG
if(debugMode) if (debugMode)
return; return;
#endif #endif
for(int i = Components.size() - 1; i > -1 && !halt; --i) for (int i = Components.size() - 1; i > -1 && !halt; --i)
{ {
if(!Components[i]->Locked && Components[i]->Visible) if (!Components[i]->Locked && Components[i]->Visible)
{ {
Point local (x - Components[i]->Position.X, y - Components[i]->Position.Y) Point local(x - Components[i]->Position.X, y - Components[i]->Position.Y);
, a (local.X - dx, local.Y - dy); Point a(local.X - dx, local.Y - dy);
Components[i]->OnMouseMoved(local.X, local.Y, dx, dy); Components[i]->OnMouseMoved(local.X, local.Y, dx, dy);
if(local.X >= 0 && if (local.X >= 0 &&
local.Y >= 0 && local.Y >= 0 &&
local.X < Components[i]->Size.X && local.X < Components[i]->Size.X &&
local.Y < Components[i]->Size.Y && !halt) local.Y < Components[i]->Size.Y && !halt)
{ {
Components[i]->OnMouseMovedInside(local.X, local.Y, dx, dy); Components[i]->OnMouseMovedInside(local.X, local.Y, dx, dy);
// entering? // entering?
if(!( if (!(a.X >= 0 &&
a.X >= 0 && a.Y >= 0 &&
a.Y >= 0 && a.X < Components[i]->Size.X &&
a.X < Components[i]->Size.X && a.Y < Components[i]->Size.Y ))
a.Y < Components[i]->Size.Y ))
{ {
Components[i]->OnMouseEnter(local.X, local.Y); Components[i]->OnMouseEnter(local.X, local.Y);
} }
hoverComponent = Components[i]; hoverComponent = Components[i];
} }
else if(!halt) else if (!halt)
{ {
// leaving? // leaving?
if( a.X >= 0 && if (a.X >= 0 &&
a.Y >= 0 && a.Y >= 0 &&
a.X < Components[i]->Size.X && a.X < Components[i]->Size.X &&
a.Y < Components[i]->Size.Y ) a.Y < Components[i]->Size.Y )
@ -494,9 +486,9 @@ void Window::DoMouseMove(int x_, int y_, int dx, int dy)
} }
} }
if(!stop) if (!stop)
OnMouseMove(x_, y_, dx, dy); OnMouseMove(x_, y_, dx, dy);
if(destruct) if (destruct)
finalise(); finalise();
} }
@ -505,15 +497,15 @@ void Window::DoMouseUp(int x_, int y_, unsigned button)
int x = x_ - Position.X; int x = x_ - Position.X;
int y = y_ - Position.Y; int y = y_ - Position.Y;
#ifdef DEBUG #ifdef DEBUG
if(debugMode) if (debugMode)
return; return;
#endif #endif
//on mouse unclick //on mouse unclick
for(int i = Components.size() - 1; i >= 0 && !halt; --i) for (int i = Components.size() - 1; i >= 0 && !halt; --i)
{ {
if(!Components[i]->Locked && Components[i]->Visible) if (!Components[i]->Locked && Components[i]->Visible)
{ {
if(x >= Components[i]->Position.X && y >= Components[i]->Position.Y && x < Components[i]->Position.X + Components[i]->Size.X && y < Components[i]->Position.Y + Components[i]->Size.Y) if (x >= Components[i]->Position.X && y >= Components[i]->Position.Y && x < Components[i]->Position.X + Components[i]->Size.X && y < Components[i]->Position.Y + Components[i]->Size.Y)
{ {
Components[i]->OnMouseUnclick(x - Components[i]->Position.X, y - Components[i]->Position.Y, button); Components[i]->OnMouseUnclick(x - Components[i]->Position.X, y - Components[i]->Position.Y, button);
break; break;
@ -522,15 +514,15 @@ void Window::DoMouseUp(int x_, int y_, unsigned button)
} }
//on mouse up //on mouse up
for(int i = Components.size() - 1; i >= 0 && !halt; --i) for (int i = Components.size() - 1; i >= 0 && !halt; --i)
{ {
if(!Components[i]->Locked && Components[i]->Visible) if (!Components[i]->Locked && Components[i]->Visible)
Components[i]->OnMouseUp(x, y, button); Components[i]->OnMouseUp(x, y, button);
} }
if(!stop) if (!stop)
OnMouseUp(x_, y_, button); OnMouseUp(x_, y_, button);
if(destruct) if (destruct)
finalise(); finalise();
} }
@ -539,31 +531,31 @@ void Window::DoMouseWheel(int x_, int y_, int d)
int x = x_ - Position.X; int x = x_ - Position.X;
int y = y_ - Position.Y; int y = y_ - Position.Y;
#ifdef DEBUG #ifdef DEBUG
if(debugMode) if (debugMode)
return; return;
#endif #endif
//on mouse wheel focused //on mouse wheel focused
for(int i = Components.size() - 1; i >= 0 && !halt; --i) for (int i = Components.size() - 1; i >= 0 && !halt; --i)
{ {
if(x >= Components[i]->Position.X && y >= Components[i]->Position.Y && x < Components[i]->Position.X + Components[i]->Size.X && y < Components[i]->Position.Y + Components[i]->Size.Y) if (x >= Components[i]->Position.X && y >= Components[i]->Position.Y && x < Components[i]->Position.X + Components[i]->Size.X && y < Components[i]->Position.Y + Components[i]->Size.Y)
{ {
if(!Components[i]->Locked && Components[i]->Visible) if (!Components[i]->Locked && Components[i]->Visible)
Components[i]->OnMouseWheelInside(x - Components[i]->Position.X, y - Components[i]->Position.Y, d); Components[i]->OnMouseWheelInside(x - Components[i]->Position.X, y - Components[i]->Position.Y, d);
break; break;
} }
} }
//on mouse wheel //on mouse wheel
for(int i = Components.size() - 1; i >= 0 && !halt; --i) for (int i = Components.size() - 1; i >= 0 && !halt; --i)
{ {
if(!Components[i]->Locked && Components[i]->Visible) if (!Components[i]->Locked && Components[i]->Visible)
Components[i]->OnMouseWheel(x - Components[i]->Position.X, y - Components[i]->Position.Y, d); Components[i]->OnMouseWheel(x - Components[i]->Position.X, y - Components[i]->Position.Y, d);
} }
if(!stop) if (!stop)
OnMouseWheel(x_, y_, d); OnMouseWheel(x_, y_, d);
if(destruct) if (destruct)
finalise(); finalise();
} }

View File

@ -8,16 +8,16 @@
namespace ui namespace ui
{ {
enum ChromeStyle enum ChromeStyle
{ {
None, Title, Resizable None, Title, Resizable
}; };
//class State;
class Engine; class Engine;
class Component; class Component;
class Button; class Button;
/* class State /* class Window
* *
* A UI state. Contains all components. * A UI state. Contains all components.
*/ */
@ -35,19 +35,19 @@ enum ChromeStyle
bool AllowExclusiveDrawing; //false will not call draw on objects outside of bounds bool AllowExclusiveDrawing; //false will not call draw on objects outside of bounds
// Add Component to state // Add Component to window
void AddComponent(Component* c); void AddComponent(Component* c);
// Get the number of components this state has. // Get the number of components this window has.
unsigned GetComponentCount(); unsigned GetComponentCount();
// Get component by index. (See GetComponentCount()) // Get component by index. (See GetComponentCount())
Component* GetComponent(unsigned idx); Component* GetComponent(unsigned idx);
// Remove a component from state. NOTE: This DOES NOT free component from memory. // Remove a component from window. NOTE: This DOES NOT free component from memory.
void RemoveComponent(Component* c); void RemoveComponent(Component* c);
// Remove a component from state. NOTE: This WILL free component from memory. // Remove a component from window. NOTE: This WILL free component from memory.
void RemoveComponent(unsigned idx); void RemoveComponent(unsigned idx);
virtual void ToolTip(ui::Point senderPosition, std::string toolTip) {} virtual void ToolTip(ui::Point senderPosition, std::string toolTip) {}
@ -66,7 +66,7 @@ enum ChromeStyle
virtual void DoKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt); virtual void DoKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt);
virtual void DoKeyRelease(int key, Uint16 character, bool shift, bool ctrl, bool alt); virtual void DoKeyRelease(int key, Uint16 character, bool shift, bool ctrl, bool alt);
//Sets halt and destroy, this causes the Windows to stop sending events and remove itself. // Sets halt and destroy, this causes the Windows to stop sending events and remove itself.
void SelfDestruct(); void SelfDestruct();
void Halt(); void Halt();
@ -113,24 +113,5 @@ enum ChromeStyle
bool stop; bool stop;
}; };
/*class Window : public State
{
private:
ChromeStyle chrome;
public:
Window(Point _position, Point _size);
Point Position;
Point Size;
virtual void DoTick(float dt);
virtual void DoDraw();
virtual void DoMouseMove(int x, int y, int dx, int dy);
virtual void DoMouseDown(int x, int y, unsigned button);
virtual void DoMouseUp(int x, int y, unsigned button);
virtual void DoMouseWheel(int x, int y, int d);
};*/
} }
#endif // WINDOW_H #endif // WINDOW_H