2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
18 * @file FUi_UiKeyEvent.h
19 * @brief This is the header file for the _UiKeyEvent class.
21 * This header file contains the declarations of the %_UiKeyEvent class.
24 #ifndef _FUI_INTERNAL_UI_KEY_EVENT_H_
25 #define _FUI_INTERNAL_UI_KEY_EVENT_H_
27 #include <FUiIKeyEventListener.h>
28 #include "FUi_UiEvent.h"
30 namespace Tizen {namespace Ui
38 _KEY_INVALID = KEY_INVALID,
43 _KEY_SIDE_UP = KEY_SIDE_UP,
48 _KEY_SIDE_DOWN = KEY_SIDE_DOWN,
58 _KEY_CLEAR = KEY_CLEAR,
63 _KEY_CAMERA = KEY_CAMERA,
68 _KEY_SWITCH = KEY_SWITCH,
123 _KEY_ASTERISK = KEY_ASTERISK,
128 _KEY_SHARP = KEY_SHARP,
131 * Left directional key
133 _KEY_LEFT = KEY_LEFT,
141 * Down directional key
143 _KEY_DOWN = KEY_DOWN,
146 * Right directional key
148 _KEY_RIGHT = KEY_RIGHT,
288 _KEY_BACKSPACE = KEY_BACKSPACE,
293 _KEY_COMMA = KEY_COMMA,
298 _KEY_ENTER = KEY_ENTER,
303 _KEY_CAPSLOCK = KEY_CAPSLOCK,
308 _KEY_QUESTION = KEY_QUESTION,
316 * Language Symbol key
321 * Language Setting key
323 _KEY_SETTING = KEY_SETTING,
328 _KEY_SPACE = KEY_SPACE,
341 * Camera half shutter key
343 _KEY_CAMERA_HALF_SHUTTER = KEY_CAMERA_HALF_SHUTTER,
346 * Character symbol 1 key
348 _KEY_CHAR_SYM_1 = KEY_CHAR_SYM_1,
351 * Character symbol 2 key
353 _KEY_CHAR_SYM_2 = KEY_CHAR_SYM_2,
356 * Character symbol 3 key
358 _KEY_CHAR_SYM_3 = KEY_CHAR_SYM_3,
361 * Character symbol 4 key
363 _KEY_CHAR_SYM_4 = KEY_CHAR_SYM_4,
366 * Character symbol 5 key
368 _KEY_CHAR_SYM_5 = KEY_CHAR_SYM_5,
371 * Character symbol 6 key
373 _KEY_CHAR_SYM_6 = KEY_CHAR_SYM_6,
376 * Character symbol 7 key
378 _KEY_CHAR_SYM_7 = KEY_CHAR_SYM_7,
381 * Character symbol 8 key
383 _KEY_CHAR_SYM_8 = KEY_CHAR_SYM_8,
386 * Character symbol 9 key
388 _KEY_CHAR_SYM_9 = KEY_CHAR_SYM_9,
391 * Character symbol A key
393 _KEY_CHAR_SYM_A = KEY_CHAR_SYM_A,
396 * Character symbol B key
398 _KEY_CHAR_SYM_B = KEY_CHAR_SYM_B,
401 * Character symbol C key
403 _KEY_CHAR_SYM_C = KEY_CHAR_SYM_C,
406 * Character symbol D key
408 _KEY_CHAR_SYM_D = KEY_CHAR_SYM_D,
411 * Character symbol E key.
413 _KEY_CHAR_SYM_E = KEY_CHAR_SYM_E,
416 * Character symbol F key.
418 _KEY_CHAR_SYM_F = KEY_CHAR_SYM_F,
421 * Special function 1 key
423 _KEY_FN_1 = KEY_FN_1,
426 * Special function 2 key
428 _KEY_FN_2 = KEY_FN_2,
431 * Special function 3 key
433 _KEY_FN_3 = KEY_FN_3,
436 * Special function 4 key
438 _KEY_FN_4 = KEY_FN_4,
441 * Special function 5 key
443 _KEY_FN_5 = KEY_FN_5,
448 _KEY_POWER_HOLD = KEY_POWER_HOLD,
453 _KEY_DELETE = KEY_DELETE,
458 _KEY_APOSTROPHE = KEY_APOSTROPHE,
463 _KEY_BACKSLASH = KEY_BACKSLASH,
468 _KEY_END_BUTTON = KEY_MOVE_END,
473 _KEY_EQUAL = KEY_EQUAL,
481 * The function 10 key
483 _KEY_FN_10 = KEY_FN_10,
486 * The function 11 key
488 _KEY_FN_11 = KEY_FN_11,
491 * The function 12 key
493 _KEY_FN_12 = KEY_FN_12,
498 _KEY_FN_6 = KEY_FN_6,
503 _KEY_FN_7 = KEY_FN_7,
508 _KEY_FN_8 = KEY_FN_8,
513 _KEY_FN_9 = KEY_FN_9,
518 _KEY_GRAVE = KEY_GRAVE,
523 _KEY_HOME_BUTTON = KEY_MOVE_HOME,
528 _KEY_INSERT = KEY_INSERT,
533 _KEY_LALT = KEY_LEFT_ALT,
536 * The left bracket key
538 _KEY_LBRACKET = KEY_LEFT_BRACKET,
541 * The left control key
543 _KEY_LCTRL = KEY_LEFT_CTRL,
548 _KEY_LSHIFT = KEY_LEFT_SHIFT,
551 * The left window key
553 _KEY_LWIN = KEY_LEFT_WIN,
558 _KEY_CONTEXT_MENU = KEY_CONTEXT_MENU,
563 _KEY_MINUS = KEY_MINUS,
566 * The number lock key
568 _KEY_NUM_LOCK = KEY_NUM_LOCK,
573 _KEY_NUMPAD_0 = KEY_NUMPAD_0,
578 _KEY_NUMPAD_1 = KEY_NUMPAD_1,
583 _KEY_NUMPAD_2 = KEY_NUMPAD_2,
588 _KEY_NUMPAD_3 = KEY_NUMPAD_3,
593 _KEY_NUMPAD_4 = KEY_NUMPAD_4,
598 _KEY_NUMPAD_5 = KEY_NUMPAD_5,
603 _KEY_NUMPAD_6 = KEY_NUMPAD_6,
608 _KEY_NUMPAD_7 = KEY_NUMPAD_7,
613 _KEY_NUMPAD_8 = KEY_NUMPAD_8,
618 _KEY_NUMPAD_9 = KEY_NUMPAD_9,
623 _KEY_NUMPAD_ADD = KEY_NUMPAD_ADD,
626 * The Keypad divide key
628 _KEY_NUMPAD_DIVIDE = KEY_NUMPAD_DIVIDE,
631 * The Keypad divide key
633 _KEY_NUMPAD_DOT = KEY_NUMPAD_DOT,
636 * The Keypad enter key
638 _KEY_NUMPAD_ENTER = KEY_NUMPAD_ENTER,
641 * The Keypad multiply key
643 _KEY_NUMPAD_MULTIPLY = KEY_NUMPAD_MULTIPLY,
646 * The Keypad subtract key
648 _KEY_NUMPAD_SUBTRACT = KEY_NUMPAD_SUBTRACT,
653 _KEY_PAGE_DOWN = KEY_PAGE_DOWN,
658 _KEY_PAGE_UP = KEY_PAGE_UP,
663 _KEY_PAUSEBREAK= KEY_PAUSE_BREAK,
668 _KEY_PRINT = KEY_PRINT,
673 _KEY_RALT = KEY_RIGHT_ALT,
676 * The right bracket key
678 _KEY_RBRACKET = KEY_RIGHT_BRACKET,
681 * The right control key
683 _KEY_RCTRL = KEY_RIGHT_CTRL,
686 * The right shift key
688 _KEY_RSHIFT = KEY_RIGHT_SHIFT,
691 * The right window key
693 _KEY_RWIN = KEY_RIGHT_WIN,
696 * The scroll lock key
698 _KEY_SCROLL_LOCK = KEY_SCROLL_LOCK,
703 _KEY_SEMICOLON = KEY_SEMICOLON,
708 _KEY_SLASH = KEY_SLASH,
718 _KEY_OEM_1 = KEY_OEM_1,
723 _KEY_OEM_2 = KEY_OEM_2,
728 _KEY_OEM_3 = KEY_OEM_3,
733 _KEY_OEM_4 = KEY_OEM_4,
738 _KEY_OEM_5 = KEY_OEM_5,
743 _KEY_OEM_6 = KEY_OEM_6,
748 _KEY_OEM_7 = KEY_OEM_7,
753 _KEY_OEM_8 = KEY_OEM_8,
758 _KEY_OEM_9 = KEY_OEM_9,
763 _KEY_OEM_10 = KEY_OEM_10,
768 _KEY_OEM_11 = KEY_OEM_11,
773 _KEY_OEM_12 = KEY_OEM_12,
778 _KEY_OEM_13 = KEY_OEM_13,
783 _KEY_OEM_14 = KEY_OEM_14,
788 _KEY_OEM_15 = KEY_OEM_15,
793 _KEY_OEM_16 = KEY_OEM_16,
798 _KEY_OEM_17 = KEY_OEM_17,
803 _KEY_OEM_18 = KEY_OEM_18,
808 _KEY_OEM_19 = KEY_OEM_19,
813 _KEY_OEM_20 = KEY_OEM_20,
815 _KEY_HARDWARE_MAX = KEY_HARDWARE_MAX,
839 * internal Key - send
846 _KEY_MODIFIER_NONE = 0, /**< No active modifiers */
847 _KEY_MODIFIER_SHIFT = 1 << 0, /**< "Control" is pressed */
848 _KEY_MODIFIER_CTRL = 1 << 1, /**< "Alt" is pressed */
849 _KEY_MODIFIER_ALT = 1 << 2, /**< "Shift" is pressed */
850 _KEY_MODIFIER_WIN = 1 << 3, /**< "Win" (between "Ctrl" and "Alt") is pressed */
851 _KEY_MODIFIER_SCROLL = 1 << 4, /**< "AltGr" is pressed */
852 _KEY_MODIFIER_NUM = 1 << 5,
853 _KEY_MODIFIER_CAPS = 1 << 6,
854 _KEY_LOCK_SCROLL = 1 << 7,
855 _KEY_LOCK_NUM = 1 << 8,
856 _KEY_LOCK_CAPS = 1 << 9,
857 _KEY_LOCK_SHIFT = 1 << 10,
858 _KEY_MODIFIER_ALTGR = 1 << 11,
862 class _OSP_EXPORT_ _KeyInfo
865 _KeyInfo(KeyState keyState, _KeyCode keyCode, int keyModifier, void* pUserData);
867 _KeyInfo(const _KeyInfo& rhs);
868 _KeyInfo& operator =(const _KeyInfo& rhs);
871 void SetKeyState(KeyState keyState);
872 KeyState GetKeyState(void) const;
874 void SetKeyCode(_KeyCode keyCode);
875 _KeyCode GetKeyCode(void) const;
877 void SetKeyModifier(int keyModifier);
878 int GetKeyModifier(void) const;
880 void SetUserData(void* pUserData);
881 void* GetUserData(void) const;
890 class _IKeyEventListener;
893 * This is internal. If used in an application, the application can get rejected during the certification process.
895 * @brief This class impliments _UiKeyEvent and
896 * fire the Window Event object of a Ui Control.
904 * This is the default class constructor.
907 _UiKeyEvent(const _UiObjectHandle& destination, const _KeyInfo& keyInfo, _UiEventRouteType routeType = _UI_EVENT_ROUTE_TUNNEL_BUBBLE, const _UiObjectHandle& source = _UiObjectHandle());
908 _UiKeyEvent(const _UiKeyEvent& rhs);
911 * This is the default class destructor.
914 virtual ~_UiKeyEvent(void);
917 _UiKeyEvent& operator =(const _UiKeyEvent& rhs);
920 _KeyInfo* GetKeyInfo(void) const;
923 void SetKeyState(KeyState keyState);
924 KeyState GetKeyState(void) const;
926 void SetKeyCode(_KeyCode keyCode);
927 _KeyCode GetKeyCode(void) const;
929 void SetKeyModifier(int keyModifier);
930 int GetKeyModifier(void) const;
933 virtual _UiKeyEvent* CloneN(void) const;
934 virtual _UiEventType GetEventType(void) const;
935 virtual bool IsEventEnabled(const _Control& control) const;
936 virtual result OnPreviewEventProcessing(const _Control& control, bool& isFiltered);
937 virtual result OnEventProcessing(const _Control& control, bool& isFiltered);
938 virtual result OnListenerProcessing(const _IUiEventListener& listener, bool& isFiltered);
941 result FireListener(const _IKeyEventListener* pListener, bool& isFiltered);
949 #endif //_FUI_INTERNAL_UI_KEY_EVENT_H_