X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=shared%2Fdali-table-view.h;h=c265c094af3e3256989b20345c9e4b6e41284889;hb=8c3bc5dd2ae1dbacc188feec3fb5da331f605c7d;hp=03b22ebdb1d9d781039a10dd1ac9d2bd8c6fa722;hpb=1b1ac2010b52acb4ce6c0003d9aebde34eb38fc2;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/shared/dali-table-view.h b/shared/dali-table-view.h index 03b22eb..c265c09 100644 --- a/shared/dali-table-view.h +++ b/shared/dali-table-view.h @@ -2,7 +2,7 @@ #define DALI_DEMO_TABLEVIEW_H /* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 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. @@ -18,50 +18,14 @@ * */ -#include +// EXTERNAL INCLUDES #include #include +#include -class Example; - -typedef std::vector ExampleList; -typedef ExampleList::iterator ExampleListIter; -typedef ExampleList::const_iterator ExampleListConstIter; - -typedef std::vector AnimationList; -typedef AnimationList::iterator AnimationListIter; -typedef AnimationList::const_iterator AnimationListConstIter; - -/** - * Example information - * - * Represents a single Example. - */ -struct Example -{ - // Constructors - - /** - * @param[in] name unique name of example - * @param[in] title The caption for the example to appear on a tile button. - */ - Example(std::string name, std::string title) - : name(name), - title(title) - { - } - - Example() - { - } - - // Data - - std::string name; ///< unique name of example - std::string title; ///< title (caption) of example to appear on tile button. -}; - - +// INTERNAL INCLUDES +#include "bubble-animator.h" +#include "example.h" /** * Dali-Demo instance @@ -69,12 +33,19 @@ struct Example class DaliTableView : public Dali::ConnectionTracker { public: - + /** + * Constructor + * + * @param application A reference to the application class + */ DaliTableView(Dali::Application& application); - ~DaliTableView(); -public: + /** + * Destructor + */ + ~DaliTableView() = default; +public: /** * Adds an Example to our demo showcase * @@ -92,27 +63,17 @@ public: * @note Should be called before the Application MainLoop is started. * @note By default the examples are NOT sorted alphabetically by Title. */ - void SortAlphabetically( bool sortAlphabetically ); - -private: // Application callbacks & implementation + void SortAlphabetically(bool sortAlphabetically); - static const unsigned int FOCUS_ANIMATION_ACTOR_NUMBER = 2; ///< The number of elements used to form the custom focus effect - - /** - * Shape enum for create function - */ - enum ShapeType - { - CIRCLE, - BUBBLE - }; +private: // Application callbacks & implementation + static constexpr unsigned int FOCUS_ANIMATION_ACTOR_NUMBER = 2; ///< The number of elements used to form the custom focus effect /** * Initialize application. * * @param[in] app Application instance */ - void Initialize( Dali::Application& app ); + void Initialize(Dali::Application& app); /** * Populates the contents (ScrollView) with all the @@ -122,13 +83,6 @@ private: // Application callbacks & implementation void Populate(); /** - * Rotates RootActor orientation to that specified. - * - * @param[in] degrees The requested angle. - */ - void Rotate( unsigned int degrees ); - - /** * Creates a tile for the main menu. * * @param[in] name The unique name for this Tile @@ -138,7 +92,7 @@ private: // Application callbacks & implementation * * @return The Actor for the created tile. */ - Dali::Actor CreateTile( const std::string& name, const std::string& title, const Dali::Vector3& sizeMultiplier, Dali::Vector2& position ); + Dali::Actor CreateTile(const std::string& name, const std::string& title, const Dali::Vector3& sizeMultiplier, Dali::Vector2& position); // Signal handlers @@ -150,7 +104,7 @@ private: // Application callbacks & implementation * * @return Consume flag */ - bool OnTilePressed( Dali::Actor actor, const Dali::TouchData& event ); + bool OnTilePressed(Dali::Actor actor, const Dali::TouchEvent& event); /** * Called by OnTilePressed & Accessibility to do the appropriate action. @@ -160,7 +114,7 @@ private: // Application callbacks & implementation * * @return Consume flag */ - bool DoTilePress( Dali::Actor actor, Dali::PointState::Type state ); + bool DoTilePress(Dali::Actor actor, Dali::PointState::Type state); /** * Signal emitted when any tile has been hovered @@ -170,7 +124,7 @@ private: // Application callbacks & implementation * * @return Consume flag */ - bool OnTileHovered( Dali::Actor actor, const Dali::HoverEvent& event ); + bool OnTileHovered(Dali::Actor actor, const Dali::HoverEvent& event); /** * Signal emitted when the pressed animation has completed. @@ -180,15 +134,6 @@ private: // Application callbacks & implementation void OnPressedAnimationFinished(Dali::Animation& source); /** - * Signal emitted when the button has been clicked - * - * @param[in] button The Button that is clicked. - * - * @return Consume flag - */ - bool OnButtonClicked( Dali::Toolkit::Button& button ); - - /** * Signal emitted when scrolling has started. * * @param[in] position The current position of the scroll contents. @@ -211,7 +156,7 @@ private: // Application callbacks & implementation * * @return Consume flag */ - bool OnScrollTouched( Dali::Actor actor, const Dali::TouchData& event ); + bool OnScrollTouched(Dali::Actor actor, const Dali::TouchEvent& event); /** * Setup the effect on the scroll view @@ -224,56 +169,9 @@ private: // Application callbacks & implementation void ApplyCubeEffectToPages(); /** - * Setup the inner cube effect - */ - void SetupInnerPageCubeEffect(); - - /** - * Apply a shader effect to a table tile - */ - void ApplyEffectToTile(Dali::Actor tile); - - /** - * Apply effect to the content of a tile - */ - void ApplyEffectToTileContent(Dali::Actor tileContent); - - /** * Key event handler */ - void OnKeyEvent( const Dali::KeyEvent& event ); - - /** - * Create a depth field background - * - * @param[in] bubbleLayer Add the graphics to this layer - */ - void SetupBackground( Dali::Actor bubbleLayer ); - - /** - * Create background actors for the given layer - * - * @param[in] layer The layer to add the actors to - * @param[in] count The number of actors to generate - */ - void AddBackgroundActors( Dali::Actor layer, int count ); - - /** - * Timer handler for ending background animation - * - * @return Return value for timer handler - */ - bool PauseBackgroundAnimation(); - - /** - * Pause all animations - */ - void PauseAnimation(); - - /** - * Resume all animations - */ - void PlayAnimation(); + void OnKeyEvent(const Dali::KeyEvent& event); /** * @brief Creates and sets up the custom effect used for the keyboard (and mouse) focus. @@ -288,28 +186,28 @@ private: // Application callbacks & implementation * @param[in] direction The direction to move the focus * @return The actor to move the keyboard focus to. */ - Dali::Actor OnKeyboardPreFocusChange( Dali::Actor current, Dali::Actor proposed, Dali::Toolkit::Control::KeyboardFocus::Direction direction ); + Dali::Actor OnKeyboardPreFocusChange(Dali::Actor current, Dali::Actor proposed, Dali::Toolkit::Control::KeyboardFocus::Direction direction); /** * Callback when the keyboard focused actor is activated. * * @param[in] activatedActor The activated actor */ - void OnFocusedActorActivated( Dali::Actor activatedActor ); + void OnFocusedActorActivated(Dali::Actor activatedActor); /** * Callback when the keyboard focus indicator is enabled. * * @param[in] actor The keyboard focus indicator. */ - void OnFocusIndicatorEnabled( Dali::Actor actor ); + void OnFocusIndicatorEnabled(Dali::Actor actor); /** * Callback when the keyboard focus indicator is disabled. * * @param[in] actor The keyboard focus indicator. */ - void OnFocusIndicatorDisabled( Dali::Actor actor ); + void OnFocusIndicatorDisabled(Dali::Actor actor); /** * Called when the logo is tapped @@ -317,69 +215,37 @@ private: // Application callbacks & implementation * @param[in] actor The tapped actor * @param[in] tap The tap information. */ - void OnLogoTapped( Dali::Actor actor, const Dali::TapGesture& tap ); - - /** - * Hides the popup - */ - void HideVersionPopup(); - - /* - * @brief Callback called when the buttons page actor is relaid out - * - * @param[in] actor The page actor - */ - void OnButtonsPageRelayout( const Dali::Actor& actor ); - - /** - * @brief The is connected to the keyboard focus highlight actor, and called when it is placed on stage. - * @param[in] actor The actor that has been placed on stage. - */ - void OnStageConnect( Dali::Actor actor ); - - /** - * @brief Callback called to set up background actors - * - * @param[in] actor The actor raising the callback - */ - void InitialiseBackgroundActors( Dali::Actor actor ); + void OnLogoTapped(Dali::Actor actor, const Dali::TapGesture& tap); private: - - Dali::Application& mApplication; ///< Application instance. - Dali::Toolkit::Control mRootActor; ///< All content (excluding background is anchored to this Actor) - Dali::Animation mRotateAnimation; ///< Animation to rotate and resize mRootActor. - Dali::Animation mPressedAnimation; ///< Button press scaling animation. - Dali::Toolkit::ScrollView mScrollView; ///< ScrollView container (for all Examples) - Dali::Toolkit::ScrollViewEffect mScrollViewEffect; ///< Effect to be applied to the scroll view - Dali::Toolkit::RulerPtr mScrollRulerX; ///< ScrollView X (horizontal) ruler - Dali::Toolkit::RulerPtr mScrollRulerY; ///< ScrollView Y (vertical) ruler - Dali::Actor mPressedActor; ///< The currently pressed actor. - Dali::Timer mAnimationTimer; ///< Timer used to turn off animation after a specific time period - Dali::TapGestureDetector mLogoTapDetector; ///< To detect taps on the logo - Dali::Toolkit::Popup mVersionPopup; ///< Displays DALi library version information + Dali::Application& mApplication; ///< Application instance. + Dali::Actor mRootActor; ///< All content (excluding background is anchored to this Actor) + Dali::Animation mPressedAnimation; ///< Button press scaling animation. + Dali::Toolkit::ScrollView mScrollView; ///< ScrollView container (for all Examples) + Dali::Toolkit::ScrollViewEffect mScrollViewEffect; ///< Effect to be applied to the scroll view + Dali::Actor mPressedActor; ///< The currently pressed actor. + Dali::TapGestureDetector mLogoTapDetector; ///< To detect taps on the logo + Dali::Toolkit::Popup mVersionPopup; ///< Displays DALi library version information + BubbleAnimator mBubbleAnimator; ///< Provides bubble animations. /** * This struct encapsulates all data relevant to each of the elements used within the custom keyboard focus effect. */ struct FocusEffect { - Dali::Toolkit::ImageView actor; ///< The parent keyboard focus highlight actor - Dali::Animation animation; ///< The animation for the parent keyboard focus highlight actor + Dali::Toolkit::ImageView actor; ///< The parent keyboard focus highlight actor + Dali::Animation animation; ///< The animation for the parent keyboard focus highlight actor }; - FocusEffect mFocusEffect[FOCUS_ANIMATION_ACTOR_NUMBER]; ///< The elements used to create the custom focus effect - - std::vector< Dali::Actor > mPages; ///< List of pages. - AnimationList mBackgroundAnimations; ///< List of background bubble animations - ExampleList mExampleList; ///< List of examples. + FocusEffect mFocusEffect[FOCUS_ANIMATION_ACTOR_NUMBER]; ///< The elements used to create the custom focus effect - float mPageWidth; ///< The width of a page within the scroll-view, used to calculate the domain - int mTotalPages; ///< Total pages within scrollview. + std::vector mPages; ///< List of pages. + ExampleList mExampleList; ///< List of examples. - bool mScrolling:1; ///< Flag indicating whether view is currently being scrolled - bool mSortAlphabetically:1; ///< Sort examples alphabetically. - bool mBackgroundAnimsPlaying:1; ///< Are background animations playing + float mPageWidth; ///< The width of a page within the scroll-view, used to calculate the domain + int mTotalPages; ///< Total pages within scrollview. + bool mScrolling : 1; ///< Flag indicating whether view is currently being scrolled + bool mSortAlphabetically : 1; ///< Sort examples alphabetically. }; #endif // DALI_DEMO_TABLEVIEW_H