All pastes #125972 Raw Edit

Mine

public text v1 · immutable
·published 2006-08-11 02:28 UTC
rendered paste body
#define THEME_ITEMS 18
#define MAX_LEN 512

#define TH_NUMBER          0
#define TH_AUTHOR          1
#define TH_NAME            2
#define TH_PREVIEW         3
#define TH_PREVIEW         4
#define TH_HD_ICONPATH     5
#define TH_APP_ICONPATH    6
// etc...

static char *theme[THEME_ITEMS];

void draw_loading(int per)
{
#define BAR_X      12
#define BAR_Y      87
#define BAR_WIDTH  (screen.w - 20)
#define BAR_HEIGHT 7
	GrFillRect(wid, gc, BAR_X, BAR_Y, (per*BAR_WIDTH)/100, 7);
}

int parse_index(const char *idx)
{
	FILE *fp;
	int i = 0;

	if (!(fp = fopen(idx, "r"))) {
		perror(idx);
		return -1;
	}

	while (fgets(tmp, MAX_LEN, fp)) {
		draw_loading(i*100/THEME_ITEMS);
		theme[i] = malloc(MAX_LEN);
		strncpy(theme[i++], tmp, MAX_LEN);
		if (i > THEME_ITEMS) {
			fprintf(stderr, "Too many theme items in %s\n", idx);
			break;
		}
	}

	fclose(fp);
	return atoi(theme[TH_NUMBER]);
}

void free_theme(char **t)
{
	int i;
	for (i = THEME_ITEMS; --i;)
		free(t[i]);
	free(t);
}