Class AboutDialog

All Implemented Interfaces:
Accessible, Buildable, ConstraintTarget, ShortcutManager, Proxy

@Generated("org.javagi.JavaGI") public final class AboutDialog extends Dialog implements Accessible, Buildable, ConstraintTarget, ShortcutManager

A dialog showing information about the application.

about-dialog

an about dialog is typically opened when the user activates the About … item in the application's primary menu. All parts of the dialog are optional.

Main page

AdwAboutDialog prominently displays the application's icon, name, developer name and version. They can be set with the AboutDialog:application-icon, AboutDialog:application-name, AboutDialog:developer-name and AboutDialog:version respectively.

What's New

AdwAboutDialog provides a way for applications to display their release notes, set with the AboutDialog:release-notes property.

Release notes are formatted the same way as AppStream descriptions.

The supported formatting options are:

  • Paragraph (<p>)
  • Ordered list (<ol>), with list items (<li>)
  • Unordered list (<ul>), with list items (<li>)

Within paragraphs and list items, emphasis (<em>) and inline code (<code>) text styles are supported. The emphasis is rendered in italic, while inline code is shown in a monospaced font.

Any text outside paragraphs or list items is ignored.

Nested lists are not supported.

Only one version can be shown at a time. By default, the displayed version number matches AboutDialog:version. Use AboutDialog:release-notes-version to override it.

Details

The Details page displays the application comments and links.

The comments can be set with the AboutDialog:comments property. Unlike Gtk.AboutDialog:comments, this string can be long and detailed. It can also contain links and Pango markup.

To set the application website, use AboutDialog:website. To add extra links below the website, use addLink(String, String).

If the Details page doesn't have any other content besides website, the website will be displayed on the main page instead.

Troubleshooting

AdwAboutDialog displays the following two links on the main page:

  • Support Questions, set with the AboutDialog:support-url property,
  • Report an Issue, set with the AboutDialog:issue-url property.

Additionally, applications can provide debugging information. It will be shown separately on the Troubleshooting page. Use the AboutDialog:debug-info property to specify it.

It's intended to be attached to issue reports when reporting issues against the application. As such, it cannot contain markup or links.

AdwAboutDialog provides a quick way to save debug information to a file. When saving, AboutDialog:debug-info-filename would be used as the suggested filename.

Credits and Acknowledgements

The Credits page has the following default sections:

  • Developers, set with the AboutDialog:developers property,
  • Designers, set with the AboutDialog:designers property,
  • Artists, set with the AboutDialog:artists property,
  • Documenters, set with the AboutDialog:documenters property,
  • Translators, set with the AboutDialog:translator-credits property.

When setting translator credits, use the strings "translator-credits" or "translator_credits" and mark them as translatable.

The default sections that don't contain any names won't be displayed.

The Credits page can also contain an arbitrary number of extra sections below the default ones. Use addCreditSection(String, String[]) to add them.

The Acknowledgements page can be used to acknowledge additional people and organizations for their non-development contributions. Use addAcknowledgementSection(String, String[]) to add sections to it. For example, it can be used to list backers in a crowdfunded project or to give special thanks.

Each of the people or organizations can have an email address or a website specified. To add a email address, use a string like Edgar Allan Poe <edgar@poe.com>. To specify a website with a title, use a string like The GNOME Project https://www.gnome.org:

about-dialog-credits

The Legal page displays the copyright and licensing information for the application and other modules.

The copyright string is set with the AboutDialog:copyright property and should be a short string of one or two lines, for example: © 2022 Example.

Licensing information can be quickly set from a list of known licenses with the AboutDialog:license-type property. If the application's license is not in the list, AboutDialog:license can be used instead.

To add information about other modules, such as application dependencies or data, use addLegalSection(String, String, License, String).

Other applications

AdwAboutDialog can show links to your other apps at the end of the main page. To add them, use addOtherApp(String, String, String).

Constructing

To make constructing an AdwAboutDialog as convenient as possible, you can use the function Adw.showAboutDialog(Widget, String, Object...) which constructs and shows a dialog.

static void
show_about (GtkApplication *app)
{
  const char *developers[] = {
    "Angela Avery",
    NULL
  };

  const char *designers[] = {
    "GNOME Design Team",
    NULL
  };

  adw_show_about_dialog (GTK_WIDGET (gtk_application_get_active_window (app)),
                         "application-name", _("Example"),
                         "application-icon", "org.example.App",
                         "version", "1.2.3",
                         "copyright", "© 2022 Angela Avery",
                         "issue-url", "https://gitlab.gnome.org/example/example/-/issues/",
                         "license-type", GTK_LICENSE_GPL_3_0,
                         "developers", developers,
                         "designers", designers,
                         "translator-credits", _("translator-credits"),
                         NULL);
}

CSS nodes

AdwAboutDialog has a main CSS node with the name dialog and the style class .about.

Since:
1.5
  • Constructor Details

    • AboutDialog

      public AboutDialog(MemorySegment address)
      Create a AboutDialog instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
    • AboutDialog

      public AboutDialog()
      Create a new AboutDialog.
  • Method Details

    • getType

      public static @Nullable Type getType()
      Get the GType of the AboutDialog class.
      Returns:
      the GType
    • getMemoryLayout

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • asParent

      protected AboutDialog asParent()
      Return this instance as if it were its parent type. Comparable to the Java super keyword, but ensures the parent typeclass is also used in native code.
      Overrides:
      asParent in class Dialog
      Returns:
      the instance as if it were its parent type
    • fromAppdata

      public static Dialog fromAppdata(String resourcePath, @Nullable String releaseNotesVersion)

      Creates a new AdwAboutDialog using AppStream metadata.

      This automatically sets the following properties with the following AppStream values:

      • AboutDialog:application-icon is set from the <id>
      • AboutDialog:application-name is set from the <name>
      • AboutDialog:developer-name is set from the <name> within <developer>
      • AboutDialog:version is set from the version of the latest release
      • AboutDialog:website is set from the <url type="homepage">
      • AboutDialog:support-url is set from the <url type="help">
      • AboutDialog:issue-url is set from the <url type="bugtracker">
      • AboutDialog:license-type is set from the <project_license>. If the license type retrieved from AppStream is not listed in Gtk.License, it will be set to Gtk.License.custom.

      If releaseNotesVersion is not NULL, AboutDialog:release-notes-version is set to match it, while AboutDialog:release-notes is set from the AppStream release description for that version.

      Parameters:
      resourcePath - The resource to use
      releaseNotesVersion - The version to retrieve release notes for
      Returns:
      the newly created AdwAboutDialog
      Since:
      1.5
    • addAcknowledgementSection

      public void addAcknowledgementSection(@Nullable String name, @Nullable String @Nullable [] people)

      Adds a section to the Acknowledgements page.

      This can be used to acknowledge additional people and organizations for their non-development contributions - for example, backers in a crowdfunded project.

      Each name may contain email addresses and URLs, see the introduction for more details.

      See also:

      Parameters:
      name - the section name
      people - the list of names
      Since:
      1.5
    • addCreditSection

      public void addCreditSection(@Nullable String name, @Nullable String @Nullable [] people)

      Adds an extra section to the Credits page.

      Extra sections are displayed below the standard categories.

      Each name may contain email addresses and URLs, see the introduction for more details.

      See also:

      Parameters:
      name - the section name
      people - the list of names
      Since:
      1.5
    • addLegalSection

      public void addLegalSection(String title, @Nullable String copyright, License licenseType, @Nullable String license)

      Adds an extra section to the Legal page.

      Extra sections will be displayed below the application's own information.

      The parameters copyright, licenseType and license will be used to present the it the same way as AboutDialog:copyright, AboutDialog:license-type and AboutDialog:license are for the application's own information.

      See those properties for more details.

      This can be useful to attribute the application dependencies or data.

      Examples:

      adw_about_dialog_add_legal_section (ADW_ABOUT_DIALOG (about),
                                          _("Copyright and a known license"),
                                          "© 2022 Example",
                                          GTK_LICENSE_LGPL_2_1,
                                          NULL);
      
      adw_about_dialog_add_legal_section (ADW_ABOUT_DIALOG (about),
                                          _("Copyright and custom license"),
                                          "© 2022 Example",
                                          GTK_LICENSE_CUSTOM,
                                          "Custom license text");
      
      adw_about_dialog_add_legal_section (ADW_ABOUT_DIALOG (about),
                                          _("Copyright only"),
                                          "© 2022 Example",
                                          GTK_LICENSE_UNKNOWN,
                                          NULL);
      
      adw_about_dialog_add_legal_section (ADW_ABOUT_DIALOG (about),
                                          _("Custom license only"),
                                          NULL,
                                          GTK_LICENSE_CUSTOM,
                                          "Something completely custom here.");
      
      Parameters:
      title - the name of the section
      copyright - a copyright string
      licenseType - the type of license
      license - custom license information
      Since:
      1.5
    • addLink

      public void addLink(String title, String url)

      Adds an extra link to the Details page.

      Extra links are displayed under the comment and website.

      Underlines in title will be interpreted as indicating a mnemonic.

      See AboutDialog:website.

      Parameters:
      title - the link title
      url - the link URL
      Since:
      1.5
    • addOtherApp

      public void addOtherApp(String appid, String name, String summary)

      Adds another application to self.

      The application will be displayed at the bottom of the main page, in a separate section. Each added application will be presented as a row with title and summary, as well as an icon with the name appid. Clicking the row will show appid in the software center app.

      This can be used to link to your other applications if you have multiple.

      Example:

      adw_about_dialog_add_other_app (ADW_ABOUT_DIALOG (about),
                                      "org.gnome.Boxes",
                                      _("Boxes"),
                                      _("Virtualization made simple"));
      
      Parameters:
      appid - the application ID
      name - the application name
      summary - the application summary
      Since:
      1.7
    • getAppdataResourcePath

      public @Nullable String getAppdataResourcePath()
      Gets the AppStream metadata resource path for self.
      Returns:
      the resource path
      Since:
      1.9
    • getApplicationIcon

      public String getApplicationIcon()
      Gets the name of the application icon for self.
      Returns:
      the application icon name
      Since:
      1.5
    • getApplicationName

      public String getApplicationName()
      Gets the application name for self.
      Returns:
      the application name
      Since:
      1.5
    • getArtists

      public @Nullable String @Nullable [] getArtists()
      Gets the list of artists of the application.
      Returns:
      The list of artists
      Since:
      1.5
    • getComments

      public String getComments()
      Gets the comments about the application.
      Returns:
      the comments
      Since:
      1.5
    • getCopyright

      public String getCopyright()
      Gets the copyright information for self.
      Returns:
      the copyright information
      Since:
      1.5
    • getDebugInfo

      public String getDebugInfo()
      Gets the debug information for self.
      Returns:
      the debug information
      Since:
      1.5
    • getDebugInfoFilename

      public String getDebugInfoFilename()
      Gets the debug information filename for self.
      Returns:
      the debug information filename
      Since:
      1.5
    • getDesigners

      public @Nullable String @Nullable [] getDesigners()
      Gets the list of designers of the application.
      Returns:
      The list of designers
      Since:
      1.5
    • getDeveloperName

      public String getDeveloperName()
      Gets the developer name for self.
      Returns:
      the developer_name
      Since:
      1.5
    • getDevelopers

      public @Nullable String @Nullable [] getDevelopers()
      Gets the list of developers of the application.
      Returns:
      The list of developers
      Since:
      1.5
    • getDocumenters

      public @Nullable String @Nullable [] getDocumenters()
      Gets the list of documenters of the application.
      Returns:
      The list of documenters
      Since:
      1.5
    • getIssueUrl

      public String getIssueUrl()
      Gets the issue tracker URL for self.
      Returns:
      the issue tracker URL
      Since:
      1.5
    • getLicense

      public String getLicense()
      Gets the license for self.
      Returns:
      the license
      Since:
      1.5
    • getLicenseType

      public License getLicenseType()
      Gets the license type for self.
      Returns:
      the license type
      Since:
      1.5
    • getReleaseNotes

      public String getReleaseNotes()
      Gets the release notes for self.
      Returns:
      the release notes
      Since:
      1.5
    • getReleaseNotesVersion

      public String getReleaseNotesVersion()
      Gets the version described by the application's release notes.
      Returns:
      the release notes version
      Since:
      1.5
    • getSupportUrl

      public String getSupportUrl()
      Gets the URL of the support page for self.
      Returns:
      the support page URL
      Since:
      1.5
    • getTranslatorCredits

      public String getTranslatorCredits()
      Gets the translator credits string.
      Returns:
      The translator credits string
      Since:
      1.5
    • getVersion

      public String getVersion()
      Gets the version for self.
      Returns:
      the version
      Since:
      1.5
    • getWebsite

      public String getWebsite()
      Gets the application website URL for self.
      Returns:
      the website URL
      Since:
      1.5
    • setApplicationIcon

      public void setApplicationIcon(String applicationIcon)

      Sets the name of the application icon for self.

      The icon is displayed at the top of the main page.

      Parameters:
      applicationIcon - the application icon name
      Since:
      1.5
    • setApplicationName

      public void setApplicationName(String applicationName)

      Sets the application name for self.

      The name is displayed at the top of the main page.

      Parameters:
      applicationName - the application name
      Since:
      1.5
    • setArtists

      public void setArtists(@Nullable String @Nullable [] artists)

      Sets the list of artists of the application.

      It will be displayed on the Credits page.

      Each name may contain email addresses and URLs, see the introduction for more details.

      See also:

      Parameters:
      artists - the list of artists
      Since:
      1.5
    • setComments

      public void setComments(String comments)

      Sets the comments about the application.

      Comments will be shown on the Details page, above links.

      Unlike Gtk.AboutDialog:comments, this string can be long and detailed. It can also contain links and Pango markup.

      Parameters:
      comments - the comments
      Since:
      1.5
    • setCopyright

      public void setCopyright(String copyright)

      Sets the copyright information for self.

      This should be a short string of one or two lines, for example: © 2022 Example.

      The copyright information will be displayed on the Legal page, before the application license.

      addLegalSection(String, String, License, String) can be used to add copyright information for the application dependencies or other components.

      Parameters:
      copyright - the copyright information
      Since:
      1.5
    • setDebugInfo

      public void setDebugInfo(String debugInfo)

      Sets the debug information for self.

      Debug information will be shown on the Troubleshooting page. It's intended to be attached to issue reports when reporting issues against the application.

      AdwAboutDialog provides a quick way to save debug information to a file. When saving, AboutDialog:debug-info-filename would be used as the suggested filename.

      Debug information cannot contain markup or links.

      Parameters:
      debugInfo - the debug information
      Since:
      1.5
    • setDebugInfoFilename

      public void setDebugInfoFilename(String filename)

      Sets the debug information filename for self.

      It will be used as the suggested filename when saving debug information to a file.

      See AboutDialog:debug-info.

      Parameters:
      filename - the debug info filename
      Since:
      1.5
    • setDesigners

      public void setDesigners(@Nullable String @Nullable [] designers)

      Sets the list of designers of the application.

      It will be displayed on the Credits page.

      Each name may contain email addresses and URLs, see the introduction for more details.

      See also:

      Parameters:
      designers - the list of designers
      Since:
      1.5
    • setDeveloperName

      public void setDeveloperName(String developerName)

      Sets the developer name for self.

      The developer name is displayed on the main page, under the application name.

      If the application is developed by multiple people, the developer name can be set to values like "AppName team", "AppName developers" or "The AppName project", and the individual contributors can be listed on the Credits page, with AboutDialog:developers and related properties.

      Parameters:
      developerName - the developer name
      Since:
      1.5
    • setDevelopers

      public void setDevelopers(@Nullable String @Nullable [] developers)

      Sets the list of developers of the application.

      It will be displayed on the Credits page.

      Each name may contain email addresses and URLs, see the introduction for more details.

      See also:

      Parameters:
      developers - the list of developers
      Since:
      1.5
    • setDocumenters

      public void setDocumenters(@Nullable String @Nullable [] documenters)

      Sets the list of documenters of the application.

      It will be displayed on the Credits page.

      Each name may contain email addresses and URLs, see the introduction for more details.

      See also:

      Parameters:
      documenters - the list of documenters
      Since:
      1.5
    • setIssueUrl

      public void setIssueUrl(String issueUrl)

      Sets the issue tracker URL for self.

      The issue tracker link is displayed on the main page.

      Parameters:
      issueUrl - the issue tracker URL
      Since:
      1.5
    • setLicense

      public void setLicense(String license)

      Sets the license for self.

      This can be used to set a custom text for the license if it can't be set via AboutDialog:license-type.

      When set, AboutDialog:license-type will be set to Gtk.License.custom.

      The license text will be displayed on the Legal page, below the copyright information.

      License text can contain Pango markup and links.

      addLegalSection(String, String, License, String) can be used to add license information for the application dependencies or other components.

      Parameters:
      license - the license
      Since:
      1.5
    • setLicenseType

      public void setLicenseType(License licenseType)

      Sets the license for this AboutDialog from a list of known licenses.

      If the application's license is not in the list, AboutDialog:license can be used instead. The license type will be automatically set to Gtk.License.custom in that case.

      If licenseType is Gtk.License.unknown, no information will be displayed.

      If licenseType is different from Gtk.License.custom. AboutDialog:license will be cleared out.

      The license description will be displayed on the Legal page, below the copyright information.

      addLegalSection(String, String, License, String) can be used to add license information for the application dependencies or other components.

      Parameters:
      licenseType - the license type
      Since:
      1.5
    • setReleaseNotes

      public void setReleaseNotes(String releaseNotes)

      Sets the release notes for self.

      Release notes are displayed on the the What's New page.

      Release notes are formatted the same way as AppStream descriptions.

      The supported formatting options are:

      • Paragraph (<p>)
      • Ordered list (<ol>), with list items (<li>)
      • Unordered list (<ul>), with list items (<li>)

      Within paragraphs and list items, emphasis (<em>) and inline code (<code>) text styles are supported. The emphasis is rendered in italic, while inline code is shown in a monospaced font.

      Any text outside paragraphs or list items is ignored.

      Nested lists are not supported.

      AdwAboutDialog displays the version above the release notes. If set, the AboutDialog:release-notes-version of the property will be used as the version; otherwise, AboutDialog:version is used.

      Parameters:
      releaseNotes - the release notes
      Since:
      1.5
    • setReleaseNotesVersion

      public void setReleaseNotesVersion(String version)

      Sets the version described by the application's release notes.

      The release notes version is displayed on the What's New page, above the release notes.

      If not set, AboutDialog:version will be used instead.

      For example, an application with the current version 2.0.2 might want to keep the release notes from 2.0.0, and set the release notes version accordingly.

      See AboutDialog:release-notes.

      Parameters:
      version - the release notes version
      Since:
      1.5
    • setSupportUrl

      public void setSupportUrl(String supportUrl)

      Sets the URL of the support page for self.

      The support page link is displayed on the main page.

      Parameters:
      supportUrl - the support page URL
      Since:
      1.5
    • setTranslatorCredits

      public void setTranslatorCredits(String translatorCredits)

      Sets the translator credits string.

      It will be displayed on the Credits page.

      This string should be "translator-credits" or "translator_credits" and should be marked as translatable.

      The string may contain email addresses and URLs, see the introduction for more details. When there is more than one translator, they must be separated by a newline in the same string.

      See also:

      Parameters:
      translatorCredits - the translator credits
      Since:
      1.5
    • setVersion

      public void setVersion(String version)

      Sets the version for self.

      The version is displayed on the main page.

      If AboutDialog:release-notes-version is not set, the version will also be displayed above the release notes on the What's New page.

      Parameters:
      version - the version
      Since:
      1.5
    • setWebsite

      public void setWebsite(String website)

      Sets the application website URL for self.

      Website is displayed on the Details page, below comments, or on the main page if the Details page doesn't have any other content.

      Applications can add other links below, see addLink(String, String).

      Parameters:
      website - the website URL
      Since:
      1.5
    • onActivateLink

      Emitted when a URL is activated.

      Applications may connect to it to override the default behavior, which is to call Gtk#showUri.

      Parameters:
      handler - the signal handler
      Returns:
      a signal handler ID to keep track of the signal connection
      Since:
      1.5
      See Also:
    • emitActivateLink

      public boolean emitActivateLink(String uri)
      Emits the "activate-link" signal. See onActivateLink(AboutDialog.ActivateLinkCallback).
    • builder

      public static AboutDialog.Builder<? extends AboutDialog.Builder> builder()
      A AboutDialog.Builder object constructs a AboutDialog with the specified properties. Use the various set...() methods to set properties, and finish construction with AboutDialog.Builder.build().
      Returns:
      the builder object