#![no_main]
#![no_std]
extern crate flipperzero_rt;
extern crate flipperzero_alloc;
use core::ffi::CStr;
use flipperzero::{
dialogs::{self, DialogMessage, DialogMessageButton, DialogsApp},
gui::canvas::Align,
};
use flipperzero_rt::{entry, manifest};
manifest!(name = "Rust dialog example");
entry!(main);
fn main(_args: Option<&CStr>) -> i32 {
let mut dialogs = DialogsApp::open();
let mut message = DialogMessage::new();
message.set_header(c"Make your move!", 0, 0, Align::Left, Align::Top);
message.set_text(
c"Choose one of the following:",
0,
26,
Align::Left,
Align::Top,
);
message.set_buttons(Some(c"Rock"), Some(c"Paper"), Some(c"Scissor"));
let button = dialogs.show_message(&message);
match button {
DialogMessageButton::Left => dialogs::alert("You chose Rock..."),
DialogMessageButton::Center => dialogs::alert("You chose Paper..."),
DialogMessageButton::Right => dialogs::alert("You chose Scissors..."),
DialogMessageButton::Back => dialogs::alert("You chose not to play..."),
}
dialogs::alert("... but dolphins can't play rock paper scissors anyways :)");
0
}