summaryrefslogtreecommitdiff
path: root/client/clipboard/clipboard.go
diff options
context:
space:
mode:
authorcitrons <citrons@mondecitronne.com>2025-05-31 17:16:38 -0500
committercitrons <citrons@mondecitronne.com>2025-05-31 17:16:57 -0500
commitb11c892158772f508e494b2726a5d4db1bb74d23 (patch)
tree16113353422520259ccc7937e9085a68ac6663a6 /client/clipboard/clipboard.go
parent0a58e68ad438ff43fa5bbecdb8914aa00cab5099 (diff)
text input box
Diffstat (limited to 'client/clipboard/clipboard.go')
-rw-r--r--client/clipboard/clipboard.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/client/clipboard/clipboard.go b/client/clipboard/clipboard.go
new file mode 100644
index 0000000..b110378
--- /dev/null
+++ b/client/clipboard/clipboard.go
@@ -0,0 +1,34 @@
+package tui
+
+import (
+ "sync"
+)
+
+type Clipboard interface {
+ Copy(text string)
+ Paste() <-chan string
+}
+
+type virtualClipboard string
+
+func (clip *virtualClipboard) Copy(text string) {
+ *clip = text
+}
+
+var ch = make(chan string)
+func (clip *virtualClipboard) Paste() <-chan string {
+ go func() {
+ ch <- *clip
+ }()
+ return ch
+}
+
+var clipboard Clipboard = virtualClipboard {}
+var mut RWMutex
+
+func Get() {
+ mut.RLock()
+ c := clipboard
+ mut.RUnlock()
+ return c
+}