@@ -15,7 +15,7 @@ use winio::{
1515};
1616
1717fn main () {
18- App :: new (). run :: <MainModel >(());
18+ App :: new (" rs.compio.winio.example " ). run :: <MainModel >(());
1919}
2020
2121struct MainModel {
@@ -34,25 +34,24 @@ impl Component for MainModel {
3434
3535 fn init (_init : Self :: Init <'_ >, _sender : & ComponentSender <Self >) -> Self {
3636 // create & initialize the window
37- let mut window = Child :: <Window >:: init (());
38- window . set_text (" Basic example" );
39- window . set_size (Size :: new (800.0 , 600.0 ));
37+ init! {
38+ window : Window = (()) => {
39+ text : " Basic example" ,
40+ size : Size :: new (800.0 , 600.0 ),
41+ }
42+ }
4043 window . show ();
4144 Self { window }
4245 }
4346
44- async fn start (& mut self , sender : & ComponentSender <Self >) {
47+ async fn start (& mut self , sender : & ComponentSender <Self >) -> ! {
4548 // listen to events
46- self . window
47- . start (
48- sender ,
49- | e | match e {
50- WindowEvent :: Close => Some (MainMessage :: Close ),
51- _ => None ,
52- },
53- || MainMessage :: Noop ,
54- )
55- . await ;
49+ start! {
50+ sender , default : MainMessage :: Noop ,
51+ self . window => {
52+ WindowEvent :: Close => MainMessage :: Close ,
53+ }
54+ }
5655 }
5756
5857 async fn update (& mut self , message : Self :: Message , sender : & ComponentSender <Self >) -> bool {
@@ -71,6 +70,7 @@ impl Component for MainModel {
7170 }
7271
7372 fn render (& mut self , _sender : & ComponentSender <Self >) {
73+ self . window. render ();
7474 // adjust layout and draw widgets here
7575 }
7676}
0 commit comments