summaryrefslogtreecommitdiff
path: root/lib/CWayland
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CWayland')
-rw-r--r--lib/CWayland/CWayland.cc8
-rw-r--r--lib/CWayland/CWayland.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/CWayland/CWayland.cc b/lib/CWayland/CWayland.cc
index 5f9b052..0c02d66 100644
--- a/lib/CWayland/CWayland.cc
+++ b/lib/CWayland/CWayland.cc
@@ -1279,4 +1279,12 @@ lean_obj_res waylean_proxy_keep(b_lean_obj_arg proxy)
{
(void)proxy;
return lean_io_result_mk_ok(lean_box(0));
+}
+
+// Proxy.getType : (proxy : @& Proxy) → IO String
+lean_obj_res waylean_proxy_get_type(b_lean_obj_arg proxy_obj)
+{
+ auto proxy = static_cast<wl_proxy*>(lean_get_external_data(proxy_obj));
+ auto name = wl_proxy_get_interface(proxy)->name;
+ return lean_io_result_mk_ok(lean_mk_string(name));
} \ No newline at end of file
diff --git a/lib/CWayland/CWayland.h b/lib/CWayland/CWayland.h
index 74ed5e6..1eeb98f 100644
--- a/lib/CWayland/CWayland.h
+++ b/lib/CWayland/CWayland.h
@@ -82,6 +82,7 @@ lean_obj_res waylean_proxy_send_constructor(b_lean_obj_arg proxy,
lean_obj_res waylean_proxy_listen (b_lean_obj_arg proxy,
lean_obj_arg handler);
lean_obj_res waylean_proxy_keep (b_lean_obj_arg proxy);
+lean_obj_res waylean_proxy_get_type (b_lean_obj_arg proxy);
#ifdef __cplusplus
}