#toast #notifications #notify #windows

winrt-toast

A toast notification library for Windows 10 and 11

2 releases

0.1.1 Aug 14, 2022
0.1.0 Aug 13, 2022

#183 in Windows APIs

Download history 6/week @ 2024-07-28 163/week @ 2024-08-11 379/week @ 2024-08-18 288/week @ 2024-08-25 247/week @ 2024-09-01 342/week @ 2024-09-08 336/week @ 2024-09-15 677/week @ 2024-09-22 502/week @ 2024-09-29 497/week @ 2024-10-06 355/week @ 2024-10-13 461/week @ 2024-10-20 305/week @ 2024-10-27 507/week @ 2024-11-03 484/week @ 2024-11-10

1,757 downloads per month

MIT license

36KB
658 lines

winrt-toast

A mostly usable binding to the Windows ToastNotification API.

Example

use winrt_toast::{Toast, Text, Header, ToastManager};
use winrt_toast::content::text::TextPlacement;

let manager = ToastManager::new(crate::AUM_ID);

let mut toast = Toast::new();
toast
    .text1("Title")
    .text2(Text::new("Body"))
    .text3(
        Text::new("Via SMS")
            .with_placement(TextPlacement::Attribution)
    );

manager.show(&toast).expect("Failed to show toast");

// Or you may add callbacks
manager.show_with_callbacks(
    &toast, None, None,
    Some(Box::new(move |e| {
        // This will be called if Windows fails to show the toast.
        eprintln!("Failed to show toast: {:?}", e);
    }))
).expect("Failed to show toast");

To-Do Features

  • Button style and tooltips in actions
  • Better callbacks
  • Sound
  • Adaptive contents and data binding
  • Groups and sub-groups

lib.rs:

A mostly usable binding to the Windows ToastNotification API.

Example

use winrt_toast::{Toast, Text, Header, ToastManager};
use winrt_toast::content::text::TextPlacement;

let manager = ToastManager::new("YourCompany.YourApp");

let mut toast = Toast::new();
toast
    .text1("Title")
    .text2(Text::new("Body"))
    .text3(
        Text::new("Via SMS")
            .with_placement(TextPlacement::Attribution)
    );

manager.show(&toast).expect("Failed to show toast");

// Or you may add callbacks
manager.show_with_callbacks(
    &toast, None, None,
    Some(Box::new(move |e| {
        // This will be called if Windows fails to show the toast.
        eprintln!("Failed to show toast: {:?}", e);
    }))
).expect("Failed to show toast");

Dependencies

~132MB
~2M SLoC