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;
|
||||
case ID_HOTKEY_CONFIG:
|
||||
{
|
||||
HotkeyConfigDialog *m_HotkeyDialog = new HotkeyConfigDialog(this);
|
||||
m_HotkeyDialog->ShowModal();
|
||||
m_HotkeyDialog->Destroy();
|
||||
HotkeyConfigDialog m_HotkeyDialog(this);
|
||||
m_HotkeyDialog.ShowModal();
|
||||
}
|
||||
// Update the GUI in case menu accelerators were changed
|
||||
main_frame->UpdateGUI();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,10 +22,10 @@
|
|||
|
||||
BEGIN_EVENT_TABLE(HotkeyConfigDialog,wxDialog)
|
||||
EVT_CLOSE(HotkeyConfigDialog::OnClose)
|
||||
EVT_BUTTON(ID_CLOSE, HotkeyConfigDialog::CloseClick)
|
||||
EVT_BUTTON(wxID_OK, HotkeyConfigDialog::CloseClick)
|
||||
EVT_COMMAND_RANGE(0, NUM_HOTKEYS - 1,
|
||||
wxEVT_COMMAND_BUTTON_CLICKED, HotkeyConfigDialog::OnButtonClick)
|
||||
EVT_TIMER(IDTM_BUTTON, HotkeyConfigDialog::OnButtonTimer)
|
||||
EVT_TIMER(wxID_ANY, HotkeyConfigDialog::OnButtonTimer)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
HotkeyConfigDialog::HotkeyConfigDialog(wxWindow *parent, wxWindowID id, const wxString &title,
|
||||
|
@ -35,7 +35,7 @@ HotkeyConfigDialog::HotkeyConfigDialog(wxWindow *parent, wxWindowID id, const wx
|
|||
CreateHotkeyGUIControls();
|
||||
|
||||
#if wxUSE_TIMER
|
||||
m_ButtonMappingTimer = new wxTimer(this, IDTM_BUTTON);
|
||||
m_ButtonMappingTimer = new wxTimer(this, wxID_ANY);
|
||||
g_Pressed = 0;
|
||||
g_Modkey = 0;
|
||||
ClickedButton = NULL;
|
||||
|
@ -46,26 +46,19 @@ HotkeyConfigDialog::HotkeyConfigDialog(wxWindow *parent, wxWindowID id, const wx
|
|||
|
||||
HotkeyConfigDialog::~HotkeyConfigDialog()
|
||||
{
|
||||
if (m_ButtonMappingTimer)
|
||||
delete m_ButtonMappingTimer;
|
||||
}
|
||||
|
||||
void HotkeyConfigDialog::OnClose(wxCloseEvent& WXUNUSED(event))
|
||||
{
|
||||
if (m_ButtonMappingTimer)
|
||||
m_ButtonMappingTimer->Stop();
|
||||
|
||||
EndModal(wxID_CLOSE);
|
||||
}
|
||||
|
||||
void HotkeyConfigDialog::CloseClick(wxCommandEvent& event)
|
||||
void HotkeyConfigDialog::CloseClick(wxCommandEvent& WXUNUSED(event))
|
||||
{
|
||||
switch(event.GetId())
|
||||
{
|
||||
case ID_CLOSE:
|
||||
Close();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Save keyboard key mapping
|
||||
|
@ -300,10 +293,9 @@ void HotkeyConfigDialog::CreateHotkeyGUIControls(void)
|
|||
Page->SetSizer(sPage);
|
||||
}
|
||||
|
||||
m_Close = new wxButton(this, ID_CLOSE, _("Close"));
|
||||
wxBoxSizer* sButtons = new wxBoxSizer(wxHORIZONTAL);
|
||||
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);
|
||||
sMainSizer->Add(Notebook, 0, wxEXPAND | wxALL, 5);
|
||||
|
|
|
@ -44,29 +44,21 @@ class HotkeyConfigDialog : public wxDialog
|
|||
const wxString &title = _("Hotkey Configuration"),
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxDEFAULT_DIALOG_STYLE | wxWANTS_CHARS);
|
||||
long style = wxDEFAULT_DIALOG_STYLE);
|
||||
virtual ~HotkeyConfigDialog();
|
||||
|
||||
wxTimer *m_ButtonMappingTimer;
|
||||
|
||||
private:
|
||||
DECLARE_EVENT_TABLE();
|
||||
|
||||
enum
|
||||
{
|
||||
ID_CLOSE = 1000,
|
||||
IDTM_BUTTON, // Timer
|
||||
ID_APPLY
|
||||
};
|
||||
|
||||
wxString OldLabel;
|
||||
|
||||
wxButton *m_Close, *m_Apply, *ClickedButton,
|
||||
wxButton *ClickedButton,
|
||||
*m_Button_Hotkeys[NUM_HOTKEYS];
|
||||
wxRadioButton *m_Radio_FSPause[5];
|
||||
|
||||
wxTimer *m_ButtonMappingTimer;
|
||||
|
||||
void OnClose(wxCloseEvent& event);
|
||||
void CloseClick(wxCommandEvent& event);
|
||||
void CloseClick(wxCommandEvent& WXUNUSED(event));
|
||||
void OnButtonTimer(wxTimerEvent& WXUNUSED(event)) { DoGetButtons(GetButtonWaitingID); }
|
||||
void OnButtonClick(wxCommandEvent& event);
|
||||
void OnKeyDown(wxKeyEvent& event);
|
||||
|
@ -74,7 +66,6 @@ class HotkeyConfigDialog : public wxDialog
|
|||
void CreateHotkeyGUIControls(void);
|
||||
|
||||
void SetButtonText(int id, const wxString &keystr, const wxString &modkeystr = wxString());
|
||||
wxString GetButtonText(int id);
|
||||
|
||||
void DoGetButtons(int id);
|
||||
void EndGetButtons(void);
|
||||
|
|
Loading…
Reference in New Issue