1 #include <msp/input/keys.h>
3 #include "systemkeyboardinput.h"
8 SystemKeyboardInput::SystemKeyboardInput(Root &r, Input::Keyboard &k):
12 keyboard.signal_button_press.connect(sigc::mem_fun(this, &SystemKeyboardInput::key_press));
13 keyboard.signal_button_release.connect(sigc::mem_fun(this, &SystemKeyboardInput::key_release));
14 keyboard.signal_character.connect(sigc::mem_fun(this, &SystemKeyboardInput::character));
17 bool SystemKeyboardInput::key_press(unsigned key)
19 if(!root.is_visible())
23 if(root.key_press(key, 0))
28 case Input::KEY_LEFT: return root.navigate(NAV_LEFT);
29 case Input::KEY_RIGHT: return root.navigate(NAV_RIGHT);
30 case Input::KEY_UP: return root.navigate(NAV_UP);
31 case Input::KEY_DOWN: return root.navigate(NAV_DOWN);
32 case Input::KEY_TAB: return root.navigate(NAV_NEXT);
33 case Input::KEY_SPACE: return root.navigate(NAV_ACTIVATE);
34 case Input::KEY_ENTER: return root.navigate(NAV_ACCEPT);
35 case Input::KEY_ESC: return root.navigate(NAV_CANCEL);
41 bool SystemKeyboardInput::key_release(unsigned key)
44 return root.key_release(key, 0);
49 bool SystemKeyboardInput::character(StringCodec::unichar ch)
52 return root.character(ch);