aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTectu <joel@unormal.org>2012-06-27 11:12:45 +0200
committerTectu <joel@unormal.org>2012-06-27 11:12:45 +0200
commit2c95af7413e3d97e3683876a8e201e4a408f5f2b (patch)
tree5eff5afe91b78c35b1f728cf2419dc48f62d50d7
parentde84bc984cd8e7937d2722e672b6f1f35ca0b985 (diff)
downloaduGFX-2c95af7413e3d97e3683876a8e201e4a408f5f2b.tar.gz
uGFX-2c95af7413e3d97e3683876a8e201e4a408f5f2b.tar.bz2
uGFX-2c95af7413e3d97e3683876a8e201e4a408f5f2b.zip
added shadow support for buttons
-rw-r--r--gui.c10
-rw-r--r--gui.h3
2 files changed, 11 insertions, 2 deletions
diff --git a/gui.c b/gui.c
index 70e1dc8a..8b3ba893 100644
--- a/gui.c
+++ b/gui.c
@@ -135,8 +135,9 @@ uint8_t guiDeleteElement(char *label) {
return deleteElement(label);
}
-uint8_t guiDrawButton(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, char *str, uint16_t fontColor, uint16_t buttonColor, char *label, uint8_t *active, uint8_t *state) {
+uint8_t guiDrawButton(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, char *str, uint16_t fontColor, uint16_t buttonColor, uint16_t shadow, char *label, uint8_t *active, uint8_t *state) {
struct guiNode_t *newNode;
+ uint16_t i;
newNode = chHeapAlloc(NULL, sizeof(struct guiNode_t));
if(newNode == NULL)
@@ -157,6 +158,13 @@ uint8_t guiDrawButton(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, char *
lcdDrawRectString(x0, y0, x1, y1, str, fontColor, buttonColor);
+ if(shadow != 0) {
+ for(i = 0; i < shadow; i++) {
+ lcdDrawLine(x1+i, y0-i, x1+i, y1-i-1, Black);
+ lcdDrawLine(x0+i, y0-i, x1+i, y0-i, Black);
+ }
+ }
+
chHeapFree(newNode);
return 1;
diff --git a/gui.h b/gui.h
index 61dead64..513043aa 100644
--- a/gui.h
+++ b/gui.h
@@ -63,12 +63,13 @@ uint8_t guiDeleteElement(char *label);
* - str: string that gets drawn into the rectangle - button's lable
* - fontColor: color of the lable
* - buttonColor: color of the rectangle
+ * - shadow: draws a black shadow with N pixels size if != 0
* - active: pass pointer to variable which holds the state 'active' or 'inactive'
* - state: pass pointer to variable whcih will keep the state of the button (pressed / unpressed)'
*
* return: 1 if button successfully created
*/
-uint8_t guiDrawButton(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, char *str, uint16_t fontColor, uint16_t buttonColor, char *label, uint8_t *active, uint8_t *state);
+uint8_t guiDrawButton(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, char *str, uint16_t fontColor, uint16_t buttonColor, uint16_t shadow, char *label, uint8_t *active, uint8_t *state);
uint8_t guiDrawSlider(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint8_t orientation, uint16_t frameColor, uint16_t bkColor, uint16_t valueColor, char *label, uint8_t *active, uint8_t *value);