Class: Gtk::Dialog
- Defined in:
- (unknown)
Direct Known Subclasses
AppChooserDialog, ColorChooserDialog, FileChooserDialog, FontChooserDialog, MessageDialog, PageSetupUnixDialog, PrintUnixDialog
Instance Method Summary collapse
-
#add_action_widget(child, response_id) ⇒ nil
Adds an activatable widget to the action area of a
GtkDialog. -
#add_button(button_text, response_id) ⇒ Gtk::Widget
Adds a button with the given text.
-
#add_buttons(first_button_text, array) ⇒ nil
Adds multiple buttons.
-
#content_area ⇒ Gtk::Box
Returns the content area of dialog.
-
#default_response=(response_id) ⇒ nil
Sets the default widget for the dialog based on the response ID.
-
#get_response_for_widget(widget) ⇒ Integer
Gets the response id of a widget in the action area of a dialog.
-
#get_widget_for_response(response_id) ⇒ Gtk::Widget
Gets the widget button that uses the given response ID in the action area of a dialog.
-
#header_bar ⇒ Gtk::HeaderBar
Returns the header bar of dialog.
-
#initialize(title, parent, flags, first_button_text, array) ⇒ Gtk::Widget
constructor
Creates a new
GtkDialogwith the given title and transient parent. -
#response(response_id) ⇒ nil
Emits the ::response signal with the given response ID.
-
#set_response_sensitive(response_id, setting) ⇒ nil
A convenient way to sensitize/desensitize dialog buttons.
-
#use_header_bar ⇒ Integer
true if the dialog uses a headerbar for action buttons instead of the action-area.
-
#use_header_bar=(use_header_bar) ⇒ Integer
true if the dialog uses a headerbar for action buttons instead of the action-area.
Methods inherited from Window
#application, #application=, auto_startup_notification=, #child, #child=, #close, #decorated, #decorated=, #decorated?, #default_height, #default_height=, default_icon_name, default_icon_name=, #default_widget, #default_widget=, #default_width, #default_width=, #deletable, #deletable=, #deletable?, #destroy, #destroy_with_parent, #destroy_with_parent=, #destroy_with_parent?, #display, #display=, #focus, #focus=, #focus_visible, #focus_visible=, #focus_visible?, #focus_widget, #focus_widget=, #fullscreen, #fullscreen_on_monitor, #fullscreened=, #fullscreened?, #get_default_size, #group, #handle_menubar_accel, #handle_menubar_accel=, #handle_menubar_accel?, #has_group, #hide_on_close, #hide_on_close=, #hide_on_close?, #icon_name, #icon_name=, interactive_debugging=, #is_active, #is_active=, #is_active?, #is_fullscreen, #is_maximized, #is_suspended, list_toplevels, #maximize, #maximized=, #maximized?, #minimize, #mnemonics_visible, #mnemonics_visible=, #mnemonics_visible?, #modal, #modal=, #modal?, #present, #present_with_time, #resizable, #resizable=, #resizable?, #set_default_size, #startup_id=, #suspended=, #suspended?, #title, #title=, #titlebar, #titlebar=, toplevels, #transient_for, #transient_for=, #unfullscreen, #unmaximize, #unminimize
Methods inherited from Widget
#accessible_role, #accessible_role=, #action_set_enabled, #activate, #activate_action, #activate_action_variant, #activate_default, #activate_signal, #activate_signal=, #activate_signal_from_name=, #add_binding, #add_binding_action, #add_binding_signal, #add_controller, #add_css_class, #add_mnemonic_label, #add_shortcut, #add_tick_callback, #allocate, #allocated_baseline, #allocated_height, #allocated_width, #baseline, #bind_template_callback_full, #bind_template_child_full, #can_focus, #can_focus=, #can_focus?, #can_target, #can_target=, #can_target?, #child_focus, #child_visible, #child_visible=, #clipboard, #compute_bounds, #compute_expand, #compute_point, #compute_transform, #contains, #create_pango_context, #create_pango_layout, #css_classes, #css_classes=, #css_name, #css_name=, #cursor, #cursor=, #cursor_from_name=, default_direction, default_direction=, #direction, #direction=, #display, #dispose_template, #drag_check_threshold, #error_bell, #first_child, #focus_child, #focus_child=, #focus_on_click, #focus_on_click=, #focus_on_click?, #focusable, #focusable=, #focusable?, #font_map, #font_map=, #font_options, #font_options=, #frame_clock, #get_allocation, #get_ancestor, #get_color, #get_preferred_size, #get_size, #get_size_request, #get_template_child, #grab_focus, #halign, #halign=, #has_css_class, #has_default, #has_default=, #has_default?, #has_focus, #has_focus=, #has_focus?, #has_tooltip, #has_tooltip=, #has_tooltip?, #has_visible_focus, #height, #height_request, #height_request=, #hexpand, #hexpand=, #hexpand?, #hexpand_set, #hexpand_set=, #hexpand_set?, #hide, #in_destruction, #init_template, #insert_action_group, #insert_after, #insert_before, #install_action, #install_property_action, #is_ancestor, #is_drawable, #is_focus, #is_sensitive, #is_visible, #keynav_failed, #last_child, #layout_manager, #layout_manager=, #layout_manager_type, #layout_manager_type=, #list_mnemonic_labels, #map, #mapped, #margin_bottom, #margin_bottom=, #margin_end, #margin_end=, #margin_start, #margin_start=, #margin_top, #margin_top=, #measure, #mnemonic_activate, #name, #name=, #native, #next_sibling, #observe_children, #observe_controllers, #opacity, #opacity=, #overflow, #overflow=, #pango_context, #parent, #parent=, #pick, #prev_sibling, #primary_clipboard, #query_action, #queue_allocate, #queue_draw, #queue_resize, #realize, #realized, #receives_default, #receives_default=, #receives_default?, #remove_controller, #remove_css_class, #remove_mnemonic_label, #remove_tick_callback, #request_mode, #root, #root=, #scale_factor, #scale_factor=, #sensitive, #sensitive=, #sensitive?, #set_size_request, #set_state_flags, #settings, #should_layout, #show, #size_allocate, #snapshot_child, #state_flags, #style_context, #template=, #template_from_resource=, #template_scope=, #tooltip_markup, #tooltip_markup=, #tooltip_text, #tooltip_text=, #translate_coordinates, #trigger_tooltip_query, #unmap, #unparent, #unrealize, #unset_state_flags, #valign, #valign=, #vexpand, #vexpand=, #vexpand?, #vexpand_set, #vexpand_set=, #vexpand_set?, #visible, #visible=, #visible?, #width, #width_request, #width_request=
Constructor Details
#initialize(title, parent, flags, first_button_text, array) ⇒ Gtk::Widget
Creates a new GtkDialog with the given title and transient parent.
The flags argument can be used to make the dialog modal, have it destroyed along with its transient parent, or make it use a headerbar.
Button text/response ID pairs should be listed in pairs, with a nil
pointer ending the list. Button text can be arbitrary text. A response
ID can be any positive number, or one of the values in the
[enumGtk.ResponseType] enumeration. If the user clicks one of these
buttons, GtkDialog will emit the [signalGtk.Dialog::response] signal
with the corresponding response ID.
If a GtkDialog receives a delete event, it will emit ::response with a
response ID of %GTK_RESPONSE_DELETE_EVENT.
However, destroying a dialog does not emit the ::response signal; so be careful relying on ::response when using the %GTK_DIALOG_DESTROY_WITH_PARENT flag.
Here’s a simple example:
GtkWindow *main_app_window; // Window the dialog should show up on
GtkWidget *dialog;
GtkDialogFlags flags = GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT;
dialog = gtk_dialog_new_with_buttons ("My dialog",
main_app_window,
flags,
_("_OK"),
GTK_RESPONSE_ACCEPT,
_("_Cancel"),
GTK_RESPONSE_REJECT,
NULL);
Instance Method Details
#add_action_widget(child, response_id) ⇒ nil
Adds an activatable widget to the action area of a GtkDialog.
GTK connects a signal handler that will emit the [signalGtk.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 GtkDialog struct.
#add_button(button_text, response_id) ⇒ Gtk::Widget
Adds a button with the given text.
GTK arranges things so that clicking the button will emit the [signalGtk.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.
#add_buttons(first_button_text, array) ⇒ nil
Adds multiple buttons.
This is the same as calling [methodGtk.Dialog.add_button] repeatedly. The variable argument list should be nil-terminated as with [ctorGtk.Dialog.new_with_buttons]. Each button must have both text and response ID.
#content_area ⇒ Gtk::Box
Returns the content area of dialog.
#default_response=(response_id) ⇒ nil
Sets the default widget for the dialog based on the response ID.
Pressing “Enter” normally activates the default widget.
#get_response_for_widget(widget) ⇒ Integer
Gets the response id of a widget in the action area of a dialog.
#get_widget_for_response(response_id) ⇒ Gtk::Widget
Gets the widget button that uses the given response ID in the action area of a dialog.
#header_bar ⇒ Gtk::HeaderBar
Returns the header bar of dialog.
Note that the headerbar is only used by the dialog if the [propertyGtk.Dialog:use-header-bar] property is true.
#response(response_id) ⇒ nil
Emits the ::response signal with the given response ID.
Used to indicate that the user has responded to the dialog in some way.
#set_response_sensitive(response_id, setting) ⇒ nil
A convenient way to sensitize/desensitize dialog buttons.
Calls gtk_widget_set_sensitive (widget, <b>setting</b>)
for each widget in the dialog’s action area with the given response_id.
#use_header_bar ⇒ Integer
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 GtkDialog subclasses such as [classGtk.ColorChooserDialog]
set this property according to platform conventions (using the
[propertyGtk.Settings:gtk-dialogs-use-header] setting).
Here is how you can achieve the same:
g_object_get (settings, "gtk-dialogs-use-header", &header, NULL);
dialog = g_object_new (GTK_TYPE_DIALOG, header, TRUE, NULL);
#use_header_bar=(use_header_bar) ⇒ Integer
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 GtkDialog subclasses such as [classGtk.ColorChooserDialog]
set this property according to platform conventions (using the
[propertyGtk.Settings:gtk-dialogs-use-header] setting).
Here is how you can achieve the same:
g_object_get (settings, "gtk-dialogs-use-header", &header, NULL);
dialog = g_object_new (GTK_TYPE_DIALOG, header, TRUE, NULL);