Skip to content
API Documentation
BastionGuard™
TrayIcon.cpp File Reference

Go to the source code of this file.

Macros

#define TI_LOG(fmt, ...)

Functions

static gboolean invoke_std_function (gpointer data)
static const char * label_for_menu_id (int id)
static bool enabled_for_menu_id (int)
static int append_menu_item (sd_bus_message *m, int id, const char *label, bool enabled=true)
static int append_item_properties (sd_bus_message *m, int id, const char *label, bool enabled)

Variables

static const sd_bus_vtable sni_vtable []
static const sd_bus_vtable dbusmenu_vtable []

Macro Definition Documentation

◆ TI_LOG

#define TI_LOG ( fmt,
... )
Value:
std::fprintf(stderr, "[TrayIcon] " fmt "\n", ##__VA_ARGS__)

Definition at line 38 of file TrayIcon.cpp.

Function Documentation

◆ append_item_properties()

int append_item_properties ( sd_bus_message * m,
int id,
const char * label,
bool enabled )
static

Definition at line 636 of file TrayIcon.cpp.

637 {
638 int r = 0;
639 r = sd_bus_message_open_container(m, 'r', "ia{sv}"); if (r < 0) return r;
640 r = sd_bus_message_append(m, "i", id); if (r < 0) return r;
641
642 r = sd_bus_message_open_container(m, 'a', "{sv}"); if (r < 0) return r;
643
644 r = sd_bus_message_open_container(m, 'e', "sv"); if (r < 0) return r;
645 r = sd_bus_message_append(m, "s", "label"); if (r < 0) return r;
646 r = sd_bus_message_open_container(m, 'v', "s"); if (r < 0) return r;
647 r = sd_bus_message_append(m, "s", label); if (r < 0) return r;
648 r = sd_bus_message_close_container(m); if (r < 0) return r;
649 r = sd_bus_message_close_container(m); if (r < 0) return r;
650
651 r = sd_bus_message_open_container(m, 'e', "sv"); if (r < 0) return r;
652 r = sd_bus_message_append(m, "s", "enabled"); if (r < 0) return r;
653 r = sd_bus_message_open_container(m, 'v', "b"); if (r < 0) return r;
654 r = sd_bus_message_append(m, "b", enabled ? 1 : 0); if (r < 0) return r;
655 r = sd_bus_message_close_container(m); if (r < 0) return r;
656 r = sd_bus_message_close_container(m); if (r < 0) return r;
657
658 r = sd_bus_message_close_container(m); if (r < 0) return r;
659 return sd_bus_message_close_container(m);
660}

References append_item_properties().

Referenced by append_item_properties().

◆ append_menu_item()

int append_menu_item ( sd_bus_message * m,
int id,
const char * label,
bool enabled = true )
static

Definition at line 606 of file TrayIcon.cpp.

607 {
608 int r = 0;
609 r = sd_bus_message_open_container(m, 'r', "ia{sv}av"); if (r < 0) return r;
610 r = sd_bus_message_append(m, "i", id); if (r < 0) return r;
611
612 r = sd_bus_message_open_container(m, 'a', "{sv}"); if (r < 0) return r;
613
614 r = sd_bus_message_open_container(m, 'e', "sv"); if (r < 0) return r;
615 r = sd_bus_message_append(m, "s", "label"); if (r < 0) return r;
616 r = sd_bus_message_open_container(m, 'v', "s"); if (r < 0) return r;
617 r = sd_bus_message_append(m, "s", label); if (r < 0) return r;
618 r = sd_bus_message_close_container(m); if (r < 0) return r;
619 r = sd_bus_message_close_container(m); if (r < 0) return r;
620
621 r = sd_bus_message_open_container(m, 'e', "sv"); if (r < 0) return r;
622 r = sd_bus_message_append(m, "s", "enabled"); if (r < 0) return r;
623 r = sd_bus_message_open_container(m, 'v', "b"); if (r < 0) return r;
624 r = sd_bus_message_append(m, "b", enabled ? 1 : 0); if (r < 0) return r;
625 r = sd_bus_message_close_container(m); if (r < 0) return r;
626 r = sd_bus_message_close_container(m); if (r < 0) return r;
627
628 r = sd_bus_message_close_container(m); if (r < 0) return r;
629
630 r = sd_bus_message_open_container(m, 'a', "v"); if (r < 0) return r;
631 r = sd_bus_message_close_container(m); if (r < 0) return r;
632
633 return sd_bus_message_close_container(m);
634}

References append_menu_item().

Referenced by append_menu_item().

◆ enabled_for_menu_id()

bool enabled_for_menu_id ( int )
inlinestatic

Definition at line 106 of file TrayIcon.cpp.

106 {
107 return true;
108}

References enabled_for_menu_id().

Referenced by enabled_for_menu_id().

◆ invoke_std_function()

gboolean invoke_std_function ( gpointer data)
static

Definition at line 41 of file TrayIcon.cpp.

41 {
42 auto* fn = static_cast<std::function<void()>*>(data);
43 (*fn)();
44 delete fn;
45 return G_SOURCE_REMOVE;
46}

References invoke_std_function().

Referenced by invoke_std_function().

◆ label_for_menu_id()

const char * label_for_menu_id ( int id)
inlinestatic

Definition at line 97 of file TrayIcon.cpp.

97 {
98 switch (id) {
99 case 1: return _("Mostra/Maximizza finestra");
100 case 2: return _("Impostazioni");
101 case 3: return _("Esci");
102 default: return "";
103 }
104}
#define _(s)

References _, and label_for_menu_id().

Referenced by label_for_menu_id().

Variable Documentation

◆ dbusmenu_vtable

const sd_bus_vtable dbusmenu_vtable[]
static
Initial value:
= {
SD_BUS_VTABLE_START(0),
SD_BUS_METHOD("GetLayout", "iias", "u(ia{sv}av)", TrayIcon::dbusmenu_method_get_layout, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetChildren", "i", "ai", TrayIcon::dbusmenu_method_get_children, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetGroupProperties", "aias", "a(ia{sv})", TrayIcon::dbusmenu_method_get_group_properties, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetProperty", "is", "v", TrayIcon::dbusmenu_method_get_property, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetStatus", "", "s", TrayIcon::dbusmenu_method_get_status, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("Event", "isvu", "", TrayIcon::dbusmenu_method_event, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("AboutToShow", "i", "b", TrayIcon::dbusmenu_method_about_to_show, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("EventGroup", "a(isvu)", "ai", TrayIcon::dbusmenu_method_event_group, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("AboutToShowGroup", "ai", "aiai", TrayIcon::dbusmenu_method_about_to_show_group, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_PROPERTY("Version", "u", TrayIcon::dbusmenu_prop_get, 0, SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_SIGNAL("LayoutUpdated", "ui", 0),
SD_BUS_SIGNAL("ItemsPropertiesUpdated", "a(ia{sv})a(ias)", 0),
SD_BUS_VTABLE_END
}

Definition at line 75 of file TrayIcon.cpp.

◆ sni_vtable

const sd_bus_vtable sni_vtable[]
static
Initial value:
= {
SD_BUS_VTABLE_START(0),
SD_BUS_METHOD("Activate", "ii", "", TrayIcon::sni_method_activate, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("ContextMenu", "ii", "", TrayIcon::sni_method_context_menu, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("SecondaryActivate", "ii", "", TrayIcon::sni_method_secondary_activate, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_PROPERTY("Category", "s", TrayIcon::sni_prop_get, 0, SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("Id", "s", TrayIcon::sni_prop_get, 0, SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("Title", "s", TrayIcon::sni_prop_get, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_PROPERTY("Status", "s", TrayIcon::sni_prop_get, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_PROPERTY("IconName", "s", TrayIcon::sni_prop_get, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_PROPERTY("IconPixmap", "a(iiay)", TrayIcon::sni_prop_get, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_PROPERTY("ToolTip", "(sa(iiay)ss)", TrayIcon::sni_prop_get, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_PROPERTY("Menu", "o", TrayIcon::sni_prop_get, 0, SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_SIGNAL("NewIcon", "", 0),
SD_BUS_SIGNAL("NewTitle", "", 0),
SD_BUS_SIGNAL("NewStatus", "", 0),
SD_BUS_SIGNAL("NewToolTip", "", 0),
SD_BUS_VTABLE_END
}

Definition at line 50 of file TrayIcon.cpp.