4 #ifndef SWIFT_SIM_XSWIFTBUS_MENUS_H
5 #define SWIFT_SIM_XSWIFTBUS_MENUS_H
9 #include <XPLM/XPLMMenus.h>
42 CMenuItem(XPLMMenuID parent,
int item,
bool checkable, std::function<
void(
bool)> callback);
44 void setIndex(
int index) { m_data->index = index; }
48 Data(XPLMMenuID parent_,
int index_,
bool checkable_, std::function<
void(
bool)> callback_)
49 : parent(parent_), index(index_), checkable(checkable_), callback(callback_)
54 std::function<void(
bool)> callback;
56 std::shared_ptr<Data> m_data;
72 CMenuItem item(
const std::string &name, std::function<
void()> callback);
88 using ItemList = std::list<CMenuItem>;
91 CMenu(XPLMMenuID
id,
bool isMainMenu, std::unique_ptr<ItemList> items);
93 static void handler(
void *menuRef,
void *itemRef);
97 Data(XPLMMenuID id_,
bool isMainMenu_, std::unique_ptr<ItemList> items_)
98 : id(id_), isMainMenu(isMainMenu_), items(std::move(items_))
102 std::unique_ptr<ItemList> items;
104 Data(
const Data &) =
delete;
105 Data &operator=(
const Data &) =
delete;
107 std::shared_ptr<Data> m_data;
Plugin loaded by X-Plane which publishes a DBus service.