Class: Gtk::AboutDialog

Inherits:
Window
  • Object
show all
Extended by:
GLib::Deprecatable
Defined in:
lib/gtk3/deprecated.rb,
lib/gtk3/about-dialog.rb

Overview

The GtkAboutDialog offers a simple way to display information about a program.

The shown information includes the programs' logo, name, copyright, website and license. It is also possible to give credits to the authors, documenters, translators and artists who have worked on the program.

An about dialog is typically opened when the user selects the About option from the Help menu. All parts of the dialog are optional.

An example GtkAboutDialog

About dialogs often contain links and email addresses. GtkAboutDialog displays these as clickable links. By default, it calls [methodGtk.FileLauncher.launch] when a user clicks one. The behaviour can be overridden with the [signalGtk.AboutDialog::activate-link] signal.

To specify a person with an email address, use a string like Edgar Allan Poe <edgar<b>poe</b>.com>. To specify a website with a title, use a string like GTK team https://www.gtk.org.

To make constructing a GtkAboutDialog as convenient as possible, you can use the function [funcGtk.show_about_dialog] which constructs and shows a dialog and keeps it around so that it can be shown again.

Note that GTK sets a default title of _("About %s") on the dialog window (where %s is replaced by the name of the application, but in order to ensure proper translation of the title, applications should set the title property explicitly when constructing a GtkAboutDialog, as shown in the following example:

GFile *logo_file = g_file_new_for_path ("./logo.png");
GdkTexture *example_logo = gdk_texture_new_from_file (logo_file, NULL);
g_object_unref (logo_file);

gtk_show_about_dialog (NULL,
                       "program-name", "ExampleCode",
                       "logo", example_logo,
                       "title", _("About ExampleCode"),
                       NULL);

CSS nodes

GtkAboutDialog has a single CSS node with the name window and style class .aboutdialog.

Class Method Summary collapse

Instance Method Summary collapse

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=, #initialize_raw, 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, #set_icon, #set_icon_raw, #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_events, #add_events_raw, #add_mnemonic_label, #add_shortcut, #add_tick_callback, #allocate, #allocated_baseline, #allocated_height, #allocated_width, #baseline, #bind_template_callback_full, #bind_template_child, #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, #drag_dest_set, #drag_dest_set_raw, #drag_source_set, #drag_source_set_raw, #error_bell, #events, #events_raw, #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, have_template?, #height, #height_request, #height_request=, #hexpand, #hexpand=, #hexpand?, #hexpand_set, #hexpand_set=, #hexpand_set?, #hide, #in_destruction, #init_template, #insert_action_group, #insert_action_group_raw, #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, #render_icon_pixbuf, #render_icon_pixbuf_raw, #request_mode, #root, #root=, #scale_factor, #scale_factor=, #sensitive, #sensitive=, #sensitive?, #set_allocation, set_connect_func, set_connect_func_raw, #set_events, #set_events_raw, #set_size_request, #set_size_request_raw, #set_state_flags, #set_template, #set_template_raw, #settings, #should_layout, #show, #size_allocate, #snapshot_child, #state_flags, #style_context, #style_context_raw, #style_get_property, #style_get_property_raw, #template=, template_children, #template_from_resource=, #template_scope=, #tooltip_markup, #tooltip_markup=, #tooltip_text, #tooltip_text=, #translate_coordinates, #translate_coordinates_raw, #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

#initializeGtk::Widget

Creates a new GtkAboutDialog.

Class Method Details

.show(parent = nil, attributes = nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/gtk3/about-dialog.rb', line 20

def show(parent=nil, attributes=nil)
  dialog = new
  (attributes || {}).each do |key, value|
    dialog.send("#{key}=", value)
  end
  if parent
    dialog.modal = true
    dialog.transient_for = parent
    dialog.destroy_with_parent = true
  end
  dialog.present
end

Instance Method Details

#add_credit_section(section_name, people) ⇒ nil

Creates a new section in the "Credits" page.

Parameters:

  • section_name (String)

    The name of the section

  • people (Array<String>)

    The people who belong to that section

Returns:

  • (nil)

#artistsGtk::

The people who contributed artwork to the program, as a NULL-terminated array of strings.

Each string may contain email addresses and URLs, which will be displayed as links.

Returns:

#artists=(artists) ⇒ Gtk::

The people who contributed artwork to the program, as a NULL-terminated array of strings.

Each string may contain email addresses and URLs, which will be displayed as links.

Parameters:

Returns:

#authorsGtk::

The authors of the program, as a NULL-terminated array of strings.

Each string may contain email addresses and URLs, which will be displayed as links, see the introduction for more details.

Returns:

#authors=(authors) ⇒ Gtk::

The authors of the program, as a NULL-terminated array of strings.

Each string may contain email addresses and URLs, which will be displayed as links, see the introduction for more details.

Parameters:

Returns:

#commentsString

Comments about the program.

This string is displayed in a label in the main dialog, thus it should be a short explanation of the main purpose of the program, not a detailed list of features.

Returns:

  • (String)

    comments

#comments=(comments) ⇒ String

Comments about the program.

This string is displayed in a label in the main dialog, thus it should be a short explanation of the main purpose of the program, not a detailed list of features.

Parameters:

  • comments (String)

Returns:

  • (String)

    comments

  • (String)

    comments

Copyright information for the program.

Returns:

  • (String)

    copyright

#copyright=(copyright) ⇒ String

Copyright information for the program.

Parameters:

  • copyright (String)

Returns:

  • (String)

    copyright

  • (String)

    copyright

#documentersGtk::

The people documenting the program, as a NULL-terminated array of strings.

Each string may contain email addresses and URLs, which will be displayed as links, see the introduction for more details.

Returns:

  • (Gtk::)

    documenters

#documenters=(documenters) ⇒ Gtk::

The people documenting the program, as a NULL-terminated array of strings.

Each string may contain email addresses and URLs, which will be displayed as links, see the introduction for more details.

Parameters:

Returns:

#licenseString

The license of the program, as free-form text.

This string is displayed in a text view in a secondary dialog, therefore it is fine to use a long multi-paragraph text. Note that the text is only wrapped in the text view if the "wrap-license" property is set to TRUE; otherwise the text itself must contain the intended linebreaks.

When setting this property to a non-NULL value, the [propertyGtk.AboutDialog:license-type] property is set to GTK_LICENSE_CUSTOM as a side effect.

The text may contain links in this format <http://www.some.place/> and email references in the form <mail-to<b>some</b>.body>, and these will be converted into clickable links.

Returns:

  • (String)

    license

#license=(license) ⇒ String

The license of the program, as free-form text.

This string is displayed in a text view in a secondary dialog, therefore it is fine to use a long multi-paragraph text. Note that the text is only wrapped in the text view if the "wrap-license" property is set to TRUE; otherwise the text itself must contain the intended linebreaks.

When setting this property to a non-NULL value, the [propertyGtk.AboutDialog:license-type] property is set to GTK_LICENSE_CUSTOM as a side effect.

The text may contain links in this format <http://www.some.place/> and email references in the form <mail-to<b>some</b>.body>, and these will be converted into clickable links.

Parameters:

  • license (String)

Returns:

  • (String)

    license

  • (String)

    license

#license_typeGtk::License

The license of the program.

The GtkAboutDialog will automatically fill out a standard disclaimer and link the user to the appropriate online resource for the license text.

If GTK_LICENSE_UNKNOWN is used, the link used will be the same specified in the [propertyGtk.AboutDialog:website] property.

If GTK_LICENSE_CUSTOM is used, the current contents of the [propertyGtk.AboutDialog:license] property are used.

For any other [enumGtk.License] value, the contents of the [propertyGtk.AboutDialog:license] property are also set by this property as a side effect.

Returns:

#license_type=(license_type) ⇒ Gtk::License

The license of the program.

The GtkAboutDialog will automatically fill out a standard disclaimer and link the user to the appropriate online resource for the license text.

If GTK_LICENSE_UNKNOWN is used, the link used will be the same specified in the [propertyGtk.AboutDialog:website] property.

If GTK_LICENSE_CUSTOM is used, the current contents of the [propertyGtk.AboutDialog:license] property are used.

For any other [enumGtk.License] value, the contents of the [propertyGtk.AboutDialog:license] property are also set by this property as a side effect.

Parameters:

Returns:

#logoGdk::Paintable

A logo for the about box.

If it is NULL, the default window icon set with [funcGtk.Window.set_default_icon_name] will be used.

Returns:

#logo=(logo) ⇒ Gdk::Paintable

A logo for the about box.

If it is NULL, the default window icon set with [funcGtk.Window.set_default_icon_name] will be used.

Parameters:

Returns:

#logo_icon_nameString

A named icon to use as the logo for the about box.

This property overrides the [propertyGtk.AboutDialog:logo] property.

Returns:

  • (String)

    logo-icon-name

#logo_icon_name=(logo_icon_name) ⇒ String

A named icon to use as the logo for the about box.

This property overrides the [propertyGtk.AboutDialog:logo] property.

Parameters:

  • logo_icon_name (String)

Returns:

  • (String)

    logo-icon-name

  • (String)

    logo-icon-name

#program_nameString

The name of the program.

If this is not set, it defaults to the value returned by g_get_application_name().

Returns:

  • (String)

    program-name

#program_name=(program_name) ⇒ String

The name of the program.

If this is not set, it defaults to the value returned by g_get_application_name().

Parameters:

  • program_name (String)

Returns:

  • (String)

    program-name

  • (String)

    program-name

#system_informationString

Information about the system on which the program is running.

This information is displayed in a separate page, therefore it is fine to use a long multi-paragraph text. Note that the text should contain the intended linebreaks.

The text may contain links in this format <http://www.some.place/> and email references in the form <mail-to<b>some</b>.body>, and these will be converted into clickable links.

Returns:

  • (String)

    system-information

#system_information=(system_information) ⇒ String

Information about the system on which the program is running.

This information is displayed in a separate page, therefore it is fine to use a long multi-paragraph text. Note that the text should contain the intended linebreaks.

The text may contain links in this format <http://www.some.place/> and email references in the form <mail-to<b>some</b>.body>, and these will be converted into clickable links.

Parameters:

  • system_information (String)

Returns:

  • (String)

    system-information

  • (String)

    system-information

#translator_creditsString

Credits to the translators.

This string should be marked as translatable.

The string may contain email addresses and URLs, which will be displayed as links, see the introduction for more details.

Returns:

  • (String)

    translator-credits

#translator_credits=(translator_credits) ⇒ String

Credits to the translators.

This string should be marked as translatable.

The string may contain email addresses and URLs, which will be displayed as links, see the introduction for more details.

Parameters:

  • translator_credits (String)

Returns:

  • (String)

    translator-credits

  • (String)

    translator-credits

#versionString

The version of the program.

Returns:

  • (String)

    version

#version=(version) ⇒ String

The version of the program.

Parameters:

  • version (String)

Returns:

  • (String)

    version

  • (String)

    version

#websiteString

The URL for the link to the website of the program.

This should be a string starting with http:// or https://.

Returns:

  • (String)

    website

#website=(website) ⇒ String

The URL for the link to the website of the program.

This should be a string starting with http:// or https://.

Parameters:

  • website (String)

Returns:

  • (String)

    website

  • (String)

    website

#website_labelString

The label for the link to the website of the program.

Returns:

  • (String)

    website-label

#website_label=(website_label) ⇒ String

The label for the link to the website of the program.

Parameters:

  • website_label (String)

Returns:

  • (String)

    website-label

  • (String)

    website-label

#wrap_licenseBoolean

Returns whether the license text in the about dialog is automatically wrapped.

Returns:

  • (Boolean)

    TRUE if the license text is wrapped

#wrap_license=(wrap_license) ⇒ Boolean

Whether to wrap the text in the license dialog.

Parameters:

  • wrap_license (Boolean)

Returns:

  • (Boolean)

    wrap-license

  • (Boolean)

    wrap-license

#wrap_license?Boolean

Whether to wrap the text in the license dialog.

Returns:

  • (Boolean)

    wrap-license