| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- #pragma once
- #include <gui/gui_i.h>
- #include <gui/view.h>
- #include <gui/canvas.h>
- #include <gui/elements.h>
- #include <furi.h>
- #include <storage/storage.h>
- #include "../helpers/archive_files.h"
- #include "../helpers/archive_favorites.h"
- #include "gui/modules/file_browser_worker.h"
- #define MAX_LEN_PX 110
- #define MAX_NAME_LEN 255
- #define MAX_EXT_LEN 6
- #define FRAME_HEIGHT 12
- #define MENU_ITEMS 4u
- #define MOVE_OFFSET 5u
- typedef enum {
- ArchiveTabFavorites,
- ArchiveTabSubGhz,
- ArchiveTabLFRFID,
- ArchiveTabNFC,
- ArchiveTabInfrared,
- ArchiveTabIButton,
- ArchiveTabBadUsb,
- ArchiveTabU2f,
- ArchiveTabBrowser,
- ArchiveTabTotal,
- } ArchiveTabEnum;
- typedef enum {
- ArchiveBrowserEventFileMenuOpen,
- ArchiveBrowserEventFileMenuClose,
- ArchiveBrowserEventFileMenuRun,
- ArchiveBrowserEventFileMenuPin,
- ArchiveBrowserEventFileMenuRename,
- ArchiveBrowserEventFileMenuDelete,
- ArchiveBrowserEventEnterDir,
- ArchiveBrowserEventFavMoveUp,
- ArchiveBrowserEventFavMoveDown,
- ArchiveBrowserEventEnterFavMove,
- ArchiveBrowserEventExitFavMove,
- ArchiveBrowserEventSaveFavMove,
- ArchiveBrowserEventLoadPrevItems,
- ArchiveBrowserEventLoadNextItems,
- ArchiveBrowserEventListRefresh,
- ArchiveBrowserEventExit,
- } ArchiveBrowserEvent;
- static const uint8_t file_menu_actions[MENU_ITEMS] = {
- [0] = ArchiveBrowserEventFileMenuRun,
- [1] = ArchiveBrowserEventFileMenuPin,
- [2] = ArchiveBrowserEventFileMenuRename,
- [3] = ArchiveBrowserEventFileMenuDelete,
- };
- typedef struct ArchiveBrowserView ArchiveBrowserView;
- typedef void (*ArchiveBrowserViewCallback)(ArchiveBrowserEvent event, void* context);
- typedef enum {
- BrowserActionBrowse,
- BrowserActionItemMenu,
- BrowserActionTotal,
- } BrowserActionEnum;
- struct ArchiveBrowserView {
- View* view;
- BrowserWorker* worker;
- ArchiveBrowserViewCallback callback;
- void* context;
- string_t path;
- InputKey last_tab_switch_dir;
- bool is_root;
- };
- typedef struct {
- ArchiveTabEnum tab_idx;
- files_array_t files;
- uint8_t menu_idx;
- bool menu;
- bool move_fav;
- bool list_loading;
- bool folder_loading;
- uint32_t item_cnt;
- int32_t item_idx;
- int32_t array_offset;
- int32_t list_offset;
- } ArchiveBrowserViewModel;
- void archive_browser_set_callback(
- ArchiveBrowserView* browser,
- ArchiveBrowserViewCallback callback,
- void* context);
- View* archive_browser_get_view(ArchiveBrowserView* browser);
- ArchiveBrowserView* browser_alloc();
- void browser_free(ArchiveBrowserView* browser);
|