45 lines
870 B
C++

// Copyright 2017 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "DolphinQt/QtUtils/ElidedButton.h"
class ControlReference;
class MappingWidget;
class MappingWindow;
class QEvent;
class QMouseEvent;
class MappingButton : public ElidedButton
{
Q_OBJECT
public:
enum class ControlType
{
NormalInput,
ModifierInput,
Output,
};
MappingButton(MappingWidget* widget, ControlReference* ref, ControlType type);
ControlReference* GetControlReference();
ControlType GetControlType() const;
signals:
void ConfigChanged();
void QueueNextButtonMapping();
private:
void Clear();
void AdvancedPressed();
void Clicked();
void mouseReleaseEvent(QMouseEvent* event) override;
MappingWindow* const m_mapping_window;
ControlReference* const m_reference;
const ControlType m_control_type;
};