Struct notify_rust::NotificationHandle[][src]

pub struct NotificationHandle { /* fields omitted */ }

A handle to a shown notification.

This keeps a connection alive to ensure actions work on certain desktops.

Implementations

impl NotificationHandle[src]

pub fn wait_for_action<F>(self, invocation_closure: F) where
    F: FnOnce(&str), 
[src]

Waits for the user to act on a notification and then calls invocation_closure with the name of the corresponding action.

pub fn close(self)[src]

Manually close the notification

Example

see

let handle: NotificationHandle = Notification::new()
    .summary("oh no")
    .hint(notify_rust::Hint::Transient(true))
    .body("I'll be here till you close me!")
    .hint(Hint::Resident(true)) // does not work on kde
    .timeout(Timeout::Never) // works on kde and gnome
    .show()
    .unwrap();
// ... and then later
handle.close();

pub fn on_close<F>(self, closure: F) where
    F: FnOnce(), 
[src]

Executes a closure after the notification has closed.

Example

Notification::new().summary("Time is running out")
                   .body("This will go away.")
                   .icon("clock")
                   .show()
                   .unwrap()
                   .on_close(|| println!("closed"));

pub fn update(&mut self)[src]

Replace the original notification with an updated version

Example

let mut notification = Notification::new().summary("Latest News")
                                          .body("Bayern Dortmund 3:2")
                                          .show()
                                          .unwrap();

std::thread::sleep_ms(1_500);

notification.summary("Latest News (Correction)")
            .body("Bayern Dortmund 3:3");

notification.update();

Watch out for different implementations of the notification server! On plasma5 for instance, you should also change the appname, so the old message is really replaced and not just amended. Xfce behaves well, all others have not been tested by the developer.

pub fn id(&self) -> u32[src]

Returns the Handle’s id.

Methods from Deref<Target = Notification>

pub fn appname(&mut self, appname: &str) -> &mut Notification[src]

Overwrite the appname field used for Notification.

Platform Support

Please note that this method has no effect on macOS. Here you can only set the application via set_application()

pub fn summary(&mut self, summary: &str) -> &mut Notification[src]

Set the summary.

Often acts as title of the notification. For more elaborate content use the body field.

pub fn subtitle(&mut self, subtitle: &str) -> &mut Notification[src]

Set the subtitle.

This is only useful on macOS, it’s not part of the XDG specification and will therefore be eaten by gremlins under your CPU 😈🤘.

pub fn image_path(&mut self, path: &str) -> &mut Notification[src]

Wrapper for Hint::ImagePath

pub fn sound_name(&mut self, name: &str) -> &mut Notification[src]

Wrapper for Hint::SoundName

pub fn body(&mut self, body: &str) -> &mut Notification[src]

Set the content of the body field.

Multiline textual content of the notification. Each line should be treated as a paragraph. Simple html markup should be supported, depending on the server implementation.

pub fn icon(&mut self, icon: &str) -> &mut Notification[src]

Set the icon field.

You can use common icon names here, usually those in /usr/share/icons can all be used. You can also use an absolute path to file.

Platform support

macOS does not have support manually setting the icon. However you can pretend to be another app using set_application()

pub fn auto_icon(&mut self) -> &mut Notification[src]

Set the icon field automatically.

This looks at your binary’s name and uses it to set the icon.

Platform support

macOS does not support manually setting the icon. However you can pretend to be another app using set_application()

pub fn hint(&mut self, hint: Hint) -> &mut Notification[src]

Adds a hint.

This method will add a hint to the internal hint HashSet. Hints must be of type Hint.

Many of these are again wrapped by more convenient functions such as:

Notification::new().summary("Category:email")
                   .body("This should not go away until you acknowledge it.")
                   .icon("thunderbird")
                   .appname("thunderbird")
                   .hint(Hint::Category("email".to_owned()))
                   .hint(Hint::Resident(true))
                   .show();

Platform support

Most of these hints don’t even have an effect on the big XDG Desktops, they are completely tossed on macOS.

pub fn timeout<T: Into<Timeout>>(&mut self, timeout: T) -> &mut Notification[src]

Set the timeout.

This sets the time (in milliseconds) from the time the notification is displayed until it is closed again by the Notification Server. According to specification -1 will leave the timeout to be set by the server and 0 will cause the notification never to expire.

Platform support

This only works on XDG Desktops, macOS does not support manually setting the timeout.

pub fn urgency(&mut self, urgency: Urgency) -> &mut Notification[src]

Set the urgency.

Pick between Medium, Low and High.

Platform support

Most Desktops on linux and bsd are far too relaxed to pay any attention to this. In macOS this does not exist

pub fn actions(&mut self, actions: Vec<String>) -> &mut Notification[src]

👎 Deprecated:

please use .action() only

Set actions.

To quote http://www.galago-project.org/specs/notification/0.9/x408.html#command-notify

Actions are sent over as a list of pairs. Each even element in the list (starting at index 0) represents the identifier for the action. Each odd element in the list is the localized string that will be displayed to the user.

There is nothing fancy going on here yet. Careful! This replaces the internal list of actions!

(xdg only)

pub fn action(&mut self, identifier: &str, label: &str) -> &mut Notification[src]

Add an action.

This adds a single action to the internal list of actions.

(xdg only)

pub fn id(&mut self, id: u32) -> &mut Notification[src]

Set an Id ahead of time

Setting the id ahead of time allows overriding a known other notification. Though if you want to update a notification, it is easier to use the update() method of the NotificationHandle object that show() returns.

(xdg only)

pub fn finalize(&self) -> Notification[src]

Finalizes a Notification.

Part of the builder pattern, returns a complete copy of the built notification.

pub fn show(&self) -> Result<NotificationHandle>[src]

Sends Notification to D-Bus.

Returns a handle to a notification

pub fn show_debug(&mut self) -> Result<NotificationHandle>[src]

👎 Deprecated:

this was never meant to be public API

Wraps show() but prints notification to stdout.

Trait Implementations

impl Debug for NotificationHandle[src]

impl Deref for NotificationHandle[src]

Required for DerefMut

type Target = Notification

The resulting type after dereferencing.

impl DerefMut for NotificationHandle[src]

Allow you to easily modify notification properties

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.