DolphinWX: Reimplement cheat listbox updating, but without a global

Just use event handling.
This commit is contained in:
Lioncash 2014-10-18 21:28:36 -04:00
parent 90eaf9519c
commit e7939a6b44
5 changed files with 17 additions and 1 deletions

View File

@ -313,6 +313,7 @@ void CheatSearchTab::CreateARCode(wxCommandEvent&)
const u32 address = m_search_results[sel].address | ((m_search_type_size & ~1) << 24); const u32 address = m_search_results[sel].address | ((m_search_type_size & ~1) << 24);
CreateCodeDialog arcode_dlg(this, address); CreateCodeDialog arcode_dlg(this, address);
arcode_dlg.SetExtraStyle(arcode_dlg.GetExtraStyle() & ~wxWS_EX_BLOCK_EVENTS);
arcode_dlg.ShowModal(); arcode_dlg.ShowModal();
} }
} }

View File

@ -134,6 +134,7 @@ void wxCheatsWindow::Init_ChildControls()
button_cancel->Bind(wxEVT_BUTTON, &wxCheatsWindow::OnEvent_ButtonClose_Press, this); button_cancel->Bind(wxEVT_BUTTON, &wxCheatsWindow::OnEvent_ButtonClose_Press, this);
Bind(wxEVT_CLOSE_WINDOW, &wxCheatsWindow::OnEvent_Close, this); Bind(wxEVT_CLOSE_WINDOW, &wxCheatsWindow::OnEvent_Close, this);
Bind(UPDATE_CHEAT_LIST_EVENT, &wxCheatsWindow::OnEvent_CheatsList_Update, this);
wxStdDialogButtonSizer* const sButtons = new wxStdDialogButtonSizer(); wxStdDialogButtonSizer* const sButtons = new wxStdDialogButtonSizer();
sButtons->AddButton(m_button_apply); sButtons->AddButton(m_button_apply);
@ -243,6 +244,11 @@ void wxCheatsWindow::OnEvent_CheatsList_ItemToggled(wxCommandEvent& WXUNUSED (ev
} }
} }
void wxCheatsWindow::OnEvent_CheatsList_Update(wxCommandEvent& event)
{
Load_ARCodes();
}
void wxCheatsWindow::OnEvent_ApplyChanges_Press(wxCommandEvent& ev) void wxCheatsWindow::OnEvent_ApplyChanges_Press(wxCommandEvent& ev)
{ {
// Apply AR Code changes // Apply AR Code changes

View File

@ -93,6 +93,7 @@ private:
// Cheats List // Cheats List
void OnEvent_CheatsList_ItemSelected(wxCommandEvent& event); void OnEvent_CheatsList_ItemSelected(wxCommandEvent& event);
void OnEvent_CheatsList_ItemToggled(wxCommandEvent& event); void OnEvent_CheatsList_ItemToggled(wxCommandEvent& event);
void OnEvent_CheatsList_Update(wxCommandEvent& event);
// Apply Changes Button // Apply Changes Button
void OnEvent_ApplyChanges_Press(wxCommandEvent& event); void OnEvent_ApplyChanges_Press(wxCommandEvent& event);

View File

@ -17,6 +17,9 @@
#include "DolphinWX/WxUtils.h" #include "DolphinWX/WxUtils.h"
#include "DolphinWX/Cheats/CreateCodeDialog.h" #include "DolphinWX/Cheats/CreateCodeDialog.h"
// Fired when an ActionReplay code is created.
wxDEFINE_EVENT(UPDATE_CHEAT_LIST_EVENT, wxCommandEvent);
CreateCodeDialog::CreateCodeDialog(wxWindow* const parent, const u32 address) CreateCodeDialog::CreateCodeDialog(wxWindow* const parent, const u32 address)
: wxDialog(parent, -1, _("Create AR Code")) : wxDialog(parent, -1, _("Create AR Code"))
, m_code_address(address) , m_code_address(address)
@ -95,6 +98,9 @@ void CreateCodeDialog::PressOK(wxCommandEvent& ev)
//ActionReplay::UpdateActiveList(); //ActionReplay::UpdateActiveList();
} }
// Propagate back to the parent frame to update the cheat list.
GetEventHandler()->AddPendingEvent(wxCommandEvent(UPDATE_CHEAT_LIST_EVENT));
Close(); Close();
} }

View File

@ -5,14 +5,16 @@
#pragma once #pragma once
#include <wx/dialog.h> #include <wx/dialog.h>
#include <wx/event.h>
#include "Common/CommonTypes.h" #include "Common/CommonTypes.h"
class wxCheckBox; class wxCheckBox;
class wxCommandEvent;
class wxTextCtrl; class wxTextCtrl;
class wxWindow; class wxWindow;
wxDECLARE_EVENT(UPDATE_CHEAT_LIST_EVENT, wxCommandEvent);
class CreateCodeDialog final : public wxDialog class CreateCodeDialog final : public wxDialog
{ {
public: public: