From d00aab12b6ace2c3dda3efbc2aaa2646d78a9099 Mon Sep 17 00:00:00 2001 From: Perberos Date: Thu, 1 Dec 2011 22:07:25 -0300 Subject: moving from https://github.com/perberos/mate-desktop-environment --- mate-about/Makefile.am | 24 ++ mate-about/mate-about.c | 275 +++++++++++++++ mate-about/mate-about.desktop.in.in | 15 + mate-about/mate-about.h | 656 ++++++++++++++++++++++++++++++++++++ mate-about/nyan-cat.gif | Bin 0 -> 24975 bytes 5 files changed, 970 insertions(+) create mode 100644 mate-about/Makefile.am create mode 100644 mate-about/mate-about.c create mode 100644 mate-about/mate-about.desktop.in.in create mode 100644 mate-about/mate-about.h create mode 100644 mate-about/nyan-cat.gif (limited to 'mate-about') diff --git a/mate-about/Makefile.am b/mate-about/Makefile.am new file mode 100644 index 0000000..d56ac71 --- /dev/null +++ b/mate-about/Makefile.am @@ -0,0 +1,24 @@ +bin_PROGRAMS = mate-about +mate_about_SOURCES = mate-about.c mate-about.h +mate_about_CFLAGS = $(MATE_ABOUT_CFLAGS) $(UNIQUE_CFLAGS) +mate_about_LDADD = $(MATE_ABOUT_LIBS) $(UNIQUE_LIBS) + +INCLUDES = \ + -I$(top_srcdir) \ + $(MATE_ABOUT_CFLAGS) \ + -DLOCALE_DIR=\"$(datadir)/locale\" \ + -DPIXMAPS_DIR=\"$(datadir)/pixmaps/\" + +@INTLTOOL_DESKTOP_RULE@ + +pixmapdir = $(datadir)/pixmaps +pixmap_DATA = nyan-cat.gif + +desktopdir = $(datadir)/applications +desktop_in_files = mate-about.desktop.in +desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) + +CLEANFILES = mate-about.desktop mate-about + +#-include $(top_srcdir)/git.mk + diff --git a/mate-about/mate-about.c b/mate-about/mate-about.c new file mode 100644 index 0000000..c513248 --- /dev/null +++ b/mate-about/mate-about.c @@ -0,0 +1,275 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2011 Perberos + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + +#ifndef __MATE_ABOUT_C__ +#define __MATE_ABOUT_C__ + +#include "mate-about.h" + +// what a mess! +#ifndef DISABLE_NYANCAT + +// Thanks! http://www.gtkforums.com/viewtopic.php?t=1639 +typedef struct _iter_arg { + GtkWidget* widget; + GdkPixbufAnimation* animation; + GdkPixbufAnimationIter* iter; +} iter_arg_t; + +gboolean on_animation_frame(iter_arg_t* object) +{ + if (object->widget == NULL) + { + return FALSE; + } + + static gint frame = 1; + + if (gdk_pixbuf_animation_iter_advance(object->iter, NULL)) + { + frame++; + + gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(object->widget), gdk_pixbuf_animation_iter_get_pixbuf(object->iter)); + } + + return TRUE; +} + +#endif + +#if GTK_CHECK_VERSION(3, 0, 0) && !defined(UNIQUE) + +static void mate_about_on_activate(GtkApplication* app) +{ + GList* list; + GtkWidget* window; + + list = gtk_application_get_windows(app); + + if (list) + { + gtk_window_present(GTK_WINDOW(list->data)); + } + else + { + mate_about_run(); + } +} + +#elif GLIB_CHECK_VERSION(2, 26, 0) && !defined(UNIQUE) +// es un callback +static void mate_about_on_activate(GApplication* app) +{ + if (!mate_about_dialog) + { + mate_about_run(); + } + else + { + gtk_window_present(GTK_WINDOW(mate_about_dialog)); + } +} + +#endif + +void mate_about_run(void) +{ + /** + * Es importante llamar gtk_init, si no, no se puede iniciar bien el dialogo + */ + mate_about_dialog = gtk_about_dialog_new(); + + gtk_window_set_default_icon_name(icon); + + // logo + #ifndef DISABLE_NYANCAT + iter_arg_t animation_object; + GdkPixbufAnimation* animation; + GdkPixbufAnimationIter *iter; + GtkWidget* image; + + animation = gdk_pixbuf_animation_new_from_file(PIXMAPS_DIR "nyan-cat.gif", NULL); + + if (animation != NULL) + { + iter = gdk_pixbuf_animation_get_iter(animation, NULL); + + animation_object.animation = animation; + animation_object.iter = iter; + animation_object.widget = mate_about_dialog; + + gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(mate_about_dialog), gdk_pixbuf_animation_iter_get_pixbuf(iter)); + + g_timeout_add(gdk_pixbuf_animation_iter_get_delay_time(iter), (GSourceFunc) on_animation_frame, (gpointer) &animation_object); + } + + #elif GTK_CHECK_VERSION(3, 0, 0) || GTK_CHECK_VERSION(2, 6, 0) + + gtk_about_dialog_set_logo_icon_name(GTK_ABOUT_DIALOG(mate_about_dialog), icon); + + #else + + GtkIconTheme* icon_theme = gtk_icon_theme_get_default(); + + if (gtk_icon_theme_has_icon(icon_theme, icon)) + { + GdkPixbuf* pixbuf = gtk_icon_theme_load_icon(icon_theme, icon, 64, 0, NULL); + gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(mate_about_dialog), pixbuf); + g_object_unref(pixbuf); + } + + #endif + + //name + #if GTK_CHECK_VERSION(3, 0, 0) || GTK_CHECK_VERSION(2, 12, 0) + gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(mate_about_dialog), gettext(program_name)); + #else + gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(mate_about_dialog), gettext(program_name)); + #endif + + // version + gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(mate_about_dialog), version); + + // creditos y pagina web + gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(mate_about_dialog), copyright); + gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(mate_about_dialog), website); + + /** + * This generate a random message. + * The comments index must not be more than comments_count - 1 + */ + gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(mate_about_dialog), gettext(comments[g_random_int_range(0, comments_count - 1)])); + + // autores + gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(mate_about_dialog), authors); + // I comment this because the list is empty + //gtk_about_dialog_set_artists(GTK_ABOUT_DIALOG(mate_about_dialog), artists); + //gtk_about_dialog_set_documenters(GTK_ABOUT_DIALOG(mate_about_dialog), documenters); + + #if GTK_CHECK_VERSION(3, 0, 0) + gtk_about_dialog_set_license_type(GTK_ABOUT_DIALOG(mate_about_dialog), GTK_LICENSE_GPL_3_0); + gtk_about_dialog_set_wrap_license(GTK_ABOUT_DIALOG(mate_about_dialog), TRUE); + #endif + + #ifdef USE_UNIQUE + unique_app_watch_window(mate_about_application, GTK_WINDOW(mate_about_dialog)); + #elif GTK_CHECK_VERSION(3, 0, 0) && !defined(UNIQUE) + gtk_window_set_application(GTK_WINDOW(mate_about_dialog), mate_about_application); + #endif + + // start and destroy + gtk_dialog_run(GTK_DIALOG(mate_about_dialog)); + gtk_widget_destroy(mate_about_dialog); +} + +void mate_about_release_version(void) +{ + g_printf("%s %s\n", gettext(program_name), version); +} + +// ... +gint main(gint argc, gchar** argv) +{ + gint status = 0; + /** + * Solo utilizado para option parse + */ + GError* error = NULL; + + /** + * Con esto se inicia gettext + */ + bindtextdomain(gettext_package, locale_dir); + bind_textdomain_codeset(gettext_package, "UTF-8"); + textdomain(gettext_package); + + /** + * http://www.gtk.org/api/2.6/glib/glib-Commandline-option-parser.html + */ + GOptionContext* context = g_option_context_new(NULL); + g_option_context_add_main_entries(context, command_entries, gettext_package); + g_option_context_add_group(context, gtk_get_option_group(TRUE)); + g_option_context_parse(context, &argc, &argv, &error); + + /** + * Not necesary at all, program just run and die. + * But it free a little memory. + */ + g_option_context_free(context); + + gtk_init(&argc, &argv); + + if (mate_about_nogui == TRUE) + { + mate_about_release_version(); + } + else + { + /** + * Ejemplos tomados de: + * http://developer.gnome.org/gtk3/3.0/gtk-migrating-GtkApplication.html + */ + #if defined(UNIQUE) + + mate_about_application = unique_app_new("org.mate.about", NULL); + + if (unique_app_is_running(mate_about_application)) + { + UniqueResponse response = unique_app_send_message(mate_about_application, UNIQUE_ACTIVATE, NULL); + + if (response != UNIQUE_RESPONSE_OK) + { + status = 1; + } + } + else + { + mate_about_run(); + } + + g_object_unref(mate_about_application); + + #elif GTK_CHECK_VERSION(3, 0, 0) + + mate_about_application = gtk_application_new("org.mate.about", 0); + g_signal_connect(mate_about_application, "activate", G_CALLBACK(mate_about_on_activate), NULL); + + status = g_application_run(G_APPLICATION(mate_about_application), argc, argv); + + g_object_unref(mate_about_application); + + #elif GLIB_CHECK_VERSION(2, 26, 0) + + mate_about_application = g_application_new("org.mate.about", G_APPLICATION_FLAGS_NONE); + g_signal_connect(mate_about_application, "activate", G_CALLBACK(mate_about_on_activate), NULL); + + status = g_application_run(G_APPLICATION(mate_about_application), argc, argv); + + g_object_unref(mate_about_application); + + #else + mate_about_run(); + #endif + } + + return status; +} + +#endif diff --git a/mate-about/mate-about.desktop.in.in b/mate-about/mate-about.desktop.in.in new file mode 100644 index 0000000..e4b36e3 --- /dev/null +++ b/mate-about/mate-about.desktop.in.in @@ -0,0 +1,15 @@ +[Desktop Entry] +_Name=About MATE +_Comment=Learn more about MATE +Exec=mate-about +Icon=desktop +Terminal=false +Type=Application +Categories=MATE;GTK;Core;Utility; +OnlyShowIn=MATE; +X-MATE-Bugzilla-Bugzilla=MATE +X-MATE-Bugzilla-Product=mate-desktop +X-MATE-Bugzilla-Component=mate-about +X-MATE-Bugzilla-Version=@VERSION@ +StartupNotify=false +NoDisplay=true diff --git a/mate-about/mate-about.h b/mate-about/mate-about.h new file mode 100644 index 0000000..91cd4c4 --- /dev/null +++ b/mate-about/mate-about.h @@ -0,0 +1,656 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2011 Perberos + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + +#ifndef __MATE_ABOUT_H__ +#define __MATE_ABOUT_H__ + +#include +#include // for gettext + +#include // autogenerated by ./configure + +#ifdef USE_UNIQUE + #include +#endif + +//mate-about +//{ + const gchar* gettext_package = GETTEXT_PACKAGE; // mate-desktop-2.0 + const gchar* locale_dir = LOCALE_DIR; // /usr/local/share/locale + + const gchar* program_name = "MATE Desktop Environment"; // MATE @PACKAGE_NAME@ + const gchar* version = PACKAGE_VERSION; + const gchar* icon = "desktop"; + const gchar* website = "http://www.matsusoft.com.ar/projects/mate/"; + + const gchar* copyright = "" + "Copyright © 1997-2011 GNOME developers\n" + "Copyright © 2011 Perberos"; // egoista! + + /** + * Incrementar el valor de comments_count si se desea agregar nuevos valores + * en comments[]. Porque, este valor es usado en un random para obtener el + * indice de la cadena. + */ + const gint comments_count = 6; + const gchar* comments[] = { + "MATE also includes a complete development platform for applications " + "programmers, allowing the creation of powerful and complex applications.", + + "MATE includes most of what you see on your computer, including the file " + "manager, web browser, menus, and many applications.", + + "MATE is a Free, usable, stable, accessible desktop environment for the Unix-" + "like family of operating systems.", + + "MATE's focus on usability and accessibility, regular release cycle, and " + "strong corporate backing make it unique among Free Software desktops.", + + "MATE's greatest strength is our strong community. Virtually anyone, with or " + "without coding skills, can contribute to making MATE better.", + // Must be GNOME, not MATE! or not...? + "Hundreds of people have contributed code to MATE since it was started in " + "1997; many more have contributed in other important ways, including " + "translations, documentation, and quality assurance.", + }; + + const gchar* authors[] = { + "Jérôme Abela", + "Rob Adams", + "Djihed Afifi", + "Sarfraaz Ahmed", + "Christopher Aillon", + "Lauri Alanko", + "Борислав Александров (Borislav Aleksandrov)", + "Seth Alves", + "Shawn T. Amundson", + "Robert Ancell", + "Erik Andersen", + "Филип Андонов (Filip Andonov)", + "Marius Andreiana", + "Jon Anhold", + "Арангел Ангов (Arangel Angov)", + "Никола Антонов (Nikola Antonov)", + "Sandy Armstrong", + "Frank Arnold", + "Arunprakash", + "Paolo Bacchilega", + "Peter Bach", + "Timur I. Bakeyev", + "Sébastien Bacher", + "Chris Ball", + "Szabolcs 'Shooby' Bán", + "Lasse Bang Mikkelsen", + "Matthew Barnes", + "Seba Barto", + "Emmanuele Bassi", + "Martin Baulig", + "Tom Bech", + "Andreas Beck", + "Carlos Amador Bedolla", + "Martijn van Beers", + "Frank Belew", + "Calum Benson", + "Jacob Berkman", + "Eckehard Berns", + "Žygimantas Beručka", + "Runa Bhattacharjee", + "Robert Bihlmeyer", + "Jonathan Blandford", + "Christopher Blizzard", + "Bruno Boaventura", + "Евгени Боевски (Evgeni Boevski)", + "Jérôme Bolliet", + "Andreas Bolsch", + "Wouter Bolsterlee", + "David Bolter", + "Dave Bordoley", + "Paolo Borelli", + "James Bowes", + "Karsten Bräckelmann", + "Hendrik Brandt", + "Dario Bressanini", + "Emmanuel Briot", + "Stephen Browne", + "Marcus Brubaker", + "Christian Bucher", + "Ronald S. Bultje", + "Rich Burridge", + "Ross Burton", + "Jeff Cai", + "Brian Cameron", + "Dave Camp", + "Didier Carlier", + "Anders Carlsson", + "Luca Cavalli", + "Chema Celorio", + "Youssef Chahibi", + "Gaël Chamoulaud", + "Сава Чанков (Sava Chankov)", + "Damon Chaplin", + "Kevin Charter", + "Erwann Chénedé", + "張 國 冠", + "Павел Чолаков (Pavel Cholakov)", + "Kenneth Rohde Christiansen", + "Bryan Clark", + "Chad Clark", + "Matthias Clasen", + "Andrew Clausen", + "Jason Clinton", + "Jules Colding", + "Jeremy Collins", + "Rusty Conover", + "Pat Costello", + "Phil Cowans", + "Alan Cox", + "Dennis Cranston", + "Mark Crichton", + "Frédéric Crozat", + "Andreas Czechanowski", + "Виктор Дачев (Victor Dachev)", + "Johan Dahlin", + "Nalin Dahyabhai", + "Dan Damian", + "Sayamindu Dasgupta", + "Phil Dawes", + "Fatih Demir", + "Guillaume Desmottes", + "Frédéric Devernay", + "Joanmarie Diggs", + "Feico W. Dillema", + "Филип Димитров (Philip Dimitrov)", + "Carlos Eduardo Rodrigues Diógenes", + "Станимир Джевелеков (Stanimir Djevelekov)", + "Петър Добрев (Peter Dobrev)", + "Явор Доганов (Yavor Doganov)", + "Radek Doulik", + "Sebastian Dröge", + "Máirín Duffy", + "Alex Duggan", + "László Dvornik", + "Tom Dyas", + "Karl Eichwalder", + "John Ellis", + "Diego Escalante Urrelo", + "Behdad Esfahbod", + "Arturo Espinosa", + "Gus Estrella", + "David Etherton", + "Larry Ewing", + "Marc Ewing", + "Gergő Érdi", + "Peter Fales", + "Ahmad Farghal", + "Joaquim Fellmann", + "Christophe Fergeau", + "Jens Finke", + "Mark Finlay", + "Dave Finton", + "Milon Firikis", + "John Fleck", + "Raúl Perusquia Flores", + "Crispin Flowerday", + "Lawrence Foard", + "Leonardo Fontenelle", + "Glynn Foster", + "Ben FrantzDale", + "Jeff Freedman", + "David Abilleira Freijeiro", + "Nat Friedman", + "Jochen Friedrich", + "Adam Fritzler", + "Michael Fulbright", + "Christopher R. Gabriel", + "Mark Galassi", + "Tony Gale", + "Carlos García Campos", + "Matthew Garrett", + "Carlos Garnacho Parro", + "Jeff Garzik", + "Vincent Geddes", + "Владимир Герджиков (Vladimir Gerdjikov)", + "Tim Gerla", + "Björn Giesler", + "Quim Gil", + "Evandro Fernandes Giovanini", + "Владимира Гиргинова (Vladimira Girginova)", + "Dave Glowacki", + "Scott Goehring", + "Jody Goldberg", + "Randy Gordon", + "Ted Gould", + "Jens Granseuer", + "Kenny Graunke", + "Alex Graveley", + "Jamin Philip Gray", + "Dov Grobgeld", + "Bertrand Guiheneuf", + "Alan Aspuru Guzik", + "Telsa Gwynne", + "Fredrik Hallenberg", + "Mikael Hallendal", + "Lars Hamann", + "Bill Haneman", + "Michael Hanni", + "Raja R Harinath", + "Heath Harrelson", + "Peter Harvey", + "Mathias Hasselmann", + "Peter Hawkins", + "Chris Heath", + "Scott Heavner", + "Sebastian Heinlein", + "Jon K Hellan", + "James Henstridge", + "Fernando Herrera", + "Richard Hestilow", + "Raphael Higino", + "Thomas Hinkle", + "Iain Holmes", + "Adam Hooper", + "Alan Horkan", + "Khaled Hosny", + "Ihar Hrachyshka", + "Николай Христов (Nikolay Hristov)", + "Irene Huang", + "Richard Hughes", + "David Huggins-Daines", + "Richard Hult", + "Andreas Hyden", + "Miguel de Icaza", + "Hiroyuki Ikezoe", + "Khandakar Mujahidul Islam", + "Johnny Jacob", + "Mayank Jain", + "Vivek Jain", + "Tim Janik", + "Stefan Jeske", + "王 剑", + "Amed Ç. Jiyan", + "Michael K. Johnson", + "Keld Jørn Simonsen", + "Andy Kahn", + "Mikkel Kamstrup Erlandsen", + "Sami Kananoja", + "Янко Канети (Yanko Kaneti)", + "Ивелина Кърчева (Ivelina Karcheva)", + "Theppitak Karoonboonyanan", + "Matt Keenan", + "Gábor Kelemen", + "Michael Kellen", + "Christian Kellner", + "Stephen Kiernan", + "Spencer Kimball", + "Christian Kintner", + "Christian Kirbach", + "Peter Kirchgessner", + "Alexander Kirillov", + "Димитър Киров (Dimitar Kirov)", + "Andre Klapper", + "Helmut Köberle", + "Alfredo Kojima", + "Атанас Кошаров (Atanas Kosharov)", + "Martin Kretzschmar", + "Harish Krishnaswamy", + "Andrew Kuchling", + "Tomas Kuliavas", + "Stephan Kulow", + "Kaushal Kumar", + "Nirmal Kumar", + "Praveen Kumar", + "Martynas Kunigelis", + "Tuomas Kuosmanen", + "Olof Kylander", + "Mathieu Lacage", + "Francis J. Lacoste", + "Chris Lahey", + "Dom Lachowicz", + "Scott Laird", + "Birger Langkjer", + "Ask Hjorth Larsen", + "Alexander Larsson", + "Guillaume Laurent", + "Ole Laursen", + "Michael Lausch", + "Will LaShell", + "Jens Lautenbacher", + "Evan Lawrence", + "Garrett LeSage", + "Jason Leach", + "George Lebl", + "Gregory Leblanc", + "Elliot Lee", + "Marc Lehmann", + "Noah Levitt", + "Raph Levien", + "廖 昭 雄", + "Tor Lillqvist", + "Matt Loper", + "Nick Lopez", + "Xan Lopez", + "Elixan Loran", + "Ryan Lortie", + "Harry Lu", + "Dirk Lutjens", + "Josh MacDonald", + "Og Maciel", + "David MacKay", + "Davyd Madeley", + "Mohamed Magdy", + "Paolo Maggi", + "Sam Magnuson", + "Ian Main", + "David Malcolm", + "Jordi Mallach", + "Mandrake", + "Daniel Manrique", + "Kjartan Maraas", + "Matthew Marjanovic", + "Heath Martin", + "Oliver Maruhn", + "Fabio Marzocca", + "Dave Mason", + "James Mastros", + "Peter Mattis", + "Gordon Matzigkeit", + "Dietmar Maurer", + "Justin Maurer", + "Shaun McCance", + "William Jon McCann", + "Callum McKenzie", + "Gregory McLean", + "Mark McLoughlin", + "Michael Meeks", + "Federico Mena-Quintero", + "Christophe Merlet", + "Christian Meyer", + "Tim Miao", + "Gintautas Miliauskas", + "Cesar Miquel", + "Julian Missig", + "Eric B. Mitchell", + "Jaka Mocnik", + "Paolo Molaro", + "Lynn Monsanto", + "David Mosberger", + "Rodrigo Moya", + "Dan Mueth", + "Thomas Muldowney", + "Alexandre Muñiz", + "Tim-Philipp Müller", + "Sivaiah Nallagatla", + "남 성 현", + "Deepa Natarajan", + "Ales Navicki", + "Јован Наумовски (Jovan Naumovski)", + "Dave Neary", + "Karl Nelson", + "Elijah Newren", + "Christian Neumair", + "Mike Newman", + "Seth Nickell", + "Asger Alstrup Nielsen", + "Kenneth Nielsen", + "Nate Nielsen", + "Eric Nielson", + "Bastien Nocera", + "Martin Norbäck", + "Joachim Noreiko", + "Alexander Nyakhaychyk", + "Daniel Nylander", + "Padraig O'Briain", + "Eskil Olsen", + "Jimmy Olsen", + "David Orme", + "Karl Anders Oygard", + "Tomas Ögren", + "Keith Packard", + "Jay Painter", + "Chenthill Palanisamy", + "John Palmieri", + "Cameron Parish", + "Conrad Parker", + "Stuart Parmenter", + "Guilherme de S. Pastore", + "Sankarasivasubramaniam Pasupathilingam", + "Данило Шеган", + "Mike Pedersen", + "Nils Pedersen", + "Илия Пенев (Ilia Penev)", + "Havoc Pennington", + "Ettore Perazzoli", + "Carlos Perelló Marín", + "Christian Persch", + "Marco Pesenti Gritti", + "Ian Peters", + "Martin Kasper Petersen", + "Christof Petig", + "Владимир Петков (Vladimir \"Kaladan\" Petkov)", + "Joe Pfeiffer", + "Ben Pierce", + "Chris Pinkham", + "Hasbullah Bin Pit", + "Sebastian Pölsterl", + "Germán Poo-Caamaño", + "Пейо Попов (Peio Popov)", + "Dick Porter", + "Ясен Праматаров (Yasen Pramatarov)", + "Tero Pulkkinen", + "Атанас Пюскюлев (Atanas Pyuskyulev)", + "Sushma Rai", + "Ростислав Райков (Rostislav \"zbrox\" Raikov)", + "Madhan Raj M.", + "Srinivasa Ragavan", + "Rajeev Ramanathan", + "Jean-François Rameau", + "Sriram Ramkrishna", + "The Rasterman", + "Oliver Rauch", + "Lucas Rocha", + "Erdal Ronahi", + "Andreas Røsdal", + "Christian Rose", + "Cody Russell", + "Reklaw", + "Jens Christian Restemeier", + "Patrick Reynolds", + "Robert Richardson", + "Hendrik Richter", + "Kristian Rietveld", + "Sebastian Rittau", + "Alex Roberts", + "Michel Roelofs", + "Ueli Rutishauser", + "Lars Rydlinge", + "Peter Ryland", + "Claudio Saavedra", + "Joseph Sacco", + "Bibek Sahu", + "Arvind Samptur", + "Søren Sandmann", + "Damien Sandras", + "Pablo Saratxaga", + "笹 山 和 宏", + "Carsten Schaar", + "Christian Schaller", + "Wayne Schuller", + "Franck Schneider", + "Ingo Schneider", + "Bernd Schroeder", + "John Schulien", + "Chris Scobell", + "Don Scorgie", + "Jens Seidel", + "Dodji Seketeli", + "Shakti Sen", + "Iñigo Serna", + "Shaleh", + "Devashish Sharma", + "Joe Shaw", + "Александър Шопов (Alexander Shopov)", + "Clytie Siddall", + "Alejandro Aguilar Sierra", + "Miroslav Silovic", + "Manish Singh", + "Timo Sirainen", + "David F. Skoll", + "Jochen Skulj", + "Nuke Skyjumper", + "Петър Славов (Peter \"Peshka\" Slavov)", + "Josh Sled", + "John Slee", + "Raphaël Slinckx", + "Brent Smith", + "Garrett Smith", + "Suzanna Smith", + "Andrew Sobala", + "Shreyas Srinivasan", + "Maciej Stachowiak", + "Stalyn", + "Jeffrey Stedfast", + "Jakub Steiner", + "Ben Stern", + "Micah Stetson", + "Ray Strode", + "Luke Stroven", + "Mariano Suárez-Alvarez", + "Parthasarathi Susarla", + "Nathan Carl Summers", + "Istvan Szekeres", + "Петър Тахчиев (Peter Tahchiev)", + "HideToshi Tajima", + "Nigel Tao", + "Tristan Tarrant", + "Anthony Taylor", + "Owen Taylor", + "Peter Teichman", + "Arturo Tena", + "Thomas Thurman", + "Kimball Thurston", + "András Tímár", + "Boyd Timothy", + "Rêzan Tovjîn", + "Alp Toker", + "Chris Toshok", + "Christoph Toshok", + "Malcolm Tredinnick", + "Tom Tromey", + "David Trowbridge", + "Jon Trowbridge", + "段 活 文", + "Сергей В. Удальцов", + "Juan Pablo Ugarte", + "Vincent Untz", + "Manish Vachharajani", + "Neil Vachharajani", + "Tristan Van Berkom", + "Philip Van Hoof", + "Thomas Vander Stichele", + "Veerapuram Varadhan", + "Васил Василев (Vasil Vasilev)", + "Daniel Veillard", + "Vendu", + "Andrew Veliath", + "Юлия Велкова (Julia Velkova)", + "Luis Villa", + "Olav Vitters", + "Marius Vollmer", + "Patrick Wade", + "Shawn Wagner", + "Will Walker", + "Hanna Wallach", + "Colin Walters", + "Matthias Warkus", + "Jeff Waugh", + "Morten Welinder", + "Jonh Wendell", + "Bruno Widmann", + "Robert Wilhelm", + "Sebastian Wilhelmi", + "Dan Williams", + "James Willcox", + "David Winkler", + "Dan Winship", + "Jeremy Wise", + "Roger Wolff", + "Ivan Wong", + "Frank Worsley", + "Rizoyê Xerzî", + "Wang Xin", + "James Youngman", + "Mengjie Yu", + "Li Yuan", + "Orest Zborowski", + "Simon Zheng", + "Sascha Ziemann", + "Michael Zucchi", + "Jason van Zyl", + // MATE start here + "Perberos ", + NULL + }; + + // documentacion + /*const gchar* documenters[] = { + "TODO", // TODO: fillme + NULL + };*/ + // artistas + /*const gchar* artists[] = { + "TODO", // TODO: fillme + NULL + };*/ + + // widget de la unica ventana + GtkWidget* mate_about_dialog = FALSE; + + // libunique thing + #ifdef USE_UNIQUE + UniqueApp* mate_about_application; + #elif GTK_CHECK_VERSION(3, 0, 0) + GtkApplication* mate_about_application; + #elif GLIB_CHECK_VERSION(2, 26, 0) + GApplication* mate_about_application; + #endif + + /** + * If this value is set to TRUE, then mate_about_dialog will not be called + * on the main function. + */ + gboolean mate_about_nogui = FALSE; + // functions + void mate_about_run(void); + void mate_about_release_version(void); + + #if GTK_CHECK_VERSION(3, 0, 0) && !defined(USE_UNIQUE) + static void mate_about_on_activate(GtkApplication* app); + #elif GLIB_CHECK_VERSION(2, 26, 0) && !defined(USE_UNIQUE) + static void mate_about_on_activate(GApplication* app); + #endif + + // for command line + static GOptionEntry command_entries[] = { + {"version", 'v', 0, G_OPTION_ARG_NONE, &mate_about_nogui, "Show release version", NULL}, + {NULL} + }; +//} + +#endif /* __MATE_ABOUT_H__ */ diff --git a/mate-about/nyan-cat.gif b/mate-about/nyan-cat.gif new file mode 100644 index 0000000..e224e04 Binary files /dev/null and b/mate-about/nyan-cat.gif differ -- cgit v1.2.1