// // This examples shows how you could send messages between different widgets / views. // use orbtk::*; // mod sender { // use orbtk::*; // use std::{cell::Cell, rc::Rc}; // #[derive(Default)] // struct SenderState { // send_message: Cell, // } // impl State for SenderState { // fn update(&mut self, ctx: &mut Context<'_>) { // if self.send_message.get() { // ctx.send_message("receiver_view", StringMessage::from("Hello from sender.")); // } // } // } // widget!(SenderView); // impl Widget for SenderView { // fn create() -> Self { // let state = Rc::new(SenderState::default()); // let send_state = state.clone(); // SenderView::new() // .debug_name("SenderView") // .child( // Button::create() // .text("Send message") // .on_click(move |_| -> bool { // send_state.send_message.set(true); // true // }), // ) // .state(state) // } // } // } // mod receiver { // use super::sender; // use orbtk::*; // use std::rc::Rc; // struct ReceiverState; // impl State for ReceiverState { // fn receive_messages(&self, _context: &mut Context<'_>, messages: &Vec) { // for message in messages { // if let Ok(message) = message.downcast_ref::() { // println!("Message received: {}", message.0); // } // } // } // } // widget!(ReceiverView); // impl Widget for ReceiverView { // fn create() -> Self { // ReceiverView::new() // .debug_name("ReceiverView") // .child(Container::create().child(sender::SenderView::create())) // .attach(Selector::default().id("receiver_view")) // .state(Rc::new(ReceiverState)) // } // } // } // fn main() { // let mut application = Application::default(); // application // .create_window() // .bounds((100.0, 100.0, 420.0, 730.0)) // .title("OrbTk - minimal example") // .root(receiver::ReceiverView::create()) // .debug_flag(true) // .build(); // application.run(); // } fn main() {}