X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=examples%2Ftooltip%2Ftooltip-example.cpp;h=ab1223abd82298c8cc8b6876e976c3460a6ac12b;hb=38b87ec05860401c3dcbf20d047aa0b55ea5841a;hp=3af4e11cd50a70c76d1150429e02a65325b354b4;hpb=e47e49fb750cc0e29a5e8a60b29e7bcaa4127173;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/examples/tooltip/tooltip-example.cpp b/examples/tooltip/tooltip-example.cpp index 3af4e11..ab1223a 100644 --- a/examples/tooltip/tooltip-example.cpp +++ b/examples/tooltip/tooltip-example.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 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,17 +18,15 @@ #include #include #include -#include -#include using namespace Dali; using namespace Dali::Toolkit; namespace { -const Vector4 STAGE_COLOR( 211.0f / 255.0f, 211.0f / 255.0f, 211.0f / 255.0f, 1.0f ); ///< The color of the stage -const char * const THEME_PATH( DEMO_STYLE_DIR "tooltip-example-theme.json" ); ///< The theme used for this example -const float POSITION_INCREMENTER( 0.2f ); ///< The position difference between the controls along the Y-Axis. +const Vector4 WINDOW_COLOR(211.0f / 255.0f, 211.0f / 255.0f, 211.0f / 255.0f, 1.0f); ///< The color of the window +const char* const THEME_PATH(DEMO_STYLE_DIR "tooltip-example-theme.json"); ///< The theme used for this example +const float POSITION_INCREMENTER(0.2f); ///< The position difference between the controls along the Y-Axis. } // unnamed namespace /** @@ -40,78 +38,72 @@ const float POSITION_INCREMENTER( 0.2f ); ///< The position difference between t class TooltipController : public ConnectionTracker { public: - - TooltipController( Application& application ) - : mApplication( application ), - previousPosition( 0.0f ) + TooltipController(Application& application) + : mApplication(application), + previousPosition(0.0f) { // Connect to the Application's Init signal - mApplication.InitSignal().Connect( this, &TooltipController::Create ); + mApplication.InitSignal().Connect(this, &TooltipController::Create); } private: - // The Init signal is received once (only) during the Application lifetime - void Create( Application& application ) + void Create(Application& application) { - // Hide the indicator bar - application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); - - // Set the stage background color and connect to the stage's key signal to allow Back and Escape to exit. - Stage stage = Stage::GetCurrent(); - stage.SetBackgroundColor( STAGE_COLOR ); - stage.KeyEventSignal().Connect( this, &TooltipController::OnKeyEvent ); - const Vector2 stageSize = stage.GetSize(); + // Set the window background color and connect to the window's key signal to allow Back and Escape to exit. + Window window = application.GetWindow(); + window.SetBackgroundColor(WINDOW_COLOR); + window.KeyEventSignal().Connect(this, &TooltipController::OnKeyEvent); + const Vector2 windowSize = window.GetSize(); // Add a text label at the top for information purposes - Control label = TextLabel::New( "Hover over buttons to see tooltip" ); - label.SetParentOrigin( ParentOrigin::TOP_CENTER ); - label.SetAnchorPoint( AnchorPoint::TOP_CENTER ); - label.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "Center" ); - stage.Add( label ); + Control label = TextLabel::New("Hover over buttons to see tooltip"); + label.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_CENTER); + label.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_CENTER); + label.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "Center"); + window.Add(label); // Simple tooltip from stylesheet Control simple = PushButton::New(); - simple.SetStyleName( "TooltipTextOnly" ); - SetLabel( simple, "Simple" ); - Layout( simple, stageSize ); - stage.Add( simple ); + simple.SetStyleName("TooltipTextOnly"); + SetLabel(simple, "Simple"); + Layout(simple, windowSize); + window.Add(simple); // Tooltip with icon and text, from stylesheet Control iconWithText = PushButton::New(); - iconWithText.SetStyleName( "TooltipArray" ); - SetLabel( iconWithText, "Icon with Text" ); - Layout( iconWithText, stageSize ); - stage.Add( iconWithText ); + iconWithText.SetStyleName("TooltipArray"); + SetLabel(iconWithText, "Icon with Text"); + Layout(iconWithText, windowSize); + window.Add(iconWithText); // Tooltip with custom style, from stylesheet Control customFromStylesheet = PushButton::New(); - customFromStylesheet.SetStyleName( "TooltipCustom" ); - SetLabel( customFromStylesheet, "Custom From Stylesheet" ); - Layout( customFromStylesheet, stageSize ); - stage.Add( customFromStylesheet ); + customFromStylesheet.SetStyleName("TooltipCustom"); + SetLabel(customFromStylesheet, "Custom From Stylesheet"); + Layout(customFromStylesheet, windowSize); + window.Add(customFromStylesheet); // Tooltip with custom style, from code Control customFromCode = PushButton::New(); - SetLabel( customFromCode, "Custom From Code" ); - Layout( customFromCode, stageSize ); - customFromCode.SetProperty( DevelControl::Property::TOOLTIP, - Property::Map().Add( Tooltip::Property::CONTENT, - Property::Array().Add( Property::Map().Add( Visual::Property::TYPE, Visual::IMAGE ) - .Add( ImageVisual::Property::URL, DEMO_IMAGE_DIR "Logo-for-demo.png" ) ) - .Add( Property::Map().Add( Visual::Property::TYPE, DevelVisual::TEXT ) - .Add( TextVisual::Property::TEXT_COLOR, Color::WHITE ) - .Add( TextVisual::Property::TEXT, "Custom coded style\nat hover point" ) - .Add( TextVisual::Property::MULTI_LINE, true ) - .Add( TextVisual::Property::HORIZONTAL_ALIGNMENT, "CENTER" ) - .Add( TextVisual::Property::POINT_SIZE, 16 ) ) ) - .Add( Tooltip::Property::LAYOUT, Vector2( 2, 1 ) ) - .Add( Tooltip::Property::POSITION, Tooltip::Position::HOVER_POINT ) - .Add( Tooltip::Property::BACKGROUND, - Property::Map().Add( Tooltip::Background::Property::VISUAL, DEMO_IMAGE_DIR "tooltip.9.png" ) - .Add( Tooltip::Background::Property::BORDER, Rect< int >( 1, 5, 5, 1 ) ) ) - ); - stage.Add( customFromCode ); + SetLabel(customFromCode, "Custom From Code"); + Layout(customFromCode, windowSize); + customFromCode.SetProperty(DevelControl::Property::TOOLTIP, + {{Tooltip::Property::CONTENT, + Property::Array{{{{Toolkit::Visual::Property::TYPE, Visual::IMAGE}, + {ImageVisual::Property::URL, DEMO_IMAGE_DIR "Logo-for-demo.png"}}}, + {{{Toolkit::Visual::Property::TYPE, Visual::TEXT}, + {TextVisual::Property::TEXT_COLOR, Color::WHITE}, + {TextVisual::Property::TEXT, "Custom coded style\nat hover point"}, + {TextVisual::Property::MULTI_LINE, true}, + {TextVisual::Property::HORIZONTAL_ALIGNMENT, "CENTER"}, + {TextVisual::Property::POINT_SIZE, 16}}}}}, + {Tooltip::Property::LAYOUT, Vector2(2, 1)}, + {Tooltip::Property::POSITION, Tooltip::Position::HOVER_POINT}, + {Tooltip::Property::BACKGROUND, + {{Tooltip::Background::Property::VISUAL, DEMO_IMAGE_DIR "tooltip.9.png"}, + {Tooltip::Background::Property::BORDER, Rect(1, 5, 5, 1)}}}}); + window.Add(customFromCode); } /** @@ -120,11 +112,11 @@ private: * Will use this to quit the application if Back or the Escape key is received * @param[in] event The key event information */ - void OnKeyEvent( const KeyEvent& event ) + void OnKeyEvent(const KeyEvent& event) { - if( event.state == KeyEvent::Down ) + if(event.GetState() == KeyEvent::DOWN) { - if ( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) ) + if(IsKey(event, Dali::DALI_KEY_ESCAPE) || IsKey(event, Dali::DALI_KEY_BACK)) { mApplication.Quit(); } @@ -135,44 +127,43 @@ private: * @brief Sets the label on the control. * @param[in] label The label to set. */ - void SetLabel( Control control, std::string label ) + void SetLabel(Control control, std::string label) { - if( control ) + if(control) { - control.SetProperty( Button::Property::LABEL, - Property::Map().Add( Visual::Property::TYPE, DevelVisual::TEXT ) - .Add( TextVisual::Property::TEXT, label ) ); + control.SetProperty(Button::Property::LABEL, + Property::Map().Add(Toolkit::Visual::Property::TYPE, Visual::TEXT).Add(TextVisual::Property::TEXT, label)); } } /** * @brief Lays out the control in the appropriate location. * @param[in] control The control to layout. - * @param[in] stageSize The size of the stage, passing it in so we don't have to retrieve it every time. + * @param[in] windowSize The size of the window, passing it in so we don't have to retrieve it every time. */ - void Layout( Control control, const Vector2& stageSize ) + void Layout(Control control, const Vector2& windowSize) { - if( control ) + if(control) { previousPosition += POSITION_INCREMENTER; - control.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS ); - control.SetSizeModeFactor( Vector3( 0.75, 0.1, 1.0 ) ); - control.SetAnchorPoint( AnchorPoint::CENTER ); - control.SetParentOrigin( ParentOrigin::TOP_CENTER ); - control.SetY( stageSize.height * previousPosition ); + control.SetResizePolicy(ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS); + control.SetProperty(Actor::Property::SIZE_MODE_FACTOR, Vector3(0.75, 0.1, 1.0)); + control.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER); + control.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_CENTER); + control.SetProperty(Actor::Property::POSITION_Y, windowSize.height * previousPosition); } } private: - Application& mApplication; - float previousPosition; + Application& mApplication; + float previousPosition; }; -int DALI_EXPORT_API main( int argc, char **argv ) +int DALI_EXPORT_API main(int argc, char** argv) { - Application application = Application::New( &argc, &argv, THEME_PATH ); + Application application = Application::New(&argc, &argv, THEME_PATH); - TooltipController test( application ); + TooltipController test(application); application.MainLoop();