dolphin/Source/Core/DolphinWX/TASInputDlg.h

118 lines
3.2 KiB
C
Raw Normal View History

// Copyright 2013 Dolphin Emulator Project
// Licensed under GPLv2
// Refer to the license.txt file included.
#pragma once
2014-02-22 15:36:30 -07:00
#include <wx/bitmap.h>
#include <wx/dcmemory.h>
#include <wx/dialog.h>
#include <wx/event.h>
#include <wx/gdicmn.h>
2014-09-14 21:42:32 -06:00
#include <wx/sizer.h>
2014-02-22 15:36:30 -07:00
#include <wx/string.h>
#include <wx/toplevel.h>
#include <wx/translation.h>
#include <wx/windowid.h>
#include "Common/CommonTypes.h"
2014-09-14 21:42:32 -06:00
#include "Core/HW/WiimoteEmu/WiimoteEmu.h"
#include "InputCommon/GCPadStatus.h"
2014-02-22 15:36:30 -07:00
class wxCheckBox;
class wxSlider;
class wxStaticBitmap;
class wxTextCtrl;
class wxWindow;
class TASInputDlg : public wxDialog
{
public:
TASInputDlg(wxWindow* parent,
2014-09-14 21:42:32 -06:00
wxWindowID id = 1,
const wxString& title = _("TAS Input"),
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxDEFAULT_DIALOG_STYLE | wxSTAY_ON_TOP);
void OnCloseWindow(wxCloseEvent& event);
void UpdateFromSliders(wxCommandEvent& event);
void UpdateFromText(wxCommandEvent& event);
void OnMouseDownL(wxMouseEvent& event);
2012-01-21 17:39:17 -07:00
void OnMouseUpR(wxMouseEvent& event);
2014-09-14 21:42:32 -06:00
void OnRightClickSlider(wxMouseEvent& event);
void ResetValues();
2014-09-14 21:42:32 -06:00
void GetValues(GCPadStatus* PadStatus);
void GetValues(u8* data, WiimoteEmu::ReportFeatures rptf);
2012-05-26 00:09:50 -06:00
void SetTurbo(wxMouseEvent& event);
void SetTurboFalse(wxMouseEvent& event);
2014-09-14 21:42:32 -06:00
void SetTurboState(wxCheckBox* CheckBox, bool* TurboOn);
2012-05-26 00:09:50 -06:00
void ButtonTurbo();
void GetKeyBoardInput(GCPadStatus* PadStatus);
2014-09-14 21:42:32 -06:00
void GetKeyBoardInput(u8* data, WiimoteEmu::ReportFeatures rptf);
bool TextBoxHasFocus();
void SetLandRTriggers();
bool TASHasFocus();
2014-09-14 21:42:32 -06:00
void CreateGCLayout();
void CreateWiiLayout();
2012-01-21 17:39:17 -07:00
wxBitmap CreateStickBitmap(int x, int y);
2014-09-14 21:42:32 -06:00
void SetWiiButtons(wm_core* butt);
void GetIRData(u8* const data, u8 mode, bool use_accel);
2012-01-21 17:39:17 -07:00
private:
2014-09-14 21:42:32 -06:00
const int ID_C_STICK = 1001;
const int ID_MAIN_STICK = 1002;
int eleID = 1003;
struct Control
{
wxTextCtrl* Text;
wxSlider* Slider;
int value = -1;
int Text_ID;
int Slider_ID;
u32 range;
u32 defaultValue = 128;
bool SetByKeyboard = false;
};
2014-09-14 21:42:32 -06:00
struct Button
{
2014-09-14 21:42:32 -06:00
wxCheckBox* Checkbox;
bool SetByKeyboard = false;
bool TurboOn = false;
int ID;
};
2014-09-14 21:42:32 -06:00
struct Stick
{
wxStaticBitmap* bitmap;
Control xCont;
Control yCont;
};
void SetStickValue(bool* ActivatedByKeyboard, int* AmountPressed, wxTextCtrl* Textbox, int CurrentValue, int center = 128);
void SetButtonValue(Button* button, bool CurrentState);
void SetSliderValue(Control* control, int CurrentValue, int defaultValue = 128);
Stick CreateStick(int id_stick);
wxStaticBoxSizer* CreateStickLayout(Stick* tempStick, std::string title);
Button CreateButton(const std::string& name);
Control CreateControl(long style, int width, int height, u32 range = 255);
Control lCont, rCont, xCont, yCont, zCont;
Button A, B, X, Y, Z, L, R, C, START, PLUS, MINUS, ONE, TWO, HOME, dpad_up, dpad_down, dpad_left, dpad_right;
Stick MainStick, CStick;
Button* Buttons[14];
Control* Controls[10];
static const int GCPadButtonsBitmask[12];
static const int WiiButtonsBitmask[13];
bool hasLayout = false;
bool isWii = false;
wxGridSizer* const buttons_dpad = new wxGridSizer(3);
DECLARE_EVENT_TABLE();
};