summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Config/GamecubeControllersWidget.h
blob: f4d1b69f609fb1f10e0a826c5b346dac1148af54 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Copyright 2021 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#include <QWidget>

#include <array>

class QComboBox;
class QHBoxLayout;
class QGridLayout;
class QGroupBox;
class QPushButton;

namespace Core
{
enum class State;
}

class GamecubeControllersWidget final : public QWidget
{
  Q_OBJECT
public:
  explicit GamecubeControllersWidget(QWidget* parent);

private:
  void LoadSettings(Core::State state);
  void SaveSettings();

  void OnGCTypeChanged(size_t index);
  void OnGCPadConfigure(size_t index);

  void CreateLayout();
  void ConnectWidgets();

  // Gamecube
  QGroupBox* m_gc_box;
  QGridLayout* m_gc_layout;
  std::array<QComboBox*, 4> m_gc_controller_boxes;
  std::array<QPushButton*, 4> m_gc_buttons;
  std::array<QHBoxLayout*, 4> m_gc_groups;
};