Author: tom
Date: Mon Oct 13 06:46:21 2008
New Revision: 3109
URL: http://svn.slimdevices.com?rev=3109&root=Jive&view=rev
Log:
lua shortcut key handling and keyboard text input for squeezeplay.
Also backspace and esc work as back when not in textinput modes. In textinput
modes backspace deletes, and escape leaves the textinput altogether.
Modified:
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/Volume.lua
7.3/trunk/squeezeplay/src/squeezeplay/share/jive/JiveMain.lua
7.3/trunk/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua
7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Framework.lua
7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Textinput.lua
7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Window.lua
7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive.h
7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive_event.c
7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive_framework.c
7.3/trunk/squeezeplay/src/squeezeplay/src/ui/lua_jiveui.c
Modified:
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua?rev=3109&root=Jive&r1=3108&r2=3109&view=diff
==============================================================================
---
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua
(original)
+++
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua
Mon Oct 13 06:46:21 2008
@@ -64,7 +64,7 @@
-- listener to restart screensaver timer
Framework:addListener(
- EVENT_KEY_PRESS | EVENT_KEY_HOLD | EVENT_SCROLL |
EVENT_MOUSE_ALL | EVENT_MOTION,
+ EVENT_CHAR_PRESS | EVENT_KEY_PRESS | EVENT_KEY_HOLD |
EVENT_SCROLL | EVENT_MOUSE_ALL | EVENT_MOTION,
function(event)
-- restart timer if it is running
self.timer:setInterval(self.timeout)
@@ -215,7 +215,7 @@
end)
-- key or scroll events quit the screensaver
- window:addListener(EVENT_KEY_PRESS | EVENT_KEY_HOLD | EVENT_SCROLL |
EVENT_MOUSE_ALL,
+ window:addListener(EVENT_CHAR_PRESS | EVENT_KEY_PRESS | EVENT_KEY_HOLD
| EVENT_SCROLL | EVENT_MOUSE_ALL,
function(event)
-- close all screensaver windows
Modified:
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua?rev=3109&root=Jive&r1=3108&r2=3109&view=diff
==============================================================================
---
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
(original)
+++
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
Mon Oct 13 06:46:21 2008
@@ -1249,7 +1249,14 @@
return self.volume:event(event)
end,
+ ["volup"] = function(self, event)
+ return self.volume:event(event)
+ end,
+
["voldown-down"] = function(self, event)
+ return self.volume:event(event)
+ end,
+ ["voldown"] = function(self, event)
return self.volume:event(event)
end,
--[[
Modified:
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/Volume.lua
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/Volume.lua?rev=3109&root=Jive&r1=3108&r2=3109&view=diff
==============================================================================
--- 7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/Volume.lua
(original)
+++ 7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/Volume.lua
Mon Oct 13 06:46:21 2008
@@ -216,6 +216,18 @@
return EVENT_CONSUME
end
+ --handle keyboard volume change
+ if (keycode == KEY_VOLUME_UP) then
+ self.delta = 1
+ _updateVolume(self)
+ self.delta = 0
+ end
+ if (keycode == KEY_VOLUME_DOWN) then
+ self.delta = -1
+ _updateVolume(self)
+ self.delta = 0
+ end
+
return EVENT_CONSUME
else
Modified: 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/JiveMain.lua
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/jive/JiveMain.lua?rev=3109&root=Jive&r1=3108&r2=3109&view=diff
==============================================================================
--- 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/JiveMain.lua (original)
+++ 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/JiveMain.lua Mon Oct 13
06:46:21 2008
@@ -56,6 +56,7 @@
local Framework = require("jive.ui.Framework")
local Task = require("jive.ui.Task")
local Timer = require("jive.ui.Timer")
+local Event = require("jive.ui.Event")
local debug = require("jive.utils.debug")
local log = require("jive.utils.log").logger("jive.main")
@@ -64,14 +65,26 @@
local EVENT_KEY_ALL = jive.ui.EVENT_KEY_ALL
local EVENT_KEY_PRESS = jive.ui.EVENT_KEY_PRESS
+local EVENT_CHAR_PRESS = jive.ui.EVENT_CHAR_PRESS
local EVENT_KEY_HOLD = jive.ui.EVENT_KEY_HOLD
local EVENT_SCROLL = jive.ui.EVENT_SCROLL
local EVENT_WINDOW_RESIZE = jive.ui.EVENT_WINDOW_RESIZE
local EVENT_UNUSED = jive.ui.EVENT_UNUSED
local KEY_HOME = jive.ui.KEY_HOME
-local KEY_BACK = jive.ui.KEY_BACK
-
+local KEY_FWD = jive.ui.KEY_FWD
+local KEY_REW = jive.ui.KEY_REW
+local KEY_GO = jive.ui.KEY_GO
+local KEY_BACK = jive.ui.KEY_BACK
+local KEY_UP = jive.ui.KEY_UP
+local KEY_DOWN = jive.ui.KEY_DOWN
+local KEY_LEFT = jive.ui.KEY_LEFT
+local KEY_RIGHT = jive.ui.KEY_RIGHT
+local KEY_PLAY = jive.ui.KEY_PLAY
+local KEY_PAUSE = jive.ui.KEY_PAUSE
+local KEY_VOLUME_UP = jive.ui.KEY_VOLUME_UP
+local KEY_VOLUME_DOWN = jive.ui.KEY_VOLUME_DOWN
+local KEY_ADD = jive.ui.KEY_ADD
-- Classes
local JiveMain = oo.class({}, HomeMenu)
@@ -84,12 +97,45 @@
-- should not need to have an id passed when creating it
local _idTranslations = {}
+local keyboardShortcuts = {
+ ["i"] = KEY_UP,
+ ["k"] = KEY_DOWN,
+ ["j"] = KEY_LEFT,
+ ["l"] = KEY_RIGHT,
+ ["h"] = KEY_HOME,
+ ["p"] = KEY_PLAY,
+ ["x"] = KEY_PLAY,
+ ["c"] = KEY_PAUSE,
+ [" "] = KEY_PAUSE,
+ ["a"] = KEY_ADD,
+ ["z"] = KEY_REW,
+ ["<"] = KEY_REW,
+ ["b"] = KEY_FWD,
+ [">"] = KEY_FWD,
+ ["+"] = KEY_VOLUME_UP,
+ ["="] = KEY_VOLUME_UP,
+ ["-"] = KEY_VOLUME_DOWN,
+ ["\b"] = KEY_BACK, -- BACKSPACE
+ ["\27"] = KEY_BACK -- ESC
+}
-- bring us to the home menu
local function _homeHandler(event)
local type = event:getType()
- if (( type == EVENT_KEY_PRESS and event:getKeycode() == KEY_HOME) or
+ if ( type == EVENT_CHAR_PRESS ) then
+ local keyboardEntry = string.char(event:getUnicode())
+
+ log:debug("Keyboard entry: ", keyboardEntry)
+
+ local keyCode = keyboardShortcuts[keyboardEntry]
+ if (keyCode) then
+ Framework:pushEvent(Event:new(EVENT_KEY_PRESS, keyCode))
+ end
+
+ return EVENT_CONSUME
+
+ elseif (( type == EVENT_KEY_PRESS and event:getKeycode() == KEY_HOME) or
( type == EVENT_KEY_HOLD and event:getKeycode() == KEY_BACK)) then
-- disconnect from player on press and hold left
@@ -147,7 +193,7 @@
-- home key handler, one for KEY_PRESS/HOME, one for KEY_HOLD/BACK
Framework:addListener(
- EVENT_KEY_PRESS | EVENT_KEY_HOLD,
+ EVENT_CHAR_PRESS| EVENT_KEY_PRESS | EVENT_KEY_HOLD,
function(event)
_homeHandler(event)
end,
Modified: 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua?rev=3109&root=Jive&r1=3108&r2=3109&view=diff
==============================================================================
--- 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua (original)
+++ 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua Mon Oct 13
06:46:21 2008
@@ -58,6 +58,7 @@
local log = require("jive.utils.log").logger("player")
local EVENT_KEY_ALL = jive.ui.EVENT_KEY_ALL
+local EVENT_CHAR_PRESS = jive.ui.EVENT_CHAR_PRESS
local EVENT_SCROLL = jive.ui.EVENT_SCROLL
local EVENT_CONSUME = jive.ui.EVENT_CONSUME
@@ -778,7 +779,7 @@
})
self.currentSong.window:addWidget(group)
- self.currentSong.window:addListener(EVENT_KEY_ALL | EVENT_SCROLL,
+ self.currentSong.window:addListener(EVENT_CHAR_PRESS | EVENT_KEY_ALL |
EVENT_SCROLL,
function(event)
local prev = self.currentSong.window:getLowerWindow()
if prev then
Modified: 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Framework.lua
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Framework.lua?rev=3109&root=Jive&r1=3108&r2=3109&view=diff
==============================================================================
--- 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Framework.lua (original)
+++ 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Framework.lua Mon Oct
13 06:46:21 2008
@@ -172,6 +172,7 @@
module.EVENT_SCROLL = jive.ui.EVENT_SCROLL
module.EVENT_ACTION = jive.ui.EVENT_ACTION
+ module.EVENT_CHAR_PRESS = jive.ui.EVENT_CHAR_PRESS
module.EVENT_KEY_DOWN = jive.ui.EVENT_KEY_DOWN
module.EVENT_KEY_UP = jive.ui.EVENT_KEY_UP
module.EVENT_KEY_PRESS = jive.ui.EVENT_KEY_PRESS
Modified: 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Textinput.lua
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Textinput.lua?rev=3109&root=Jive&r1=3108&r2=3109&view=diff
==============================================================================
--- 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Textinput.lua (original)
+++ 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Textinput.lua Mon Oct
13 06:46:21 2008
@@ -18,6 +18,7 @@
local EVENT_UNUSED = jive.ui.EVENT_UNUSED
local EVENT_KEY_PRESS = jive.ui.EVENT_KEY_PRESS
+local EVENT_CHAR_PRESS = jive.ui.EVENT_CHAR_PRESS
local EVENT_SCROLL = jive.ui.EVENT_SCROLL
local EVENT_WINDOW_RESIZE = jive.ui.EVENT_WINDOW_RESIZE
local EVENT_CONSUME = jive.ui.EVENT_CONSUME
@@ -227,6 +228,41 @@
_scroll(self, self.scroll:event(event, idx, idx, 1, #v))
return EVENT_CONSUME
+ elseif type == EVENT_CHAR_PRESS then
+
+ --assuming ascii level values for now
+ local keyboardEntry = string.char(event:getUnicode())
+ if (keyboardEntry == "\b") then --backspace
+ if not _delete(self) then
+ self:playSound("BUMP")
+ self:getWindow():bumpRight()
+ end
+ return EVENT_CONSUME
+ elseif (keyboardEntry == "\27") then --escape
+ self.cursor = 1
+ self:playSound("WINDOWHIDE")
+ self:hide()
+ return EVENT_CONSUME
+ elseif (not string.find(self:_getChars(), keyboardEntry)) then
+ --also check for possibility of uppercase match
+ if (string.find(keyboardEntry, "%l")) then
+ keyboardEntry = string.upper(keyboardEntry)
+ end
+ if (not string.find(self:_getChars(), keyboardEntry))
then
+ self:playSound("BUMP")
+ self:getWindow():bumpRight()
+ return EVENT_CONSUME
+ end
+ end
+
+ local before = string.sub(tostring(self.value), 1, self.cursor
- 1)
+ local after = string.sub(tostring(self.value), self.cursor + 1)
+ self:setValue(before .. keyboardEntry .. after)
+
+ _moveCursor(self, 1)
+
+ return EVENT_CONSUME
+
elseif type == EVENT_WINDOW_RESIZE then
_moveCursor(self, 0)
@@ -350,7 +386,7 @@
_globalStrings:str("ALLOWEDCHARS_WITHCAPS")
obj.scroll = ScrollAccel()
- obj:addListener(EVENT_KEY_PRESS | EVENT_SCROLL | EVENT_WINDOW_RESIZE,
+ obj:addListener(EVENT_CHAR_PRESS| EVENT_KEY_PRESS | EVENT_SCROLL |
EVENT_WINDOW_RESIZE,
function(event)
return _eventHandler(obj, event)
end)
Modified: 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Window.lua
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Window.lua?rev=3109&root=Jive&r1=3108&r2=3109&view=diff
==============================================================================
--- 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Window.lua (original)
+++ 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Window.lua Mon Oct 13
06:46:21 2008
@@ -61,6 +61,7 @@
local EVENT_ACTION = jive.ui.EVENT_ACTION
local EVENT_SCROLL = jive.ui.EVENT_SCROLL
local EVENT_KEY_PRESS = jive.ui.EVENT_KEY_PRESS
+local EVENT_TEXT_PRESS = jive.ui.EVENT_TEXT_PRESS
local EVENT_WINDOW_PUSH = jive.ui.EVENT_WINDOW_PUSH
local EVENT_WINDOW_POP = jive.ui.EVENT_WINDOW_POP
local EVENT_WINDOW_ACTIVE = jive.ui.EVENT_WINDOW_ACTIVE
@@ -317,7 +318,7 @@
if self.brieflyHandler == nil then
self.brieflyHandler =
- self:addListener(EVENT_KEY_PRESS | EVENT_SCROLL,
+ self:addListener(EVENT_TEXT_PRESS | EVENT_KEY_PRESS |
EVENT_SCROLL,
function(event)
self:hide(popTransition,
"NONE")
return EVENT_CONSUME
Modified: 7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive.h
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive.h?rev=3109&root=Jive&r1=3108&r2=3109&view=diff
==============================================================================
--- 7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive.h (original)
+++ 7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive.h Mon Oct 13 06:46:21 2008
@@ -98,9 +98,12 @@
JIVE_EVENT_SWITCH = 0x00400000,
JIVE_EVENT_MOTION = 0x00800000,
+ JIVE_EVENT_CHAR_PRESS = 0x02000000,
+
+ JIVE_EVENT_CHAR_ALL = ( JIVE_EVENT_CHAR_PRESS),
JIVE_EVENT_KEY_ALL = ( JIVE_EVENT_KEY_DOWN |
JIVE_EVENT_KEY_UP | JIVE_EVENT_KEY_PRESS | JIVE_EVENT_KEY_HOLD ),
JIVE_EVENT_MOUSE_ALL = ( JIVE_EVENT_MOUSE_DOWN |
JIVE_EVENT_MOUSE_PRESS | JIVE_EVENT_MOUSE_HOLD | JIVE_EVENT_MOUSE_MOVE |
JIVE_EVENT_MOUSE_DRAG ),
- JIVE_EVENT_ALL_INPUT = ( JIVE_EVENT_KEY_ALL |
JIVE_EVENT_MOUSE_ALL | JIVE_EVENT_SCROLL),
+ JIVE_EVENT_ALL_INPUT = ( JIVE_EVENT_KEY_ALL |
JIVE_EVENT_MOUSE_ALL | JIVE_EVENT_SCROLL | JIVE_EVENT_CHAR_ALL),
JIVE_EVENT_VISIBLE_ALL = ( JIVE_EVENT_SHOW | JIVE_EVENT_HIDE ),
JIVE_EVENT_ALL = 0x7FFFFFFF,
@@ -193,6 +196,10 @@
JiveKey code;
};
+struct jive_char_event {
+ Uint16 unicode;
+};
+
struct jive_mouse_event {
Uint16 x;
Uint16 y;
@@ -216,6 +223,7 @@
union {
struct jive_scroll_event scroll;
struct jive_key_event key;
+ struct jive_char_event text;
struct jive_mouse_event mouse;
struct jive_motion_event motion;
struct jive_sw_event sw;
@@ -386,6 +394,7 @@
int jiveL_event_get_ticks(lua_State *L);
int jiveL_event_get_scroll(lua_State *L);
int jiveL_event_get_keycode(lua_State *L);
+int jiveL_event_get_unicode(lua_State *L);
int jiveL_event_get_mouse(lua_State *L);
int jiveL_event_get_motion(lua_State *L);
int jiveL_event_get_switch(lua_State *L);
Modified: 7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive_event.c
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive_event.c?rev=3109&root=Jive&r1=3108&r2=3109&view=diff
==============================================================================
--- 7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive_event.c (original)
+++ 7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive_event.c Mon Oct 13
06:46:21 2008
@@ -136,6 +136,23 @@
return 0;
}
+int jiveL_event_get_unicode(lua_State *L) {
+ JiveEvent* event = (JiveEvent*)lua_touserdata(L, 1);
+ if (event == NULL) {
+ luaL_error(L, "invalid Event");
+ }
+
+ switch (event->type) {
+ case JIVE_EVENT_CHAR_PRESS:
+ lua_pushinteger(L, event->u.text.unicode);
+ return 1;
+
+ default:
+ luaL_error(L, "Not a char event");
+ }
+ return 0;
+}
+
int jiveL_event_get_mouse(lua_State *L) {
JiveEvent* event = (JiveEvent*)lua_touserdata(L, 1);
Modified: 7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive_framework.c
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive_framework.c?rev=3109&root=Jive&r1=3108&r2=3109&view=diff
==============================================================================
--- 7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive_framework.c (original)
+++ 7.3/trunk/squeezeplay/src/squeezeplay/src/ui/jive_framework.c Mon Oct 13
06:46:21 2008
@@ -72,29 +72,13 @@
{ SDLK_RIGHT, JIVE_KEY_GO },
{ SDLK_RETURN, JIVE_KEY_GO },
{ SDLK_LEFT, JIVE_KEY_BACK },
- { SDLK_i, JIVE_KEY_UP },
- { SDLK_k, JIVE_KEY_DOWN },
- { SDLK_j, JIVE_KEY_LEFT },
- { SDLK_l, JIVE_KEY_RIGHT },
{ SDLK_HOME, JIVE_KEY_HOME },
- { SDLK_p, JIVE_KEY_PLAY },
- { SDLK_x, JIVE_KEY_PLAY },
{ SDLK_AudioPlay, JIVE_KEY_PLAY },
- { SDLK_c, JIVE_KEY_PAUSE },
- { SDLK_SPACE, JIVE_KEY_PAUSE },
{ SDLK_AudioPause, JIVE_KEY_PAUSE },
- { SDLK_a, JIVE_KEY_ADD },
{ SDLK_KP_PLUS, JIVE_KEY_ADD },
- { SDLK_z, JIVE_KEY_REW },
- { SDLK_LESS, JIVE_KEY_REW },
{ SDLK_AudioPrev, JIVE_KEY_REW },
- { SDLK_b, JIVE_KEY_FWD },
- { SDLK_GREATER, JIVE_KEY_FWD },
{ SDLK_AudioNext, JIVE_KEY_FWD },
- { SDLK_PLUS, JIVE_KEY_VOLUME_UP },
- { SDLK_EQUALS, JIVE_KEY_VOLUME_UP },
{ SDLK_AudioRaiseVolume,JIVE_KEY_VOLUME_UP },
- { SDLK_MINUS, JIVE_KEY_VOLUME_DOWN },
{ SDLK_AudioLowerVolume,JIVE_KEY_VOLUME_DOWN },
{ SDLK_UNKNOWN, JIVE_KEY_NONE },
};
@@ -167,7 +151,6 @@
/* open window */
SDL_WM_SetCaption("SqueezePlay Beta", "SqueezePlay Beta");
-
srf = jive_surface_set_video_mode(screen_w, screen_h, bpp, false);
if (!srf) {
@@ -184,6 +167,7 @@
// SDL_ShowCursor (SDL_DISABLE);
SDL_EnableKeyRepeat (100, 100);
+ SDL_EnableUNICODE(1);
tolua_pushusertype(L, srf, "Surface");
lua_setfield(L, -2, "surface");
@@ -1095,10 +1079,26 @@
}
entry++;
}
+
if (entry->keysym == SDLK_UNKNOWN) {
+ // handle regular character keys ('a', 't', etc..)
+ SDLMod mod = event->key.keysym.mod;
+ if (event->type == SDL_KEYDOWN &&
(event->key.keysym.unicode != 0) && (mod == KMOD_NONE || mod == KMOD_LSHIFT ||
mod == KMOD_RSHIFT)) {
+ JiveEvent textEvent;
+
+ memset(&textEvent, 0, sizeof(JiveEvent));
+ textEvent.type = JIVE_EVENT_CHAR_PRESS;
+ textEvent.ticks = SDL_GetTicks();
+ if (event->key.keysym.sym == SDLK_BACKSPACE) {
+ //special case for Backspace, where
value set is not ascii value, instead pass backspace ascii value
+ textEvent.u.text.unicode = 8;
+ } else {
+ textEvent.u.text.unicode =
event->key.keysym.unicode;
+ }
+ jive_queue_event(&textEvent);
+ }
return 0;
}
-
if (event->type == SDL_KEYDOWN) {
if (key_mask & entry->keycode) {
@@ -1380,6 +1380,7 @@
{ "getTicks", jiveL_event_get_ticks },
{ "getScroll", jiveL_event_get_scroll },
{ "getKeycode", jiveL_event_get_keycode },
+ { "getUnicode", jiveL_event_get_unicode },
{ "getMouse", jiveL_event_get_mouse },
{ "getMotion", jiveL_event_get_motion },
{ "getSwitch", jiveL_event_get_switch },
Modified: 7.3/trunk/squeezeplay/src/squeezeplay/src/ui/lua_jiveui.c
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/src/ui/lua_jiveui.c?rev=3109&root=Jive&r1=3108&r2=3109&view=diff
==============================================================================
--- 7.3/trunk/squeezeplay/src/squeezeplay/src/ui/lua_jiveui.c (original)
+++ 7.3/trunk/squeezeplay/src/squeezeplay/src/ui/lua_jiveui.c Mon Oct 13
06:46:21 2008
@@ -2184,6 +2184,7 @@
tolua_constant(tolua_S,"EVENT_KEY_UP",JIVE_EVENT_KEY_UP);
tolua_constant(tolua_S,"EVENT_KEY_PRESS",JIVE_EVENT_KEY_PRESS);
tolua_constant(tolua_S,"EVENT_KEY_HOLD",JIVE_EVENT_KEY_HOLD);
+ tolua_constant(tolua_S,"EVENT_CHAR_PRESS",JIVE_EVENT_CHAR_PRESS);
tolua_constant(tolua_S,"EVENT_MOUSE_DOWN",JIVE_EVENT_MOUSE_DOWN);
tolua_constant(tolua_S,"EVENT_MOUSE_UP",JIVE_EVENT_MOUSE_UP);
tolua_constant(tolua_S,"EVENT_MOUSE_PRESS",JIVE_EVENT_MOUSE_PRESS);
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins