diff --git a/glfw/src/clipboard.zig b/glfw/src/clipboard.zig index 95e3808..d573643 100644 --- a/glfw/src/clipboard.zig +++ b/glfw/src/clipboard.zig @@ -22,31 +22,28 @@ pub inline fn setClipboardString(value: [*c]const u8) Error!void { try getError(); } -// TODO(clipboard): -// /// Returns the contents of the clipboard as a string. -// /// -// /// This function returns the contents of the system clipboard, if it contains -// /// or is convertible to a UTF-8 encoded string. If the clipboard is empty or -// /// if its contents cannot be converted, null is returned and a glfw.Error.FormatUnavailable error is generated. -// /// -// /// @param[in] window Deprecated. Any valid window or null. -// /// @return The contents of the clipboard as a UTF-8 encoded string, or null -// /// if an error occurred. -// /// -// /// Possible errors include glfw.Error.NotInitialized and glfw.Error.PlatformError. -// /// -// /// @pointer_lifetime The returned string is allocated and freed by GLFW. You -// /// should not free it yourself. It is valid until the next call to @ref -// /// glfwGetClipboardString or @ref glfwSetClipboardString, or until the library -// /// is terminated. -// /// -// /// @thread_safety This function must only be called from the main thread. -// /// -// /// see also: clipboard, glfwSetClipboardString -// /// -// /// -// /// @ingroup input -// GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window); +/// Returns the contents of the clipboard as a string. +/// +/// This function returns the contents of the system clipboard, if it contains or is convertible to +/// a UTF-8 encoded string. If the clipboard is empty or if its contents cannot be converted, +/// glfw.Error.FormatUnavailable is returned. +/// +/// @return The contents of the clipboard as a UTF-8 encoded string, or null if an error occurred. +/// +/// Possible errors include glfw.Error.NotInitialized and glfw.Error.PlatformError. +/// +/// @pointer_lifetime The returned string is allocated and freed by GLFW. You should not free it +/// yourself. It is valid until the next call to glfw.getClipboardString or glfw.setClipboardString +/// or until the library is terminated. +/// +/// @thread_safety This function must only be called from the main thread. +/// +/// see also: clipboard, glfwSetClipboardString +pub inline fn getClipboardString() Error![*c]const u8 { + const value = c.glfwGetClipboardString(null); + try getError(); + return value; +} test "setClipboardString" { const glfw = @import("main.zig"); @@ -55,3 +52,11 @@ test "setClipboardString" { try glfw.setClipboardString("hello mach"); } + +test "getClipboardString" { + const glfw = @import("main.zig"); + try glfw.init(); + defer glfw.terminate(); + + _ = try glfw.getClipboardString(); +}