summaryrefslogtreecommitdiff
path: root/src/interface/Button.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-01-22 14:45:37 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-01-22 14:45:37 (GMT)
commit19c1fa5dcb4c4a2ba9d692e136b17da316a2631b (patch)
tree8436e6674dc4375f0392a9142be1a06ddf888337 /src/interface/Button.cpp
parent91bb5a8b781fba33901c0a2804b86055ed588aa4 (diff)
downloadpowder-19c1fa5dcb4c4a2ba9d692e136b17da316a2631b.zip
powder-19c1fa5dcb4c4a2ba9d692e136b17da316a2631b.tar.gz
Brush class for drawing on simulation, more interface for game
Diffstat (limited to 'src/interface/Button.cpp')
-rw-r--r--src/interface/Button.cpp36
1 files changed, 23 insertions, 13 deletions
diff --git a/src/interface/Button.cpp b/src/interface/Button.cpp
index 659aeed..e0f5172 100644
--- a/src/interface/Button.cpp
+++ b/src/interface/Button.cpp
@@ -25,7 +25,8 @@ Button::Button(Window* parent_state, std::string buttonText):
actionCallback(NULL),
textPosition(ui::Point(0, 0)),
textVAlign(AlignMiddle),
- textHAlign(AlignCentre)
+ textHAlign(AlignCentre),
+ Enabled(true)
{
TextPosition();
}
@@ -40,7 +41,8 @@ Button::Button(Point position, Point size, std::string buttonText):
actionCallback(NULL),
textPosition(ui::Point(0, 0)),
textVAlign(AlignMiddle),
- textHAlign(AlignCentre)
+ textHAlign(AlignCentre),
+ Enabled(true)
{
TextPosition();
}
@@ -55,7 +57,8 @@ Button::Button(std::string buttonText):
actionCallback(NULL),
textPosition(ui::Point(0, 0)),
textVAlign(AlignMiddle),
- textHAlign(AlignCentre)
+ textHAlign(AlignCentre),
+ Enabled(true)
{
TextPosition();
}
@@ -121,17 +124,25 @@ void Button::Draw(const Point& screenPos)
{
Graphics * g = ui::Engine::Ref().g;
Point Position = screenPos;
- if(isButtonDown || (isTogglable && toggle))
+ if(Enabled)
{
- g->fillrect(Position.X-1, Position.Y-1, Size.X+2, Size.Y+2, 255, 255, 255, 255);
- g->drawtext(Position.X+textPosition.X, Position.Y+textPosition.Y, ButtonText, 0, 0, 0, 255);
+ if(isButtonDown || (isTogglable && toggle))
+ {
+ g->fillrect(Position.X-1, Position.Y-1, Size.X+2, Size.Y+2, 255, 255, 255, 255);
+ g->drawtext(Position.X+textPosition.X, Position.Y+textPosition.Y, ButtonText, 0, 0, 0, 255);
+ }
+ else
+ {
+ if(isMouseInside)
+ g->fillrect(Position.X, Position.Y, Size.X, Size.Y, 20, 20, 20, 255);
+ g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255);
+ g->drawtext(Position.X+textPosition.X, Position.Y+textPosition.Y, ButtonText, 255, 255, 255, 255);
+ }
}
else
{
- if(isMouseInside)
- g->fillrect(Position.X, Position.Y, Size.X, Size.Y, 20, 20, 20, 255);
- g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255);
- g->drawtext(Position.X+textPosition.X, Position.Y+textPosition.Y, ButtonText, 255, 255, 255, 255);
+ g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 180, 180, 180, 255);
+ g->drawtext(Position.X+textPosition.X, Position.Y+textPosition.Y, ButtonText, 180, 180, 180, 255);
}
}
@@ -179,9 +190,8 @@ void Button::OnMouseLeave(int x, int y)
void Button::DoAction()
{
- std::cout << "Do action!"<<std::endl;
- //if(actionCallback)
- // (*(actionCallback))();
+ if(!Enabled)
+ return;
if(actionCallback)
actionCallback->ActionCallback(this);
}