LilyPad: Add tooltips (#1653)

Adds informational tooltips to several UI options.
This commit is contained in:
FlatOutPS2 2016-11-13 00:52:56 +01:00 committed by Jonathan Li
parent f513ca2a28
commit a3478e02f4
7 changed files with 222 additions and 38 deletions

View File

@ -21,6 +21,7 @@
#include "InputManager.h"
#include "Config.h"
#include "Tooltips.h"
#include "Diagnostics.h"
#include "DeviceEnumerator.h"
#include "KeyboardQueue.h"
@ -484,7 +485,7 @@ void SelChanged(int port, int slot)
}
}
for (i = IDC_SLIDER1; i < ID_DELETE; i++) {
for (i = IDC_SLIDER_SENSITIVITY; i < ID_DELETE; i++) {
hWndTemp = GetDlgItem(hWnd, i);
if (hWndTemp)
ShowWindow(hWndTemp, ffb == 0);
@ -526,11 +527,11 @@ void SelChanged(int port, int slot)
}
}
if (!ffb) {
SetLogSliderVal(hWnd, IDC_SLIDER1, GetDlgItem(hWnd, IDC_AXIS_SENSITIVITY1), sensitivity);
SetLogSliderVal(hWnd, IDC_SLIDER_SENSITIVITY, GetDlgItem(hWnd, IDC_AXIS_SENSITIVITY), sensitivity);
SetLogSliderVal(hWnd, IDC_SLIDER_DEADZONE, GetDlgItem(hWnd, IDC_AXIS_DEADZONE), deadZone);
if (disableFlip)
EnableWindow(GetDlgItem(hWnd, IDC_FLIP1), 0);
EnableWindow(GetDlgItem(hWnd, IDC_FLIP), 0);
EnableWindow(GetDlgItem(hWnd, IDC_TURBO), turbo >= 0);
if (turbo > 0 && turbo < bFound) {
@ -572,8 +573,8 @@ void SelChanged(int port, int slot)
SendMessage(hWndCombo, CB_SELECTSTRING, i, (LPARAM)key);
}
SetDlgItemText(hWnd, IDC_AXIS_DEVICE1, devName);
SetDlgItemText(hWnd, IDC_AXIS_CONTROL1, command);
SetDlgItemText(hWnd, IDC_AXIS_DEVICE, devName);
SetDlgItemText(hWnd, IDC_AXIS_CONTROL, command);
} else {
wchar_t temp2[2000];
wsprintfW(temp2, L"%s / %s", devName, command);
@ -1159,6 +1160,38 @@ void Diagnostics(HWND hWnd)
RefreshEnabledDevicesAndDisplay(0, hWnd, 1);
}
void AddTooltip(UINT id, HWND hWnd)
{
bool hasTooltip;
LPWSTR message = dialog_message(id, &hasTooltip);
if (!hasTooltip)
return;
HWND hWndTooltip = GetDlgItem(hWnd, id);
if (hWndTooltip == NULL)
return;
// TTS_NOPREFIX allows tabs and '&' to be used.
HWND hWndTip = CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, NULL,
TTS_ALWAYSTIP | TTS_NOPREFIX,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
hWnd, NULL, hInst, NULL);
if (hWndTip == NULL)
return;
TOOLINFO toolInfo = {0};
toolInfo.cbSize = sizeof(toolInfo);
toolInfo.hwnd = hWnd;
toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
toolInfo.uId = (UINT_PTR)hWndTooltip;
toolInfo.lpszText = message;
SendMessage(hWndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo);
// 32.767s is the max show time.
SendMessage(hWndTip, TTM_SETDELAYTIME, TTDT_AUTOPOP, 32767);
// Setting a maximum width is necessary for displaying longer messages.
SendMessage(hWndTip, TTM_SETMAXTIPWIDTH, 0, 400);
}
int GetBinding(int port, int slot, int index, Device *&dev, Binding *&b, ForceFeedbackBinding *&ffb)
{
ffb = 0;
@ -1441,11 +1474,22 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, unsigned int msg, WPARAM wParam, LPARAM l
padtype = config.padConfigs[port][slot].type;
hWnds[port][slot][padtype] = hWnd;
SendMessage(hWndList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT);
SetupLogSlider(GetDlgItem(hWnd, IDC_SLIDER1));
SetupLogSlider(GetDlgItem(hWnd, IDC_SLIDER_SENSITIVITY));
SetupLogSlider(GetDlgItem(hWnd, IDC_SLIDER_DEADZONE));
if (port || slot)
EnableWindow(GetDlgItem(hWnd, ID_IGNORE), 0);
AddTooltip(ID_MOUSE, hWnd);
AddTooltip(ID_ANALOG, hWnd);
AddTooltip(ID_IGNORE, hWnd);
AddTooltip(ID_LOCK_ALL_INPUT, hWnd);
AddTooltip(ID_LOCK_DIRECTION, hWnd);
AddTooltip(ID_LOCK_BUTTONS, hWnd);
AddTooltip(IDC_TURBO, hWnd);
AddTooltip(IDC_FLIP, hWnd);
AddTooltip(IDC_SLIDER_DEADZONE, hWnd);
AddTooltip(IDC_SLIDER_SENSITIVITY, hWnd);
Populate(port, slot, padtype);
} break;
case WM_DEVICECHANGE:
@ -1547,7 +1591,7 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, unsigned int msg, WPARAM wParam, LPARAM l
case WM_HSCROLL: {
int id = GetDlgCtrlID((HWND)lParam);
int val = GetLogSliderVal(hWnd, id);
if (id == IDC_SLIDER1) {
if (id == IDC_SLIDER_SENSITIVITY) {
ChangeValue(port, slot, &val, 0, 0);
} else if (id == IDC_SLIDER_DEADZONE) {
ChangeValue(port, slot, 0, 0, &val);
@ -1719,8 +1763,8 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, unsigned int msg, WPARAM wParam, LPARAM l
SendMessage(GetDlgItem(hWnd, IDC_TURBO), BM_SETSTYLE, BS_AUTOCHECKBOX, 0);
int turbo = (IsDlgButtonChecked(hWnd, IDC_TURBO) == BST_CHECKED);
ChangeValue(port, slot, 0, &turbo, 0);
} else if (cmd == IDC_FLIP1) {
int val = GetLogSliderVal(hWnd, IDC_SLIDER1);
} else if (cmd == IDC_FLIP) {
int val = GetLogSliderVal(hWnd, IDC_SLIDER_SENSITIVITY);
ChangeValue(port, slot, &val, 0, 0);
} else if (cmd >= IDC_FF_AXIS1_ENABLED && cmd < IDC_FF_AXIS8_ENABLED + 16) {
int index = (cmd - IDC_FF_AXIS1_ENABLED) / 16;
@ -1791,9 +1835,9 @@ bool ProfilesBindingCheck(unsigned int port, unsigned int slot, unsigned int pad
if (showWarning) {
int msgboxID = MessageBoxA(hWndProp, "Warning! You have selected a pad type that has one or several bindings that conflict with the active pad type of the opposing port or slot(s).\n\n"
"Do you want to keep the bindings of the pad type you are switching to?\n"
"Click ''Yes'' to continue without deleting any binding.\n"
"Click ''No'' to continue and delete any conflicting bindings from the selected pad type.\n"
"Click ''Cancel'' to revert to the previously selected pad type and avoid any further action.\n\n"
"Click \"Yes\" to continue without deleting any binding.\n"
"Click \"No\" to continue and delete any conflicting bindings from the selected pad type.\n"
"Click \"Cancel\" to revert to the previously selected pad type and avoid any further action.\n\n"
"Note: Enable the 'Allow binding multiple PS2 controls to one PC control' option to allow conflicting bindings between opposing ports and slots, and avoid this warning and the possibility of bindings getting deleted.",
"Duplicate Binding Warning", MB_YESNOCANCEL | MB_DEFBUTTON3 | MB_ICONWARNING);
switch (msgboxID) {
@ -2005,6 +2049,15 @@ INT_PTR CALLBACK GeneralDialogProc(HWND hWnd, unsigned int msg, WPARAM wParam, L
CheckDlgButton(hWnd, IDC_CLOSE_HACK1, BST_CHECKED * (config.closeHacks & 1));
CheckDlgButton(hWnd, IDC_CLOSE_HACK2, BST_CHECKED * ((config.closeHacks & 2) >> 1));
AddTooltip(IDC_M_WM, hWnd);
AddTooltip(IDC_M_RAW, hWnd);
AddTooltip(IDC_M_DI, hWnd);
AddTooltip(IDC_MOUSE_UNFOCUS, hWnd);
AddTooltip(IDC_MULTIPLE_BINDING, hWnd);
AddTooltip(IDC_PAD_LIST, hWnd);
AddTooltip(ID_TEST, hWnd);
AddTooltip(IDC_ANALOG_START1, hWnd);
if (config.keyboardApi < 0 || config.keyboardApi > 3)
config.keyboardApi = NO_API;
CheckRadioButton(hWnd, IDC_KB_DISABLE, IDC_KB_RAW, IDC_KB_DISABLE + config.keyboardApi);

View File

@ -118,18 +118,18 @@ BEGIN
PUSHBUTTON "Test",ID_TEST,196,263,59,15
PUSHBUTTON "Back to Controls",ID_CONTROLS,196,299,59,15
GROUPBOX "Configure Binding",ID_SENSITIVITY,195,189,222,70
EDITTEXT IDC_AXIS_DEVICE1,202,202,74,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
EDITTEXT IDC_AXIS_DEVICE,202,202,74,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
COMBOBOX IDC_AXIS_DIRECTION,276,200,70,47,CBS_DROPDOWNLIST | WS_TABSTOP
EDITTEXT IDC_AXIS_CONTROL1,349,202,65,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
EDITTEXT IDC_AXIS_CONTROL,349,202,65,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
LTEXT "Sensitivity",IDC_LABEL_SENSITIVITY,202,218,42,8
CONTROL "Turbo",IDC_TURBO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,228,34,10
CONTROL "",IDC_SLIDER1,"msctls_trackbar32",WS_TABSTOP,240,218,131,17
EDITTEXT IDC_AXIS_SENSITIVITY1,377,216,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "Flip",IDC_FLIP1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,385,227,27,10
CONTROL "",IDC_SLIDER_SENSITIVITY,"msctls_trackbar32",WS_TABSTOP,240,218,131,17
EDITTEXT IDC_AXIS_SENSITIVITY,377,216,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "Flip",IDC_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,385,227,27,10
LTEXT "Dead Zone",IDC_LABEL_DEADZONE,202,243,42,8
CONTROL "",IDC_SLIDER_DEADZONE,"msctls_trackbar32",WS_TABSTOP,240,239,131,17
EDITTEXT IDC_AXIS_DEADZONE,377,242,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
PUSHBUTTON "Lock Input",ID_LOCK,196,263,59,15
PUSHBUTTON "Lock Input",ID_LOCK_ALL_INPUT,196,263,59,15
PUSHBUTTON "Lock Direction",ID_LOCK_DIRECTION,196,281,59,15
PUSHBUTTON "Lock Buttons",ID_LOCK_BUTTONS,196,299,59,15
GROUPBOX "Add Force Feedback Effect",IDC_STATIC,262,263,155,51
@ -186,18 +186,18 @@ BEGIN
PUSHBUTTON "Test",ID_TEST,196,260,59,15
PUSHBUTTON "Back to Controls",ID_CONTROLS,196,296,59,15
GROUPBOX "Configure Binding",ID_SENSITIVITY,195,186,222,70
EDITTEXT IDC_AXIS_DEVICE1,202,199,74,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
EDITTEXT IDC_AXIS_DEVICE,202,199,74,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
COMBOBOX IDC_AXIS_DIRECTION,276,197,70,47,CBS_DROPDOWNLIST | WS_TABSTOP
EDITTEXT IDC_AXIS_CONTROL1,349,199,65,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
EDITTEXT IDC_AXIS_CONTROL,349,199,65,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
LTEXT "Sensitivity",IDC_LABEL_SENSITIVITY,202,215,42,8
CONTROL "Turbo",IDC_TURBO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,225,34,10
CONTROL "",IDC_SLIDER1,"msctls_trackbar32",WS_TABSTOP,240,215,131,17
EDITTEXT IDC_AXIS_SENSITIVITY1,377,213,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "Flip",IDC_FLIP1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,385,224,27,10
CONTROL "",IDC_SLIDER_SENSITIVITY,"msctls_trackbar32",WS_TABSTOP,240,215,131,17
EDITTEXT IDC_AXIS_SENSITIVITY,377,213,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "Flip",IDC_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,385,224,27,10
LTEXT "Dead Zone",IDC_LABEL_DEADZONE,202,240,42,8
CONTROL "",IDC_SLIDER_DEADZONE,"msctls_trackbar32",WS_TABSTOP,240,236,131,17
EDITTEXT IDC_AXIS_DEADZONE,377,239,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
PUSHBUTTON "Lock Input",ID_LOCK,196,260,59,15
PUSHBUTTON "Lock Input",ID_LOCK_ALL_INPUT,196,260,59,15
PUSHBUTTON "Lock Direction",ID_LOCK_DIRECTION,196,278,59,15
PUSHBUTTON "Lock Buttons",ID_LOCK_BUTTONS,196,296,59,15
GROUPBOX "Add Force Feedback Effect",IDC_STATIC,262,260,155,51
@ -254,18 +254,18 @@ BEGIN
PUSHBUTTON "Test",ID_TEST,196,260,59,15
PUSHBUTTON "Back to Controls",ID_CONTROLS,196,296,59,15
GROUPBOX "Configure Binding",ID_SENSITIVITY,195,186,222,70
EDITTEXT IDC_AXIS_DEVICE1,202,199,74,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
EDITTEXT IDC_AXIS_DEVICE,202,199,74,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
COMBOBOX IDC_AXIS_DIRECTION,276,197,70,47,CBS_DROPDOWNLIST | WS_TABSTOP
EDITTEXT IDC_AXIS_CONTROL1,349,199,65,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
EDITTEXT IDC_AXIS_CONTROL,349,199,65,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
LTEXT "Sensitivity",IDC_LABEL_SENSITIVITY,202,215,42,8
CONTROL "Turbo",IDC_TURBO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,225,34,10
CONTROL "",IDC_SLIDER1,"msctls_trackbar32",WS_TABSTOP,240,215,131,17
EDITTEXT IDC_AXIS_SENSITIVITY1,377,213,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "Flip",IDC_FLIP1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,385,224,27,10
CONTROL "",IDC_SLIDER_SENSITIVITY,"msctls_trackbar32",WS_TABSTOP,240,215,131,17
EDITTEXT IDC_AXIS_SENSITIVITY,377,213,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
CONTROL "Flip",IDC_FLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,385,224,27,10
LTEXT "Dead Zone",IDC_LABEL_DEADZONE,202,240,42,8
CONTROL "",IDC_SLIDER_DEADZONE,"msctls_trackbar32",WS_TABSTOP,240,236,131,17
EDITTEXT IDC_AXIS_DEADZONE,377,239,33,12,ES_RIGHT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_RTLREADING
PUSHBUTTON "Lock Input",ID_LOCK,196,260,59,15
PUSHBUTTON "Lock Input",ID_LOCK_ALL_INPUT,196,260,59,15
PUSHBUTTON "Lock Direction",ID_LOCK_DIRECTION,196,278,59,15
PUSHBUTTON "Lock Buttons",ID_LOCK_BUTTONS,196,296,59,15
GROUPBOX "Add Force Feedback Effect",IDC_STATIC,262,260,155,51

View File

@ -68,6 +68,7 @@
<ClCompile Include="HidDevice.cpp" />
<ClCompile Include="KeyboardQueue.cpp" />
<ClCompile Include="RawInput.cpp" />
<ClCompile Include="Tooltips.cpp" />
<ClCompile Include="WindowsKeyboard.cpp" />
<ClCompile Include="WindowsMessaging.cpp" />
<ClCompile Include="WindowsMouse.cpp" />
@ -87,6 +88,7 @@
<ClInclude Include="HidDevice.h" />
<ClInclude Include="KeyboardQueue.h" />
<ClInclude Include="RawInput.h" />
<ClInclude Include="Tooltips.h" />
<ClInclude Include="usb.h" />
<ClInclude Include="WindowsKeyboard.h" />
<ClInclude Include="WindowsMessaging.h" />

View File

@ -72,6 +72,9 @@
<ClCompile Include="XInputEnum.cpp">
<Filter>InputAPIs</Filter>
</ClCompile>
<ClCompile Include="Tooltips.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Config.h">
@ -128,6 +131,9 @@
<ClInclude Include="XInputEnum.h">
<Filter>InputAPIs</Filter>
</ClInclude>
<ClInclude Include="Tooltips.h">
<Filter>Source Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="frog.ico">

View File

@ -0,0 +1,100 @@
/* LilyPad - Pad plugin for PS2 Emulator
* Copyright (C) 2016 PCSX2 Dev Team/ChickenLiver
*
* PCSX2 is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free
* Software Found- ation, either version 3 of the License, or (at your option)
* any later version.
*
* PCSX2 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 for more
* details.
*
* You should have received a copy of the GNU General Public License along
* with PCSX2. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Global.h"
#include "resource.h"
LPWSTR dialog_message(int ID, bool *updateText)
{
if (updateText)
*updateText = true;
switch (ID) {
// General tab
case IDC_M_WM:
case IDC_M_RAW:
case IDC_M_DI:
return L"Enables mouse inputs to be used as pad controls.\n\n"
L"The mouse needs to be in focus to be used for playing. By default this is not the case as the \"Start without mouse focus\" checkbox is enabled. "
L"Either disable this checkbox or enable/disable the mouse while playing by assigning a key to the \"Mouse\" button on the Pad tabs.\n\n"
L"Note 1: By default PCSX2 uses a double-click by the left mouse button to toggle fullscreen mode, this makes the left mouse button unusable as an input."
L"To disable this option in PCSX2 go to Config > Emulation Settings > GS Window tab, and disable the \"Double-click toggles fullscreen mode\" checkbox.\n\n"
L"Note 2: This does not enable the mouse to function as an in-game mouse in PS2 games that support a USB mouse or lightgun."
L"This requires a USB plugin, while LilyPad is a PAD plugin(PAD means it emulates devices that are to be plugged into the PlayStation controller port that connects the DualShock 2 controller).";
case IDC_MOUSE_UNFOCUS:
return L"Starts the emulation without the mouse being in focus by the application.\n\n"
L"Without mouse focus, the mouse can still be used outside of the emulation.\nWith the mouse in focus it can only be used as an input for the emulator.";
case IDC_MULTIPLE_BINDING:
return L"Allows binding multiple PS2 controls to one PC control, and binding conflicting controls on opposing ports and/or slots.\n\n"
L"Also enables swapping different kinds of pad types(for example, between DS2 and Guitar) when right-clicking in the pad list.";
case IDC_PAD_LIST:
return L"Left-click on one of the available pads to enable the pad specific options on the right."
L"These options include being able to select the pad type(DS2, Guitar, etc.) and enabling automatic analog mode for PS1 emulation.\n\n"
L"Right-click to show a pop-up menu that allows for swapping all the settings and bindings, or just the bindings of individual pad types,"
L"between the selected pad and one of other active pads, and clearing all the settings and bindings from the selected pad or just the bindings from a selected pad type.\n\n"
L"Note: To allow swapping different kinds of pad types(like DS2 to Guitar), the \"Allow binding multiple PS2 Controls...\" option needs to be enabled as well.";
case IDC_ANALOG_START1:
return L"Automatically switch a pad from digital mode to analog mode whenever a pad is set to digital mode, if the pad's mode is not locked."
L"This removes the need for manually enabling analog mode with a press of the analog button for games that support, but do not automatically enable analog mode.\n\n"
L"Note 1: Analog mode enables the analog sticks to function on a DualShock controller, while in digital mode it behaves as an original PlayStation controller.\n\n"
L"Note 2: If analog mode is enabled in a game that does not support it, a game might not recognise a controller is connected.";
case ID_TEST:
return L"Displays a continuously updated list of the state of all objects on the selected device.\n\n"
L"Use this option to check if all the inputs on a controller function properly.";
// Pad tabs
case ID_MOUSE:
return L"Bind a key that releases or captures the mouse.\n\n"
L"Pressing the assigned button when the mouse is in focus, it releases the mouse from use in-game and makes the cursor visible so it can move/resize the emulator window.\n\n"
L"Alt-tabbing to another application also makes the cursor visible, but focusing the emulation window hides it again.\n\n"
L"Pressing the button when the mouse is out of focus and visible, it captures the mouse so that it can be used as a controller again.\n\n"
L"Note 1: Though the binding appears on the page of a specific pad, pressing the button affects all mice.\n\n"
L"Note 2: By default PCSX2 uses a double-click by the left mouse button to toggle fullscreen mode, this makes the left mouse button unusable as an input."
L"To disable this option in PCSX2 go to Config > Emulation Settings > GS Window tab, and disable the \"Double-click toggles fullscreen mode\" checkbox.";
case ID_ANALOG:
return L"Bind a keys that switches the pad from digital mode to analog mode and vice versa.\n\n"
L"This option is useful when analog mode is enabled in a game that does not support it, as this causes the game to not recognise any input or to not even detect a controller.\n\n"
L"This option can also be used to enable analog mode in games that support, but do not automatically enable analog mode.\n\n"
L"Note: Analog mode enables the analog sticks to function on a DualShock controller, while in digital mode it behaves as an original PlayStation controller.\n\n";
case ID_IGNORE:
return L"Blocks the assigned keyboard button and does not pass it on to PCSX2. It currently cannot block the windows key (for unknown reasons).\n\n"
L"Ignored keys are listed with pad 1's bindings. You do not have to configure ignored keys again when you change the keyboard input mode.";
case ID_LOCK_ALL_INPUT:
return L"Locks the current state of the pad. Any further input is handled normally, but the initial pad state is the locked state instead of a state with no buttons pressed. "
L"Pressing it again releases the old pad state, if the old pad state had any keys pressed. Otherwise, it's released automatically.";
case ID_LOCK_DIRECTION:
return L"Locks the current state of the d-pad and analog sticks. Pressing this when all input is locked unlocks only the pad and sticks."
L"Pressing it again will lock them again, keeping the buttons locked.";
case ID_LOCK_BUTTONS:
return L"Locks the current state of the buttons. Pressing this when all input is locked unlocks only the buttons. "
L"Pressing it again will lock them again, keeping the d-pad and analog sticks locked.";
case IDC_TURBO:
return L"Automatically presses/releases the input every other time the button is polled.";
case IDC_FLIP:
return L"Inverts a button or axis, making down up and up down.";
case IDC_SLIDER_DEADZONE:
return L"Decreases or increases the range of an input where no input is recognised.\n\n"
L"Increasing the dead zone requires the input to be pressed harder or moved more before it is applied, decreasing it makes it recognise a softer press or a shorter movement.";
case IDC_SLIDER_SENSITIVITY:
return L"Sets how hard an axis or button is pressed.\n\n"
L"Note 1: What the default sensitivity value of \"1.00\" means depends on the device itself. The default is high enough that relative axes (which are primarily used by mice) are generally either considered fully up or down."
L"For absolute axes (and force feedback devices), which are used by most game devices, a value of 1.0 should map the device's extreme values to the extreme values of a stick/pad.\n\n"
L"Note 2: Setting the sensitivity of PC button bindings only really has an effect for PS2 analog sticks or when playing a game with full DS2 pressure sensitivity support.";
default:
if (updateText)
*updateText = false;
return L"";
}
}

View File

@ -0,0 +1,25 @@
/* LilyPad - Pad plugin for PS2 Emulator
* Copyright (C) 2016 PCSX2 Dev Team
*
* PCSX2 is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free
* Software Found- ation, either version 3 of the License, or (at your option)
* any later version.
*
* PCSX2 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 for more
* details.
*
* You should have received a copy of the GNU General Public License along
* with PCSX2. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef TOOLTIPS_H
#define TOOLTIPS_H
#include "Global.h"
LPWSTR dialog_message(int ID, bool *updateText = false);
#endif

View File

@ -37,22 +37,20 @@
#define IDC_MULTITAP2 1120
#define IDC_BACKGROUND 1121
#define IDC_MULTIPLE_BINDING 1122
#define IDC_DISABLE_SCREENSAVER2 1123
#define IDC_FORCE_HIDE 1124
#define IDC_GH2_HACK 1125
#define IDC_FORCEFEEDBACK_HACK1 1126
#define IDC_TURBO_KEY_HACK 1128
#define IDC_SAVE_STATE_TITLE 1129
#define IDC_PAD_LIST 1130
#define IDC_COMBO1 1131
#define IDC_PAD_TYPE 1132
#define IDC_SLIDER1 0x1000
#define IDC_FLIP1 0x1001
#define IDC_SLIDER_SENSITIVITY 0x1000
#define IDC_FLIP 0x1001
#define IDC_AXIS_DIRECTION 0x1002
#define IDC_AXIS_CONTROL1 0x1003
#define IDC_AXIS_SENSITIVITY1 0x1004
#define IDC_AXIS_CONTROL 0x1003
#define IDC_AXIS_SENSITIVITY 0x1004
#define IDC_TURBO 0x1005
#define IDC_AXIS_DEVICE1 0x1006
#define IDC_AXIS_DEVICE 0x1006
#define ID_SENSITIVITY 0x1007
#define IDC_DPAD 0x1008
#define IDC_LSTICK 0x1009
@ -64,7 +62,7 @@
#define IDC_LABEL_SENSITIVITY 0x1020
#define IDC_LABEL_DEADZONE 0x1021
#define ID_LOCK_BUTTONS 0x10FC
#define ID_LOCK 0x10FD
#define ID_LOCK_ALL_INPUT 0x10FD
#define ID_LOCK_DIRECTION 0x10FE
#define ID_MOUSE 0x10FF
#define ID_SELECT 0x1100