Skip to content
API Documentation
BastionGuard™
TrayIconStub.cpp
Go to the documentation of this file.
1/*
2 * BastionGuard tray fallback for systems built without libsystemd/sd-bus.
3 * The main window remains fully functional; only the StatusNotifierItem is
4 * unavailable.
5 */
6
7#include "TrayIcon.hpp"
8
9#include <cstdio>
10#include <utility>
11
12TrayIcon::TrayIcon() = default;
13
15 stop();
16 if (ui_ctx_) {
17 g_main_context_unref(ui_ctx_);
18 ui_ctx_ = nullptr;
19 }
20}
21
22bool TrayIcon::start() {
23 std::fprintf(stderr,
24 "[TrayIcon] sd-bus non disponibile: icona di notifica disabilitata\n");
25 return false;
26}
27
28void TrayIcon::stop() {
29 running_ = false;
30 if (bus_thread_.joinable())
31 bus_thread_.join();
32}
33
35 if (ui_ctx_)
36 g_main_context_unref(ui_ctx_);
37 ui_ctx_ = g_main_context_ref_thread_default();
38 if (!ui_ctx_)
39 ui_ctx_ = g_main_context_ref(g_main_context_default());
40}
41
42void TrayIcon::set_icon_file(const std::string&, int) {
43 have_pixmap_ = false;
44 pix_rgba_.clear();
45}
46
47void TrayIcon::set_icon(const std::string& icon_name) {
48 icon_name_ = icon_name;
49}
50
51void TrayIcon::set_tooltip(const std::string& text) {
52 tooltip_ = text;
53}
54
55void TrayIcon::set_title(const std::string& title) {
56 title_ = title;
57}
void bind_ui_context()
Definition TrayIcon.cpp:297
bool have_pixmap_
Definition TrayIcon.hpp:101
void set_title(const std::string &title)
Definition TrayIcon.cpp:373
void set_icon(const std::string &icon_name)
Definition TrayIcon.cpp:363
std::vector< uint8_t > pix_rgba_
Definition TrayIcon.hpp:104
std::thread bus_thread_
Definition TrayIcon.hpp:117
bool start()
Definition TrayIcon.cpp:135
void stop()
Definition TrayIcon.cpp:282
std::string tooltip_
Definition TrayIcon.hpp:97
GMainContext * ui_ctx_
Definition TrayIcon.hpp:99
std::atomic_bool running_
Definition TrayIcon.hpp:118
void set_icon_file(const std::string &png_path, int target_px=22)
Definition TrayIcon.cpp:302
std::string title_
Definition TrayIcon.hpp:95
void set_tooltip(const std::string &text)
Definition TrayIcon.cpp:368
std::string icon_name_
Definition TrayIcon.hpp:96