annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #pragma once
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 namespace ClipboardHelper {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 class OpenScope {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 OpenScope() : m_open(false) {}
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 ~OpenScope() {Close();}
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 void Open(HWND p_owner);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 void Close();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11 private:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 bool m_open;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 PFC_CLASS_NOT_COPYABLE_EX(OpenScope)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 void SetRaw(UINT format,const void * buffer, t_size size);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 void SetString(const char * in);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 bool GetString(pfc::string_base & out);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 template<typename TArray>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 bool GetRaw(UINT format,TArray & out) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 pfc::assert_byte_type<typename TArray::t_item>();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 HANDLE data = GetClipboardData(format);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 if (data == NULL) return false;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 CGlobalLockScope lock(data);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 out.set_size( lock.GetSize() );
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 memcpy(out.get_ptr(), lock.GetPtr(), lock.GetSize() );
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30 return true;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 bool IsTextAvailable();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33 };