Install ardour as a binary, a script and a set of shared
[ardour.git] / libs / gtkmm2 / gtk / gtkmm / aboutdialog.h
1 // -*- c++ -*-
2 // Generated by gtkmmproc -- DO NOT MODIFY!
3 #ifndef _GTKMM_ABOUTDIALOG_H
4 #define _GTKMM_ABOUTDIALOG_H
5
6 #include <glibmm.h>
7
8 /* $Id$ */
9
10 /* aboutdialog.h
11  *
12  * Copyright (C) 2004 The gtkmm Development Team
13  *
14  * This library is free software; you can redistribute it and/or
15  * modify it under the terms of the GNU Library General Public
16  * License as published by the Free Software Foundation; either
17  * version 2 of the License, or (at your option) any later version.
18  *
19  * This library is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
22  * Library General Public License for more details.
23  *
24  * You should have received a copy of the GNU Library General Public
25  * License along with this library; if not, write to the Free
26  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
27  */
28
29 #include <gtkmm/dialog.h>
30 //#include <glibmm/listhandle.h>
31
32
33 #ifndef DOXYGEN_SHOULD_SKIP_THIS
34 typedef struct _GtkAboutDialog GtkAboutDialog;
35 typedef struct _GtkAboutDialogClass GtkAboutDialogClass;
36 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
37
38
39 namespace Gtk
40 { class AboutDialog_Class; } // namespace Gtk
41 namespace Gtk
42 {
43
44 /** TODO
45  *
46  * @ingroup Dialogs
47  */
48
49 class AboutDialog : public Dialog
50 {
51   public:
52 #ifndef DOXYGEN_SHOULD_SKIP_THIS
53   typedef AboutDialog CppObjectType;
54   typedef AboutDialog_Class CppClassType;
55   typedef GtkAboutDialog BaseObjectType;
56   typedef GtkAboutDialogClass BaseClassType;
57 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
58
59   virtual ~AboutDialog();
60
61 #ifndef DOXYGEN_SHOULD_SKIP_THIS
62
63 private:
64   friend class AboutDialog_Class;
65   static CppClassType aboutdialog_class_;
66
67   // noncopyable
68   AboutDialog(const AboutDialog&);
69   AboutDialog& operator=(const AboutDialog&);
70
71 protected:
72   explicit AboutDialog(const Glib::ConstructParams& construct_params);
73   explicit AboutDialog(GtkAboutDialog* castitem);
74
75 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
76
77 public:
78 #ifndef DOXYGEN_SHOULD_SKIP_THIS
79   static GType get_type()      G_GNUC_CONST;
80   static GType get_base_type() G_GNUC_CONST;
81 #endif
82
83   ///Provides access to the underlying C GtkObject.
84   GtkAboutDialog*       gobj()       { return reinterpret_cast<GtkAboutDialog*>(gobject_); }
85
86   ///Provides access to the underlying C GtkObject.
87   const GtkAboutDialog* gobj() const { return reinterpret_cast<GtkAboutDialog*>(gobject_); }
88
89
90 public:
91   //C++ methods used to invoke GTK+ virtual functions:
92
93 protected:
94   //GTK+ Virtual Functions (override these to change behaviour):
95
96   //Default Signal Handlers::
97
98
99 private:
100
101   
102 public:
103   AboutDialog();
104
105   
106   /** Returns the program name displayed in the about dialog.
107    * @return The program name. The string is owned by the about
108    * dialog and must not be modified.
109    * 
110    * Since: 2.6.
111    */
112   Glib::ustring get_name() const;
113   
114   /** Sets the name to display in the about dialog. 
115    * If this is not set, it defaults to Glib::get_application_name().
116    * 
117    * Since: 2.6
118    * @param name The program name.
119    */
120   void set_name(const Glib::ustring& name);
121   
122   /** Returns the version string.
123    * @return The version string. The string is owned by the about
124    * dialog and must not be modified.
125    * 
126    * Since: 2.6.
127    */
128   Glib::ustring get_version() const;
129   
130   /** Sets the version string to display in the about dialog.
131    * 
132    * Since: 2.6
133    * @param version The version string.
134    */
135   void set_version(const Glib::ustring& version);
136   
137   /** Returns the copyright string.
138    * @return The copyright string. The string is owned by the about
139    * dialog and must not be modified.
140    * 
141    * Since: 2.6.
142    */
143   Glib::ustring get_copyright() const;
144   
145   /** Sets the copyright string to display in the about dialog.
146    * This should be a short string of one or two lines. 
147    * 
148    * Since: 2.6
149    * @param copyright The copyright string.
150    */
151   void set_copyright(const Glib::ustring& copyright);
152   
153   /** Returns the comments string.
154    * @return The comments. The string is owned by the about
155    * dialog and must not be modified.
156    * 
157    * Since: 2.6.
158    */
159   Glib::ustring get_comments() const;
160   
161   /** Sets the comments string to display in the about 
162    * dialog. This should be a short string of one or
163    * two lines.
164    * 
165    * Since: 2.6
166    * @param comments A comments string.
167    */
168   void set_comments(const Glib::ustring& comments);
169   
170   /** Returns the license information.
171    * @return The license information. The string is owned by the about
172    * dialog and must not be modified.
173    * 
174    * Since: 2.6.
175    */
176   Glib::ustring get_license() const;
177   
178   /** Sets the license information to be displayed in the secondary
179    * license dialog. If @a license  is <tt>0</tt>, the license button is
180    * hidden.
181    * 
182    * Since: 2.6
183    * @param license The license information or <tt>0</tt>.
184    */
185   void set_license(const Glib::ustring& license);
186   
187   /** Returns the website URL.
188    * @return The website URL. The string is owned by the about
189    * dialog and must not be modified.
190    * 
191    * Since: 2.6.
192    */
193   Glib::ustring get_website() const;
194   
195   /** Sets the URL to use for the website link.
196    * 
197    * Since: 2.6
198    * @param website A URL string starting with "http://".
199    */
200   void set_website(const Glib::ustring& website);
201   
202   /** Returns the label used for the website link.
203    * @return The label used for the website link. The string is owned by the about
204    * dialog and must not be modified.
205    * 
206    * Since: 2.6.
207    */
208   Glib::ustring get_website_label() const;
209   
210   /** Sets the label to be used for the website link.
211    * It defaults to the website URL.
212    * 
213    * Since: 2.6
214    * @param website_label The label used for the website link.
215    */
216   void set_website_label(const Glib::ustring& website_label);
217   
218    
219   /** Returns the string which are displayed in the authors tab
220    * of the secondary credits dialog.
221    * @return A <tt>0</tt>-terminated string array containing
222    * the authors. The array is owned by the about dialog 
223    * and must not be modified.
224    * 
225    * Since: 2.6.
226    */
227   Glib::StringArrayHandle get_authors() const;
228   
229   
230   /** Sets the strings which are displayed in the authors tab
231    * of the secondary credits dialog. 
232    * 
233    * Since: 2.6
234    * @param authors A <tt>0</tt>-terminated array of strings.
235    */
236   void set_authors(const Glib::StringArrayHandle& authors) const;
237   
238   
239   /** Returns the string which are displayed in the documenters 
240    * tab of the secondary credits dialog.
241    * @return A <tt>0</tt>-terminated string array containing
242    * the documenters. The array is owned by the about dialog 
243    * and must not be modified.
244    * 
245    * Since: 2.6.
246    */
247   Glib::StringArrayHandle get_documenters() const;
248   
249    
250   /** Sets the strings which are displayed in the documenters tab
251    * of the secondary credits dialog. 
252    * 
253    * Since: 2.6
254    * @param documenters A <tt>0</tt>-terminated array of strings.
255    */
256   void set_documenters(const Glib::StringArrayHandle& documenters);
257   
258   /** Returns the string which are displayed in the artists tab
259    * of the secondary credits dialog.
260    * @return A <tt>0</tt>-terminated string array containing
261    * the artists. The array is owned by the about dialog 
262    * and must not be modified.
263    * 
264    * Since: 2.6.
265    */
266   Glib::StringArrayHandle get_artists() const;
267   
268   /** Sets the strings which are displayed in the artists tab
269    * of the secondary credits dialog. 
270    * 
271    * Since: 2.6
272    * @param artists A <tt>0</tt>-terminated array of strings.
273    */
274   void set_artists(const Glib::StringArrayHandle& artists);
275   
276   /** Returns the translator credits string which is displayed
277    * in the translators tab of the secondary credits dialog.
278    * @return The translator credits string. The string is
279    * owned by the about dialog and must not be modified.
280    * 
281    * Since: 2.6.
282    */
283   Glib::ustring get_translator_credits() const;
284   
285   /** Sets the translator credits string which is displayed in
286    * the translators tab of the secondary credits dialog.
287    * 
288    * The intended use for this string is to display the translator
289    * of the language which is currently used in the user interface.
290    * Using gettext(), a simple way to achieve that is to mark the
291    * string for translation:
292    * @code
293    * gtk_about_dialog_set_translator_credits (about, _("translator-credits"));
294    * @endcode
295    * It is a good idea to use the customary msgid "translator-credits" for this
296    * purpose, since translators will already know the purpose of that msgid, and
297    * since Gtk::AboutDialog will detect if "translator-credits" is untranslated
298    * and hide the tab.
299    * 
300    * Since: 2.6
301    * @param translator_credits The translator credits.
302    */
303   void set_translator_credits(const Glib::ustring& translator_credits);
304   
305   
306   /** Returns the pixbuf displayed as logo in the about dialog.
307    * @return The pixbuf displayed as logo. The pixbuf is
308    * owned by the about dialog. If you want to keep a reference
309    * to it, you have to call Glib::object_ref() on it.
310    * 
311    * Since: 2.6.
312    */
313   Glib::RefPtr<Gdk::Pixbuf> get_logo();
314   
315   /** Returns the pixbuf displayed as logo in the about dialog.
316    * @return The pixbuf displayed as logo. The pixbuf is
317    * owned by the about dialog. If you want to keep a reference
318    * to it, you have to call Glib::object_ref() on it.
319    * 
320    * Since: 2.6.
321    */
322   Glib::RefPtr<const Gdk::Pixbuf> get_logo() const;
323
324   
325   /** Sets the pixbuf to be displayed as logo in 
326    * the about dialog. If it is <tt>0</tt>, the default
327    * window icon set with Gtk::Window::set_default_icon()
328    * will be used.
329    * 
330    * Since: 2.6
331    * @param logo A Gdk::Pixbuf, or <tt>0</tt>.
332    */
333   void set_logo(const Glib::RefPtr<Gdk::Pixbuf>& logo);
334   
335   
336   /** Returns the icon name displayed as logo in the about dialog.
337    * @return The icon name displayed as logo. The string is
338    * owned by the about dialog. If you want to keep a reference
339    * to it, you have to call Glib::strdup() on it.
340    * 
341    * Since: 2.6.
342    */
343   Glib::ustring get_logo_icon_name() const;
344   
345   /** Sets the pixbuf to be displayed as logo in 
346    * the about dialog. If it is <tt>0</tt>, the default
347    * window icon set with Gtk::Window::set_default_icon()
348    * will be used.
349    * 
350    * Since: 2.6
351    * @param icon_name An icon name, or <tt>0</tt>.
352    */
353   void set_logo_icon_name(const Glib::ustring& icon_name);
354
355   /** For instance,
356    * void on_activate_link_url(AboutDialog& about_dialog, const Glib::ustring& link);
357    */
358   typedef sigc::slot<void, AboutDialog& /* about_dialog */, const Glib::ustring& /* link */> SlotActivateLink;
359   
360   //TODO: Document these methods.
361   static void set_email_hook(const SlotActivateLink& slot);
362   
363   
364   static void set_url_hook(const SlotActivateLink& slot);
365   
366   
367   /** The name of the program. If this is not set
368    *
369    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
370    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
371    * the value of the property changes.
372    */
373   Glib::PropertyProxy<Glib::ustring> property_name() ;
374
375 /** The name of the program. If this is not set
376    *
377    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
378    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
379    * the value of the property changes.
380    */
381   Glib::PropertyProxy_ReadOnly<Glib::ustring> property_name() const;
382
383   /** The version of the program.
384    *
385    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
386    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
387    * the value of the property changes.
388    */
389   Glib::PropertyProxy<Glib::ustring> property_version() ;
390
391 /** The version of the program.
392    *
393    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
394    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
395    * the value of the property changes.
396    */
397   Glib::PropertyProxy_ReadOnly<Glib::ustring> property_version() const;
398
399   /** Copyright information for the program.
400    *
401    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
402    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
403    * the value of the property changes.
404    */
405   Glib::PropertyProxy<Glib::ustring> property_copyright() ;
406
407 /** Copyright information for the program.
408    *
409    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
410    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
411    * the value of the property changes.
412    */
413   Glib::PropertyProxy_ReadOnly<Glib::ustring> property_copyright() const;
414
415   /** Comments about the program.
416    *
417    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
418    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
419    * the value of the property changes.
420    */
421   Glib::PropertyProxy<Glib::ustring> property_comments() ;
422
423 /** Comments about the program.
424    *
425    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
426    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
427    * the value of the property changes.
428    */
429   Glib::PropertyProxy_ReadOnly<Glib::ustring> property_comments() const;
430
431   /** The URL for the link to the website of the program.
432    *
433    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
434    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
435    * the value of the property changes.
436    */
437   Glib::PropertyProxy<Glib::ustring> property_website() ;
438
439 /** The URL for the link to the website of the program.
440    *
441    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
442    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
443    * the value of the property changes.
444    */
445   Glib::PropertyProxy_ReadOnly<Glib::ustring> property_website() const;
446
447   /** The label for the link to the website of the program. If this is not set
448    *
449    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
450    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
451    * the value of the property changes.
452    */
453   Glib::PropertyProxy<Glib::ustring> property_website_label() ;
454
455 /** The label for the link to the website of the program. If this is not set
456    *
457    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
458    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
459    * the value of the property changes.
460    */
461   Glib::PropertyProxy_ReadOnly<Glib::ustring> property_website_label() const;
462
463   /** The license of the program.
464    *
465    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
466    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
467    * the value of the property changes.
468    */
469   Glib::PropertyProxy<Glib::ustring> property_license() ;
470
471 /** The license of the program.
472    *
473    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
474    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
475    * the value of the property changes.
476    */
477   Glib::PropertyProxy_ReadOnly<Glib::ustring> property_license() const;
478
479   /** List of authors of the program.
480    *
481    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
482    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
483    * the value of the property changes.
484    */
485   Glib::PropertyProxy<Glib::StringArrayHandle> property_authors() ;
486
487 /** List of authors of the program.
488    *
489    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
490    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
491    * the value of the property changes.
492    */
493   Glib::PropertyProxy_ReadOnly<Glib::StringArrayHandle> property_authors() const;
494
495   /** List of people documenting the program.
496    *
497    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
498    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
499    * the value of the property changes.
500    */
501   Glib::PropertyProxy<Glib::StringArrayHandle> property_documenters() ;
502
503 /** List of people documenting the program.
504    *
505    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
506    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
507    * the value of the property changes.
508    */
509   Glib::PropertyProxy_ReadOnly<Glib::StringArrayHandle> property_documenters() const;
510
511   /** Credits to the translators. This string should be marked as translatable.
512    *
513    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
514    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
515    * the value of the property changes.
516    */
517   Glib::PropertyProxy<Glib::StringArrayHandle> property_translator_credits() ;
518
519 /** Credits to the translators. This string should be marked as translatable.
520    *
521    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
522    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
523    * the value of the property changes.
524    */
525   Glib::PropertyProxy_ReadOnly<Glib::StringArrayHandle> property_translator_credits() const;
526
527   /** List of people who have contributed artwork to the program.
528    *
529    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
530    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
531    * the value of the property changes.
532    */
533   Glib::PropertyProxy<Glib::StringArrayHandle> property_artists() ;
534
535 /** List of people who have contributed artwork to the program.
536    *
537    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
538    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
539    * the value of the property changes.
540    */
541   Glib::PropertyProxy_ReadOnly<Glib::StringArrayHandle> property_artists() const;
542
543   /** A logo for the about box. If this is not set
544    *
545    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
546    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
547    * the value of the property changes.
548    */
549   Glib::PropertyProxy< Glib::RefPtr<Gdk::Pixbuf> > property_logo() ;
550
551 /** A logo for the about box. If this is not set
552    *
553    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
554    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
555    * the value of the property changes.
556    */
557   Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Gdk::Pixbuf> > property_logo() const;
558
559   /** A named icon to use as the logo for the about box.
560    *
561    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
562    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
563    * the value of the property changes.
564    */
565   Glib::PropertyProxy<Glib::ustring> property_logo_icon_name() ;
566
567 /** A named icon to use as the logo for the about box.
568    *
569    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
570    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
571    * the value of the property changes.
572    */
573   Glib::PropertyProxy_ReadOnly<Glib::ustring> property_logo_icon_name() const;
574   
575
576 };
577
578 } // namespace Gtk
579
580
581 namespace Glib
582 {
583   /** @relates Gtk::AboutDialog
584    * @param object The C instance
585    * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
586    * @result A C++ instance that wraps this C instance.
587    */
588   Gtk::AboutDialog* wrap(GtkAboutDialog* object, bool take_copy = false);
589 }
590 #endif /* _GTKMM_ABOUTDIALOG_H */
591