forked from dolphin-emu/dolphin
		
	
		
			
	
	
		
			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();
							 | 
						||
| 
								 | 
							
								}
							 |