diff options
Diffstat (limited to 'Source/Core/DolphinWX/Src/FrameTools.cpp')
| -rw-r--r-- | Source/Core/DolphinWX/Src/FrameTools.cpp | 220 |
1 files changed, 53 insertions, 167 deletions
diff --git a/Source/Core/DolphinWX/Src/FrameTools.cpp b/Source/Core/DolphinWX/Src/FrameTools.cpp index b79e890f3b..4d66d82b18 100644 --- a/Source/Core/DolphinWX/Src/FrameTools.cpp +++ b/Source/Core/DolphinWX/Src/FrameTools.cpp @@ -78,23 +78,6 @@ Core::GetWindowHandle(). // Resources extern "C" { #include "../resources/Dolphin.c" // Dolphin icon -#include "../resources/toolbar_browse.c" -#include "../resources/toolbar_file_open.c" -#include "../resources/toolbar_fullscreen.c" -#include "../resources/toolbar_help.c" -#include "../resources/toolbar_pause.c" -#include "../resources/toolbar_play.c" -#include "../resources/toolbar_plugin_dsp.c" -#include "../resources/toolbar_plugin_gfx.c" -#include "../resources/toolbar_plugin_options.c" -#include "../resources/toolbar_plugin_pad.c" -#include "../resources/toolbar_plugin_wiimote.c" -#include "../resources/toolbar_refresh.c" -#include "../resources/toolbar_stop.c" -#include "../resources/Boomy.h" // Theme packages -#include "../resources/Vista.h" -#include "../resources/X-Plastik.h" -#include "../resources/KDE.h" }; bool confirmStop = false; @@ -441,7 +424,7 @@ void CFrame::PopulateToolbar(wxAuiToolBar* ToolBar) ToolBar->AddTool(IDM_PLAY, _("Play"), m_Bitmaps[Toolbar_Play], _("Play")); ToolBar->AddTool(IDM_STOP, _("Stop"), m_Bitmaps[Toolbar_Stop], _("Stop")); ToolBar->AddTool(IDM_TOGGLE_FULLSCREEN, _("FullScr"), m_Bitmaps[Toolbar_FullScreen], _("Toggle Fullscreen")); - ToolBar->AddTool(IDM_SCREENSHOT, _("ScrShot"), m_Bitmaps[Toolbar_FullScreen], _("Take Screenshot")); + ToolBar->AddTool(IDM_SCREENSHOT, _("ScrShot"), m_Bitmaps[Toolbar_Screenshot], _("Take Screenshot")); ToolBar->AddSeparator(); ToolBar->AddTool(wxID_PREFERENCES, _("Config"), m_Bitmaps[Toolbar_ConfigMain], _("Configure...")); ToolBar->AddTool(IDM_CONFIG_GFX_BACKEND, _("Graphics"), m_Bitmaps[Toolbar_ConfigGFX], _("Graphics settings")); @@ -512,102 +495,33 @@ void CFrame::RecreateToolbar() void CFrame::InitBitmaps() { - // Get selected theme - int Theme = SConfig::GetInstance().m_LocalCoreStartupParameter.iTheme; + std::string theme(SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name + "/"); + std::string dir(File::GetUserPath(D_THEMES_IDX) + theme); - // Save memory by only having one set of bitmaps loaded at any time. I mean, they are still - // in the exe, which is in memory, but at least we wont make another copy of all of them. - switch (Theme) - { - case BOOMY: - { - // These are stored as 48x48 - m_Bitmaps[Toolbar_FileOpen] = wxGetBitmapFromMemory(toolbar_file_open_png); - m_Bitmaps[Toolbar_Refresh] = wxGetBitmapFromMemory(toolbar_refresh_png); - m_Bitmaps[Toolbar_Browse] = wxGetBitmapFromMemory(toolbar_browse_png); - m_Bitmaps[Toolbar_Play] = wxGetBitmapFromMemory(toolbar_play_png); - m_Bitmaps[Toolbar_Stop] = wxGetBitmapFromMemory(toolbar_stop_png); - m_Bitmaps[Toolbar_Pause] = wxGetBitmapFromMemory(toolbar_pause_png); - m_Bitmaps[Toolbar_ConfigMain] = wxGetBitmapFromMemory(toolbar_plugin_options_png); - m_Bitmaps[Toolbar_ConfigGFX] = wxGetBitmapFromMemory(toolbar_plugin_gfx_png); - m_Bitmaps[Toolbar_ConfigDSP] = wxGetBitmapFromMemory(toolbar_plugin_dsp_png); - m_Bitmaps[Toolbar_ConfigPAD] = wxGetBitmapFromMemory(toolbar_plugin_pad_png); - m_Bitmaps[Toolbar_Wiimote] = wxGetBitmapFromMemory(toolbar_plugin_wiimote_png); - m_Bitmaps[Toolbar_Screenshot] = wxGetBitmapFromMemory(toolbar_fullscreen_png); - m_Bitmaps[Toolbar_FullScreen] = wxGetBitmapFromMemory(toolbar_fullscreen_png); - m_Bitmaps[Toolbar_Help] = wxGetBitmapFromMemory(toolbar_help_png); - - // Scale the 48x48 bitmaps to 24x24 - for (size_t n = Toolbar_FileOpen; n < EToolbar_Max; n++) - { - m_Bitmaps[n] = wxBitmap(m_Bitmaps[n].ConvertToImage().Scale(24, 24)); - } - } - break; - - case VISTA: - { - // These are stored as 24x24 and need no scaling - m_Bitmaps[Toolbar_FileOpen] = wxGetBitmapFromMemory(Toolbar_Open1_png); - m_Bitmaps[Toolbar_Refresh] = wxGetBitmapFromMemory(Toolbar_Refresh1_png); - m_Bitmaps[Toolbar_Browse] = wxGetBitmapFromMemory(Toolbar_Browse1_png); - m_Bitmaps[Toolbar_Play] = wxGetBitmapFromMemory(Toolbar_Play1_png); - m_Bitmaps[Toolbar_Stop] = wxGetBitmapFromMemory(Toolbar_Stop1_png); - m_Bitmaps[Toolbar_Pause] = wxGetBitmapFromMemory(Toolbar_Pause1_png); - m_Bitmaps[Toolbar_ConfigMain] = wxGetBitmapFromMemory(Toolbar_Options1_png); - m_Bitmaps[Toolbar_ConfigGFX] = wxGetBitmapFromMemory(Toolbar_Gfx1_png); - m_Bitmaps[Toolbar_ConfigDSP] = wxGetBitmapFromMemory(Toolbar_DSP1_png); - m_Bitmaps[Toolbar_ConfigPAD] = wxGetBitmapFromMemory(Toolbar_Pad1_png); - m_Bitmaps[Toolbar_Wiimote] = wxGetBitmapFromMemory(Toolbar_Wiimote1_png); - m_Bitmaps[Toolbar_Screenshot] = wxGetBitmapFromMemory(Toolbar_Fullscreen1_png); - m_Bitmaps[Toolbar_FullScreen] = wxGetBitmapFromMemory(Toolbar_Fullscreen1_png); - m_Bitmaps[Toolbar_Help] = wxGetBitmapFromMemory(Toolbar_Help1_png); - } - break; - - case XPLASTIK: - { - m_Bitmaps[Toolbar_FileOpen] = wxGetBitmapFromMemory(Toolbar_Open2_png); - m_Bitmaps[Toolbar_Refresh] = wxGetBitmapFromMemory(Toolbar_Refresh2_png); - m_Bitmaps[Toolbar_Browse] = wxGetBitmapFromMemory(Toolbar_Browse2_png); - m_Bitmaps[Toolbar_Play] = wxGetBitmapFromMemory(Toolbar_Play2_png); - m_Bitmaps[Toolbar_Stop] = wxGetBitmapFromMemory(Toolbar_Stop2_png); - m_Bitmaps[Toolbar_Pause] = wxGetBitmapFromMemory(Toolbar_Pause2_png); - m_Bitmaps[Toolbar_ConfigMain] = wxGetBitmapFromMemory(Toolbar_Options2_png); - m_Bitmaps[Toolbar_ConfigGFX] = wxGetBitmapFromMemory(Toolbar_Gfx2_png); - m_Bitmaps[Toolbar_ConfigDSP] = wxGetBitmapFromMemory(Toolbar_DSP2_png); - m_Bitmaps[Toolbar_ConfigPAD] = wxGetBitmapFromMemory(Toolbar_Pad2_png); - m_Bitmaps[Toolbar_Wiimote] = wxGetBitmapFromMemory(Toolbar_Wiimote2_png); - m_Bitmaps[Toolbar_Screenshot] = wxGetBitmapFromMemory(Toolbar_Fullscreen2_png); - m_Bitmaps[Toolbar_FullScreen] = wxGetBitmapFromMemory(Toolbar_Fullscreen2_png); - m_Bitmaps[Toolbar_Help] = wxGetBitmapFromMemory(Toolbar_Help2_png); - } - break; - - case KDE: - { - m_Bitmaps[Toolbar_FileOpen] = wxGetBitmapFromMemory(Toolbar_Open3_png); - m_Bitmaps[Toolbar_Refresh] = wxGetBitmapFromMemory(Toolbar_Refresh3_png); - m_Bitmaps[Toolbar_Browse] = wxGetBitmapFromMemory(Toolbar_Browse3_png); - m_Bitmaps[Toolbar_Play] = wxGetBitmapFromMemory(Toolbar_Play3_png); - m_Bitmaps[Toolbar_Stop] = wxGetBitmapFromMemory(Toolbar_Stop3_png); - m_Bitmaps[Toolbar_Pause] = wxGetBitmapFromMemory(Toolbar_Pause3_png); - m_Bitmaps[Toolbar_ConfigMain] = wxGetBitmapFromMemory(Toolbar_Options3_png); - m_Bitmaps[Toolbar_ConfigGFX] = wxGetBitmapFromMemory(Toolbar_Gfx3_png); - m_Bitmaps[Toolbar_ConfigDSP] = wxGetBitmapFromMemory(Toolbar_DSP3_png); - m_Bitmaps[Toolbar_ConfigPAD] = wxGetBitmapFromMemory(Toolbar_Pad3_png); - m_Bitmaps[Toolbar_Wiimote] = wxGetBitmapFromMemory(Toolbar_Wiimote3_png); - m_Bitmaps[Toolbar_Screenshot] = wxGetBitmapFromMemory(Toolbar_Fullscreen3_png); - m_Bitmaps[Toolbar_FullScreen] = wxGetBitmapFromMemory(Toolbar_Fullscreen3_png); - m_Bitmaps[Toolbar_Help] = wxGetBitmapFromMemory(Toolbar_Help3_png); - } - break; +#if !defined(_WIN32) + // If theme does not exist in user's dir load from shared directory + if (!File::Exists(dir)) + dir = SHARED_USER_DIR THEMES_DIR "/" + theme; +#endif - default: PanicAlertT("Theme selection went wrong"); - } + m_Bitmaps[Toolbar_FileOpen].LoadFile(dir + "open.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Refresh].LoadFile(dir + "refresh.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Browse].LoadFile(dir + "browse.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Play].LoadFile(dir + "play.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Stop].LoadFile(dir + "stop.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Pause].LoadFile(dir + "pause.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_ConfigMain].LoadFile(dir + "config.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_ConfigGFX].LoadFile(dir + "graphics.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_ConfigDSP].LoadFile(dir + "dsp.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_ConfigPAD].LoadFile(dir + "gcpad.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Wiimote].LoadFile(dir + "wiimote.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Screenshot].LoadFile(dir + "screenshot.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_FullScreen].LoadFile(dir + "fullscreen.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Help].LoadFile(dir + "help.png", wxBITMAP_TYPE_PNG); // Update in case the bitmap has been updated - if (m_ToolBar != NULL) RecreateToolbar(); + if (m_ToolBar != NULL) + RecreateToolbar(); } // Menu items @@ -958,15 +872,9 @@ void CFrame::StartGame(const std::string& filename) wxSize size(SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowWidth, SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowHeight); m_RenderFrame->SetClientSize(size.GetWidth(), size.GetHeight()); - m_RenderFrame->Connect(wxID_ANY, wxEVT_CLOSE_WINDOW, - wxCloseEventHandler(CFrame::OnRenderParentClose), - (wxObject*)0, this); - m_RenderFrame->Connect(wxID_ANY, wxEVT_ACTIVATE, - wxActivateEventHandler(CFrame::OnActive), - (wxObject*)0, this); - m_RenderFrame->Connect(wxID_ANY, wxEVT_MOVE, - wxMoveEventHandler(CFrame::OnRenderParentMove), - (wxObject*)0, this); + m_RenderFrame->Bind(wxEVT_CLOSE_WINDOW, &CFrame::OnRenderParentClose, this); + m_RenderFrame->Bind(wxEVT_ACTIVATE, &CFrame::OnActive, this); + m_RenderFrame->Bind(wxEVT_MOVE, &CFrame::OnRenderParentMove, this); m_RenderParent = new CPanel(m_RenderFrame, wxID_ANY); m_RenderFrame->Show(); } @@ -999,30 +907,14 @@ void CFrame::StartGame(const std::string& filename) m_RenderParent->SetFocus(); #endif - wxTheApp->Connect(wxID_ANY, wxEVT_KEY_DOWN, // Keyboard - wxKeyEventHandler(CFrame::OnKeyDown), - (wxObject*)0, this); - wxTheApp->Connect(wxID_ANY, wxEVT_KEY_UP, - wxKeyEventHandler(CFrame::OnKeyUp), - (wxObject*)0, this); - wxTheApp->Connect(wxID_ANY, wxEVT_RIGHT_DOWN, // Mouse - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Connect(wxID_ANY, wxEVT_RIGHT_UP, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Connect(wxID_ANY, wxEVT_MIDDLE_DOWN, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Connect(wxID_ANY, wxEVT_MIDDLE_UP, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Connect(wxID_ANY, wxEVT_MOTION, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - m_RenderParent->Connect(wxID_ANY, wxEVT_SIZE, - wxSizeEventHandler(CFrame::OnRenderParentResize), - (wxObject*)0, this); + wxTheApp->Bind(wxEVT_KEY_DOWN, &CFrame::OnKeyDown, this); + wxTheApp->Bind(wxEVT_KEY_UP, &CFrame::OnKeyUp, this); + wxTheApp->Bind(wxEVT_RIGHT_DOWN, &CFrame::OnMouse, this); + wxTheApp->Bind(wxEVT_RIGHT_UP, &CFrame::OnMouse, this); + wxTheApp->Bind(wxEVT_MIDDLE_DOWN, &CFrame::OnMouse, this); + wxTheApp->Bind(wxEVT_MIDDLE_UP, &CFrame::OnMouse, this); + wxTheApp->Bind(wxEVT_MOTION, &CFrame::OnMouse, this); + m_RenderParent->Bind(wxEVT_SIZE, &CFrame::OnRenderParentResize, this); } wxEndBusyCursor(); @@ -1059,6 +951,7 @@ void CFrame::DoPause() Core::SetState(Core::CORE_PAUSE); if (SConfig::GetInstance().m_LocalCoreStartupParameter.bHideCursor) m_RenderParent->SetCursor(wxNullCursor); + Core::UpdateTitle(); } else { @@ -1125,30 +1018,18 @@ void CFrame::DoStop() m_RenderFrame->SetTitle(wxString::FromAscii(scm_rev_str)); // Destroy the renderer frame when not rendering to main - m_RenderParent->Disconnect(wxID_ANY, wxEVT_SIZE, - wxSizeEventHandler(CFrame::OnRenderParentResize), - (wxObject*)0, this); - wxTheApp->Disconnect(wxID_ANY, wxEVT_KEY_DOWN, // Keyboard - wxKeyEventHandler(CFrame::OnKeyDown), - (wxObject*)0, this); - wxTheApp->Disconnect(wxID_ANY, wxEVT_KEY_UP, - wxKeyEventHandler(CFrame::OnKeyUp), - (wxObject*)0, this); - wxTheApp->Disconnect(wxID_ANY, wxEVT_RIGHT_DOWN, // Mouse - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Disconnect(wxID_ANY, wxEVT_RIGHT_UP, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Disconnect(wxID_ANY, wxEVT_MIDDLE_DOWN, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Disconnect(wxID_ANY, wxEVT_MIDDLE_UP, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Disconnect(wxID_ANY, wxEVT_MOTION, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); + m_RenderParent->Unbind(wxEVT_SIZE, &CFrame::OnRenderParentResize, this); + + // Keyboard + wxTheApp->Unbind(wxEVT_KEY_DOWN, &CFrame::OnKeyDown, this); + wxTheApp->Unbind(wxEVT_KEY_UP, &CFrame::OnKeyUp, this); + + // Mouse + wxTheApp->Unbind(wxEVT_RIGHT_DOWN, &CFrame::OnMouse, this); + wxTheApp->Unbind(wxEVT_RIGHT_UP, &CFrame::OnMouse, this); + wxTheApp->Unbind(wxEVT_MIDDLE_DOWN, &CFrame::OnMouse, this); + wxTheApp->Unbind(wxEVT_MIDDLE_UP, &CFrame::OnMouse, this); + wxTheApp->Unbind(wxEVT_MOTION, &CFrame::OnMouse, this); if (SConfig::GetInstance().m_LocalCoreStartupParameter.bHideCursor) m_RenderParent->SetCursor(wxNullCursor); DoFullscreen(false); @@ -1177,6 +1058,7 @@ void CFrame::DoStop() m_GameListCtrl->Enable(); m_GameListCtrl->Show(); + m_GameListCtrl->SetFocus(); UpdateGUI(); } } @@ -1247,6 +1129,8 @@ void CFrame::OnConfigPAD(wxCommandEvent& WXUNUSED (event)) #if defined(HAVE_X11) && HAVE_X11 Window win = X11Utils::XWindowFromHandle(GetHandle()); Pad::Initialize((void *)win); +#elif defined(__APPLE__) + Pad::Initialize((void *)this); #else Pad::Initialize(GetHandle()); #endif @@ -1271,6 +1155,8 @@ void CFrame::OnConfigWiimote(wxCommandEvent& WXUNUSED (event)) #if defined(HAVE_X11) && HAVE_X11 Window win = X11Utils::XWindowFromHandle(GetHandle()); Wiimote::Initialize((void *)win); +#elif defined(__APPLE__) + Wiimote::Initialize((void *)this); #else Wiimote::Initialize(GetHandle()); #endif |
