comparison src/gtk.rs @ 14:adab13145994

Add support for remote clients.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Mon, 02 Nov 2020 00:06:09 +0100
parents 97e543f50f62
children d103f7cca0bd
comparison
equal deleted inserted replaced
13:97e543f50f62 14:adab13145994
16 16
17 use gio::prelude::*; 17 use gio::prelude::*;
18 use glib::clone; 18 use glib::clone;
19 use gtk::prelude::*; 19 use gtk::prelude::*;
20 20
21 use std::env::args;
22 use std::io::ErrorKind; 21 use std::io::ErrorKind;
23 use std::sync::Arc; 22 use std::sync::{Arc, Mutex};
24 use input_linux::Key; 23 use input_linux::Key;
25 24
26 use crate::{ 25 use crate::{
27 state::State, 26 state::State,
28 DEFAULT_WIDTH, DEFAULT_HEIGHT, 27 DEFAULT_WIDTH, DEFAULT_HEIGHT,
66 65
67 fn build_ui(application: &gtk::Application) { 66 fn build_ui(application: &gtk::Application) {
68 build_main_menu(application); 67 build_main_menu(application);
69 68
70 let state = match State::new() { 69 let state = match State::new() {
71 Ok(state) => state, 70 Ok(state) => Arc::new(Mutex::new(state)),
72 Err(err) => { 71 Err(err) => {
73 match err.kind() { 72 match err.kind() {
74 ErrorKind::NotFound => { 73 ErrorKind::NotFound => {
75 eprintln!("Couldn’t find /dev/uinput: {}", err); 74 eprintln!("Couldn’t find /dev/uinput: {}", err);
76 eprintln!("Maybe you forgot to `modprobe uinput`?"); 75 eprintln!("Maybe you forgot to `modprobe uinput`?");
177 window.add(&hbox); 176 window.add(&hbox);
178 177
179 window.show_all(); 178 window.show_all();
180 } 179 }
181 180
182 pub fn main() { 181 pub fn main(args: &[String]) {
183 let application = gtk::Application::new( 182 let application = gtk::Application::new(
184 Some("fr.linkmauve.TabletEmu"), 183 Some("fr.linkmauve.TabletEmu"),
185 gio::ApplicationFlags::empty(), 184 gio::ApplicationFlags::empty(),
186 ) 185 )
187 .expect("Initialisation failed…"); 186 .expect("Initialisation failed…");
188 application.connect_activate(build_ui); 187 application.connect_activate(build_ui);
189 application.run(&args().collect::<Vec<_>>()); 188 application.run(args);
190 } 189 }