1/* GTK - The GIMP Toolkit
2
3 Copyright (C) 2001 CodeFactory AB
4 Copyright (C) 2001 Anders Carlsson <andersca@codefactory.se>
5 Copyright (C) 2003, 2004 Matthias Clasen <mclasen@redhat.com>
6
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Library General Public License as
9 published by the Free Software Foundation; either version 2 of the
10 License, or (at your option) any later version.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Library General Public License for more details.
16
17 You should have received a copy of the GNU Library General Public
18 License along with this library. If not, see <http://www.gnu.org/licenses/>.
19
20 Author: Anders Carlsson <andersca@codefactory.se>
21*/
22
23#ifndef __GTK_ABOUT_DIALOG_H__
24#define __GTK_ABOUT_DIALOG_H__
25
26#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
27#error "Only <gtk/gtk.h> can be included directly."
28#endif
29
30#include <gtk/gtkdialog.h>
31
32G_BEGIN_DECLS
33
34#define GTK_TYPE_ABOUT_DIALOG (gtk_about_dialog_get_type ())
35#define GTK_ABOUT_DIALOG(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GTK_TYPE_ABOUT_DIALOG, GtkAboutDialog))
36#define GTK_ABOUT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_ABOUT_DIALOG, GtkAboutDialogClass))
37#define GTK_IS_ABOUT_DIALOG(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GTK_TYPE_ABOUT_DIALOG))
38#define GTK_IS_ABOUT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ABOUT_DIALOG))
39#define GTK_ABOUT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ABOUT_DIALOG, GtkAboutDialogClass))
40
41typedef struct _GtkAboutDialog GtkAboutDialog;
42typedef struct _GtkAboutDialogClass GtkAboutDialogClass;
43typedef struct _GtkAboutDialogPrivate GtkAboutDialogPrivate;
44
45/**
46 * GtkLicense:
47 * @GTK_LICENSE_UNKNOWN: No license specified
48 * @GTK_LICENSE_CUSTOM: A license text is going to be specified by the
49 * developer
50 * @GTK_LICENSE_GPL_2_0: The GNU General Public License, version 2.0 or later
51 * @GTK_LICENSE_GPL_3_0: The GNU General Public License, version 3.0 or later
52 * @GTK_LICENSE_LGPL_2_1: The GNU Lesser General Public License, version 2.1 or later
53 * @GTK_LICENSE_LGPL_3_0: The GNU Lesser General Public License, version 3.0 or later
54 * @GTK_LICENSE_BSD: The BSD standard license
55 * @GTK_LICENSE_MIT_X11: The MIT/X11 standard license
56 * @GTK_LICENSE_ARTISTIC: The Artistic License, version 2.0
57 * @GTK_LICENSE_GPL_2_0_ONLY: The GNU General Public License, version 2.0 only. Since 3.12.
58 * @GTK_LICENSE_GPL_3_0_ONLY: The GNU General Public License, version 3.0 only. Since 3.12.
59 * @GTK_LICENSE_LGPL_2_1_ONLY: The GNU Lesser General Public License, version 2.1 only. Since 3.12.
60 * @GTK_LICENSE_LGPL_3_0_ONLY: The GNU Lesser General Public License, version 3.0 only. Since 3.12.
61 * @GTK_LICENSE_AGPL_3_0: The GNU Affero General Public License, version 3.0 or later. Since: 3.22.
62 *
63 * The type of license for an application.
64 *
65 * This enumeration can be expanded at later date.
66 *
67 * Since: 3.0
68 */
69typedef enum {
70 GTK_LICENSE_UNKNOWN,
71 GTK_LICENSE_CUSTOM,
72
73 GTK_LICENSE_GPL_2_0,
74 GTK_LICENSE_GPL_3_0,
75
76 GTK_LICENSE_LGPL_2_1,
77 GTK_LICENSE_LGPL_3_0,
78
79 GTK_LICENSE_BSD,
80 GTK_LICENSE_MIT_X11,
81
82 GTK_LICENSE_ARTISTIC,
83
84 GTK_LICENSE_GPL_2_0_ONLY,
85 GTK_LICENSE_GPL_3_0_ONLY,
86 GTK_LICENSE_LGPL_2_1_ONLY,
87 GTK_LICENSE_LGPL_3_0_ONLY,
88
89 GTK_LICENSE_AGPL_3_0
90} GtkLicense;
91
92/**
93 * GtkAboutDialog:
94 *
95 * The #GtkAboutDialog-struct contains
96 * only private fields and should not be directly accessed.
97 */
98struct _GtkAboutDialog
99{
100 GtkDialog parent_instance;
101
102 /*< private >*/
103 GtkAboutDialogPrivate *priv;
104};
105
106struct _GtkAboutDialogClass
107{
108 GtkDialogClass parent_class;
109
110 gboolean (*activate_link) (GtkAboutDialog *dialog,
111 const gchar *uri);
112
113 /* Padding for future expansion */
114 void (*_gtk_reserved1) (void);
115 void (*_gtk_reserved2) (void);
116 void (*_gtk_reserved3) (void);
117 void (*_gtk_reserved4) (void);
118};
119
120GDK_AVAILABLE_IN_ALL
121GType gtk_about_dialog_get_type (void) G_GNUC_CONST;
122GDK_AVAILABLE_IN_ALL
123GtkWidget *gtk_about_dialog_new (void);
124GDK_AVAILABLE_IN_ALL
125void gtk_show_about_dialog (GtkWindow *parent,
126 const gchar *first_property_name,
127 ...) G_GNUC_NULL_TERMINATED;
128GDK_AVAILABLE_IN_ALL
129const gchar * gtk_about_dialog_get_program_name (GtkAboutDialog *about);
130GDK_AVAILABLE_IN_ALL
131void gtk_about_dialog_set_program_name (GtkAboutDialog *about,
132 const gchar *name);
133GDK_AVAILABLE_IN_ALL
134const gchar * gtk_about_dialog_get_version (GtkAboutDialog *about);
135GDK_AVAILABLE_IN_ALL
136void gtk_about_dialog_set_version (GtkAboutDialog *about,
137 const gchar *version);
138GDK_AVAILABLE_IN_ALL
139const gchar * gtk_about_dialog_get_copyright (GtkAboutDialog *about);
140GDK_AVAILABLE_IN_ALL
141void gtk_about_dialog_set_copyright (GtkAboutDialog *about,
142 const gchar *copyright);
143GDK_AVAILABLE_IN_ALL
144const gchar * gtk_about_dialog_get_comments (GtkAboutDialog *about);
145GDK_AVAILABLE_IN_ALL
146void gtk_about_dialog_set_comments (GtkAboutDialog *about,
147 const gchar *comments);
148GDK_AVAILABLE_IN_ALL
149const gchar * gtk_about_dialog_get_license (GtkAboutDialog *about);
150GDK_AVAILABLE_IN_ALL
151void gtk_about_dialog_set_license (GtkAboutDialog *about,
152 const gchar *license);
153GDK_AVAILABLE_IN_ALL
154void gtk_about_dialog_set_license_type (GtkAboutDialog *about,
155 GtkLicense license_type);
156GDK_AVAILABLE_IN_ALL
157GtkLicense gtk_about_dialog_get_license_type (GtkAboutDialog *about);
158
159GDK_AVAILABLE_IN_ALL
160gboolean gtk_about_dialog_get_wrap_license (GtkAboutDialog *about);
161GDK_AVAILABLE_IN_ALL
162void gtk_about_dialog_set_wrap_license (GtkAboutDialog *about,
163 gboolean wrap_license);
164
165GDK_AVAILABLE_IN_ALL
166const gchar * gtk_about_dialog_get_website (GtkAboutDialog *about);
167GDK_AVAILABLE_IN_ALL
168void gtk_about_dialog_set_website (GtkAboutDialog *about,
169 const gchar *website);
170GDK_AVAILABLE_IN_ALL
171const gchar * gtk_about_dialog_get_website_label (GtkAboutDialog *about);
172GDK_AVAILABLE_IN_ALL
173void gtk_about_dialog_set_website_label (GtkAboutDialog *about,
174 const gchar *website_label);
175GDK_AVAILABLE_IN_ALL
176const gchar* const * gtk_about_dialog_get_authors (GtkAboutDialog *about);
177GDK_AVAILABLE_IN_ALL
178void gtk_about_dialog_set_authors (GtkAboutDialog *about,
179 const gchar **authors);
180GDK_AVAILABLE_IN_ALL
181const gchar* const * gtk_about_dialog_get_documenters (GtkAboutDialog *about);
182GDK_AVAILABLE_IN_ALL
183void gtk_about_dialog_set_documenters (GtkAboutDialog *about,
184 const gchar **documenters);
185GDK_AVAILABLE_IN_ALL
186const gchar* const * gtk_about_dialog_get_artists (GtkAboutDialog *about);
187GDK_AVAILABLE_IN_ALL
188void gtk_about_dialog_set_artists (GtkAboutDialog *about,
189 const gchar **artists);
190GDK_AVAILABLE_IN_ALL
191const gchar * gtk_about_dialog_get_translator_credits (GtkAboutDialog *about);
192GDK_AVAILABLE_IN_ALL
193void gtk_about_dialog_set_translator_credits (GtkAboutDialog *about,
194 const gchar *translator_credits);
195GDK_AVAILABLE_IN_ALL
196GdkPixbuf * (GtkAboutDialog *about);
197GDK_AVAILABLE_IN_ALL
198void (GtkAboutDialog *about,
199 GdkPixbuf *);
200GDK_AVAILABLE_IN_ALL
201const gchar * gtk_about_dialog_get_logo_icon_name (GtkAboutDialog *about);
202GDK_AVAILABLE_IN_ALL
203void gtk_about_dialog_set_logo_icon_name (GtkAboutDialog *about,
204 const gchar *icon_name);
205GDK_AVAILABLE_IN_3_4
206void gtk_about_dialog_add_credit_section (GtkAboutDialog *about,
207 const gchar *section_name,
208 const gchar **people);
209
210G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkAboutDialog, g_object_unref)
211
212G_END_DECLS
213
214#endif /* __GTK_ABOUT_DIALOG_H__ */
215
216
217