00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00031 #include CURSES_HEADER
00032
00033 struct vfslist;
00034 struct vfsref;
00035 struct vfsmatch;
00036
00040 struct gui_vfslist {
00044 WINDOW *win;
00048 unsigned int winheight;
00052 unsigned int winfocused;
00056 int shownumbers;
00057
00061 const struct vfslist *list;
00065 struct vfsref *vr_top;
00069 unsigned int idx_top;
00073 struct vfsref *vr_selected;
00077 unsigned int idx_selected;
00078
00083 char percent[8];
00084
00088 void (*callback)(void);
00089 };
00090
00094 struct gui_vfslist *gui_vfslist_new(int shownumbers);
00098 void gui_vfslist_destroy(struct gui_vfslist *gv);
00102 void gui_vfslist_setlist(struct gui_vfslist *gv, const struct vfslist *vl);
00106 int gui_vfslist_warn_isempty(struct gui_vfslist *gv);
00110 void gui_vfslist_move(struct gui_vfslist *gv, int x, int y,
00111 int width, int height);
00116 void gui_vfslist_setfocus(struct gui_vfslist *gv, int focus);
00120 void gui_vfslist_setselected(struct gui_vfslist *gv, struct vfsref *vr,
00121 unsigned int index);
00122
00126 static inline struct vfsref *
00127 gui_vfslist_getselected(struct gui_vfslist *gv)
00128 {
00129 return (gv->vr_selected);
00130 }
00131
00135 static inline unsigned int
00136 gui_vfslist_getselectedidx(struct gui_vfslist *gv)
00137 {
00138 return (gv->idx_selected);
00139 }
00140
00144 void gui_vfslist_cursor_up(struct gui_vfslist *gv);
00148 void gui_vfslist_cursor_down(struct gui_vfslist *gv, int silent);
00152 void gui_vfslist_cursor_head(struct gui_vfslist *gv);
00156 void gui_vfslist_cursor_tail(struct gui_vfslist *gv);
00160 void gui_vfslist_cursor_pageup(struct gui_vfslist *gv);
00164 void gui_vfslist_cursor_pagedown(struct gui_vfslist *gv);
00165
00169 static inline const char *
00170 gui_vfslist_getpercentage(struct gui_vfslist *gv)
00171 {
00172 return (gv->percent);
00173 }
00174
00178 static inline void
00179 gui_vfslist_setcallback(struct gui_vfslist *gv, void (*func)(void))
00180 {
00181 gv->callback = func;
00182 }
00183
00188 void gui_vfslist_notify_pre_removal(struct gui_vfslist *gv,
00189 unsigned int index);
00194 void gui_vfslist_notify_post_insertion(struct gui_vfslist *gv,
00195 unsigned int index);
00199 void gui_vfslist_notify_post_randomization(struct gui_vfslist *gv);
00204 void gui_vfslist_notify_done(struct gui_vfslist *gv);
00209 int gui_vfslist_searchnext(struct gui_vfslist *gv, const struct vfsmatch *vm);
00214 void gui_vfslist_fullpath(struct gui_vfslist *gv);