changeset 19408:2d702686daaa draft

(svn r24311) -Add: DrawDropDownButton() to draw dropdown buttons independent of actual widgets.
author frosch <frosch@openttd.org>
date Fri, 01 Jun 2012 14:41:47 +0000
parents e4f32df0a2b7
children 9e09a99aba22
files src/settings_gui.cpp src/settings_gui.h
diffstat 2 files changed, 23 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/settings_gui.cpp
+++ b/src/settings_gui.cpp
@@ -2006,6 +2006,28 @@
 }
 
 /**
+ * Draw a dropdown button.
+ * @param x the x position to draw
+ * @param y the y position to draw
+ * @param button_colour the colour of the button
+ * @param state true = lowered
+ * @param clickable is the button clickable?
+ */
+void DrawDropDownButton(int x, int y, Colours button_colour, bool state, bool clickable)
+{
+	static const char *DOWNARROW = "\xEE\x8A\xAA";
+
+	int colour = _colour_gradient[button_colour][2];
+
+	DrawFrameRect(x, y, x + SETTING_BUTTON_WIDTH - 1, y + SETTING_BUTTON_HEIGHT - 1, button_colour, state ? FR_LOWERED : FR_NONE);
+	DrawString(x + (state ? 1 : 0), x + SETTING_BUTTON_WIDTH - (state ? 0 : 1), y + (state ? 2 : 1), DOWNARROW, TC_BLACK, SA_HOR_CENTER);
+
+	if (!clickable) {
+		GfxFillRect(x +  1, y, x + SETTING_BUTTON_WIDTH - 1, y + SETTING_BUTTON_HEIGHT - 2, colour, FILLRECT_CHECKER);
+	}
+}
+
+/**
  * Draw a toggle button.
  * @param x the x position to draw
  * @param y the y position to draw
--- a/src/settings_gui.h
+++ b/src/settings_gui.h
@@ -18,6 +18,7 @@
 static const int SETTING_BUTTON_HEIGHT = 10; ///< Height of setting buttons
 
 void DrawArrowButtons(int x, int y, Colours button_colour, byte state, bool clickable_left, bool clickable_right);
+void DrawDropDownButton(int x, int y, Colours button_colour, bool state, bool clickable);
 void DrawBoolButton(int x, int y, bool state, bool clickable);
 
 #endif /* SETTING_GUI_H */