wxgui: Begin work on some missing panels for the pcsx2 config dialog.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1628 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2009-08-15 16:17:59 +00:00
parent c415d8d694
commit 3457347716
7 changed files with 120 additions and 22 deletions

View File

@ -161,7 +161,8 @@ struct AppImageIds
Plugins,
Speedhacks,
Gamefixes,
Video;
Video,
Cpu;
ConfigIds() :
Paths( -1 )
@ -169,6 +170,7 @@ struct AppImageIds
, Speedhacks( -1 )
, Gamefixes( -1 )
, Video( -1 )
, Cpu( -1 )
{
}
} Config;

View File

@ -52,10 +52,10 @@ Dialogs::ConfigurationDialog::ConfigurationDialog( wxWindow* parent, int id ) :
g_ApplyState.StartBook( &m_listbook );
g_ApplyState.SetCurrentPage( m_listbook.GetPageCount() );
m_listbook.AddPage( new PathsPanel( m_listbook, IdealWidth ), _("Folders"), false, cfgid.Paths );
m_listbook.AddPage( new CpuPanel( m_listbook, IdealWidth ), _("CPU"), false, cfgid.Cpu );
g_ApplyState.SetCurrentPage( m_listbook.GetPageCount() );
m_listbook.AddPage( new PluginSelectorPanel( m_listbook, IdealWidth ), _("Plugins"), false, cfgid.Plugins );
m_listbook.AddPage( new VideoPanel( m_listbook, IdealWidth ), _("GS/Video"), false, cfgid.Video );
g_ApplyState.SetCurrentPage( m_listbook.GetPageCount() );
m_listbook.AddPage( new SpeedHacksPanel( m_listbook, IdealWidth ), _("Speedhacks"), false, cfgid.Speedhacks );
@ -63,6 +63,13 @@ Dialogs::ConfigurationDialog::ConfigurationDialog( wxWindow* parent, int id ) :
g_ApplyState.SetCurrentPage( m_listbook.GetPageCount() );
m_listbook.AddPage( new GameFixesPanel( m_listbook, IdealWidth ), _("Game Fixes"), false, cfgid.Gamefixes );
g_ApplyState.SetCurrentPage( m_listbook.GetPageCount() );
m_listbook.AddPage( new PluginSelectorPanel( m_listbook, IdealWidth ), _("Plugins"), false, cfgid.Plugins );
g_ApplyState.SetCurrentPage( m_listbook.GetPageCount() );
m_listbook.AddPage( new PathsPanel( m_listbook, IdealWidth ), _("Folders"), false, cfgid.Paths );
mainSizer.Add( &m_listbook );
AddOkCancel( mainSizer, true );

View File

@ -192,7 +192,29 @@ namespace Panels
void Apply( AppConfig& conf );
};
//////////////////////////////////////////////////////////////////////////////////////////
//
class CpuPanel : public BaseApplicableConfigPanel
{
protected:
public:
CpuPanel( wxWindow& parent, int idealWidth );
void Apply( AppConfig& conf );
};
//////////////////////////////////////////////////////////////////////////////////////////
//
class VideoPanel : public BaseApplicableConfigPanel
{
protected:
public:
VideoPanel( wxWindow& parent, int idealWidth );
void Apply( AppConfig& conf );
};
//////////////////////////////////////////////////////////////////////////////////////////
//
class SpeedHacksPanel : public BaseApplicableConfigPanel
@ -328,7 +350,8 @@ namespace Panels
class ComboBoxPanel : public wxPanelWithHelpers
{
protected:
wxComboBox* m_combobox[NumPluginTypes];
wxComboBox* m_combobox[NumPluginTypes];
wxComboBox& m_BiosBox;
public:
ComboBoxPanel( PluginSelectorPanel* parent );
@ -356,7 +379,7 @@ namespace Panels
protected:
wxArrayString m_FileList; // list of potential plugin files
StatusPanel& m_StatusPanel;
ComboBoxPanel& m_ComboBoxes;
ComboBoxPanel& m_ComponentBoxes;
bool m_Uninitialized;
EnumThread* m_EnumeratorThread;

View File

@ -16,4 +16,51 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "PrecompiledHeader.h"
#include "PrecompiledHeader.h"
#include "ConfigurationPanels.h"
using namespace wxHelpers;
Panels::CpuPanel::CpuPanel( wxWindow& parent, int idealWidth ) :
BaseApplicableConfigPanel( &parent, idealWidth )
{
wxFlexGridSizer& s_main = *new wxFlexGridSizer( 2 );
s_main.AddGrowableCol( 0, 1 );
s_main.AddGrowableCol( 1, 1 );
// i18n: No point in translating PS2 CPU names :)
wxStaticBoxSizer& s_ee = *new wxStaticBoxSizer( wxVERTICAL, this, L"EmotionEngine" );
wxStaticBoxSizer& s_iop = *new wxStaticBoxSizer( wxVERTICAL, this, L"IOP" );
wxStaticBoxSizer& s_vu0 = *new wxStaticBoxSizer( wxVERTICAL, this, L"VU0" );
wxStaticBoxSizer& s_vu1 = *new wxStaticBoxSizer( wxVERTICAL, this, L"VU1" );
m_StartNewRadioGroup = true;
AddRadioButton( s_ee, _("Interpreter"), wxEmptyString, _("Quite possibly the slowest thing in the universe.") );
AddRadioButton( s_ee, _("Recompiler") );
m_StartNewRadioGroup = true;
AddRadioButton( s_iop, _("Interpreter") );
AddRadioButton( s_iop, _("Recompiler") );
m_StartNewRadioGroup = true;
AddRadioButton( s_vu0, _("Interpreter") );
AddRadioButton( s_vu0, _("microVU Recompiler [new!]") );
AddRadioButton( s_vu0, _("superVU Recompiler [legacy]"), wxEmptyString, _("Useful for diagnosing possible bugs in the new mVU recompiler.") );
m_StartNewRadioGroup = true;
AddRadioButton( s_vu1, _("Interpreter") );
AddRadioButton( s_vu1, _("microVU Recompiler [new!]") );
AddRadioButton( s_vu1, _("superVU Recompiler [legacy]"), wxEmptyString, _("Useful for diagnosing possible bugs in the new mVU recompiler.") );
s_main.Add( &s_ee, SizerFlags::StdExpand() );
s_main.Add( &s_iop, SizerFlags::StdExpand() );
s_main.Add( &s_vu0, SizerFlags::StdExpand() );
s_main.Add( &s_vu1, SizerFlags::StdExpand() );
SetSizerAndFit( &s_main );
}
void Panels::CpuPanel::Apply( AppConfig& conf )
{
}

View File

@ -146,6 +146,7 @@ void Panels::PluginSelectorPanel::StatusPanel::Reset()
// ------------------------------------------------------------------------
Panels::PluginSelectorPanel::ComboBoxPanel::ComboBoxPanel( PluginSelectorPanel* parent ) :
wxPanelWithHelpers( parent )
, m_BiosBox( *new wxComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ) )
{
wxFlexGridSizer& s_plugin = *new wxFlexGridSizer( NumPluginTypes, 3, 16, 10 );
s_plugin.SetFlexibleDirection( wxHORIZONTAL );
@ -164,6 +165,9 @@ Panels::PluginSelectorPanel::ComboBoxPanel::ComboBoxPanel( PluginSelectorPanel*
s_plugin.Add( new wxButton( this, wxID_ANY, L"Configure..." ) );
}
s_plugin.Add( new wxStaticText( this, wxID_ANY, L"BIOS" ), wxSizerFlags().Border( wxTOP | wxLEFT, 2 ) );
s_plugin.Add( &m_BiosBox, wxSizerFlags().Expand() );
SetSizerAndFit( &s_plugin );
}
@ -180,16 +184,16 @@ Panels::PluginSelectorPanel::PluginSelectorPanel( wxWindow& parent, int idealWid
, m_StatusPanel( *new StatusPanel( this,
wxDir::GetAllFiles( g_Conf->Folders.Plugins.ToString(), &m_FileList, wxsFormat( L"*%s", wxDynamicLibrary::GetDllExt()), wxDIR_FILES )
) )
, m_ComboBoxes( *new ComboBoxPanel( this ) )
, m_ComponentBoxes( *new ComboBoxPanel( this ) )
, m_Uninitialized( true )
, m_EnumeratorThread( NULL )
{
wxBoxSizer& s_main = *new wxBoxSizer( wxVERTICAL );
s_main.Add( &m_ComponentBoxes, SizerFlags::StdExpand().ReserveSpaceEvenIfHidden() );
s_main.Add( &m_ComboBoxes, SizerFlags::StdExpand().ReserveSpaceEvenIfHidden() );
s_main.AddSpacer( 4 );
AddStaticText( s_main, _("Tip: Installed plugins that are not compatible with your hardware or operating system will be listed below a separator.") );
//s_main.AddSpacer( 4 );
//AddStaticText( s_main, _("Tip: Installed plugins that are not compatible with your hardware or operating system will be listed below a separator.") );
s_main.AddSpacer( 4 );
s_main.Add( &m_StatusPanel, SizerFlags::StdExpand().ReserveSpaceEvenIfHidden() );
@ -221,10 +225,10 @@ void Panels::PluginSelectorPanel::Apply( AppConfig& conf )
{
for( int i=0; i<NumPluginTypes; ++i )
{
int sel = m_ComboBoxes.Get(i).GetSelection();
int sel = m_ComponentBoxes.Get(i).GetSelection();
if( sel == wxNOT_FOUND ) continue;
wxFileName relative( m_FileList[(int)m_ComboBoxes.Get(i).GetClientData(sel)] );
wxFileName relative( m_FileList[(int)m_ComponentBoxes.Get(i).GetClientData(sel)] );
relative.MakeRelativeTo( g_Conf->Folders.Plugins.ToString() );
conf.BaseFilenames.Plugins[tbl_PluginInfo[i].id] = relative.GetFullPath();
}
@ -236,7 +240,7 @@ void Panels::PluginSelectorPanel::DoRefresh()
// Disable all controls until enumeration is complete.
m_ComboBoxes.Hide();
m_ComponentBoxes.Hide();
m_StatusPanel.Show();
// Use a thread to load plugins.
@ -258,7 +262,7 @@ void Panels::PluginSelectorPanel::OnShow( wxShowEvent& evt )
void Panels::PluginSelectorPanel::OnRefresh( wxCommandEvent& evt )
{
m_ComboBoxes.Reset();
m_ComponentBoxes.Reset();
DoRefresh();
}
@ -272,11 +276,11 @@ void Panels::PluginSelectorPanel::OnEnumComplete( wxCommandEvent& evt )
int emptyBoxes = 0;
for( int i=0; i<NumPluginTypes; ++i )
{
if( m_ComboBoxes.Get(i).GetCount() <= 0 )
if( m_ComponentBoxes.Get(i).GetCount() <= 0 )
emptyBoxes++;
else if( m_ComboBoxes.Get(i).GetSelection() == wxNOT_FOUND )
m_ComboBoxes.Get(i).SetSelection( 0 );
else if( m_ComponentBoxes.Get(i).GetSelection() == wxNOT_FOUND )
m_ComponentBoxes.Get(i).SetSelection( 0 );
}
if( emptyBoxes > 0 )
@ -288,7 +292,7 @@ void Panels::PluginSelectorPanel::OnEnumComplete( wxCommandEvent& evt )
);
}
m_ComboBoxes.Show();
m_ComponentBoxes.Show();
m_StatusPanel.Hide();
m_StatusPanel.Reset();
}
@ -314,7 +318,7 @@ void Panels::PluginSelectorPanel::OnProgress( wxCommandEvent& evt )
{
if( result.PassedTest & tbl_PluginInfo[i].typemask )
{
int sel = m_ComboBoxes.Get(i).Append( wxsFormat( L"%s %s [%s]",
int sel = m_ComponentBoxes.Get(i).Append( wxsFormat( L"%s %s [%s]",
result.Name.c_str(), result.Version[i].c_str(), Path::GetFilenameWithoutExt( m_FileList[evtidx] ).c_str() ),
(void*)evtidx
);
@ -326,7 +330,7 @@ void Panels::PluginSelectorPanel::OnProgress( wxCommandEvent& evt )
right.MakeRelativeTo( g_Conf->Folders.Plugins.ToString() );
if( left == right )
m_ComboBoxes.Get(i).SetSelection( sel );
m_ComponentBoxes.Get(i).SetSelection( sel );
}
}
}

View File

@ -16,4 +16,18 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "PrecompiledHeader.h"
#include "PrecompiledHeader.h"
#include "ConfigurationPanels.h"
Panels::VideoPanel::VideoPanel( wxWindow& parent, int idealWidth ) :
BaseApplicableConfigPanel( &parent, idealWidth )
{
// TODO:
// Framelimiting / Frameskipping / Vsync
// GS Window Options ( incl. Fullscreen )
// MTGS Forced Synchronization
}
void Panels::VideoPanel::Apply( AppConfig& conf )
{
}

View File

@ -370,6 +370,7 @@ wxImageList& Pcsx2App::GetImgList_Config()
FancyLoadMacro( Gamefixes );
FancyLoadMacro( Speedhacks );
FancyLoadMacro( Video );
FancyLoadMacro( Cpu );
}
m_ConfigImagesAreLoaded = true;
return m_ConfigImages;