2017-12-04 15:49:40 +01:00
|
|
|
#ifdef USE_SDL1
|
|
|
|
#include <guichan.hpp>
|
|
|
|
#include <SDL/SDL_ttf.h>
|
|
|
|
#include <guichan/sdl.hpp>
|
|
|
|
#include "sdltruetypefont.hpp"
|
|
|
|
#elif USE_SDL2
|
2016-12-10 11:40:41 +01:00
|
|
|
#include <guisan.hpp>
|
2017-09-27 00:15:50 +02:00
|
|
|
#include <guisan/sdl/sdltruetypefont.hpp>
|
2017-12-04 15:49:40 +01:00
|
|
|
#endif
|
2015-05-13 18:47:23 +00:00
|
|
|
#include "SelectorEntry.hpp"
|
|
|
|
#include "UaeRadioButton.hpp"
|
|
|
|
#include "UaeDropDown.hpp"
|
|
|
|
|
|
|
|
#include "sysconfig.h"
|
|
|
|
#include "sysdeps.h"
|
2017-09-27 00:15:50 +02:00
|
|
|
#include "config.h"
|
2015-05-13 18:47:23 +00:00
|
|
|
#include "gui_handling.h"
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
2017-01-29 12:03:00 +01:00
|
|
|
string activeWidget;
|
|
|
|
string leftWidget;
|
|
|
|
string rightWidget;
|
|
|
|
string upWidget;
|
|
|
|
string downWidget;
|
2015-05-13 18:47:23 +00:00
|
|
|
} NavigationMap;
|
|
|
|
|
|
|
|
|
2016-09-01 13:53:43 +02:00
|
|
|
static NavigationMap navMap[] =
|
2015-05-13 18:47:23 +00:00
|
|
|
{
|
2017-12-26 19:15:42 +01:00
|
|
|
// active move left move right move up move down
|
|
|
|
// main_window
|
|
|
|
{ "About", "", "", "Reset", "Paths" },
|
|
|
|
{ "Paths", "SystemROMs", "SystemROMs", "About", "Quickstart" },
|
|
|
|
{ "Quickstart", "qsNTSC", "AModel", "Paths", "Configurations" },
|
|
|
|
{ "Configurations", "ConfigList", "ConfigList", "Quickstart", "CPU and FPU" },
|
|
|
|
{ "CPU and FPU", "7 Mhz", "68000", "Configurations", "Chipset" },
|
|
|
|
{ "Chipset", "Fast copper", "OCS", "CPU and FPU", "ROM" },
|
|
|
|
{ "ROM", "MainROM", "cboMainROM", "Chipset", "RAM" },
|
|
|
|
{ "RAM", "Chipmem", "Chipmem", "ROM", "Floppy drives" },
|
|
|
|
{ "Floppy drives", "cmdSel0", "DF0:", "RAM", "Hard drives/CD" },
|
|
|
|
{ "Hard drives/CD", "cmdCreateHDF", "cmdAddDir", "Floppy drives", "Display" },
|
|
|
|
{ "Display", "sldWidth", "sldWidth", "Hard drives/CD", "Sound" },
|
|
|
|
{ "Sound", "sndDisable", "sndDisable", "Display", "Input" },
|
|
|
|
{ "Input", "cboPort0mode", "cboPort0", "Sound", "Custom controls" },
|
|
|
|
{ "Custom controls", "Right Trigger", "0: Mouse", "Input", "Miscellaneous" },
|
|
|
|
{ "Miscellaneous", "StatusLine", "StatusLine", "Custom controls", "Savestates" },
|
2017-11-29 00:54:20 +01:00
|
|
|
#ifdef ANDROIDSDL
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "Savestates", "State0", "State0", "Miscellaneous", "OnScreen" },
|
|
|
|
{ "OnScreen", "OnScrButton3", "OnScrCtrl", "Savestates", "Reset" },
|
|
|
|
{ "Reset", "Start", "Quit", "OnScreen", "Paths" },
|
|
|
|
{ "Quit", "Reset", "Help", "OnScreen", "Paths" },
|
|
|
|
{ "Help", "Quit", "Start", "OnScreen", "Paths" },
|
|
|
|
{ "Start", "Help", "Reset", "OnScreen", "Paths" },
|
2017-11-29 00:54:20 +01:00
|
|
|
#else
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "Savestates", "State0", "State0", "Miscellaneous", "Reset" },
|
|
|
|
{ "Reset", "Start", "Quit", "Savestates", "Paths" },
|
|
|
|
{ "Quit", "Reset", "Help", "Savestates", "Paths" },
|
|
|
|
{ "Help", "Quit", "Start", "Savestates", "Paths" },
|
|
|
|
{ "Start", "Help", "Reset", "Savestates", "Paths" },
|
2017-11-29 00:54:20 +01:00
|
|
|
#endif
|
2015-05-13 18:47:23 +00:00
|
|
|
|
2017-09-27 00:15:50 +02:00
|
|
|
// PanelPaths
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "SystemROMs", "Paths", "Paths", "RescanROMs", "ConfigPath" },
|
|
|
|
{ "ConfigPath", "Paths", "Paths", "SystemROMs", "ControllersPath" },
|
|
|
|
{ "ControllersPath","Paths", "Paths", "ConfigPath", "RetroArchFile" },
|
|
|
|
{ "RetroArchFile", "Paths", "Paths", "ControllersPath","RescanROMs" },
|
|
|
|
{ "RescanROMs", "Paths", "Paths", "RetroArchFile", "SystemROMs" },
|
2017-09-27 00:15:50 +02:00
|
|
|
|
|
|
|
// active move left move right move up move down
|
|
|
|
// PanelQuickstart
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "AModel", "Quickstart", "qsNTSC", "qsMode", "AConfig" },
|
|
|
|
{ "qsNTSC", "AModel", "Quickstart", "qsMode", "AConfig" },
|
|
|
|
{ "AConfig", "Quickstart", "Quickstart", "AModel", "qscmdSel0" },
|
|
|
|
{ "qsDF0", "Quickstart", "qsWP0", "AConfig", "qscboDisk0" },
|
|
|
|
{ "qsWP0", "qsDF0", "qscmdEject0", "AConfig", "qscboDisk0" },
|
2017-09-27 00:15:50 +02:00
|
|
|
// { "qsInfo0", "Quickstart", "", "", "" },
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "qscmdEject0", "qsWP0", "qscmdSel0", "AConfig", "qscboDisk0" },
|
|
|
|
{ "qscmdSel0", "qscmdEject0", "Quickstart", "AConfig", "qscboDisk0" },
|
|
|
|
{ "qscboDisk0", "Quickstart", "Quickstart", "qscmdSel0", "qscmdSel1" },
|
|
|
|
{ "qsDF1", "Quickstart", "qsWP1", "qscboDisk0", "qscboDisk1" },
|
|
|
|
{ "qsWP1", "qsDF1", "qscmdEject1", "qscboDisk0", "qscboDisk1" },
|
2017-09-27 00:15:50 +02:00
|
|
|
// { "qsInfo1", "Quickstart", "", "", "" },
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "qscmdEject1", "qsWP1", "qscmdSel1", "qscboDisk0", "qscboDisk1" },
|
|
|
|
{ "qscmdSel1", "qscmdEject1", "Quickstart", "qscboDisk0", "qscboDisk1" },
|
|
|
|
{ "qscboDisk1", "Quickstart", "Quickstart", "qsDF1", "qsCDSelect" },
|
|
|
|
{ "qsCD drive", "Quickstart", "qscdEject", "qscboDisk1", "qscboCD" },
|
|
|
|
{ "qscdEject", "qsCD drive", "qsCDSelect", "qscboDisk1", "qscboCD" },
|
|
|
|
{ "qsCDSelect", "qscdEject", "Quickstart", "qscboDisk1", "qscboCD" },
|
|
|
|
{ "qscboCD", "Quickstart", "Quickstart", "qsCDSelect", "qsMode" },
|
|
|
|
{ "qsMode", "Quickstart", "Quickstart", "qscboCD", "qsNTSC" },
|
2017-09-27 00:15:50 +02:00
|
|
|
|
|
|
|
// PanelConfig
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "ConfigList", "Configurations", "ConfigName", "", "" },
|
|
|
|
{ "ConfigName", "Configurations", "Configurations", "ConfigList", "ConfigDesc" },
|
|
|
|
{ "ConfigDesc", "Configurations", "Configurations", "ConfigName", "ConfigLoad" },
|
|
|
|
{ "ConfigLoad", "Configurations", "ConfigSave", "ConfigDesc", "ConfigList" },
|
|
|
|
{ "ConfigSave", "ConfigLoad", "CfgDelete", "ConfigDesc", "ConfigList" },
|
|
|
|
{ "CfgDelete", "ConfigSave", "Configurations", "ConfigDesc", "ConfigList" },
|
2017-09-27 00:15:50 +02:00
|
|
|
|
|
|
|
// active move left move right move up move down
|
|
|
|
// PanelCPU
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "68000", "CPU and FPU", "FPUnone", "JIT", "68010" },
|
|
|
|
{ "68010", "CPU and FPU", "68881", "68000", "68020" },
|
|
|
|
{ "68020", "CPU and FPU", "68882", "68010", "68030" },
|
|
|
|
{ "68030", "CPU and FPU", "CPU internal", "68020", "68040" },
|
|
|
|
{ "68040", "CPU and FPU", "FPUstrict", "68030", "CPU24Bit" },
|
|
|
|
{ "CPU24Bit", "CPU and FPU", "SoftFloat", "68040", "CPUComp" },
|
|
|
|
{ "CPUComp", "CPU and FPU", "SoftFloat", "CPU24Bit", "JIT" },
|
|
|
|
{ "JIT", "CPU and FPU", "SoftFloat", "CPUComp", "68000" },
|
|
|
|
{ "FPUnone", "68000", "7 Mhz", "SoftFloat", "68881" },
|
|
|
|
{ "68881", "68010", "14 Mhz", "FPUnone", "68882" },
|
|
|
|
{ "68882", "68020", "25 Mhz", "68881", "CPU internal" },
|
|
|
|
{ "CPU internal", "68030", "Fastest", "68882", "FPUstrict" },
|
|
|
|
{ "FPUstrict", "68040", "Fastest", "CPU internal", "SoftFloat" },
|
|
|
|
{ "SoftFloat", "CPU24Bit", "Fastest", "FPUstrict", "FPUnone" },
|
|
|
|
{ "7 Mhz", "FPUnone", "CPU and FPU", "Fastest", "14 Mhz" },
|
|
|
|
{ "14 Mhz", "68881", "CPU and FPU", "7 Mhz", "25 Mhz" },
|
|
|
|
{ "25 Mhz", "68882", "CPU and FPU", "14 Mhz", "Fastest" },
|
|
|
|
{ "Fastest", "CPU internal", "CPU and FPU", "25 Mhz", "7 Mhz" },
|
2015-05-13 18:47:23 +00:00
|
|
|
|
2017-11-29 00:54:20 +01:00
|
|
|
// PanelChipset
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "OCS", "Chipset", "ChipsetExtra", "CollFull", "ECS Agnus" },
|
|
|
|
{ "ECS Agnus", "Chipset", "Immediate", "OCS", "Full ECS" },
|
|
|
|
{ "Full ECS", "Chipset", "BlitWait", "ECS Agnus", "AGA" },
|
|
|
|
{ "AGA", "Chipset", "Fast copper", "Full ECS", "NTSC" },
|
|
|
|
{ "NTSC", "Chipset", "Fast copper", "AGA", "CollNone" },
|
|
|
|
{ "ChipsetExtra", "OCS", "BlitNormal", "", "" },
|
|
|
|
{ "BlitNormal", "ChipsetExtra", "Chipset", "Fast copper", "Immediate" },
|
|
|
|
{ "Immediate", "ECS Agnus", "Chipset", "BlitNormal", "BlitWait" },
|
|
|
|
{ "BlitWait", "Full ECS", "Chipset", "Immediate", "Fast copper" },
|
|
|
|
{ "Fast copper", "NTSC", "Chipset", "BlitWait", "BlitNormal" },
|
|
|
|
{ "CollNone", "Chipset", "Chipset", "NTSC", "Sprites only" },
|
|
|
|
{ "Sprites only", "Chipset", "Chipset", "CollNone", "CollPlay" },
|
|
|
|
{ "CollPlay", "Chipset", "Chipset", "Sprites only", "CollFull" },
|
|
|
|
{ "CollFull", "Chipset", "Chipset", "CollPlay", "OCS" },
|
2015-05-13 18:47:23 +00:00
|
|
|
|
2017-09-27 00:15:50 +02:00
|
|
|
// active move left move right move up move down
|
|
|
|
// PanelROM
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "cboMainROM", "ROM", "MainROM", "cboCartROM", "cboExtROM" },
|
|
|
|
{ "MainROM", "cboMainROM", "ROM", "CartROM", "ExtROM" },
|
|
|
|
{ "cboExtROM", "ROM", "ExtROM", "cboMainROM", "cboCartROM" },
|
|
|
|
{ "ExtROM", "cboExtROM", "ROM", "MainROM", "CartROM" },
|
|
|
|
{ "cboCartROM", "ROM", "CartROM", "cboExtROM", "cboMainROM" },
|
|
|
|
{ "CartROM", "cboCartROM", "ROM", "ExtROM", "MainROM" },
|
2015-05-13 18:47:23 +00:00
|
|
|
|
2017-09-27 00:15:50 +02:00
|
|
|
//PanelRAM
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "Chipmem", "", "", "RAM", "Slowmem" },
|
|
|
|
{ "Slowmem", "", "", "Chipmem", "Fastmem" },
|
|
|
|
{ "Fastmem", "", "", "Slowmem", "Z3mem" },
|
|
|
|
{ "Z3mem", "", "", "Fastmem", "Gfxmem" },
|
|
|
|
{ "Gfxmem", "", "", "Z3mem", "A3000Low" },
|
|
|
|
{ "A3000Low", "", "", "Gfxmem", "A3000High" },
|
|
|
|
{ "A3000High", "", "", "A3000Low", "RAM" },
|
2017-09-27 00:15:50 +02:00
|
|
|
|
|
|
|
//PanelFloppy
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "DF0:", "Floppy drives", "cboType0", "SaveForDisk", "cboDisk0" },
|
|
|
|
{ "cboType0", "DF0:", "cmdEject0", "SaveForDisk", "cboDisk0" },
|
|
|
|
{ "cmdEject0", "cboType0", "cmdSel0", "CreateHD", "cboDisk0" },
|
|
|
|
{ "cmdSel0", "cmdEject0", "Floppy drives", "CreateHD", "cboDisk0" },
|
|
|
|
{ "cboDisk0", "Floppy drives", "Floppy drives", "DF0:", "LoadDiskCfg" },
|
|
|
|
{ "LoadDiskCfg", "Floppy drives", "Floppy drives", "cboDisk0", "DF1:" },
|
|
|
|
{ "DF1:", "Floppy drives", "cboType1", "LoadDiskCfg", "cboDisk1" },
|
|
|
|
{ "cboType1", "DF1:", "cmdEject1", "LoadDiskCfg", "cboDisk1" },
|
|
|
|
{ "cmdEject1", "cboType1", "cmdSel1", "LoadDiskCfg", "cboDisk1" },
|
|
|
|
{ "cmdSel1", "cmdEject1", "Floppy drives", "LoadDiskCfg", "cboDisk1" },
|
|
|
|
{ "cboDisk1", "Floppy drives", "Floppy drives", "DF1:", "DF2:" },
|
|
|
|
{ "DF2:", "Floppy drives", "cboType2", "cboDisk1", "cboDisk2" },
|
|
|
|
{ "cboType2", "DF2:", "cmdEject2", "cboDisk1", "cboDisk2" },
|
|
|
|
{ "cmdEject2", "cboType2", "cmdSel2", "cboDisk1", "cboDisk2" },
|
|
|
|
{ "cmdSel2", "cmdEject2", "Floppy drives", "cboDisk1", "cboDisk2" },
|
|
|
|
{ "cboDisk2", "Floppy drives", "Floppy drives", "DF2:", "DF3:" },
|
|
|
|
{ "DF3:", "Floppy drives", "cboType3", "cboDisk2", "cboDisk3" },
|
|
|
|
{ "cboType3", "DF3:", "cmdEject3", "cboDisk2", "cboDisk3" },
|
|
|
|
{ "cmdEject3", "cboType3", "cmdSel3", "cboDisk2", "cboDisk3" },
|
|
|
|
{ "cmdSel3", "cmdEject3", "Floppy drives", "cboDisk2", "cboDisk3" },
|
|
|
|
{ "cboDisk3", "Floppy drives", "Floppy drives", "DF3:", "DriveSpeed" },
|
|
|
|
{ "DriveSpeed", "", "", "cboDisk3", "CreateDD" },
|
|
|
|
{ "SaveForDisk", "Floppy drives", "CreateDD", "DriveSpeed", "DF0:" },
|
|
|
|
{ "CreateDD", "SaveForDisk", "CreateHD", "DriveSpeed", "cboType0" },
|
|
|
|
{ "CreateHD", "CreateDD", "Floppy drives", "DriveSpeed", "cmdEject0" },
|
|
|
|
|
|
|
|
// active move left move right move up move down
|
|
|
|
// PanelHD
|
|
|
|
{ "cmdProp0", "Hard drives/CD", "cmdDel0", "CDVol", "cmdProp1" },
|
|
|
|
{ "cmdDel0", "cmdProp0", "Hard drives/CD", "CDVol", "cmdDel1" },
|
|
|
|
{ "cmdProp1", "Hard drives/CD", "cmdDel1", "cmdProp0", "cmdProp2" },
|
|
|
|
{ "cmdDel1", "cmdProp1", "Hard drives/CD", "cmdDel0", "cmdDel2" },
|
|
|
|
{ "cmdProp2", "Hard drives/CD", "cmdDel2", "cmdProp1", "cmdProp3" },
|
|
|
|
{ "cmdDel2", "cmdProp2", "Hard drives/CD", "cmdDel1", "cmdDel3" },
|
|
|
|
{ "cmdProp3", "Hard drives/CD", "cmdDel3", "cmdProp2", "cmdProp4" },
|
|
|
|
{ "cmdDel3", "cmdProp3", "Hard drives/CD", "cmdDel2", "cmdDel4" },
|
|
|
|
{ "cmdProp4", "Hard drives/CD", "cmdDel4", "cmdProp3", "cmdAddDir" },
|
|
|
|
{ "cmdDel4", "cmdProp4", "Hard drives/CD", "cmdDel3", "cmdAddHDF" },
|
|
|
|
{ "cmdAddDir", "Hard drives/CD", "cmdAddHDF", "cmdProp4", "chkHDRO" },
|
|
|
|
{ "cmdAddHDF", "cmdAddDir", "cmdCreateHDF", "cmdDel4", "chkHDRO" },
|
|
|
|
{ "cmdCreateHDF", "cmdAddHDF", "Hard drives/CD", "cmdDel4", "chkHDRO" },
|
|
|
|
{ "chkHDRO", "Hard drives/CD", "Hard drives/CD", "cmdAddDir", "CD drive" },
|
|
|
|
{ "CD drive", "Hard drives/CD", "cdEject", "chkHDRO", "cboCD" },
|
|
|
|
{ "cdEject", "CD drive", "CDSelect", "cmdCreateHDF", "cboCD" },
|
|
|
|
{ "CDSelect", "cdEject", "Hard drives/CD", "cmdCreateHDF", "cboCD" },
|
|
|
|
{ "cboCD", "Hard drives/CD", "Hard drives/CD", "CD drive", "CDVol" },
|
|
|
|
{ "CDVol", "", "", "cboCD", "cmdProp0" },
|
|
|
|
|
|
|
|
// PanelDisplay
|
|
|
|
{ "sldWidth", "", "", "Frameskip", "sldHeight" },
|
|
|
|
{ "sldHeight", "", "", "sldWidth", "sldVertPos" },
|
2018-01-02 20:17:32 +01:00
|
|
|
{ "sldVertPos", "", "", "sldHeight", "Auto" },
|
|
|
|
{ "Auto", "Display", "Display", "sldVertPos", "Nearest Neighbor (pixelated)" },
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "Nearest Neighbor (pixelated)", "Display", "Display", "Auto", "Linear (smooth)" },
|
2018-01-02 20:17:32 +01:00
|
|
|
{ "Linear (smooth)", "Display", "Display", "Nearest Neighbor (pixelated)", "CorrectAR" },
|
|
|
|
{ "CorrectAR", "Display", "Display", "Linear (smooth)","Line doubling" },
|
|
|
|
{ "Line doubling", "Display", "Display", "CorrectAR", "Frameskip" },
|
|
|
|
{ "Frameskip", "Display", "Display", "Line doubling", "sldWidth" },
|
|
|
|
|
2015-05-13 18:47:23 +00:00
|
|
|
|
2017-09-27 00:15:50 +02:00
|
|
|
//PanelSound
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "sndDisable", "Sound", "Mono", "sldStereoDelay", "sndDisEmu" },
|
|
|
|
{ "sndDisEmu", "Sound", "Stereo", "sndDisable", "sndEmulate" },
|
|
|
|
{ "sndEmulate", "Sound", "Stereo", "sndDisEmu", "sndEmuBest" },
|
|
|
|
{ "sndEmuBest", "Sound", "Stereo", "sndEmulate", "cboFrequency" },
|
|
|
|
{ "Mono", "sndDisable", "Sound", "sldStereoDelay", "Stereo" },
|
|
|
|
{ "Stereo", "sndDisEmu", "Sound", "Mono", "cboFrequency" },
|
|
|
|
{ "cboFrequency", "Sound", "Sound", "sndEmuBest", "cboInterpol" },
|
|
|
|
{ "cboInterpol", "Sound", "Sound", "cboFrequency", "cboFilter" },
|
|
|
|
{ "cboFilter", "Sound", "Sound", "cboInterpol", "sldSeparation" },
|
|
|
|
{ "sldSeparation", "", "", "cboFilter", "sldStereoDelay" },
|
|
|
|
{ "sldStereoDelay", "", "", "sldSeparation", "sndDisable" },
|
|
|
|
|
2017-09-27 00:15:50 +02:00
|
|
|
// active move left move right move up move down
|
|
|
|
// PanelInput
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "cboPort0", "Input", "cboPort0mode", "cboAutofire", "cboPort1" },
|
|
|
|
{ "cboPort0mode", "cboPort0", "Input", "cboTapDelay", "cboPort1mode" },
|
|
|
|
{ "cboPort1", "Input", "cboPort1mode", "cboPort0", "cboPort2" },
|
|
|
|
{ "cboPort1mode", "cboPort1", "Input", "cboPort0mode", "cboPort2" },
|
|
|
|
{ "cboPort2", "Input", "cboPort2mode", "cboPort1", "cboPort3" },
|
|
|
|
{ "cboPort3", "Input", "cboPort3mode", "cboPort2", "cboPort0mousemode" },
|
|
|
|
{ "cboPort0mousemode","Input", "MouseSpeed", "cboPort3", "cboPort1mousemode" },
|
|
|
|
{ "cboPort1mousemode","Input", "MouseSpeed", "cboPort0mousemode","cboAutofire" },
|
|
|
|
{ "MouseSpeed", "", "", "cboPort3", "MouseHack" },
|
|
|
|
{ "MouseHack", "cboAutofire", "cboAutofire", "MouseSpeed", "cboPort0" },
|
|
|
|
{ "cboAutofire", "Input", "MouseHack", "cboPort1mousemode","cboPort0" },
|
|
|
|
|
|
|
|
// PanelCustom
|
|
|
|
{ "0: Mouse", "Custom controls", "1: Joystick", "cboCustomAction13", "None" },
|
|
|
|
{ "1: Joystick", "0: Mouse", "2: Parallel 1", "cboCustomAction13", "HotKey" },
|
|
|
|
{ "2: Parallel 1", "1: Joystick", "3: Parallel 2", "cboCustomAction13", "Left Trigger" },
|
|
|
|
{ "3: Parallel 2", "2: Parallel 1", "Custom controls", "cboCustomAction13", "Right Trigger" },
|
|
|
|
|
|
|
|
{ "None", "Custom controls", "HotKey", "0: Mouse", "cboCustomAction0" },
|
|
|
|
{ "HotKey", "None", "Left Trigger", "1: Joystick", "cboCustomAction0" },
|
|
|
|
{ "Left Trigger", "HotKey", "Right Trigger", "2: Parallel 1", "cboCustomAction0" },
|
|
|
|
{ "Right Trigger", "Left Trigger", "Custom controls", "3: Parallel 2", "cboCustomAction0" },
|
|
|
|
|
|
|
|
{ "cboCustomAction0", "Custom controls", "cboCustomAction7" , "None", "cboCustomAction1" },
|
|
|
|
{ "cboCustomAction1", "Custom controls", "cboCustomAction8" , "cboCustomAction0", "cboCustomAction2" },
|
|
|
|
{ "cboCustomAction2", "Custom controls", "cboCustomAction9" , "cboCustomAction1", "cboCustomAction3" },
|
|
|
|
{ "cboCustomAction3", "Custom controls", "cboCustomAction10", "cboCustomAction2", "cboCustomAction4" },
|
|
|
|
{ "cboCustomAction4", "Custom controls", "cboCustomAction11", "cboCustomAction3", "cboCustomAction5" },
|
|
|
|
{ "cboCustomAction5", "Custom controls", "cboCustomAction12", "cboCustomAction4", "cboCustomAction6" },
|
|
|
|
{ "cboCustomAction6", "Custom controls", "cboCustomAction13", "cboCustomAction5", "cboCustomAction7" },
|
|
|
|
|
|
|
|
{ "cboCustomAction7", "cboCustomAction0", "Custom controls", "cboCustomAction6", "cboCustomAction8" },
|
|
|
|
{ "cboCustomAction8", "cboCustomAction1", "Custom controls" , "cboCustomAction7", "cboCustomAction9" },
|
|
|
|
{ "cboCustomAction9", "cboCustomAction2", "Custom controls" , "cboCustomAction8", "cboCustomAction10" },
|
|
|
|
{ "cboCustomAction10", "cboCustomAction3", "Custom controls" , "cboCustomAction9", "cboCustomAction11" },
|
|
|
|
{ "cboCustomAction11", "cboCustomAction4", "Custom controls", "cboCustomAction10", "cboCustomAction12" },
|
|
|
|
{ "cboCustomAction12", "cboCustomAction5", "Custom controls", "cboCustomAction11", "cboCustomAction13" },
|
|
|
|
{ "cboCustomAction13", "cboCustomAction6", "Custom controls", "cboCustomAction12", "1: Joystick" },
|
2017-11-29 00:54:20 +01:00
|
|
|
|
|
|
|
// PanelMisc
|
|
|
|
// active move left move right move up move down
|
|
|
|
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "StatusLine", "Miscellaneous", "RetroArchQuit", "scrolllock", "HideIdle" },
|
|
|
|
{ "HideIdle", "Miscellaneous", "RetroArchMenu", "StatusLine", "ShowGUI" },
|
|
|
|
{ "ShowGUI", "Miscellaneous", "RetroArchReset", "HideIdle", "BSDSocket" },
|
|
|
|
{ "RetroArchQuit", "StatusLine", "Miscellaneous", "KeyForQuit", "RetroArchMenu" },
|
|
|
|
{ "RetroArchMenu", "HideIdle", "Miscellaneous", "RetroArchQuit", "RetroArchReset" },
|
|
|
|
{ "RetroArchReset", "ShowGUI", "Miscellaneous", "RetroArchMenu", "BSDSocket" },
|
|
|
|
|
|
|
|
{ "BSDSocket", "Miscellaneous", "Miscellaneous", "ShowGUI", "MasterWP" },
|
|
|
|
{ "MasterWP", "Miscellaneous", "Miscellaneous", "BSDSocket", "numlock" },
|
|
|
|
{ "numlock", "Miscellaneous", "scrolllock", "MasterWP", "OpenGUI" },
|
|
|
|
{ "scrolllock", "numlock", "Miscellaneous", "MasterWP", "KeyForQuit" },
|
|
|
|
{ "OpenGUI", "Miscellaneous", "KeyForQuit", "numlock", "StatusLine" },
|
|
|
|
{ "KeyForQuit", "OpenGUI", "Miscellaneous", "scrolllock", "StatusLine" },
|
|
|
|
|
|
|
|
// PanelSavestate
|
|
|
|
{ "State0", "Savestates", "Savestates", "LoadState", "State1" },
|
|
|
|
{ "State1", "Savestates", "Savestates", "State0", "State2" },
|
|
|
|
{ "State2", "Savestates", "Savestates", "State1", "State3" },
|
|
|
|
{ "State3", "Savestates", "Savestates", "State2", "LoadState" },
|
|
|
|
{ "LoadState", "Savestates", "SaveState", "State3", "State0" },
|
|
|
|
{ "SaveState", "LoadState", "Savestates", "State3", "State0" },
|
2015-05-13 18:47:23 +00:00
|
|
|
|
2017-11-29 00:54:20 +01:00
|
|
|
#ifdef ANDROIDSDL
|
|
|
|
// PanelOnScreen
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "OnScrCtrl", "OnScreen", "OnScrButton3", "DisableMenuVKeyb", "OnScrTextInput" },
|
|
|
|
{ "OnScrButton3", "OnScrCtrl", "OnScreen", "CustomPos", "OnScrButton4" },
|
|
|
|
{ "OnScrTextInput", "OnScreen", "OnScrButton4", "OnScrCtrl", "OnScrDpad" },
|
|
|
|
{ "OnScrButton4", "OnScrTextInput", "OnScreen", "OnScrButton3", "OnScrButton5" },
|
|
|
|
{ "OnScrDpad", "OnScreen", "OnScrButton5", "OnScrTextInput", "OnScrButton1" },
|
|
|
|
{ "OnScrButton5", "OnScrDpad", "OnScreen", "OnScrButton4", "OnScrButton6" },
|
|
|
|
{ "OnScrButton1", "OnScreen", "OnScrButton6", "OnScrDpad", "OnScrButton2" },
|
|
|
|
{ "OnScrButton6", "OnScrButton1", "OnScreen", "OnScrButton5", "CustomPos" },
|
|
|
|
{ "OnScrButton2", "OnScreen", "CustomPos", "OnScrButton1", "FloatJoy" },
|
|
|
|
{ "CustomPos", "OnScrButton2", "OnScreen", "OnScrButton6", "Reset" },
|
|
|
|
{ "FloatJoy", "OnScreen", "CustomPos", "OnScrButton2", "DisableMenuVKeyb" },
|
|
|
|
{ "DisableMenuVKeyb","OnScreen", "CustomPos", "FloatJoy", "Reset" },
|
2017-11-29 00:54:20 +01:00
|
|
|
#endif
|
2015-05-13 18:47:23 +00:00
|
|
|
|
2017-12-26 19:15:42 +01:00
|
|
|
// active move left move right move up move down
|
|
|
|
// EditFilesysVirtual
|
|
|
|
{ "virtDev", "virtRW", "virtRW", "virtOK", "virtVol" },
|
|
|
|
{ "virtVol", "virtBootpri", "virtAutoboot", "virtDev", "virtPath" },
|
|
|
|
{ "virtPath", "", "", "virtBootpri", "virtCancel" },
|
|
|
|
{ "virtRW", "virtDev", "virtDev", "virtOK", "virtAutoboot" },
|
|
|
|
{ "virtAutoboot", "virtVol", "virtBootpri", "virtRW", "virtPath" },
|
|
|
|
{ "virtBootpri", "virtAutoboot", "virtVol", "virtRW", "virtPath" },
|
|
|
|
{ "virtOK", "virtCancel", "virtCancel", "virtPath", "virtRW" },
|
|
|
|
{ "virtCancel", "virtOK", "virtOK", "virtPath", "virtRW" },
|
2015-05-13 18:47:23 +00:00
|
|
|
|
2017-09-27 00:15:50 +02:00
|
|
|
// EditFilesysHardfile
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "hdfDev", "hdfBootPri", "hdfRW", "hdfOK", "hdfPath" },
|
|
|
|
{ "hdfRW", "hdfDev", "hdfAutoboot", "hdfOK", "hdfPath" },
|
|
|
|
{ "hdfAutoboot", "hdfRW", "hdfBootPri", "hdfOK", "hdfPath" },
|
|
|
|
{ "hdfBootPri", "hdfAutoboot", "hdfDev", "hdfCancel", "hdfPath" },
|
|
|
|
{ "hdfSurface", "hdfReserved", "hdfReserved", "hdfPath", "hdfSectors" },
|
|
|
|
{ "hdfReserved", "hdfSurface", "hdfSurface", "hdfPath", "hdfBlocksize" },
|
|
|
|
{ "hdfSectors", "hdfBlocksize", "hdfBlocksize", "hdfSurface", "hdfController" },
|
|
|
|
{ "hdfBlocksize", "hdfSectors", "hdfSectors", "hdfReserved", "hdfUnit" },
|
|
|
|
{ "hdfPath", "", "", "hdfBootPri", "hdfReserved" },
|
|
|
|
{ "hdfController", "hdfUnit", "hdfUnit", "hdfSectors", "hdfOK" },
|
|
|
|
{ "hdfUnit", "hdfController", "hdfController", "hdfBlocksize", "hdfOK" },
|
|
|
|
{ "hdfOK", "hdfCancel", "hdfCancel", "hdfUnit", "hdfBootPri" },
|
|
|
|
{ "hdfCancel", "hdfOK", "hdfOK", "hdfUnit", "hdfBootPri" },
|
2017-09-27 00:15:50 +02:00
|
|
|
|
|
|
|
// CreateFilesysHardfile
|
2017-12-26 19:15:42 +01:00
|
|
|
{ "createHdfDev", "createHdfBootPri", "createHdfAutoboot", "createHdfOK", "createHdfPath" },
|
|
|
|
{ "createHdfAutoboot", "createHdfDev", "createHdfBootPri", "createHdfOK", "createHdfPath" },
|
|
|
|
{ "createHdfBootPri", "createHdfAutoboot", "createHdfDev", "createHdfOK", "createHdfPath" },
|
|
|
|
{ "createHdfSize", "", "", "createHdfPath", "createHdfOK" },
|
|
|
|
{ "createHdfPath", "", "", "createHdfBootPri", "createHdfSize" },
|
|
|
|
{ "createHdfOK", "createHdfCancel", "createHdfCancel", "createHdfSize", "createHdfBootPri" },
|
|
|
|
{ "createHdfCancel", "createHdfOK", "createHdfOK", "createHdfSize", "createHdfBootPri" },
|
|
|
|
|
|
|
|
{ "END", "", "", "", "" }
|
2015-05-13 18:47:23 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
bool HandleNavigation(int direction)
|
|
|
|
{
|
2017-12-21 13:53:45 +01:00
|
|
|
const auto focusHdl = gui_top->_getFocusHandler();
|
2017-01-29 12:03:00 +01:00
|
|
|
gcn::Widget* focusTarget = nullptr;
|
2016-09-01 13:53:43 +02:00
|
|
|
|
2017-01-29 12:03:00 +01:00
|
|
|
if (focusHdl != nullptr)
|
|
|
|
{
|
2017-12-21 13:53:45 +01:00
|
|
|
auto activeWidget = focusHdl->getFocused();
|
2016-09-01 13:53:43 +02:00
|
|
|
|
2017-01-29 12:03:00 +01:00
|
|
|
if (activeWidget != nullptr && activeWidget->getId().length() > 0)
|
|
|
|
{
|
2017-12-21 13:53:45 +01:00
|
|
|
auto activeName = activeWidget->getId();
|
|
|
|
auto bFoundEnabled = false;
|
|
|
|
auto tries = 10;
|
2016-09-01 13:53:43 +02:00
|
|
|
|
2017-09-18 17:36:45 +02:00
|
|
|
while (!bFoundEnabled && tries > 0)
|
2017-01-29 12:03:00 +01:00
|
|
|
{
|
2017-12-21 13:53:45 +01:00
|
|
|
string searchFor;
|
2016-09-01 13:53:43 +02:00
|
|
|
|
2017-12-21 13:53:45 +01:00
|
|
|
for (auto i = 0; navMap[i].activeWidget != "END"; ++i)
|
2017-01-29 12:03:00 +01:00
|
|
|
{
|
|
|
|
if (navMap[i].activeWidget == activeName)
|
|
|
|
{
|
|
|
|
switch (direction)
|
|
|
|
{
|
|
|
|
case DIRECTION_LEFT:
|
|
|
|
searchFor = navMap[i].leftWidget;
|
|
|
|
break;
|
|
|
|
case DIRECTION_RIGHT:
|
|
|
|
searchFor = navMap[i].rightWidget;
|
|
|
|
break;
|
|
|
|
case DIRECTION_UP:
|
|
|
|
searchFor = navMap[i].upWidget;
|
|
|
|
break;
|
|
|
|
case DIRECTION_DOWN:
|
|
|
|
searchFor = navMap[i].downWidget;
|
|
|
|
break;
|
2017-12-03 20:56:58 +01:00
|
|
|
default:
|
|
|
|
break;
|
2017-01-29 12:03:00 +01:00
|
|
|
}
|
|
|
|
if (searchFor.length() > 0)
|
|
|
|
{
|
|
|
|
focusTarget = gui_top->findWidgetById(searchFor);
|
|
|
|
if (focusTarget != nullptr)
|
|
|
|
{
|
2017-11-29 00:54:20 +01:00
|
|
|
if(focusTarget->isEnabled() && focusTarget->isVisible())
|
2017-01-29 12:03:00 +01:00
|
|
|
bFoundEnabled = true;
|
|
|
|
else
|
|
|
|
activeName = searchFor;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
bFoundEnabled = true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
2017-12-21 13:53:45 +01:00
|
|
|
if (searchFor.empty())
|
2017-01-29 12:03:00 +01:00
|
|
|
bFoundEnabled = true; // No entry to navigate to -> exit loop
|
2017-09-18 17:36:45 +02:00
|
|
|
--tries;
|
2017-01-29 12:03:00 +01:00
|
|
|
}
|
2016-09-01 13:53:43 +02:00
|
|
|
|
2017-01-29 12:03:00 +01:00
|
|
|
if (focusTarget != nullptr)
|
|
|
|
{
|
2017-12-22 22:33:02 +01:00
|
|
|
if (activeWidget->getId().substr(0, 3) == "cbo" || activeWidget->getId().substr(0, 5) == "qscbo")
|
2017-01-29 12:03:00 +01:00
|
|
|
{
|
2017-12-21 13:53:45 +01:00
|
|
|
const auto dropdown = dynamic_cast<gcn::UaeDropDown *>(activeWidget);
|
2017-01-29 12:03:00 +01:00
|
|
|
if (dropdown->isDroppedDown() && (direction == DIRECTION_UP || direction == DIRECTION_DOWN))
|
|
|
|
focusTarget = nullptr; // Up/down navigates in list if dropped down
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2015-05-13 18:47:23 +00:00
|
|
|
|
2017-01-29 12:03:00 +01:00
|
|
|
if (focusTarget != nullptr)
|
|
|
|
focusTarget->requestFocus();
|
2017-02-24 01:34:54 +01:00
|
|
|
return focusTarget != nullptr;
|
2015-05-13 18:47:23 +00:00
|
|
|
}
|
2017-11-29 00:54:20 +01:00
|
|
|
|
2017-12-05 11:11:01 +01:00
|
|
|
#ifdef USE_SDL1
|
|
|
|
void PushFakeKey(const SDLKey inKey)
|
|
|
|
{
|
|
|
|
SDL_Event nuevent;
|
|
|
|
|
|
|
|
nuevent.type = SDL_KEYDOWN; // and the key up
|
|
|
|
nuevent.key.keysym.sym = inKey;
|
|
|
|
gui_input->pushInput(nuevent); // Fire key down
|
|
|
|
nuevent.type = SDL_KEYUP; // and the key up
|
|
|
|
gui_input->pushInput(nuevent); // Fire key down
|
|
|
|
}
|
|
|
|
#elif USE_SDL2
|
2017-12-03 20:56:58 +01:00
|
|
|
void PushFakeKey(const SDL_Keycode inKey)
|
2017-12-25 00:15:51 +01:00
|
|
|
{
|
|
|
|
SDL_Event nuevent;
|
|
|
|
|
|
|
|
nuevent.type = SDL_KEYDOWN; // and the key up
|
|
|
|
nuevent.key.keysym.sym = inKey;
|
|
|
|
gui_input->pushInput(nuevent); // Fire key down
|
|
|
|
nuevent.type = SDL_KEYUP; // and the key up
|
|
|
|
gui_input->pushInput(nuevent); // Fire key down
|
2017-11-29 00:54:20 +01:00
|
|
|
}
|
2017-12-05 11:11:01 +01:00
|
|
|
#endif
|