summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--glutin/src/lib.rs5
-rw-r--r--src/clipboard.rs3
-rw-r--r--src/lib.rs1
-rw-r--r--winit/src/clipboard.rs14
4 files changed, 22 insertions, 1 deletions
diff --git a/glutin/src/lib.rs b/glutin/src/lib.rs
index 107d9556..cd987e2f 100644
--- a/glutin/src/lib.rs
+++ b/glutin/src/lib.rs
@@ -16,10 +16,13 @@ pub use iced_native::*;
pub mod application;
+pub use iced_winit::clipboard;
pub use iced_winit::settings;
-pub use iced_winit::{Clipboard, Error, Mode};
+pub use iced_winit::{Error, Mode};
#[doc(no_inline)]
pub use application::Application;
#[doc(no_inline)]
+pub use clipboard::Clipboard;
+#[doc(no_inline)]
pub use settings::Settings;
diff --git a/src/clipboard.rs b/src/clipboard.rs
new file mode 100644
index 00000000..dde17051
--- /dev/null
+++ b/src/clipboard.rs
@@ -0,0 +1,3 @@
+//! Access the clipboard.
+#[cfg(not(target_arch = "wasm32"))]
+pub use crate::runtime::clipboard::{read, write};
diff --git a/src/lib.rs b/src/lib.rs
index 8bf4d0e0..e4f00c07 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -183,6 +183,7 @@ mod error;
mod result;
mod sandbox;
+pub mod clipboard;
pub mod executor;
pub mod keyboard;
pub mod mouse;
diff --git a/winit/src/clipboard.rs b/winit/src/clipboard.rs
index 9d0663fa..05d991ff 100644
--- a/winit/src/clipboard.rs
+++ b/winit/src/clipboard.rs
@@ -1,6 +1,8 @@
//! Access the clipboard.
pub use iced_native::clipboard::Action;
+use crate::command::{self, Command};
+
/// A buffer for short-term storage and transfer within and between
/// applications.
#[allow(missing_debug_implementations)]
@@ -55,3 +57,15 @@ impl iced_native::Clipboard for Clipboard {
self.write(contents)
}
}
+
+/// Read the current contents of the clipboard.
+pub fn read<Message>(
+ f: impl Fn(Option<String>) -> Message + 'static,
+) -> Command<Message> {
+ Command::Single(command::Action::Clipboard(Action::Read(Box::new(f))))
+}
+
+/// Write the given contents to the clipboard.
+pub fn write<Message>(contents: String) -> Command<Message> {
+ Command::Single(command::Action::Clipboard(Action::Write(contents)))
+}