#pragma once #include #include "bar/bar.hpp" #include "connection/dbus/bluetooth.hpp" #include "connection/dbus/notification.hpp" #include "connection/dbus/tray.hpp" #include "services/hyprland.hpp" #include "services/notificationController.hpp" #include "gdkmm/monitor.h" #include "glibmm/refptr.h" #include "gtkmm/application.h" class App { public: struct BarMonitorPair { std::shared_ptr bar; std::shared_ptr window; }; App(); int run(); private: Glib::RefPtr app; std::map bars; std::shared_ptr notificationService = NotificationService::getInstance(); std::shared_ptr notificationController = NotificationController::getInstance(); std::shared_ptr bluetoothController = BluetoothController::getInstance(); std::shared_ptr mprisController = MprisController::getInstance(); std::shared_ptr hyprlandService = HyprlandService::getInstance(); TrayService *trayService = TrayService::getInstance(); void setupServices(); };