summaryrefslogtreecommitdiff
path: root/csrc/services/workspace-service.h
diff options
context:
space:
mode:
authorHannes Schulze <haschu0103@outlook.de>2025-06-19 23:17:58 +0200
committerHannes Schulze <haschu0103@outlook.de>2025-06-19 23:17:58 +0200
commit1af3d14f3f995645a0de08a54b244c19840709e9 (patch)
tree3c4098863d8a8fd004a2acc8912a23b6036ab4dd /csrc/services/workspace-service.h
parent40efcf60a5f39674b5137f11de7bcfe37fb121b5 (diff)
init hs project
Diffstat (limited to 'csrc/services/workspace-service.h')
-rw-r--r--csrc/services/workspace-service.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/csrc/services/workspace-service.h b/csrc/services/workspace-service.h
new file mode 100644
index 0000000..c80e7dc
--- /dev/null
+++ b/csrc/services/workspace-service.h
@@ -0,0 +1,42 @@
+#pragma once
+
+#include <glib-object.h>
+#include <gio/gio.h>
+
+G_BEGIN_DECLS
+
+#define FOOBAR_TYPE_WORKSPACE_FLAGS foobar_workspace_flags_get_type( )
+#define FOOBAR_TYPE_WORKSPACE foobar_workspace_get_type( )
+#define FOOBAR_TYPE_WORKSPACE_SERVICE foobar_workspace_service_get_type( )
+
+typedef enum
+{
+ FOOBAR_WORKSPACE_FLAGS_NONE = 0,
+ // Indicates that the workspace is a globally active one (i.e. visible on the focused monitor).
+ FOOBAR_WORKSPACE_FLAGS_ACTIVE = 1 << 0,
+ // Indicates that the workspace is currently visible.
+ FOOBAR_WORKSPACE_FLAGS_VISIBLE = 1 << 1,
+ // Indicates that the workspace is a special workspace.
+ FOOBAR_WORKSPACE_FLAGS_SPECIAL = 1 << 2,
+ // Indicates that the workspace is persistent (i.e. configured in the config file).
+ FOOBAR_WORKSPACE_FLAGS_PERSISTENT = 1 << 3,
+ // Indicates that the workspace requires an urgent action (e.g. a notification).
+ FOOBAR_WORKSPACE_FLAGS_URGENT = 1 << 4,
+} FoobarWorkspaceFlags;
+
+GType foobar_workspace_flags_get_type( void );
+
+G_DECLARE_FINAL_TYPE( FoobarWorkspace, foobar_workspace, FOOBAR, WORKSPACE, GObject )
+
+gint64 foobar_workspace_get_id ( FoobarWorkspace* self );
+gchar const* foobar_workspace_get_name ( FoobarWorkspace* self );
+gchar const* foobar_workspace_get_monitor( FoobarWorkspace* self );
+FoobarWorkspaceFlags foobar_workspace_get_flags ( FoobarWorkspace* self );
+void foobar_workspace_activate ( FoobarWorkspace* self );
+
+G_DECLARE_FINAL_TYPE( FoobarWorkspaceService, foobar_workspace_service, FOOBAR, WORKSPACE_SERVICE, GObject )
+
+FoobarWorkspaceService* foobar_workspace_service_new ( void );
+GListModel* foobar_workspace_service_get_workspaces( FoobarWorkspaceService* self );
+
+G_END_DECLS