fix for p130925 - 00132
[platform/framework/native/uifw.git] / src / ui / inc / FUiCtrl_OptionMenu.h
index 661f8c7..0cd85e0 100644 (file)
 
 #include <FBaseString.h>
 #include <FGrpColor.h>
+#include <FUiAnimIVisualElementAnimationStatusEventListener.h>
 #include "FUi_Window.h"
 #include "FUiCtrl_OptionMenuPresenter.h"
 #include "FUiCtrl_ActionEvent.h"
 #include "FUiCtrl_IActionEventListener.h"
-
+#include "FUiCtrl_IFrameEventListener.h"
 #include "FUiCtrl_ScrollPanel.h"
 
 namespace Tizen { namespace Ui {
@@ -70,6 +71,8 @@ class _OSP_EXPORT_ _OptionMenu
        , virtual public _IUiEventListener
        , virtual public _IUiEventPreviewer
        , public _IAccessibilityListener
+       , virtual public _IFrameEventListener
+       , public Tizen::Ui::Animations::IVisualElementAnimationStatusEventListener
 {
        DECLARE_CLASS_BEGIN(_OptionMenu, _Control);
        DECLARE_PROPERTY("color", GetPropertyColor, SetPropertyColor);
@@ -112,6 +115,9 @@ public:
        static _OptionMenu* CreateOptionMenuN(void);
 
 public:
+        void OnVisualElementAnimationFinished(const Tizen::Ui::Animations::VisualElementAnimation& animation, const Tizen::Base::String& keyName, Tizen::Ui::Animations::VisualElement& target, bool completedNormally);
+        void OnVisualElementAnimationRepeated(const Tizen::Ui::Animations::VisualElementAnimation& animation, const Tizen::Base::String& keyName, Tizen::Ui::Animations::VisualElement& target, long currentRepeatCount){};
+        void OnVisualElementAnimationStarted(const Tizen::Ui::Animations::VisualElementAnimation& animation, const Tizen::Base::String& keyName, Tizen::Ui::Animations::VisualElement& target){};
        result Install(void);
        result Initialize(void);
        result AddItem(const Tizen::Base::String& text, int actionId, const Tizen::Graphics::Bitmap* pNormalBitmap, const Tizen::Graphics::Bitmap* pPressedBitmap, const Tizen::Graphics::Bitmap* pHighlightedBitmap);
@@ -125,7 +131,7 @@ public:
        int GetSubItemCount(int mainIndex) const;
        int GetSubItemIndexFromActionId(int actionId) const;
        int GetSubItemActionIdAt(int mainIndex, int subIndex) const;
-       result ShowSubMenu(int mainIndex, _OptionMenuItem& item, Tizen::Graphics::FloatPoint touchPosition);
+    result ShowSubMenu(int mainIndex, _OptionMenuItem& item);
        bool IsSubMenuShown(void) const;
        result DestroySubMenu(void);
        result InsertItem(int index, const Tizen::Base::String& text, int actionId, const Tizen::Graphics::Bitmap* pNormalBitmap,
@@ -136,8 +142,7 @@ public:
        void RemoveAllItems(void);
        int GetItemCount(void) const;
        result SetShowItemCount(int count);
-       int GetShowItemCount(void) const;
-       int GetShowItemMaxCount(void) const;
+       int GetMaximumVisibleItemsCount(void) const;
        int GetItemIndexAt(int actionId) const;
        int GetItemActionIdAt(int index) const;
        result SetWindowRect(const Tizen::Graphics::FloatRectangle& rect);
@@ -160,14 +165,21 @@ public:
        const Tizen::Graphics::Bitmap* GetBackgroundNormalBitmap(void) const;
        const Tizen::Graphics::Bitmap* GetBackgroundEffectBitmap(void) const;
        _ControlOrientation GetLayout(void) const;
+       _ControlRotation GetRotation(void) const;
 
        virtual result OnAttachedToMainTree(void);
        virtual result OnDetachingFromMainTree(void);
+       virtual void OnFrameActivated(const Tizen::Ui::Controls::_Frame& source);
+       virtual void OnFrameDeactivated(const Tizen::Ui::Controls::_Frame& source);
+       virtual void OnFrameMinimized(const Tizen::Ui::Controls::_Frame& source);
+       virtual void OnFrameRestored(const Tizen::Ui::Controls::_Frame& source);
        virtual void OnDraw(void);
 
        virtual _UiTouchEventDelivery OnPreviewTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
        virtual _UiTouchEventDelivery OnPreviewTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
        virtual _UiTouchEventDelivery OnPreviewTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
+       void CloseAnimation(int actionID);
+       void OpenAnimation();
 
        virtual bool OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
        virtual bool OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
@@ -179,10 +191,10 @@ public:
        virtual void OnFontChanged(Tizen::Graphics::Font* pFont);
        virtual void OnFontInfoRequested(unsigned long& style, float& size);
 
-       virtual void OnChangeLayout(_ControlOrientation orientation);
+       virtual void OnChangeLayout(_ControlRotation rotation);
        virtual void OnOwnerChanged(_Control* pOldOwner);
-    void OnActivated(void);
-    void OnDeactivated(void);
+       void OnActivated(void);
+       void OnDeactivated(void);
 
        virtual bool OnAccessibilityFocusMovedNext(const _AccessibilityContainer& control, const _AccessibilityElement& element);
        virtual bool OnAccessibilityFocusMovedPrevious(const _AccessibilityContainer& control, const _AccessibilityElement& element);
@@ -203,13 +215,12 @@ public:
 
        _ScrollPanel* GetScrollPanel(void);
 
-       //    virtual bool OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo);
+       virtual bool OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo);
        virtual bool OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo);
-       //    virtual bool OnFocusGained(const _Control& source);
-       //    virtual bool OnFocusLost(const _Control& source);
-       //    virtual void OnDrawFocus(void);
-       //    void OnFocusModeStateChanged(void);
-       //    bool IsChildControlFocusManage(void) const;
+       virtual bool OnFocusGained(const _Control& source);
+       virtual bool OnFocusLost(const _Control& source);
+       virtual void OnDrawFocus(void);
+       virtual void OnFocusModeStateChanged(void);
 
 protected:
        result SetPresenter(const _OptionMenuPresenter& OptionMenuPresenter);
@@ -226,9 +237,16 @@ private:
 private:
        _OptionMenuPresenter* __pOptionMenuPresenter;
        int __showItemCount;
-       int __showItemMaxCount;
        bool __isAttachedToMainTree;
-       bool __ownerInputEnableState;
+       bool __isMaxVisibleCountSet;
+       bool __isFocused;
+       int __currentFocusedIndex;
+       int __selectedActionID;
+
+       static const int ANIMATION_DURATION = 333;
+
+       Tizen::Ui::Animations::IVisualElementAnimationTimingFunction* __pBoundsTimingFunction;
+       Tizen::Ui::Animations::IVisualElementAnimationTimingFunction* __pOpacityTimingFunction;
 
        // attribute for position fo the window
        Tizen::Graphics::FloatRectangle __windowRect;   // OptionMenu window in the whole screen area
@@ -242,6 +260,7 @@ private:
        Tizen::Graphics::Bitmap* __pBackgroundNormalBitmap;
        Tizen::Graphics::Bitmap* __pBackgroundEffectBitmap;
        enum _ControlOrientation __layout;
+       enum _ControlRotation __rotation;
 
        Tizen::Graphics::Color __backgroundColor;
        Tizen::Graphics::Color __textColor[OPTION_MENU_ITEM_STATUS_COUNT];
@@ -252,6 +271,7 @@ private:
 
        _ScrollPanel* __pScrollPanel;
        _ContextMenu* __pSubMenu;
+       Tizen::Ui::Controls::_Frame* __pCurrentFrame;
        int __subMenuIndex;
 
 }; // _OptionMenu