aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormichael <michael@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2009-05-19 10:42:01 +0000
committermichael <michael@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2009-05-19 10:42:01 +0000
commit37ccff837cb09f8ada9fef60af8e6541b08f86f5 (patch)
tree34e19e3aedbd8baaccc3a1b0ef18ca9d6ac28e5c
parentfe4afbe9b0631d5b169d46561498b055aa270006 (diff)
downloadlcd4linux-37ccff837cb09f8ada9fef60af8e6541b08f86f5.tar.gz
icon frame patch by Marcus Brown
git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@1035 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
-rw-r--r--widget_icon.c18
-rw-r--r--widget_icon.h1
2 files changed, 14 insertions, 5 deletions
diff --git a/widget_icon.c b/widget_icon.c
index 83afbac..c785389 100644
--- a/widget_icon.c
+++ b/widget_icon.c
@@ -101,11 +101,18 @@ void widget_icon_update(void *Self)
/* evaluate properties */
property_eval(&Icon->speed);
property_eval(&Icon->visible);
-
- /* rotate icon bitmap */
- Icon->curmap++;
- if (Icon->curmap >= Icon->maxmap)
- Icon->curmap = 0;
+ property_eval(&Icon->frame);
+
+ int frame = P2N(&Icon->frame);
+ if ( (frame >= 0) && (frame <= Icon->maxmap) ) {
+ /* select icon bitmap by evaluated frame number */
+ Icon->curmap = frame;
+ } else {
+ /* rotate icon bitmap */
+ Icon->curmap++;
+ if (Icon->curmap >= Icon->maxmap)
+ Icon->curmap = 0;
+ }
}
/* finally, draw it! */
@@ -140,6 +147,7 @@ int widget_icon_init(WIDGET * Self)
/* load properties */
property_load(section, "speed", "100", &Icon->speed);
property_load(section, "visible", "1", &Icon->visible);
+ property_load(section, "frame", "-1", &Icon->frame);
/* read bitmap */
widget_icon_read_bitmap(section, Icon);
diff --git a/widget_icon.h b/widget_icon.h
index 72df8be..2eb2f08 100644
--- a/widget_icon.h
+++ b/widget_icon.h
@@ -33,6 +33,7 @@
typedef struct WIDGET_ICON {
PROPERTY speed; /* update interval (msec) */
PROPERTY visible; /* icon visible? */
+ PROPERTY frame; /* evaluated expression of frame number (optional) */
int ascii; /* ascii code of icon (depends on the driver) */
int curmap; /* current bitmap sequence */
int prvmap; /* previous bitmap sequence */