aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 */
/a>reinelt8-23/+458 2004-01-13[lcd4linux @ 2004-01-13 08:18:07 by reinelt]reinelt12-154/+469 2004-01-12[lcd4linux @ 2004-01-12 03:51:01 by reinelt]reinelt5-15/+44 2004-01-11[lcd4linux @ 2004-01-11 18:26:02 by reinelt]reinelt10-79/+158 2004-01-11[lcd4linux @ 2004-01-11 09:26:15 by reinelt]reinelt4-19/+67 2004-01-10[lcd4linux @ 2004-01-10 20:22:33 by reinelt]reinelt13-210/+554 2004-01-10[lcd4linux @ 2004-01-10 17:45:26 by reinelt]reinelt2-5/+15 2004-01-10[lcd4linux @ 2004-01-10 17:36:56 by reinelt]reinelt4-10/+207 2004-01-10[lcd4linux @ 2004-01-10 17:34:40 by reinelt]reinelt3-176/+138 2004-01-10[lcd4linux @ 2004-01-10 10:20:22 by reinelt]reinelt2-14/+605 2004-01-09[lcd4linux @ 2004-01-09 17:03:06 by reinelt]reinelt10-51/+420 2004-01-09[lcd4linux @ 2004-01-09 04:16:06 by reinelt]reinelt28-193/+332 2004-01-08[lcd4linux @ 2004-01-08 06:00:28 by reinelt]reinelt1-8/+14 2004-01-08[lcd4linux @ 2004-01-08 05:28:12 by reinelt]reinelt3-42/+198 2004-01-07[lcd4linux @ 2004-01-07 10:15:41 by reinelt]reinelt4-184/+436 2004-01-06[lcd4linux @ 2004-01-06 23:01:37 by reinelt]reinelt3-4/+7 2004-01-06[lcd4linux @ 2004-01-06 22:33:13 by reinelt]reinelt14-472/+542 2004-01-06[lcd4linux @ 2004-01-06 21:14:51 by reinelt]reinelt4-14/+7 2004-01-06[lcd4linux @ 2004-01-06 18:22:41 by reinelt]reinelt1-3/+13 2004-01-06[lcd4linux @ 2004-01-06 17:56:43 by reinelt]reinelt3-1000/+2045 2004-01-06[lcd4linux @ 2004-01-06 17:37:00 by reinelt]reinelt1-0/+20 2004-01-06[lcd4linux @ 2004-01-06 17:33:45 by reinelt]reinelt6-28/+298 2004-01-06[lcd4linux @ 2004-01-06 15:19:12 by reinelt]reinelt2-104/+136 2004-01-05[lcd4linux @ 2004-01-05 11:57:38 by reinelt]reinelt7-8/+168 2004-01-02[lcd4linux @ 2004-01-02 14:20:15 by reinelt]reinelt10-0/+201 2004-01-02[lcd4linux @ 2004-01-02 14:18:54 by reinelt]reinelt2-0/+101 2003-12-19[lcd4linux @ 2003-12-19 06:27:33 by reinelt]reinelt4-8/+119