Make the hotkey dialog close when the escape key is pressed. I commit this as an example of how all dialogs should be set up. The buttons used to close the dialog should use wxID_OK or wxID_CANCEL. Alternatively you can use SetEscapeId or SetAffirmativeId to set the escape id to the id you use.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7350 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
27142fafe0
commit
1e46f069c2
|
@ -1062,12 +1062,11 @@ void CConfigMain::DisplaySettingsChanged(wxCommandEvent& event)
|
||||||
break;
|
break;
|
||||||
case ID_HOTKEY_CONFIG:
|
case ID_HOTKEY_CONFIG:
|
||||||
{
|
{
|
||||||
HotkeyConfigDialog *m_HotkeyDialog = new HotkeyConfigDialog(this);
|
HotkeyConfigDialog m_HotkeyDialog(this);
|
||||||
m_HotkeyDialog->ShowModal();
|
m_HotkeyDialog.ShowModal();
|
||||||
m_HotkeyDialog->Destroy();
|
}
|
||||||
// Update the GUI in case menu accelerators were changed
|
// Update the GUI in case menu accelerators were changed
|
||||||
main_frame->UpdateGUI();
|
main_frame->UpdateGUI();
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,10 +22,10 @@
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(HotkeyConfigDialog,wxDialog)
|
BEGIN_EVENT_TABLE(HotkeyConfigDialog,wxDialog)
|
||||||
EVT_CLOSE(HotkeyConfigDialog::OnClose)
|
EVT_CLOSE(HotkeyConfigDialog::OnClose)
|
||||||
EVT_BUTTON(ID_CLOSE, HotkeyConfigDialog::CloseClick)
|
EVT_BUTTON(wxID_OK, HotkeyConfigDialog::CloseClick)
|
||||||
EVT_COMMAND_RANGE(0, NUM_HOTKEYS - 1,
|
EVT_COMMAND_RANGE(0, NUM_HOTKEYS - 1,
|
||||||
wxEVT_COMMAND_BUTTON_CLICKED, HotkeyConfigDialog::OnButtonClick)
|
wxEVT_COMMAND_BUTTON_CLICKED, HotkeyConfigDialog::OnButtonClick)
|
||||||
EVT_TIMER(IDTM_BUTTON, HotkeyConfigDialog::OnButtonTimer)
|
EVT_TIMER(wxID_ANY, HotkeyConfigDialog::OnButtonTimer)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
HotkeyConfigDialog::HotkeyConfigDialog(wxWindow *parent, wxWindowID id, const wxString &title,
|
HotkeyConfigDialog::HotkeyConfigDialog(wxWindow *parent, wxWindowID id, const wxString &title,
|
||||||
|
@ -35,7 +35,7 @@ HotkeyConfigDialog::HotkeyConfigDialog(wxWindow *parent, wxWindowID id, const wx
|
||||||
CreateHotkeyGUIControls();
|
CreateHotkeyGUIControls();
|
||||||
|
|
||||||
#if wxUSE_TIMER
|
#if wxUSE_TIMER
|
||||||
m_ButtonMappingTimer = new wxTimer(this, IDTM_BUTTON);
|
m_ButtonMappingTimer = new wxTimer(this, wxID_ANY);
|
||||||
g_Pressed = 0;
|
g_Pressed = 0;
|
||||||
g_Modkey = 0;
|
g_Modkey = 0;
|
||||||
ClickedButton = NULL;
|
ClickedButton = NULL;
|
||||||
|
@ -46,26 +46,19 @@ HotkeyConfigDialog::HotkeyConfigDialog(wxWindow *parent, wxWindowID id, const wx
|
||||||
|
|
||||||
HotkeyConfigDialog::~HotkeyConfigDialog()
|
HotkeyConfigDialog::~HotkeyConfigDialog()
|
||||||
{
|
{
|
||||||
if (m_ButtonMappingTimer)
|
|
||||||
delete m_ButtonMappingTimer;
|
delete m_ButtonMappingTimer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void HotkeyConfigDialog::OnClose(wxCloseEvent& WXUNUSED(event))
|
void HotkeyConfigDialog::OnClose(wxCloseEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
if (m_ButtonMappingTimer)
|
|
||||||
m_ButtonMappingTimer->Stop();
|
m_ButtonMappingTimer->Stop();
|
||||||
|
|
||||||
EndModal(wxID_CLOSE);
|
EndModal(wxID_CLOSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HotkeyConfigDialog::CloseClick(wxCommandEvent& event)
|
void HotkeyConfigDialog::CloseClick(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
switch(event.GetId())
|
|
||||||
{
|
|
||||||
case ID_CLOSE:
|
|
||||||
Close();
|
Close();
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save keyboard key mapping
|
// Save keyboard key mapping
|
||||||
|
@ -300,10 +293,9 @@ void HotkeyConfigDialog::CreateHotkeyGUIControls(void)
|
||||||
Page->SetSizer(sPage);
|
Page->SetSizer(sPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Close = new wxButton(this, ID_CLOSE, _("Close"));
|
|
||||||
wxBoxSizer* sButtons = new wxBoxSizer(wxHORIZONTAL);
|
wxBoxSizer* sButtons = new wxBoxSizer(wxHORIZONTAL);
|
||||||
sButtons->AddStretchSpacer();
|
sButtons->AddStretchSpacer();
|
||||||
sButtons->Add(m_Close, 0, (wxLEFT), 5);
|
sButtons->Add(new wxButton(this, wxID_OK, _("Close")), 0, (wxLEFT), 5);
|
||||||
|
|
||||||
wxBoxSizer *sMainSizer = new wxBoxSizer(wxVERTICAL);
|
wxBoxSizer *sMainSizer = new wxBoxSizer(wxVERTICAL);
|
||||||
sMainSizer->Add(Notebook, 0, wxEXPAND | wxALL, 5);
|
sMainSizer->Add(Notebook, 0, wxEXPAND | wxALL, 5);
|
||||||
|
|
|
@ -44,29 +44,21 @@ class HotkeyConfigDialog : public wxDialog
|
||||||
const wxString &title = _("Hotkey Configuration"),
|
const wxString &title = _("Hotkey Configuration"),
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
const wxSize& size = wxDefaultSize,
|
const wxSize& size = wxDefaultSize,
|
||||||
long style = wxDEFAULT_DIALOG_STYLE | wxWANTS_CHARS);
|
long style = wxDEFAULT_DIALOG_STYLE);
|
||||||
virtual ~HotkeyConfigDialog();
|
virtual ~HotkeyConfigDialog();
|
||||||
|
|
||||||
wxTimer *m_ButtonMappingTimer;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_EVENT_TABLE();
|
DECLARE_EVENT_TABLE();
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
ID_CLOSE = 1000,
|
|
||||||
IDTM_BUTTON, // Timer
|
|
||||||
ID_APPLY
|
|
||||||
};
|
|
||||||
|
|
||||||
wxString OldLabel;
|
wxString OldLabel;
|
||||||
|
|
||||||
wxButton *m_Close, *m_Apply, *ClickedButton,
|
wxButton *ClickedButton,
|
||||||
*m_Button_Hotkeys[NUM_HOTKEYS];
|
*m_Button_Hotkeys[NUM_HOTKEYS];
|
||||||
wxRadioButton *m_Radio_FSPause[5];
|
|
||||||
|
wxTimer *m_ButtonMappingTimer;
|
||||||
|
|
||||||
void OnClose(wxCloseEvent& event);
|
void OnClose(wxCloseEvent& event);
|
||||||
void CloseClick(wxCommandEvent& event);
|
void CloseClick(wxCommandEvent& WXUNUSED(event));
|
||||||
void OnButtonTimer(wxTimerEvent& WXUNUSED(event)) { DoGetButtons(GetButtonWaitingID); }
|
void OnButtonTimer(wxTimerEvent& WXUNUSED(event)) { DoGetButtons(GetButtonWaitingID); }
|
||||||
void OnButtonClick(wxCommandEvent& event);
|
void OnButtonClick(wxCommandEvent& event);
|
||||||
void OnKeyDown(wxKeyEvent& event);
|
void OnKeyDown(wxKeyEvent& event);
|
||||||
|
@ -74,7 +66,6 @@ class HotkeyConfigDialog : public wxDialog
|
||||||
void CreateHotkeyGUIControls(void);
|
void CreateHotkeyGUIControls(void);
|
||||||
|
|
||||||
void SetButtonText(int id, const wxString &keystr, const wxString &modkeystr = wxString());
|
void SetButtonText(int id, const wxString &keystr, const wxString &modkeystr = wxString());
|
||||||
wxString GetButtonText(int id);
|
|
||||||
|
|
||||||
void DoGetButtons(int id);
|
void DoGetButtons(int id);
|
||||||
void EndGetButtons(void);
|
void EndGetButtons(void);
|
||||||
|
|
Loading…
Reference in New Issue