forked from dolphin-emu/dolphin
		
	
		
			
	
	
		
			238 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			238 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								//////////////////////////////////////////////////////////////////////////////////////////
							 | 
						|||
| 
								 | 
							
								// Project description
							 | 
						|||
| 
								 | 
							
								// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
							 | 
						|||
| 
								 | 
							
								// Name: nJoy 
							 | 
						|||
| 
								 | 
							
								// Description: A Dolphin Compatible Input Plugin
							 | 
						|||
| 
								 | 
							
								//
							 | 
						|||
| 
								 | 
							
								// Author: Falcon4ever (nJoy@falcon4ever.com)
							 | 
						|||
| 
								 | 
							
								// Site: www.multigesture.net
							 | 
						|||
| 
								 | 
							
								// Copyright (C) 2003-2008 Dolphin Project.
							 | 
						|||
| 
								 | 
							
								//
							 | 
						|||
| 
								 | 
							
								//////////////////////////////////////////////////////////////////////////////////////////
							 | 
						|||
| 
								 | 
							
								//
							 | 
						|||
| 
								 | 
							
								// Licensetype: GNU General Public License (GPL)
							 | 
						|||
| 
								 | 
							
								//
							 | 
						|||
| 
								 | 
							
								// 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.
							 | 
						|||
| 
								 | 
							
								//
							 | 
						|||
| 
								 | 
							
								// 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 SVN repository and contact information can be found at
							 | 
						|||
| 
								 | 
							
								// http://code.google.com/p/dolphin-emu/
							 | 
						|||
| 
								 | 
							
								//
							 | 
						|||
| 
								 | 
							
								//////////////////////////////////////////////////////////////////////////////////////////
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#ifndef __CONFIGBOX_h__
							 | 
						|||
| 
								 | 
							
								#define __CONFIGBOX_h__
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#ifndef WX_PRECOMP
							 | 
						|||
| 
								 | 
							
									#include <wx/wx.h>
							 | 
						|||
| 
								 | 
							
									#include <wx/dialog.h>
							 | 
						|||
| 
								 | 
							
								#else
							 | 
						|||
| 
								 | 
							
									#include <wx/wxprec.h>
							 | 
						|||
| 
								 | 
							
								#endif
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#include <wx/button.h>
							 | 
						|||
| 
								 | 
							
								#include <wx/stattext.h>
							 | 
						|||
| 
								 | 
							
								#include <wx/statbox.h>
							 | 
						|||
| 
								 | 
							
								#include <wx/notebook.h>
							 | 
						|||
| 
								 | 
							
								#include <wx/panel.h>
							 | 
						|||
| 
								 | 
							
								#include <wx/statbmp.h>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#undef ConfigBox_STYLE
							 | 
						|||
| 
								 | 
							
								#define ConfigBox_STYLE wxCAPTION | wxSYSTEM_MENU | wxDIALOG_NO_PARENT | wxCLOSE_BOX
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								class ConfigBox : public wxDialog
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									private:
							 | 
						|||
| 
								 | 
							
										DECLARE_EVENT_TABLE();
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									public:
							 | 
						|||
| 
								 | 
							
										ConfigBox(wxWindow *parent, wxWindowID id = 1, const wxString &title = wxT("Configure: nJoy Input Plugin"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = ConfigBox_STYLE);
							 | 
						|||
| 
								 | 
							
										virtual ~ConfigBox();
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									private:
							 | 
						|||
| 
								 | 
							
										wxButton *m_OK;
							 | 
						|||
| 
								 | 
							
										wxButton *m_Cancel;
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
										wxPanel *m_Controller[4];		
							 | 
						|||
| 
								 | 
							
										wxNotebook *m_Notebook;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										wxComboBox *m_Joyname[4];
							 | 
						|||
| 
								 | 
							
										wxComboBox *m_Controltype[4];
							 | 
						|||
| 
								 | 
							
										wxComboBox *m_Deadzone[4];
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										wxCheckBox *m_Joyattach[4];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										wxStaticBox *m_gJoyname[4];
							 | 
						|||
| 
								 | 
							
										wxStaticBox *m_gExtrasettings[4];
							 | 
						|||
| 
								 | 
							
										wxStaticBox *m_gControllertype[4];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyShoulderL[4];
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyShoulderR[4];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyShoulderL[4];
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyShoulderR[4];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyButtonA[4];
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyButtonB[4];
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyButtonX[4];
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyButtonY[4];
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyButtonZ[4];
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyButtonStart[4];
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyButtonHalfpress[4];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyButtonA[4];
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyButtonB[4];
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyButtonX[4];
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyButtonY[4];
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyButtonZ[4];
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyButtonStart[4];
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyButtonHalfpress[4];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyAnalogMainX[4];
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyAnalogMainY[4];
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyAnalogSubX[4];
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyAnalogSubY[4];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyAnalogMainX[4];
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyAnalogMainY[4];
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyAnalogSubX[4];
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyAnalogSubY[4];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyDpadUp[4];
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyDpadDown[4];
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyDpadLeft[4];
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_JoyDpadRight[4];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyDpadUp[4];
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyDpadDown[4];
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyDpadLeft[4];
							 | 
						|||
| 
								 | 
							
										wxButton *m_bJoyDpadRight[4];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										wxStaticText *m_textMainX;
							 | 
						|||
| 
								 | 
							
										wxStaticText *m_textMainY;
							 | 
						|||
| 
								 | 
							
										wxStaticText *m_textDpadUp;
							 | 
						|||
| 
								 | 
							
										wxStaticText *m_textDpadDown;
							 | 
						|||
| 
								 | 
							
										wxStaticText *m_textDpadLeft;
							 | 
						|||
| 
								 | 
							
										wxStaticText *m_textDpadRight;
							 | 
						|||
| 
								 | 
							
										wxStaticText *m_textDeadzone;
							 | 
						|||
| 
								 | 
							
										wxStaticText *m_textHalfpress;
							 | 
						|||
| 
								 | 
							
										wxStaticText *m_textSubX;
							 | 
						|||
| 
								 | 
							
										wxStaticText *m_textSubY;
							 | 
						|||
| 
								 | 
							
										wxStaticText *m_textWebsite;
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										wxTextCtrl *m_PlaceholderBMP[4];
							 | 
						|||
| 
								 | 
							
										wxStaticBitmap *m_controllerimage[4];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										int notebookpage;		
							 | 
						|||
| 
								 | 
							
									private:
							 | 
						|||
| 
								 | 
							
										enum
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											ID_OK = 1000,
							 | 
						|||
| 
								 | 
							
											ID_CANCEL,
							 | 
						|||
| 
								 | 
							
											ID_NOTEBOOK,
							 | 
						|||
| 
								 | 
							
											ID_CONTROLLERPAGE1,
							 | 
						|||
| 
								 | 
							
											ID_CONTROLLERPAGE2,
							 | 
						|||
| 
								 | 
							
											ID_CONTROLLERPAGE3,
							 | 
						|||
| 
								 | 
							
											ID_CONTROLLERPAGE4,
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											IDC_JOYNAME,
							 | 
						|||
| 
								 | 
							
											IDC_CONTROLTYPE,
							 | 
						|||
| 
								 | 
							
											IDC_DEADZONE,
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											IDC_JOYATTACH,
							 | 
						|||
| 
								 | 
							
											IDG_JOYSTICK,
							 | 
						|||
| 
								 | 
							
											IDG_EXTRASETTINGS,
							 | 
						|||
| 
								 | 
							
											IDG_CONTROLLERTYPE,
							 | 
						|||
| 
								 | 
							
											ID_CONTROLLERPICTURE,
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											ID_SHOULDER_L = 2000,
							 | 
						|||
| 
								 | 
							
											ID_SHOULDER_R,
							 | 
						|||
| 
								 | 
							
											
							 | 
						|||
| 
								 | 
							
											ID_BUTTON_A,
							 | 
						|||
| 
								 | 
							
											ID_BUTTON_B,
							 | 
						|||
| 
								 | 
							
											ID_BUTTON_X,
							 | 
						|||
| 
								 | 
							
											ID_BUTTON_Y,
							 | 
						|||
| 
								 | 
							
											ID_BUTTON_Z,
							 | 
						|||
| 
								 | 
							
											ID_BUTTONSTART,
							 | 
						|||
| 
								 | 
							
											ID_BUTTONHALFPRESS,
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											ID_ANALOG_MAIN_X,
							 | 
						|||
| 
								 | 
							
											ID_ANALOG_MAIN_Y,
							 | 
						|||
| 
								 | 
							
											ID_ANALOG_SUB_X,
							 | 
						|||
| 
								 | 
							
											ID_ANALOG_SUB_Y,
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											ID_DPAD_UP,
							 | 
						|||
| 
								 | 
							
											ID_DPAD_DOWN,
							 | 
						|||
| 
								 | 
							
											ID_DPAD_LEFT,
							 | 
						|||
| 
								 | 
							
											ID_DPAD_RIGHT,
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											IDB_SHOULDER_L = 3000,
							 | 
						|||
| 
								 | 
							
											IDB_SHOULDER_R,
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											IDB_BUTTON_A,
							 | 
						|||
| 
								 | 
							
											IDB_BUTTON_B,
							 | 
						|||
| 
								 | 
							
											IDB_BUTTON_X,
							 | 
						|||
| 
								 | 
							
											IDB_BUTTON_Y,
							 | 
						|||
| 
								 | 
							
											IDB_BUTTON_Z,
							 | 
						|||
| 
								 | 
							
											IDB_BUTTONSTART,
							 | 
						|||
| 
								 | 
							
											IDB_BUTTONHALFPRESS,
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											IDB_ANALOG_MAIN_X,
							 | 
						|||
| 
								 | 
							
											IDB_ANALOG_MAIN_Y,
							 | 
						|||
| 
								 | 
							
											IDB_ANALOG_SUB_X,
							 | 
						|||
| 
								 | 
							
											IDB_ANALOG_SUB_Y,
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											IDB_DPAD_UP,
							 | 
						|||
| 
								 | 
							
											IDB_DPAD_DOWN,
							 | 
						|||
| 
								 | 
							
											IDB_DPAD_LEFT,
							 | 
						|||
| 
								 | 
							
											IDB_DPAD_RIGHT,
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											IDT_ANALOG_MAIN_X = 4000,
							 | 
						|||
| 
								 | 
							
											IDT_ANALOG_MAIN_Y,
							 | 
						|||
| 
								 | 
							
											IDT_DPAD_UP,
							 | 
						|||
| 
								 | 
							
											IDT_DPAD_DOWN,
							 | 
						|||
| 
								 | 
							
											IDT_DPAD_LEFT,
							 | 
						|||
| 
								 | 
							
											IDT_DPAD_RIGHT,
							 | 
						|||
| 
								 | 
							
											IDT_DEADZONE,
							 | 
						|||
| 
								 | 
							
											IDT_BUTTONHALFPRESS,
							 | 
						|||
| 
								 | 
							
											IDT_ANALOG_SUB_X,
							 | 
						|||
| 
								 | 
							
											IDT_ANALOG_SUB_Y,
							 | 
						|||
| 
								 | 
							
											IDT_WEBSITE,
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											ID_DUMMY_VALUE_ //don't remove this value unless you have other enum values
							 | 
						|||
| 
								 | 
							
										};
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									private:
							 | 
						|||
| 
								 | 
							
										void OKClick(wxCommandEvent& event);
							 | 
						|||
| 
								 | 
							
										void CancelClick(wxCommandEvent& event);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										void ChangeJoystick(wxCommandEvent& event);
							 | 
						|||
| 
								 | 
							
										void ChangeControllertype(wxCommandEvent& event);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										void OnClose(wxCloseEvent& event);
							 | 
						|||
| 
								 | 
							
										void CreateGUIControls();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										void SetControllerAll(int controller);
							 | 
						|||
| 
								 | 
							
										void UpdateVisibleItems(int controller);
							 | 
						|||
| 
								 | 
							
										void GetControllerAll(int controller);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										void NotebookPageChanged(wxNotebookEvent& event);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										void GetButtons(wxCommandEvent& event);
							 | 
						|||
| 
								 | 
							
										void GetHats(int ID);
							 | 
						|||
| 
								 | 
							
										void GetAxis(wxCommandEvent& event);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										void SetButtonText(int id, char text[128]);
							 | 
						|||
| 
								 | 
							
								};
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#endif
							 |