2013-04-17 21:43:35 -06:00
// Copyright 2013 Dolphin Emulator Project
// Licensed under GPLv2
// Refer to the license.txt file included.
2009-02-06 11:04:24 -07:00
2014-02-22 15:36:30 -07:00
# include <wx/bitmap.h>
# include <wx/defs.h>
# include <wx/dialog.h>
# include <wx/gdicmn.h>
2015-02-04 19:12:18 -07:00
# include <wx/hyperlink.h>
2014-02-22 15:36:30 -07:00
# include <wx/image.h>
# include <wx/mstream.h>
# include <wx/sizer.h>
# include <wx/stattext.h>
# include <wx/string.h>
2015-02-04 19:12:18 -07:00
# include <wx/textctrl.h>
2014-02-22 15:36:30 -07:00
# include <wx/translation.h>
# include <wx/windowid.h>
2015-02-04 19:12:18 -07:00
# include <wx/generic/statbmpg.h>
2014-02-22 15:36:30 -07:00
2015-04-25 15:52:53 -06:00
# ifdef __APPLE__
# import <AppKit / AppKit.h>
# endif
2014-02-17 03:18:15 -07:00
# include "Common/Common.h"
# include "DolphinWX/AboutDolphin.h"
# include "DolphinWX/resources/dolphin_logo.cpp"
2008-12-07 22:30:24 -07:00
2015-04-25 15:52:53 -06:00
static void BanishBackground ( wxTextCtrl * ctrl )
{
# ifdef __APPLE__
NSTextField * tf = ( NSTextField * ) ctrl - > GetHandle ( ) ;
tf . drawsBackground = NO ;
# endif
}
2010-06-10 08:39:08 -06:00
AboutDolphin : : AboutDolphin ( wxWindow * parent , wxWindowID id ,
2011-03-15 15:57:00 -06:00
const wxString & title , const wxPoint & position ,
const wxSize & size , long style )
2010-06-10 08:39:08 -06:00
: wxDialog ( parent , id , title , position , size , style )
2008-12-07 22:30:24 -07:00
{
2015-04-25 15:53:37 -06:00
const unsigned char * dolphin_logo_bin = dolphin_logo_png ;
size_t dolphin_logo_size = sizeof dolphin_logo_png ;
# ifdef __APPLE__
2015-04-25 05:22:32 -06:00
double scaleFactor = 1.0 ;
if ( GetContentScaleFactor ( ) > = 2 )
{
dolphin_logo_bin = dolphin_logo_2x_png ;
dolphin_logo_size = sizeof dolphin_logo_2x_png ;
scaleFactor = 2.0 ;
}
2015-04-25 15:53:37 -06:00
# endif
2015-04-25 05:22:32 -06:00
wxMemoryInputStream istream ( dolphin_logo_bin , dolphin_logo_size ) ;
2008-12-07 22:30:24 -07:00
wxImage iDolphinLogo ( istream , wxBITMAP_TYPE_PNG ) ;
2015-04-25 15:53:37 -06:00
# ifdef __APPLE__
2015-02-04 19:12:18 -07:00
wxGenericStaticBitmap * const sbDolphinLogo = new wxGenericStaticBitmap ( this , wxID_ANY ,
2015-04-25 05:22:32 -06:00
wxBitmap ( iDolphinLogo , - 1 , scaleFactor ) ) ;
2015-04-25 15:53:37 -06:00
# else
wxGenericStaticBitmap * const sbDolphinLogo = new wxGenericStaticBitmap ( this , wxID_ANY ,
wxBitmap ( iDolphinLogo ) ) ;
# endif
2010-06-10 08:39:08 -06:00
2015-02-04 19:12:18 -07:00
const wxString DolphinText = _ ( " Dolphin " ) ;
const wxString RevisionText = scm_desc_str ;
const wxString CopyrightText = _ ( " (c) 2003-2015+ Dolphin Team. \" GameCube \" and \" Wii \" are trademarks of Nintendo. Dolphin is not affiliated with Nintendo in any way. " ) ;
const wxString BranchText = wxString : : Format ( _ ( " Branch: %s " ) , scm_branch_str ) ;
const wxString BranchRevText = wxString : : Format ( _ ( " Revision: %s " ) , scm_rev_git_str ) ;
const wxString CompiledText = wxString : : Format ( _ ( " Compiled: %s @ %s " ) , __DATE__ , __TIME__ ) ;
const wxString CheckUpdateText = _ ( " Check for updates: " ) ;
const wxString Text = _ ( " \n "
" Dolphin is a free and open-source GameCube and Wii emulator. \n "
" \n "
" This software should not be used to play games you do not legally own. \n " ) ;
const wxString LicenseText = _ ( " License " ) ;
const wxString AuthorsText = _ ( " Authors " ) ;
const wxString SupportText = _ ( " Support " ) ;
2013-09-06 20:02:11 -06:00
2015-02-04 19:12:18 -07:00
wxStaticText * const Dolphin = new wxStaticText ( this , wxID_ANY , DolphinText ) ;
2015-04-30 16:04:49 -06:00
wxTextCtrl * const Revision = new wxTextCtrl ( this , wxID_ANY , RevisionText , wxDefaultPosition , wxDefaultSize , wxNO_BORDER | wxTE_READONLY | wxTE_NO_VSCROLL ) ;
2015-04-25 15:52:53 -06:00
BanishBackground ( Revision ) ;
2015-02-04 19:12:18 -07:00
wxStaticText * const Copyright = new wxStaticText ( this , wxID_ANY , CopyrightText ) ;
2015-04-30 16:07:55 -06:00
wxTextCtrl * const Branch = new wxTextCtrl ( this , wxID_ANY , " " , wxDefaultPosition , wxSize ( 300 , 50 ) , wxNO_BORDER | wxTE_READONLY | wxTE_MULTILINE | wxTE_NO_VSCROLL ) ;
2015-04-25 15:52:53 -06:00
BanishBackground ( Branch ) ;
2013-09-06 20:02:11 -06:00
wxStaticText * const Message = new wxStaticText ( this , wxID_ANY , Text ) ;
2015-04-29 18:59:34 -06:00
wxStaticText * const UpdateText = new wxStaticText ( this , wxID_ANY , CheckUpdateText ) ;
2015-04-30 16:04:49 -06:00
wxStaticText * const FirstSpacer = new wxStaticText ( this , wxID_ANY , " | " ) ;
wxStaticText * const SecondSpacer = new wxStaticText ( this , wxID_ANY , " | " ) ;
2015-02-04 19:12:18 -07:00
wxHyperlinkCtrl * const Download = new wxHyperlinkCtrl ( this , wxID_ANY , " dolphin-emu.org/download " , " https://dolphin-emu.org/download/ " ) ;
wxHyperlinkCtrl * const License = new wxHyperlinkCtrl ( this , wxID_ANY , LicenseText , " https://github.com/dolphin-emu/dolphin/blob/master/license.txt " ) ;
wxHyperlinkCtrl * const Authors = new wxHyperlinkCtrl ( this , wxID_ANY , AuthorsText , " https://github.com/dolphin-emu/dolphin/graphs/contributors " ) ;
wxHyperlinkCtrl * const Support = new wxHyperlinkCtrl ( this , wxID_ANY , SupportText , " https://forums.dolphin-emu.org/ " ) ;
wxFont DolphinFont = Dolphin - > GetFont ( ) ;
wxFont RevisionFont = Revision - > GetFont ( ) ;
wxFont CopyrightFont = Copyright - > GetFont ( ) ;
wxFont BranchFont = Branch - > GetFont ( ) ;
DolphinFont . SetPointSize ( 36 ) ;
Dolphin - > SetFont ( DolphinFont ) ;
RevisionFont . SetWeight ( wxFONTWEIGHT_BOLD ) ;
Revision - > SetFont ( RevisionFont ) ;
BranchFont . SetPointSize ( 7 ) ;
Branch - > SetFont ( BranchFont ) ;
Branch - > AppendText ( BranchText + " \n " ) ;
Branch - > AppendText ( BranchRevText + " \n " ) ;
Branch - > AppendText ( CompiledText ) ;
CopyrightFont . SetPointSize ( 7 ) ;
Copyright - > SetFont ( CopyrightFont ) ;
Copyright - > SetFocus ( ) ;
wxBoxSizer * const sCheckUpdates = new wxBoxSizer ( wxHORIZONTAL ) ;
2015-04-29 18:59:34 -06:00
sCheckUpdates - > Add ( UpdateText ) ;
2015-02-04 19:12:18 -07:00
sCheckUpdates - > Add ( Download ) ;
wxBoxSizer * const sLinks = new wxBoxSizer ( wxHORIZONTAL ) ;
sLinks - > Add ( License ) ;
sLinks - > Add ( FirstSpacer ) ;
sLinks - > Add ( Authors ) ;
sLinks - > Add ( SecondSpacer ) ;
sLinks - > Add ( Support ) ;
2008-12-07 22:30:24 -07:00
2011-03-15 15:57:00 -06:00
wxBoxSizer * const sInfo = new wxBoxSizer ( wxVERTICAL ) ;
2015-02-04 19:12:18 -07:00
sInfo - > Add ( Dolphin ) ;
sInfo - > AddSpacer ( 5 ) ;
sInfo - > Add ( Revision ) ;
sInfo - > AddSpacer ( 10 ) ;
sInfo - > Add ( Branch ) ;
sInfo - > Add ( sCheckUpdates ) ;
sInfo - > Add ( Message ) ;
sInfo - > Add ( sLinks ) ;
2011-03-15 15:57:00 -06:00
2015-04-25 05:22:32 -06:00
wxBoxSizer * const sLogo = new wxBoxSizer ( wxVERTICAL ) ;
sLogo - > AddSpacer ( 75 ) ;
sLogo - > Add ( sbDolphinLogo ) ;
sLogo - > AddSpacer ( 40 ) ;
2011-03-15 15:57:00 -06:00
wxBoxSizer * const sMainHor = new wxBoxSizer ( wxHORIZONTAL ) ;
2015-04-25 05:22:32 -06:00
sMainHor - > AddSpacer ( 30 ) ;
sMainHor - > Add ( sLogo ) ;
sMainHor - > AddSpacer ( 30 ) ;
2008-12-07 22:30:24 -07:00
sMainHor - > Add ( sInfo ) ;
2015-02-04 19:12:18 -07:00
sMainHor - > AddSpacer ( 30 ) ;
wxBoxSizer * const sFooter = new wxBoxSizer ( wxVERTICAL ) ;
sFooter - > AddSpacer ( 15 ) ;
sFooter - > Add ( Copyright , 0 , wxALIGN_BOTTOM | wxALIGN_CENTER ) ;
sFooter - > AddSpacer ( 5 ) ;
2008-12-07 22:30:24 -07:00
2011-03-15 15:57:00 -06:00
wxBoxSizer * const sMain = new wxBoxSizer ( wxVERTICAL ) ;
sMain - > Add ( sMainHor , 1 , wxEXPAND ) ;
2015-02-04 19:12:18 -07:00
sMain - > Add ( sFooter , 0 , wxEXPAND ) ;
2008-12-07 22:30:24 -07:00
2011-03-16 16:22:21 -06:00
SetSizerAndFit ( sMain ) ;
2011-03-15 15:57:00 -06:00
Center ( ) ;
SetFocus ( ) ;
2008-12-07 22:30:24 -07:00
}