From c68df329f2483d8fc9b75488c695787cd18c20a4 Mon Sep 17 00:00:00 2001 From: oroborus Date: Sat, 16 Aug 2008 21:00:29 +0000 Subject: - vsetky widegety pouzivaju widget_t ( priparava na kontajner s widgetmi ) git-svn-id: http://opensvn.csie.org/tuxanci_ng@201 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e --- src/widget/widget_label.c | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) (limited to 'src/widget/widget_label.c') diff --git a/src/widget/widget_label.c b/src/widget/widget_label.c index 15dea4d..c0b3f35 100644 --- a/src/widget/widget_label.c +++ b/src/widget/widget_label.c @@ -1,47 +1,65 @@ #include +#include #include "main.h" #include "interface.h" #include "font.h" #include "widget_label.h" +#include "widget.h" -widget_label_t* newWidgetLabel(char *text, int x, int y, int bind) +widget_t* newWidgetLabel(char *text, int x, int y, int bind) { widget_label_t *new; new = malloc( sizeof(widget_label_t) ); new->text = strdup(text); - new->x = x; - new->y = y; new->bind = bind; - getTextSize(text, &new->w, &new->h); + getTextSize(text, &(new->w), &(new->h)); - return new; + return newWidget(WIDGET_TYPE_LABEL, x, y, new->w, new->h, new); } -void drawWidgetLabel(widget_label_t *p) +void drawWidgetLabel(widget_t *widget) { + widget_label_t *p; + + assert( widget != NULL ); + assert( widget->type == WIDGET_TYPE_LABEL ); + + p = (widget_label_t *) widget->private_data; + switch( p->bind ) { case WIDGET_LABEL_RIGHT : - drawFont(p->text, p->x+p->w, p->y + p->h/2, COLOR_WHITE); + drawFont(p->text, widget->x+p->w, widget->y + p->h/2, COLOR_WHITE); break; case WIDGET_LABEL_LEFT : - drawFont(p->text, p->x, p->y + p->h/2, COLOR_WHITE); + drawFont(p->text, widget->x, widget->y + widget->h/2, COLOR_WHITE); break; case WIDGET_LABEL_CENTER : - drawFont(p->text, p->x-p->w/2, p->y + p->h/2, COLOR_WHITE); + drawFont(p->text, widget->x-p->w/2, widget->y + p->h/2, COLOR_WHITE); break; } } -void eventWidgetLabel(widget_label_t *p) +void eventWidgetLabel(widget_t *widget) { + assert( widget != NULL ); + assert( widget->type == WIDGET_TYPE_LABEL ); } -void destroyWidgetLabel(widget_label_t *p) +void destroyWidgetLabel(widget_t *widget) { + widget_label_t *p; + + assert( widget != NULL ); + assert( widget->type == WIDGET_TYPE_LABEL ); + + p = (widget_label_t *) widget->private_data; + free(p->text); free(p); + + destroyWidget(widget); } -- cgit v1.2.3