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 39 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 670 of file TrayIcon.cpp.

671 {
672 int r = 0;
673 r = sd_bus_message_open_container(m, 'r', "ia{sv}"); if (r < 0) return r;
674 r = sd_bus_message_append(m, "i", id); if (r < 0) return r;
675
676 r = sd_bus_message_open_container(m, 'a', "{sv}"); if (r < 0) return r;
677
678 r = sd_bus_message_open_container(m, 'e', "sv"); if (r < 0) return r;
679 r = sd_bus_message_append(m, "s", "label"); if (r < 0) return r;
680 r = sd_bus_message_open_container(m, 'v', "s"); if (r < 0) return r;
681 r = sd_bus_message_append(m, "s", label); if (r < 0) return r;
682 r = sd_bus_message_close_container(m); if (r < 0) return r;
683 r = sd_bus_message_close_container(m); if (r < 0) return r;
684
685 r = sd_bus_message_open_container(m, 'e', "sv"); if (r < 0) return r;
686 r = sd_bus_message_append(m, "s", "enabled"); if (r < 0) return r;
687 r = sd_bus_message_open_container(m, 'v', "b"); if (r < 0) return r;
688 r = sd_bus_message_append(m, "b", enabled ? 1 : 0); if (r < 0) return r;
689 r = sd_bus_message_close_container(m); if (r < 0) return r;
690 r = sd_bus_message_close_container(m); if (r < 0) return r;
691
692 r = sd_bus_message_close_container(m); if (r < 0) return r;
693 return sd_bus_message_close_container(m);
694 }

References 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 640 of file TrayIcon.cpp.

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

References append_menu_item().

◆ enabled_for_menu_id()

bool enabled_for_menu_id ( int )
inlinestatic

Definition at line 107 of file TrayIcon.cpp.

107 {
108 return true;
109}

References enabled_for_menu_id().

◆ invoke_std_function()

gboolean invoke_std_function ( gpointer data)
static

Definition at line 42 of file TrayIcon.cpp.

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

References invoke_std_function().

◆ label_for_menu_id()

const char * label_for_menu_id ( int id)
inlinestatic

Definition at line 98 of file TrayIcon.cpp.

98 {
99 switch (id) {
100 case 1: return _("Mostra/Nascondi finestra");
101 case 2: return _("Rendi persistente avvio");
102 case 3: return _("Esci");
103 default: return "";
104 }
105}
#define _(s)

References _, and 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 76 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 51 of file TrayIcon.cpp.