// Code generated by girgen. DO NOT EDIT.

package adw

import (
	"runtime"
	"unsafe"

	"github.com/diamondburned/gotk4/pkg/core/gextras"
	coreglib "github.com/diamondburned/gotk4/pkg/core/glib"
	"github.com/diamondburned/gotk4/pkg/gtk/v4"
)

// #include <stdlib.h>
// #include <adwaita.h>
// #include <glib-object.h>
// extern gboolean _gotk4_adw1_AboutDialog_ConnectActivateLink(gpointer, gchar*, guintptr);
import "C"

// GType values.
var (
	GTypeAboutDialog = coreglib.Type(C.adw_about_dialog_get_type())
)

func init() {
	coreglib.RegisterGValueMarshalers([]coreglib.TypeMarshaler{
		coreglib.TypeMarshaler{T: GTypeAboutDialog, F: marshalAboutDialog},
	})
}

// AboutDialogOverrides contains methods that are overridable.
type AboutDialogOverrides struct {
}

func defaultAboutDialogOverrides(v *AboutDialog) AboutDialogOverrides {
	return AboutDialogOverrides{}
}

// AboutDialog: dialog showing information about the application.
//
// <picture> <source srcset="about-dialog-dark.png"
// media="(prefers-color-scheme: dark)"> <img src="about-dialog.png"
// alt="about-dialog"> </picture>
//
// 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
// (https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description).
//
// 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 aboutdialog.AddLink.
//
// 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 aboutdialog.AddCreditSection to add them.
//
// The Acknowledgements page can be used to acknowledge additional
// people and organizations for their non-development contributions. Use
// aboutdialog.AddAcknowledgementSection 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
// <edgarpoe.com>. To specify a website with a title, use a string like The
// GNOME Project https://www.gnome.org:
//
// <picture> <source srcset="about-dialog-credits-dark.png"
// media="(prefers-color-scheme: dark)"> <img src="about-dialog-credits.png"
// alt="about-dialog-credits"> </picture>
//
// # Legal
//
// 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 aboutdialog.AddLegalSection.
//
// # Other applications
//
// AdwAboutDialog can show links to your other apps at the end of the main page.
// To add them, use aboutdialog.AddOtherApp.
//
// # Constructing
//
// To make constructing an AdwAboutDialog as convenient as possible, you can use
// the function show_about_dialog 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.
type AboutDialog struct {
	_ [0]func() // equal guard
	Dialog
}

var (
	_ gtk.Widgetter     = (*AboutDialog)(nil)
	_ coreglib.Objector = (*AboutDialog)(nil)
)

func init() {
	coreglib.RegisterClassInfo[*AboutDialog, *AboutDialogClass, AboutDialogOverrides](
		GTypeAboutDialog,
		initAboutDialogClass,
		wrapAboutDialog,
		defaultAboutDialogOverrides,
	)
}

func initAboutDialogClass(gclass unsafe.Pointer, overrides AboutDialogOverrides, classInitFunc func(*AboutDialogClass)) {
	if classInitFunc != nil {
		class := (*AboutDialogClass)(gextras.NewStructNative(gclass))
		classInitFunc(class)
	}
}

func wrapAboutDialog(obj *coreglib.Object) *AboutDialog {
	return &AboutDialog{
		Dialog: Dialog{
			Widget: gtk.Widget{
				InitiallyUnowned: coreglib.InitiallyUnowned{
					Object: obj,
				},
				Object: obj,
				Accessible: gtk.Accessible{
					Object: obj,
				},
				Buildable: gtk.Buildable{
					Object: obj,
				},
				ConstraintTarget: gtk.ConstraintTarget{
					Object: obj,
				},
			},
			Object: obj,
			ShortcutManager: gtk.ShortcutManager{
				Object: obj,
			},
		},
	}
}

func marshalAboutDialog(p uintptr) (interface{}, error) {
	return wrapAboutDialog(coreglib.ValueFromNative(unsafe.Pointer(p)).Object()), nil
}

// ConnectActivateLink is emitted when a URL is activated.
//
// Applications may connect to it to override the default behavior, which is to
// call gtk.ShowURI().
func (self *AboutDialog) ConnectActivateLink(f func(uri string) (ok bool)) coreglib.SignalHandle {
	return coreglib.ConnectGeneratedClosure(self, "activate-link", false, unsafe.Pointer(C._gotk4_adw1_AboutDialog_ConnectActivateLink), f)
}

// NewAboutDialog creates a new AdwAboutDialog.
//
// The function returns the following values:
//
//   - aboutDialog: newly created AdwAboutDialog.
func NewAboutDialog() *AboutDialog {
	var _cret *C.AdwDialog // in

	_cret = C.adw_about_dialog_new()

	var _aboutDialog *AboutDialog // out

	_aboutDialog = wrapAboutDialog(coreglib.Take(unsafe.Pointer(_cret)))

	return _aboutDialog
}

// NewAboutDialogFromAppdata 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_LICENCE_CUSTOM.
//
// If release_notes_version 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.
//
// The function takes the following parameters:
//
//   - resourcePath: resource to use.
//   - releaseNotesVersion (optional): version to retrieve release notes for.
//
// The function returns the following values:
//
//   - aboutDialog: newly created AdwAboutDialog.
func NewAboutDialogFromAppdata(resourcePath, releaseNotesVersion string) *AboutDialog {
	var _arg1 *C.char      // out
	var _arg2 *C.char      // out
	var _cret *C.AdwDialog // in

	_arg1 = (*C.char)(unsafe.Pointer(C.CString(resourcePath)))
	defer C.free(unsafe.Pointer(_arg1))
	if releaseNotesVersion != "" {
		_arg2 = (*C.char)(unsafe.Pointer(C.CString(releaseNotesVersion)))
		defer C.free(unsafe.Pointer(_arg2))
	}

	_cret = C.adw_about_dialog_new_from_appdata(_arg1, _arg2)
	runtime.KeepAlive(resourcePath)
	runtime.KeepAlive(releaseNotesVersion)

	var _aboutDialog *AboutDialog // out

	_aboutDialog = wrapAboutDialog(coreglib.Take(unsafe.Pointer(_cret)))

	return _aboutDialog
}

// AddAcknowledgementSection 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:
//
// * aboutdialog:developers * aboutdialog:designers * aboutdialog:artists
// * aboutdialog:documenters * aboutdialog:translator-credits *
// aboutdialog.AddCreditSection.
//
// The function takes the following parameters:
//
//   - name (optional): section name.
//   - people: list of names.
func (self *AboutDialog) AddAcknowledgementSection(name string, people []string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out
	var _arg2 **C.char          // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	if name != "" {
		_arg1 = (*C.char)(unsafe.Pointer(C.CString(name)))
		defer C.free(unsafe.Pointer(_arg1))
	}
	{
		_arg2 = (**C.char)(C.calloc(C.size_t((len(people) + 1)), C.size_t(unsafe.Sizeof(uint(0)))))
		defer C.free(unsafe.Pointer(_arg2))
		{
			out := unsafe.Slice(_arg2, len(people)+1)
			var zero *C.char
			out[len(people)] = zero
			for i := range people {
				out[i] = (*C.char)(unsafe.Pointer(C.CString(people[i])))
				defer C.free(unsafe.Pointer(out[i]))
			}
		}
	}

	C.adw_about_dialog_add_acknowledgement_section(_arg0, _arg1, _arg2)
	runtime.KeepAlive(self)
	runtime.KeepAlive(name)
	runtime.KeepAlive(people)
}

// AddCreditSection 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:
//
// * aboutdialog:developers * aboutdialog:designers * aboutdialog:artists
// * aboutdialog:documenters * aboutdialog:translator-credits *
// aboutdialog.AddAcknowledgementSection.
//
// The function takes the following parameters:
//
//   - name (optional): section name.
//   - people: list of names.
func (self *AboutDialog) AddCreditSection(name string, people []string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out
	var _arg2 **C.char          // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	if name != "" {
		_arg1 = (*C.char)(unsafe.Pointer(C.CString(name)))
		defer C.free(unsafe.Pointer(_arg1))
	}
	{
		_arg2 = (**C.char)(C.calloc(C.size_t((len(people) + 1)), C.size_t(unsafe.Sizeof(uint(0)))))
		defer C.free(unsafe.Pointer(_arg2))
		{
			out := unsafe.Slice(_arg2, len(people)+1)
			var zero *C.char
			out[len(people)] = zero
			for i := range people {
				out[i] = (*C.char)(unsafe.Pointer(C.CString(people[i])))
				defer C.free(unsafe.Pointer(out[i]))
			}
		}
	}

	C.adw_about_dialog_add_credit_section(_arg0, _arg1, _arg2)
	runtime.KeepAlive(self)
	runtime.KeepAlive(name)
	runtime.KeepAlive(people)
}

// AddLegalSection adds an extra section to the Legal page.
//
// Extra sections will be displayed below the application's own information.
//
// The parameters copyright, license_type 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.");.
//
// The function takes the following parameters:
//
//   - title: name of the section.
//   - copyright (optional) string.
//   - licenseType: type of license.
//   - license (optional): custom license information.
func (self *AboutDialog) AddLegalSection(title, copyright string, licenseType gtk.License, license string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out
	var _arg2 *C.char           // out
	var _arg3 C.GtkLicense      // out
	var _arg4 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(title)))
	defer C.free(unsafe.Pointer(_arg1))
	if copyright != "" {
		_arg2 = (*C.char)(unsafe.Pointer(C.CString(copyright)))
		defer C.free(unsafe.Pointer(_arg2))
	}
	_arg3 = C.GtkLicense(licenseType)
	if license != "" {
		_arg4 = (*C.char)(unsafe.Pointer(C.CString(license)))
		defer C.free(unsafe.Pointer(_arg4))
	}

	C.adw_about_dialog_add_legal_section(_arg0, _arg1, _arg2, _arg3, _arg4)
	runtime.KeepAlive(self)
	runtime.KeepAlive(title)
	runtime.KeepAlive(copyright)
	runtime.KeepAlive(licenseType)
	runtime.KeepAlive(license)
}

// AddLink 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.
//
// The function takes the following parameters:
//
//   - title: link title.
//   - url: link URL.
func (self *AboutDialog) AddLink(title, url string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out
	var _arg2 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(title)))
	defer C.free(unsafe.Pointer(_arg1))
	_arg2 = (*C.char)(unsafe.Pointer(C.CString(url)))
	defer C.free(unsafe.Pointer(_arg2))

	C.adw_about_dialog_add_link(_arg0, _arg1, _arg2)
	runtime.KeepAlive(self)
	runtime.KeepAlive(title)
	runtime.KeepAlive(url)
}

// AddOtherApp 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"));.
//
// The function takes the following parameters:
//
//   - appid: application ID.
//   - name: application name.
//   - summary: application summary.
func (self *AboutDialog) AddOtherApp(appid, name, summary string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out
	var _arg2 *C.char           // out
	var _arg3 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(appid)))
	defer C.free(unsafe.Pointer(_arg1))
	_arg2 = (*C.char)(unsafe.Pointer(C.CString(name)))
	defer C.free(unsafe.Pointer(_arg2))
	_arg3 = (*C.char)(unsafe.Pointer(C.CString(summary)))
	defer C.free(unsafe.Pointer(_arg3))

	C.adw_about_dialog_add_other_app(_arg0, _arg1, _arg2, _arg3)
	runtime.KeepAlive(self)
	runtime.KeepAlive(appid)
	runtime.KeepAlive(name)
	runtime.KeepAlive(summary)
}

// ApplicationIcon gets the name of the application icon for self.
//
// The function returns the following values:
//
//   - utf8: application icon name.
func (self *AboutDialog) ApplicationIcon() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_application_icon(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// ApplicationName gets the application name for self.
//
// The function returns the following values:
//
//   - utf8: application name.
func (self *AboutDialog) ApplicationName() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_application_name(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// Artists gets the list of artists of the application.
//
// The function returns the following values:
//
//   - utf8s (optional): list of artists.
func (self *AboutDialog) Artists() []string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret **C.char          // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_artists(_arg0)
	runtime.KeepAlive(self)

	var _utf8s []string // out

	if _cret != nil {
		{
			var i int
			var z *C.char
			for p := _cret; *p != z; p = &unsafe.Slice(p, 2)[1] {
				i++
			}

			src := unsafe.Slice(_cret, i)
			_utf8s = make([]string, i)
			for i := range src {
				_utf8s[i] = C.GoString((*C.gchar)(unsafe.Pointer(src[i])))
			}
		}
	}

	return _utf8s
}

// Comments gets the comments about the application.
//
// The function returns the following values:
//
//   - utf8: comments.
func (self *AboutDialog) Comments() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_comments(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// Copyright gets the copyright information for self.
//
// The function returns the following values:
//
//   - utf8: copyright information.
func (self *AboutDialog) Copyright() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_copyright(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// DebugInfo gets the debug information for self.
//
// The function returns the following values:
//
//   - utf8: debug information.
func (self *AboutDialog) DebugInfo() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_debug_info(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// DebugInfoFilename gets the debug information filename for self.
//
// The function returns the following values:
//
//   - utf8: debug information filename.
func (self *AboutDialog) DebugInfoFilename() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_debug_info_filename(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// Designers gets the list of designers of the application.
//
// The function returns the following values:
//
//   - utf8s (optional): list of designers.
func (self *AboutDialog) Designers() []string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret **C.char          // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_designers(_arg0)
	runtime.KeepAlive(self)

	var _utf8s []string // out

	if _cret != nil {
		{
			var i int
			var z *C.char
			for p := _cret; *p != z; p = &unsafe.Slice(p, 2)[1] {
				i++
			}

			src := unsafe.Slice(_cret, i)
			_utf8s = make([]string, i)
			for i := range src {
				_utf8s[i] = C.GoString((*C.gchar)(unsafe.Pointer(src[i])))
			}
		}
	}

	return _utf8s
}

// DeveloperName gets the developer name for self.
//
// The function returns the following values:
//
//   - utf8: developer_name.
func (self *AboutDialog) DeveloperName() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_developer_name(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// Developers gets the list of developers of the application.
//
// The function returns the following values:
//
//   - utf8s (optional): list of developers.
func (self *AboutDialog) Developers() []string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret **C.char          // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_developers(_arg0)
	runtime.KeepAlive(self)

	var _utf8s []string // out

	if _cret != nil {
		{
			var i int
			var z *C.char
			for p := _cret; *p != z; p = &unsafe.Slice(p, 2)[1] {
				i++
			}

			src := unsafe.Slice(_cret, i)
			_utf8s = make([]string, i)
			for i := range src {
				_utf8s[i] = C.GoString((*C.gchar)(unsafe.Pointer(src[i])))
			}
		}
	}

	return _utf8s
}

// Documenters gets the list of documenters of the application.
//
// The function returns the following values:
//
//   - utf8s (optional): list of documenters.
func (self *AboutDialog) Documenters() []string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret **C.char          // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_documenters(_arg0)
	runtime.KeepAlive(self)

	var _utf8s []string // out

	if _cret != nil {
		{
			var i int
			var z *C.char
			for p := _cret; *p != z; p = &unsafe.Slice(p, 2)[1] {
				i++
			}

			src := unsafe.Slice(_cret, i)
			_utf8s = make([]string, i)
			for i := range src {
				_utf8s[i] = C.GoString((*C.gchar)(unsafe.Pointer(src[i])))
			}
		}
	}

	return _utf8s
}

// IssueURL gets the issue tracker URL for self.
//
// The function returns the following values:
//
//   - utf8: issue tracker URL.
func (self *AboutDialog) IssueURL() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_issue_url(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// License gets the license for self.
//
// The function returns the following values:
//
//   - utf8: license.
func (self *AboutDialog) License() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_license(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// LicenseType gets the license type for self.
//
// The function returns the following values:
//
//   - license type.
func (self *AboutDialog) LicenseType() gtk.License {
	var _arg0 *C.AdwAboutDialog // out
	var _cret C.GtkLicense      // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_license_type(_arg0)
	runtime.KeepAlive(self)

	var _license gtk.License // out

	_license = gtk.License(_cret)

	return _license
}

// ReleaseNotes gets the release notes for self.
//
// The function returns the following values:
//
//   - utf8: release notes.
func (self *AboutDialog) ReleaseNotes() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_release_notes(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// ReleaseNotesVersion gets the version described by the application's release
// notes.
//
// The function returns the following values:
//
//   - utf8: release notes version.
func (self *AboutDialog) ReleaseNotesVersion() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_release_notes_version(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// SupportURL gets the URL of the support page for self.
//
// The function returns the following values:
//
//   - utf8: support page URL.
func (self *AboutDialog) SupportURL() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_support_url(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// TranslatorCredits gets the translator credits string.
//
// The function returns the following values:
//
//   - utf8: translator credits string.
func (self *AboutDialog) TranslatorCredits() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_translator_credits(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// Version gets the version for self.
//
// The function returns the following values:
//
//   - utf8: version.
func (self *AboutDialog) Version() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_version(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// Website gets the application website URL for self.
//
// The function returns the following values:
//
//   - utf8: website URL.
func (self *AboutDialog) Website() string {
	var _arg0 *C.AdwAboutDialog // out
	var _cret *C.char           // in

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))

	_cret = C.adw_about_dialog_get_website(_arg0)
	runtime.KeepAlive(self)

	var _utf8 string // out

	_utf8 = C.GoString((*C.gchar)(unsafe.Pointer(_cret)))

	return _utf8
}

// SetApplicationIcon sets the name of the application icon for self.
//
// The icon is displayed at the top of the main page.
//
// The function takes the following parameters:
//
//   - applicationIcon: application icon name.
func (self *AboutDialog) SetApplicationIcon(applicationIcon string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(applicationIcon)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_application_icon(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(applicationIcon)
}

// SetApplicationName sets the application name for self.
//
// The name is displayed at the top of the main page.
//
// The function takes the following parameters:
//
//   - applicationName: application name.
func (self *AboutDialog) SetApplicationName(applicationName string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(applicationName)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_application_name(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(applicationName)
}

// SetArtists 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:
//
// * aboutdialog:developers * aboutdialog:designers * aboutdialog:documenters
// * aboutdialog:translator-credits * aboutdialog.AddCreditSection *
// aboutdialog.AddAcknowledgementSection.
//
// The function takes the following parameters:
//
//   - artists (optional): list of artists.
func (self *AboutDialog) SetArtists(artists []string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 **C.char          // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	{
		_arg1 = (**C.char)(C.calloc(C.size_t((len(artists) + 1)), C.size_t(unsafe.Sizeof(uint(0)))))
		defer C.free(unsafe.Pointer(_arg1))
		{
			out := unsafe.Slice(_arg1, len(artists)+1)
			var zero *C.char
			out[len(artists)] = zero
			for i := range artists {
				out[i] = (*C.char)(unsafe.Pointer(C.CString(artists[i])))
				defer C.free(unsafe.Pointer(out[i]))
			}
		}
	}

	C.adw_about_dialog_set_artists(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(artists)
}

// SetComments 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.
//
// The function takes the following parameters:
//
//   - comments: comments.
func (self *AboutDialog) SetComments(comments string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(comments)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_comments(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(comments)
}

// SetCopyright 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.
//
// aboutdialog.AddLegalSection can be used to add copyright information for the
// application dependencies or other components.
//
// The function takes the following parameters:
//
//   - copyright information.
func (self *AboutDialog) SetCopyright(copyright string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(copyright)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_copyright(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(copyright)
}

// SetDebugInfo 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.
//
// The function takes the following parameters:
//
//   - debugInfo: debug information.
func (self *AboutDialog) SetDebugInfo(debugInfo string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(debugInfo)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_debug_info(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(debugInfo)
}

// SetDebugInfoFilename 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.
//
// The function takes the following parameters:
//
//   - filename: debug info filename.
func (self *AboutDialog) SetDebugInfoFilename(filename string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(filename)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_debug_info_filename(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(filename)
}

// SetDesigners 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:
//
// * aboutdialog:developers * aboutdialog:artists * aboutdialog:documenters
// * aboutdialog:translator-credits * aboutdialog.AddCreditSection *
// aboutdialog.AddAcknowledgementSection.
//
// The function takes the following parameters:
//
//   - designers (optional): list of designers.
func (self *AboutDialog) SetDesigners(designers []string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 **C.char          // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	{
		_arg1 = (**C.char)(C.calloc(C.size_t((len(designers) + 1)), C.size_t(unsafe.Sizeof(uint(0)))))
		defer C.free(unsafe.Pointer(_arg1))
		{
			out := unsafe.Slice(_arg1, len(designers)+1)
			var zero *C.char
			out[len(designers)] = zero
			for i := range designers {
				out[i] = (*C.char)(unsafe.Pointer(C.CString(designers[i])))
				defer C.free(unsafe.Pointer(out[i]))
			}
		}
	}

	C.adw_about_dialog_set_designers(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(designers)
}

// SetDeveloperName 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.
//
// The function takes the following parameters:
//
//   - developerName: developer name.
func (self *AboutDialog) SetDeveloperName(developerName string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(developerName)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_developer_name(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(developerName)
}

// SetDevelopers 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:
//
// * aboutdialog:designers * aboutdialog:artists * aboutdialog:documenters
// * aboutdialog:translator-credits * aboutdialog.AddCreditSection *
// aboutdialog.AddAcknowledgementSection.
//
// The function takes the following parameters:
//
//   - developers (optional): list of developers.
func (self *AboutDialog) SetDevelopers(developers []string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 **C.char          // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	{
		_arg1 = (**C.char)(C.calloc(C.size_t((len(developers) + 1)), C.size_t(unsafe.Sizeof(uint(0)))))
		defer C.free(unsafe.Pointer(_arg1))
		{
			out := unsafe.Slice(_arg1, len(developers)+1)
			var zero *C.char
			out[len(developers)] = zero
			for i := range developers {
				out[i] = (*C.char)(unsafe.Pointer(C.CString(developers[i])))
				defer C.free(unsafe.Pointer(out[i]))
			}
		}
	}

	C.adw_about_dialog_set_developers(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(developers)
}

// SetDocumenters 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:
//
// * aboutdialog:developers * aboutdialog:designers * aboutdialog:artists
// * aboutdialog:translator-credits * aboutdialog.AddCreditSection *
// aboutdialog.AddAcknowledgementSection.
//
// The function takes the following parameters:
//
//   - documenters (optional): list of documenters.
func (self *AboutDialog) SetDocumenters(documenters []string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 **C.char          // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	{
		_arg1 = (**C.char)(C.calloc(C.size_t((len(documenters) + 1)), C.size_t(unsafe.Sizeof(uint(0)))))
		defer C.free(unsafe.Pointer(_arg1))
		{
			out := unsafe.Slice(_arg1, len(documenters)+1)
			var zero *C.char
			out[len(documenters)] = zero
			for i := range documenters {
				out[i] = (*C.char)(unsafe.Pointer(C.CString(documenters[i])))
				defer C.free(unsafe.Pointer(out[i]))
			}
		}
	}

	C.adw_about_dialog_set_documenters(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(documenters)
}

// SetIssueURL sets the issue tracker URL for self.
//
// The issue tracker link is displayed on the main page.
//
// The function takes the following parameters:
//
//   - issueUrl: issue tracker URL.
func (self *AboutDialog) SetIssueURL(issueUrl string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(issueUrl)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_issue_url(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(issueUrl)
}

// SetLicense 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.
//
// aboutdialog.AddLegalSection can be used to add license information for the
// application dependencies or other components.
//
// The function takes the following parameters:
//
//   - license: license.
func (self *AboutDialog) SetLicense(license string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(license)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_license(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(license)
}

// SetLicenseType sets the license for self 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 license_type is GTK_LICENSE_UNKNOWN, no information will be displayed.
//
// If license_type 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.
//
// aboutdialog.AddLegalSection can be used to add license information for the
// application dependencies or other components.
//
// The function takes the following parameters:
//
//   - licenseType: license type.
func (self *AboutDialog) SetLicenseType(licenseType gtk.License) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 C.GtkLicense      // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = C.GtkLicense(licenseType)

	C.adw_about_dialog_set_license_type(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(licenseType)
}

// SetReleaseNotes 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
// (https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description).
//
// 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.
//
// The function takes the following parameters:
//
//   - releaseNotes: release notes.
func (self *AboutDialog) SetReleaseNotes(releaseNotes string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(releaseNotes)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_release_notes(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(releaseNotes)
}

// SetReleaseNotesVersion 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.
//
// The function takes the following parameters:
//
//   - version: release notes version.
func (self *AboutDialog) SetReleaseNotesVersion(version string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(version)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_release_notes_version(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(version)
}

// SetSupportURL sets the URL of the support page for self.
//
// The support page link is displayed on the main page.
//
// The function takes the following parameters:
//
//   - supportUrl: support page URL.
func (self *AboutDialog) SetSupportURL(supportUrl string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(supportUrl)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_support_url(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(supportUrl)
}

// SetTranslatorCredits 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:
//
// * aboutdialog:developers * aboutdialog:designers * aboutdialog:artists
// * aboutdialog:documenters * aboutdialog.AddCreditSection *
// aboutdialog.AddAcknowledgementSection.
//
// The function takes the following parameters:
//
//   - translatorCredits: translator credits.
func (self *AboutDialog) SetTranslatorCredits(translatorCredits string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(translatorCredits)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_translator_credits(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(translatorCredits)
}

// SetVersion 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.
//
// The function takes the following parameters:
//
//   - version: version.
func (self *AboutDialog) SetVersion(version string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(version)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_version(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(version)
}

// SetWebsite 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 aboutdialog.AddLink.
//
// The function takes the following parameters:
//
//   - website URL.
func (self *AboutDialog) SetWebsite(website string) {
	var _arg0 *C.AdwAboutDialog // out
	var _arg1 *C.char           // out

	_arg0 = (*C.AdwAboutDialog)(unsafe.Pointer(coreglib.InternObject(self).Native()))
	_arg1 = (*C.char)(unsafe.Pointer(C.CString(website)))
	defer C.free(unsafe.Pointer(_arg1))

	C.adw_about_dialog_set_website(_arg0, _arg1)
	runtime.KeepAlive(self)
	runtime.KeepAlive(website)
}
