46 void set_icon(
const std::string& icon_name);
49 void set_icon_file(
const std::string& png_path,
int target_px = 22);
59#if BASTIONGUARD_HAS_SDBUS
60 static int sni_method_activate(sd_bus_message* m,
void* userdata, sd_bus_error* ret_error);
61 static int sni_method_context_menu(sd_bus_message* m,
void* userdata, sd_bus_error* ret_error);
62 static int sni_method_secondary_activate(sd_bus_message* m,
void* userdata, sd_bus_error* ret_error);
64 static int sni_prop_get(sd_bus* bus,
66 const char* interface,
68 sd_bus_message* reply,
70 sd_bus_error* ret_error);
71 static int dbusmenu_method_event_group(sd_bus_message* m,
void* userdata, sd_bus_error* ret_error);
72 static int dbusmenu_method_about_to_show_group(sd_bus_message* m,
void* userdata, sd_bus_error* ret_error);
73 static int dbusmenu_method_get_layout(sd_bus_message* m,
void* userdata, sd_bus_error* ret_error);
74 static int dbusmenu_method_get_children(sd_bus_message* m,
void* userdata, sd_bus_error* ret_error);
75 static int dbusmenu_method_get_group_properties(sd_bus_message* m,
void* userdata, sd_bus_error* ret_error);
76 static int dbusmenu_method_get_property(sd_bus_message* m,
void* userdata, sd_bus_error* ret_error);
77 static int dbusmenu_method_get_status(sd_bus_message* m,
void* userdata, sd_bus_error* ret_error);
79 static int dbusmenu_method_event(sd_bus_message* m,
void* userdata, sd_bus_error* ret_error);
80 static int dbusmenu_method_about_to_show(sd_bus_message* m,
void* userdata, sd_bus_error* ret_error);
82 static int dbusmenu_prop_get(sd_bus* bus,
84 const char* interface,
86 sd_bus_message* reply,
88 sd_bus_error* ret_error);
94 std::string
id_ =
"bastionguard";
97 std::string
tooltip_ =
"BastionGuard in esecuzione";
111#if BASTIONGUARD_HAS_SDBUS
112 sd_bus* bus_ =
nullptr;
113 sd_bus_slot* sni_slot_ =
nullptr;
114 sd_bus_slot* menu_slot_ =
nullptr;
126#if BASTIONGUARD_HAS_SDBUS
127 static std::string make_service_name();
133 bool export_objects();
134 void unexport_objects();
135 bool register_to_watcher();
139 void emit_sni_signal(
const char* signal_name);
140 void emit_dbusmenu_layout_updated();