Trait gtk4::prelude::DialogExt

source ·
pub trait DialogExt: 'static {
    fn add_action_widget(
        child: &impl IsA<Widget>,
        response_id: ResponseType
    ); fn add_button(&self, button_text: &str, response_id: ResponseType) -> Widget; fn content_area(&self) -> Box; fn header_bar(&self) -> HeaderBar; fn widget_for_response(&self, response_id: ResponseType) -> Option<Widget>; fn response(&self, response_id: ResponseType); fn set_default_response(&self, response_id: ResponseType); fn set_response_sensitive(&self, response_id: ResponseType, setting: bool); fn use_header_bar(&self) -> i32; fn connect_close<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; fn emit_close(&self); fn connect_response<F: Fn(&Self, ResponseType) + 'static>(
        f: F
    ) -> SignalHandlerId; }
Expand description

Required Methods§

Adds an activatable widget to the action area of a Dialog.

GTK connects a signal handler that will emit the signal::Dialog::response signal on the dialog when the widget is activated. The widget is appended to the end of the dialog’s action area.

If you want to add a non-activatable widget, simply pack it into the @action_area field of the Dialog struct.


an activatable widget


response ID for @child

Adds a button with the given text.

GTK arranges things so that clicking the button will emit the signal::Dialog::response signal with the given @response_id. The button is appended to the end of the dialog’s action area. The button widget is returned, but usually you don’t need it.


text of button


response ID for the button


the Button widget that was added

Returns the content area of @self.


the content area Box.

Returns the header bar of @self.

Note that the headerbar is only used by the dialog if the property::Dialog::use-header-bar property is true.


the header bar

Gets the widget button that uses the given response ID in the action area of a dialog.


the response ID used by the @self widget


the @widget button that uses the given @response_id

Emits the ::response signal with the given response ID.

Used to indicate that the user has responded to the dialog in some way.


response ID

Sets the default widget for the dialog based on the response ID.

Pressing “Enter” normally activates the default widget.


a response ID

A convenient way to sensitize/desensitize dialog buttons.

Calls gtk_widget_set_sensitive (widget, @setting) for each widget in the dialog’s action area with the given @response_id.


a response ID


true for sensitive

true if the dialog uses a headerbar for action buttons instead of the action-area.

For technical reasons, this property is declared as an integer property, but you should only set it to true or false.

Creating a dialog with headerbar

Builtin Dialog subclasses such as ColorChooserDialog set this property according to platform conventions (using the property::Settings::gtk-dialogs-use-header setting).

Here is how you can achieve the same:

⚠️ The following code is in c ⚠️

g_object_get (settings, "gtk-dialogs-use-header", &header, NULL);
dialog = g_object_new (GTK_TYPE_DIALOG, header, TRUE, NULL);

Emitted when the user uses a keybinding to close the dialog.

This is a keybinding signal.

The default binding for this signal is the Escape key.

Emitted when an action widget is clicked.

The signal is also emitted when the dialog receives a delete event, and when response() is called. On a delete event, the response ID is ResponseType::DeleteEvent. Otherwise, it depends on which action widget was clicked.


the response ID