use gtk::{prelude::*, subclass::prelude::*}; use otg_core::{ ui::{ChatElement, PlayerCardElement, PlayingFieldView}, Color, }; use otg_gtk::ui::{playing_field_view, Chat, PlayerCard, PlayingField}; use screenplay::{Screen, Screenplay}; fn main() { gio::resources_register_include!("com.luminescent-dreams.otg-gtk.gresource") .expect("Failed to register resources"); let app = gtk::Application::builder() .application_id("com.luminescent-dreams.otg-gtk.screenplay") .build(); app.connect_activate(|app| { let screens = vec![ Screen { title: "PlayerCard".to_owned(), widget: PlayerCard::new(PlayerCardElement { color: Color::Black, name: "Opal".to_owned(), rank: "10 kyu".to_owned(), clock: "25:00".to_owned(), }) .upcast::(), adjustments: vec![], }, Screen { title: "ChatArea".to_owned(), widget: Chat::new(ChatElement { messages: vec![ "message 1".to_owned(), "message 2".to_owned(), "message 3".to_owned(), ], }) .upcast::(), adjustments: vec![], }, Screen { title: "PlayingField".to_owned(), widget: PlayingField::new(playing_field_view()).upcast::(), adjustments: vec![], }, ]; Screenplay::new(&app, screens).unwrap(); }); app.run(); }