X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ffocus-manager%2Fkeyinput-focus-manager-impl.h;h=f7886c2fb915aba2eee0e8c5d45fc75580600e86;hp=8b0397004c3e99630b819ceb841f72c80edd5587;hb=b694e7e2ae624e206e1548b1a863c554eb9cd4d7;hpb=2ddfbb9e23a7c3fc30e604236c41e0ef6d2ed6a2 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..f7886c2 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,7 +24,7 @@ #include // INTERNAL INCLUDES -#include +#include #include namespace Dali @@ -44,9 +44,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 +64,6 @@ public: */ Toolkit::Control GetCurrentFocusControl() const; - /** - * @copydoc Toolkit::IsKeyboardListener - */ - bool IsKeyboardListener(Toolkit::Control control) const; - public: /** @@ -80,11 +72,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. @@ -105,18 +92,10 @@ protected: 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. - */ - FocusStackIterator FindFocusControlInStack( Toolkit::Control control ) const; - - /** * 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. @@ -125,9 +104,12 @@ private: void OnFocusControlStageDisconnection( 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 +123,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 +152,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