X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=examples%2Fitem-view%2Fitem-view-example.cpp;h=677232dc72a3442b14ad5d6791a66711bd28e518;hb=2e182925204bf3ef9f2a36cbfbf998e79fbafaf5;hp=aeb1d2e6fca1ea6d8c39c396d5833e592fd7fc00;hpb=d2223117baea75e170556014107fbc6455c02cbc;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/examples/item-view/item-view-example.cpp b/examples/item-view/item-view-example.cpp index aeb1d2e..677232d 100644 --- a/examples/item-view/item-view-example.cpp +++ b/examples/item-view/item-view-example.cpp @@ -1,5 +1,5 @@ /* - * 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. @@ -20,6 +20,7 @@ #include #include +#include using namespace Dali; using namespace Dali::Toolkit; @@ -133,6 +134,8 @@ const float LABEL_TEXT_SIZE_Y = 20.0f; const Vector3 INITIAL_OFFSCREEN_POSITION( 1000.0f, 0, -1000.0f ); +const float SCROLL_TO_ITEM_ANIMATION_TIME = 5.f; + static Vector3 DepthLayoutItemSizeFunctionPortrait( float layoutWidth ) { float width = ( layoutWidth / ( DEPTH_LAYOUT_COLUMNS + 1.0f ) ) * DEPTH_LAYOUT_ITEM_SIZE_FACTOR_PORTRAIT; @@ -211,69 +214,69 @@ public: // Create an edit mode button. (left of toolbar) Toolkit::PushButton editButton = Toolkit::PushButton::New(); - editButton.SetUnselectedImage( EDIT_IMAGE ); - editButton.SetSelectedImage( EDIT_IMAGE_SELECTED ); + editButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, EDIT_IMAGE ); + editButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, EDIT_IMAGE_SELECTED ); editButton.ClickedSignal().Connect( this, &ItemViewExample::OnModeButtonClicked); - editButton.SetLeaveRequired( true ); + editButton.SetProperty( Actor::Property::LEAVE_REQUIRED, true ); mToolBar.AddControl( editButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalLeft, DemoHelper::DEFAULT_MODE_SWITCH_PADDING ); // Create a layout toggle button. (right of toolbar) mLayoutButton = Toolkit::PushButton::New(); - mLayoutButton.SetUnselectedImage( SPIRAL_LAYOUT_IMAGE ); - mLayoutButton.SetSelectedImage(SPIRAL_LAYOUT_IMAGE_SELECTED ); + mLayoutButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, SPIRAL_LAYOUT_IMAGE ); + mLayoutButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, SPIRAL_LAYOUT_IMAGE_SELECTED ); mLayoutButton.ClickedSignal().Connect( this, &ItemViewExample::OnLayoutButtonClicked); - mLayoutButton.SetLeaveRequired( true ); + mLayoutButton.SetProperty( Actor::Property::LEAVE_REQUIRED, true ); mToolBar.AddControl( mLayoutButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalRight, DemoHelper::DEFAULT_MODE_SWITCH_PADDING ); // Create a delete button (bottom right of screen) mDeleteButton = Toolkit::PushButton::New(); - mDeleteButton.SetParentOrigin(ParentOrigin::BOTTOM_RIGHT); - mDeleteButton.SetAnchorPoint(AnchorPoint::BOTTOM_RIGHT); - mDeleteButton.SetPosition( BUTTON_BORDER, BUTTON_BORDER ); - mDeleteButton.SetDrawMode( DrawMode::OVERLAY_2D ); - mDeleteButton.SetUnselectedImage( DELETE_IMAGE ); - mDeleteButton.SetSelectedImage( DELETE_IMAGE_SELECTED ); - mDeleteButton.SetBackgroundImage( TOOLBAR_IMAGE ); - mDeleteButton.SetSize( Vector2( stageSize.width * 0.15f, stageSize.width * 0.15f ) ); + mDeleteButton.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::BOTTOM_RIGHT); + mDeleteButton.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::BOTTOM_RIGHT); + mDeleteButton.SetProperty( Actor::Property::POSITION, Vector2( BUTTON_BORDER, BUTTON_BORDER )); + mDeleteButton.SetProperty( Actor::Property::DRAW_MODE, DrawMode::OVERLAY_2D ); + mDeleteButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, DELETE_IMAGE ); + mDeleteButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, DELETE_IMAGE_SELECTED ); + mDeleteButton.SetProperty( Toolkit::Control::Property::BACKGROUND, TOOLBAR_IMAGE ); + mDeleteButton.SetProperty( Actor::Property::SIZE, Vector2( stageSize.width * 0.15f, stageSize.width * 0.15f ) ); mDeleteButton.ClickedSignal().Connect( this, &ItemViewExample::OnDeleteButtonClicked); - mDeleteButton.SetLeaveRequired( true ); - mDeleteButton.SetVisible( false ); + mDeleteButton.SetProperty( Actor::Property::LEAVE_REQUIRED, true ); + mDeleteButton.SetProperty( Actor::Property::VISIBLE, false ); stage.Add( mDeleteButton ); // Create an insert button (bottom right of screen) mInsertButton = Toolkit::PushButton::New(); - mInsertButton.SetParentOrigin(ParentOrigin::BOTTOM_RIGHT); - mInsertButton.SetAnchorPoint(AnchorPoint::BOTTOM_RIGHT); - mInsertButton.SetPosition( BUTTON_BORDER, BUTTON_BORDER ); - mInsertButton.SetDrawMode( DrawMode::OVERLAY_2D ); - mInsertButton.SetUnselectedImage( INSERT_IMAGE ); - mInsertButton.SetSelectedImage( INSERT_IMAGE_SELECTED ); - mInsertButton.SetBackgroundImage( TOOLBAR_IMAGE ); - mInsertButton.SetSize( stageSize.width * 0.15f, stageSize.width * 0.15f ); + mInsertButton.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::BOTTOM_RIGHT); + mInsertButton.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::BOTTOM_RIGHT); + mInsertButton.SetProperty( Actor::Property::POSITION, Vector2( BUTTON_BORDER, BUTTON_BORDER )); + mInsertButton.SetProperty( Actor::Property::DRAW_MODE, DrawMode::OVERLAY_2D ); + mInsertButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, INSERT_IMAGE ); + mInsertButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, INSERT_IMAGE_SELECTED ); + mInsertButton.SetProperty( Toolkit::Control::Property::BACKGROUND, TOOLBAR_IMAGE ); + mInsertButton.SetProperty( Actor::Property::SIZE, Vector2( stageSize.width * 0.15f, stageSize.width * 0.15f ) ); mInsertButton.ClickedSignal().Connect( this, &ItemViewExample::OnInsertButtonClicked); - mInsertButton.SetLeaveRequired( true ); - mInsertButton.SetVisible( false ); + mInsertButton.SetProperty( Actor::Property::LEAVE_REQUIRED, true ); + mInsertButton.SetProperty( Actor::Property::VISIBLE, false ); stage.Add( mInsertButton ); // Create an replace button (bottom right of screen) mReplaceButton = Toolkit::PushButton::New(); - mReplaceButton.SetParentOrigin(ParentOrigin::BOTTOM_RIGHT); - mReplaceButton.SetAnchorPoint(AnchorPoint::BOTTOM_RIGHT); - mReplaceButton.SetPosition( BUTTON_BORDER, BUTTON_BORDER ); - mReplaceButton.SetDrawMode( DrawMode::OVERLAY_2D ); - mReplaceButton.SetUnselectedImage( REPLACE_IMAGE ); - mReplaceButton.SetSelectedImage( REPLACE_IMAGE_SELECTED ); - mReplaceButton.SetBackgroundImage( TOOLBAR_IMAGE ); - mReplaceButton.SetSize( stageSize.width * 0.15f, stageSize.width * 0.15f ); + mReplaceButton.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::BOTTOM_RIGHT); + mReplaceButton.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::BOTTOM_RIGHT); + mReplaceButton.SetProperty( Actor::Property::POSITION, Vector2( BUTTON_BORDER, BUTTON_BORDER )); + mReplaceButton.SetProperty( Actor::Property::DRAW_MODE, DrawMode::OVERLAY_2D ); + mReplaceButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, REPLACE_IMAGE ); + mReplaceButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, REPLACE_IMAGE_SELECTED ); + mReplaceButton.SetProperty( Toolkit::Control::Property::BACKGROUND, TOOLBAR_IMAGE ); + mReplaceButton.SetProperty( Actor::Property::SIZE, Vector2( stageSize.width * 0.15f, stageSize.width * 0.15f ) ); mReplaceButton.ClickedSignal().Connect( this, &ItemViewExample::OnReplaceButtonClicked); - mReplaceButton.SetLeaveRequired( true ); - mReplaceButton.SetVisible( false ); + mReplaceButton.SetProperty( Actor::Property::LEAVE_REQUIRED, true ); + mReplaceButton.SetProperty( Actor::Property::VISIBLE, false ); stage.Add( mReplaceButton ); // Create the item view actor mItemView = ItemView::New(*this); - mItemView.SetParentOrigin(ParentOrigin::CENTER); - mItemView.SetAnchorPoint(AnchorPoint::CENTER); + mItemView.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER); + mItemView.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER); // Display item view on the stage stage.Add( mItemView ); @@ -300,6 +303,10 @@ public: // Set the title and icon to the current layout SetLayoutTitle(); SetLayoutImage(); + + mLongPressDetector = LongPressGestureDetector::New(); + mLongPressDetector.Attach( mItemView ); + mLongPressDetector.DetectedSignal().Connect( this, &ItemViewExample::OnLongPress ); } Actor OnKeyboardPreFocusChange( Actor current, Actor proposed, Control::KeyboardFocus::Direction direction ) @@ -348,7 +355,7 @@ public: } case GRID_LAYOUT: { - stage.GetRootLayer().SetBehavior(Layer::LAYER_2D); + stage.GetRootLayer().SetBehavior(Layer::LAYER_UI); break; } } @@ -488,7 +495,7 @@ public: { SetTitle("Edit: Remove Many"); - mDeleteButton.SetVisible( true ); + mDeleteButton.SetProperty( Actor::Property::VISIBLE, true ); mTapDetector = TapGestureDetector::New(); @@ -500,7 +507,7 @@ public: if( box ) { mTapDetector.Attach( child ); - box.SetVisible( true ); + box.SetProperty( Actor::Property::VISIBLE, true ); } } @@ -516,19 +523,19 @@ public: if( box ) { - box.SetVisible( false ); + box.SetProperty( Actor::Property::VISIBLE, false ); Actor tick = box.FindChildByName( "Tick" ); if( tick ) { - tick.SetVisible( false ); + tick.SetProperty( Actor::Property::VISIBLE, false ); } } } mTapDetector.Reset(); - mDeleteButton.SetVisible( false ); + mDeleteButton.SetProperty( Actor::Property::VISIBLE, false ); } void SelectOnTap( Actor actor, const TapGesture& tap ) @@ -536,7 +543,36 @@ public: Actor tick = actor.FindChildByName( "Tick" ); if( tick ) { - tick.SetVisible( !tick.IsVisible() ); + tick.SetProperty( Actor::Property::VISIBLE, !tick.GetCurrentProperty< bool >( Actor::Property::VISIBLE ) ); + } + } + + void OnLongPress( Actor actor, const LongPressGesture& gesture ) + { + switch( gesture.state ) + { + case Gesture::Started: + { + const Size& size = Stage::GetCurrent().GetSize(); + + ItemRange range( 0u, 0u ); + mItemView.GetItemsRange( range ); + + const unsigned int item = ( gesture.screenPoint.y < 0.5f * size.height ) ? range.begin : range.end; + mItemView.ScrollToItem( item, SCROLL_TO_ITEM_ANIMATION_TIME ); + + break; + } + case Gesture::Finished: + { + Property::Map attributes; + mItemView.DoAction( "stopScrolling", attributes ); + break; + } + default: + { + break; + } } } @@ -549,7 +585,7 @@ public: Actor child = mItemView.GetChildAt( i ); Actor tick = child.FindChildByName( "Tick" ); - if( tick && tick.IsVisible() ) + if( tick && tick.GetCurrentProperty< bool >( Actor::Property::VISIBLE ) ) { removeList.push_back( mItemView.GetItemId(child) ); } @@ -595,7 +631,7 @@ public: { SetTitle("Edit: Insert Many"); - mInsertButton.SetVisible( true ); + mInsertButton.SetProperty( Actor::Property::VISIBLE, true ); mTapDetector = TapGestureDetector::New(); @@ -607,7 +643,7 @@ public: if( box ) { mTapDetector.Attach( child ); - box.SetVisible( true ); + box.SetProperty( Actor::Property::VISIBLE, true ); } } @@ -623,19 +659,19 @@ public: if( box ) { - box.SetVisible( false ); + box.SetProperty( Actor::Property::VISIBLE, false ); Actor tick = box.FindChildByName( "Tick" ); if( tick ) { - tick.SetVisible( false ); + tick.SetProperty( Actor::Property::VISIBLE, false ); } } } mTapDetector.Reset(); - mInsertButton.SetVisible( false ); + mInsertButton.SetProperty( Actor::Property::VISIBLE, false ); } bool OnInsertButtonClicked( Toolkit::Button button ) @@ -647,7 +683,7 @@ public: Actor child = mItemView.GetChildAt( i ); Actor tick = child.FindChildByName( "Tick" ); - if( tick && tick.IsVisible() ) + if( tick && tick.GetCurrentProperty< bool >( Actor::Property::VISIBLE ) ) { insertList.push_back( Item( mItemView.GetItemId(child), NewItem(rand()) ) ); } @@ -689,7 +725,7 @@ public: { SetTitle("Edit: Replace Many"); - mReplaceButton.SetVisible( true ); + mReplaceButton.SetProperty( Actor::Property::VISIBLE, true ); mTapDetector = TapGestureDetector::New(); @@ -701,7 +737,7 @@ public: if( box ) { mTapDetector.Attach( child ); - box.SetVisible( true ); + box.SetProperty( Actor::Property::VISIBLE, true ); } } @@ -717,19 +753,19 @@ public: if( box ) { - box.SetVisible( false ); + box.SetProperty( Actor::Property::VISIBLE, false ); Actor tick = box.FindChildByName( "Tick" ); if( tick ) { - tick.SetVisible( false ); + tick.SetProperty( Actor::Property::VISIBLE, false ); } } } mTapDetector.Reset(); - mReplaceButton.SetVisible( false ); + mReplaceButton.SetProperty( Actor::Property::VISIBLE, false ); } bool OnReplaceButtonClicked( Toolkit::Button button ) @@ -741,7 +777,7 @@ public: Actor child = mItemView.GetChildAt( i ); Actor tick = child.FindChildByName( "Tick" ); - if( tick && tick.IsVisible() ) + if( tick && tick.GetCurrentProperty< bool >( Actor::Property::VISIBLE ) ) { replaceList.push_back( Item( mItemView.GetItemId(child), NewItem(rand()) ) ); } @@ -786,22 +822,22 @@ public: { case SPIRAL_LAYOUT: { - mLayoutButton.SetUnselectedImage( SPIRAL_LAYOUT_IMAGE ); - mLayoutButton.SetSelectedImage( SPIRAL_LAYOUT_IMAGE_SELECTED ); + mLayoutButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, SPIRAL_LAYOUT_IMAGE ); + mLayoutButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, SPIRAL_LAYOUT_IMAGE_SELECTED ); break; } case GRID_LAYOUT: { - mLayoutButton.SetUnselectedImage( GRID_LAYOUT_IMAGE ); - mLayoutButton.SetSelectedImage( GRID_LAYOUT_IMAGE_SELECTED ); + mLayoutButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, GRID_LAYOUT_IMAGE ); + mLayoutButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, GRID_LAYOUT_IMAGE_SELECTED ); break; } case DEPTH_LAYOUT: { - mLayoutButton.SetUnselectedImage( DEPTH_LAYOUT_IMAGE ); - mLayoutButton.SetSelectedImage( DEPTH_LAYOUT_IMAGE_SELECTED ); + mLayoutButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, DEPTH_LAYOUT_IMAGE ); + mLayoutButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, DEPTH_LAYOUT_IMAGE_SELECTED ); break; } @@ -830,23 +866,28 @@ public: // From ItemFactory virtual Actor NewItem(unsigned int itemId) { // Create an image view for this item - ImageView actor = ImageView::New( IMAGE_PATHS[ itemId % NUM_IMAGES ] ); - actor.SetZ( 0.0f ); - actor.SetPosition( INITIAL_OFFSCREEN_POSITION ); + Property::Map propertyMap; + propertyMap.Insert(Toolkit::Visual::Property::TYPE, Visual::IMAGE); + propertyMap.Insert(ImageVisual::Property::URL, IMAGE_PATHS[ itemId % NUM_IMAGES ] ); + propertyMap.Insert(DevelVisual::Property::VISUAL_FITTING_MODE, DevelVisual::FILL); + ImageView actor = ImageView::New(); + actor.SetProperty( Toolkit::ImageView::Property::IMAGE, propertyMap ); + actor.SetProperty( Actor::Property::POSITION_Z, 0.0f ); + actor.SetProperty( Actor::Property::POSITION, INITIAL_OFFSCREEN_POSITION ); // Add a border image child actor ImageView borderActor = ImageView::New(); - borderActor.SetParentOrigin( ParentOrigin::CENTER ); - borderActor.SetAnchorPoint( AnchorPoint::CENTER ); + borderActor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); + borderActor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER ); borderActor.SetResizePolicy( ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT, Dimension::ALL_DIMENSIONS ); - borderActor.SetSizeModeFactor( Vector3( 2.0f * ITEM_BORDER_SIZE, 2.0f * ITEM_BORDER_SIZE, 0.0f ) ); - borderActor.SetColorMode( USE_PARENT_COLOR ); + borderActor.SetProperty( Actor::Property::SIZE_MODE_FACTOR, Vector3( 2.0f * ITEM_BORDER_SIZE, 2.0f * ITEM_BORDER_SIZE, 0.0f ) ); + borderActor.SetProperty( Actor::Property::COLOR_MODE, USE_PARENT_COLOR ); Property::Map borderProperty; - borderProperty.Insert( "rendererType", "border" ); - borderProperty.Insert( "borderColor", Color::WHITE ); - borderProperty.Insert( "borderSize", ITEM_BORDER_SIZE ); - borderProperty.Insert( "antiAliasing", true ); + borderProperty.Insert( Toolkit::Visual::Property::TYPE, Visual::BORDER ); + borderProperty.Insert( BorderVisual::Property::COLOR, Color::WHITE ); + borderProperty.Insert( BorderVisual::Property::SIZE, ITEM_BORDER_SIZE ); + borderProperty.Insert( BorderVisual::Property::ANTI_ALIASING, true ); borderActor.SetProperty( ImageView::Property::IMAGE, borderProperty ); actor.Add(borderActor); @@ -858,35 +899,35 @@ public: // From ItemFactory // Add a checkbox child actor; invisible until edit-mode is enabled ImageView checkbox = ImageView::New(); - checkbox.SetName( "CheckBox" ); - checkbox.SetColorMode( USE_PARENT_COLOR ); - checkbox.SetParentOrigin( ParentOrigin::TOP_RIGHT ); - checkbox.SetAnchorPoint( AnchorPoint::TOP_RIGHT ); - checkbox.SetSize( spiralItemSize.width * 0.2f, spiralItemSize.width * 0.2f ); - checkbox.SetPosition( -SELECTION_BORDER_WIDTH, SELECTION_BORDER_WIDTH ); - checkbox.SetZ( 0.1f ); + checkbox.SetProperty( Dali::Actor::Property::NAME, "CheckBox" ); + checkbox.SetProperty( Actor::Property::COLOR_MODE, USE_PARENT_COLOR ); + checkbox.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_RIGHT ); + checkbox.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_RIGHT ); + checkbox.SetProperty( Actor::Property::SIZE, Vector2( spiralItemSize.width * 0.2f, spiralItemSize.width * 0.2f ) ); + checkbox.SetProperty( Actor::Property::POSITION, Vector2( -SELECTION_BORDER_WIDTH, SELECTION_BORDER_WIDTH )); + checkbox.SetProperty( Actor::Property::POSITION_Z, 0.1f ); Property::Map solidColorProperty; - solidColorProperty.Insert( "rendererType", "color" ); - solidColorProperty.Insert( "blendColor", Vector4(0.f, 0.f, 0.f, 0.6f) ); + solidColorProperty.Insert( Toolkit::Visual::Property::TYPE, Visual::COLOR ); + solidColorProperty.Insert( ColorVisual::Property::MIX_COLOR, Vector4(0.f, 0.f, 0.f, 0.6f) ); checkbox.SetProperty( ImageView::Property::IMAGE, solidColorProperty ); if( MODE_REMOVE_MANY != mMode && MODE_INSERT_MANY != mMode && MODE_REPLACE_MANY != mMode ) { - checkbox.SetVisible( false ); + checkbox.SetProperty( Actor::Property::VISIBLE, false ); } borderActor.Add( checkbox ); ImageView tick = ImageView::New( SELECTED_IMAGE ); - tick.SetName( "Tick" ); - tick.SetColorMode( USE_PARENT_COLOR ); - tick.SetParentOrigin( ParentOrigin::TOP_RIGHT ); - tick.SetAnchorPoint( AnchorPoint::TOP_RIGHT ); - tick.SetSize( spiralItemSize.width * 0.2f, spiralItemSize.width * 0.2f ); - tick.SetZ( 0.2f ); - tick.SetVisible( false ); + tick.SetProperty( Dali::Actor::Property::NAME, "Tick" ); + tick.SetProperty( Actor::Property::COLOR_MODE, USE_PARENT_COLOR ); + tick.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_RIGHT ); + tick.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_RIGHT ); + tick.SetProperty( Actor::Property::SIZE, Vector2( spiralItemSize.width * 0.2f, spiralItemSize.width * 0.2f ) ); + tick.SetProperty( Actor::Property::POSITION_Z, 0.2f ); + tick.SetProperty( Actor::Property::VISIBLE, false ); checkbox.Add( tick ); // Connect new items for various editing modes @@ -954,20 +995,14 @@ private: Toolkit::PushButton mDeleteButton; Toolkit::PushButton mInsertButton; Toolkit::PushButton mReplaceButton; -}; - -void RunTest(Application& app) -{ - ItemViewExample test(app); - app.MainLoop(); -} + LongPressGestureDetector mLongPressDetector; +}; int DALI_EXPORT_API main(int argc, char **argv) { Application app = Application::New(&argc, &argv, DEMO_THEME_PATH); - - RunTest(app); - + ItemViewExample test(app); + app.MainLoop(); return 0; }