diff foosdk/sdk/libPPUI/clipboard.h @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/foosdk/sdk/libPPUI/clipboard.h	Mon Jan 05 02:15:46 2026 -0500
@@ -0,0 +1,33 @@
+#pragma once
+
+namespace ClipboardHelper {
+
+	class OpenScope {
+	public:
+		OpenScope() : m_open(false) {}
+		~OpenScope() {Close();}
+		void Open(HWND p_owner);
+		void Close();
+	private:
+		bool m_open;
+		
+		PFC_CLASS_NOT_COPYABLE_EX(OpenScope)
+	};
+
+	void SetRaw(UINT format,const void * buffer, t_size size);
+	void SetString(const char * in);
+
+	bool GetString(pfc::string_base & out);
+
+	template<typename TArray>
+	bool GetRaw(UINT format,TArray & out) {
+		pfc::assert_byte_type<typename TArray::t_item>();
+		HANDLE data = GetClipboardData(format);
+		if (data == NULL) return false;
+		CGlobalLockScope lock(data);
+		out.set_size( lock.GetSize() );
+		memcpy(out.get_ptr(), lock.GetPtr(), lock.GetSize() );
+		return true;
+	}
+	bool IsTextAvailable();
+};