1 /* === S Y N F I G ========================================================= */
3 ** \brief About dialog implementation
8 ** Copyright (c) 2008 Paul Wise
10 ** This package is free software; you can redistribute it and/or
11 ** modify it under the terms of the GNU General Public License as
12 ** published by the Free Software Foundation; either version 2 of
13 ** the License, or (at your option) any later version.
15 ** This package is distributed in the hope that it will be useful,
16 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
17 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 ** General Public License for more details.
21 /* ========================================================================= */
23 /* === H E A D E R S ======================================================= */
36 #include <gtkmm/aboutdialog.h>
38 #include <ETL/stringf>
40 #include <synfig/general.h>
42 // This is generated at make time from .svn or .git/svn or autorevision.conf
43 #include <autorevision.h>
52 /* === U S I N G =========================================================== */
56 using namespace studio
;
58 /* === M A C R O S ========================================================= */
61 #define VERSION "unknown"
62 #define PACKAGE "synfigstudio"
68 # define IMAGE_DIR "share\\pixmaps"
73 # define IMAGE_DIR "/usr/local/share/pixmaps"
77 # define IMAGE_EXT "png"
80 #define stringify_(x) #x
81 #define stringify(x) stringify_(x)
83 /* === G L O B A L S ======================================================= */
85 extern const guint gtk_major_version
;
86 extern const guint gtk_minor_version
;
87 extern const guint gtk_micro_version
;
88 extern const guint gtk_binary_age
;
89 extern const guint gtk_interface_age
;
91 /* === P R O C E D U R E S ================================================= */
93 /* === M E T H O D S ======================================================= */
98 #ifdef HAVE_GTK_ABOUTDIALOG_SET_PROGRAM_NAME
99 set_program_name(PACKAGE_NAME
);
101 set_name(PACKAGE_NAME
);
103 set_version(VERSION
);
104 set_comments(_("2D vector animation studio"));
106 set_url_hook(sigc::mem_fun(*this, &About::on_link_clicked
));
107 set_website("http://www.synfig.org/");
108 set_website_label(_("Visit the Synfig website"));
110 set_copyright(_("Copyright 2001-2008\nRobert B. Quattlebaum Jr.,\nAdrian Bentley and Synfig contributors"));
111 Glib::ustring license
=
112 "This program is free software; you can redistribute it and/or modify "
113 "it under the terms of the GNU General Public License as published by "
114 "the Free Software Foundation; either version 2 of the License, or "
115 "(at your option) any later version.\n\n"
117 "This program is distributed in the hope that it will be useful, "
118 "but WITHOUT ANY WARRANTY; without even the implied warranty of "
119 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "
120 "GNU General Public License for more details.\n\n"
122 "You should have received a copy of the GNU General Public License along "
123 "with this program; if not, write to the Free Software Foundation, Inc., "
124 "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or visit: http://www.gnu.org/";
125 set_license(license
);
126 #ifdef HAVE_GTK_ABOUTDIALOG_SET_WRAP_LICENSE
127 set_wrap_license(true);
130 std::vector
<Glib::ustring
> authors
;
131 authors
.push_back("Original developers:");
132 authors
.push_back("");
133 authors
.push_back("Robert B. Quattlebaum Jr (darco)");
134 authors
.push_back("Adrian Bentley");
135 authors
.push_back("");
136 authors
.push_back("Contributors:");
137 authors
.push_back("");
138 authors
.push_back("Adrian Winchell (SnapSilverlight)");
139 authors
.push_back("Andreas Jochens");
140 authors
.push_back("Carlos López González (genete)");
141 authors
.push_back("Chris Moore (dooglus)");
142 authors
.push_back("Chris Norman (pixelgeek)");
143 authors
.push_back("Daniel Fort");
144 authors
.push_back("Daniel Hornung (rubikcube)");
145 authors
.push_back("David Roden (Bombe)");
146 authors
.push_back("Dmitriy Pomerantsev (Atrus)");
147 authors
.push_back("Douglas Lau");
148 authors
.push_back("Gerald Young (Yoyobuae)");
149 authors
.push_back("Gerco Ballintijn");
150 authors
.push_back("IL'dar AKHmetgaleev (AkhIL)");
151 authors
.push_back("Luka Pravica");
152 authors
.push_back("Martin Michlmayr (tbm)");
153 authors
.push_back("Miguel Gea Milvaques (xerakko)");
154 authors
.push_back("Paul Wise (pabs)");
155 authors
.push_back("Ralf Corsepius");
156 authors
.push_back("Yue Shi Lai");
157 set_authors(authors
);
159 std::vector
<Glib::ustring
> artists
;
160 artists
.push_back("Robert B. Quattlebaum Jr. (darco)");
161 artists
.push_back("Aurore D (rore)");
162 artists
.push_back("Carlos López González (genete)");
163 artists
.push_back("Chris Norman (pixelgeek)");
164 artists
.push_back("Daniel Hornung (rubikcube)");
165 artists
.push_back("Franco Iacomella (Yaco)");
167 set_artists(artists
);
169 // TRANSLATORS: change this to your name, separate multiple names with \n
170 set_translator_credits(_("translator-credits"));
172 std::string imagepath
;
174 imagepath
=App::get_base_path()+ETL_DIRECTORY_SEPARATOR
+IMAGE_DIR
;
178 char* synfig_root
=getenv("SYNFIG_ROOT");
180 imagepath
=synfig_root
;
181 imagepath
+=ETL_DIRECTORY_SEPARATOR
;
183 imagepath
+=ETL_DIRECTORY_SEPARATOR
;
184 imagepath
+="pixmaps";
186 imagepath
+=ETL_DIRECTORY_SEPARATOR
;
188 Gtk::Image
*Logo
= manage(new class Gtk::Image());
189 Logo
->set(imagepath
+"synfig_icon."IMAGE_EXT
);
190 set_logo(Logo
->get_pixbuf());
192 #ifdef SHOW_EXTRA_INFO
194 string extra_info
= get_comments() + "\n";
197 extra_info
+= strprintf(_("\nDevelopment version:\n%s\n"),DEVEL_VERSION
);
202 extra_info
+= strprintf(_("Built on %s" /* at %s */ "\n"), __DATE__
/* , __TIME__ */ );
206 extra_info
+= strprintf(_("Built with:\n"), ETL_VERSION
);
207 extra_info
+= strprintf(_("ETL %s\n"), ETL_VERSION
);
208 extra_info
+= strprintf(_("Synfig API %s\n"), stringify(SYNFIG_VERSION
));
209 extra_info
+= strprintf(_("Synfig library %d\n"), SYNFIG_LIBRARY_VERSION
);
210 extra_info
+= strprintf(_("GTK+ %d.%d.%d\n"), GTK_MAJOR_VERSION
, GTK_MINOR_VERSION
, GTK_MICRO_VERSION
);
212 extra_info
+= strprintf(_("GNU G++ %d.%d.%d\n"),__GNUC__
,__GNUC_MINOR__
,__GNUC_PATCHLEVEL__
);
217 extra_info
+= strprintf(_("Using:\n"), synfig::get_version());
218 extra_info
+= strprintf(_("Synfig %s\n"), synfig::get_version());
219 extra_info
+= strprintf(_("GTK+ %d.%d.%d"),gtk_major_version
,gtk_minor_version
,gtk_micro_version
);
222 extra_info
+= "\n\nDEBUG BUILD";
225 set_comments(extra_info
);
229 // Hide the dialog when you click close
230 signal_response().connect(sigc::mem_fun(*this, &About::close
));
233 void About::close(int){
237 void About::on_link_clicked(Gtk::AboutDialog
&, const Glib::ustring
&url
)