#ifndef __FILE_LIST_VIEW_H__
#define __FILE_LIST_VIEW_H__

#define FITEM_FILE      0x0
#define FITEM_DIR       0x1
struct file_item
{
	char* name;

	rt_uint32_t type;
	rt_uint32_t size;

    /* files under same directory */
	rtgui_list_t list;
};

/** Gets the type of a filelist view */
#define FILELIST_VIEW_TYPE       (filelist_view_type_get())
/** Casts the object to a filelist */
#define FILELIST_VIEW(obj)       (RTGUI_OBJECT_CAST((obj), FILELIST_VIEW_TYPE, filelist_view_t))
/** Checks if the object is a filelist view */
#define IS_FILELIST_VIEW(obj)    (RTGUI_OBJECT_CHECK_TYPE((obj), FILELIST_VIEW_TYPE))

struct filelist_view
{
	struct rtgui_view parent;

	/* widget private data */

	/* total number of items */
	rt_uint32_t count;

	/* the selected item */
	struct file_item* selected;

    /* current directory */
    rt_uint8_t* current_directory;
    rt_uint8_t* pattern;

    /* the number of item in a page */
    rt_uint16_t page_items;

    /* item_list */
	rtgui_list_t item_list;
};
typedef struct filelist_view filelist_view_t;

#endif