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);
}
fclose(fp);
return atoi(theme[TH_NUMBER]);
}
void free_theme(char **t)
{
int i;
for (i = THEME_ITEMS; --i;)
free(t[i]);
free(t);
}