Guest User

Untitled

a guest
Jul 29th, 2020
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 2.45 KB | None | 0 0
  1. extern crate sdl2;
  2. use sdl2::pixels::Color;
  3. use sdl2::event::Event;
  4. use sdl2::keyboard::Keycode;
  5. use std::time::Duration;
  6. use sdl2::messagebox::*;
  7.  
  8.  
  9. fn main() -> Result<(), String>{
  10.     let sdl_context = sdl2::init()?;
  11.     let video_subsystem = sdl_context.video()?;
  12.  
  13.     let window = video_subsystem.window("SOME", 800, 600)
  14.         .position_centered()
  15.         .opengl()
  16.         .build()
  17.         .map_err(|e| e.to_string())?;
  18.     let mut canvas = window.into_canvas().build().map_err(|e| e.to_string())?;
  19.     canvas.set_draw_color(Color::RGB(0,  255,  3));
  20.     canvas.clear();
  21.     canvas.present();
  22.     let mut event_pump = sdl_context.event_pump()?;
  23.     'running: loop {
  24.        for event in event_pump.poll_iter(){
  25.            match event {
  26.                Event::Quit {..} | Event::KeyDown { keycode: Some(Keycode::Escape), .. } => {
  27.                    break 'running
  28.                 },
  29.                 Event::KeyDown { keycode: Some(Keycode::F), .. } =>{
  30.                     let buttons: Vec<_> = vec![
  31.                         ButtonData{
  32.                             flags: MessageBoxButtonFlag::RETURNKEY_DEFAULT,
  33.                             button_id:1,
  34.                             text:"Yeh",
  35.                            
  36.                         },
  37.                         ButtonData{
  38.                             flags: MessageBoxButtonFlag::NOTHING,
  39.                             button_id:2,
  40.                             text:"No",
  41.                         },
  42.                         ButtonData{
  43.                             flags: MessageBoxButtonFlag::ESCAPEKEY_DEFAULT,
  44.                             button_id:3,
  45.                             text:"Cansel!"
  46.                         },
  47.                        
  48.                      ];
  49.          
  50.                        
  51.                    
  52.                      let response = show_message_box(MessageBoxFlag::WARNING,
  53.                                                      buttons.as_slice(),
  54.                                                     "Warning?",
  55.                                                      "sss?" ,
  56.                                                      None,
  57.                                                      None);
  58.                  
  59.                 },
  60.                 _ => {}
  61.             }
  62.            
  63.         }
  64.         canvas.clear();
  65.         canvas.present();
  66.         std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 30));
  67.     }
  68.  
  69.     Ok(())
  70.    
  71. }
Advertisement
Add Comment
Please, Sign In to add comment