Files
bar/include/app.hpp
2026-02-10 13:30:25 +01:00

39 lines
1.2 KiB
C++

#pragma once
#include <memory>
#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> bar;
std::shared_ptr<Gdk::Monitor> window;
};
App();
int run();
private:
Glib::RefPtr<Gtk::Application> app;
std::map<std::string, BarMonitorPair> bars;
std::shared_ptr<NotificationService> notificationService = NotificationService::getInstance();
std::shared_ptr<NotificationController> notificationController = NotificationController::getInstance();
std::shared_ptr<BluetoothController> bluetoothController = BluetoothController::getInstance();
std::shared_ptr<MprisController> mprisController = MprisController::getInstance();
std::shared_ptr<HyprlandService> hyprlandService = HyprlandService::getInstance();
TrayService *trayService = TrayService::getInstance();
void setupServices();
};