e_keyrouter: Impl setter methods for E_Keyrouter_Grabbed_Key 54/317554/1
authorTaeHyeon Jeong <thyeon.jeong@samsung.com>
Thu, 26 Dec 2024 08:12:29 +0000 (17:12 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Fri, 3 Jan 2025 06:58:20 +0000 (15:58 +0900)
TO-BE
- Implemented setter methods to set values based on HardKeys and keycode.

Change-Id: Ifbb228751674789df1924235a708f947c7d8fe06

src/bin/inputmgr/e_keyrouter_hardkeys.c
src/bin/inputmgr/e_keyrouter_hardkeys_intern.h

index 3c54d0039e6f9920fdb8669d743cbf36f2325079..0f5bc1f7ae14695d282af4c32db729b6d99657f5 100644 (file)
@@ -235,7 +235,85 @@ e_keyrouter_hardkeys_repeat_get(E_Keyrouter_Grabbed_Key *hardkeys,
 }
 
 EINTERN Eina_Bool
-e_keyrouter_hardkeys_client_available(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode, struct wl_client *client, uint32_t mode)
+e_keyrouter_hardkeys_list_set(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode,
+        uint32_t mode, Eina_List *list)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(hardkeys, EINA_FALSE);
+
+   switch(mode)
+     {
+      case TIZEN_KEYROUTER_MODE_EXCLUSIVE:
+         hardkeys[keycode].excl_ptr = list;
+         break;
+      case TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE:
+         hardkeys[keycode].or_excl_ptr = list;
+         break;
+      case TIZEN_KEYROUTER_MODE_TOPMOST:
+         hardkeys[keycode].top_ptr = list;
+         break;
+      case TIZEN_KEYROUTER_MODE_SHARED:
+         hardkeys[keycode].shared_ptr = list;
+         break;
+      case TIZEN_KEYROUTER_MODE_PRESSED:
+         hardkeys[keycode].press_ptr = list;
+         break;
+      case TIZEN_KEYROUTER_MODE_PICTURE_OFF:
+         hardkeys[keycode].pic_off_ptr = list;
+         break;
+      default:
+         WRN("Unknown keycode(%d) and grab mode(%d)", keycode, mode);
+         return EINA_FALSE;
+     }
+
+   return EINA_TRUE;
+}
+
+EINTERN Eina_Bool
+e_keyrouter_hardkeys_keycode_set(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(hardkeys, EINA_FALSE);
+
+   hardkeys[keycode].keycode = keycode;
+
+   return EINA_TRUE;
+}
+
+EINTERN Eina_Bool
+e_keyrouter_hardkeys_keyname_set(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode,
+        char *keyname)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(hardkeys, EINA_FALSE);
+
+   hardkeys[keycode].keyname = keyname;
+
+   return EINA_TRUE;
+}
+
+EINTERN Eina_Bool
+e_keyrouter_hardkeys_no_privcheck_set(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode,
+        Eina_Bool no_privcheck)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(hardkeys, EINA_FALSE);
+
+   hardkeys[keycode].no_privcheck = no_privcheck;
+
+   return EINA_TRUE;
+}
+
+EINTERN Eina_Bool
+e_keyrouter_hardkeys_repeat_set(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode,
+        Eina_Bool repeat)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(hardkeys, EINA_FALSE);
+
+   hardkeys[keycode].repeat = repeat;
+
+   return EINA_TRUE;
+}
+
+EINTERN Eina_Bool
+e_keyrouter_hardkeys_client_available(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode,
+        struct wl_client *client, uint32_t mode)
 {
    E_Keyrouter_Key_List_Node *keynode;
    Eina_List *l;
index 902cbb2a1895000ca42c4af3c7d258cb1931001c..df94b0dc921874d04d711fc0459125ec5357b679 100644 (file)
@@ -18,6 +18,12 @@ EINTERN char       *e_keyrouter_hardkeys_keyname_get(E_Keyrouter_Grabbed_Key *ha
 EINTERN Eina_Bool  e_keyrouter_hardkeys_no_privcheck_get(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode);
 EINTERN Eina_Bool  e_keyrouter_hardkeys_repeat_get(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode);
 
+EINTERN Eina_Bool  e_keyrouter_hardkeys_list_set(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode, uint32_t mode, Eina_List *list);
+EINTERN Eina_Bool  e_keyrouter_hardkeys_keycode_set(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode);
+EINTERN Eina_Bool  e_keyrouter_hardkeys_keyname_set(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode, char *keyname);
+EINTERN Eina_Bool  e_keyrouter_hardkeys_no_privcheck_set(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode, Eina_Bool no_privcheck);
+EINTERN Eina_Bool  e_keyrouter_hardkeys_repeat_set(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode, Eina_Bool repeat);
+
 EINTERN Eina_Bool e_keyrouter_hardkeys_client_available(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode, struct wl_client *client, uint32_t mode);
 EINTERN Eina_Bool e_keyrouter_hardkeys_surface_available(E_Keyrouter_Grabbed_Key *hardkeys, uint32_t keycode, struct wl_resource *surface, uint32_t mode);