/* * desktop_applet.hpp * Shared-library desktop applet ABI for MontaukOS * Copyright (c) 2026 Daniel Hammer */ #pragma once #include namespace gui::desktop_applet { inline constexpr uint32_t ABI_VERSION = 1; inline constexpr uint32_t CAP_SYSTEM_CONFIGURATION = 1u << 0; struct Host { char current_user[32]; char home_dir[128]; char user_config_dir[128]; bool is_admin; }; struct Descriptor { uint32_t abi_version; uint32_t capabilities; const char* applet_id; const char* display_name; const char* icon_path; }; using QueryFn = const Descriptor* (*)(); using OpenFn = bool (*)(const Host* host); inline constexpr const char* QUERY_SYMBOL = "desktop_applet_query_v1"; inline constexpr const char* OPEN_SYMBOL = "desktop_applet_open_v1"; } // namespace gui::desktop_applet