| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #ifndef __RTGUI_FILELIST_VIEW_H__
- #define __RTGUI_FILELIST_VIEW_H__
- #include <rtgui/widgets/container.h>
- #if defined(RTGUI_USING_DFS_FILERW) || defined(RTGUI_USING_STDIO_FILERW)
- #define RTGUI_FITEM_FILE 0x0
- #define RTGUI_FITEM_DIR 0x1
- struct rtgui_file_item
- {
- char* name;
- rt_uint32_t type;
- rt_uint32_t size;
- };
- DECLARE_CLASS_TYPE(filelist);
- /** Gets the type of a filelist view */
- #define RTGUI_FILELIST_VIEW_TYPE (RTGUI_TYPE(filelist))
- /** Casts the object to a filelist */
- #define RTGUI_FILELIST_VIEW(obj) (RTGUI_OBJECT_CAST((obj), RTGUI_FILELIST_VIEW_TYPE, rtgui_filelist_view_t))
- /** Checks if the object is a filelist view */
- #define RTGUI_IS_FILELIST_VIEW(obj) (RTGUI_OBJECT_CHECK_TYPE((obj), RTGUI_FILELIST_VIEW_TYPE))
- struct rtgui_filelist_view
- {
- struct rtgui_container parent;
- /* widget private data */
- /* current directory */
- char* current_directory;
- char* pattern;
- /* the number of item in a page */
- rt_uint16_t page_items;
- rt_uint16_t items_count;
- /* the selected item */
- rt_uint16_t current_item;
- /* items array */
- struct rtgui_file_item *items;
- };
- typedef struct rtgui_filelist_view rtgui_filelist_view_t;
- rtgui_filelist_view_t* rtgui_filelist_view_create(const char* directory,
- const char* pattern,
- const rtgui_rect_t* rect);
- void rtgui_filelist_view_destroy(rtgui_filelist_view_t* view);
- rt_bool_t rtgui_filelist_view_event_handler(struct rtgui_widget* widget, struct rtgui_event* event);
- void rtgui_filelist_view_set_directory(rtgui_filelist_view_t* view, const char* directory);
- void rtgui_filelist_view_get_fullpath(rtgui_filelist_view_t* view, char* path, rt_size_t len);
- #endif
- #endif
|