Blame synfig-studio/src/gui/dialogs/about.cpp

Carlos Lopez a09598
/* === S Y N F I G ========================================================= */
Carlos Lopez a09598
/*!	\file about.cpp
Carlos Lopez a09598
**	\brief About dialog implementation
Carlos Lopez a09598
**
Carlos Lopez a09598
**	$Id$
Carlos Lopez a09598
**
Carlos Lopez a09598
**	\legal
Carlos Lopez a09598
**	Copyright (c) 2008 Paul Wise
Carlos Lopez a09598
**
Carlos Lopez a09598
**	This package is free software; you can redistribute it and/or
Carlos Lopez a09598
**	modify it under the terms of the GNU General Public License as
Carlos Lopez a09598
**	published by the Free Software Foundation; either version 2 of
Carlos Lopez a09598
**	the License, or (at your option) any later version.
Carlos Lopez a09598
**
Carlos Lopez a09598
**	This package is distributed in the hope that it will be useful,
Carlos Lopez a09598
**	but WITHOUT ANY WARRANTY; without even the implied warranty of
Carlos Lopez a09598
**	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Carlos Lopez a09598
**	General Public License for more details.
Carlos Lopez a09598
**	\endlegal
Carlos Lopez a09598
*/
Carlos Lopez a09598
/* ========================================================================= */
Carlos Lopez a09598
Carlos Lopez a09598
/* === H E A D E R S ======================================================= */
Carlos Lopez a09598
Carlos Lopez a09598
#ifdef USING_PCH
Carlos Lopez a09598
#	include "pch.h"
Carlos Lopez a09598
#else
Carlos Lopez a09598
#ifdef HAVE_CONFIG_H
Carlos Lopez a09598
#	include <config.h></config.h>
Carlos Lopez a09598
#endif
Carlos Lopez a09598
Carlos Lopez a09598
#include <vector></vector>
Carlos Lopez a09598
Carlos Lopez a09598
#include <gtk gtk.h=""></gtk>
Carlos Lopez a09598
Carlos Lopez a09598
#include <gtkmm aboutdialog.h=""></gtkmm>
Carlos Lopez a09598
Carlos Lopez a09598
#include <etl stringf=""></etl>
Carlos Lopez a09598
Carlos Lopez a09598
#include <synfig general.h=""></synfig>
Carlos Lopez a09598
Carlos Lopez a09598
// This is generated at make time from .svn or .git/svn or autorevision.conf
Carlos Lopez a09598
#include <autorevision.h></autorevision.h>
Carlos Lopez a09598
Carlos Lopez a09598
#include "about.h"
Carlos Lopez a09598
#include "app.h"
Carlos Lopez a09598
abdbf2
#include <gui localization.h=""></gui>
Carlos Lopez a09598
Rodolfo Ribeiro Gomes 950278
#include "gui/resourcehelper.h"
Rodolfo Ribeiro Gomes 950278
Carlos Lopez a09598
#endif
Carlos Lopez a09598
Carlos Lopez a09598
/* === U S I N G =========================================================== */
Carlos Lopez a09598
Carlos Lopez a09598
using namespace std;
Carlos Lopez a09598
using namespace etl;
Carlos Lopez a09598
using namespace studio;
Carlos Lopez a09598
Carlos Lopez a09598
/* === M A C R O S ========================================================= */
Carlos Lopez a09598
Keyikedalube 09220e
#ifndef PACKAGE_NAME
Keyikedalube 09220e
#define  PACKAGE_NAME "Synfig Studio"
Keyikedalube 09220e
#endif
Keyikedalube 09220e
Carlos Lopez a09598
#ifndef VERSION
Carlos Lopez a09598
#define VERSION	"unknown"
Carlos Lopez a09598
#endif
Carlos Lopez a09598
Carlos Lopez a09598
#ifndef IMAGE_EXT
Carlos Lopez a09598
#	define IMAGE_EXT	"png"
Carlos Lopez a09598
#endif
Carlos Lopez a09598
3f61d4
//#define stringify(x) #x
3f61d4
#define stringify(x) (x)
3f61d4
//#define stringify(x) (std::to_string(x).c_str())
Carlos Lopez a09598
Carlos Lopez a09598
/* === G L O B A L S ======================================================= */
Carlos Lopez a09598
Carlos Lopez a09598
/* === P R O C E D U R E S ================================================= */
Carlos Lopez a09598
Carlos Lopez a09598
/* === M E T H O D S ======================================================= */
Carlos Lopez a09598
Carlos Lopez a09598
About::About()
Carlos Lopez a09598
{
49f8c0
	set_transient_for((Gtk::Window&)(*App::main_window));
Carlos Lopez a09598
	set_program_name(PACKAGE_NAME);
Carlos Lopez a09598
	set_version(VERSION);
Carlos Lopez a09598
	set_comments(_("2D vector animation studio"));
Carlos Lopez a09598
102d29
	set_website("https://synfig.org/");
Carlos Lopez a09598
	set_website_label(_("Visit the Synfig website"));
Carlos Lopez a09598
3b3496
	set_copyright(_("Copyright (c) 2001-2019\nSynfig developers & contributors"));
Carlos Lopez a09598
	Glib::ustring license =
Carlos Lopez a09598
		"This program is free software; you can redistribute it and/or modify "
Carlos Lopez a09598
		"it under the terms of the GNU General Public License as published by "
Carlos Lopez a09598
		"the Free Software Foundation; either version 2 of the License, or "
Carlos Lopez a09598
		"(at your option) any later version.\n\n"
Carlos Lopez a09598
Carlos Lopez a09598
		"This program is distributed in the hope that it will be useful, "
Carlos Lopez a09598
		"but WITHOUT ANY WARRANTY; without even the implied warranty of "
Carlos Lopez a09598
		"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the "
Carlos Lopez a09598
		"GNU General Public License for more details.\n\n"
Carlos Lopez a09598
Carlos Lopez a09598
		"You should have received a copy of the GNU General Public License along "
Carlos Lopez a09598
		"with this program; if not, write to the Free Software Foundation, Inc., "
Carlos Lopez a09598
		"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or visit: http://www.gnu.org/";
Carlos Lopez a09598
	set_license(license);
Carlos Lopez a09598
	set_wrap_license(true);
Carlos Lopez a09598
Carlos Lopez a09598
	std::vector<glib::ustring> authors;</glib::ustring>
Carlos Lopez 837ded
	authors.push_back(_("Original developers:"));
Carlos Lopez a09598
	authors.push_back("");
Carlos Lopez a09598
	authors.push_back("Robert B. Quattlebaum Jr (darco)");
Carlos Lopez a09598
	authors.push_back("Adrian Bentley");
Carlos Lopez a09598
	authors.push_back("");
Carlos Lopez 837ded
	authors.push_back(_("Contributors:"));
Carlos Lopez a09598
	authors.push_back("");
Carlos Lopez a09598
	authors.push_back("Adrian Winchell (SnapSilverlight)");
Carlos Lopez a09598
	authors.push_back("Andreas Jochens");
Carlos Lopez 987829
	authors.push_back("Brendon Higgins");
Carlos Lopez a09598
	authors.push_back("Carlos López González (genete)");
Carlos Lopez 837ded
	authors.push_back("Carlos A. Sosa Navarro");
caryoscelus 04709f
	authors.push_back("caryoscelus");
Carlos Lopez a09598
	authors.push_back("Chris Moore (dooglus)");
Carlos Lopez a09598
	authors.push_back("Chris Norman (pixelgeek)");
Carlos Lopez 837ded
	authors.push_back("Cyril Brulebois (KiBi)");
Carlos Lopez a09598
	authors.push_back("Daniel Fort");
Carlos Lopez a09598
	authors.push_back("Daniel Hornung (rubikcube)");
Carlos Lopez a09598
	authors.push_back("David Roden (Bombe)");
6c6be8
	authors.push_back("Denis Zdorovtsov (trizer)");
Carlos Lopez a09598
	authors.push_back("Dmitriy Pomerantsev (Atrus)");
Carlos Lopez a09598
	authors.push_back("Douglas Lau");
43513c
	authors.push_back("Evgenij Katunov");
Carlos Lopez a09598
	authors.push_back("Gerald Young (Yoyobuae)");
Carlos Lopez a09598
	authors.push_back("Gerco Ballintijn");
Carlos Lopez a09598
	authors.push_back("IL'dar AKHmetgaleev (AkhIL)");
18105c
	authors.push_back("Ivan Mahonin");
Carlos Lopez d850ec
	authors.push_back("Jerome Blanchi (d.j.a.y.)");
Carlos Lopez 837ded
	authors.push_back("Konstantin Dmitriev (zelgadis)");
Carlos Lopez a09598
	authors.push_back("Luka Pravica");
Carlos Lopez 118c92
	authors.push_back("Nikita Kitaev (nikitakit)");
Carlos Lopez a09598
	authors.push_back("Martin Michlmayr (tbm)");
cb4f88
	authors.push_back("Max May (Permutatrix)");
Carlos Lopez a09598
	authors.push_back("Miguel Gea Milvaques (xerakko)");
Carlos Lopez a09598
	authors.push_back("Paul Wise (pabs)");
Carlos Lopez a09598
	authors.push_back("Ralf Corsepius");
26920a
	authors.push_back("Ramon Miranda");
Carlos Lopez aced1e
	authors.push_back("Ray Frederikson");
Carlos Lopez 837ded
	authors.push_back("Timo Paulssen (timonator)");
Yu Chen eefcc1
	authors.push_back("Yu Chen (jcome)");
Carlos Lopez a09598
	authors.push_back("Yue Shi Lai");
Carlos Lopez a09598
	set_authors(authors);
Carlos Lopez a09598
Carlos Lopez a09598
	std::vector<glib::ustring> artists;</glib::ustring>
Carlos Lopez a09598
	artists.push_back("Aurore D (rore)");
Carlos Lopez 118c92
	artists.push_back("Bertrand Grégoire (berteh)");
Carlos Lopez 53f08f
	artists.push_back("Carl-Christian Gehl (Razputin)");
Carlos Lopez a09598
	artists.push_back("Carlos López González (genete)");
Carlos Lopez a09598
	artists.push_back("Chris Norman (pixelgeek)");
Carlos Lopez a09598
	artists.push_back("Daniel Hornung (rubikcube)");
Carlos Lopez 5afd6a
	artists.push_back("David Rylander (rylleman)");
Carlos Lopez a09598
	artists.push_back("Franco Iacomella (Yaco)");
Carlos Lopez 837ded
	artists.push_back("Gerald Young (Yoyobuae)");
Carlos Lopez 837ded
	artists.push_back("Henrique Lopes Barone");
Carlos Lopez 118c92
	artists.push_back("Konstantin Dmitriev (zelgadis)");
Carlos Lopez 118c92
	artists.push_back("Madeleine Crubellier (mad0)");
Carlos Lopez d850ec
	artists.push_back("Nikolai Mamashev (solkap)");
Carlos Lopez 5afd6a
	artists.push_back("Robert B. Quattlebaum Jr. (darco)");
Carlos Lopez 118c92
	artists.push_back("Thimotee Guiet (satrip)");
Carlos Lopez a55f99
	artists.push_back("Yu Chen (jcome)");
Carlos Lopez a09598
	set_artists(artists);
Carlos Lopez a09598
Carlos Lopez a09598
	// TRANSLATORS: change this to your name, separate multiple names with \n
Carlos Lopez a09598
	set_translator_credits(_("translator-credits"));
Carlos Lopez a09598
Rodolfo Ribeiro Gomes 950278
	std::string imagepath = ResourceHelper::get_image_path("synfig_icon." IMAGE_EXT);
Carlos Lopez a09598
Carlos Lopez a09598
	Gtk::Image *Logo = manage(new class Gtk::Image());
Rodolfo Ribeiro Gomes 950278
	
Rodolfo Ribeiro Gomes 950278
	Logo->set(imagepath);
Rodolfo Ribeiro Gomes 16620b
	Logo->set_parent(*this);
Carlos Lopez a09598
	set_logo(Logo->get_pixbuf());
Carlos Lopez a09598
Carlos Lopez a09598
#ifdef SHOW_EXTRA_INFO
Carlos Lopez a09598
Carlos Lopez a09598
	string extra_info = get_comments() + "\n";
Carlos Lopez a09598
Carlos Lopez a09598
	#ifdef DEVEL_VERSION
Carlos Lopez a09598
		extra_info += strprintf(_("\nDevelopment version:\n%s\n"),DEVEL_VERSION);
Carlos Lopez a09598
	#endif
Carlos Lopez a09598
Carlos Lopez a09598
	extra_info += "\n";
Carlos Lopez a09598
Carlos Lopez a09598
	extra_info += strprintf(_("Built on %s" /* at %s */ "\n"), __DATE__ /* , __TIME__ */ );
Carlos Lopez a09598
Carlos Lopez a09598
	extra_info += "\n";
Carlos Lopez a09598
caryoscelus 04709f
	extra_info += strprintf(_("Built with:\n"));
Carlos Lopez a09598
	extra_info += strprintf(_("ETL %s\n"), ETL_VERSION);
Carlos Lopez a09598
	extra_info += strprintf(_("Synfig API %s\n"), stringify(SYNFIG_VERSION));
Carlos Lopez a09598
	extra_info += strprintf(_("Synfig library %d\n"), SYNFIG_LIBRARY_VERSION);
Carlos Lopez a09598
	extra_info += strprintf(_("GTK+ %d.%d.%d\n"), GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
Carlos Lopez a09598
	#ifdef __GNUC__
Carlos Lopez a09598
		extra_info += strprintf(_("GNU G++ %d.%d.%d\n"),__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__);
Carlos Lopez a09598
	#endif
Carlos Lopez a09598
Carlos Lopez a09598
	extra_info += "\n";
Carlos Lopez a09598
Carlos Lopez a09598
	extra_info += strprintf(_("Using:\n"), synfig::get_version());
Carlos Lopez a09598
	extra_info += strprintf(_("Synfig %s\n"), synfig::get_version());
Carlos Lopez a09598
	extra_info += strprintf(_("GTK+ %d.%d.%d"),gtk_major_version,gtk_minor_version,gtk_micro_version);
Carlos Lopez a09598
Carlos Lopez a09598
	#ifdef _DEBUG
Carlos Lopez a09598
		extra_info += "\n\nDEBUG BUILD";
Carlos Lopez a09598
	#endif
Carlos Lopez a09598
Carlos Lopez a09598
	set_comments(extra_info);
Carlos Lopez a09598
Carlos Lopez a09598
#endif
Carlos Lopez a09598
Carlos Lopez a09598
	// Hide the dialog when you click close
Carlos Lopez a09598
	signal_response().connect(sigc::mem_fun(*this, &About::close));
Carlos Lopez a09598
}
Carlos Lopez a09598
Carlos Lopez a09598
void About::close(int){
Carlos Lopez a09598
	hide();
Carlos Lopez a09598
}