diff options
Diffstat (limited to 'src/support/clipboard.rs')
-rw-r--r-- | src/support/clipboard.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/support/clipboard.rs b/src/support/clipboard.rs new file mode 100644 index 0000000..d970b29 --- /dev/null +++ b/src/support/clipboard.rs @@ -0,0 +1,17 @@ +use clipboard::{ClipboardContext, ClipboardProvider}; +use imgui::{ClipboardBackend, ImStr, ImString}; + +pub struct ClipboardSupport(ClipboardContext); + +pub fn init() -> Option<ClipboardSupport> { + ClipboardContext::new().ok().map(ClipboardSupport) +} + +impl ClipboardBackend for ClipboardSupport { + fn get(&mut self) -> Option<ImString> { + self.0.get_contents().ok().map(|text| text.into()) + } + fn set(&mut self, text: &ImStr) { + let _ = self.0.set_contents(text.to_str().to_owned()); + } +} |