Struct wayland_server::protocol::wl_data_offer::WlDataOffer
source · [−]pub struct WlDataOffer { /* private fields */ }Expand description
offer to transfer data
A wl_data_offer represents a piece of data offered for transfer by another client (the source client). It is used by the copy-and-paste and drag-and-drop mechanisms. The offer describes the different mime types that the data can be converted to and provides the mechanism for transferring the data directly from the source client.
See also the Request enum for this interface.
Implementations
sourceimpl WlDataOffer
impl WlDataOffer
sourcepub fn offer(&self, mime_type: String)
pub fn offer(&self, mime_type: String)
advertise offered mime type
Sent immediately after creating the wl_data_offer object. One event per offered mime type.
sourcepub fn source_actions(&self, source_actions: DndAction)
pub fn source_actions(&self, source_actions: DndAction)
notify the source-side available actions
This event indicates the actions offered by the data source. It will be sent right after wl_data_device.enter, or anytime the source side changes its offered actions through wl_data_source.set_actions.
sourcepub fn action(&self, dnd_action: DndAction)
pub fn action(&self, dnd_action: DndAction)
notify the selected action
This event indicates the action selected by the compositor after matching the source/destination side actions. Only one action (or none) will be offered here.
This event can be emitted multiple times during the drag-and-drop operation in response to destination side action changes through wl_data_offer.set_actions.
This event will no longer be emitted after wl_data_device.drop happened on the drag-and-drop destination, the client must honor the last action received, or the last preferred one set through wl_data_offer.set_actions when handling an “ask” action.
Compositors may also change the selected action on the fly, mainly in response to keyboard modifier changes during the drag-and-drop operation.
The most recent action received is always the valid one. Prior to receiving wl_data_device.drop, the chosen action may change (e.g. due to keyboard modifiers being pressed). At the time of receiving wl_data_device.drop the drag-and-drop destination must honor the last action received.
Action changes may still happen after wl_data_device.drop, especially on “ask” actions, where the drag-and-drop destination may choose another action afterwards. Action changes happening at this stage are always the result of inter-client negotiation, the compositor shall no longer be able to induce a different action.
Upon “ask” actions, it is expected that the drag-and-drop destination may potentially choose a different action and/or mime type, based on wl_data_offer.source_actions and finally chosen by the user (e.g. popping up a menu with the available options). The final wl_data_offer.set_actions and wl_data_offer.accept requests must happen before the call to wl_data_offer.finish.
Trait Implementations
sourceimpl Clone for WlDataOffer
impl Clone for WlDataOffer
sourcefn clone(&self) -> WlDataOffer
fn clone(&self) -> WlDataOffer
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl Debug for WlDataOffer
impl Debug for WlDataOffer
sourceimpl PartialEq<WlDataOffer> for WlDataOffer
impl PartialEq<WlDataOffer> for WlDataOffer
sourceimpl Resource for WlDataOffer
impl Resource for WlDataOffer
type Request = Request
type Event = Event
fn interface() -> &'static Interface
fn id(&self) -> ObjectId
fn version(&self) -> u32
fn data<U: 'static>(&self) -> Option<&U>
fn object_data(&self) -> Option<&Arc<dyn Any + Send + Sync>>
fn handle(&self) -> &WeakHandle
fn from_id(conn: &DisplayHandle, id: ObjectId) -> Result<Self, InvalidId>
fn send_event(&self, evt: Self::Event) -> Result<(), InvalidId>
fn parse_request(
conn: &DisplayHandle,
msg: Message<ObjectId>
) -> Result<(Self, Self::Request), DispatchError>
fn write_event(
&self,
conn: &DisplayHandle,
msg: Self::Event
) -> Result<Message<ObjectId>, InvalidId>
fn post_error(
&self,
dh: &DisplayHandle,
code: impl Into<u32>,
error: impl Into<String>
)
impl Eq for WlDataOffer
Auto Trait Implementations
impl !RefUnwindSafe for WlDataOffer
impl Send for WlDataOffer
impl Sync for WlDataOffer
impl Unpin for WlDataOffer
impl !UnwindSafe for WlDataOffer
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
sourcefn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more
sourcefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more
sourcefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s. Read more
sourcefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s. Read more
sourceimpl<T> DowncastSync for T where
T: Any + Send + Sync,
impl<T> DowncastSync for T where
T: Any + Send + Sync,
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more