void main_refresh_folders(void) { int row = 0; struct folder *f; char text[folders_width + 1]; for (f = folder_first(); f; f = folder_next(f)) { unsigned int level; unsigned int i; level = folder_level(f); if (level > 10) { level = 10; } if (f == main_active_folder) { text[0] = '*'; } else { text[0] = ' '; } for (i = 0; i < level; i++) { text[1+i] = ' '; } mystrlcpy(&text[level + 1], folder_name(f), sizeof(text) - 2); mvwprintw(folders_wnd, row++, 0 , text); } wrefresh(folders_wnd); }
static void main_folder_next(void) { if (!main_active_folder) { main_active_folder = folder_first(); } else { main_active_folder = folder_next(main_active_folder); } main_refresh_folders(); callback_folder_active(); }
STATIC ASM LONG move_strobj(REG(a0,struct Hook *h),REG(a2,Object *list), REG(a1,Object *str)) { char *s; struct folder *f; /* TODO: This shouldn't happen over the plain text * (different folders could have the same name) */ get(str,MUIA_Text_Contents,&s); for (f=folder_first();f;f=folder_next(f)) { if (!strcmp(f->name,s)) { set(filter_folder_list, MUIA_FolderTreelist_Active, f); break; } } return 1; }