aboutsummaryrefslogtreecommitdiffstats
path: root/widget_icon.c
diff options
context:
space:
mode:
Diffstat (limited to 'widget_icon.c')
-rw-r--r--widget_icon.c146
1 files changed, 13 insertions, 133 deletions
diff --git a/widget_icon.c b/widget_icon.c
index 38af359..bfeec22 100644
--- a/widget_icon.c
+++ b/widget_icon.c
@@ -1,4 +1,5 @@
-/* $Id: widget_icon.c,v 1.23 2006/02/25 13:36:33 geronet Exp $
+/* $Id: widget_icon.c 744 2007-01-18 05:20:07Z michael $
+ * $URL: https://ssl.bulix.org/svn/lcd4linux/branches/0.10.1/widget_icon.c $
*
* icon widget handling
*
@@ -19,99 +20,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- *
- * $Log: widget_icon.c,v $
- * Revision 1.23 2006/02/25 13:36:33 geronet
- * updated indent.sh, applied coding style
- *
- * Revision 1.22 2006/01/23 06:17:18 reinelt
- * timer widget added
- *
- * Revision 1.21 2006/01/22 10:01:09 reinelt
- * allow 'static' icons with speed=0
- *
- * Revision 1.20 2005/12/18 16:18:36 reinelt
- * GPO's added again
- *
- * Revision 1.19 2005/11/06 09:54:43 reinelt
- * fixed icon size removed, uses XRES & YRES (I hope this doesn't lead to problemes...)
- *
- * Revision 1.18 2005/11/06 09:17:20 reinelt
- * re-use icons (thanks to Jesus de Santos Garcia)
- *
- * Revision 1.17 2005/05/08 04:32:45 reinelt
- * CodingStyle added and applied
- *
- * Revision 1.16 2005/01/18 06:30:24 reinelt
- * added (C) to all copyright statements
- *
- * Revision 1.15 2004/11/28 15:50:24 reinelt
- * Cwlinux fixes (invalidation of user-defined chars)
- *
- * Revision 1.14 2004/06/26 12:05:00 reinelt
- *
- * uh-oh... the last CVS log message messed up things a lot...
- *
- * Revision 1.13 2004/06/26 09:27:21 reinelt
- *
- * added '-W' to CFLAGS
- * changed all C++ comments to C ones
- * cleaned up a lot of signed/unsigned mistakes
- *
- * Revision 1.12 2004/06/20 10:09:56 reinelt
- *
- * 'const'ified the whole source
- *
- * Revision 1.11 2004/03/11 06:39:59 reinelt
- * big patch from Martin:
- * - reuse filehandles
- * - memory leaks fixed
- * - earlier busy-flag checking with HD44780
- * - reuse memory for strings in RESULT and hash
- * - netdev_fast to wavid time-consuming regex
- *
- * Revision 1.10 2004/03/06 20:31:16 reinelt
- * Complete rewrite of the evaluator to get rid of the code
- * from mark Morley (because of license issues).
- * The new Evaluator does a pre-compile of expressions, and
- * stores them in trees. Therefore it should be reasonable faster...
- *
- * Revision 1.9 2004/03/03 04:44:16 reinelt
- * changes (cosmetics?) to the big patch from Martin
- * hash patch un-applied
- *
- * Revision 1.8 2004/03/03 03:47:04 reinelt
- * big patch from Martin Hejl:
- * - use qprintf() where appropriate
- * - save CPU cycles on gettimeofday()
- * - add quit() functions to free allocated memory
- * - fixed lots of memory leaks
- *
- * Revision 1.7 2004/02/15 21:43:43 reinelt
- * T6963 driver nearly finished
- * framework for graphic displays done
- * i2c_sensors patch from Xavier
- * some more old generation files removed
- *
- * Revision 1.6 2004/02/07 13:45:23 reinelt
- * icon visibility patch #2 from Xavier
- *
- * Revision 1.5 2004/02/04 19:11:44 reinelt
- * icon visibility patch from Xavier
- *
- * Revision 1.4 2004/01/30 20:57:56 reinelt
- * HD44780 patch from Martin Hejl
- * dmalloc integrated
- *
- * Revision 1.3 2004/01/29 04:40:03 reinelt
- * every .c file includes "config.h" now
- *
- * Revision 1.2 2004/01/23 07:04:39 reinelt
- * icons finished!
- *
- * Revision 1.1 2004/01/23 04:54:03 reinelt
- * icon widget added (not finished yet!)
- *
*/
/*
@@ -133,7 +41,7 @@
#include "debug.h"
#include "cfg.h"
#include "qprintf.h"
-#include "evaluator.h"
+#include "property.h"
#include "timer.h"
#include "widget.h"
#include "widget_icon.h"
@@ -186,31 +94,13 @@ void widget_icon_update(void *Self)
{
WIDGET *W = (WIDGET *) Self;
WIDGET_ICON *Icon = W->data;
- RESULT result = { 0, 0, 0, NULL };
/* process the parent only */
if (W->parent == NULL) {
- /* evaluate expressions */
- Icon->speed = 100;
- if (Icon->speed_tree != NULL) {
- Eval(Icon->speed_tree, &result);
- Icon->speed = R2N(&result);
- if (Icon->speed <= 0)
- Icon->speed = 0;
- else if (Icon->speed < 10)
- Icon->speed = 10;
- DelResult(&result);
- }
-
- Icon->visible = 1;
- if (Icon->visible_tree != NULL) {
- Eval(Icon->visible_tree, &result);
- Icon->visible = R2N(&result);
- if (Icon->visible < 0)
- Icon->visible = 0;
- DelResult(&result);
- }
+ /* evaluate properties */
+ property_eval(&Icon->speed);
+ property_eval(&Icon->visible);
/* rotate icon bitmap */
Icon->curmap++;
@@ -223,8 +113,8 @@ void widget_icon_update(void *Self)
W->class->draw(W);
/* add a new one-shot timer */
- if (Icon->speed > 0) {
- timer_add(widget_icon_update, Self, Icon->speed, 1);
+ if (P2N(&Icon->speed) > 0) {
+ timer_add(widget_icon_update, Self, P2N(&Icon->speed), 1);
}
}
@@ -247,19 +137,9 @@ int widget_icon_init(WIDGET * Self)
Icon = malloc(sizeof(WIDGET_ICON));
memset(Icon, 0, sizeof(WIDGET_ICON));
- /* get raw expressions (we evaluate them ourselves) */
- Icon->speed_expr = cfg_get_raw(section, "speed", NULL);
- Icon->visible_expr = cfg_get_raw(section, "visible", NULL);
-
- /* sanity check */
- if (Icon->speed_expr == NULL || *Icon->speed_expr == '\0') {
- error("Icon %s has no speed, using '100'", Self->name);
- Icon->speed_expr = "100";
- }
-
- /* compile'em */
- Compile(Icon->speed_expr, &Icon->speed_tree);
- Compile(Icon->visible_expr, &Icon->visible_tree);
+ /* load properties */
+ property_load(section, "speed", "100", &Icon->speed);
+ property_load(section, "visible", "1", &Icon->visible);
/* read bitmap */
widget_icon_read_bitmap(section, Icon);
@@ -296,8 +176,8 @@ int widget_icon_quit(WIDGET * Self)
if (Self->parent == NULL) {
if (Self->data) {
WIDGET_ICON *Icon = Self->data;
- DelTree(Icon->speed_tree);
- DelTree(Icon->visible_tree);
+ property_free(&Icon->speed);
+ property_free(&Icon->visible);
if (Icon->bitmap)
free(Icon->bitmap);
free(Self->data);
406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443