From e497c1dda5bb5414d9be8aea0b4acdc8faede43d Mon Sep 17 00:00:00 2001 From: Wonsik Jung Date: Sun, 30 Jul 2023 15:50:13 +0900 Subject: [PATCH] Supports the key event repeat and delay for each way. Supports the key event repeat and delay for each way. The ways have both horizental and vertical way. This patch is only for tizen platform. Change-Id: Ie03bef1a321b3d85c051b25101c18212439353fc --- dali/devel-api/adaptor-framework/keyboard.h | 36 ++++++++++++++ dali/internal/input/common/keyboard.cpp | 20 ++++++++ .../android/window-system-android.cpp | 20 ++++++++ dali/internal/window-system/common/window-system.h | 20 ++++++++ .../window-system/macos/window-system-mac.mm | 20 ++++++++ .../ecore-wl/window-system-ecore-wl.cpp | 20 ++++++++ .../ecore-wl2/window-system-ecore-wl2.cpp | 55 ++++++++++++++++++++++ .../ubuntu-x11/window-system-ecore-x.cpp | 20 ++++++++ .../window-system/windows/window-system-win.cpp | 20 ++++++++ .../internal/window-system/x11/window-system-x.cpp | 20 ++++++++ 10 files changed, 251 insertions(+) diff --git a/dali/devel-api/adaptor-framework/keyboard.h b/dali/devel-api/adaptor-framework/keyboard.h index b62f9e5..b4a06df 100644 --- a/dali/devel-api/adaptor-framework/keyboard.h +++ b/dali/devel-api/adaptor-framework/keyboard.h @@ -51,6 +51,42 @@ DALI_ADAPTOR_API bool SetRepeatInfo(float rate, float delay); */ DALI_ADAPTOR_API bool GetRepeatInfo(float& rate, float& delay); +/** + * @brief Sets keyboard repeat information of horizontal way. + * + * @param[in] rate The key repeat rate value in seconds + * @param[in] delay The key repeat delay value in seconds + * @return true if setting the keyboard repeat succeeds + */ +DALI_ADAPTOR_API bool SetHorizontalRepeatInfo(float rate, float delay); + +/** + * @brief Gets keyboard repeat information of horizontal way. + * + * @param[in] rate The key repeat rate value in seconds + * @param[in] delay The key repeat delay value in seconds + * @return true if getting the keyboard repeat succeeds, false otherwise + */ +DALI_ADAPTOR_API bool GetHorizontalRepeatInfo(float& rate, float& delay); + +/** + * @brief Sets keyboard repeat information of vertical way. + * + * @param[in] rate The key repeat rate value in seconds + * @param[in] delay The key repeat delay value in seconds + * @return true if setting the keyboard repeat succeeds + */ +DALI_ADAPTOR_API bool SetVerticalRepeatInfo(float rate, float delay); + +/** + * @brief Gets keyboard repeat information of vertical way. + * + * @param[in] rate The key repeat rate value in seconds + * @param[in] delay The key repeat delay value in seconds + * @return true if getting the keyboard repeat succeeds, false otherwise + */ +DALI_ADAPTOR_API bool GetVerticalRepeatInfo(float& rate, float& delay); + } // namespace Keyboard /** diff --git a/dali/internal/input/common/keyboard.cpp b/dali/internal/input/common/keyboard.cpp index 6167de5..5ad6569 100644 --- a/dali/internal/input/common/keyboard.cpp +++ b/dali/internal/input/common/keyboard.cpp @@ -35,6 +35,26 @@ bool GetRepeatInfo(float& rate, float& delay) return Dali::Internal::Adaptor::WindowSystem::GetKeyboardRepeatInfo(rate, delay); } +bool SetHorizontalRepeatInfo(float rate, float delay) +{ + return Dali::Internal::Adaptor::WindowSystem::SetKeyboardHorizontalRepeatInfo(rate, delay); +} + +bool GetHorizontalRepeatInfo(float& rate, float& delay) +{ + return Dali::Internal::Adaptor::WindowSystem::GetKeyboardHorizontalRepeatInfo(rate, delay); +} + +bool SetVerticalRepeatInfo(float rate, float delay) +{ + return Dali::Internal::Adaptor::WindowSystem::SetKeyboardVerticalRepeatInfo(rate, delay); +} + +bool GetVerticalRepeatInfo(float& rate, float& delay) +{ + return Dali::Internal::Adaptor::WindowSystem::GetKeyboardVerticalRepeatInfo(rate, delay); +} + } // namespace Keyboard } // namespace Dali diff --git a/dali/internal/window-system/android/window-system-android.cpp b/dali/internal/window-system/android/window-system-android.cpp index 1f6b120..77721c1 100644 --- a/dali/internal/window-system/android/window-system-android.cpp +++ b/dali/internal/window-system/android/window-system-android.cpp @@ -61,6 +61,26 @@ bool GetKeyboardRepeatInfo(float& rate, float& delay) return false; } +bool SetKeyboardHorizontalRepeatInfo(float rate, float delay) +{ + return false; +} + +bool GetKeyboardHorizontalRepeatInfo(float& rate, float& delay) +{ + return false; +} + +bool SetKeyboardVerticalRepeatInfo(float rate, float delay) +{ + return false; +} + +bool GetKeyboardVerticalRepeatInfo(float& rate, float& delay) +{ + return false; +} + } // namespace WindowSystem } // namespace Adaptor diff --git a/dali/internal/window-system/common/window-system.h b/dali/internal/window-system/common/window-system.h index 6a1ffce..0c05922 100644 --- a/dali/internal/window-system/common/window-system.h +++ b/dali/internal/window-system/common/window-system.h @@ -79,6 +79,26 @@ bool SetKeyboardRepeatInfo(float rate, float delay); */ bool GetKeyboardRepeatInfo(float& rate, float& delay); +/** + * @copydoc Dali::Keyboard::SetHorizontalRepeatInfo() + */ +bool SetKeyboardHorizontalRepeatInfo(float rate, float delay); + +/** + * @copydoc Dali::Keyboard::GetHorizontalRepeatInfo() + */ +bool GetKeyboardHorizontalRepeatInfo(float& rate, float& delay); + +/** + * @copydoc Dali::Keyboard::SetVerticalRepeatInfo() + */ +bool SetKeyboardVerticalRepeatInfo(float rate, float delay); + +/** + * @copydoc Dali::Keyboard::GetVerticalRepeatInfo() + */ +bool GetKeyboardVerticalRepeatInfo(float& rate, float& delay); + } // namespace WindowSystem /** diff --git a/dali/internal/window-system/macos/window-system-mac.mm b/dali/internal/window-system/macos/window-system-mac.mm index 1f67d12..545f58c 100644 --- a/dali/internal/window-system/macos/window-system-mac.mm +++ b/dali/internal/window-system/macos/window-system-mac.mm @@ -52,5 +52,25 @@ bool GetKeyboardRepeatInfo( float& rate, float& delay ) return false; } +bool SetKeyboardHorizontalRepeatInfo(float rate, float delay) +{ + return false; +} + +bool GetKeyboardHorizontalRepeatInfo(float& rate, float& delay) +{ + return false; +} + +bool SetKeyboardVerticalRepeatInfo(float rate, float delay) +{ + return false; +} + +bool GetKeyboardVerticalRepeatInfo(float& rate, float& delay) +{ + return false; +} + } // namespace Dali::Internal::Adaptor::WindowSystem diff --git a/dali/internal/window-system/tizen-wayland/ecore-wl/window-system-ecore-wl.cpp b/dali/internal/window-system/tizen-wayland/ecore-wl/window-system-ecore-wl.cpp index 4f57a10..8a341b0 100644 --- a/dali/internal/window-system/tizen-wayland/ecore-wl/window-system-ecore-wl.cpp +++ b/dali/internal/window-system/tizen-wayland/ecore-wl/window-system-ecore-wl.cpp @@ -63,6 +63,26 @@ bool GetKeyboardRepeatInfo(float& rate, float& delay) return ret; } +bool SetKeyboardHorizontalRepeatInfo(float rate, float delay) +{ + return false; +} + +bool GetKeyboardHorizontalRepeatInfo(float& rate, float& delay) +{ + return false; +} + +bool SetKeyboardVerticalRepeatInfo(float rate, float delay) +{ + return false; +} + +bool GetKeyboardVerticalRepeatInfo(float& rate, float& delay) +{ + return false; +} + } // namespace WindowSystem } // namespace Adaptor diff --git a/dali/internal/window-system/tizen-wayland/ecore-wl2/window-system-ecore-wl2.cpp b/dali/internal/window-system/tizen-wayland/ecore-wl2/window-system-ecore-wl2.cpp index 8e9a5e7..ff6105b 100644 --- a/dali/internal/window-system/tizen-wayland/ecore-wl2/window-system-ecore-wl2.cpp +++ b/dali/internal/window-system/tizen-wayland/ecore-wl2/window-system-ecore-wl2.cpp @@ -135,6 +135,61 @@ bool GetKeyboardRepeatInfo(float& rate, float& delay) return false; } + +bool SetKeyboardHorizontalRepeatInfo(float rate, float delay) +{ + auto frameworkFactory = Dali::Internal::Adaptor::GetFrameworkFactory(); + if(frameworkFactory == nullptr || (frameworkFactory && frameworkFactory->GetFrameworkBackend() == FrameworkBackend::DEFAULT)) + { + Ecore_Wl2_Input* input = ecore_wl2_input_default_input_get(ecore_wl2_connected_display_get(NULL)); + return ecore_wl2_input_keyboard_horizontal_way_repeat_set(input, static_cast(rate), static_cast(delay)); + } + return false; +} + +bool GetKeyboardHorizontalRepeatInfo(float& rate, float& delay) +{ + auto frameworkFactory = Dali::Internal::Adaptor::GetFrameworkFactory(); + if(frameworkFactory == nullptr || (frameworkFactory && frameworkFactory->GetFrameworkBackend() == FrameworkBackend::DEFAULT)) + { + Ecore_Wl2_Input* input = ecore_wl2_input_default_input_get(ecore_wl2_connected_display_get(NULL)); + double rateVal, delayVal; + bool ret = ecore_wl2_input_keyboard_horizontal_way_repeat_get(input, &rateVal, &delayVal); + rate = static_cast(rateVal); + delay = static_cast(delayVal); + + return ret; + } + return false; +} + +bool SetKeyboardVerticalRepeatInfo(float rate, float delay) +{ + auto frameworkFactory = Dali::Internal::Adaptor::GetFrameworkFactory(); + if(frameworkFactory == nullptr || (frameworkFactory && frameworkFactory->GetFrameworkBackend() == FrameworkBackend::DEFAULT)) + { + Ecore_Wl2_Input* input = ecore_wl2_input_default_input_get(ecore_wl2_connected_display_get(NULL)); + return ecore_wl2_input_keyboard_vertical_way_repeat_set(input, static_cast(rate), static_cast(delay)); + } + return false; +} + +bool GetKeyboardVerticalRepeatInfo(float& rate, float& delay) +{ + auto frameworkFactory = Dali::Internal::Adaptor::GetFrameworkFactory(); + if(frameworkFactory == nullptr || (frameworkFactory && frameworkFactory->GetFrameworkBackend() == FrameworkBackend::DEFAULT)) + { + Ecore_Wl2_Input* input = ecore_wl2_input_default_input_get(ecore_wl2_connected_display_get(NULL)); + double rateVal, delayVal; + bool ret = ecore_wl2_input_keyboard_vertical_way_repeat_get(input, &rateVal, &delayVal); + rate = static_cast(rateVal); + delay = static_cast(delayVal); + + return ret; + } + return false; +} + } // namespace WindowSystem } // namespace Adaptor diff --git a/dali/internal/window-system/ubuntu-x11/window-system-ecore-x.cpp b/dali/internal/window-system/ubuntu-x11/window-system-ecore-x.cpp index 71f840e..09f222f 100644 --- a/dali/internal/window-system/ubuntu-x11/window-system-ecore-x.cpp +++ b/dali/internal/window-system/ubuntu-x11/window-system-ecore-x.cpp @@ -59,6 +59,26 @@ bool GetKeyboardRepeatInfo(float& rate, float& delay) return false; } +bool SetKeyboardHorizontalRepeatInfo(float rate, float delay) +{ + return false; +} + +bool GetKeyboardHorizontalRepeatInfo(float& rate, float& delay) +{ + return false; +} + +bool SetKeyboardVerticalRepeatInfo(float rate, float delay) +{ + return false; +} + +bool GetKeyboardVerticalRepeatInfo(float& rate, float& delay) +{ + return false; +} + } // namespace WindowSystem } // namespace Adaptor diff --git a/dali/internal/window-system/windows/window-system-win.cpp b/dali/internal/window-system/windows/window-system-win.cpp index 7740edd..8571216 100644 --- a/dali/internal/window-system/windows/window-system-win.cpp +++ b/dali/internal/window-system/windows/window-system-win.cpp @@ -53,6 +53,26 @@ bool GetKeyboardRepeatInfo(float& rate, float& delay) return false; } +bool SetKeyboardHorizontalRepeatInfo(float rate, float delay) +{ + return false; +} + +bool GetKeyboardHorizontalRepeatInfo(float& rate, float& delay) +{ + return false; +} + +bool SetKeyboardVerticalRepeatInfo(float rate, float delay) +{ + return false; +} + +bool GetKeyboardVerticalRepeatInfo(float& rate, float& delay) +{ + return false; +} + } // namespace WindowSystem } // namespace Adaptor diff --git a/dali/internal/window-system/x11/window-system-x.cpp b/dali/internal/window-system/x11/window-system-x.cpp index 406ca2b..b48a7ef 100644 --- a/dali/internal/window-system/x11/window-system-x.cpp +++ b/dali/internal/window-system/x11/window-system-x.cpp @@ -1074,6 +1074,26 @@ bool GetKeyboardRepeatInfo(float& rate, float& delay) return false; } +bool SetKeyboardHorizontalRepeatInfo(float rate, float delay) +{ + return false; +} + +bool GetKeyboardHorizontalRepeatInfo(float& rate, float& delay) +{ + return false; +} + +bool SetKeyboardVerticalRepeatInfo(float rate, float delay) +{ + return false; +} + +bool GetKeyboardVerticalRepeatInfo(float& rate, float& delay) +{ + return false; +} + } // namespace WindowSystem } // namespace Adaptor -- 2.7.4