diff options
| author | Tomas Chvatal <scarabeus@gentoo.org> | 2009-02-07 17:52:36 +0100 |
|---|---|---|
| committer | Tomas Chvatal <scarabeus@gentoo.org> | 2009-02-07 17:52:36 +0100 |
| commit | dc1bd4d1dcf8713bc5be0e9a154d44b43f71ddf8 (patch) | |
| tree | b0372c2abc47ac869f654acc786131740ee146a9 /src/widget/widget_label.c | |
| parent | eecde9b1f70397367f3f0dea4c47f27064f13fc0 (diff) | |
Revert "Revert "Revert "First pass renaming sreen and widgets."""
This reverts commit 87821f04c9565450d8e724be76993ae5ea2c20c4.
Diffstat (limited to 'src/widget/widget_label.c')
| -rw-r--r-- | src/widget/widget_label.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/widget/widget_label.c b/src/widget/widget_label.c new file mode 100644 index 0000000..e3c907c --- /dev/null +++ b/src/widget/widget_label.c @@ -0,0 +1,64 @@ + +#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); +} |