diff options
| author | Simon 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) |
| commit | 19c1fa5dcb4c4a2ba9d692e136b17da316a2631b (patch) | |
| tree | 8436e6674dc4375f0392a9142be1a06ddf888337 /src/interface/Button.cpp | |
| parent | 91bb5a8b781fba33901c0a2804b86055ed588aa4 (diff) | |
| download | powder-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.cpp | 36 |
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); } |
