gtk4/
message_dialog.rs

1// Take a look at the license at the top of the repository in the LICENSE file.
2
3use std::ptr;
4
5use glib::translate::*;
6
7use crate::{
8    ffi, prelude::*, ButtonsType, DialogFlags, MessageDialog, MessageType, Widget, Window,
9};
10
11impl MessageDialog {
12    #[doc(alias = "gtk_message_dialog_new")]
13    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
14    #[allow(deprecated)]
15    pub fn new(
16        parent: Option<&impl IsA<Window>>,
17        flags: DialogFlags,
18        type_: MessageType,
19        buttons: ButtonsType,
20        message: impl IntoGStr,
21    ) -> Self {
22        assert_initialized_main_thread!();
23        unsafe {
24            message.run_with_gstr(|message| {
25                Widget::from_glib_none(ffi::gtk_message_dialog_new(
26                    parent.map(|p| p.as_ref()).to_glib_none().0,
27                    flags.into_glib(),
28                    type_.into_glib(),
29                    buttons.into_glib(),
30                    c"%s".as_ptr() as *const libc::c_char,
31                    message.as_ptr(),
32                    ptr::null::<libc::c_char>(),
33                ))
34                .unsafe_cast()
35            })
36        }
37    }
38
39    #[doc(alias = "gtk_message_dialog_new_with_markup")]
40    #[doc(alias = "new_with_markup")]
41    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
42    #[allow(deprecated)]
43    pub fn with_markup(
44        parent: Option<&impl IsA<Window>>,
45        flags: DialogFlags,
46        type_: MessageType,
47        buttons: ButtonsType,
48        message: impl IntoOptionalGStr,
49    ) -> Self {
50        assert_initialized_main_thread!();
51        unsafe {
52            message.run_with_gstr(|message| {
53                Widget::from_glib_none(ffi::gtk_message_dialog_new_with_markup(
54                    parent.map(|p| p.as_ref()).to_glib_none().0,
55                    flags.into_glib(),
56                    type_.into_glib(),
57                    buttons.into_glib(),
58                    message.to_glib_none().0,
59                ))
60                .unsafe_cast()
61            })
62        }
63    }
64
65    #[doc(alias = "gtk_message_dialog_format_secondary_markup")]
66    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
67    #[allow(deprecated)]
68    pub fn format_secondary_markup(&self, message: impl IntoOptionalGStr) {
69        unsafe {
70            message.run_with_gstr(|message| {
71                ffi::gtk_message_dialog_format_secondary_markup(
72                    self.to_glib_none().0,
73                    message.to_glib_none().0,
74                )
75            })
76        }
77    }
78
79    #[doc(alias = "gtk_message_dialog_format_secondary_text")]
80    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
81    #[allow(deprecated)]
82    pub fn format_secondary_text(&self, message: impl IntoOptionalGStr) {
83        unsafe {
84            message.run_with_gstr(|message| {
85                ffi::gtk_message_dialog_format_secondary_text(
86                    self.to_glib_none().0,
87                    message.to_glib_none().0,
88                )
89            })
90        }
91    }
92}
93
94impl Default for MessageDialog {
95    fn default() -> Self {
96        glib::Object::new()
97    }
98}