aboutsummaryrefslogtreecommitdiff
path: root/cross/include
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2026-01-07 00:26:32 -0700
committerJosh Rahm <joshuarahm@gmail.com>2026-01-07 00:26:32 -0700
commit4847aa0b4a6f945c24e1523e729652271bbc9680 (patch)
tree9ffac8b1934153cbde6f6814277f80c337d937b1 /cross/include
parent37e5037b68fb35276f0c426779f61aa278d5b21b (diff)
downloadmontis-4847aa0b4a6f945c24e1523e729652271bbc9680.tar.gz
montis-4847aa0b4a6f945c24e1523e729652271bbc9680.tar.bz2
montis-4847aa0b4a6f945c24e1523e729652271bbc9680.zip
[rebrand] Arken -> Ark, Plugin -> Soul, Erebor -> Cross
Diffstat (limited to 'cross/include')
-rw-r--r--cross/include/util.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/cross/include/util.h b/cross/include/util.h
new file mode 100644
index 0000000..3707ae1
--- /dev/null
+++ b/cross/include/util.h
@@ -0,0 +1,24 @@
+#ifndef MONTIS_UTIL_H
+#define MONTIS_UTIL_H
+
+/*
+ * Runtime helpers exposed to souls. These operate on compositor state and are
+ * intended for direct FFI use from a soul implementation.
+ */
+
+void montis_do_request_hot_reload(void *plugv);
+void montis_do_request_log(void *plugv, const char *str);
+void montis_do_request_exit(void *plugv, int ec);
+
+void *arksoul_get_seat(void *ctx);
+void *arksoul_toplevel_at(void *ctx, double lx, double ly);
+void arksoul_get_toplevel_position(void *toplevel, double *x, double *y);
+void arksoul_set_toplevel_position(void *toplevel, double x, double y);
+void arksoul_get_toplevel_geometry(void *toplevel, double *x, double *y,
+ double *w, double *h);
+void arksoul_set_toplevel_geometry(void *toplevel, double x, double y,
+ double w, double h);
+void arksoul_focus_toplevel(void *toplevel);
+void arksoul_warp_cursor(void *ctx, double lx, double ly);
+
+#endif /* MONTIS_UTIL_H */