/* sc_panel.h — состояние одной независимой файловой панели. */ #ifndef SC_PANEL_H #define SC_PANEL_H #include #include "sc_entry.h" #define SC_SOURCE_REAL_FS 0u typedef enum { SC_SORT_NAME = 0, SC_SORT_EXTENSION, SC_SORT_SIZE, SC_SORT_DATE } ScSortKey; typedef struct { char path[256]; uint16_t count; uint16_t cursor; uint16_t top; uint32_t total_size; uint16_t selected_count; uint32_t selected_size; uint8_t source_kind; uint8_t phys_page; uint8_t truncated; uint8_t dirty; uint8_t sort_key; uint8_t sort_descending; } ScPanel; int sc_panel_init(ScPanel *panel, uint8_t phys_page); int sc_panel_refresh(ScPanel *panel); int sc_panel_selected(const ScPanel *panel, ScDirEntry *entry); int sc_panel_open_selected(ScPanel *panel); int sc_panel_parent(ScPanel *panel); void sc_panel_normalize_view(ScPanel *panel); #endif