Make checking for focus optional for njoy input.
So if one wants, on one monitor play Dolphin, and on the other use the keyboard for something else git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2082 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
d8f71e0574
commit
f999ae94df
|
@ -164,6 +164,7 @@ void Config::Save(int Slot)
|
||||||
|
|
||||||
file.Set(SectionName.c_str(), "Diagonal", PadMapping[i].SDiagonal);
|
file.Set(SectionName.c_str(), "Diagonal", PadMapping[i].SDiagonal);
|
||||||
file.Set(SectionName.c_str(), "SquareToCircle", PadMapping[i].bSquareToCircle);
|
file.Set(SectionName.c_str(), "SquareToCircle", PadMapping[i].bSquareToCircle);
|
||||||
|
file.Set(SectionName.c_str(), "CheckForFocus", bCheckFocus);
|
||||||
// ======================================
|
// ======================================
|
||||||
|
|
||||||
// Debugging
|
// Debugging
|
||||||
|
@ -246,6 +247,7 @@ void Config::Load(bool ChangePad, bool ChangeSaveByID)
|
||||||
|
|
||||||
file.Get(SectionName.c_str(), "Diagonal", &PadMapping[i].SDiagonal, "100%");
|
file.Get(SectionName.c_str(), "Diagonal", &PadMapping[i].SDiagonal, "100%");
|
||||||
file.Get(SectionName.c_str(), "SquareToCircle", &Tmp, false); PadMapping[i].bSquareToCircle = Tmp;
|
file.Get(SectionName.c_str(), "SquareToCircle", &Tmp, false); PadMapping[i].bSquareToCircle = Tmp;
|
||||||
|
file.Get(SectionName.c_str(), "CheckForFocus", &bCheckFocus, true);
|
||||||
// =============================
|
// =============================
|
||||||
|
|
||||||
// Debugging
|
// Debugging
|
||||||
|
|
|
@ -28,6 +28,7 @@ struct Config
|
||||||
// General
|
// General
|
||||||
bool bShowAdvanced; // Only allow one of these
|
bool bShowAdvanced; // Only allow one of these
|
||||||
bool bSaveByID;
|
bool bSaveByID;
|
||||||
|
bool bCheckFocus;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern Config g_Config;
|
extern Config g_Config;
|
||||||
|
|
|
@ -74,6 +74,7 @@ BEGIN_EVENT_TABLE(ConfigBox,wxDialog)
|
||||||
// Other settings
|
// Other settings
|
||||||
EVT_CHECKBOX(IDC_SAVEBYID, ConfigBox::ChangeSettings)
|
EVT_CHECKBOX(IDC_SAVEBYID, ConfigBox::ChangeSettings)
|
||||||
EVT_CHECKBOX(IDC_SHOWADVANCED, ConfigBox::ChangeSettings)
|
EVT_CHECKBOX(IDC_SHOWADVANCED, ConfigBox::ChangeSettings)
|
||||||
|
EVT_CHECKBOX(IDC_CHECKFOCUS, ConfigBox::ChangeSettings)
|
||||||
EVT_COMBOBOX(IDCB_MAINSTICK_DIAGONAL, ConfigBox::ChangeSettings)
|
EVT_COMBOBOX(IDCB_MAINSTICK_DIAGONAL, ConfigBox::ChangeSettings)
|
||||||
EVT_COMBOBOX(IDC_CONTROLTYPE, ConfigBox::ChangeSettings)
|
EVT_COMBOBOX(IDC_CONTROLTYPE, ConfigBox::ChangeSettings)
|
||||||
EVT_COMBOBOX(IDC_TRIGGERTYPE, ConfigBox::ChangeSettings)
|
EVT_COMBOBOX(IDC_TRIGGERTYPE, ConfigBox::ChangeSettings)
|
||||||
|
@ -415,7 +416,13 @@ void ConfigBox::ChangeSettings( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
SizeWindow();
|
SizeWindow();
|
||||||
break;
|
break;
|
||||||
|
case IDC_CHECKFOCUS:
|
||||||
|
bCheckFocus = m_CBCheckFocus[notebookpage]->IsChecked();
|
||||||
|
for(int i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
m_CBCheckFocus[i]->SetValue(bCheckFocus);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case IDC_CONTROLTYPE:
|
case IDC_CONTROLTYPE:
|
||||||
case IDC_TRIGGERTYPE:
|
case IDC_TRIGGERTYPE:
|
||||||
//UpdateGUI(notebookpage);
|
//UpdateGUI(notebookpage);
|
||||||
|
@ -481,6 +488,7 @@ void ConfigBox::UpdateGUI(int _notebookpage)
|
||||||
// General settings
|
// General settings
|
||||||
m_CBSaveByID[_notebookpage]->SetValue(g_Config.bSaveByID);
|
m_CBSaveByID[_notebookpage]->SetValue(g_Config.bSaveByID);
|
||||||
m_CBShowAdvanced[_notebookpage]->SetValue(g_Config.bShowAdvanced);
|
m_CBShowAdvanced[_notebookpage]->SetValue(g_Config.bShowAdvanced);
|
||||||
|
m_CBCheckFocus[_notebookpage]->SetValue(g_Config.bCheckFocus);
|
||||||
|
|
||||||
LogMsg("Update: %i\n", g_Config.bSaveByID);
|
LogMsg("Update: %i\n", g_Config.bSaveByID);
|
||||||
|
|
||||||
|
@ -796,10 +804,12 @@ void ConfigBox::CreateGUIControls()
|
||||||
m_gGenSettingsID[i] = new wxStaticBoxSizer( wxVERTICAL, m_Controller[i], wxT("Settings") );
|
m_gGenSettingsID[i] = new wxStaticBoxSizer( wxVERTICAL, m_Controller[i], wxT("Settings") );
|
||||||
m_CBSaveByID[i] = new wxCheckBox(m_Controller[i], IDC_SAVEBYID, wxT("Save by ID"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
m_CBSaveByID[i] = new wxCheckBox(m_Controller[i], IDC_SAVEBYID, wxT("Save by ID"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
m_CBShowAdvanced[i] = new wxCheckBox(m_Controller[i], IDC_SHOWADVANCED, wxT("Show advanced settings"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
m_CBShowAdvanced[i] = new wxCheckBox(m_Controller[i], IDC_SHOWADVANCED, wxT("Show advanced settings"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
|
m_CBCheckFocus[i] = new wxCheckBox(m_Controller[i], IDC_CHECKFOCUS, wxT("Only accept input when Dolphin is in focus"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
|
|
||||||
// Populate general settings 3
|
// Populate general settings 3
|
||||||
m_gGenSettingsID[i]->Add(m_CBSaveByID[i], 0, wxEXPAND | wxALL, 3);
|
m_gGenSettingsID[i]->Add(m_CBSaveByID[i], 0, wxEXPAND | wxALL, 3);
|
||||||
m_gGenSettingsID[i]->Add(m_CBShowAdvanced[i], 0, wxEXPAND | wxALL, 3);
|
m_gGenSettingsID[i]->Add(m_CBShowAdvanced[i], 0, wxEXPAND | wxALL, 3);
|
||||||
|
m_gGenSettingsID[i]->Add(m_CBCheckFocus[i], 0, wxEXPAND | wxALL, 3);
|
||||||
|
|
||||||
// Create tooltips
|
// Create tooltips
|
||||||
m_ControlType[i]->SetToolTip(wxT(
|
m_ControlType[i]->SetToolTip(wxT(
|
||||||
|
|
|
@ -112,7 +112,7 @@ class ConfigBox : public wxDialog
|
||||||
|
|
||||||
wxStaticBoxSizer *m_gGenSettingsID[4];
|
wxStaticBoxSizer *m_gGenSettingsID[4];
|
||||||
wxGridBagSizer * m_gGBGenSettings[4];
|
wxGridBagSizer * m_gGBGenSettings[4];
|
||||||
wxCheckBox *m_CBSaveByID[4], *m_CBShowAdvanced[4];
|
wxCheckBox *m_CBSaveByID[4], *m_CBShowAdvanced[4], *m_CBCheckFocus[4];
|
||||||
wxStaticText *m_TSControltype[4], *m_TSTriggerType[4];
|
wxStaticText *m_TSControltype[4], *m_TSTriggerType[4];
|
||||||
|
|
||||||
wxStaticBoxSizer *m_gStatusIn[4], *m_gStatusInSettings[4]; // Advanced settings
|
wxStaticBoxSizer *m_gStatusIn[4], *m_gStatusInSettings[4]; // Advanced settings
|
||||||
|
@ -210,7 +210,7 @@ class ConfigBox : public wxDialog
|
||||||
|
|
||||||
IDG_CONTROLLERTYPE, IDC_CONTROLTYPE, IDC_TRIGGERTYPE, // Controller type
|
IDG_CONTROLLERTYPE, IDC_CONTROLTYPE, IDC_TRIGGERTYPE, // Controller type
|
||||||
|
|
||||||
IDC_SAVEBYID, IDC_SHOWADVANCED, // Settings
|
IDC_SAVEBYID, IDC_SHOWADVANCED, IDC_CHECKFOCUS, // Settings
|
||||||
|
|
||||||
ID_INSTATUS1, ID_INSTATUS2, ID_INSTATUS3, ID_INSTATUS4, // Advanced status
|
ID_INSTATUS1, ID_INSTATUS2, ID_INSTATUS3, ID_INSTATUS4, // Advanced status
|
||||||
ID_STATUSBMP1, ID_STATUSBMP2, ID_STATUSBMP3, ID_STATUSBMP4,
|
ID_STATUSBMP1, ID_STATUSBMP2, ID_STATUSBMP3, ID_STATUSBMP4,
|
||||||
|
|
|
@ -89,6 +89,7 @@ CONTROLLER_STATE PadState[4];
|
||||||
CONTROLLER_MAPPING PadMapping[4];
|
CONTROLLER_MAPPING PadMapping[4];
|
||||||
bool emulator_running = false;
|
bool emulator_running = false;
|
||||||
int NumPads = 0, NumGoodPads = 0;
|
int NumPads = 0, NumGoodPads = 0;
|
||||||
|
bool bCheckFocus = true;
|
||||||
HWND m_hWnd; // Handle to window
|
HWND m_hWnd; // Handle to window
|
||||||
SPADInitialize *g_PADInitialize = NULL;
|
SPADInitialize *g_PADInitialize = NULL;
|
||||||
|
|
||||||
|
@ -400,7 +401,7 @@ void Shutdown()
|
||||||
void PAD_Input(u16 _Key, u8 _UpDown)
|
void PAD_Input(u16 _Key, u8 _UpDown)
|
||||||
{
|
{
|
||||||
// Check that Dolphin is in focus, otherwise don't update the pad status
|
// Check that Dolphin is in focus, otherwise don't update the pad status
|
||||||
if (!IsFocus()) return;
|
if (bCheckFocus && !IsFocus()) return;
|
||||||
|
|
||||||
// Check if the keys are interesting, and then update it
|
// Check if the keys are interesting, and then update it
|
||||||
for(int i = 0; i < 4; i++)
|
for(int i = 0; i < 4; i++)
|
||||||
|
@ -784,7 +785,7 @@ void ReadButton(int controller, int button)
|
||||||
void GetJoyState(int controller)
|
void GetJoyState(int controller)
|
||||||
{
|
{
|
||||||
// Check that Dolphin is in focus, otherwise don't update the pad status
|
// Check that Dolphin is in focus, otherwise don't update the pad status
|
||||||
if (!IsFocus()) return;
|
if (bCheckFocus && !IsFocus()) return;
|
||||||
|
|
||||||
// Update the gamepad status
|
// Update the gamepad status
|
||||||
SDL_JoystickUpdate();
|
SDL_JoystickUpdate();
|
||||||
|
|
|
@ -232,6 +232,7 @@ extern std::vector<u8> Keys;
|
||||||
extern CONTROLLER_MAPPING PadMapping[4];
|
extern CONTROLLER_MAPPING PadMapping[4];
|
||||||
extern HWND m_hWnd; // Handle to window
|
extern HWND m_hWnd; // Handle to window
|
||||||
extern int NumPads, NumGoodPads; // Number of goods pads
|
extern int NumPads, NumGoodPads; // Number of goods pads
|
||||||
|
extern bool bCheckFocus;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue