summaryrefslogtreecommitdiff
path: root/src/interface/Button.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-08-14 13:22:41 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-08-14 13:22:41 (GMT)
commitdb519a7036f18b026cde23dc8c588776c0d35f1f (patch)
tree80053ec2246219fc37a405f4d83fbf63b51a2e48 /src/interface/Button.cpp
parentd5e57e04d0c1ca9cae9a29996df587599691a563 (diff)
downloadpowder-db519a7036f18b026cde23dc8c588776c0d35f1f.zip
powder-db519a7036f18b026cde23dc8c588776c0d35f1f.tar.gz
Varying borders for button, exit dropdown menu with Esc or outside click, fixes #100
Diffstat (limited to 'src/interface/Button.cpp')
-rw-r--r--src/interface/Button.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/interface/Button.cpp b/src/interface/Button.cpp
index c6ebd79..9d7a6fc 100644
--- a/src/interface/Button.cpp
+++ b/src/interface/Button.cpp
@@ -121,7 +121,19 @@ void Button::Draw(const Point& screenPos)
bgColour = Appearance.BackgroundInactive;
g->fillrect(Position.X+1, Position.Y+1, Size.X-2, Size.Y-2, backgroundColour.Red, backgroundColour.Green, backgroundColour.Blue, backgroundColour.Alpha);
- g->drawrect(Position.X, Position.Y, Size.X, Size.Y, borderColour.Red, borderColour.Green, borderColour.Blue, borderColour.Alpha);
+ if(Appearance.Border == 1)
+ g->drawrect(Position.X, Position.Y, Size.X, Size.Y, borderColour.Red, borderColour.Green, borderColour.Blue, borderColour.Alpha);
+ else
+ {
+ if(Appearance.Border.Top)
+ g->draw_line(Position.X, Position.Y, Position.X+Size.X-1, Position.Y, borderColour.Red, borderColour.Green, borderColour.Blue, borderColour.Alpha);
+ if(Appearance.Border.Bottom)
+ g->draw_line(Position.X, Position.Y+Size.Y-1, Position.X+Size.X-1, Position.Y+Size.Y-1, borderColour.Red, borderColour.Green, borderColour.Blue, borderColour.Alpha);
+ if(Appearance.Border.Left)
+ g->draw_line(Position.X, Position.Y, Position.X, Position.Y+Size.Y-1, borderColour.Red, borderColour.Green, borderColour.Blue, borderColour.Alpha);
+ if(Appearance.Border.Right)
+ g->draw_line(Position.X+Size.X-1, Position.Y, Position.X+Size.X-1, Position.Y+Size.Y-1, borderColour.Red, borderColour.Green, borderColour.Blue, borderColour.Alpha);
+ }
g->drawtext(Position.X+textPosition.X, Position.Y+textPosition.Y, buttonDisplayText, textColour.Red, textColour.Green, textColour.Blue, textColour.Alpha);
bool iconInvert = (backgroundColour.Blue + (3*backgroundColour.Green) + (2*backgroundColour.Red))>544?true:false;