summaryrefslogtreecommitdiff
path: root/marquee.c
blob: fb4f8f9159204cc70e9c479cf6e28e62733a185c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#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 = 60 + pixelLength;
	marquee.doesScroll = pixelLength > 128;
	return marquee;
}
void scroll_marquee(marquee_t* marquee, int increment) {
	//define the wrap point
	//calculate the new scroll amount
	int newScroll = marquee->scrolledBy + increment;
	marquee->scrolledBy = newScroll <= marquee->scrollMax ? newScroll : 0;
}