From 375e1227d98cba1b1760acd43e334b62dc4f7c54 Mon Sep 17 00:00:00 2001 From: LPFaint99 Date: Sat, 25 Apr 2009 18:55:05 +0000 Subject: [PATCH] InfoWindow fixes for linux build, dvd drive list git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3076 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/DolphinWX/Src/InfoWindow.cpp | 313 +++++++++++------------ Source/Core/DolphinWX/Src/InfoWindow.h | 170 ++++++------ 2 files changed, 240 insertions(+), 243 deletions(-) diff --git a/Source/Core/DolphinWX/Src/InfoWindow.cpp b/Source/Core/DolphinWX/Src/InfoWindow.cpp index c82573047c..725260261f 100644 --- a/Source/Core/DolphinWX/Src/InfoWindow.cpp +++ b/Source/Core/DolphinWX/Src/InfoWindow.cpp @@ -1,158 +1,155 @@ -// Copyright (C) 2003-2009 Dolphin Project. - -// 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, version 2.0. - -// 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 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -#include "Globals.h" -#include "InfoWindow.h" -#include "CPUDetect.h" -#include "Core.h" -#include "ConfigManager.h" -#include "CDUtils.h" - -BEGIN_EVENT_TABLE(wxInfoWindow, wxWindow) - EVT_SIZE( wxInfoWindow::OnEvent_Window_Resize) - EVT_CLOSE( wxInfoWindow::OnEvent_Window_Close) - EVT_BUTTON(ID_BUTTON_CLOSE, wxInfoWindow::OnEvent_ButtonClose_Press) -END_EVENT_TABLE() - -wxInfoWindow::wxInfoWindow(wxFrame* parent, const wxPoint& pos, const wxSize& size) : - wxFrame(parent, wxID_ANY, _T("System Information"), pos, size, wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE) -{ - // Create the GUI controls - Init_ChildControls(); - - // Setup Window - SetBackgroundColour(wxColour(COLOR_GRAY)); - SetSize(size); - SetPosition(pos); - Layout(); - Show(); -} - -wxInfoWindow::~wxInfoWindow() -{ - // On Disposal -} - -std::string Summarize_Plug() -{ - std::string sum; - sum = StringFromFormat("",""); - sum += "Default GFX Plugin: " + SConfig::GetInstance().m_DefaultGFXPlugin +"\n"; - sum += "Default DSP Plugin: " + SConfig::GetInstance().m_DefaultDSPPlugin +"\n"; - sum += "Default PAD Plugin: " + SConfig::GetInstance().m_DefaultPADPlugin +"\n"; - sum += "Default WiiMote Plugin: " + SConfig::GetInstance().m_DefaultWiiMotePlugin +"\n"; - return sum; -} - -std::string Summarize_Settings() -{ - std::string sum; - sum = StringFromFormat("",""); - sum += "\nDolphin Settings\n\n"; - sum += wxString::Format("Always HLE Bios: %08x\n",Core::GetStartupParameter().bHLEBios); - sum += wxString::Format("Use Dynarec: %08x\n",Core::GetStartupParameter().bUseJIT); - sum += wxString::Format("Use Dual Core: %08x\n",Core::GetStartupParameter().bUseDualCore); - sum += wxString::Format("DSP Thread: %08x\n",Core::GetStartupParameter().bDSPThread); - sum += wxString::Format("Skip Idle: %08x\n",Core::GetStartupParameter().bSkipIdle); - sum += wxString::Format("Lock Threads: %08x\n",Core::GetStartupParameter().bLockThreads); - sum += wxString::Format("Use Dual Core: %08x\n",Core::GetStartupParameter().bUseDualCore); - sum += wxString::Format("Default GCM: %08x\n",Core::GetStartupParameter().m_strDefaultGCM); - sum += wxString::Format("DVD Root: %08x\n",Core::GetStartupParameter().m_strDVDRoot); - sum += wxString::Format("Optimize Quantizers: %08x\n",Core::GetStartupParameter().bOptimizeQuantizers); - sum += wxString::Format("Enable Cheats: %08x\n",Core::GetStartupParameter().bEnableCheats); - sum += wxString::Format("Selected Language: %08x\n",Core::GetStartupParameter().SelectedLanguage); - sum += wxString::Format("Memcard A: %08x\n",SConfig::GetInstance().m_strMemoryCardA); - sum += wxString::Format("Memcard B: %08x\n",SConfig::GetInstance().m_strMemoryCardB); - sum += wxString::Format("Slot A: %08x\n",SConfig::GetInstance().m_EXIDevice[0]); - sum += wxString::Format("Slot B: %08x\n",SConfig::GetInstance().m_EXIDevice[1]); - sum += wxString::Format("Serial Port 1: %08x\n",SConfig::GetInstance().m_EXIDevice[2]); - sum += wxString::Format("Widescreen: %08x\n",Core::GetStartupParameter().bWidescreen); - sum += wxString::Format("Progressive Scan: %08x\n",Core::GetStartupParameter().bProgressiveScan); - - return sum; -} - - -void wxInfoWindow::Init_ChildControls() -{ - - // Main Notebook - m_Notebook_Main = new wxNotebook(this, ID_NOTEBOOK_MAIN, wxDefaultPosition, wxDefaultSize); - // --- Tabs --- - - // $ Log Tab - m_Tab_Log = new wxPanel(m_Notebook_Main, ID_TAB_LOG, wxDefaultPosition, wxDefaultSize); - m_TextCtrl_Log = new wxTextCtrl(m_Tab_Log, - ID_TEXTCTRL_LOG, - wxString::FromAscii(std::string( - //Dolphin revision number - - std::string("Dolphin Revision: ") + SVN_REV_STR +"\n"+ - std::string("CD/DVD Drive: ") + **cdio_get_devices() +"\n"+ - - //Plugin Information - "Plugin Information\n\n"+ - Summarize_Plug() +"\n"+ - Summarize_Settings() +"\n"+ - //CPU Info - std::string("Processor Information:\n")+cpu_info.Summarize()+"\n\n" - - ).c_str()), - wxDefaultPosition, wxSize(100, 600), - wxTE_MULTILINE | wxTE_READONLY | wxTE_DONTWRAP); - - wxBoxSizer *HStrip1 = new wxBoxSizer(wxHORIZONTAL); - wxBoxSizer *sTabLog = new wxBoxSizer(wxVERTICAL); - sTabLog->Add(HStrip1, 0, wxALL, 5); - sTabLog->Add(m_TextCtrl_Log, 1, wxALL|wxEXPAND, 5); - - m_Tab_Log->SetSizer(sTabLog); - m_Tab_Log->Layout(); - - // Add Tabs to Notebook - m_Notebook_Main->AddPage(m_Tab_Log, _T("System Information")); - - // Button Strip - m_Button_Close = new wxButton(this, ID_BUTTON_CLOSE, _T("Close"), wxDefaultPosition, wxDefaultSize); - wxBoxSizer* sButtons = new wxBoxSizer(wxHORIZONTAL); - sButtons->Add(m_Button_Close, 0, wxALL, 5); - - wxBoxSizer* sMain = new wxBoxSizer(wxVERTICAL); - sMain->Add(m_Notebook_Main, 1, wxEXPAND|wxALL, 5); - sMain->Add(sButtons, 0, wxALL, 5); - SetSizer(sMain); - Layout(); - - Fit(); -} - - - -void wxInfoWindow::OnEvent_Window_Resize(wxSizeEvent& WXUNUSED (event)) -{ - Layout(); -} -void wxInfoWindow::OnEvent_ButtonClose_Press(wxCommandEvent& WXUNUSED (event)) -{ - Destroy(); -} -void wxInfoWindow::OnEvent_Window_Close(wxCloseEvent& WXUNUSED (event)) -{ - Destroy(); -} - - +// Copyright (C) 2003-2009 Dolphin Project. + +// 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, version 2.0. + +// 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 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official SVN repository and contact information can be found at +// http://code.google.com/p/dolphin-emu/ + +#include "Globals.h" +#include "InfoWindow.h" +#include "CPUDetect.h" +#include "Core.h" +#include "ConfigManager.h" +#include "CDUtils.h" + +BEGIN_EVENT_TABLE(wxInfoWindow, wxWindow) + EVT_SIZE( wxInfoWindow::OnEvent_Window_Resize) + EVT_CLOSE( wxInfoWindow::OnEvent_Window_Close) + EVT_BUTTON(ID_BUTTON_CLOSE, wxInfoWindow::OnEvent_ButtonClose_Press) +END_EVENT_TABLE() + +wxInfoWindow::wxInfoWindow(wxFrame* parent, const wxPoint& pos, const wxSize& size) : + wxFrame(parent, wxID_ANY, _T("System Information"), pos, size, wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE) +{ + // Create the GUI controls + Init_ChildControls(); + + // Setup Window + SetBackgroundColour(wxColour(COLOR_GRAY)); + SetSize(size); + SetPosition(pos); + Layout(); + Show(); +} + +wxInfoWindow::~wxInfoWindow() +{ + // On Disposal +} + +std::string Summarize_Plug() +{ + return StringFromFormat("Default GFX Plugin: %s\nDefault DSP Plugin: %s\nDefault PAD Plugin: %s\nDefault WiiMote Plugin: ", + SConfig::GetInstance().m_DefaultGFXPlugin.c_str(), SConfig::GetInstance().m_DefaultDSPPlugin.c_str(), + SConfig::GetInstance().m_DefaultPADPlugin.c_str(), SConfig::GetInstance().m_DefaultWiiMotePlugin.c_str()); +} + +std::string Summarize_Settings() +{ + return StringFromFormat( + "Dolphin Settings\n\nAlways HLE Bios: %s\nUse Dynarec: %s\n" + "Use Dual Core: %s\nDSP Thread: %s\nSkip Idle: %s\nLock Threads: %s\n" + "Use Dual Core: %s\nDefault GCM: %s\nDVD Root: %s\n" + "Optimize Quantizers: %s\nEnable Cheats: %s\n" + "Selected Language: %d\nMemcard A: %s\n" + "Memcard B: %s\nSlot A: %d\nSlot B: %d\n" + "Serial Port 1: %d\nWidescreen: %s\n" + "Progressive Scan: %s\n", + Core::GetStartupParameter().bHLEBios?"true":"false", + Core::GetStartupParameter().bUseJIT?"true":"false", + Core::GetStartupParameter().bUseDualCore?"true":"false", + Core::GetStartupParameter().bDSPThread?"true":"false", + Core::GetStartupParameter().bSkipIdle?"true":"false", + Core::GetStartupParameter().bLockThreads?"true":"false", + Core::GetStartupParameter().bUseDualCore?"true":"false", + Core::GetStartupParameter().m_strDefaultGCM.c_str(), + Core::GetStartupParameter().m_strDVDRoot.c_str(), + Core::GetStartupParameter().bOptimizeQuantizers?"true":"false", + Core::GetStartupParameter().bEnableCheats?"true":"false", + Core::GetStartupParameter().SelectedLanguage, //FIXME show language based on index + SConfig::GetInstance().m_strMemoryCardA.c_str(), + SConfig::GetInstance().m_strMemoryCardB.c_str(), + SConfig::GetInstance().m_EXIDevice[0], //FIXME + SConfig::GetInstance().m_EXIDevice[1], //FIXME + SConfig::GetInstance().m_EXIDevice[2], //FIXME + Core::GetStartupParameter().bWidescreen?"true":"false", + Core::GetStartupParameter().bProgressiveScan?"true":"false"); +} + + +void wxInfoWindow::Init_ChildControls() +{ + wxString Info; + Info.Printf(wxT("Dolphin Revision: " SVN_REV_STR)); + + char ** drives = cdio_get_devices(); + for (int i = 0; drives[i] != NULL && i < 24; i++) + { + Info.Append(wxString::Format(wxT("\nCD/DVD Drive%d: %s"), i+1, drives[i])); + } + Info.Append(wxString::Format(wxT("Plugin Information\n\n%s\n%s\nProcessor Information:%s\n"), + Summarize_Plug().c_str(), Summarize_Settings().c_str(), cpu_info.Summarize().c_str())); + + + + + // Main Notebook + m_Notebook_Main = new wxNotebook(this, ID_NOTEBOOK_MAIN, wxDefaultPosition, wxDefaultSize); + // --- Tabs --- + + // $ Log Tab + m_Tab_Log = new wxPanel(m_Notebook_Main, ID_TAB_LOG, wxDefaultPosition, wxDefaultSize); + m_TextCtrl_Log = new wxTextCtrl(m_Tab_Log, ID_TEXTCTRL_LOG, Info, wxDefaultPosition, wxSize(100, 600), + wxTE_MULTILINE | wxTE_READONLY | wxTE_DONTWRAP); + + wxBoxSizer *HStrip1 = new wxBoxSizer(wxHORIZONTAL); + wxBoxSizer *sTabLog = new wxBoxSizer(wxVERTICAL); + sTabLog->Add(HStrip1, 0, wxALL, 5); + sTabLog->Add(m_TextCtrl_Log, 1, wxALL|wxEXPAND, 5); + + m_Tab_Log->SetSizer(sTabLog); + m_Tab_Log->Layout(); + + // Add Tabs to Notebook + m_Notebook_Main->AddPage(m_Tab_Log, _T("System Information")); + + // Button Strip + m_Button_Close = new wxButton(this, ID_BUTTON_CLOSE, _T("Close"), wxDefaultPosition, wxDefaultSize); + wxBoxSizer* sButtons = new wxBoxSizer(wxHORIZONTAL); + sButtons->Add(m_Button_Close, 0, wxALL, 5); + + wxBoxSizer* sMain = new wxBoxSizer(wxVERTICAL); + sMain->Add(m_Notebook_Main, 1, wxEXPAND|wxALL, 5); + sMain->Add(sButtons, 0, wxALL, 5); + SetSizer(sMain); + Layout(); + + Fit(); +} + + + +void wxInfoWindow::OnEvent_Window_Resize(wxSizeEvent& WXUNUSED (event)) +{ + Layout(); +} +void wxInfoWindow::OnEvent_ButtonClose_Press(wxCommandEvent& WXUNUSED (event)) +{ + Destroy(); +} +void wxInfoWindow::OnEvent_Window_Close(wxCloseEvent& WXUNUSED (event)) +{ + Destroy(); +} + + diff --git a/Source/Core/DolphinWX/Src/InfoWindow.h b/Source/Core/DolphinWX/Src/InfoWindow.h index 1b3e8c4652..6f93ec93c8 100644 --- a/Source/Core/DolphinWX/Src/InfoWindow.h +++ b/Source/Core/DolphinWX/Src/InfoWindow.h @@ -1,85 +1,85 @@ -// Copyright (C) 2003-2008 Dolphin Project. - -// 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, version 2.0. - -// 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 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -#ifndef __INFOWINDOW_H__ -#define __INFOWINDOW_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "Filesystem.h" -#include "IniFile.h" - -class wxInfoWindow : public wxFrame -{ - public: - - wxInfoWindow(wxFrame* parent, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize); - - virtual ~wxInfoWindow(); - - protected: - - - // Event Table - DECLARE_EVENT_TABLE(); - - // --- GUI Controls --- - - wxNotebook *m_Notebook_Main; - - wxPanel *m_Tab_Log; - - wxButton *m_Button_Close; - - wxTextCtrl *m_TextCtrl_Log; - - // GUI IDs - enum - { - ID_NOTEBOOK_MAIN, - ID_TAB_LOG, - ID_BUTTON_CLOSE, - ID_TEXTCTRL_LOG - }; - - void Init_ChildControls(); - - - // --- Wx Events Handlers --- - // $ Window - void OnEvent_Window_Resize(wxSizeEvent& event); - void OnEvent_Window_Close(wxCloseEvent& event); - - // $ Close Button - void OnEvent_ButtonClose_Press(wxCommandEvent& event); - - -}; - -#endif - +// Copyright (C) 2003-2008 Dolphin Project. + +// 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, version 2.0. + +// 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 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official SVN repository and contact information can be found at +// http://code.google.com/p/dolphin-emu/ + +#ifndef __INFOWINDOW_H__ +#define __INFOWINDOW_H__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "Filesystem.h" +#include "IniFile.h" + +class wxInfoWindow : public wxFrame +{ + public: + + wxInfoWindow(wxFrame* parent, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize); + + virtual ~wxInfoWindow(); + + protected: + + + // Event Table + DECLARE_EVENT_TABLE(); + + // --- GUI Controls --- + + wxNotebook *m_Notebook_Main; + + wxPanel *m_Tab_Log; + + wxButton *m_Button_Close; + + wxTextCtrl *m_TextCtrl_Log; + + // GUI IDs + enum + { + ID_NOTEBOOK_MAIN, + ID_TAB_LOG, + ID_BUTTON_CLOSE, + ID_TEXTCTRL_LOG + }; + + void Init_ChildControls(); + + + // --- Wx Events Handlers --- + // $ Window + void OnEvent_Window_Resize(wxSizeEvent& event); + void OnEvent_Window_Close(wxCloseEvent& event); + + // $ Close Button + void OnEvent_ButtonClose_Press(wxCommandEvent& event); + + +}; + +#endif +