bar can now toggle bluetooth power and discovery

This commit is contained in:
2025-12-22 01:41:01 +01:00
parent 0101ea1ec0
commit 5a429a3b8b
31 changed files with 507 additions and 114 deletions

View File

@@ -0,0 +1,35 @@
#pragma once
#include <gio/gio.h>
#include <gtk/gtk.h>
#include "sigc++/signal.h"
class BluetoothService {
public:
BluetoothService();
sigc::signal<void(bool)> powerStateChangedSignal;
sigc::signal<void(bool)> isDiscoveringChangedSignal;
bool getPowerState();
void setPowerState(bool state);
bool getIsDiscovering();
void setIsDiscovering(bool state);
private:
GDBusProxy *adapter_proxy = nullptr;
bool powerState = false;
bool isDiscovering = false;
void onPropertyChanged(GDBusProxy *proxy,
GVariant *changed_properties,
const gchar *const *invalidated_properties,
gpointer user_data);
static void onPropertyChangedStatic(GDBusProxy *proxy,
GVariant *changed_properties,
const gchar *const *invalidated_properties,
gpointer user_data);
};

View File

@@ -3,18 +3,18 @@
#include <gio/gio.h>
class NotificationService {
public:
public:
void intialize();
NotificationService() = default;
~NotificationService();
guint32 allocateNotificationId(guint32 replacesId);
GDBusConnection* getConnection() const { return connection; }
GDBusConnection *getConnection() const { return connection; }
private:
GDBusConnection* connection = nullptr;
guint registrationId = 0;
GDBusNodeInfo* nodeInfo = nullptr;
guint32 nextNotificationId = 1;
private:
GDBusConnection *connection = nullptr;
guint registrationId = 0;
GDBusNodeInfo *nodeInfo = nullptr;
guint32 nextNotificationId = 1;
};

View File

@@ -1,9 +1,10 @@
#pragma once
#include <memory>
#include <string>
#include "components/todoEntry.hpp"
#include "services/todoAdapter.hpp"
#include <memory>
#include <string>
class TodoService {
public:

View File

@@ -12,10 +12,10 @@ class ITodoAdapter {
public:
virtual ~ITodoAdapter() = default;
virtual bool init() = 0;
virtual bool init() = 0;
virtual std::vector<TodoRecord> listTodos() = 0;
virtual int addTodo(const std::string &text) = 0;
virtual bool removeTodo(int id) = 0;
virtual int addTodo(const std::string &text) = 0;
virtual bool removeTodo(int id) = 0;
virtual bool updateTodo(int id, const std::string &text) = 0;
};

View File

@@ -1,18 +1,17 @@
#pragma once
#include <gdkmm/memorytexture.h>
#include <gio/gio.h>
#include <giomm/actiongroup.h>
#include <giomm/dbusconnection.h>
#include <giomm/init.h>
#include <giomm/menumodel.h>
#include <glibmm/bytes.h>
#include <glibmm/refptr.h>
#include <sigc++/sigc++.h>
#include <gio/gio.h>
#include <map>
#include <memory>
#include <optional>
#include <sigc++/sigc++.h>
#include <string>
#include <vector>
@@ -49,8 +48,8 @@ class TrayService {
struct MenuNode {
int id = 0;
std::string label;
bool enabled = true;
bool visible = true;
bool enabled = true;
bool visible = true;
bool separator = false;
std::vector<MenuNode> children;
};
@@ -65,7 +64,7 @@ class TrayService {
struct TrackedItem {
Item publicData;
guint signalSubscriptionId = 0;
guint ownerWatchId = 0;
guint ownerWatchId = 0;
Glib::RefPtr<Gio::MenuModel> menuModel;
Glib::RefPtr<Gio::ActionGroup> menuActions;
};
@@ -74,9 +73,9 @@ class TrayService {
Glib::RefPtr<Gio::DBus::NodeInfo> nodeInfo;
Gio::DBus::InterfaceVTable vtable;
guint nameOwnerId = 0;
guint nameOwnerId = 0;
guint registrationId = 0;
bool hostRegistered = false;
bool hostRegistered = false;
std::map<std::string, std::unique_ptr<TrackedItem>> items;