diff options
author | Anon <makotech222@users.noreply.github.com> | 2016-07-29 14:45:49 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2016-07-29 14:45:49 +0200 |
commit | e91327c86a863b9419fd3695b2400a52336ec3b5 (patch) | |
tree | ec914c0dbd050f8063fa5dac0204f3ff0d5b035b /src/citra_qt/configure_input.h | |
parent | Merge pull request #1950 from JamePeng/fix-apt-0x0055004-and-0x00560000 (diff) | |
download | yuzu-e91327c86a863b9419fd3695b2400a52336ec3b5.tar yuzu-e91327c86a863b9419fd3695b2400a52336ec3b5.tar.gz yuzu-e91327c86a863b9419fd3695b2400a52336ec3b5.tar.bz2 yuzu-e91327c86a863b9419fd3695b2400a52336ec3b5.tar.lz yuzu-e91327c86a863b9419fd3695b2400a52336ec3b5.tar.xz yuzu-e91327c86a863b9419fd3695b2400a52336ec3b5.tar.zst yuzu-e91327c86a863b9419fd3695b2400a52336ec3b5.zip |
Diffstat (limited to 'src/citra_qt/configure_input.h')
-rw-r--r-- | src/citra_qt/configure_input.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/citra_qt/configure_input.h b/src/citra_qt/configure_input.h new file mode 100644 index 000000000..fe8ea5580 --- /dev/null +++ b/src/citra_qt/configure_input.h @@ -0,0 +1,63 @@ +// Copyright 2016 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <QWidget> +#include <QKeyEvent> + +#include "citra_qt/config.h" +#include "core/settings.h" +#include "ui_configure_input.h" + +class QPushButton; +class QString; +class QTimer; + +namespace Ui { + class ConfigureInput; +} + +class ConfigureInput : public QWidget { + Q_OBJECT + +public: + explicit ConfigureInput(QWidget* parent = nullptr); + + /// Save all button configurations to settings file + void applyConfiguration(); + +private: + std::unique_ptr<Ui::ConfigureInput> ui; + std::map<Settings::NativeInput::Values, QPushButton*> input_mapping; + int key_pressed; + QPushButton* changing_button = nullptr; ///< button currently waiting for key press. + QString previous_mapping; + QTimer* timer; + + /// Load configuration settings into button text + void setConfiguration(); + + /// Check all inputs for duplicate keys. Clears out any other button with the same value as this button's new value. + void removeDuplicates(const QString& newValue); + + /// Handle key press event for input tab when a button is 'waiting'. + void keyPressEvent(QKeyEvent* event) override; + + /// Convert key ASCII value to its' letter/name + QString getKeyName(int key_code) const; + + /// Convert letter/name of key to its ASCII value. + Qt::Key getKeyValue(const QString& text) const; + + /// Set button text to name of key pressed. + void setKey(); + +private slots: + /// Event handler for all button released() event. + void handleClick(); + + /// Restore all buttons to their default values. + void restoreDefaults(); +}; |