// Copyright 2018 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. module ui.mojom; import "mojo/public/mojom/base/big_string.mojom"; import "mojo/public/mojom/base/string16.mojom"; import "mojo/public/mojom/base/time.mojom"; import "skia/public/interfaces/bitmap.mojom"; enum ClipboardType { COPY_PASTE, SELECTION, DRAG, }; // Provides remote access to a ui::Clipboard instance. interface ClipboardHost { [Sync] GetSequenceNumber(ClipboardType type) => (uint64 result); [Sync] IsFormatAvailable(string format, ClipboardType type) => (bool result); Clear(ClipboardType type); [Sync] ReadAvailableTypes(ClipboardType type) => (array types, bool contains_filenames); [Sync] ReadText(ClipboardType type) => (mojo_base.mojom.BigString16 result); [Sync] ReadAsciiText(ClipboardType type) => (mojo_base.mojom.BigString result); [Sync] ReadHTML(ClipboardType type) => (mojo_base.mojom.BigString16 markup, string src_url, uint32 fragment_start, uint32 fragment_end); [Sync] ReadRTF(ClipboardType type) => (string result); [Sync] ReadImage(ClipboardType type) => (skia.mojom.Bitmap? image); [Sync] ReadCustomData(ClipboardType clipboard_type, mojo_base.mojom.String16 type) => (mojo_base.mojom.BigString16 result); [Sync] ReadBookmark() => (mojo_base.mojom.String16 title, string url); [Sync] ReadData(string format) => (string result); [Sync] GetLastModifiedTime() => (mojo_base.mojom.Time time); ClearLastModifiedTime(); // Writing to the clipboard via IPC is a two-phase operation. First, the // client sends all the types of data it would like to write to the host. // Then, it calls CommitWrite to commit the data to the system clipboard. WriteText(mojo_base.mojom.BigString16 text); WriteHTML(mojo_base.mojom.BigString16 markup, string url); WriteRTF(string rtf); WriteBookmark(string url, mojo_base.mojom.String16 title); WriteWebSmartPaste(); WriteBitmap(skia.mojom.Bitmap bitmap); WriteData(string type, mojo_base.mojom.BigString data); CommitWrite(ClipboardType type); [EnableIf=is_mac] WriteStringToFindPboard(mojo_base.mojom.String16 text); };