wxGui branch: Finished the About Box!

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@894 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2009-04-03 17:25:57 +00:00
parent f0a97d3633
commit 6562396612
15 changed files with 192 additions and 77 deletions

BIN
bin/ps2_silver.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -56,34 +56,6 @@ int StatesC = 0;
extern wxString strgametitle;
const char *LabelAuthors = {
"PCSX2, a PS2 emulator\n\n"
"Active Devs: Arcum42, Refraction,\n"
"drk||raziel, cottonvibes, gigaherz,\n"
"rama, Jake.Stine, saqib, Tmkk\n"
"\n"
"Inactive devs: Alexey silinov, Aumatt,\n"
"Florin, goldfinger, Linuzappz, loser,\n"
"Nachbrenner, shadow, Zerofrog\n"
"\n"
"Betatesting: Bositman, ChaosCode,\n"
"CKemu, crushtest, GeneralPlot,\n"
"Krakatos, Parotaku, Rudy_X\n"
"\n"
"Webmasters: CKemu, Falcon4ever"
};
const char *LabelGreets = {
"Contributors: Hiryu and Sjeep for libcvd (the iso parsing and\n"
"filesystem driver code), nneeve, pseudonym\n"
"\n"
"Plugin Specialists: ChickenLiver (Lilypad), Efp (efp),\n"
"Gabest (Gsdx, Cdvdolio, Xpad)\n"
"\n"
"Special thanks to: black_wd, Belmont, BGome, _Demo_, Dreamtime,\n"
"F|RES, MrBrown, razorblade, Seta-san, Skarmeth"
};
#define DIRENTRY_SIZE 16
#if defined(_MSC_VER)

View File

@ -61,8 +61,8 @@ extern u64 GetTickFrequency();
extern void ProcessFKeys(int fkey, int shift); // processes fkey related commands value 1-12
extern int IsBIOS(const char *filename, char *description);
extern const char *LabelAuthors;
extern const char *LabelGreets;
//extern const char *LabelAuthors;
//extern const char *LabelGreets;
void CycleFrameLimit(int dir);
void SaveGSState(const wxString& file);

View File

@ -1,10 +1,30 @@
/* Pcsx2 - Pc Ps2 Emulator
* Copyright (C) 2002-2009 Pcsx2 Team
*
* 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 of the License, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#pragma once
#include <wx/wx.h>
#include <wx/fileconf.h>
#include "System.h"
class MainEmuFrame;
struct ConsoleLogOptions
{
bool Show;
@ -38,7 +58,7 @@ protected:
public:
// ctor & dtor
ConsoleLogFrame(wxWindow *pParent, const wxString& szTitle);
ConsoleLogFrame(MainEmuFrame *pParent, const wxString& szTitle);
virtual ~ConsoleLogFrame();
// menu callbacks
@ -76,8 +96,10 @@ protected:
class Pcsx2App : public wxApp
{
protected:
MainEmuFrame* m_MainFrame;
ConsoleLogFrame* m_ConsoleFrame;
AppConfig* m_GlobalConfig;
wxBitmap* m_Bitmap_Logo;
public:
Pcsx2App();
@ -85,6 +107,13 @@ public:
bool OnInit();
int OnExit();
const wxBitmap& GetLogoBitmap() const;
MainEmuFrame& GetMainFrame() const
{
wxASSERT( m_MainFrame != NULL );
return *m_MainFrame;
}
ConsoleLogFrame* GetConsoleFrame() const { return m_ConsoleFrame; }
void SetConsoleFrame( ConsoleLogFrame& frame ) { m_ConsoleFrame = &frame; }

View File

@ -25,6 +25,8 @@ AppConfig::AppConfig( const wxString& filename ) :
wxFileConfig( wxEmptyString, wxEmptyString, filename, wxEmptyString, wxCONFIG_USE_RELATIVE_PATH )
{
SetRecordDefaults();
// Allow wx to use our config, and enforces auto-cleanup as well
wxConfigBase::Set( this );
}

View File

@ -18,6 +18,7 @@
#include "PrecompiledHeader.h"
#include "App.h"
#include "MainFrame.h"
#include <wx/file.h>
#include <wx/textfile.h>
@ -80,7 +81,7 @@ BEGIN_EVENT_TABLE(ConsoleLogFrame, wxFrame)
EVT_CLOSE(ConsoleLogFrame::OnCloseWindow)
END_EVENT_TABLE()
ConsoleLogFrame::ConsoleLogFrame(wxWindow *parent, const wxString& title) :
ConsoleLogFrame::ConsoleLogFrame(MainEmuFrame *parent, const wxString& title) :
wxFrame(parent, wxID_ANY, title),
m_TextCtrl( *new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize,
wxTE_MULTILINE | wxHSCROLL | wxTE_READONLY | wxTE_RICH2 ) )
@ -123,6 +124,8 @@ void ConsoleLogFrame::DoClose()
{
// instead of closing just hide the window to be able to Show() it later
Show(false);
if( GetParent() != NULL )
wxStaticCast( GetParent(), MainEmuFrame )->OnLogBoxHidden();
}
void ConsoleLogFrame::OnClose(wxCommandEvent& WXUNUSED(event)) { DoClose(); }

View File

@ -18,13 +18,108 @@
#include "PrecompiledHeader.h"
#include "Misc.h"
#include "App.h"
#include "AboutBoxDialog.h"
#include "wxHelpers.h"
#include "ps2_silver.h"
#include <wx/mstream.h>
#include <wx/hyperlink.h>
using namespace wxHelpers;
namespace Dialogs {
AboutBoxDialog::AboutBoxDialog( wxWindow* parent, int id ):
wxDialog( parent, id, _T("Game Special Fixes") )
//////////////////////////////////////////////////////////////////////////////////////////
// Helper class for creating wxStaticText labels which are aligned to center.
// (automates the passing of wxDefaultSize and wxDefaultPosition)
//
class StaticTextCentered : public wxStaticText
{
public:
StaticTextCentered( wxWindow* parent, const wxString& text, int id=wxID_ANY ) :
wxStaticText( parent, id, text, wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER )
{
}
};
AboutBoxDialog::AboutBoxDialog( wxWindow* parent, int id ):
wxDialog( parent, id, _("About Pcsx2") ),
m_bitmap_logo( this, wxID_ANY, wxGetApp().GetLogoBitmap(), wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN ),
m_bitmap_ps2system( this, wxID_ANY, wxBitmap( wxImage( wxMemoryInputStream( png_ps2_silver, PNG_PS2_SILVER_LEN ), wxBITMAP_TYPE_PNG ) ),
wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN )
{
static const wxString LabelAuthors = _(
"PCSX2, a PS2 emulator\n\n"
"Active Devs: Arcum42, Refraction,"
"drk||raziel, cottonvibes, gigaherz,"
"rama, Jake.Stine, saqib, Tmkk"
"\n\n"
"Inactive devs: Alexey silinov, Aumatt,"
"Florin, goldfinger, Linuzappz, loser,"
"Nachbrenner, shadow, Zerofrog"
"\n\n"
"Betatesting: Bositman, ChaosCode,"
"CKemu, crushtest, GeneralPlot,"
"Krakatos, Parotaku, Rudy_X"
"\n\n"
"Webmasters: CKemu, Falcon4ever"
);
static const wxString LabelGreets = _(
"Contributors: Hiryu and Sjeep for libcvd (the iso parsing and\n"
"filesystem driver code), nneeve, pseudonym\n"
"\n"
"Plugin Specialists: ChickenLiver (Lilypad), Efp (efp),\n"
"Gabest (Gsdx, Cdvdolio, Xpad)\n"
"\n"
"Special thanks to: black_wd, Belmont, BGome, _Demo_, Dreamtime,\n"
"F|RES, MrBrown, razorblade, Seta-san, Skarmeth"
);
wxBoxSizer& mainSizer = *new wxBoxSizer( wxVERTICAL );
// This sizer holds text of the authors and a logo!
wxBoxSizer& AuthLogoSizer = *new wxBoxSizer( wxHORIZONTAL );
// this sizer holds text of the contributors/testers, and a ps2 image!
wxBoxSizer& ContribSizer = *new wxBoxSizer( wxHORIZONTAL );
wxStaticBoxSizer& aboutUs = *new wxStaticBoxSizer( wxVERTICAL, this );
wxStaticBoxSizer& contribs = *new wxStaticBoxSizer( wxVERTICAL, this );
StaticTextCentered* label_auth = new StaticTextCentered( this, LabelAuthors );
StaticTextCentered* label_greets = new StaticTextCentered( this, LabelGreets );
label_auth->Wrap( m_bitmap_logo.GetSize().GetWidth() / 2 );
label_greets->Wrap( (m_bitmap_logo.GetSize().GetWidth() * 4) / 3 );
aboutUs.Add( label_auth, stdSpacingFlags );
contribs.Add( label_greets, stdSpacingFlags.Expand() );
AuthLogoSizer.Add( &aboutUs );
AuthLogoSizer.AddSpacer( 7 );
AuthLogoSizer.Add( &m_bitmap_logo, wxSizerFlags().Border( wxALL, 4 ) );
ContribSizer.AddStretchSpacer( 1 );
ContribSizer.Add( &m_bitmap_ps2system, stdSpacingFlags );
ContribSizer.AddStretchSpacer( 1 );
ContribSizer.Add( &contribs, wxSizerFlags(7).HorzBorder().Expand() );
mainSizer.Add( &AuthLogoSizer, stdSpacingFlags );
mainSizer.Add( new wxHyperlinkCtrl(
this, wxID_ANY, _( "Pcsx2 Official Website and Forums" ), wxT("http://www.pcsx2.net") ),
wxSizerFlags(1).Center().Border( wxALL, 3 ) );
mainSizer.Add( new wxHyperlinkCtrl(
this, wxID_ANY, _( "Pcsx2 Official Svn Repository at Googlecode" ), wxT("http://code.google.com/p/pcsx2") ),
wxSizerFlags(1).Center().Border( wxALL, 3 ) );
mainSizer.Add( &ContribSizer, stdSpacingFlags.Expand() );
mainSizer.Add( new wxButton( this, wxID_OK, _("I've seen enough") ), stdCenteredFlags );
SetSizerAndFit( &mainSizer );
}
} // end namespace Dialogs

View File

@ -29,5 +29,9 @@ namespace Dialogs
public:
AboutBoxDialog( wxWindow* parent, int id );
protected:
wxStaticBitmap m_bitmap_logo;
wxStaticBitmap m_bitmap_ps2system;
};
}

View File

@ -19,39 +19,28 @@
#include "PrecompiledHeader.h"
#include "Misc.h"
#include "GameFixesDialog.h"
#include "wxHelpers.h"
using namespace wxHelpers;
namespace Dialogs {
GameFixesDialog::GameFixesDialog(wxWindow* parent, int id, const wxPoint& pos, const wxSize& size, long style):
wxDialog( parent, id, _T("Game Special Fixes"), pos, size )
GameFixesDialog::GameFixesDialog( wxWindow* parent, int id ):
wxDialogWithHelpers( parent, id, _T("Game Special Fixes"), true )
{
wxStaticBox* groupbox = new wxStaticBox( this, -1, _T("PCSX2 Gamefixes"));
wxStaticText* label_Title = new wxStaticText(
this, wxID_ANY, _T("Some games need special settings.\nConfigure them here."), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE
);
wxCheckBox* chk_FPUCompareHack = new wxCheckBox(
this, wxID_ANY, _T("FPU Compare Hack - Special fix for Digimon Rumble Arena 2.")
);
wxCheckBox* chk_TriAce = new wxCheckBox(
this, wxID_ANY, _T("VU Add / Sub Hack - Special fix for Tri-Ace games!")
);
wxCheckBox* chk_GodWar = new wxCheckBox(
this, wxID_ANY, _T("VU Clip Hack - Special fix for God of War")
);
wxBoxSizer& mainSizer = *new wxBoxSizer( wxVERTICAL );
wxStaticBoxSizer& groupSizer = *new wxStaticBoxSizer( groupbox, wxVERTICAL );
wxStaticBoxSizer& groupSizer = *new wxStaticBoxSizer( wxVERTICAL, this, _("PCSX2 Gamefixes") );
groupSizer.Add( chk_FPUCompareHack, CheckboxFlags );
groupSizer.Add( chk_TriAce, CheckboxFlags );
groupSizer.Add( chk_GodWar, CheckboxFlags );
AddCheckBox( groupSizer, _T("FPU Compare Hack - Special fix for Digimon Rumble Arena 2.") );
AddCheckBox( groupSizer, _T("VU Add / Sub Hack - Special fix for Tri-Ace games!") );
AddCheckBox( groupSizer, _T("VU Clip Hack - Special fix for God of War") );
mainSizer.Add( label_Title, stdCenteredFlags );
mainSizer.Add( &groupSizer, stdSpacingFlags );
mainSizer.Add( CreateStdDialogButtonSizer( wxOK | wxCANCEL ), stdButtonSizerFlags );
AddOkCancel( mainSizer );
SetSizerAndFit( &mainSizer );
}

View File

@ -21,13 +21,15 @@
#include <wx/wx.h>
#include <wx/image.h>
#include "wxHelpers.h"
namespace Dialogs
{
class GameFixesDialog: public wxDialog
class GameFixesDialog: public wxDialogWithHelpers
{
public:
GameFixesDialog(wxWindow* parent, int id, const wxPoint& pos=wxDefaultPosition, const wxSize& size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE);
GameFixesDialog(wxWindow* parent, int id);
protected:

View File

@ -20,6 +20,7 @@
#include "MainFrame.h"
#include "Dialogs/GameFixesDialog.h"
#include "Dialogs/LogOptionsDialog.h"
#include "Dialogs/AboutBoxDialog.h"
using namespace Dialogs;
@ -123,12 +124,8 @@ void MainEmuFrame::ConnectMenus()
ConnectMenu( Menu_Debug_Logging, Menu_Debug_Logging_Click );
ConnectMenu( Menu_Console, Menu_ShowConsole );
}
void MainEmuFrame::OnLogBoxShown()
{
Conf().ConLogBox.Show = true;
m_MenuItem_Console.Check( true );
ConnectMenu( Menu_About, Menu_ShowAboutBox );
}
void MainEmuFrame::OnLogBoxHidden()
@ -140,11 +137,14 @@ void MainEmuFrame::OnLogBoxHidden()
MainEmuFrame::MainEmuFrame(wxWindow* parent, int id, const wxString& title, const wxPoint& pos, const wxSize& size, long style):
wxFrame(parent, id, title, pos, size, wxCAPTION|wxCLOSE_BOX|wxSYSTEM_MENU|wxBORDER_THEME),
m_logbox( *new ConsoleLogFrame( this, "Pcsx2 Log" ) ),
m_logbox( this, "Pcsx2 Log" ),
m_statusbar( *CreateStatusBar(2, 0) ),
m_background( this, wxID_ANY, wxGetApp().GetLogoBitmap() ),
// All menu components must be created on the heap!
m_menubar( *new wxMenuBar() ),
m_statusbar( *CreateStatusBar(2, 0) ),
m_background( *new wxStaticBitmap(this, wxID_ANY, wxBitmap(_T("./pcsxAbout.png"), wxBITMAP_TYPE_PNG) ) ),
m_menuRun( *new wxMenu() ),
m_menuConfig( *new wxMenu() ),
@ -336,8 +336,7 @@ void MainEmuFrame::Menu_Reset_Click(wxCommandEvent &event)
void MainEmuFrame::Menu_Gamefixes_Click( wxCommandEvent& event )
{
GameFixesDialog joe( NULL, wxID_ANY );
joe.ShowModal();
GameFixesDialog( this, wxID_ANY ).ShowModal();
}
void MainEmuFrame::Menu_Debug_Open_Click(wxCommandEvent &event)
@ -350,11 +349,15 @@ void MainEmuFrame::Menu_Debug_MemoryDump_Click(wxCommandEvent &event)
void MainEmuFrame::Menu_Debug_Logging_Click(wxCommandEvent &event)
{
LogOptionsDialog joe( NULL, wxID_ANY );
joe.ShowModal();
LogOptionsDialog( this, wxID_ANY ).ShowModal();
}
void MainEmuFrame::Menu_ShowConsole(wxCommandEvent &event)
{
m_logbox.Show( event.IsChecked() );
}
void MainEmuFrame::Menu_ShowAboutBox(wxCommandEvent &event)
{
AboutBoxDialog( this, wxID_ANY ).ShowModal();
}

View File

@ -30,7 +30,6 @@ class MainEmuFrame: public wxFrame
public:
MainEmuFrame(wxWindow* parent, int id, const wxString& title, const wxPoint& pos=wxDefaultPosition, const wxSize& size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE);
void OnLogBoxShown();
void OnLogBoxHidden();
protected:
@ -124,10 +123,11 @@ protected:
void ConnectMenus();
protected:
ConsoleLogFrame& m_logbox;
wxMenuBar& m_menubar;
ConsoleLogFrame m_logbox;
wxStatusBar& m_statusbar;
wxStaticBitmap& m_background;
wxStaticBitmap m_background;
wxMenuBar& m_menubar;
wxMenu& m_menuRun;
wxMenu& m_menuConfig;
@ -169,6 +169,6 @@ protected:
void Menu_Debug_Logging_Click(wxCommandEvent &event);
void Menu_ShowConsole(wxCommandEvent &event);
void Menu_ShowAboutBox(wxCommandEvent &event);
};

View File

@ -115,11 +115,11 @@ bool Pcsx2App::OnInit()
m_GlobalConfig = new AppConfig( Path::Combine( PathDefs::GetConfigs(), GetAppName() ) + ".ini" );
m_GlobalConfig->LoadSettings();
// Allow wx to use our config, and enforces auto-cleanup as well
m_Bitmap_Logo = new wxBitmap( _T("./pcsxAbout.png"), wxBITMAP_TYPE_PNG );
MainEmuFrame* frameMain = new MainEmuFrame( NULL, wxID_ANY, wxEmptyString );
SetTopWindow( frameMain );
frameMain->Show();
m_MainFrame = new MainEmuFrame( NULL, wxID_ANY, wxEmptyString );
SetTopWindow( m_MainFrame );
m_MainFrame->Show();
return true;
}
@ -130,6 +130,12 @@ int Pcsx2App::OnExit()
return wxApp::OnExit();
}
const wxBitmap& Pcsx2App::GetLogoBitmap() const
{
wxASSERT( m_Bitmap_Logo != NULL );
return *m_Bitmap_Logo;
}
AppConfig& Pcsx2App::GetActiveConfig() const
{
wxASSERT( m_GlobalConfig != NULL );

View File

@ -19,6 +19,6 @@
#ifndef _PCSX2_ABOUTDLG_H_
#define _PCSX2_ABOUTDLG_H_
LRESULT WINAPI AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
//LRESULT WINAPI AboutDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
#endif

View File

@ -279,6 +279,7 @@
>
<FileConfiguration
Name="Debug|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@ -288,6 +289,7 @@
</FileConfiguration>
<FileConfiguration
Name="Devel|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
@ -295,6 +297,14 @@
PrecompiledHeaderFile="$(IntDir)\win32.pch"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCLCompilerTool"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\AdvancedDlg.cpp"