aboutsummaryrefslogtreecommitdiffstats
path: root/widget.c
diff options
context:
space:
mode:
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2005-11-06 09:17:20 +0000
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2005-11-06 09:17:20 +0000
commitdc30610f203d73da3f0224fc51428638b1572bb0 (patch)
treed866e7ec4fcd908b9733f6dfd18dfb18638c549a /widget.c
parentb2c85d4a9a9a0ced6d0f6cbf5a4a717348c5feb9 (diff)
downloadlcd4linux-dc30610f203d73da3f0224fc51428638b1572bb0.tar.gz
[lcd4linux @ 2005-11-06 09:17:20 by reinelt]
re-use icons (thanks to Jesus de Santos Garcia) git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@596 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
Diffstat (limited to 'widget.c')
-rw-r--r--widget.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/widget.c b/widget.c
index 09fc637..a830316 100644
--- a/widget.c
+++ b/widget.c
@@ -1,4 +1,4 @@
-/* $Id: widget.c,v 1.19 2005/05/08 04:32:45 reinelt Exp $
+/* $Id: widget.c,v 1.20 2005/11/06 09:17:20 reinelt Exp $
*
* generic widget handling
*
@@ -21,6 +21,9 @@
*
*
* $Log: widget.c,v $
+ * Revision 1.20 2005/11/06 09:17:20 reinelt
+ * re-use icons (thanks to Jesus de Santos Garcia)
+ *
* Revision 1.19 2005/05/08 04:32:45 reinelt
* CodingStyle added and applied
*
@@ -165,6 +168,8 @@ void widget_unregister(void)
int i;
for (i = 0; i < nWidgets; i++) {
Widgets[i].class->quit(&(Widgets[i]));
+ if (Widgets[i].name)
+ free (Widgets[i].name);
}
free(Widgets);
@@ -182,6 +187,7 @@ int widget_add(const char *name, const int row, const int col)
WIDGET_CLASS *Class;
WIDGET *Widget;
+ WIDGET *Parent;
/* prepare config section */
/* strlen("Widget:")=7 */
@@ -231,15 +237,25 @@ int widget_add(const char *name, const int row, const int col)
return -1;
}
+ /* look up parent widget (widget with the same name) */
+ Parent = NULL;
+ for (i = 0; i < nWidgets; i++) {
+ if (strcmp(name, Widgets[i].name) == 0) {
+ Parent = &(Widgets[i]);
+ break;
+ }
+ }
+
Widget = &(Widgets[nWidgets]);
nWidgets++;
- Widget->name = (char *) name;
+ Widget->name = strdup(name);
Widget->class = Class;
+ Widget->parent = Parent;
Widget->row = row;
Widget->col = col;
- if (Class->init != 0) {
+ if (Class->init != NULL) {
Class->init(Widget);
}