// 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_AboutWindow_ConnectActivateLink(gpointer, gchar*, guintptr);
import "C"

// GType values.
var (
	GTypeAboutWindow = coreglib.Type(C.adw_about_window_get_type())
)

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

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

func defaultAboutWindowOverrides(v *AboutWindow) AboutWindowOverrides {
	return AboutWindowOverrides{}
}

// AboutWindow: window showing information about the application.
//
// <picture> <source srcset="about-window-dark.png"
// media="(prefers-color-scheme: dark)"> <img src="about-window.png"
// alt="about-window"> </picture>
//
// An about window is typically opened when the user activates the About … item
// in the application's primary menu. All parts of the window are optional.
//
// # Main page
//
// AdwAboutWindow prominently displays the application's icon, name, developer
// name and version. They can be set with the aboutwindow:application-icon,
// aboutwindow:application-name, aboutwindow:developer-name and
// aboutwindow:version respectively.
//
// # What's New
//
// AdwAboutWindow provides a way for applications to display their release
// notes, set with the aboutwindow: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 aboutwindow:version. Use aboutwindow:release-notes-version to
// override it.
//
// # Details
//
// The Details page displays the application comments and links.
//
// The comments can be set with the aboutwindow: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 aboutwindow:website. To add extra links
// below the website, use aboutwindow.AddLink.
//
// If the Details page doesn't have any other content besides website, the
// website will be displayed on the main page instead.
//
// # Troubleshooting
//
// AdwAboutWindow displays the following two links on the main page:
//
// * Support Questions, set with the aboutwindow:support-url property, * Report
// an Issue, set with the aboutwindow:issue-url property.
//
// Additionally, applications can provide debugging information. It will be
// shown separately on the Troubleshooting page. Use the aboutwindow: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.
//
// AdwAboutWindow provides a quick way to save debug information to a file.
// When saving, aboutwindow: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 aboutwindow:developers property,
// * Designers, set with the aboutwindow:designers property, * Artists,
// set with the aboutwindow:artists property, * Documenters, set with
// the aboutwindow:documenters property, * Translators, set with the
// aboutwindow: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 aboutwindow.AddCreditSection to add them.
//
// The Acknowledgements page can be used to acknowledge additional
// people and organizations for their non-development contributions. Use
// aboutwindow.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-window-credits-dark.png"
// media="(prefers-color-scheme: dark)"> <img src="about-window-credits.png"
// alt="about-window-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 aboutwindow: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 aboutwindow:license-type property. If the application's license is not in
// the list, aboutwindow:license can be used instead.
//
// To add information about other modules, such as application dependencies or
// data, use aboutwindow.AddLegalSection.
//
// # Constructing
//
// To make constructing an AdwAboutWindow as convenient as possible, you can use
// the function show_about_window which constructs and shows a window.
//
//	static void
//	show_about (GtkApplication *app)
//	{
//	  const char *developers[] = {
//	    "Angela Avery",
//	    NULL
//	  };
//
//	  const char *designers[] = {
//	    "GNOME Design Team",
//	    NULL
//	  };
//
//	  adw_show_about_window (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/new",
//	                         "license-type", GTK_LICENSE_GPL_3_0,
//	                         "developers", developers,
//	                         "designers", designers,
//	                         "translator-credits", _("translator-credits"),
//	                         NULL);
//	}
//
// # CSS nodes
//
// AdwAboutWindow has a main CSS node with the name window and the style class
// .about.
type AboutWindow struct {
	_ [0]func() // equal guard
	Window
}

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

func init() {
	coreglib.RegisterClassInfo[*AboutWindow, *AboutWindowClass, AboutWindowOverrides](
		GTypeAboutWindow,
		initAboutWindowClass,
		wrapAboutWindow,
		defaultAboutWindowOverrides,
	)
}

func initAboutWindowClass(gclass unsafe.Pointer, overrides AboutWindowOverrides, classInitFunc func(*AboutWindowClass)) {
	if classInitFunc != nil {
		class := (*AboutWindowClass)(gextras.NewStructNative(gclass))
		classInitFunc(class)
	}
}

func wrapAboutWindow(obj *coreglib.Object) *AboutWindow {
	return &AboutWindow{
		Window: Window{
			Window: gtk.Window{
				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,
				Root: gtk.Root{
					NativeSurface: gtk.NativeSurface{
						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,
							},
						},
					},
				},
				ShortcutManager: gtk.ShortcutManager{
					Object: obj,
				},
			},
		},
	}
}

func marshalAboutWindow(p uintptr) (interface{}, error) {
	return wrapAboutWindow(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 *AboutWindow) ConnectActivateLink(f func(uri string) (ok bool)) coreglib.SignalHandle {
	return coreglib.ConnectGeneratedClosure(self, "activate-link", false, unsafe.Pointer(C._gotk4_adw1_AboutWindow_ConnectActivateLink), f)
}

// NewAboutWindow creates a new AdwAboutWindow.
//
// The function returns the following values:
//
//   - aboutWindow: newly created AdwAboutWindow.
func NewAboutWindow() *AboutWindow {
	var _cret *C.GtkWidget // in

	_cret = C.adw_about_window_new()

	var _aboutWindow *AboutWindow // out

	_aboutWindow = wrapAboutWindow(coreglib.Take(unsafe.Pointer(_cret)))

	return _aboutWindow
}

// NewAboutWindowFromAppdata creates a new AdwAboutWindow using AppStream
// metadata.
//
// This automatically sets the following properties with the following AppStream
// values:
//
// * aboutwindow:application-icon is set from the <id> *
// aboutwindow:application-name is set from the <name> *
// aboutwindow:developer-name is set from the <name> within <developer>
// * aboutwindow:version is set from the version of the latest release
// * aboutwindow:website is set from the <url type="homepage">
// * aboutwindow:support-url is set from the <url type="help"> *
// aboutwindow:issue-url is set from the <url type="bugtracker"> *
// aboutwindow: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, aboutwindow:release-notes-version is
// set to match it, while aboutwindow: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:
//
//   - aboutWindow: newly created AdwAboutWindow.
func NewAboutWindowFromAppdata(resourcePath, releaseNotesVersion string) *AboutWindow {
	var _arg1 *C.char      // out
	var _arg2 *C.char      // out
	var _cret *C.GtkWidget // 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_window_new_from_appdata(_arg1, _arg2)
	runtime.KeepAlive(resourcePath)
	runtime.KeepAlive(releaseNotesVersion)

	var _aboutWindow *AboutWindow // out

	_aboutWindow = wrapAboutWindow(coreglib.Take(unsafe.Pointer(_cret)))

	return _aboutWindow
}

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

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

	_arg0 = (*C.AdwAboutWindow)(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_window_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 aboutwindow:copyright, aboutwindow:license-type and
// aboutwindow: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_window_add_legal_section (ADW_ABOUT_WINDOW (about),
//	                                    _("Copyright and a known license"),
//	                                    "© 2022 Example",
//	                                    GTK_LICENSE_LGPL_2_1,
//	                                    NULL);
//
//	adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about),
//	                                    _("Copyright and custom license"),
//	                                    "© 2022 Example",
//	                                    GTK_LICENSE_CUSTOM,
//	                                    "Custom license text");
//
//	adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about),
//	                                    _("Copyright only"),
//	                                    "© 2022 Example",
//	                                    GTK_LICENSE_UNKNOWN,
//	                                    NULL);
//
//	adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (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 *AboutWindow) AddLegalSection(title, copyright string, licenseType gtk.License, license string) {
	var _arg0 *C.AdwAboutWindow // out
	var _arg1 *C.char           // out
	var _arg2 *C.char           // out
	var _arg3 C.GtkLicense      // out
	var _arg4 *C.char           // out

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

	_arg0 = (*C.AdwAboutWindow)(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_window_add_link(_arg0, _arg1, _arg2)
	runtime.KeepAlive(self)
	runtime.KeepAlive(title)
	runtime.KeepAlive(url)
}

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

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

	_cret = C.adw_about_window_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 *AboutWindow) ApplicationName() string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret *C.char           // in

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

	_cret = C.adw_about_window_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 *AboutWindow) Artists() []string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret **C.char          // in

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

	_cret = C.adw_about_window_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 *AboutWindow) Comments() string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret *C.char           // in

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

	_cret = C.adw_about_window_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 *AboutWindow) Copyright() string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret *C.char           // in

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

	_cret = C.adw_about_window_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 *AboutWindow) DebugInfo() string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret *C.char           // in

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

	_cret = C.adw_about_window_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 *AboutWindow) DebugInfoFilename() string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret *C.char           // in

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

	_cret = C.adw_about_window_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 *AboutWindow) Designers() []string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret **C.char          // in

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

	_cret = C.adw_about_window_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 *AboutWindow) DeveloperName() string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret *C.char           // in

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

	_cret = C.adw_about_window_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 *AboutWindow) Developers() []string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret **C.char          // in

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

	_cret = C.adw_about_window_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 *AboutWindow) Documenters() []string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret **C.char          // in

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

	_cret = C.adw_about_window_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 *AboutWindow) IssueURL() string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret *C.char           // in

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

	_cret = C.adw_about_window_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 *AboutWindow) License() string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret *C.char           // in

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

	_cret = C.adw_about_window_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 *AboutWindow) LicenseType() gtk.License {
	var _arg0 *C.AdwAboutWindow // out
	var _cret C.GtkLicense      // in

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

	_cret = C.adw_about_window_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 *AboutWindow) ReleaseNotes() string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret *C.char           // in

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

	_cret = C.adw_about_window_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 *AboutWindow) ReleaseNotesVersion() string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret *C.char           // in

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

	_cret = C.adw_about_window_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 *AboutWindow) SupportURL() string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret *C.char           // in

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

	_cret = C.adw_about_window_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 *AboutWindow) TranslatorCredits() string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret *C.char           // in

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

	_cret = C.adw_about_window_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 *AboutWindow) Version() string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret *C.char           // in

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

	_cret = C.adw_about_window_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 *AboutWindow) Website() string {
	var _arg0 *C.AdwAboutWindow // out
	var _cret *C.char           // in

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

	_cret = C.adw_about_window_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 *AboutWindow) SetApplicationIcon(applicationIcon string) {
	var _arg0 *C.AdwAboutWindow // out
	var _arg1 *C.char           // out

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

	C.adw_about_window_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 *AboutWindow) SetApplicationName(applicationName string) {
	var _arg0 *C.AdwAboutWindow // out
	var _arg1 *C.char           // out

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

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

	_arg0 = (*C.AdwAboutWindow)(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_window_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 *AboutWindow) SetComments(comments string) {
	var _arg0 *C.AdwAboutWindow // out
	var _arg1 *C.char           // out

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

	C.adw_about_window_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.
//
// aboutwindow.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 *AboutWindow) SetCopyright(copyright string) {
	var _arg0 *C.AdwAboutWindow // out
	var _arg1 *C.char           // out

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

	C.adw_about_window_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.
//
// AdwAboutWindow provides a quick way to save debug information to a file.
// When saving, aboutwindow: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 *AboutWindow) SetDebugInfo(debugInfo string) {
	var _arg0 *C.AdwAboutWindow // out
	var _arg1 *C.char           // out

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

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

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

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

	_arg0 = (*C.AdwAboutWindow)(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_window_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 aboutwindow:developers and related properties.
//
// The function takes the following parameters:
//
//   - developerName: developer name.
func (self *AboutWindow) SetDeveloperName(developerName string) {
	var _arg0 *C.AdwAboutWindow // out
	var _arg1 *C.char           // out

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

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

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

	_arg0 = (*C.AdwAboutWindow)(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_window_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 *AboutWindow) SetIssueURL(issueUrl string) {
	var _arg0 *C.AdwAboutWindow // out
	var _arg1 *C.char           // out

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

	C.adw_about_window_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
// aboutwindow:license-type.
//
// When set, aboutwindow: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.
//
// aboutwindow.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 *AboutWindow) SetLicense(license string) {
	var _arg0 *C.AdwAboutWindow // out
	var _arg1 *C.char           // out

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

	C.adw_about_window_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, aboutwindow: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. aboutwindow:license
// will be cleared out.
//
// The license description will be displayed on the Legal page, below the
// copyright information.
//
// aboutwindow.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 *AboutWindow) SetLicenseType(licenseType gtk.License) {
	var _arg0 *C.AdwAboutWindow // out
	var _arg1 C.GtkLicense      // out

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

	C.adw_about_window_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.
//
// AdwAboutWindow displays the version above the release notes. If set,
// the aboutwindow:release-notes-version of the property will be used as the
// version; otherwise, aboutwindow:version is used.
//
// The function takes the following parameters:
//
//   - releaseNotes: release notes.
func (self *AboutWindow) SetReleaseNotes(releaseNotes string) {
	var _arg0 *C.AdwAboutWindow // out
	var _arg1 *C.char           // out

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

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

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

	C.adw_about_window_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 *AboutWindow) SetSupportURL(supportUrl string) {
	var _arg0 *C.AdwAboutWindow // out
	var _arg1 *C.char           // out

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

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

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

	C.adw_about_window_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 aboutwindow: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 *AboutWindow) SetVersion(version string) {
	var _arg0 *C.AdwAboutWindow // out
	var _arg1 *C.char           // out

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

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

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

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