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:
LPFaint99 2009-02-03 06:21:22 +00:00
parent d8f71e0574
commit f999ae94df
6 changed files with 20 additions and 5 deletions

View File

@ -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

View File

@ -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;

View File

@ -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(

View File

@ -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,

View File

@ -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();

View File

@ -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