]> git.ipfire.org Git - thirdparty/newt.git/commitdiff
added newtLabelSetText()
authorewt <ewt>
Tue, 6 Aug 1996 20:24:27 +0000 (20:24 +0000)
committerewt <ewt>
Tue, 6 Aug 1996 20:24:27 +0000 (20:24 +0000)
label.c

diff --git a/label.c b/label.c
index 1b3df19f117f286b6a60b199838cc7dc3d8196c7..d882b1d711356766335725de0333501242abe151 100644 (file)
--- a/label.c
+++ b/label.c
@@ -7,6 +7,7 @@
 
 struct label {
     char * text;
+    int length;
 };
 
 static void labelDraw(newtComponent co);
@@ -34,11 +35,30 @@ newtComponent newtLabel(int left, int top, char * text) {
     co->left = left;
     co->takesFocus = 0;
 
+    la->length = strlen(text);
     la->text = strdup(text);
 
     return co;
 }
 
+void newtLabelSetText(newtComponent co, char * text) {
+    int newLength;
+    struct label * la = co->data;
+
+    newLength = strlen(text);
+    if (newLength <= la->length) {
+       memset(la->text, ' ', la->length);
+       memcpy(la->text, text, newLength);
+    } else {
+       free(la->text);
+       la->text = strdup(text);
+       la->length = newLength;
+       co->width = newLength;
+    }
+
+    labelDraw(co);
+}
+
 static void labelDraw(newtComponent co) {
     struct label * la = co->data;