X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ffocus-manager%2Fkeyboard-focus-manager-impl.h;h=1ece0b116e59bc8f621db628f87fc091231bbf5e;hp=1cd958aaa21e783b8e04ee6a9858816c9af862e6;hb=1770d0f68a05d545757fc8050333c0c9c4be96c9;hpb=2071317d301e9d5af326a3a2efcd2996263fbead diff --git a/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.h b/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.h index 1cd958a..1ece0b1 100644 --- a/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.h +++ b/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.h @@ -2,7 +2,7 @@ #define __DALI_TOOLKIT_INTERNAL_KEYBOARD_FOCUS_MANAGER_H__ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 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. @@ -65,7 +65,7 @@ public: /** * @copydoc Toolkit::KeyboardFocusManager::MoveFocus */ - bool MoveFocus(Toolkit::Control::KeyboardFocusNavigationDirection direction); + bool MoveFocus(Toolkit::Control::KeyboardFocus::Direction direction); /** * @copydoc Toolkit::KeyboardFocusManager::ClearFocus @@ -107,6 +107,11 @@ public: */ Actor GetFocusIndicatorActor(); + /** + * Move current focus to backward + */ + void MoveFocusBackward(); + public: /** @@ -125,9 +130,9 @@ public: Toolkit::KeyboardFocusManager::FocusGroupChangedSignalType& FocusGroupChangedSignal(); /** - * @copydoc Toolkit::KeyboardFocusManager::FocusedActorActivatedSignal() + * @copydoc Toolkit::KeyboardFocusManager::FocusedActorEnterKeySignal() */ - Toolkit::KeyboardFocusManager::FocusedActorActivatedSignalType& FocusedActorActivatedSignal(); + Toolkit::KeyboardFocusManager::FocusedActorEnterKeySignalType& FocusedActorEnterKeySignal(); /** * Connects a callback function with the object's signals. @@ -149,6 +154,9 @@ protected: private: + typedef Dali::Vector< Dali::BaseObject* > FocusStack; ///< Define Dali::Vector< Dali::BaseObject* > as FocusStack to contain focus history + typedef FocusStack::Iterator FocusStackIterator; ///< Define FocusStack::Iterator as FocusStackIterator to navigate FocusStack + /** * Get the focus group of current focused actor. * @pre The FocusManager has been initialized. @@ -171,7 +179,7 @@ private: * @param direction The direction of focus movement * @return Whether the focus is successful or not */ - bool DoMoveFocusWithinLayoutControl(Toolkit::Control control, Actor actor, Toolkit::Control::KeyboardFocusNavigationDirection direction); + bool DoMoveFocusWithinLayoutControl(Toolkit::Control control, Actor actor, Toolkit::Control::KeyboardFocus::Direction direction); /** * Move the focus to the first focusable actor in the next focus group in the forward @@ -183,16 +191,11 @@ private: bool DoMoveFocusToNextFocusGroup(bool forward); /** - * Activate the actor. If the actor is control, call OnActivated virtual function. - * This function will emit FocusedActorActivatedSignal. - * @param actor The actor to activate + * Enter has been pressed on the actor. If the actor is control, call the OnKeybaordEnter virtual function. + * This function will emit FocusedActorEnterKeySignal. + * @param actor The actor to notify */ - void DoActivate(Actor actor); - - /** - * Create the default indicator actor to highlight the focused actor. - */ - void CreateDefaultFocusIndicatorActor(); + void DoKeyboardEnter( Actor actor ); /** * Check whether the actor is a layout control that supports two dimensional keyboard navigation. @@ -221,9 +224,9 @@ private: /** * Callback for the touch event when the screen is touched and when the touch ends * (i.e. the down & up touch events only). - * @param[in] touchEvent The touch event + * @param[in] touch The touch information */ - void OnTouched(const TouchEvent& touchEvent); + void OnTouch( const TouchData& touch ); /** * Change the keyboard focus status when keyboard focus feature turned on or off. @@ -243,7 +246,7 @@ private: Toolkit::KeyboardFocusManager::PreFocusChangeSignalType mPreFocusChangeSignal; ///< The signal to notify the focus will be changed Toolkit::KeyboardFocusManager::FocusChangedSignalType mFocusChangedSignal; ///< The signal to notify the focus change Toolkit::KeyboardFocusManager::FocusGroupChangedSignalType mFocusGroupChangedSignal; ///< The signal to notify the focus group change - Toolkit::KeyboardFocusManager::FocusedActorActivatedSignalType mFocusedActorActivatedSignal; ///< The signal to notify the activation of focused actor + Toolkit::KeyboardFocusManager::FocusedActorEnterKeySignalType mFocusedActorEnterKeySignal; ///< The signal to notify that enter has been pressed on the focused actor unsigned int mCurrentFocusActor; ///< The actor ID of current focused actor @@ -257,7 +260,10 @@ private: bool mIsWaitingKeyboardFocusChangeCommit:1; /// A flag to indicate PreFocusChangeSignal emitted but the proposed focus actor is not commited by the application yet. + FocusStack mFocusHistory; ///< Stack to contain pre-focused actor's BaseObject* + SlotDelegate< KeyboardFocusManager > mSlotDelegate; + }; } // namespace Internal