extern int input_get_default_mouse (struct uae_input_device *uid, int num, int port, int af, bool gp, bool wheel, bool joymouseswap);
extern int input_get_default_lightpen (struct uae_input_device *uid, int num, int port, int af, bool gp, bool joymouseswap, int submode);
-extern int input_get_default_joystick (struct uae_input_device *uid, int num, int port, int af, int mode, bool gp, bool joymouseswap);
-extern int input_get_default_joystick_analog (struct uae_input_device *uid, int num, int port, int af, bool gp, bool joymouseswap);
+extern int input_get_default_joystick (struct uae_input_device *uid, int num, int port, int af, int mode, bool gp, bool joymouseswap, bool default_osk);
+extern int input_get_default_joystick_analog (struct uae_input_device *uid, int num, int port, int af, bool gp, bool joymouseswap, bool default_osk);
extern int input_get_default_keyboard (int num);
#define DEFEVENT(A, B, C, D, E, F) INPUTEVENT_ ## A,
bool input_autoswitch;
bool input_autoswitchleftright;
bool input_advancedmultiinput;
+ bool input_default_onscreen_keyboard;
struct uae_input_device joystick_settings[MAX_INPUT_SETTINGS][MAX_INPUT_DEVICES];
struct uae_input_device mouse_settings[MAX_INPUT_SETTINGS][MAX_INPUT_DEVICES];
struct uae_input_device keyboard_settings[MAX_INPUT_SETTINGS][MAX_INPUT_DEVICES];
cfgfile_dwrite(f, _T("input.devicematchflags"), _T("%d"), p->input_device_match_mask);
cfgfile_dwrite_bool(f, _T("input.autoswitchleftright"), p->input_autoswitchleftright);
cfgfile_dwrite_bool(f, _T("input.advancedmultiinput"), p->input_advancedmultiinput);
+ cfgfile_dwrite_bool(f, _T("input.default_osk"), p->input_default_onscreen_keyboard);
for (id = 0; id < MAX_INPUT_SETTINGS; id++) {
TCHAR tmp[MAX_DPATH];
if (id < GAMEPORT_INPUT_SETTINGS) {
pr->input_autoswitchleftright = !_tcsicmp(value, _T("true")) || _tstol(value) != 0;
if (!strcasecmp(p, _T("advancedmultiinput")))
pr->input_advancedmultiinput = !_tcsicmp(value, _T("true")) || _tstol(value) != 0;
+ if (!strcasecmp(p, _T("default_osk")))
+ pr->input_default_onscreen_keyboard = !_tcsicmp(value, _T("true")) || _tstol(value) != 0;
if (!strcasecmp(p, _T("keyboard_type"))) {
cfgfile_strval(p, value, p, &pr->input_keyboard_type, kbtypes, 0);
keyboard_default = keyboard_default_table[pr->input_keyboard_type];
case JSEM_MODE_JOYSTICK:
case JSEM_MODE_GAMEPAD:
case JSEM_MODE_JOYSTICK_CD32:
- input_get_default_joystick(mice, joy, i, af, mode, !gameports, true);
+ input_get_default_joystick(mice, joy, i, af, mode, !gameports, true, prefs->input_default_onscreen_keyboard);
joymodes[i][j] = mode;
break;
case JSEM_MODE_JOYSTICK_ANALOG:
- input_get_default_joystick_analog(mice, joy, i, af, !gameports, true);
+ input_get_default_joystick_analog(mice, joy, i, af, !gameports, true, prefs->input_default_onscreen_keyboard);
joymodes[i][j] = JSEM_MODE_JOYSTICK_ANALOG;
break;
}
{
bool iscd32 = mode == JSEM_MODE_JOYSTICK_CD32 || (mode == JSEM_MODE_DEFAULT && prefs->cs_cd32cd);
int jmode = iscd32 ? JSEM_MODE_JOYSTICK_CD32 : mode;
- input_get_default_joystick(joysticks, joy, i, af, jmode, !gameports, false);
+ input_get_default_joystick(joysticks, joy, i, af, jmode, !gameports, false, prefs->input_default_onscreen_keyboard);
if (iscd32)
joymodes[i][j] = JSEM_MODE_JOYSTICK_CD32;
else if (mode == JSEM_MODE_GAMEPAD)
break;
}
case JSEM_MODE_JOYSTICK_ANALOG:
- input_get_default_joystick_analog(joysticks, joy, i, af, !gameports, false);
+ input_get_default_joystick_analog(joysticks, joy, i, af, !gameports, false, prefs->input_default_onscreen_keyboard);
joymodes[i][j] = JSEM_MODE_JOYSTICK_ANALOG;
break;
case JSEM_MODE_MOUSE:
break;
case JSEM_MODE_MOUSE_CDTV:
joymodes[i][j] = JSEM_MODE_MOUSE_CDTV;
- input_get_default_joystick(joysticks, joy, i, af, mode, !gameports, false);
+ input_get_default_joystick(joysticks, joy, i, af, mode, !gameports, false, prefs->input_default_onscreen_keyboard);
break;
}
int af = jd->autofire;
joy = jsem_isjoy(i, j, prefs);
if (joy >= 0) {
- input_get_default_joystick(joysticks, joy, i, af, 0, !gameports, false);
+ input_get_default_joystick(joysticks, joy, i, af, 0, !gameports, false, prefs->input_default_onscreen_keyboard);
_tcsncpy(jd->idc.name, idev[IDTYPE_JOYSTICK].get_friendlyname (joy), MAX_JPORT_NAME - 1);
_tcsncpy(jd->idc.configname, idev[IDTYPE_JOYSTICK].get_uniquename (joy), MAX_JPORT_CONFIG - 1);
jd->idc.name[MAX_JPORT_NAME - 1] = 0;
p->input_autoswitchleftright = false;
p->input_device_match_mask = -1;
keyboard_default = keyboard_default_table[p->input_keyboard_type];
+ p->input_default_onscreen_keyboard = true;
inputdevice_default_kb_all (p);
}
return 0;
}
-int input_get_default_joystick (struct uae_input_device *uid, int i, int port, int af, int mode, bool gp, bool joymouseswap)
+int input_get_default_joystick (struct uae_input_device *uid, int i, int port, int af, int mode, bool gp, bool joymouseswap, bool default_osk)
{
int j;
struct didata *did = NULL;
if (isrealbutton (did, 2))
setid (uid, i, ID_BUTTON_OFFSET + 2, 0, port, port ? INPUTEVENT_JOY2_3RD_BUTTON : INPUTEVENT_JOY1_3RD_BUTTON, gp);
}
- if (isrealbutton(did, 3) && isemptyslot(uid, i, ID_BUTTON_OFFSET + 3, 0, port)) {
+ if (isrealbutton(did, 3) && isemptyslot(uid, i, ID_BUTTON_OFFSET + 3, 0, port) && default_osk) {
setid(uid, i, ID_BUTTON_OFFSET + 3, 0, port, INPUTEVENT_SPC_OSK, gp);
}
}
return 0;
}
-int input_get_default_joystick_analog (struct uae_input_device *uid, int i, int port, int af, bool gp, bool joymouseswap)
+int input_get_default_joystick_analog (struct uae_input_device *uid, int i, int port, int af, bool gp, bool joymouseswap, bool default_osk)
{
int j;
struct didata *did;
setid(uid, i, ID_BUTTON_OFFSET + 2, 0, port, port ? INPUTEVENT_JOY2_UP : INPUTEVENT_JOY1_UP, gp);
if (isrealbutton(did, 3))
setid(uid, i, ID_BUTTON_OFFSET + 3, 0, port, port ? INPUTEVENT_JOY2_DOWN : INPUTEVENT_JOY1_DOWN, gp);
- if (isrealbutton(did, 4) && isemptyslot(uid, i, ID_BUTTON_OFFSET + 4, 0, port))
+ if (isrealbutton(did, 4) && isemptyslot(uid, i, ID_BUTTON_OFFSET + 4, 0, port) && default_osk)
setid(uid, i, ID_BUTTON_OFFSET + 4, 0, port, INPUTEVENT_SPC_OSK, gp);
for (j = 2; j < MAX_MAPPINGS - 1; j++) {
#define IDS_SOUND_CLONED71 441
#define IDS_SOUND_71 442
#define IDS_SOUND_FILTER_ON_FIXEDONLY 443
+#define IDS_MISCLISTITEMS5 444
+#define IDS_MISCLISTITEMS6 445
#define IDS_QS_MODELS 1000
#define IDS_QS_MODEL_A500 1001
#define IDS_QS_MODEL_A500P 1002
IDS_WSTYLE_EXTENDED "Extended"
IDS_MISCLISTITEMS1 "Untrap = middle button\nShow GUI on startup\nUse CTRL-F11 to quit\nDon't show taskbar button\nDon't show notification icon\n"
IDS_MISCLISTITEMS2 "Main window always on top\nGUI window always on top\nDisable screensaver\nSynchronize clock\nOne second reboot pause\nFaster RTG\nClipboard sharing\nAllow native code\n"
- IDS_MISCLISTITEMS3 "Native on-screen display\nRTG on-screen display\nCreate winuaelog.txt log\nLog illegal memory accesses\nBlank unused displays\nStart mouse uncaptured\nStart minimized\nMinimize when focus is lost\nBlack frame insertion\nMaster floppy write protection\nMaster harddrive write protection\nHide all UAE autoconfig boards\nRight Control = Right Windows key\n"
+ IDS_MISCLISTITEMS3 "Native on-screen display\nRTG on-screen display\nCreate winuaelog.txt log\nLog illegal memory accesses\nBlank unused displays\nStart mouse uncaptured\n"
IDS_JOYMODE_WHEELMOUSE "Wheel Mouse"
IDS_NUMSG_KS68030PLUS "The selected system ROM requires a 68030 or higher CPU."
IDS_SELECTTAPE "Select a Tape directory or archive file..."
STRINGTABLE
BEGIN
- IDS_MISCLISTITEMS4 "Windows shutdown/logoff notification\nWarn when attempting to close window\nPower led dims when audio filter is disabled\nAutomatically capture mouse when window is activated\nDebug memory space\nForce hard reset if CPU halted\nA600/A1200/A4000 IDE scsi.device disable\nWarp mode reset\nGUI gamepad control\n"
+ IDS_MISCLISTITEMS4 "Start minimized\nMinimize when focus is lost\nBlack frame insertion\nMaster floppy write protection\nMaster harddrive write protection\n"
IDS_SHUTDOWN_NOTIFICATION "Emulation session active"
IDS_QUIT_WARNING "Are you sure you want to quit WinUAE?"
IDS_UNMAPPED_ADDRESS "Floating\nAll zeros\nAll ones\n"
IDS_SOUND_CLONED71 "Cloned stereo (7.1)"
IDS_SOUND_71 "7.1 channels"
IDS_SOUND_FILTER_ON_FIXEDONLY "Always on (Fixed only)"
+ IDS_MISCLISTITEMS5 "Hide all UAE autoconfig boards\nRight Control = Right Windows key\nWindows shutdown/logoff notification\nWarn when attempting to close window\nPower led dims when audio filter is disabled\nAutomatically capture mouse when window is activated\nDebug memory space\n"
+ IDS_MISCLISTITEMS6 "Force hard reset if CPU halted\nA600/A1200/A4000 IDE scsi.device disable\nWarp mode reset\nGUI gamepad control\nDefault on screen keyboard (Pad button 4)\n"
END
#endif // English (United Kingdom) resources
{ 0, 0, _T("A600/A1200/A4000 IDE scsi.device disable"), &workprefs.scsidevicedisable },
{ 0, 1, _T("Warp mode reset"), &workprefs.turbo_boot },
{ 0, 1, _T("GUI game pad control"), &workprefs.win32_gui_control },
+ { 0, 1, _T("Default on screen keyboard (Pad button 4)"), &workprefs.input_default_onscreen_keyboard },
{ 0, 0, NULL }
};
} else if (lv_type == LV_MISC1) {
- int itemids[] = { IDS_MISCLISTITEMS1, IDS_MISCLISTITEMS2, IDS_MISCLISTITEMS3, IDS_MISCLISTITEMS4 , -1 };
+ int itemids[] = { IDS_MISCLISTITEMS1, IDS_MISCLISTITEMS2, IDS_MISCLISTITEMS3, IDS_MISCLISTITEMS4, IDS_MISCLISTITEMS5, IDS_MISCLISTITEMS6, -1 };
int itemoffset = 0;
int itemcnt = 0;
listview_column_width[0] = MulDiv(150, dpi, 72);