84 lines
3.3 KiB
C++
84 lines
3.3 KiB
C++
|
// Copyright 2016 Dolphin Emulator Project
|
||
|
// Licensed under GPLv2+
|
||
|
// Refer to the license.txt file included.
|
||
|
|
||
|
#include "DolphinWX/Input/GCKeyboardInputConfigDiag.h"
|
||
|
|
||
|
#include "Core/HW/GCKeyboard.h"
|
||
|
#include "Core/HW/GCKeyboardEmu.h"
|
||
|
|
||
|
enum class KeyboardGroup;
|
||
|
|
||
|
GCKeyboardInputConfigDialog::GCKeyboardInputConfigDialog(wxWindow* const parent,
|
||
|
InputConfig& config, const wxString& name,
|
||
|
const int port_num)
|
||
|
: InputConfigDialog(parent, config, name, port_num)
|
||
|
{
|
||
|
const int space5 = FromDIP(5);
|
||
|
|
||
|
auto* const device_chooser = CreateDeviceChooserGroupBox();
|
||
|
auto* const reset_sizer = CreaterResetGroupBox(wxHORIZONTAL);
|
||
|
auto* const profile_chooser = CreateProfileChooserGroupBox();
|
||
|
|
||
|
auto* const group_box_keys0x =
|
||
|
new ControlGroupBox(Keyboard::GetGroup(port_num, KeyboardGroup::Kb0x), this, this);
|
||
|
auto* const group_box_keys1x =
|
||
|
new ControlGroupBox(Keyboard::GetGroup(port_num, KeyboardGroup::Kb1x), this, this);
|
||
|
auto* const group_box_keys2x =
|
||
|
new ControlGroupBox(Keyboard::GetGroup(port_num, KeyboardGroup::Kb2x), this, this);
|
||
|
auto* const group_box_keys3x =
|
||
|
new ControlGroupBox(Keyboard::GetGroup(port_num, KeyboardGroup::Kb3x), this, this);
|
||
|
auto* const group_box_keys4x =
|
||
|
new ControlGroupBox(Keyboard::GetGroup(port_num, KeyboardGroup::Kb4x), this, this);
|
||
|
auto* const group_box_keys5x =
|
||
|
new ControlGroupBox(Keyboard::GetGroup(port_num, KeyboardGroup::Kb5x), this, this);
|
||
|
auto* const group_box_options =
|
||
|
new ControlGroupBox(Keyboard::GetGroup(port_num, KeyboardGroup::Options), this, this);
|
||
|
|
||
|
auto* const key5x_options_sizer = new wxBoxSizer(wxVERTICAL);
|
||
|
key5x_options_sizer->Add(group_box_keys5x);
|
||
|
key5x_options_sizer->AddSpacer(space5);
|
||
|
key5x_options_sizer->Add(group_box_options);
|
||
|
|
||
|
auto* const controls_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||
|
controls_sizer->AddSpacer(space5);
|
||
|
controls_sizer->Add(group_box_keys0x, 0, wxEXPAND | wxTOP, space5);
|
||
|
controls_sizer->AddSpacer(space5);
|
||
|
controls_sizer->Add(group_box_keys1x, 0, wxEXPAND | wxTOP, space5);
|
||
|
controls_sizer->AddSpacer(space5);
|
||
|
controls_sizer->Add(group_box_keys2x, 0, wxEXPAND | wxTOP, space5);
|
||
|
controls_sizer->AddSpacer(space5);
|
||
|
controls_sizer->Add(group_box_keys3x, 0, wxEXPAND | wxTOP, space5);
|
||
|
controls_sizer->AddSpacer(space5);
|
||
|
controls_sizer->Add(group_box_keys4x, 0, wxEXPAND | wxTOP, space5);
|
||
|
controls_sizer->AddSpacer(space5);
|
||
|
controls_sizer->Add(key5x_options_sizer, 0, wxEXPAND | wxTOP, space5);
|
||
|
controls_sizer->AddSpacer(space5);
|
||
|
|
||
|
auto* const dio = new wxBoxSizer(wxHORIZONTAL);
|
||
|
dio->AddSpacer(space5);
|
||
|
dio->Add(device_chooser, 3, wxEXPAND);
|
||
|
dio->AddSpacer(space5);
|
||
|
dio->Add(reset_sizer, 1, wxEXPAND);
|
||
|
dio->AddSpacer(space5);
|
||
|
dio->Add(profile_chooser, 3, wxEXPAND);
|
||
|
dio->AddSpacer(space5);
|
||
|
|
||
|
auto* const szr_main = new wxBoxSizer(wxVERTICAL);
|
||
|
szr_main->AddSpacer(space5);
|
||
|
szr_main->Add(dio);
|
||
|
szr_main->AddSpacer(space5);
|
||
|
szr_main->Add(controls_sizer, 1, wxEXPAND | wxLEFT | wxRIGHT, space5);
|
||
|
szr_main->AddSpacer(space5);
|
||
|
szr_main->Add(CreateButtonSizer(wxCLOSE | wxNO_DEFAULT), 0, wxEXPAND | wxLEFT | wxRIGHT, space5);
|
||
|
szr_main->AddSpacer(space5);
|
||
|
|
||
|
SetSizerAndFit(szr_main);
|
||
|
Center();
|
||
|
|
||
|
UpdateDeviceComboBox();
|
||
|
UpdateProfileComboBox();
|
||
|
|
||
|
UpdateGUI();
|
||
|
}
|