summaryrefslogtreecommitdiff
path: root/marquee.c
diff options
context:
space:
mode:
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;
+}