Clipboard

clipboard feature is used to enable system clipboard read/write capability. It is suitable for implementing copy, paste, import/export of temporary text and similar functionality.

[dependencies]
flor = { version = "0.1.0", features = ["direct2d", "clipboard"] }

Basic Usage

Clipboard entry is in platform layer. When using import ClipboardApi trait, then create Clipboard.

use flor::base::platform::ClipboardApi;
use flor::platform::clipboard::Clipboard;

let clipboard = Clipboard(None);
clipboard.set_clipboard_text("hello flor".to_string())?;

let text = clipboard.get_clipboard_text()?;
println!("{text}");

Clipboard(None) means not binding specific window. When you need to associate clipboard operation with a given window, can pass Some(window_id).

use flor::base::platform::ClipboardApi;
use flor::platform::clipboard::Clipboard;

let clipboard = Clipboard(Some(window_id));
clipboard.set_clipboard_text("from this window".to_string())?;

Supported Content

ClipboardApi provides two kinds of entries:

MethodPurpose
set_clipboard_text(...) / get_clipboard_text()Read/write text.
set_clipboard(...) / get_clipboard(...)Read/write raw bytes by clipboard format.
register_format(...)Register custom clipboard format.
set_clipboard_muti_type(...)Write multiple formats at once.

Common clipboard formats are represented by ClipboardType, including Text, Image, Rtf, Html, Files. If want to exchange complex data with other applications, can first register custom format, then read/write corresponding bytes.