38 lines
839 B
C++
38 lines
839 B
C++
/*
|
|
* desktop_applet.hpp
|
|
* Shared-library desktop applet ABI for MontaukOS
|
|
* Copyright (c) 2026 Daniel Hammer
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <cstdint>
|
|
|
|
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
|