From: ewt Date: Tue, 26 Mar 1996 04:15:07 +0000 (+0000) Subject: Initial revision X-Git-Tag: 0-1~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0d5acc7663ba398134a767f780854b2abddb6be8;p=thirdparty%2Fnewt.git Initial revision --- diff --git a/label.c b/label.c new file mode 100644 index 0000000..1b3df19 --- /dev/null +++ b/label.c @@ -0,0 +1,59 @@ +#include +#include +#include + +#include "newt.h" +#include "newt_pr.h" + +struct label { + char * text; +}; + +static void labelDraw(newtComponent co); +static void labelDestroy(newtComponent co); + +static struct componentOps labelOps = { + labelDraw, + newtDefaultEventHandler, + labelDestroy, +} ; + +newtComponent newtLabel(int left, int top, char * text) { + newtComponent co; + struct label * la; + + co = malloc(sizeof(*co)); + la = malloc(sizeof(struct label)); + co->data = la; + + co->ops = &labelOps; + + co->height = 1; + co->width = strlen(text); + co->top = top; + co->left = left; + co->takesFocus = 0; + + la->text = strdup(text); + + return co; +} + +static void labelDraw(newtComponent co) { + struct label * la = co->data; + + if (co->top == -1) return; + + SLsmg_set_color(COLORSET_LABEL); + + newtGotorc(co->top, co->left); + SLsmg_write_string(la->text); +} + +static void labelDestroy(newtComponent co) { + struct label * la = co->data; + + free(la->text); + free(la); + free(co); +}