Clean up the hotkey dialog by separating into tabs.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7180 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
0cc0618e6d
commit
3a718f04ab
|
@ -15,6 +15,8 @@
|
||||||
// Official SVN repository and contact information can be found at
|
// Official SVN repository and contact information can be found at
|
||||||
// http://code.google.com/p/dolphin-emu/
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
|
||||||
|
#include <wx/notebook.h>
|
||||||
|
|
||||||
#include "HotkeyDlg.h"
|
#include "HotkeyDlg.h"
|
||||||
#include "ConfigManager.h"
|
#include "ConfigManager.h"
|
||||||
|
|
||||||
|
@ -188,7 +190,13 @@ void HotkeyConfigDialog::OnButtonClick(wxCommandEvent& event)
|
||||||
|
|
||||||
void HotkeyConfigDialog::CreateHotkeyGUIControls(void)
|
void HotkeyConfigDialog::CreateHotkeyGUIControls(void)
|
||||||
{
|
{
|
||||||
static const wxChar* hkText[] =
|
const wxString pageNames[] =
|
||||||
|
{
|
||||||
|
_("General"),
|
||||||
|
_("State Saves")
|
||||||
|
};
|
||||||
|
|
||||||
|
const wxString hkText[] =
|
||||||
{
|
{
|
||||||
_("Open"),
|
_("Open"),
|
||||||
_("Change Disc"),
|
_("Change Disc"),
|
||||||
|
@ -231,55 +239,75 @@ void HotkeyConfigDialog::CreateHotkeyGUIControls(void)
|
||||||
_("Save State Slot 8")
|
_("Save State Slot 8")
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const int page_breaks[3] = {HK_OPEN, HK_LOAD_STATE_SLOT_1, NUM_HOTKEYS};
|
||||||
|
|
||||||
// Configuration controls sizes
|
// Configuration controls sizes
|
||||||
wxSize size(100,20);
|
wxSize size(100,20);
|
||||||
// A small type font
|
// A small type font
|
||||||
wxFont m_SmallFont(7, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);
|
wxFont m_SmallFont(7, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);
|
||||||
|
|
||||||
wxStaticBoxSizer *sHotkeyBox = new wxStaticBoxSizer(wxVERTICAL, this, _("Hotkeys"));
|
wxNotebook *Notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize);
|
||||||
wxGridSizer *sHotkeys = new wxGridSizer(HOTKEY_NUM_COLUMNS, 0, 0);
|
|
||||||
|
|
||||||
// Header line
|
for (int j = 0; j < 2; j++)
|
||||||
for (int i = 0; i < HOTKEY_NUM_COLUMNS; i++)
|
|
||||||
{
|
{
|
||||||
wxBoxSizer *HeaderSizer = new wxBoxSizer(wxHORIZONTAL);
|
wxPanel *Page = new wxPanel(Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize);
|
||||||
wxStaticText *StaticTextHeader = new wxStaticText(this, wxID_ANY, _("Action"));
|
Notebook->AddPage(Page, pageNames[j]);
|
||||||
HeaderSizer->Add(StaticTextHeader, 1, wxALL, 2);
|
|
||||||
HeaderSizer->AddStretchSpacer();
|
wxGridBagSizer *sHotkeys = new wxGridBagSizer();
|
||||||
StaticTextHeader = new wxStaticText(this, wxID_ANY, _("Key"), wxDefaultPosition, size);
|
|
||||||
HeaderSizer->Add(StaticTextHeader, 0, wxALL, 2);
|
// Header line
|
||||||
sHotkeys->Add(HeaderSizer, 0, wxEXPAND | wxALL, 1);
|
for (int i = 0; i < HOTKEY_NUM_COLUMNS; i++)
|
||||||
|
{
|
||||||
|
wxBoxSizer *HeaderSizer = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
wxStaticText *StaticTextHeader = new wxStaticText(Page, wxID_ANY, _("Action"));
|
||||||
|
HeaderSizer->Add(StaticTextHeader, 1, wxALL, 2);
|
||||||
|
HeaderSizer->AddStretchSpacer();
|
||||||
|
StaticTextHeader = new wxStaticText(Page, wxID_ANY, _("Key"), wxDefaultPosition, size);
|
||||||
|
HeaderSizer->Add(StaticTextHeader, 0, wxALL, 2);
|
||||||
|
sHotkeys->Add(HeaderSizer, wxGBPosition(0, i), wxDefaultSpan, wxEXPAND | wxALL, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
int column_break = (page_breaks[j+1] + page_breaks[j] + 1) / 2;
|
||||||
|
for (int i = page_breaks[j]; i < page_breaks[j+1]; i++)
|
||||||
|
{
|
||||||
|
// Text for the action
|
||||||
|
wxStaticText *stHotkeys = new wxStaticText(Page, wxID_ANY, hkText[i]);
|
||||||
|
|
||||||
|
// Key selection button
|
||||||
|
m_Button_Hotkeys[i] = new wxButton(Page, i, wxEmptyString,
|
||||||
|
wxDefaultPosition, size);
|
||||||
|
m_Button_Hotkeys[i]->SetFont(m_SmallFont);
|
||||||
|
m_Button_Hotkeys[i]->SetToolTip(_("Left click to detect hotkeys.\nEnter space to clear."));
|
||||||
|
SetButtonText(i,
|
||||||
|
InputCommon::WXKeyToString(SConfig::GetInstance().m_LocalCoreStartupParameter.iHotkey[i]),
|
||||||
|
InputCommon::WXKeymodToString(
|
||||||
|
SConfig::GetInstance().m_LocalCoreStartupParameter.iHotkeyModifier[i]));
|
||||||
|
|
||||||
|
wxBoxSizer *sHotkey = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
sHotkey->Add(stHotkeys, 1, wxALIGN_LEFT | wxALL, 2);
|
||||||
|
sHotkey->AddStretchSpacer();
|
||||||
|
sHotkey->Add(m_Button_Hotkeys[i], 0, wxALL, 2);
|
||||||
|
sHotkeys->Add(sHotkey,
|
||||||
|
wxGBPosition((i < column_break) ? i - page_breaks[j] + 1 : i - column_break + 1,
|
||||||
|
(i < column_break) ? 0 : 1),
|
||||||
|
wxDefaultSpan, wxEXPAND | wxALL, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxStaticBoxSizer *sHotkeyBox = new wxStaticBoxSizer(wxVERTICAL, Page, _("Hotkeys"));
|
||||||
|
sHotkeyBox->Add(sHotkeys);
|
||||||
|
|
||||||
|
wxBoxSizer* const sPage = new wxBoxSizer(wxVERTICAL);
|
||||||
|
sPage->Add(sHotkeyBox, 0, wxEXPAND | wxALL, 5);
|
||||||
|
Page->SetSizer(sPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < NUM_HOTKEYS; i++)
|
|
||||||
{
|
|
||||||
// Text for the action
|
|
||||||
wxStaticText *stHotkeys = new wxStaticText(this, wxID_ANY, hkText[i]);
|
|
||||||
|
|
||||||
// Key selection button
|
|
||||||
m_Button_Hotkeys[i] = new wxButton(this, i, wxEmptyString,
|
|
||||||
wxDefaultPosition, size);
|
|
||||||
m_Button_Hotkeys[i]->SetFont(m_SmallFont);
|
|
||||||
SetButtonText(i,
|
|
||||||
InputCommon::WXKeyToString(SConfig::GetInstance().m_LocalCoreStartupParameter.iHotkey[i]),
|
|
||||||
InputCommon::WXKeymodToString(SConfig::GetInstance().m_LocalCoreStartupParameter.iHotkeyModifier[i]));
|
|
||||||
|
|
||||||
wxBoxSizer *sHotkey = new wxBoxSizer(wxHORIZONTAL);
|
|
||||||
sHotkey->Add(stHotkeys, 1, wxALIGN_LEFT | wxALL, 2);
|
|
||||||
sHotkey->AddStretchSpacer();
|
|
||||||
sHotkey->Add(m_Button_Hotkeys[i], 0, wxALL, 2);
|
|
||||||
sHotkeys->Add(sHotkey, 0, wxEXPAND | wxALL, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
sHotkeyBox->Add(sHotkeys);
|
|
||||||
|
|
||||||
m_Close = new wxButton(this, ID_CLOSE, _("Close"));
|
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(m_Close, 0, (wxLEFT), 5);
|
||||||
|
|
||||||
wxBoxSizer *sMainSizer = new wxBoxSizer(wxVERTICAL);
|
wxBoxSizer *sMainSizer = new wxBoxSizer(wxVERTICAL);
|
||||||
sMainSizer->Add(sHotkeyBox, 0, wxEXPAND | wxALL, 5);
|
sMainSizer->Add(Notebook, 0, wxEXPAND | wxALL, 5);
|
||||||
sMainSizer->Add(sButtons, 0, wxEXPAND | (wxLEFT | wxRIGHT | wxDOWN), 5);
|
sMainSizer->Add(sButtons, 0, wxEXPAND | (wxLEFT | wxRIGHT | wxDOWN), 5);
|
||||||
SetSizer(sMainSizer);
|
SetSizer(sMainSizer);
|
||||||
Layout();
|
Layout();
|
||||||
|
|
Loading…
Reference in New Issue