mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Add a simple "autoconfigure" facility for input devices, that lets the user choose if several are connected. Can be expanded in the future to provide custom default mapppings for various devices as long as we manage to identify them. Ideally, key mappings should be unique per device but they aren't yet.
62 lines
1.9 KiB
C++
62 lines
1.9 KiB
C++
// Copyright (c) 2013- PPSSPP Project.
|
|
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, version 2.0 or later versions.
|
|
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License 2.0 for more details.
|
|
|
|
// A copy of the GPL 2.0 should have been included with the program.
|
|
// If not, see http://www.gnu.org/licenses/
|
|
|
|
// Official git repository and contact information can be found at
|
|
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
|
|
|
|
#pragma once
|
|
|
|
#include "base/functional.h"
|
|
#include "ui/view.h"
|
|
#include "ui/ui_screen.h"
|
|
|
|
#include "UI/MiscScreens.h"
|
|
|
|
class ControlMappingScreen : public UIDialogScreenWithBackground {
|
|
public:
|
|
ControlMappingScreen() {}
|
|
protected:
|
|
virtual void CreateViews();
|
|
virtual void sendMessage(const char *message, const char *value);
|
|
|
|
private:
|
|
UI::EventReturn OnDefaultMapping(UI::EventParams ¶ms);
|
|
UI::EventReturn OnClearMapping(UI::EventParams ¶ms);
|
|
UI::EventReturn OnAutoConfigure(UI::EventParams ¶ms);
|
|
|
|
virtual void dialogFinished(const Screen *dialog, DialogResult result) override;
|
|
};
|
|
|
|
class KeyMappingNewKeyDialog : public PopupScreen {
|
|
public:
|
|
explicit KeyMappingNewKeyDialog(int btn, bool replace, std::function<void(KeyDef)> callback)
|
|
: PopupScreen("Map Key", "Cancel", ""), callback_(callback) {
|
|
pspBtn_ = btn;
|
|
}
|
|
|
|
void key(const KeyInput &key);
|
|
void axis(const AxisInput &axis);
|
|
|
|
protected:
|
|
void CreatePopupContents(UI::ViewGroup *parent);
|
|
|
|
virtual bool FillVertical() const { return false; }
|
|
virtual bool ShowButtons() const { return true; }
|
|
virtual void OnCompleted(DialogResult result) {}
|
|
|
|
private:
|
|
int pspBtn_;
|
|
bool replace_;
|
|
std::function<void(KeyDef)> callback_;
|
|
};
|