summaryrefslogtreecommitdiff
path: root/marquee.c
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2024-06-12 02:27:48 +0100
committerKai Stevenson <kai@kaistevenson.com>2024-06-12 02:27:48 +0100
commitc15ecfa48e45e5475b31d109254d0f35c80470b6 (patch)
tree36c97d0c2b34b5a535111de91cab09aefe9a5d77 /marquee.c
parent37a2e3605b29822e6bac1bacd54e8f7497bde6a7 (diff)
basic functionality done
Diffstat (limited to 'marquee.c')
-rw-r--r--marquee.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/marquee.c b/marquee.c
new file mode 100644
index 0000000..37b2fc4
--- /dev/null
+++ b/marquee.c
@@ -0,0 +1,20 @@
+#include "marquee.h"
+#include <string.h>
+marquee_t make_marquee(char* str) {
+ marquee_t marquee;
+ marquee.textLength = strlen(str);
+ marquee.text = malloc(sizeof(char) * (marquee.textLength + 1));
+ strcpy(marquee.text, str);
+ marquee.scrolledBy = 0;
+ int pixelLength = marquee.textLength * 21;
+ marquee.scrollMax = 5 + pixelLength;
+ marquee.doesScroll = pixelLength > 128;
+ return marquee;
+}
+void scroll_marquee(marquee_t* marquee, int increment) {
+ //define the wrap point
+ int scrollMax = 5 + (marquee->textLength * 21);
+ //calculate the new scroll amount
+ int newScroll = marquee->scrolledBy + increment;
+ marquee->scrolledBy = newScroll <= marquee->scrollMax ? newScroll : 0;
+}