X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ffocus-manager%2Fkeyinput-focus-manager-impl.h;h=2a3d7dee16a33b6c1c0859ce737f5f12a86026be;hb=e4a3c7b18f3a6168ec3967d4881663f7ed54f8d5;hp=8b0397004c3e99630b819ceb841f72c80edd5587;hpb=306d2f61a1b64179e801fa8a0bb2bd7b4e9dd682;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/focus-manager/keyinput-focus-manager-impl.h b/dali-toolkit/internal/focus-manager/keyinput-focus-manager-impl.h index 8b03970..2a3d7de 100644 --- a/dali-toolkit/internal/focus-manager/keyinput-focus-manager-impl.h +++ b/dali-toolkit/internal/focus-manager/keyinput-focus-manager-impl.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_INTERNAL_KEYINPUT_FOCUS_MANAGER_H__ -#define __DALI_TOOLKIT_INTERNAL_KEYINPUT_FOCUS_MANAGER_H__ +#ifndef DALI_TOOLKIT_INTERNAL_KEYINPUT_FOCUS_MANAGER_H +#define DALI_TOOLKIT_INTERNAL_KEYINPUT_FOCUS_MANAGER_H /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2019 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,12 +24,19 @@ #include // INTERNAL INCLUDES -#include +#include #include namespace Dali { +namespace Integration +{ + +class SceneHolder; + +} // namespace Integration + namespace Toolkit { @@ -44,9 +51,6 @@ class KeyInputFocusManager; class KeyInputFocusManager : public Dali::BaseObject, public Dali::ConnectionTracker { public: - typedef Dali::Vector< Dali::BaseObject* > FocusStack; - typedef FocusStack::Iterator FocusStackIterator; - /** * Construct a new KeyInputFocusManager. */ @@ -67,11 +71,6 @@ public: */ Toolkit::Control GetCurrentFocusControl() const; - /** - * @copydoc Toolkit::IsKeyboardListener - */ - bool IsKeyboardListener(Toolkit::Control control) const; - public: /** @@ -80,11 +79,6 @@ public: Toolkit::KeyInputFocusManager::KeyInputFocusChangedSignalType& KeyInputFocusChangedSignal(); /** - * @copydoc Toolkit::KeyInputFocusManager::UnhandledKeyEventSignal() - */ - Toolkit::KeyInputFocusManager::UnhandledKeyEventSignalType& UnhandledKeyEventSignal(); - - /** * Connects a callback function with the object's signals. * @param[in] object The object providing the signal. * @param[in] tracker Used to disconnect the signal. @@ -103,31 +97,31 @@ protected: virtual ~KeyInputFocusManager(); private: - /** - * Search for a control in the focus stack. - * @param[in] control The control for which to search - * @return An iterator to the control. If not found, this will equate to the - * mFocusStack.End() iterator. + * This will be called when a new scene holder is created + * @param sceneHolder The new scene holder */ - FocusStackIterator FindFocusControlInStack( Toolkit::Control control ) const; + void OnSceneHolderCreated( Dali::Integration::SceneHolder& sceneHolder ); /** * Callback for the key event when no actor in the stage has gained the key input focus * @param[in] event The KeyEvent event. */ - void OnKeyEvent(const KeyEvent& event); + bool OnKeyEvent(const KeyEvent& event); /** - * Signal handler called when a focused Control is removed from Stage. - * @param[in] control The control removed from stage. + * Signal handler called when a focused Control is removed from Scene. + * @param[in] control The control removed from the scene. */ - void OnFocusControlStageDisconnection( Dali::Actor control ); + void OnFocusControlSceneDisconnection( Dali::Actor control ); /** - * Signal handler called when an actor is destroyed. - */ - void OnObjectDestroyed(const Dali::RefObject* object); + * Recursively deliver events to the control and its parents, until the event is consumed or the stage is reached. + * @param[in] control The control got KeyEvent. + * @param[in] event The KeyEvent. + * @return True if KeyEvent is consumed. + */ + bool EmitKeyEventSignal( Toolkit::Control control, const KeyEvent& event ); private: @@ -141,13 +135,9 @@ private: // The key input focus change signal Toolkit::KeyInputFocusManager::KeyInputFocusChangedSignalType mKeyInputFocusChangedSignal; - // The un-handled key event signal - Toolkit::KeyInputFocusManager::UnhandledKeyEventSignalType mUnhandledKeyEventSignal; - - // Keyboard events are sent to the current focus actor, which will be the actor on the top of the focus actors stack. - FocusStack mFocusStack; SlotDelegate< KeyInputFocusManager > mSlotDelegate; - ObjectRegistry mObjectRegistry; + + Toolkit::Control mCurrentFocusControl; ///< The current focused control }; } // namespace Internal @@ -174,4 +164,4 @@ inline const Internal::KeyInputFocusManager& GetImpl(const Dali::Toolkit::KeyInp } // namespace Dali -#endif // __DALI_TOOLKIT_INTERNAL_KEYINPUT_FOCUS_MANAGER_H__ +#endif // DALI_TOOLKIT_INTERNAL_KEYINPUT_FOCUS_MANAGER_H