pub trait DialogExtManual: IsA<Dialog> + 'static {
// Provided methods
fn add_buttons(&self, buttons: &[(&str, ResponseType)]) { ... }
fn response_for_widget<P: IsA<Widget>>(&self, widget: &P) -> ResponseType { ... }
fn run_future<'a>(
&'a self,
) -> Pin<Box<dyn Future<Output = ResponseType> + 'a>> { ... }
fn run_async<F: FnOnce(&Self, ResponseType) + 'static>(&self, f: F) { ... }
}
Expand description
Trait containing manually implemented methods of Dialog
.
Provided Methods§
👎Deprecated: Since 4.10
Adds multiple buttons.
This is the same as calling DialogExt::add_button()
repeatedly. The variable argument list should be None
-terminated
as with Dialog::with_buttons()
. Each button must have both
text and response ID.
§Deprecated since 4.10
Use Window
instead
§first_button_text
button text
Sourcefn response_for_widget<P: IsA<Widget>>(&self, widget: &P) -> ResponseType
👎Deprecated: Since 4.10
fn response_for_widget<P: IsA<Widget>>(&self, widget: &P) -> ResponseType
Gets the response id of a widget in the action area of a dialog.
§Deprecated since 4.10
Use Window
instead
§widget
a widget in the action area of @self
§Returns
the response id of @widget, or ResponseType::None
if @widget doesn’t have a response id set.
Sourcefn run_future<'a>(&'a self) -> Pin<Box<dyn Future<Output = ResponseType> + 'a>>
👎Deprecated: Since 4.10
fn run_future<'a>(&'a self) -> Pin<Box<dyn Future<Output = ResponseType> + 'a>>
Shows the dialog and returns a Future
that resolves to the
ResponseType
on response.
use gtk4::prelude::*;
let dialog = gtk4::MessageDialog::builder()
.buttons(gtk4::ButtonsType::OkCancel)
.text("What is your answer?")
.build();
let answer = dialog.run_future().await;
dialog.close();
println!("Answer: {:?}", answer);
Sourcefn run_async<F: FnOnce(&Self, ResponseType) + 'static>(&self, f: F)
👎Deprecated: Since 4.10
fn run_async<F: FnOnce(&Self, ResponseType) + 'static>(&self, f: F)
Shows the dialog and calls the callback when a response has been received.
Important: this function isn’t blocking.
use gtk4::prelude::*;
let dialog = gtk4::MessageDialog::builder()
.buttons(gtk4::ButtonsType::OkCancel)
.text("What is your answer?")
.build();
dialog.run_async(|obj, answer| {
obj.close();
println!("Answer: {:?}", answer);
});
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.