summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinWX/Src/FrameTools.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/DolphinWX/Src/FrameTools.cpp')
-rw-r--r--Source/Core/DolphinWX/Src/FrameTools.cpp220
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