feat: improve MTK input boxes, right-click context menus
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "../apps_common.hpp"
|
||||
#include <gui/mtk/widgets.hpp>
|
||||
|
||||
namespace filemanager {
|
||||
|
||||
@@ -131,9 +132,6 @@ inline constexpr int CTX_RENAME = 4;
|
||||
inline constexpr int CTX_DELETE = 5;
|
||||
inline constexpr int CTX_NEW_FOLDER = 6;
|
||||
|
||||
inline constexpr int CTX_MENU_W = 140;
|
||||
inline constexpr int CTX_ITEM_H = 24;
|
||||
|
||||
inline bool filemanager_is_virtual_view(const FileManagerState* fm) {
|
||||
return fm && fm->virtual_view != FM_VIRTUAL_VIEW_NONE;
|
||||
}
|
||||
@@ -153,6 +151,29 @@ inline const char* filemanager_virtual_view_label(FileManagerVirtualViewKind vie
|
||||
int special_folder_index(const char* name);
|
||||
const char* ctx_label(int action);
|
||||
|
||||
inline mtk::ContextMenuState filemanager_context_state(const FileManagerState* fm) {
|
||||
if (!fm) return {};
|
||||
return {fm->ctx_open, fm->ctx_x, fm->ctx_y, fm->ctx_hover};
|
||||
}
|
||||
|
||||
inline void filemanager_store_context_state(FileManagerState* fm,
|
||||
const mtk::ContextMenuState& state) {
|
||||
if (!fm) return;
|
||||
fm->ctx_open = state.open;
|
||||
fm->ctx_x = state.x;
|
||||
fm->ctx_y = state.y;
|
||||
fm->ctx_hover = state.hover;
|
||||
}
|
||||
|
||||
inline void filemanager_build_context_items(const FileManagerState* fm,
|
||||
mtk::ContextMenuItem* items,
|
||||
int max_items) {
|
||||
if (!fm || !items || max_items <= 0) return;
|
||||
int count = fm->ctx_item_count < max_items ? fm->ctx_item_count : max_items;
|
||||
for (int i = 0; i < count; i++)
|
||||
items[i] = {ctx_label(fm->ctx_items[i]), fm->ctx_items[i], true};
|
||||
}
|
||||
|
||||
bool str_ends_with(const char* s, const char* suffix);
|
||||
bool is_image_file(const char* name);
|
||||
bool is_font_file(const char* name);
|
||||
|
||||
Reference in New Issue
Block a user