aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Turner2014-06-28 14:59:08 +0100
committerDavid Turner2014-06-28 14:59:08 +0100
commitcb596113a784e4894b5a34787b80144d2d3561e2 (patch)
treee5be7a920b1d0de20db1424a81899cf995f11c4d
parent95ba430d11a09ec6fbc997550074b940223eebf5 (diff)
parentad07da959dca9580d5a832ee69303d19fd21b578 (diff)
downloadscummvm-rg350-cb596113a784e4894b5a34787b80144d2d3561e2.tar.gz
scummvm-rg350-cb596113a784e4894b5a34787b80144d2d3561e2.tar.bz2
scummvm-rg350-cb596113a784e4894b5a34787b80144d2d3561e2.zip
Merge pull request #461 from digitall/vkeybdFix
Add trigger for Virtual Keyboard on long press of Middle Mouse Button
-rw-r--r--README3
-rw-r--r--backends/events/dinguxsdl/dinguxsdl-events.cpp5
-rw-r--r--backends/events/gph/gph-events.cpp3
-rw-r--r--backends/events/linuxmotosdl/linuxmotosdl-events.cpp10
-rw-r--r--backends/events/maemosdl/maemosdl-events.cpp32
-rw-r--r--backends/events/ps3sdl/ps3sdl-events.cpp10
-rw-r--r--backends/events/samsungtvsdl/samsungtvsdl-events.cpp11
-rw-r--r--backends/platform/android/events.cpp2
-rw-r--r--backends/platform/dingux/dingux.mk1
-rw-r--r--backends/platform/gph/caanoo-bundle.mk2
-rw-r--r--backends/platform/gph/gp2x-bundle.mk2
-rw-r--r--backends/platform/gph/gp2xwiz-bundle.mk2
-rw-r--r--backends/platform/linuxmoto/linuxmoto.mk4
-rwxr-xr-xbackends/platform/maemo/debian/rules1
-rw-r--r--backends/platform/n64/n64.mk1
-rw-r--r--backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg1
-rw-r--r--backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg1
-rw-r--r--backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg1
-rw-r--r--backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg1
-rw-r--r--backends/platform/tizen/form.cpp9
-rw-r--r--backends/platform/wii/osystem_events.cpp4
-rw-r--r--backends/platform/wii/wii.mk1
-rw-r--r--backends/vkeybd/packs/vkeybd_small.zipbin0 -> 87598 bytes
-rw-r--r--backends/vkeybd/packs/vkeybd_small/lowercase-symbols320x240.bmpbin0 -> 153654 bytes
-rw-r--r--backends/vkeybd/packs/vkeybd_small/lowercase320x240.bmpbin0 -> 153654 bytes
-rw-r--r--backends/vkeybd/packs/vkeybd_small/uppercase-symbols320x240.bmpbin0 -> 153654 bytes
-rw-r--r--backends/vkeybd/packs/vkeybd_small/uppercase320x240.bmpbin0 -> 153654 bytes
-rw-r--r--backends/vkeybd/packs/vkeybd_small/vkeybd_small.xml637
-rw-r--r--backends/vkeybd/virtual-keyboard.cpp12
-rw-r--r--common/EventMapper.cpp30
-rw-r--r--devtools/create_project/scripts/postbuild.cmd3
-rw-r--r--ports.mk1
32 files changed, 733 insertions, 57 deletions
diff --git a/README b/README
index b50d4a14d0..39f6223548 100644
--- a/README
+++ b/README
@@ -1268,6 +1268,9 @@ other games.
instead, or a multiple thereof
Alt-Enter - Toggles full screen/windowed
Alt-s - Make a screenshot (SDL backend only)
+ Ctrl-F7 - Open virtual keyboard (if enabled)
+ This can also be triggered by a long press
+ of the middle mouse button or wheel.
SCUMM:
Ctrl 0-9 and Alt 0-9 - Load and save game state
diff --git a/backends/events/dinguxsdl/dinguxsdl-events.cpp b/backends/events/dinguxsdl/dinguxsdl-events.cpp
index 46089a4fcd..6f9f2a7748 100644
--- a/backends/events/dinguxsdl/dinguxsdl-events.cpp
+++ b/backends/events/dinguxsdl/dinguxsdl-events.cpp
@@ -144,8 +144,9 @@ bool DINGUXSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
return true;
} else if (ev.key.keysym.sym == BUT_SELECT) { // virtual keyboard
- ev.key.keysym.sym = SDLK_F7;
-
+#ifdef ENABLE_VKEYBD
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
+#endif
} else if (ev.key.keysym.sym == BUT_START) { // F5, menu in some games
ev.key.keysym.sym = SDLK_F5;
diff --git a/backends/events/gph/gph-events.cpp b/backends/events/gph/gph-events.cpp
index 90b6a2a29d..88fc97d3d1 100644
--- a/backends/events/gph/gph-events.cpp
+++ b/backends/events/gph/gph-events.cpp
@@ -348,8 +348,7 @@ bool GPHEventSource::handleJoyButtonDown(SDL_Event &ev, Common::Event &event) {
event.type = Common::EVENT_KEYDOWN;
if (BUTTON_STATE_L == true) {
#ifdef ENABLE_VKEYBD
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = mapKey(SDLK_F7, ev.key.keysym.mod, 0);
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
#else
event.kbd.keycode = Common::KEYCODE_0;
event.kbd.ascii = mapKey(SDLK_0, ev.key.keysym.mod, 0);
diff --git a/backends/events/linuxmotosdl/linuxmotosdl-events.cpp b/backends/events/linuxmotosdl/linuxmotosdl-events.cpp
index ce34662612..b0d443ff9f 100644
--- a/backends/events/linuxmotosdl/linuxmotosdl-events.cpp
+++ b/backends/events/linuxmotosdl/linuxmotosdl-events.cpp
@@ -73,7 +73,10 @@ bool LinuxmotoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
}
// VirtualKeyboard - Camera key
else if (ev.key.keysym.sym == SDLK_PAUSE) {
- ev.key.keysym.sym = SDLK_F7;
+#ifdef ENABLE_VKEYBD
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
+ return true;
+#endif
}
// Enter - mod+fire key
else if (ev.key.keysym.sym == SDLK_b) {
@@ -117,7 +120,10 @@ bool LinuxmotoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
}
// VirtualKeyboard - Right Soft key
else if (ev.key.keysym.sym == SDLK_F11) {
- ev.key.keysym.sym = SDLK_F7;
+#ifdef ENABLE_VKEYBD
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
+ return true;
+#endif
}
#endif
diff --git a/backends/events/maemosdl/maemosdl-events.cpp b/backends/events/maemosdl/maemosdl-events.cpp
index 5045363286..8b7514004a 100644
--- a/backends/events/maemosdl/maemosdl-events.cpp
+++ b/backends/events/maemosdl/maemosdl-events.cpp
@@ -86,12 +86,11 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
return true;
} else if (ev.key.keysym.sym == SDLK_F6) {
if (!model.hasHwKeyboard) {
- event.type = Common::EVENT_KEYDOWN;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = Common::ASCII_F7;
- event.kbd.flags = 0;
- debug(9, "remapping to F7 down (virtual keyboard)");
+#ifdef ENABLE_VKEYBD
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
+ debug(9, "remapping to virtual keyboard trigger");
return true;
+#endif
} else {
// handled in keyup
}
@@ -102,12 +101,11 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
return true;
} else if (ev.key.keysym.sym == SDLK_F8) {
if (ev.key.keysym.mod & KMOD_CTRL) {
- event.type = Common::EVENT_KEYDOWN;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = Common::ASCII_F7;
- event.kbd.flags = 0;
- debug(9, "remapping to F7 down (virtual keyboard)");
+#ifdef ENABLE_VKEYBD
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
+ debug(9, "remapping to virtual keyboard trigger");
return true;
+#endif
} else {
// handled in keyup
return true;
@@ -125,12 +123,7 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
return true;
} else if (ev.key.keysym.sym == SDLK_F6) {
if (!model.hasHwKeyboard) {
- event.type = Common::EVENT_KEYUP;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = Common::ASCII_F7;
- event.kbd.flags = 0;
- debug(9, "remapping to F7 down (virtual keyboard)");
- return true;
+ // handled in keydown
} else {
bool currentState = ((OSystem_SDL *)g_system)->getGraphicsManager()->getFeatureState(OSystem::kFeatureFullscreenMode);
g_system->beginGFXTransaction();
@@ -146,12 +139,7 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
return true;
} else if (ev.key.keysym.sym == SDLK_F8) {
if (ev.key.keysym.mod & KMOD_CTRL) {
- event.type = Common::EVENT_KEYUP;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = Common::ASCII_F7;
- event.kbd.flags = 0;
- debug(9, "remapping to F7 up (virtual keyboard)");
- return true;
+ // handled in key down
} else {
toggleClickMode();
debug(9, "remapping to click toggle");
diff --git a/backends/events/ps3sdl/ps3sdl-events.cpp b/backends/events/ps3sdl/ps3sdl-events.cpp
index 1a854436f1..0f6e01857b 100644
--- a/backends/events/ps3sdl/ps3sdl-events.cpp
+++ b/backends/events/ps3sdl/ps3sdl-events.cpp
@@ -72,9 +72,9 @@ bool PS3SdlEventSource::handleJoyButtonDown(SDL_Event &ev, Common::Event &event)
event.kbd.ascii = mapKey(SDLK_F5, (SDLMod) ev.key.keysym.mod, 0);
break;
case BTN_SELECT: // Virtual keyboard
- event.type = Common::EVENT_KEYDOWN;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = mapKey(SDLK_F7, (SDLMod) ev.key.keysym.mod, 0);
+#ifdef ENABLE_VKEYBD
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
+#endif
break;
case BTN_SQUARE: // Escape
event.type = Common::EVENT_KEYDOWN;
@@ -110,9 +110,7 @@ bool PS3SdlEventSource::handleJoyButtonUp(SDL_Event &ev, Common::Event &event) {
event.kbd.ascii = mapKey(SDLK_F5, (SDLMod) ev.key.keysym.mod, 0);
break;
case BTN_SELECT: // Virtual keyboard
- event.type = Common::EVENT_KEYUP;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = mapKey(SDLK_F7, (SDLMod) ev.key.keysym.mod, 0);
+ // Handled in key down
break;
case BTN_SQUARE: // Escape
event.type = Common::EVENT_KEYUP;
diff --git a/backends/events/samsungtvsdl/samsungtvsdl-events.cpp b/backends/events/samsungtvsdl/samsungtvsdl-events.cpp
index f5b919a060..61499b566d 100644
--- a/backends/events/samsungtvsdl/samsungtvsdl-events.cpp
+++ b/backends/events/samsungtvsdl/samsungtvsdl-events.cpp
@@ -38,10 +38,10 @@ bool SamsungTVSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
event.kbd.ascii = Common::ASCII_F5;
return true;
} else if (ev.key.keysym.sym == SDLK_F2 && ev.key.keysym.scancode == 21) {
- event.type = Common::EVENT_KEYDOWN;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = Common::ASCII_F7;
+#ifdef ENABLE_VKEYBD
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
return true;
+#endif
}
break;
}
@@ -54,11 +54,6 @@ bool SamsungTVSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
event.kbd.keycode = Common::KEYCODE_F5;
event.kbd.ascii = Common::ASCII_F5;
return true;
- } else if (ev.key.keysym.sym == SDLK_F2 && ev.key.keysym.scancode == 21) {
- event.type = Common::EVENT_KEYUP;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = Common::ASCII_F7;
- return true;
}
break;
}
diff --git a/backends/platform/android/events.cpp b/backends/platform/android/events.cpp
index c60626ec36..8039981a92 100644
--- a/backends/platform/android/events.cpp
+++ b/backends/platform/android/events.cpp
@@ -263,7 +263,7 @@ void OSystem_Android::setupKeymapper() {
Action *act;
act = new Action(globalMap, "VIRT", "Display keyboard");
- act->addKeyEvent(KeyState(KEYCODE_F7, ASCII_F7, 0));
+ act->addKeyEvent(KeyState(KEYCODE_F7, ASCII_F7, KBD_CTRL));
mapper->addGlobalKeymap(globalMap);
diff --git a/backends/platform/dingux/dingux.mk b/backends/platform/dingux/dingux.mk
index e0aca42856..48a9347143 100644
--- a/backends/platform/dingux/dingux.mk
+++ b/backends/platform/dingux/dingux.mk
@@ -26,6 +26,7 @@ ifdef DYNAMIC_MODULES
$(STRIP) $(bundle_name)/plugins/*
endif
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)/
$(CP) $(srcdir)/backends/platform/dingux/scummvm.gpe $(bundle_name)/
$(CP) $(srcdir)/backends/platform/dingux/README.DINGUX $(bundle_name)/
$(CP) $(srcdir)/backends/platform/dingux/scummvm.png $(bundle_name)/
diff --git a/backends/platform/gph/caanoo-bundle.mk b/backends/platform/gph/caanoo-bundle.mk
index 2cf8e62b37..9362daeba3 100644
--- a/backends/platform/gph/caanoo-bundle.mk
+++ b/backends/platform/gph/caanoo-bundle.mk
@@ -24,6 +24,7 @@ caanoo-bundle: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(bundle_name)/scummvm/
$(INSTALL) -c -m 644 $(DIST_FILES_ENGINEDATA) $(bundle_name)/scummvm/engine-data
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)/scummvm/
$(STRIP) $(EXECUTABLE) -o $(bundle_name)/scummvm/$(EXECUTABLE)
@@ -55,6 +56,7 @@ caanoo-bundle-debug: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(bundle_name)/scummvm/
$(INSTALL) -c -m 644 $(DIST_FILES_ENGINEDATA) $(bundle_name)/scummvm/engine-data
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)/scummvm/
$(INSTALL) -c -m 777 $(srcdir)/$(EXECUTABLE) $(bundle_name)/scummvm/$(EXECUTABLE)
diff --git a/backends/platform/gph/gp2x-bundle.mk b/backends/platform/gph/gp2x-bundle.mk
index 9fcb379e04..d430ae6ebe 100644
--- a/backends/platform/gph/gp2x-bundle.mk
+++ b/backends/platform/gph/gp2x-bundle.mk
@@ -21,6 +21,7 @@ gp2x-bundle: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(bundle_name)
$(INSTALL) -c -m 644 $(DIST_FILES_ENGINEDATA) $(bundle_name)/engine-data
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)
$(STRIP) $(EXECUTABLE) -o $(bundle_name)/$(EXECUTABLE)
@@ -52,6 +53,7 @@ gp2x-bundle-debug: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(bundle_name)
$(INSTALL) -c -m 644 $(DIST_FILES_ENGINEDATA) $(bundle_name)/engine-data
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)
$(INSTALL) -c -m 777 $(srcdir)/$(EXECUTABLE) $(bundle_name)/$(EXECUTABLE)
diff --git a/backends/platform/gph/gp2xwiz-bundle.mk b/backends/platform/gph/gp2xwiz-bundle.mk
index 4f49850813..36a720aae6 100644
--- a/backends/platform/gph/gp2xwiz-bundle.mk
+++ b/backends/platform/gph/gp2xwiz-bundle.mk
@@ -23,6 +23,7 @@ gp2xwiz-bundle: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(bundle_name)/scummvm/
$(INSTALL) -c -m 644 $(DIST_FILES_ENGINEDATA) $(bundle_name)/scummvm/engine-data
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)/scummvm/
$(STRIP) $(EXECUTABLE) -o $(bundle_name)/scummvm/$(EXECUTABLE)
@@ -57,6 +58,7 @@ gp2xwiz-bundle-debug: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(bundle_name)/scummvm/
$(INSTALL) -c -m 644 $(DIST_FILES_ENGINEDATA) $(bundle_name)/scummvm/engine-data
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)/scummvm/
$(INSTALL) -c -m 777 $(srcdir)/$(EXECUTABLE) $(bundle_name)/scummvm/$(EXECUTABLE)
diff --git a/backends/platform/linuxmoto/linuxmoto.mk b/backends/platform/linuxmoto/linuxmoto.mk
index f64fadbccd..937fb4ef69 100644
--- a/backends/platform/linuxmoto/linuxmoto.mk
+++ b/backends/platform/linuxmoto/linuxmoto.mk
@@ -5,6 +5,7 @@ motoezx: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(DIST_FILES_ENGINEDATA) release/scummvm/
$(INSTALL) -c -m 644 $(DIST_FILES_DOCS) release/scummvm/
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip release/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip release/scummvm/
$(CP) $(srcdir)/dists/motoezx/* release/scummvm/
tar -C release -cvzf release/ScummVM-motoezx.pkg scummvm
$(RM) -r release/scummvm
@@ -16,6 +17,7 @@ motomagx-mpkg: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(DIST_FILES_ENGINEDATA) release/scummvm/
$(INSTALL) -c -m 644 $(DIST_FILES_DOCS) release/scummvm/
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip release/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip release/scummvm/
$(CP) $(srcdir)/dists/motomagx/mpkg/* release/scummvm/
tar -C release -cvzf release/ScummVM-motomagx.mpkg scummvm
$(RM) -r release/scummvm
@@ -26,6 +28,7 @@ motomagx-mgx: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(DIST_FILES_ENGINEDATA) release/scummvm/
$(INSTALL) -c -m 644 $(DIST_FILES_DOCS) release/scummvm/
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip release/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip release/scummvm/
$(CP) $(srcdir)/dists/motomagx/mgx/* release/scummvm/
tar -C release -cvf release/ScummVM-motomagx.mgx scummvm
$(RM) -r release/scummvm
@@ -38,6 +41,7 @@ motomagx-pep: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(DIST_FILES_ENGINEDATA) release/pep/app
$(INSTALL) -c -m 644 $(DIST_FILES_DOCS) release/pep/app
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip release/pep/app
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip release/pep/app
tar -C release/pep -czvf release/ScummVM-motomagx.pep app description.ini scummvm_big_usr.png scummvm_small_usr.png
$(RM) -r release/pep
diff --git a/backends/platform/maemo/debian/rules b/backends/platform/maemo/debian/rules
index c713403876..2aa7f339c9 100755
--- a/backends/platform/maemo/debian/rules
+++ b/backends/platform/maemo/debian/rules
@@ -46,6 +46,7 @@ install: build
install -m0644 dists/pred.dic debian/scummvm/opt/scummvm/share
install -m0644 gui/themes/scummclassic.zip gui/themes/scummmodern.zip debian/scummvm/opt/scummvm/share
install -m0644 backends/vkeybd/packs/vkeybd_default.zip debian/scummvm/opt/scummvm/share
+ install -m0644 backends/vkeybd/packs/vkeybd_small.zip debian/scummvm/opt/scummvm/share
# for optified version we can also add engine datafiles
install -m0644 dists/engine-data/drascula.dat dists/engine-data/hugo.dat dists/engine-data/kyra.dat dists/engine-data/lure.dat dists/engine-data/queen.tbl dists/engine-data/sky.cpt dists/engine-data/teenagent.dat dists/engine-data/tony.dat dists/engine-data/toon.dat debian/scummvm/opt/scummvm/share
diff --git a/backends/platform/n64/n64.mk b/backends/platform/n64/n64.mk
index 83ad405503..3198170788 100644
--- a/backends/platform/n64/n64.mk
+++ b/backends/platform/n64/n64.mk
@@ -20,6 +20,7 @@ ifdef DIST_FILES_ENGINEDATA
endif
$(CP) $(DIST_FILES_DOCS) $(bundle_name)/
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)/romfs
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)/romfs
genromfs -f $(bundle_name)/romfs.img -d $(bundle_name)/romfs -V scummvmn64
mips64-objcopy $(EXECUTABLE) $(bundle_name)/scummvm.elf -O binary
cat $(N64SDK)/hkz-libn64/bootcode $(bundle_name)/scummvm.elf $(bundle_name)/romfs.img > scummvm.v64
diff --git a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg
index 5f74bee1c7..2ba65c4571 100644
--- a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg
+++ b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg
@@ -74,6 +74,7 @@
"..\..\..\..\dists\engine-data\toon.dat"-"c:\data\scummvm\toon.dat"
"..\..\..\..\dists\engine-data\wintermute.zip"-"c:\data\scummvm\wintermute.zip"
"..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\data\scummvm\vkeybd_default.zip"
+"..\..\..\vkeybd\packs\vkeybd_small.zip"-"c:\data\scummvm\vkeybd_small.zip"
"..\..\..\..\gui\themes\translations.dat"-"c:\data\scummvm\translations.dat"
"..\..\..\..\gui\themes\scummmodern.zip"-"c:\data\scummvm\scummmodern.zip"
diff --git a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg
index 4ef085d600..2d2edf2803 100644
--- a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg
+++ b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg
@@ -82,6 +82,7 @@
"..\..\..\..\dists\engine-data\toon.dat"-"c:\data\scummvm\toon.dat"
"..\..\..\..\dists\engine-data\wintermute.zip"-"c:\data\scummvm\wintermute.zip"
"..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\data\scummvm\vkeybd_default.zip"
+"..\..\..\vkeybd\packs\vkeybd_small.zip"-"c:\data\scummvm\vkeybd_small.zip"
"..\..\..\..\gui\themes\translations.dat"-"c:\data\scummvm\translations.dat"
"..\..\..\..\gui\themes\scummmodern.zip"-"c:\data\scummvm\scummmodern.zip"
diff --git a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg
index b4f1cfdd5c..5db65e8e5c 100644
--- a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg
+++ b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg
@@ -64,6 +64,7 @@
"..\..\..\..\dists\engine-data\teenagent.dat"-"c:\shared\scummvm\teenagent.dat"
"..\..\..\..\dists\engine-data\toon.dat"-"c:\shared\scummvm\toon.dat"
"..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\shared\scummvm\vkeybd_default.zip"
+"..\..\..\vkeybd\packs\vkeybd_small.zip"-"c:\shared\scummvm\vkeybd_small.zip"
"..\..\..\..\gui\themes\translations.dat"-"c:\shared\scummvm\translations.dat"
"..\..\..\..\gui\themes\scummmodern.zip"-"c:\shared\scummvm\scummmodern.zip"
diff --git a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg
index 722e23a1b8..d783bd51bd 100644
--- a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg
+++ b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg
@@ -72,6 +72,7 @@
"..\..\..\..\dists\engine-data\teenagent.dat"-"c:\shared\scummvm\teenagent.dat"
"..\..\..\..\dists\engine-data\toon.dat"-"c:\shared\scummvm\toon.dat"
"..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\shared\scummvm\vkeybd_default.zip"
+"..\..\..\vkeybd\packs\vkeybd_small.zip"-"c:\shared\scummvm\vkeybd_small.zip"
"..\..\..\..\gui\themes\translations.dat"-"c:\shared\scummvm\translations.dat"
"..\..\..\..\gui\themes\scummmodern.zip"-"c:\shared\scummvm\scummmodern.zip"
diff --git a/backends/platform/tizen/form.cpp b/backends/platform/tizen/form.cpp
index 3f7b918102..568829dc96 100644
--- a/backends/platform/tizen/form.cpp
+++ b/backends/platform/tizen/form.cpp
@@ -338,7 +338,14 @@ void TizenAppForm::showKeypad() {
// display the soft keyboard
if (_state == kActiveState) {
_buttonState = kLeftButton;
- pushKey(Common::KEYCODE_F7);
+
+ Common::Event e;
+ e.type = Common::EVENT_VIRTUAL_KEYBOARD;
+ if (_eventQueueLock) {
+ _eventQueueLock->Acquire();
+ _eventQueue.push(e);
+ _eventQueueLock->Release();
+ }
}
}
diff --git a/backends/platform/wii/osystem_events.cpp b/backends/platform/wii/osystem_events.cpp
index 2da1d80917..0563639de3 100644
--- a/backends/platform/wii/osystem_events.cpp
+++ b/backends/platform/wii/osystem_events.cpp
@@ -357,8 +357,8 @@ bool OSystem_Wii::pollEvent(Common::Event &event) {
PAD_EVENT(PADS_Y, Common::KEYCODE_PERIOD, '.', flags);
PAD_EVENT(PADS_START, Common::KEYCODE_F5, Common::ASCII_F5, flags);
PAD_EVENT(PADS_UP, Common::KEYCODE_LSHIFT, 0, flags);
- PAD_EVENT(PADS_DOWN, Common::KEYCODE_F7, Common::ASCII_F7, flags);
- //PAD_EVENT(PADS_LEFT, Common::KEYCODE_F8, Common::ASCII_F8, 0);
+ PAD_EVENT(PADS_DOWN, Common::KEYCODE_F7, Common::ASCII_F7, Common::KBD_CTRL);
+ //PAD_EVENT(PADS_LEFT, Common::KEYCODE_F8, Common::ASCII_F8, Common::KBD_CTRL);
if ((bd | bu) & (PADS_A | PADS_B)) {
if (bd & PADS_A)
diff --git a/backends/platform/wii/wii.mk b/backends/platform/wii/wii.mk
index 99ef46338c..62a8900d9a 100644
--- a/backends/platform/wii/wii.mk
+++ b/backends/platform/wii/wii.mk
@@ -43,6 +43,7 @@ ifneq ($(DIST_FILES_ENGINEDATA),)
$(CP) $(DIST_FILES_ENGINEDATA) wiidist/scummvm/
endif
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip wiidist/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip wiidist/scummvm/
wiiloaddist: wiidist
cd wiidist && zip -9r scummvm.zip scummvm/
diff --git a/backends/vkeybd/packs/vkeybd_small.zip b/backends/vkeybd/packs/vkeybd_small.zip
new file mode 100644
index 0000000000..d1c7fc75e5
--- /dev/null
+++ b/backends/vkeybd/packs/vkeybd_small.zip
Binary files differ
diff --git a/backends/vkeybd/packs/vkeybd_small/lowercase-symbols320x240.bmp b/backends/vkeybd/packs/vkeybd_small/lowercase-symbols320x240.bmp
new file mode 100644
index 0000000000..08d40a0373
--- /dev/null
+++ b/backends/vkeybd/packs/vkeybd_small/lowercase-symbols320x240.bmp
Binary files differ
diff --git a/backends/vkeybd/packs/vkeybd_small/lowercase320x240.bmp b/backends/vkeybd/packs/vkeybd_small/lowercase320x240.bmp
new file mode 100644
index 0000000000..25579234bb
--- /dev/null
+++ b/backends/vkeybd/packs/vkeybd_small/lowercase320x240.bmp
Binary files differ
diff --git a/backends/vkeybd/packs/vkeybd_small/uppercase-symbols320x240.bmp b/backends/vkeybd/packs/vkeybd_small/uppercase-symbols320x240.bmp
new file mode 100644
index 0000000000..76a7f51839
--- /dev/null
+++ b/backends/vkeybd/packs/vkeybd_small/uppercase-symbols320x240.bmp
Binary files differ
diff --git a/backends/vkeybd/packs/vkeybd_small/uppercase320x240.bmp b/backends/vkeybd/packs/vkeybd_small/uppercase320x240.bmp
new file mode 100644
index 0000000000..96ce1adbe4
--- /dev/null
+++ b/backends/vkeybd/packs/vkeybd_small/uppercase320x240.bmp
Binary files differ
diff --git a/backends/vkeybd/packs/vkeybd_small/vkeybd_small.xml b/backends/vkeybd/packs/vkeybd_small/vkeybd_small.xml
new file mode 100644
index 0000000000..20e91fe2fc
--- /dev/null
+++ b/backends/vkeybd/packs/vkeybd_small/vkeybd_small.xml
@@ -0,0 +1,637 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<keyboard initial_mode="lowercase" v_align="bottom" h_align="center">
+<!-- coords key = "start x, start y, end x, end y" -->
+ <!-- Lowercase -->
+ <mode name="lowercase" resolutions="320x240">
+ <layout resolution="320x240" bitmap="lowercase320x240.bmp" transparent_color="255,0,255">
+ <map>
+ <area shape="rect" coords="13,8,306,20" target="display_area" />
+ <area shape="rect" coords="9,26,25,42" target="esc" />
+ <area shape="rect" coords="50,25,67,43" target="f2" />
+ <area shape="rect" coords="29,24,46,43" target="f1" />
+ <area shape="rect" coords="71,26,88,44" target="f3" />
+ <area shape="rect" coords="90,25,107,43" target="f4" />
+ <area shape="rect" coords="111,26,128,44" target="f5" />
+ <area shape="rect" coords="132,26,149,44" target="f6" />
+ <area shape="rect" coords="153,25,170,44" target="f7" />
+ <area shape="rect" coords="173,26,190,44" target="f8" />
+ <area shape="rect" coords="194,24,211,43" target="f9" />
+ <area shape="rect" coords="215,26,231,44" target="f10" />
+ <area shape="rect" coords="235,26,253,43" target="f11" />
+ <area shape="rect" coords="255,26,272,45" target="f12" />
+ <area shape="rect" coords="276,27,310,43" target="del" />
+ <area shape="rect" coords="276,46,299,65" target="delete" />
+ <area shape="rect" coords="300,46,311,65" target="backspace" />
+ <area shape="rect" coords="8,68,32,85" target="tab" />
+ <area shape="rect" coords="36,68,53,85" target="q" />
+ <area shape="rect" coords="57,68,75,86" target="w" />
+ <area shape="rect" coords="78,67,94,85" target="e" />
+ <area shape="rect" coords="98,67,115,85" target="r" />
+ <area shape="rect" coords="119,67,136,85" target="t" />
+ <area shape="rect" coords="141,68,158,86" target="y" />
+ <area shape="rect" coords="161,67,179,86" target="u" />
+ <area shape="rect" coords="182,67,199,86" target="i" />
+ <area shape="rect" coords="202,67,220,85" target="o" />
+ <area shape="rect" coords="223,68,240,86" target="p" />
+ <area shape="rect" coords="44,88,63,107" target="a" />
+ <area shape="rect" coords="65,88,84,106" target="s" />
+ <area shape="rect" coords="86,89,104,107" target="d" />
+ <area shape="rect" coords="107,89,124,107" target="f" />
+ <area shape="rect" coords="128,89,145,107" target="g" />
+ <area shape="rect" coords="149,88,165,107" target="h" />
+ <area shape="rect" coords="169,89,186,107" target="j" />
+ <area shape="rect" coords="189,89,207,107" target="k" />
+ <area shape="rect" coords="210,89,228,107" target="l" />
+ <area shape="rect" coords="273,89,311,106" target="enter" />
+ <area shape="rect" coords="9,110,50,127" target="shift" />
+ <area shape="rect" coords="8,89,41,106" target="caps" />
+ <area shape="rect" coords="58,110,75,128" target="z" />
+ <area shape="rect" coords="79,110,96,128" target="x" />
+ <area shape="rect" coords="99,109,116,127" target="c" />
+ <area shape="rect" coords="120,110,138,128" target="v" />
+ <area shape="rect" coords="141,109,157,127" target="b" />
+ <area shape="rect" coords="162,110,179,128" target="n" />
+ <area shape="rect" coords="182,110,199,128" target="m" />
+ <area shape="rect" coords="271,109,311,128" target="symbols" />
+ <area shape="rect" coords="9,130,33,148" target="ctrl" />
+ <area shape="rect" coords="38,130,61,147" target="alt" />
+ <area shape="rect" coords="67,130,262,148" target="space" />
+ <area shape="rect" coords="8,47,26,64" target="|" />
+ <area shape="rect" coords="28,47,45,64" target="1" />
+ <area shape="rect" coords="50,47,67,65" target="2" />
+ <area shape="rect" coords="70,46,87,65" target="3" />
+ <area shape="rect" coords="91,46,108,64" target="4" />
+ <area shape="rect" coords="111,46,129,65" target="5" />
+ <area shape="rect" coords="132,47,149,65" target="6" />
+ <area shape="rect" coords="152,47,170,64" target="7" />
+ <area shape="rect" coords="174,46,191,63" target="8" />
+ <area shape="rect" coords="194,47,211,65" target="9" />
+ <area shape="rect" coords="215,46,232,64" target="0" />
+ <area shape="rect" coords="235,47,252,65" target="-" />
+ <area shape="rect" coords="255,46,272,65" target="=" />
+ <area shape="rect" coords="244,68,261,86" target="[" />
+ <area shape="rect" coords="264,67,282,86" target="]" />
+ <area shape="rect" coords="284,68,309,86" target="#" />
+ <area shape="rect" coords="231,88,249,106" target=";" />
+ <area shape="rect" coords="251,89,269,107" target="’" />
+ <area shape="rect" coords="202,110,219,128" target="," />
+ <area shape="rect" coords="223,110,241,128" target="." />
+ <area shape="rect" coords="243,110,261,128" target="/" />
+ <area shape="rect" coords="269,131,288,150" target="ok" />
+ <area shape="rect" coords="292,131,311,150" target="cancel" />
+ </map>
+ </layout>
+ <event name="esc" type="key" code="27" ascii="27" modifiers="" />
+ <event name="f1" type="key" code="282" ascii="315" modifiers="" />
+ <event name="f2" type="key" code="283" ascii="316" modifiers="" />
+ <event name="f3" type="key" code="284" ascii="317" modifiers="" />
+ <event name="f4" type="key" code="285" ascii="318" modifiers="" />
+ <event name="f5" type="key" code="286" ascii="319" modifiers="" />
+ <event name="f6" type="key" code="287" ascii="320" modifiers="" />
+ <event name="f7" type="key" code="288" ascii="321" modifiers="" />
+ <event name="f8" type="key" code="289" ascii="322" modifiers="" />
+ <event name="f9" type="key" code="290" ascii="323" modifiers="" />
+ <event name="f10" type="key" code="291" ascii="324" modifiers="" />
+ <event name="f11" type="key" code="292" ascii="325" modifiers="" />
+ <event name="f12" type="key" code="293" ascii="326" modifiers="" />
+ <event name="del" type="key" code="127" ascii="0" modifiers="" />
+ <event name="ctrl" type="modifier" modifiers="ctrl" />
+ <event name="alt" type="modifier" modifiers="alt" />
+ <event name="shift" type="modifier" modifiers="shift" />
+ <event name="caps" type="switch_mode" mode="uppercase" />
+ <event name="symbols" type="switch_mode" mode="lowercasesymbols" />
+ <event name="backspace" type="key" code="8" ascii="8" modifiers="" />
+ <event name="enter" type="key" code="13" ascii="13" modifiers="" />
+ <event name="|" type="key" code="124" ascii="124" modifiers="" />
+ <event name="-" type="key" code="45" ascii="45" modifiers="" />
+ <event name="=" type="key" code="61" ascii="61" modifiers="" />
+ <event name="[" type="key" code="91" ascii="91" modifiers="" />
+ <event name="]" type="key" code="93" ascii="93" modifiers="" />
+ <event name="#" type="key" code="35" ascii="35" modifiers="" />
+ <event name=";" type="key" code="59" ascii="59" modifiers="" />
+ <event name="'" type="key" code="39" ascii="39" modifiers="" />
+ <event name="," type="key" code="44" ascii="44" modifiers="" />
+ <event name="." type="key" code="46" ascii="46" modifiers="" />
+ <event name="/" type="key" code="47" ascii="47" modifiers="" />
+ <event name="space" type="key" code="32" ascii="32" modifiers="" />
+ <event name="tab" type="key" code="9" ascii="9" modifiers="" />
+ <event name="a" type="key" code="97" ascii="97" modifiers="" />
+ <event name="b" type="key" code="98" ascii="98" modifiers="" />
+ <event name="c" type="key" code="99" ascii="99" modifiers="" />
+ <event name="d" type="key" code="100" ascii="100" modifiers="" />
+ <event name="e" type="key" code="101" ascii="101" modifiers="" />
+ <event name="f" type="key" code="102" ascii="102" modifiers="" />
+ <event name="g" type="key" code="103" ascii="103" modifiers="" />
+ <event name="h" type="key" code="104" ascii="104" modifiers="" />
+ <event name="i" type="key" code="105" ascii="105" modifiers="" />
+ <event name="j" type="key" code="106" ascii="106" modifiers="" />
+ <event name="k" type="key" code="107" ascii="107" modifiers="" />
+ <event name="l" type="key" code="108" ascii="108" modifiers="" />
+ <event name="m" type="key" code="109" ascii="109" modifiers="" />
+ <event name="n" type="key" code="110" ascii="110" modifiers="" />
+ <event name="o" type="key" code="111" ascii="111" modifiers="" />
+ <event name="p" type="key" code="112" ascii="112" modifiers="" />
+ <event name="q" type="key" code="113" ascii="113" modifiers="" />
+ <event name="r" type="key" code="114" ascii="114" modifiers="" />
+ <event name="s" type="key" code="115" ascii="115" modifiers="" />
+ <event name="t" type="key" code="116" ascii="116" modifiers="" />
+ <event name="u" type="key" code="117" ascii="117" modifiers="" />
+ <event name="v" type="key" code="118" ascii="118" modifiers="" />
+ <event name="w" type="key" code="119" ascii="119" modifiers="" />
+ <event name="x" type="key" code="120" ascii="120" modifiers="" />
+ <event name="y" type="key" code="121" ascii="121" modifiers="" />
+ <event name="z" type="key" code="122" ascii="122" modifiers="" />
+ <event name="0" type="key" code="48" ascii="48" modifiers="" />
+ <event name="1" type="key" code="49" ascii="49" modifiers="" />
+ <event name="2" type="key" code="50" ascii="50" modifiers="" />
+ <event name="3" type="key" code="51" ascii="51" modifiers="" />
+ <event name="4" type="key" code="52" ascii="52" modifiers="" />
+ <event name="5" type="key" code="53" ascii="53" modifiers="" />
+ <event name="6" type="key" code="54" ascii="54" modifiers="" />
+ <event name="7" type="key" code="55" ascii="55" modifiers="" />
+ <event name="8" type="key" code="56" ascii="56" modifiers="" />
+ <event name="9" type="key" code="57" ascii="57" modifiers="" />
+ <event name="ok" type="submit" />
+ <event name="cancel" type="cancel" />
+ <event name="quit" type="submit" />
+ <event name="delete" type="delete" />
+ </mode>
+
+ <!-- Uppercase -->
+ <mode name="uppercase" resolutions="320x240">
+ <layout resolution="320x240" bitmap="uppercase320x240.bmp" transparent_color="255,0,255">
+ <map>
+ <area shape="rect" coords="13,8,306,20" target="display_area" />
+ <area shape="rect" coords="9,26,25,42" target="esc" />
+ <area shape="rect" coords="50,25,67,43" target="f2" />
+ <area shape="rect" coords="29,24,46,43" target="f1" />
+ <area shape="rect" coords="71,26,88,44" target="f3" />
+ <area shape="rect" coords="90,25,107,43" target="f4" />
+ <area shape="rect" coords="111,26,128,44" target="f5" />
+ <area shape="rect" coords="132,26,149,44" target="f6" />
+ <area shape="rect" coords="153,25,170,44" target="f7" />
+ <area shape="rect" coords="173,26,190,44" target="f8" />
+ <area shape="rect" coords="194,24,211,43" target="f9" />
+ <area shape="rect" coords="215,26,231,44" target="f10" />
+ <area shape="rect" coords="235,26,253,43" target="f11" />
+ <area shape="rect" coords="255,26,272,45" target="f12" />
+ <area shape="rect" coords="276,27,310,43" target="del" />
+ <area shape="rect" coords="276,46,299,65" target="delete" />
+ <area shape="rect" coords="300,46,311,65" target="backspace" />
+ <area shape="rect" coords="8,68,32,85" target="tab" />
+ <area shape="rect" coords="36,68,53,85" target="Q" />
+ <area shape="rect" coords="57,68,75,86" target="W" />
+ <area shape="rect" coords="78,67,94,85" target="E" />
+ <area shape="rect" coords="98,67,115,85" target="R" />
+ <area shape="rect" coords="119,67,136,85" target="T" />
+ <area shape="rect" coords="141,68,158,86" target="Y" />
+ <area shape="rect" coords="161,67,179,86" target="U" />
+ <area shape="rect" coords="182,67,199,86" target="I" />
+ <area shape="rect" coords="202,67,220,85" target="O" />
+ <area shape="rect" coords="223,68,240,86" target="P" />
+ <area shape="rect" coords="44,88,63,107" target="A" />
+ <area shape="rect" coords="65,88,84,106" target="S" />
+ <area shape="rect" coords="86,89,104,107" target="D" />
+ <area shape="rect" coords="107,89,124,107" target="F" />
+ <area shape="rect" coords="128,89,145,107" target="G" />
+ <area shape="rect" coords="149,88,165,107" target="H" />
+ <area shape="rect" coords="169,89,186,107" target="J" />
+ <area shape="rect" coords="189,89,207,107" target="K" />
+ <area shape="rect" coords="210,89,228,107" target="L" />
+ <area shape="rect" coords="273,89,311,106" target="enter" />
+ <area shape="rect" coords="9,110,50,127" target="shift" />
+ <area shape="rect" coords="8,89,41,106" target="caps" />
+ <area shape="rect" coords="58,110,75,128" target="Z" />
+ <area shape="rect" coords="79,110,96,128" target="X" />
+ <area shape="rect" coords="99,109,116,127" target="C" />
+ <area shape="rect" coords="120,110,138,128" target="V" />
+ <area shape="rect" coords="141,109,157,127" target="B" />
+ <area shape="rect" coords="162,110,179,128" target="N" />
+ <area shape="rect" coords="182,110,199,128" target="M" />
+ <area shape="rect" coords="271,109,311,128" target="symbols" />
+ <area shape="rect" coords="9,130,33,148" target="ctrl" />
+ <area shape="rect" coords="38,130,61,147" target="alt" />
+ <area shape="rect" coords="67,130,262,148" target="space" />
+ <area shape="rect" coords="8,47,26,64" target="|" />
+ <area shape="rect" coords="28,47,45,64" target="1" />
+ <area shape="rect" coords="50,47,67,65" target="2" />
+ <area shape="rect" coords="70,46,87,65" target="3" />
+ <area shape="rect" coords="91,46,108,64" target="4" />
+ <area shape="rect" coords="111,46,129,65" target="5" />
+ <area shape="rect" coords="132,47,149,65" target="6" />
+ <area shape="rect" coords="152,47,170,64" target="7" />
+ <area shape="rect" coords="174,46,191,63" target="8" />
+ <area shape="rect" coords="194,47,211,65" target="9" />
+ <area shape="rect" coords="215,46,232,64" target="0" />
+ <area shape="rect" coords="235,47,252,65" target="-" />
+ <area shape="rect" coords="255,46,272,65" target="=" />
+ <area shape="rect" coords="244,68,261,86" target="[" />
+ <area shape="rect" coords="264,67,282,86" target="]" />
+ <area shape="rect" coords="284,68,309,86" target="#" />
+ <area shape="rect" coords="231,88,249,106" target=";" />
+ <area shape="rect" coords="251,89,269,107" target="’" />
+ <area shape="rect" coords="202,110,219,128" target="," />
+ <area shape="rect" coords="223,110,241,128" target="." />
+ <area shape="rect" coords="243,110,261,128" target="/" />
+ <area shape="rect" coords="269,131,288,150" target="ok" />
+ <area shape="rect" coords="292,131,311,150" target="cancel" />
+ </map>
+ </layout>
+ <event name="esc" type="key" code="27" ascii="27" modifiers="" />
+ <event name="f1" type="key" code="282" ascii="315" modifiers="" />
+ <event name="f2" type="key" code="283" ascii="316" modifiers="" />
+ <event name="f3" type="key" code="284" ascii="317" modifiers="" />
+ <event name="f4" type="key" code="285" ascii="318" modifiers="" />
+ <event name="f5" type="key" code="286" ascii="319" modifiers="" />
+ <event name="f6" type="key" code="287" ascii="320" modifiers="" />
+ <event name="f7" type="key" code="288" ascii="321" modifiers="" />
+ <event name="f8" type="key" code="289" ascii="322" modifiers="" />
+ <event name="f9" type="key" code="290" ascii="323" modifiers="" />
+ <event name="f10" type="key" code="291" ascii="324" modifiers="" />
+ <event name="f11" type="key" code="292" ascii="325" modifiers="" />
+ <event name="f12" type="key" code="293" ascii="326" modifiers="" />
+ <event name="del" type="key" code="127" ascii="0" modifiers="" />
+ <event name="ctrl" type="modifier" modifiers="ctrl" />
+ <event name="alt" type="modifier" modifiers="alt" />
+ <event name="shift" type="modifier" modifiers="shift" />
+ <event name="caps" type="switch_mode" mode="lowercase" />
+ <event name="symbols" type="switch_mode" mode="uppercasesymbols" />
+ <event name="backspace" type="key" code="8" ascii="8" modifiers="" />
+ <event name="enter" type="key" code="13" ascii="13" modifiers="" />
+ <event name="|" type="key" code="124" ascii="124" modifiers="" />
+ <event name="-" type="key" code="45" ascii="45" modifiers="" />
+ <event name="=" type="key" code="61" ascii="61" modifiers="" />
+ <event name="[" type="key" code="91" ascii="91" modifiers="" />
+ <event name="]" type="key" code="93" ascii="93" modifiers="" />
+ <event name="#" type="key" code="35" ascii="35" modifiers="" />
+ <event name=";" type="key" code="59" ascii="59" modifiers="" />
+ <event name="'" type="key" code="39" ascii="39" modifiers="" />
+ <event name="," type="key" code="44" ascii="44" modifiers="" />
+ <event name="." type="key" code="46" ascii="46" modifiers="" />
+ <event name="/" type="key" code="47" ascii="47" modifiers="" />
+ <event name="space" type="key" code="32" ascii="32" modifiers="" />
+ <event name="tab" type="key" code="9" ascii="9" modifiers="" />
+ <event name="A" type="key" code="97" ascii="65" modifiers="shift" />
+ <event name="B" type="key" code="98" ascii="66" modifiers="shift" />
+ <event name="C" type="key" code="99" ascii="67" modifiers="shift" />
+ <event name="D" type="key" code="100" ascii="68" modifiers="shift" />
+ <event name="E" type="key" code="101" ascii="69" modifiers="shift" />
+ <event name="F" type="key" code="102" ascii="70" modifiers="shift" />
+ <event name="G" type="key" code="103" ascii="71" modifiers="shift" />
+ <event name="H" type="key" code="104" ascii="72" modifiers="shift" />
+ <event name="I" type="key" code="105" ascii="73" modifiers="shift" />
+ <event name="J" type="key" code="106" ascii="74" modifiers="shift" />
+ <event name="K" type="key" code="107" ascii="75" modifiers="shift" />
+ <event name="L" type="key" code="108" ascii="76" modifiers="shift" />
+ <event name="M" type="key" code="109" ascii="77" modifiers="shift" />
+ <event name="N" type="key" code="110" ascii="78" modifiers="shift" />
+ <event name="O" type="key" code="111" ascii="79" modifiers="shift" />
+ <event name="P" type="key" code="112" ascii="80" modifiers="shift" />
+ <event name="Q" type="key" code="113" ascii="81" modifiers="shift" />
+ <event name="R" type="key" code="114" ascii="82" modifiers="shift" />
+ <event name="S" type="key" code="115" ascii="83" modifiers="shift" />
+ <event name="T" type="key" code="116" ascii="84" modifiers="shift" />
+ <event name="U" type="key" code="117" ascii="85" modifiers="shift" />
+ <event name="V" type="key" code="118" ascii="86" modifiers="shift" />
+ <event name="W" type="key" code="119" ascii="87" modifiers="shift" />
+ <event name="X" type="key" code="120" ascii="88" modifiers="shift" />
+ <event name="Y" type="key" code="121" ascii="89" modifiers="shift" />
+ <event name="Z" type="key" code="122" ascii="90" modifiers="shift" />
+ <event name="0" type="key" code="48" ascii="48" modifiers="" />
+ <event name="1" type="key" code="49" ascii="49" modifiers="" />
+ <event name="2" type="key" code="50" ascii="50" modifiers="" />
+ <event name="3" type="key" code="51" ascii="51" modifiers="" />
+ <event name="4" type="key" code="52" ascii="52" modifiers="" />
+ <event name="5" type="key" code="53" ascii="53" modifiers="" />
+ <event name="6" type="key" code="54" ascii="54" modifiers="" />
+ <event name="7" type="key" code="55" ascii="55" modifiers="" />
+ <event name="8" type="key" code="56" ascii="56" modifiers="" />
+ <event name="9" type="key" code="57" ascii="57" modifiers="" />
+ <event name="ok" type="submit" />
+ <event name="cancel" type="cancel" />
+ <event name="quit" type="submit" />
+ <event name="delete" type="delete" />
+ </mode>
+
+ <!-- Lowercase Symbols -->
+ <mode name="lowercasesymbols" resolutions="320x240">
+ <layout resolution="320x240" bitmap="lowercase-symbols320x240.bmp" transparent_color="255,0,255">
+ <map>
+ <area shape="rect" coords="13,8,306,20" target="display_area" />
+ <area shape="rect" coords="9,26,25,42" target="esc" />
+ <area shape="rect" coords="50,25,67,43" target="f2" />
+ <area shape="rect" coords="29,24,46,43" target="f1" />
+ <area shape="rect" coords="71,26,88,44" target="f3" />
+ <area shape="rect" coords="90,25,107,43" target="f4" />
+ <area shape="rect" coords="111,26,128,44" target="f5" />
+ <area shape="rect" coords="132,26,149,44" target="f6" />
+ <area shape="rect" coords="153,25,170,44" target="f7" />
+ <area shape="rect" coords="173,26,190,44" target="f8" />
+ <area shape="rect" coords="194,24,211,43" target="f9" />
+ <area shape="rect" coords="215,26,231,44" target="f10" />
+ <area shape="rect" coords="235,26,253,43" target="f11" />
+ <area shape="rect" coords="255,26,272,45" target="f12" />
+ <area shape="rect" coords="276,27,310,43" target="del" />
+ <area shape="rect" coords="8,47,26,64" target="¬" />
+ <area shape="rect" coords="28,47,45,64" target="!" />
+ <area shape="rect" coords="50,47,67,65" target="quote" />
+ <area shape="rect" coords="70,46,87,65" target="£" />
+ <area shape="rect" coords="91,46,108,64" target="$" />
+ <area shape="rect" coords="111,46,129,65" target="%" />
+ <area shape="rect" coords="132,47,149,65" target="^" />
+ <area shape="rect" coords="152,47,170,64" target="&amp;" />
+ <area shape="rect" coords="174,46,191,63" target="*" />
+ <area shape="rect" coords="194,47,211,65" target="(" />
+ <area shape="rect" coords="215,46,232,64" target=")" />
+ <area shape="rect" coords="235,47,252,65" target="_" />
+ <area shape="rect" coords="255,46,272,65" target="+" />
+ <area shape="rect" coords="276,46,299,65" target="delete" />
+ <area shape="rect" coords="300,46,311,65" target="backspace" />
+ <area shape="rect" coords="8,68,32,85" target="tab" />
+ <area shape="rect" coords="36,68,53,85" target="q" />
+ <area shape="rect" coords="57,68,75,86" target="w" />
+ <area shape="rect" coords="78,67,94,85" target="e" />
+ <area shape="rect" coords="98,67,115,85" target="r" />
+ <area shape="rect" coords="119,67,136,85" target="t" />
+ <area shape="rect" coords="141,68,158,86" target="y" />
+ <area shape="rect" coords="161,67,179,86" target="u" />
+ <area shape="rect" coords="182,67,199,86" target="i" />
+ <area shape="rect" coords="202,67,220,85" target="o" />
+ <area shape="rect" coords="223,68,240,86" target="p" />
+ <area shape="rect" coords="244,68,261,86" target="{" />
+ <area shape="rect" coords="264,67,282,86" target="}" />
+ <area shape="rect" coords="284,68,309,86" target="~" />
+ <area shape="rect" coords="8,89,41,106" target="caps" />
+ <area shape="rect" coords="44,88,63,107" target="a" />
+ <area shape="rect" coords="65,88,84,106" target="s" />
+ <area shape="rect" coords="86,89,104,107" target="d" />
+ <area shape="rect" coords="107,89,124,107" target="f" />
+ <area shape="rect" coords="128,89,145,107" target="g" />
+ <area shape="rect" coords="149,88,165,107" target="h" />
+ <area shape="rect" coords="169,89,186,107" target="j" />
+ <area shape="rect" coords="189,89,207,107" target="k" />
+ <area shape="rect" coords="210,89,228,107" target="l" />
+ <area shape="rect" coords="231,88,249,106" target=":" />
+ <area shape="rect" coords="251,89,269,107" target="@" />
+ <area shape="rect" coords="273,89,311,106" target="enter" />
+ <area shape="rect" coords="9,110,50,127" target="shift" />
+ <area shape="rect" coords="58,110,75,128" target="z" />
+ <area shape="rect" coords="79,110,96,128" target="x" />
+ <area shape="rect" coords="99,109,116,127" target="c" />
+ <area shape="rect" coords="120,110,138,128" target="v" />
+ <area shape="rect" coords="141,109,157,127" target="b" />
+ <area shape="rect" coords="162,110,179,128" target="n" />
+ <area shape="rect" coords="182,110,199,128" target="m" />
+ <area shape="rect" coords="202,110,219,128" target="&lt;" />
+ <area shape="rect" coords="223,110,241,128" target="&gt;" />
+ <area shape="rect" coords="243,110,261,128" target="?" />
+ <area shape="rect" coords="271,109,311,128" target="symbols" />
+ <area shape="rect" coords="9,130,33,148" target="ctrl" />
+ <area shape="rect" coords="38,130,61,147" target="alt" />
+ <area shape="rect" coords="67,130,262,148" target="space" />
+ <area shape="rect" coords="269,131,288,150" target="ok" />
+ <area shape="rect" coords="292,131,311,150" target="cancel" />
+ </map>
+ </layout>
+ <event name="esc" type="key" code="27" ascii="27" modifiers="" />
+ <event name="f1" type="key" code="282" ascii="315" modifiers="" />
+ <event name="f2" type="key" code="283" ascii="316" modifiers="" />
+ <event name="f3" type="key" code="284" ascii="317" modifiers="" />
+ <event name="f4" type="key" code="285" ascii="318" modifiers="" />
+ <event name="f5" type="key" code="286" ascii="319" modifiers="" />
+ <event name="f6" type="key" code="287" ascii="320" modifiers="" />
+ <event name="f7" type="key" code="288" ascii="321" modifiers="" />
+ <event name="f8" type="key" code="289" ascii="322" modifiers="" />
+ <event name="f9" type="key" code="290" ascii="323" modifiers="" />
+ <event name="f10" type="key" code="291" ascii="324" modifiers="" />
+ <event name="f11" type="key" code="292" ascii="325" modifiers="" />
+ <event name="f12" type="key" code="293" ascii="326" modifiers="" />
+ <event name="del" type="key" code="127" ascii="0" modifiers="" />
+ <event name="ctrl" type="modifier" modifiers="ctrl" />
+ <event name="alt" type="modifier" modifiers="alt" />
+ <event name="shift" type="modifier" modifiers="shift" />
+ <event name="symbols" type="switch_mode" mode="lowercase" />
+ <event name="caps" type="switch_mode" mode="uppercasesymbols" />
+ <event name="backspace" type="key" code="8" ascii="8" modifiers="" />
+ <event name="enter" type="key" code="13" ascii="13" modifiers="" />
+ <event name="quote" type="key" code="34" ascii="34" modifiers="" />
+ <event name="£" type="key" code="163" ascii="163" modifiers="" />
+ <event name="$" type="key" code="36" ascii="36" modifiers="" />
+ <event name="%" type="key" code="37" ascii="37" modifiers="" />
+ <event name="^" type="key" code="94" ascii="94" modifiers="" />
+ <event name="&amp;" type="key" code="38" ascii="38" modifiers="" />
+ <event name="*" type="key" code="42" ascii="42" modifiers="" />
+ <event name="(" type="key" code="40" ascii="40" modifiers="" />
+ <event name=")" type="key" code="41" ascii="41" modifiers="" />
+ <event name="_" type="key" code="95" ascii="95" modifiers="" />
+ <event name="+" type="key" code="43" ascii="43" modifiers="" />
+ <event name="¬" type="key" code="172" ascii="172" modifiers="" />
+ <event name="!" type="key" code="33" ascii="33" modifiers="" />
+ <event name="{" type="key" code="123" ascii="123" modifiers="" />
+ <event name="}" type="key" code="125" ascii="125" modifiers="" />
+ <event name="~" type="key" code="126" ascii="126" modifiers="" />
+ <event name=":" type="key" code="58" ascii="58" modifiers="" />
+ <event name="@" type="key" code="64" ascii="64" modifiers="" />
+ <event name="&lt;" type="key" code="60" ascii="60" modifiers="" />
+ <event name="&gt;" type="key" code="62" ascii="62" modifiers="" />
+ <event name="?" type="key" code="63" ascii="63" modifiers="" />
+ <event name="space" type="key" code="32" ascii="32" modifiers="" />
+ <event name="tab" type="key" code="9" ascii="9" modifiers="" />
+ <event name="a" type="key" code="97" ascii="97" modifiers="" />
+ <event name="b" type="key" code="98" ascii="98" modifiers="" />
+ <event name="c" type="key" code="99" ascii="99" modifiers="" />
+ <event name="d" type="key" code="100" ascii="100" modifiers="" />
+ <event name="e" type="key" code="101" ascii="101" modifiers="" />
+ <event name="f" type="key" code="102" ascii="102" modifiers="" />
+ <event name="g" type="key" code="103" ascii="103" modifiers="" />
+ <event name="h" type="key" code="104" ascii="104" modifiers="" />
+ <event name="i" type="key" code="105" ascii="105" modifiers="" />
+ <event name="j" type="key" code="106" ascii="106" modifiers="" />
+ <event name="k" type="key" code="107" ascii="107" modifiers="" />
+ <event name="l" type="key" code="108" ascii="108" modifiers="" />
+ <event name="m" type="key" code="109" ascii="109" modifiers="" />
+ <event name="n" type="key" code="110" ascii="110" modifiers="" />
+ <event name="o" type="key" code="111" ascii="111" modifiers="" />
+ <event name="p" type="key" code="112" ascii="112" modifiers="" />
+ <event name="q" type="key" code="113" ascii="113" modifiers="" />
+ <event name="r" type="key" code="114" ascii="114" modifiers="" />
+ <event name="s" type="key" code="115" ascii="115" modifiers="" />
+ <event name="t" type="key" code="116" ascii="116" modifiers="" />
+ <event name="u" type="key" code="117" ascii="117" modifiers="" />
+ <event name="v" type="key" code="118" ascii="118" modifiers="" />
+ <event name="w" type="key" code="119" ascii="119" modifiers="" />
+ <event name="x" type="key" code="120" ascii="120" modifiers="" />
+ <event name="y" type="key" code="121" ascii="121" modifiers="" />
+ <event name="z" type="key" code="122" ascii="122" modifiers="" />
+ <event name="ok" type="submit" />
+ <event name="cancel" type="cancel" />
+ <event name="quit" type="submit" />
+ <event name="delete" type="delete" />
+ </mode>
+
+ <!-- Uppercase Symbols -->
+ <mode name="uppercasesymbols" resolutions="320x240">
+ <layout resolution="320x240" bitmap="uppercase-symbols320x240.bmp" transparent_color="255,0,255">
+ <map>
+ <area shape="rect" coords="13,8,306,20" target="display_area" />
+ <area shape="rect" coords="9,26,25,42" target="esc" />
+ <area shape="rect" coords="50,25,67,43" target="f2" />
+ <area shape="rect" coords="29,24,46,43" target="f1" />
+ <area shape="rect" coords="71,26,88,44" target="f3" />
+ <area shape="rect" coords="90,25,107,43" target="f4" />
+ <area shape="rect" coords="111,26,128,44" target="f5" />
+ <area shape="rect" coords="132,26,149,44" target="f6" />
+ <area shape="rect" coords="153,25,170,44" target="f7" />
+ <area shape="rect" coords="173,26,190,44" target="f8" />
+ <area shape="rect" coords="194,24,211,43" target="f9" />
+ <area shape="rect" coords="215,26,231,44" target="f10" />
+ <area shape="rect" coords="235,26,253,43" target="f11" />
+ <area shape="rect" coords="255,26,272,45" target="f12" />
+ <area shape="rect" coords="276,27,310,43" target="del" />
+ <area shape="rect" coords="8,47,26,64" target="¬" />
+ <area shape="rect" coords="28,47,45,64" target="!" />
+ <area shape="rect" coords="50,47,67,65" target="quote" />
+ <area shape="rect" coords="70,46,87,65" target="£" />
+ <area shape="rect" coords="91,46,108,64" target="$" />
+ <area shape="rect" coords="111,46,129,65" target="%" />
+ <area shape="rect" coords="132,47,149,65" target="^" />
+ <area shape="rect" coords="152,47,170,64" target="&amp;" />
+ <area shape="rect" coords="174,46,191,63" target="*" />
+ <area shape="rect" coords="194,47,211,65" target="(" />
+ <area shape="rect" coords="215,46,232,64" target=")" />
+ <area shape="rect" coords="235,47,252,65" target="_" />
+ <area shape="rect" coords="255,46,272,65" target="+" />
+ <area shape="rect" coords="276,46,299,65" target="delete" />
+ <area shape="rect" coords="300,46,311,65" target="backspace" />
+ <area shape="rect" coords="8,68,32,85" target="tab" />
+ <area shape="rect" coords="36,68,53,85" target="Q" />
+ <area shape="rect" coords="57,68,75,86" target="W" />
+ <area shape="rect" coords="78,67,94,85" target="E" />
+ <area shape="rect" coords="98,67,115,85" target="R" />
+ <area shape="rect" coords="119,67,136,85" target="T" />
+ <area shape="rect" coords="141,68,158,86" target="Y" />
+ <area shape="rect" coords="161,67,179,86" target="U" />
+ <area shape="rect" coords="182,67,199,86" target="I" />
+ <area shape="rect" coords="202,67,220,85" target="O" />
+ <area shape="rect" coords="223,68,240,86" target="P" />
+ <area shape="rect" coords="244,68,261,86" target="{" />
+ <area shape="rect" coords="264,67,282,86" target="}" />
+ <area shape="rect" coords="284,68,309,86" target="~" />
+ <area shape="rect" coords="8,89,41,106" target="caps" />
+ <area shape="rect" coords="44,88,63,107" target="A" />
+ <area shape="rect" coords="65,88,84,106" target="S" />
+ <area shape="rect" coords="86,89,104,107" target="D" />
+ <area shape="rect" coords="107,89,124,107" target="F" />
+ <area shape="rect" coords="128,89,145,107" target="G" />
+ <area shape="rect" coords="149,88,165,107" target="H" />
+ <area shape="rect" coords="169,89,186,107" target="J" />
+ <area shape="rect" coords="189,89,207,107" target="K" />
+ <area shape="rect" coords="210,89,228,107" target="L" />
+ <area shape="rect" coords="231,88,249,106" target=":" />
+ <area shape="rect" coords="251,89,269,107" target="@" />
+ <area shape="rect" coords="273,89,311,106" target="enter" />
+ <area shape="rect" coords="9,110,50,127" target="shift" />
+ <area shape="rect" coords="58,110,75,128" target="z" />
+ <area shape="rect" coords="79,110,96,128" target="x" />
+ <area shape="rect" coords="99,109,116,127" target="c" />
+ <area shape="rect" coords="120,110,138,128" target="v" />
+ <area shape="rect" coords="141,109,157,127" target="b" />
+ <area shape="rect" coords="162,110,179,128" target="n" />
+ <area shape="rect" coords="182,110,199,128" target="m" />
+ <area shape="rect" coords="202,110,219,128" target="&lt;" />
+ <area shape="rect" coords="223,110,241,128" target="&gt;" />
+ <area shape="rect" coords="243,110,261,128" target="?" />
+ <area shape="rect" coords="271,109,311,128" target="symbols" />
+ <area shape="rect" coords="9,130,33,148" target="ctrl" />
+ <area shape="rect" coords="38,130,61,147" target="alt" />
+ <area shape="rect" coords="67,130,262,148" target="space" />
+ <area shape="rect" coords="269,131,288,150" target="ok" />
+ <area shape="rect" coords="292,131,311,150" target="cancel" />
+ </map>
+ </layout>
+ <event name="esc" type="key" code="27" ascii="27" modifiers="" />
+ <event name="f1" type="key" code="282" ascii="315" modifiers="" />
+ <event name="f2" type="key" code="283" ascii="316" modifiers="" />
+ <event name="f3" type="key" code="284" ascii="317" modifiers="" />
+ <event name="f4" type="key" code="285" ascii="318" modifiers="" />
+ <event name="f5" type="key" code="286" ascii="319" modifiers="" />
+ <event name="f6" type="key" code="287" ascii="320" modifiers="" />
+ <event name="f7" type="key" code="288" ascii="321" modifiers="" />
+ <event name="f8" type="key" code="289" ascii="322" modifiers="" />
+ <event name="f9" type="key" code="290" ascii="323" modifiers="" />
+ <event name="f10" type="key" code="291" ascii="324" modifiers="" />
+ <event name="f11" type="key" code="292" ascii="325" modifiers="" />
+ <event name="f12" type="key" code="293" ascii="326" modifiers="" />
+ <event name="del" type="key" code="127" ascii="0" modifiers="" />
+ <event name="ctrl" type="modifier" modifiers="ctrl" />
+ <event name="alt" type="modifier" modifiers="alt" />
+ <event name="shift" type="switch_mode" mode="shiftlowercase" />
+ <event name="caps" type="switch_mode" mode="lowercasesymbols" />
+ <event name="symbols" type="switch_mode" mode="uppercase" />
+ <event name="backspace" type="key" code="8" ascii="8" modifiers="" />
+ <event name="enter" type="key" code="13" ascii="13" modifiers="" />
+ <event name="quote" type="key" code="34" ascii="34" modifiers="" />
+ <event name="£" type="key" code="163" ascii="163" modifiers="" />
+ <event name="$" type="key" code="36" ascii="36" modifiers="" />
+ <event name="%" type="key" code="37" ascii="37" modifiers="" />
+ <event name="^" type="key" code="94" ascii="94" modifiers="" />
+ <event name="&amp;" type="key" code="38" ascii="38" modifiers="" />
+ <event name="*" type="key" code="42" ascii="42" modifiers="" />
+ <event name="(" type="key" code="40" ascii="40" modifiers="" />
+ <event name=")" type="key" code="41" ascii="41" modifiers="" />
+ <event name="_" type="key" code="95" ascii="95" modifiers="" />
+ <event name="+" type="key" code="43" ascii="43" modifiers="" />
+ <event name="¬" type="key" code="172" ascii="172" modifiers="" />
+ <event name="!" type="key" code="33" ascii="33" modifiers="" />
+ <event name="{" type="key" code="123" ascii="123" modifiers="" />
+ <event name="}" type="key" code="125" ascii="125" modifiers="" />
+ <event name="~" type="key" code="126" ascii="126" modifiers="" />
+ <event name=":" type="key" code="58" ascii="58" modifiers="" />
+ <event name="@" type="key" code="64" ascii="64" modifiers="" />
+ <event name="&lt;" type="key" code="60" ascii="60" modifiers="" />
+ <event name="&gt;" type="key" code="62" ascii="62" modifiers="" />
+ <event name="?" type="key" code="63" ascii="63" modifiers="" />
+ <event name="space" type="key" code="32" ascii="32" modifiers="" />
+ <event name="tab" type="key" code="9" ascii="9" modifiers="" />
+ <event name="A" type="key" code="97" ascii="65" modifiers="shift" />
+ <event name="B" type="key" code="98" ascii="66" modifiers="shift" />
+ <event name="C" type="key" code="99" ascii="67" modifiers="shift" />
+ <event name="D" type="key" code="100" ascii="68" modifiers="shift" />
+ <event name="E" type="key" code="101" ascii="69" modifiers="shift" />
+ <event name="F" type="key" code="102" ascii="70" modifiers="shift" />
+ <event name="G" type="key" code="103" ascii="71" modifiers="shift" />
+ <event name="H" type="key" code="104" ascii="72" modifiers="shift" />
+ <event name="I" type="key" code="105" ascii="73" modifiers="shift" />
+ <event name="J" type="key" code="106" ascii="74" modifiers="shift" />
+ <event name="K" type="key" code="107" ascii="75" modifiers="shift" />
+ <event name="L" type="key" code="108" ascii="76" modifiers="shift" />
+ <event name="M" type="key" code="109" ascii="77" modifiers="shift" />
+ <event name="N" type="key" code="110" ascii="78" modifiers="shift" />
+ <event name="O" type="key" code="111" ascii="79" modifiers="shift" />
+ <event name="P" type="key" code="112" ascii="80" modifiers="shift" />
+ <event name="Q" type="key" code="113" ascii="81" modifiers="shift" />
+ <event name="R" type="key" code="114" ascii="82" modifiers="shift" />
+ <event name="S" type="key" code="115" ascii="83" modifiers="shift" />
+ <event name="T" type="key" code="116" ascii="84" modifiers="shift" />
+ <event name="U" type="key" code="117" ascii="85" modifiers="shift" />
+ <event name="V" type="key" code="118" ascii="86" modifiers="shift" />
+ <event name="W" type="key" code="119" ascii="87" modifiers="shift" />
+ <event name="X" type="key" code="120" ascii="88" modifiers="shift" />
+ <event name="Y" type="key" code="121" ascii="89" modifiers="shift" />
+ <event name="Z" type="key" code="122" ascii="90" modifiers="shift" />
+ <event name="0" type="key" code="48" ascii="48" modifiers="" />
+ <event name="1" type="key" code="49" ascii="49" modifiers="" />
+ <event name="2" type="key" code="50" ascii="50" modifiers="" />
+ <event name="3" type="key" code="51" ascii="51" modifiers="" />
+ <event name="4" type="key" code="52" ascii="52" modifiers="" />
+ <event name="5" type="key" code="53" ascii="53" modifiers="" />
+ <event name="6" type="key" code="54" ascii="54" modifiers="" />
+ <event name="7" type="key" code="55" ascii="55" modifiers="" />
+ <event name="8" type="key" code="56" ascii="56" modifiers="" />
+ <event name="9" type="key" code="57" ascii="57" modifiers="" />
+ <event name="ok" type="submit" />
+ <event name="cancel" type="cancel" />
+ <event name="quit" type="submit" />
+ <event name="delete" type="delete" />
+ </mode>
+</keyboard>
diff --git a/backends/vkeybd/virtual-keyboard.cpp b/backends/vkeybd/virtual-keyboard.cpp
index 678c751410..ce19e9d462 100644
--- a/backends/vkeybd/virtual-keyboard.cpp
+++ b/backends/vkeybd/virtual-keyboard.cpp
@@ -98,7 +98,7 @@ bool VirtualKeyboard::openPack(const String &packName, const FSNode &node) {
return false;
}
} else {
- warning("Could not find %s.xml file in %s.zip keyboard pack", packName.c_str(), packName.c_str());
+ warning("Could not find %s.xml file in %s.zip virtual keyboard pack", packName.c_str(), packName.c_str());
delete _fileArchive;
_fileArchive = 0;
return false;
@@ -132,15 +132,15 @@ bool VirtualKeyboard::loadKeyboardPack(const String &packName) {
_loaded = _parser->parse();
if (_loaded) {
- debug("Keyboard pack '%s' loaded successfully", packName.c_str());
+ debug("Virtual keyboard pack '%s' loaded successfully", packName.c_str());
} else {
- warning("Error parsing the keyboard pack '%s'", packName.c_str());
+ warning("Error parsing the virtual keyboard pack '%s'", packName.c_str());
delete _fileArchive;
_fileArchive = 0;
}
} else {
- warning("Keyboard pack not found");
+ warning("Virtual keyboard disabled due to missing pack file");
}
return _loaded;
@@ -205,7 +205,7 @@ void VirtualKeyboard::switchMode(Mode *newMode) {
void VirtualKeyboard::switchMode(const String &newMode) {
if (!_modes.contains(newMode)) {
- warning("Keyboard mode '%s' unknown", newMode.c_str());
+ warning("Virtual keyboard mode '%s' unknown", newMode.c_str());
} else {
switchMode(&_modes[newMode]);
}
@@ -227,7 +227,7 @@ void VirtualKeyboard::handleMouseUp(int16 x, int16 y) {
void VirtualKeyboard::show() {
if (!_loaded) {
- warning("Virtual keyboard not loaded");
+ debug(1, "VirtualKeyboard::show() - Virtual keyboard not loaded");
return;
} else {
_kbdGUI->checkScreenChanged();
diff --git a/common/EventMapper.cpp b/common/EventMapper.cpp
index 30896d7514..b92116cbe7 100644
--- a/common/EventMapper.cpp
+++ b/common/EventMapper.cpp
@@ -30,23 +30,45 @@ namespace Common {
List<Event> DefaultEventMapper::mapEvent(const Event &ev, EventSource *source) {
List<Event> events;
Event mappedEvent;
+#ifdef ENABLE_VKEYBD
+ // Trigger virtual keyboard on long press of more than 1 second
+ // of middle mouse button.
+ const uint32 vkeybdTime = 1000;
+
+ static bool vkeybd = false;
+ static uint32 vkeybdThen = 0;
+
+ if (ev.type == EVENT_MBUTTONDOWN) {
+ vkeybdThen = g_system->getMillis();
+ }
+
+ if (ev.type == EVENT_MBUTTONUP) {
+ if ((g_system->getMillis() - vkeybdThen) >= vkeybdTime) {
+ mappedEvent.type = EVENT_VIRTUAL_KEYBOARD;
+
+ // Avoid blocking event from engine.
+ addDelayedEvent(100, ev);
+ }
+ }
+#endif
+
if (ev.type == EVENT_KEYDOWN) {
if (ev.kbd.hasFlags(KBD_CTRL) && ev.kbd.keycode == KEYCODE_F5) {
mappedEvent.type = EVENT_MAINMENU;
}
#ifdef ENABLE_VKEYBD
- else if (ev.kbd.keycode == KEYCODE_F7 && ev.kbd.hasFlags(0)) {
+ else if (ev.kbd.hasFlags(KBD_CTRL) && ev.kbd.keycode == KEYCODE_F7) {
mappedEvent.type = EVENT_VIRTUAL_KEYBOARD;
- // Avoid blocking F7 events from engine.
+ // Avoid blocking CTRL-F7 events from engine.
addDelayedEvent(100, ev);
}
#endif
#ifdef ENABLE_KEYMAPPER
- else if (ev.kbd.keycode == KEYCODE_F8 && ev.kbd.hasFlags(0)) {
+ else if (ev.kbd.hasFlags(KBD_CTRL) && ev.kbd.keycode == KEYCODE_F8) {
mappedEvent.type = EVENT_KEYMAPPER_REMAP;
- // Avoid blocking F8 events from engine.
+ // Avoid blocking CTRL-F8 events from engine.
addDelayedEvent(100, ev);
}
#endif
diff --git a/devtools/create_project/scripts/postbuild.cmd b/devtools/create_project/scripts/postbuild.cmd
index 8b70ec3dd8..fcbd8c534a 100644
--- a/devtools/create_project/scripts/postbuild.cmd
+++ b/devtools/create_project/scripts/postbuild.cmd
@@ -26,7 +26,8 @@ echo.
xcopy /F /Y "%~4/lib/%~3/SDL.dll" "%~2" 1>NUL 2>&1
xcopy /F /Y "%~4/lib/%~3/freetype6.dll" "%~2" 1>NUL 2>&1
xcopy /F /Y "%~1/backends/vkeybd/packs/vkeybd_default.zip" "%~2" 1>NUL 2>&1
-xcopy /F /Y "%~1/gui/themes/translations.dat" "%~2" 1>NUL 2>&1
+xcopy /F /Y "%~1/backends/vkeybd/packs/vkeybd_small.zip" "%~2" 1>NUL 2>&1
+xcopy /F /Y "%~1/gui/themes/translations.dat" "%~2" 1>NUL 2>&1
if "%~5"=="0" goto done
diff --git a/ports.mk b/ports.mk
index 21ad738373..f706a3d7d2 100644
--- a/ports.mk
+++ b/ports.mk
@@ -358,6 +358,7 @@ endif
cp $(DIST_FILES_DOCS) ps3pkg/USRDIR/doc/
cp $(srcdir)/dists/ps3/readme-ps3.md ps3pkg/USRDIR/doc/
cp $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip ps3pkg/USRDIR/data/
+ cp $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip ps3pkg/USRDIR/data/
cp $(srcdir)/dists/ps3/ICON0.PNG ps3pkg/
cp $(srcdir)/dists/ps3/PIC1.PNG ps3pkg/
sfo.py -f $(srcdir)/dists/ps3/sfo.xml ps3pkg/PARAM.SFO