// message.rs // // Copyright 2022 Stéphane Cerveau // // This file is part of GstPipelineStudio // // SPDX-License-Identifier: GPL-3.0-only use gtk::gio; use gtk::prelude::*; use gtk::{Application, Label, Widget}; pub fn display_message_dialog( message: &str, message_type: gtk::MessageType, f: F, ) { let app = gio::Application::default() .expect("No default application") .downcast::() .expect("Default application has wrong type"); let dialog = gtk::MessageDialog::new( app.active_window().as_ref(), gtk::DialogFlags::MODAL, message_type, gtk::ButtonsType::Ok, message, ); let message_area = dialog.message_area(); let mut child = message_area.first_child(); while child.is_some() { let widget = child.unwrap(); let label = widget .dynamic_cast::