Missing patron.
[dcpomatic.git] / src / wx / about_dialog.cc
index d14006ac5196c59a86126c08a74b390688d1807f..18cf2981c9514f216cb30fa92471efce43a32563 100644 (file)
@@ -1,19 +1,20 @@
 /*
-    Copyright (C) 2013-2014 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2013-2019 Carl Hetherington <cth@carlh.net>
 
-    This program is free software; you can redistribute it and/or modify
+    This file is part of DCP-o-matic.
+
+    DCP-o-matic 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 of the License, or
     (at your option) any later version.
 
-    This program is distributed in the hope that it will be useful,
+    DCP-o-matic 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+    along with DCP-o-matic.  If not, see <http://www.gnu.org/licenses/>.
 
 */
 
  *  @brief The "about DCP-o-matic" dialogue box.
  */
 
-#include <wx/notebook.h>
-#include <wx/hyperlink.h>
-#include "lib/version.h"
-#include "lib/compose.hpp"
 #include "about_dialog.h"
 #include "wx_util.h"
+#include "static_text.h"
+#include "lib/version.h"
+#include "lib/compose.hpp"
+#include <wx/notebook.h>
+#include <wx/hyperlink.h>
 
 using std::vector;
 
@@ -35,7 +37,7 @@ AboutDialog::AboutDialog (wxWindow* parent)
 {
        wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL);
        wxBoxSizer* sizer = new wxBoxSizer (wxVERTICAL);
-       
+
        wxFont title_font (*wxNORMAL_FONT);
        title_font.SetPointSize (title_font.GetPointSize() + 12);
        title_font.SetWeight (wxFONTWEIGHT_BOLD);
@@ -45,44 +47,44 @@ AboutDialog::AboutDialog (wxWindow* parent)
 
        wxFont version_font (*wxNORMAL_FONT);
        version_font.SetWeight (wxFONTWEIGHT_BOLD);
-       
-       wxStaticText* t = new wxStaticText (this, wxID_ANY, _("DCP-o-matic"));
+
+       wxStaticText* t = new StaticText (this, _("DCP-o-matic"));
        t->SetFont (title_font);
        sizer->Add (t, wxSizerFlags().Centre().Border(wxALL, 16));
 
        wxString s;
        if (strcmp (dcpomatic_git_commit, "release") == 0) {
-               t = new wxStaticText (this, wxID_ANY, std_to_wx (String::compose ("Version %1", dcpomatic_version)));
+               t = new StaticText (this, std_to_wx(String::compose("Version %1", dcpomatic_version)));
        } else {
-               t = new wxStaticText (this, wxID_ANY, std_to_wx (String::compose ("Version %1 git %2", dcpomatic_version, dcpomatic_git_commit)));
+               t = new StaticText (this, std_to_wx(String::compose("Version %1 git %2", dcpomatic_version, dcpomatic_git_commit)));
        }
        t->SetFont (version_font);
        sizer->Add (t, wxSizerFlags().Centre().Border(wxALL, 2));
        sizer->AddSpacer (12);
 
-       t = new wxStaticText (
-               this, wxID_ANY,
-               _("Free, open-source DCP generation from almost anything."),
+       t = new StaticText (
+               this,
+               _("Free, open-source DCP creation from almost anything."),
                wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER
                );
        t->SetFont (subtitle_font);
-       
+
        sizer->Add (t, wxSizerFlags().Centre().Border(wxALL, 8));
 
        wxHyperlinkCtrl* h = new wxHyperlinkCtrl (
                this, wxID_ANY,
                wxT ("dcpomatic.com"),
-               wxT ("http://dcpomatic.com")
+               wxT ("https://dcpomatic.com")
                );
 
        sizer->Add (h, wxSizerFlags().Centre().Border(wxALL, 8));
 
-       t = new wxStaticText (
-               this, wxID_ANY,
-               _("(C) 2012-2014 Carl Hetherington, Terrence Meiczinger, Paul Davis, Ole Laursen"),
+       t = new StaticText (
+               this,
+               _("(C) 2012-2019 Carl Hetherington, Terrence Meiczinger\n Ole Laursen, Brecht Sanders"),
                wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER
                );
-       
+
        sizer->Add (t, wxSizerFlags().Centre().Border(wxLEFT | wxRIGHT, 16));
 
        _notebook = new wxNotebook (this, wxID_ANY);
@@ -90,83 +92,74 @@ AboutDialog::AboutDialog (wxWindow* parent)
        wxArrayString written_by;
        written_by.Add (wxT ("Carl Hetherington"));
        written_by.Add (wxT ("Terrence Meiczinger"));
-       written_by.Add (wxT ("Paul Davis"));
+       written_by.Add (wxT ("Mart Jansink"));
        written_by.Add (wxT ("Ole Laursen"));
+       written_by.Add (wxT ("Brecht Sanders"));
+       written_by.Add (wxT ("Jianguo Huang"));
        add_section (_("Written by"), written_by);
 
+       wxArrayString with_help_from;
+       with_help_from.Add (wxT ("David Vignoni"));
+       with_help_from.Add (wxT ("Dennis Couzin"));
+       with_help_from.Add (wxT ("Carsten Kurz"));
+       with_help_from.Add (wxT ("Gérald Maruccia"));
+       with_help_from.Add (wxT ("Julian van Mil"));
+       add_section (_("With help from"), with_help_from);
+
        wxArrayString translated_by;
        translated_by.Add (wxT ("Manuel AC"));
+       translated_by.Add (wxT ("Max Aeschlimann"));
+       translated_by.Add (wxT ("Thiago Andre"));
+       translated_by.Add (wxT ("Felice D'Andrea"));
+       translated_by.Add (wxT ("Grégoire Ausina"));
+       translated_by.Add (wxT ("Tomáš Begeni"));
+       translated_by.Add (wxT ("Fabio \"Zak\" Belli"));
+       translated_by.Add (wxT ("Cherif Ben Brahim"));
        translated_by.Add (wxT ("Massimiliano Broggi"));
+       translated_by.Add (wxT ("Dan Cohen"));
+       translated_by.Add (wxT ("Davide Dall'AraCiao"));
        translated_by.Add (wxT ("William Fanelli"));
+       translated_by.Add (wxT ("Max M. Fuhlendorf"));
+       translated_by.Add (wxT ("Tomáš Hlaváč"));
        translated_by.Add (wxT ("Thierry Journet"));
        translated_by.Add (wxT ("Adam Klotblixt"));
+       translated_by.Add (wxT ("Theo Kooijmans"));
+       translated_by.Add (wxT ("Carsten Kurz"));
        translated_by.Add (wxT ("Lilian Lefranc"));
+       translated_by.Add (wxT ("Gérald Maruccia"));
+       translated_by.Add (wxT ("Mike Mazur"));
+       translated_by.Add (wxT ("Rob van Nieuwkerk"));
+       translated_by.Add (wxT ("Anders Uhl Pedersen"));
        translated_by.Add (wxT ("Olivier Perriere"));
        translated_by.Add (wxT ("Markus Raab"));
-       translated_by.Add (wxT ("Theo Kooijmans"));
-       translated_by.Add (wxT ("Max Aeschlimann"));
-       translated_by.Add (wxT ("Carsten Kurz"));
-       translated_by.Add (wxT ("Grégoire Ausina"));
-       translated_by.Add (wxT ("Cherif Ben Brahim"));
-       add_section (_("Translated by"), translated_by);
+       translated_by.Add (wxT ("Tiago Casal Ribeiro"));
+       translated_by.Add (wxT ("Davide Sanvito"));
+       translated_by.Add (wxT ("Marek Skrzelowski"));
+       translated_by.Add (wxT ("Igor Voytovich"));
+       translated_by.Add (wxT ("Rov (若文)"));
+       translated_by.Add (wxT ("刘汉源"));
+       translated_by.Add (wxT ("Gökhan Aksoy"));
+       add_section (_("Translated by"), translated_by);
 
-       wxArrayString artwork_by;
-       artwork_by.Add (wxT ("David Vignoni"));
-       add_section (_("Artwork by"), artwork_by);
+       wxArrayString patrons;
+       patrons.Add ("Luproduction");
+       patrons.Add ("Lightbender Post");
+       patrons.Add ("Drop-out Cinema");
+       patrons.Add ("Pilotkino LLC");
+       add_section (_("Patrons"), patrons);
+
+       wxArrayString subscribers;
+       #include "subscribers.cc"
+       add_section (_("Subscribers"), subscribers);
 
        wxArrayString supported_by;
-       supported_by.Add (wxT ("Manual AC"));
-       supported_by.Add (wxT ("Kambiz Afshar"));
-       supported_by.Add (wxT ("Alex Asp"));
-       supported_by.Add (wxT ("Louis Belloisy"));
-       supported_by.Add (wxT ("Mike Blakesley"));
-       supported_by.Add (wxT ("Jeff Boot"));
-       supported_by.Add (wxT ("Kieran Carroll"));
-       supported_by.Add (wxT ("Frank Cianciolo"));
-       supported_by.Add (wxT ("Cinema Clarici"));
-       supported_by.Add (wxT ("Adam Colt"));
-       supported_by.Add (wxT ("Matthias Damm"));
-       supported_by.Add (wxT ("Alexey Derevyanko"));
-       supported_by.Add (wxT ("Andres Fink"));
-       supported_by.Add (wxT ("Evan Freeze"));
-       supported_by.Add (wxT ("Silvio Giuliano"));
-       supported_by.Add (wxT ("Alan Gouger"));
-       supported_by.Add (wxT ("Flor Guillaume"));
-       supported_by.Add (wxT ("Antonio Ruiz Hernandez"));
-       supported_by.Add (wxT ("Jonathan Jensen"));
-       supported_by.Add (wxT ("Chris Kay"));
-       supported_by.Add (wxT ("Adam Klotblixt"));
-       supported_by.Add (wxT ("Filip Kovcin"));
-       supported_by.Add (wxT ("Cihan Kulaber"));
-       supported_by.Add (wxT ("Carsten Kurz"));
-       supported_by.Add (wxT ("Lilian Lefranc"));
-       supported_by.Add (wxT ("Sean Leigh"));
-       supported_by.Add (wxT ("Olivier Lemaire"));
-       supported_by.Add (wxT ("Gavin Lewarne"));
-       supported_by.Add (wxT ("Theo Lipfert"));
-       supported_by.Add (wxT ("Mattias Mattsson"));
-       supported_by.Add (wxT ("Kjarten Michaelsen"));
-       supported_by.Add (wxT ("Aldo Midali"));
-       supported_by.Add (wxT ("Sylvain Mielle"));
-       supported_by.Add (wxT ("Lindsay Morris"));
-       supported_by.Add (wxT ("Tim O'Brien"));
-       supported_by.Add (wxT ("Ivan Pullman"));
-       supported_by.Add (wxT ("Mark Rolfe"));
-       supported_by.Add (wxT ("David Rozenthal"));
-       supported_by.Add (wxT ("Andrä Steiner"));
-       supported_by.Add (wxT ("Jussi Siponen"));
-       supported_by.Add (wxT ("Lasse Salling"));
-       supported_by.Add (wxT ("Mike Stiebing"));
-       supported_by.Add (wxT ("Randy Stankey"));
-       supported_by.Add (wxT ("Bruce Taylor"));
-       supported_by.Add (wxT ("Wolfgang Woehl"));
-       supported_by.Add (wxT ("Wolfram Weber"));
-       supported_by.Add (wxT ("Frank de Wulf"));
-       supported_by.Add (wxT ("Pavel Zhdanko"));
-       add_section (_("Supported by"), supported_by);
+       #include "supporters.cc"
+       add_section (_("Also supported by"), supported_by);
 
        wxArrayString tested_by;
+       tested_by.Add (wxT ("Manuel AC"));
        tested_by.Add (wxT ("Trever Anderson"));
+       tested_by.Add (wxT ("JP Beauviala"));
        tested_by.Add (wxT ("Mike Blakesley"));
        tested_by.Add (wxT ("David Booty"));
        tested_by.Add (wxT ("Roop Chand"));
@@ -174,6 +167,8 @@ AboutDialog::AboutDialog (wxWindow* parent)
        tested_by.Add (wxT ("Adam Colt"));
        tested_by.Add (wxT ("John Convertino"));
        tested_by.Add (wxT ("Andreas Eli"));
+       tested_by.Add (wxT ("Leo Enticknap"));
+       tested_by.Add (wxT ("Jose Angel Velasco Fernandez"));
        tested_by.Add (wxT ("Maurizio Giampà"));
        tested_by.Add (wxT ("Luke Granger-Brown"));
        tested_by.Add (wxT ("Sumit Guha"));
@@ -182,6 +177,7 @@ AboutDialog::AboutDialog (wxWindow* parent)
        tested_by.Add (wxT ("Bill Hamell"));
        tested_by.Add (wxT ("Jonathan Jensen"));
        tested_by.Add (wxT ("Thierry Journet"));
+       tested_by.Add (wxT ("Markus Kalb"));
        tested_by.Add (wxT ("Ada de Kamper"));
        tested_by.Add (wxT ("Stefan Karner"));
        tested_by.Add (wxT ("Adam Keay"));
@@ -193,23 +189,31 @@ AboutDialog::AboutDialog (wxWindow* parent)
        tested_by.Add (wxT ("Lilian Lefranc"));
        tested_by.Add (wxT ("Olivier Lemaire"));
        tested_by.Add (wxT ("Gavin Lewarne"));
-       tested_by.Add (wxT ("Mattias Mattsson"));
        tested_by.Add (wxT ("Gérald Maruccia"));
+       tested_by.Add (wxT ("George Mazarakis"));
+       tested_by.Add (wxT ("Mattias Mattsson"));
        tested_by.Add (wxT ("Will Meadows"));
        tested_by.Add (wxT ("Brad Miller"));
+       tested_by.Add (wxT ("Ash Mitchell"));
+       tested_by.Add (wxT ("Rob van Nieuwkerk"));
        tested_by.Add (wxT ("Anders Nordentoft-Madsen"));
        tested_by.Add (wxT ("Mauro Ottonello"));
        tested_by.Add (wxT ("Peter Puchner"));
        tested_by.Add (wxT ("Markus Raab"));
+       tested_by.Add (wxT ("Michael Reckert"));
        tested_by.Add (wxT ("Greg Rooke"));
+       tested_by.Add (wxT ("Elad Saad"));
        tested_by.Add (wxT ("Karim Senoucci"));
+       tested_by.Add (wxT ("Hordur Valgardsson"));
+       tested_by.Add (wxT ("Xenophon the Vampire"));
        tested_by.Add (wxT ("Simon Vannarath"));
+       tested_by.Add (wxT ("Igor Voytovich"));
        tested_by.Add (wxT ("Andrew Walls"));
        tested_by.Add (wxT ("Andreas Weiss"));
        tested_by.Add (wxT ("Paul Willmott"));
        tested_by.Add (wxT ("Wolfgang Woehl"));
        add_section (_("Tested by"), tested_by);
-       
+
        sizer->Add (_notebook, wxSizerFlags().Centre().Border(wxALL, 16).Expand());
 
        overall_sizer->Add (sizer);
@@ -218,7 +222,7 @@ AboutDialog::AboutDialog (wxWindow* parent)
        if (buttons) {
                overall_sizer->Add (buttons, 1, wxEXPAND | wxALL, 4);
        }
-       
+
        SetSizerAndFit (overall_sizer);
 }
 
@@ -230,13 +234,16 @@ void
 AboutDialog::add_section (wxString name, wxArrayString credits)
 {
        static bool first = true;
-       int const N = 3;
+       int const N = 4;
 
-       wxPanel* panel = new wxPanel (_notebook, wxID_ANY);
+       wxScrolledWindow* panel = new wxScrolledWindow (_notebook);
+       panel->SetMaxSize (wxSize (-1, 380));
+       panel->EnableScrolling (false, true);
+       panel->SetScrollRate (0, 32);
        wxSizer* overall_sizer = new wxBoxSizer (wxHORIZONTAL);
 
        vector<wxSizer*> sizers;
-       
+
        for (int i = 0; i < N; ++i) {
                sizers.push_back (new wxBoxSizer (wxVERTICAL));
                overall_sizer->Add (sizers.back (), 1, wxEXPAND | wxALL, 6);