diff options
| author | Tomas Chvatal (scarabeus) <tomas.chvatal@gmail.com> | 2008-10-22 22:50:54 +0200 |
|---|---|---|
| committer | Tomas Chvatal (scarabeus) <tomas.chvatal@gmail.com> | 2008-10-22 22:50:54 +0200 |
| commit | e12753d2ec9db83ec08bb9db63902a82fb245cdd (patch) | |
| tree | 6e4a63b790d6335f969f88b797a927e0fb25f37a /src/widget/widget_label.c~ | |
| parent | 0b4d9821c7333b8c4bdf7e0eeb750aef502a1137 (diff) | |
X
Diffstat (limited to 'src/widget/widget_label.c~')
| -rw-r--r-- | src/widget/widget_label.c~ | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/widget/widget_label.c~ b/src/widget/widget_label.c~ new file mode 100644 index 0000000..c0b3f35 --- /dev/null +++ b/src/widget/widget_label.c~ @@ -0,0 +1,65 @@ + +#include <stdlib.h> +#include <assert.h> + +#include "main.h" +#include "interface.h" +#include "font.h" +#include "widget_label.h" +#include "widget.h" + +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->bind = bind; + getTextSize(text, &(new->w), &(new->h)); + + return newWidget(WIDGET_TYPE_LABEL, x, y, new->w, new->h, new); +} + +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, widget->x+p->w, widget->y + p->h/2, COLOR_WHITE); + break; + case WIDGET_LABEL_LEFT : + drawFont(p->text, widget->x, widget->y + widget->h/2, COLOR_WHITE); + break; + case WIDGET_LABEL_CENTER : + drawFont(p->text, widget->x-p->w/2, widget->y + p->h/2, COLOR_WHITE); + break; + } +} + +void eventWidgetLabel(widget_t *widget) +{ + assert( widget != NULL ); + assert( widget->type == WIDGET_TYPE_LABEL ); +} + +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); +} |