Commit 1d5b074ae742e8fb800a5607423f03d0750d3b25

Authored by Adeel Kazmi
Committed by Gerrit Code Review
2 parents a9ead80a 9fbfb29c

Merge "Size negotiation example" into tizen

com.samsung.dali-demo.xml
@@ -71,7 +71,7 @@ @@ -71,7 +71,7 @@
71 <label>Image Scaling Modes</label> 71 <label>Image Scaling Modes</label>
72 </ui-application> 72 </ui-application>
73 <ui-application appid="buttons.example" exec="/usr/apps/com.samsung.dali-demo/bin/buttons.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true"> 73 <ui-application appid="buttons.example" exec="/usr/apps/com.samsung.dali-demo/bin/buttons.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
74 - <label>Radio Buttons</label> 74 + <label>Buttons</label>
75 </ui-application> 75 </ui-application>
76 <ui-application appid="text-view.example" exec="/usr/apps/com.samsung.dali-demo/bin/text-view.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true"> 76 <ui-application appid="text-view.example" exec="/usr/apps/com.samsung.dali-demo/bin/text-view.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
77 <label>Text View</label> 77 <label>Text View</label>
@@ -88,4 +88,7 @@ @@ -88,4 +88,7 @@
88 <ui-application appid="atlas.example" exec="/usr/apps/com.samsung.dali-demo/bin/atlas.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true"> 88 <ui-application appid="atlas.example" exec="/usr/apps/com.samsung.dali-demo/bin/atlas.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
89 <label>Atlas</label> 89 <label>Atlas</label>
90 </ui-application> 90 </ui-application>
  91 + <ui-application appid="size-negotiation.example" exec="/usr/apps/com.samsung.dali-demo/bin/size-negotiation.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
  92 + <label>Size Negotiation</label>
  93 + </ui-application>
91 </manifest> 94 </manifest>
demo/dali-demo.cpp
@@ -39,11 +39,15 @@ int main(int argc, char **argv) @@ -39,11 +39,15 @@ int main(int argc, char **argv)
39 demo.AddExample(Example("refraction-effect.example", "Refraction")); 39 demo.AddExample(Example("refraction-effect.example", "Refraction"));
40 demo.AddExample(Example("scroll-view.example", "Scroll View")); 40 demo.AddExample(Example("scroll-view.example", "Scroll View"));
41 demo.AddExample(Example("shadow-bone-lighting.example", "Lights and shadows")); 41 demo.AddExample(Example("shadow-bone-lighting.example", "Lights and shadows"));
42 - demo.AddExample(Example("builder.example", "Script Based UI")); 42 +// demo.AddExample(Example("builder.example", "Script Based UI"));
43 demo.AddExample(Example("image-scaling-irregular-grid.example", "Image Scaling Modes")); 43 demo.AddExample(Example("image-scaling-irregular-grid.example", "Image Scaling Modes"));
44 demo.AddExample(Example("text-view.example", "Text View")); 44 demo.AddExample(Example("text-view.example", "Text View"));
45 demo.AddExample(Example("animated-shapes.example", "Animated Shapes")); 45 demo.AddExample(Example("animated-shapes.example", "Animated Shapes"));
46 demo.AddExample(Example("path-animation.example", "Path Animation")); 46 demo.AddExample(Example("path-animation.example", "Path Animation"));
  47 + demo.AddExample(Example("size-negotiation.example", "Size Negotiation"));
  48 +
  49 + demo.SortAlphabetically( true );
  50 +
47 app.MainLoop(); 51 app.MainLoop();
48 52
49 return 0; 53 return 0;
demo/dali-table-view.cpp
@@ -55,10 +55,10 @@ const int MAX_PAGES = 256; ///&lt; Maximum pag @@ -55,10 +55,10 @@ const int MAX_PAGES = 256; ///&lt; Maximum pag
55 const int EXAMPLES_PER_ROW = 3; 55 const int EXAMPLES_PER_ROW = 3;
56 const int ROWS_PER_PAGE = 3; 56 const int ROWS_PER_PAGE = 3;
57 const int EXAMPLES_PER_PAGE = EXAMPLES_PER_ROW * ROWS_PER_PAGE; 57 const int EXAMPLES_PER_PAGE = EXAMPLES_PER_ROW * ROWS_PER_PAGE;
58 -const float LOGO_MARGIN_RATIO = 0.5f / 0.9f; 58 +const float LOGO_MARGIN_RATIO = 0.1f / 0.3f;
59 const float BOTTOM_PADDING_RATIO = 0.4f / 0.9f; 59 const float BOTTOM_PADDING_RATIO = 0.4f / 0.9f;
60 const Vector3 SCROLLVIEW_RELATIVE_SIZE(0.9f, 1.0f, 0.8f ); ///< ScrollView's relative size to its parent 60 const Vector3 SCROLLVIEW_RELATIVE_SIZE(0.9f, 1.0f, 0.8f ); ///< ScrollView's relative size to its parent
61 -const Vector3 TABLE_RELATIVE_SIZE(0.9f, 0.9f, 0.8f ); ///< TableView's relative size to the entire stage. The Y value means sum of the logo and table relative heights. 61 +const Vector3 TABLE_RELATIVE_SIZE(0.95f, 0.9f, 0.8f ); ///< TableView's relative size to the entire stage. The Y value means sum of the logo and table relative heights.
62 const float STENCIL_RELATIVE_SIZE = 1.0f; 62 const float STENCIL_RELATIVE_SIZE = 1.0f;
63 63
64 const float EFFECT_SNAP_DURATION = 0.66f; ///< Scroll Snap Duration for Effects 64 const float EFFECT_SNAP_DURATION = 0.66f; ///< Scroll Snap Duration for Effects
@@ -75,7 +75,6 @@ const float SCALE_SPEED_SIN = 0.1f; @@ -75,7 +75,6 @@ const float SCALE_SPEED_SIN = 0.1f;
75 const unsigned int BACKGROUND_ANIMATION_DURATION = 15000; // 15 secs 75 const unsigned int BACKGROUND_ANIMATION_DURATION = 15000; // 15 secs
76 76
77 const float BACKGROUND_Z = -1.0f; 77 const float BACKGROUND_Z = -1.0f;
78 -const float BACKGROUND_SIZE_SCALE = 1.0f;  
79 const Vector4 BACKGROUND_COLOR( 1.0f, 1.0f, 1.0f, 1.0f ); 78 const Vector4 BACKGROUND_COLOR( 1.0f, 1.0f, 1.0f, 1.0f );
80 79
81 const float BUBBLE_MIN_Z = -1.0; 80 const float BUBBLE_MIN_Z = -1.0;
@@ -124,10 +123,11 @@ ImageActor CreateBackground( std::string imagePath ) @@ -124,10 +123,11 @@ ImageActor CreateBackground( std::string imagePath )
124 { 123 {
125 Image image = ResourceImage::New( imagePath ); 124 Image image = ResourceImage::New( imagePath );
126 ImageActor background = ImageActor::New( image ); 125 ImageActor background = ImageActor::New( image );
127 - 126 + background.SetName( "BACKGROUND" );
128 background.SetAnchorPoint( AnchorPoint::CENTER ); 127 background.SetAnchorPoint( AnchorPoint::CENTER );
129 background.SetParentOrigin( ParentOrigin::CENTER ); 128 background.SetParentOrigin( ParentOrigin::CENTER );
130 background.SetZ( -1.0f ); 129 background.SetZ( -1.0f );
  130 + background.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
131 131
132 return background; 132 return background;
133 } 133 }
@@ -139,7 +139,7 @@ const float IMAGE_BORDER_TOP = IMAGE_BORDER_LEFT; @@ -139,7 +139,7 @@ const float IMAGE_BORDER_TOP = IMAGE_BORDER_LEFT;
139 const float IMAGE_BORDER_BOTTOM = IMAGE_BORDER_LEFT; 139 const float IMAGE_BORDER_BOTTOM = IMAGE_BORDER_LEFT;
140 140
141 /** 141 /**
142 - * Constraint to return a position for a bubble based on the scroll value and vertical wrapping. 142 + * Constraint to return a position for a bubble based on the scroll value and vertical wrapping
143 */ 143 */
144 struct AnimateBubbleConstraint 144 struct AnimateBubbleConstraint
145 { 145 {
@@ -154,15 +154,15 @@ public: @@ -154,15 +154,15 @@ public:
154 Vector3 operator()( const Vector3& current, const PropertyInput& scrollProperty, const PropertyInput& parentSize ) 154 Vector3 operator()( const Vector3& current, const PropertyInput& scrollProperty, const PropertyInput& parentSize )
155 { 155 {
156 Vector3 pos( current ); 156 Vector3 pos( current );
  157 + const float parentHeight = parentSize.GetVector3().height;
157 158
158 - // Wrap bubbles verically.  
159 - if( pos.y + mShapeSize * 0.5f < -parentSize.GetVector3().y * 0.5f ) 159 + // Wrap bubbles vertically
  160 + if( pos.y + mShapeSize * 0.5f < -parentHeight * 0.5f )
160 { 161 {
161 - pos.y += parentSize.GetVector3().y + mShapeSize; 162 + pos.y = parentHeight * 0.5f + mShapeSize * 0.5f;
162 } 163 }
163 164
164 - // Bubbles X position moves parallax to horizontal  
165 - // panning by a scale factor unique to each bubble. 165 + // Bubbles X position moves parallax to horizontal panning by a scale factor unique to each bubble
166 pos.x = mInitialX + ( scrollProperty.GetVector3().x * mScale ); 166 pos.x = mInitialX + ( scrollProperty.GetVector3().x * mScale );
167 return pos; 167 return pos;
168 } 168 }
@@ -186,7 +186,6 @@ DaliTableView::DaliTableView( Application&amp; application ) @@ -186,7 +186,6 @@ DaliTableView::DaliTableView( Application&amp; application )
186 mRootActor(), 186 mRootActor(),
187 mRotateAnimation(), 187 mRotateAnimation(),
188 mBackground(), 188 mBackground(),
189 - mLogo(),  
190 mPressedAnimation(), 189 mPressedAnimation(),
191 mScrollViewLayer(), 190 mScrollViewLayer(),
192 mScrollView(), 191 mScrollView(),
@@ -242,15 +241,14 @@ void DaliTableView::Initialize( Application&amp; application ) @@ -242,15 +241,14 @@ void DaliTableView::Initialize( Application&amp; application )
242 const Vector2 stageSize = Stage::GetCurrent().GetSize(); 241 const Vector2 stageSize = Stage::GetCurrent().GetSize();
243 242
244 // Background 243 // Background
245 - mBackground = CreateBackground( mBackgroundImagePath );  
246 - // set same size as parent actor  
247 - mBackground.SetSize( stageSize );  
248 - Stage::GetCurrent().Add( mBackground ); 244 + Actor background = CreateBackground( mBackgroundImagePath );
  245 + Stage::GetCurrent().Add( background );
249 246
250 // Render entire content as overlays, as is all on same 2D plane. 247 // Render entire content as overlays, as is all on same 2D plane.
251 mRootActor = TableView::New( 4, 1 ); 248 mRootActor = TableView::New( 4, 1 );
252 mRootActor.SetAnchorPoint( AnchorPoint::CENTER ); 249 mRootActor.SetAnchorPoint( AnchorPoint::CENTER );
253 mRootActor.SetParentOrigin( ParentOrigin::CENTER ); 250 mRootActor.SetParentOrigin( ParentOrigin::CENTER );
  251 + mRootActor.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
254 Stage::GetCurrent().Add( mRootActor ); 252 Stage::GetCurrent().Add( mRootActor );
255 253
256 // Toolbar at top 254 // Toolbar at top
@@ -262,37 +260,42 @@ void DaliTableView::Initialize( Application&amp; application ) @@ -262,37 +260,42 @@ void DaliTableView::Initialize( Application&amp; application )
262 DemoHelper::GetDefaultTextStyle()); 260 DemoHelper::GetDefaultTextStyle());
263 261
264 mRootActor.AddChild( toolBarLayer, TableView::CellPosition( 0, 0 ) ); 262 mRootActor.AddChild( toolBarLayer, TableView::CellPosition( 0, 0 ) );
265 - const float toolbarHeight = DemoHelper::DEFAULT_VIEW_STYLE.mToolBarHeight;  
266 - mRootActor.SetFixedHeight( 0, toolbarHeight ); 263 + mRootActor.SetFitHeight( 0 );
267 264
268 // Add logo 265 // Add logo
269 - mLogo = CreateLogo( LOGO_PATH ); 266 + Dali::ImageActor logo = CreateLogo( LOGO_PATH );
  267 + logo.SetName( "LOGO_IMAGE" );
  268 + logo.SetResizePolicy( USE_NATURAL_SIZE, ALL_DIMENSIONS );
270 const float paddingHeight = ( ( 1.f-TABLE_RELATIVE_SIZE.y ) * stageSize.y ); 269 const float paddingHeight = ( ( 1.f-TABLE_RELATIVE_SIZE.y ) * stageSize.y );
271 const float logoMargin = paddingHeight * LOGO_MARGIN_RATIO; 270 const float logoMargin = paddingHeight * LOGO_MARGIN_RATIO;
272 - const float logoHeight = mLogo.GetImage().GetHeight() + logoMargin;  
273 - mRootActor.SetFixedHeight( 1, logoHeight );  
274 271
275 // Show version in a popup when log is tapped 272 // Show version in a popup when log is tapped
276 mLogoTapDetector = TapGestureDetector::New(); 273 mLogoTapDetector = TapGestureDetector::New();
277 - mLogoTapDetector.Attach( mLogo ); 274 + mLogoTapDetector.Attach( logo );
278 mLogoTapDetector.DetectedSignal().Connect( this, &DaliTableView::OnLogoTapped ); 275 mLogoTapDetector.DetectedSignal().Connect( this, &DaliTableView::OnLogoTapped );
279 276
280 const float bottomMargin = paddingHeight * BOTTOM_PADDING_RATIO; 277 const float bottomMargin = paddingHeight * BOTTOM_PADDING_RATIO;
281 - mButtonsPageRelativeSize = Vector3( TABLE_RELATIVE_SIZE.x, 1.f - ( toolbarHeight + logoHeight + bottomMargin) / stageSize.height, TABLE_RELATIVE_SIZE.z );  
282 - mRootActor.SetFixedHeight( 2, mButtonsPageRelativeSize.y * stageSize.height );  
283 278
284 Alignment alignment = Alignment::New(); 279 Alignment alignment = Alignment::New();
285 - alignment.Add(mLogo); 280 + alignment.SetName( "LOGO_ALIGNMENT" );
  281 + alignment.Add( logo );
  282 + alignment.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  283 + alignment.SetResizePolicy( FIT_TO_CHILDREN, HEIGHT );
  284 + Actor alignmentActor = alignment;
  285 + alignmentActor.SetPadding( Padding( 0.0f, 0.0f, logoMargin, logoMargin ));
286 mRootActor.AddChild( alignment, TableView::CellPosition( 1, 0 ) ); 286 mRootActor.AddChild( alignment, TableView::CellPosition( 1, 0 ) );
  287 + mRootActor.SetFitHeight( 1 );
287 288
288 // scrollview occupying the majority of the screen 289 // scrollview occupying the majority of the screen
289 mScrollView = ScrollView::New(); 290 mScrollView = ScrollView::New();
  291 + mScrollView.SetRelayoutEnabled( true );
290 292
291 mScrollView.SetAnchorPoint( AnchorPoint::CENTER ); 293 mScrollView.SetAnchorPoint( AnchorPoint::CENTER );
292 mScrollView.SetParentOrigin( ParentOrigin::CENTER ); 294 mScrollView.SetParentOrigin( ParentOrigin::CENTER );
293 - // Note: Currently, changing mScrollView to use SizeMode RELATIVE_TO_PARENT  
294 - // will cause scroll ends to appear in the wrong position.  
295 - mScrollView.ApplyConstraint( Dali::Constraint::New<Dali::Vector3>( Dali::Actor::Property::SIZE, Dali::ParentSource( Dali::Actor::Property::SIZE ), Dali::RelativeToConstraint( SCROLLVIEW_RELATIVE_SIZE ) ) ); 295 + mScrollView.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  296 + const float buttonsPageMargin = ( 1.0f - TABLE_RELATIVE_SIZE.x ) * 0.5f * stageSize.width;
  297 + mScrollView.SetPadding( Padding( buttonsPageMargin, buttonsPageMargin, 0.0f, 0.0f ) );
  298 +
296 mScrollView.SetAxisAutoLock( true ); 299 mScrollView.SetAxisAutoLock( true );
297 mScrollView.ScrollCompletedSignal().Connect( this, &DaliTableView::OnScrollComplete ); 300 mScrollView.ScrollCompletedSignal().Connect( this, &DaliTableView::OnScrollComplete );
298 mScrollView.ScrollStartedSignal().Connect( this, &DaliTableView::OnScrollStart ); 301 mScrollView.ScrollStartedSignal().Connect( this, &DaliTableView::OnScrollStart );
@@ -302,12 +305,37 @@ void DaliTableView::Initialize( Application&amp; application ) @@ -302,12 +305,37 @@ void DaliTableView::Initialize( Application&amp; application )
302 mScrollViewLayer.SetAnchorPoint( AnchorPoint::CENTER ); 305 mScrollViewLayer.SetAnchorPoint( AnchorPoint::CENTER );
303 mScrollViewLayer.SetParentOrigin( ParentOrigin::CENTER ); 306 mScrollViewLayer.SetParentOrigin( ParentOrigin::CENTER );
304 mScrollViewLayer.SetDrawMode( DrawMode::OVERLAY ); 307 mScrollViewLayer.SetDrawMode( DrawMode::OVERLAY );
  308 + mScrollViewLayer.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  309 +
  310 + // Create solid background colour.
  311 + ImageActor backgroundColourActor = Dali::Toolkit::CreateSolidColorActor( BACKGROUND_COLOR );
  312 + backgroundColourActor.SetAnchorPoint( AnchorPoint::CENTER );
  313 + backgroundColourActor.SetParentOrigin( ParentOrigin::CENTER );
  314 + backgroundColourActor.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  315 + backgroundColourActor.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  316 + backgroundColourActor.SetSizeModeFactor( Vector3( 1.0f, 1.5f, 1.0f ) );
  317 + backgroundColourActor.SetZ( BACKGROUND_Z );
  318 + mScrollViewLayer.Add( backgroundColourActor );
305 319
306 // Populate background and bubbles - needs to be scrollViewLayer so scroll ends show 320 // Populate background and bubbles - needs to be scrollViewLayer so scroll ends show
307 - SetupBackground( mScrollView, mScrollViewLayer, stageSize ); 321 + Actor bubbleContainer = Actor::New();
  322 + bubbleContainer.SetRelayoutEnabled( true );
  323 + bubbleContainer.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  324 + bubbleContainer.SetAnchorPoint( AnchorPoint::CENTER );
  325 + bubbleContainer.SetParentOrigin( ParentOrigin::CENTER );
  326 + mScrollViewLayer.Add( bubbleContainer );
  327 +
  328 + SetupBackground( bubbleContainer );
  329 +
  330 + Alignment buttonsAlignment = Alignment::New();
  331 + buttonsAlignment.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  332 + buttonsAlignment.Add( mScrollViewLayer );
308 333
309 mScrollViewLayer.Add( mScrollView ); 334 mScrollViewLayer.Add( mScrollView );
310 - mRootActor.AddChild( mScrollViewLayer, TableView::CellPosition( 2, 0 ) ); 335 +
  336 + mRootActor.AddChild( buttonsAlignment, TableView::CellPosition( 2, 0 ) );
  337 +
  338 + mRootActor.SetFixedHeight( 3, bottomMargin );
311 339
312 // Add scroll view effect and setup constraints on pages 340 // Add scroll view effect and setup constraints on pages
313 ApplyScrollViewEffect(); 341 ApplyScrollViewEffect();
@@ -333,7 +361,7 @@ void DaliTableView::Initialize( Application&amp; application ) @@ -333,7 +361,7 @@ void DaliTableView::Initialize( Application&amp; application )
333 361
334 winHandle.ShowIndicator( Dali::Window::INVISIBLE ); 362 winHandle.ShowIndicator( Dali::Window::INVISIBLE );
335 363
336 - // 364 + // Background animation
337 mAnimationTimer = Timer::New( BACKGROUND_ANIMATION_DURATION ); 365 mAnimationTimer = Timer::New( BACKGROUND_ANIMATION_DURATION );
338 mAnimationTimer.TickSignal().Connect( this, &DaliTableView::PauseBackgroundAnimation ); 366 mAnimationTimer.TickSignal().Connect( this, &DaliTableView::PauseBackgroundAnimation );
339 mAnimationTimer.Start(); 367 mAnimationTimer.Start();
@@ -349,12 +377,10 @@ void DaliTableView::ApplyCubeEffectToActors() @@ -349,12 +377,10 @@ void DaliTableView::ApplyCubeEffectToActors()
349 { 377 {
350 Actor page = *pageIter; 378 Actor page = *pageIter;
351 379
352 - unsigned int numChildren = page.GetChildCount();  
353 - Actor pageActor = page;  
354 - for( unsigned int i=0; i<numChildren; ++i) 380 + for( unsigned int i = 0, numChildren = page.GetChildCount(); i < numChildren; ++i)
355 { 381 {
356 // Remove old effect's manual constraints. 382 // Remove old effect's manual constraints.
357 - Actor child = pageActor.GetChildAt(i); 383 + Actor child = page.GetChildAt(i);
358 if( child ) 384 if( child )
359 { 385 {
360 ApplyCubeEffectToActor( child ); 386 ApplyCubeEffectToActor( child );
@@ -362,6 +388,12 @@ void DaliTableView::ApplyCubeEffectToActors() @@ -362,6 +388,12 @@ void DaliTableView::ApplyCubeEffectToActors()
362 } 388 }
363 } 389 }
364 } 390 }
  391 +
  392 +void DaliTableView::OnButtonsPageRelayout( const Dali::Actor& actor )
  393 +{
  394 +
  395 +}
  396 +
365 void DaliTableView::Populate() 397 void DaliTableView::Populate()
366 { 398 {
367 const Vector2 stageSize = Stage::GetCurrent().GetSize(); 399 const Vector2 stageSize = Stage::GetCurrent().GetSize();
@@ -382,20 +414,15 @@ void DaliTableView::Populate() @@ -382,20 +414,15 @@ void DaliTableView::Populate()
382 for( int t = 0; t < mTotalPages; t++ ) 414 for( int t = 0; t < mTotalPages; t++ )
383 { 415 {
384 // Create Table. (contains up to 9 Examples) 416 // Create Table. (contains up to 9 Examples)
385 - Actor page = Actor::New();  
386 -  
387 - // Add tableView to container.  
388 - mScrollView.Add( page );  
389 - 417 + TableView page = TableView::New( 3, 3 );
390 page.SetAnchorPoint( AnchorPoint::CENTER ); 418 page.SetAnchorPoint( AnchorPoint::CENTER );
391 page.SetParentOrigin( ParentOrigin::CENTER ); 419 page.SetParentOrigin( ParentOrigin::CENTER );
392 - page.SetSizeMode( SIZE_EQUAL_TO_PARENT );  
393 -  
394 - // add cells to table  
395 - const float margin = 4.0f; 420 + page.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  421 + mScrollView.Add( page );
396 422
397 // Calculate the number of images going across (columns) within a page, according to the screen resolution and dpi. 423 // Calculate the number of images going across (columns) within a page, according to the screen resolution and dpi.
398 - const Size tileSize((stageSize.x * mButtonsPageRelativeSize.x / EXAMPLES_PER_ROW) - margin, (stageSize.y * mButtonsPageRelativeSize.y / ROWS_PER_PAGE) - margin ); 424 + const float margin = 2.0f;
  425 + const float tileParentMultiplier = 1.0f / EXAMPLES_PER_ROW;
399 426
400 for(int row = 0; row < ROWS_PER_PAGE; row++) 427 for(int row = 0; row < ROWS_PER_PAGE; row++)
401 { 428 {
@@ -403,7 +430,7 @@ void DaliTableView::Populate() @@ -403,7 +430,7 @@ void DaliTableView::Populate()
403 { 430 {
404 const Example& example = ( *iter ); 431 const Example& example = ( *iter );
405 432
406 - Actor tile = CreateTile( example.name, example.title, tileSize, true ); 433 + Actor tile = CreateTile( example.name, example.title, Vector3( tileParentMultiplier, tileParentMultiplier, 1.0f ), true );
407 FocusManager focusManager = FocusManager::Get(); 434 FocusManager focusManager = FocusManager::Get();
408 focusManager.SetFocusOrder( tile, ++exampleCount ); 435 focusManager.SetFocusOrder( tile, ++exampleCount );
409 focusManager.SetAccessibilityAttribute( tile, Dali::Toolkit::FocusManager::ACCESSIBILITY_LABEL, 436 focusManager.SetAccessibilityAttribute( tile, Dali::Toolkit::FocusManager::ACCESSIBILITY_LABEL,
@@ -412,12 +439,9 @@ void DaliTableView::Populate() @@ -412,12 +439,9 @@ void DaliTableView::Populate()
412 focusManager.SetAccessibilityAttribute( tile, Dali::Toolkit::FocusManager::ACCESSIBILITY_HINT, 439 focusManager.SetAccessibilityAttribute( tile, Dali::Toolkit::FocusManager::ACCESSIBILITY_HINT,
413 "You can run this example" ); 440 "You can run this example" );
414 441
415 - Vector3 position( margin * 0.5f + (tileSize.x + margin) * column - stageSize.width * mButtonsPageRelativeSize.x * 0.5f,  
416 - margin * 0.5f + (tileSize.y + margin) * row - stageSize.height * mButtonsPageRelativeSize.y * 0.5f,  
417 - 0.0f);  
418 - tile.SetPosition( position + Vector3( tileSize.x, tileSize.y, 0.0f ) * 0.5f );  
419 - tile.SetSize( tileSize );  
420 - page.Add( tile ); 442 + tile.SetPadding( Padding( margin, margin, margin, margin ) );
  443 +
  444 + page.AddChild( tile, TableView::CellPosition( row, column ) );
421 445
422 iter++; 446 iter++;
423 447
@@ -434,7 +458,7 @@ void DaliTableView::Populate() @@ -434,7 +458,7 @@ void DaliTableView::Populate()
434 } 458 }
435 459
436 // Set tableview position 460 // Set tableview position
437 - Vector3 pagePos( stageSize.x * mButtonsPageRelativeSize.x * t, 0.0f, 0.0f ); 461 + Vector3 pagePos( stageSize.width * TABLE_RELATIVE_SIZE.x * t, 0.0f, 0.0f );
438 page.SetPosition( pagePos ); 462 page.SetPosition( pagePos );
439 463
440 mPages.push_back( page ); 464 mPages.push_back( page );
@@ -447,9 +471,9 @@ void DaliTableView::Populate() @@ -447,9 +471,9 @@ void DaliTableView::Populate()
447 } 471 }
448 472
449 // Update Ruler info. 473 // Update Ruler info.
450 - mScrollRulerX = new FixedRuler( stageSize.width * mButtonsPageRelativeSize.x ); 474 + mScrollRulerX = new FixedRuler( stageSize.width * TABLE_RELATIVE_SIZE.x );
451 mScrollRulerY = new DefaultRuler(); 475 mScrollRulerY = new DefaultRuler();
452 - mScrollRulerX->SetDomain( RulerDomain( 0.0f, mTotalPages * stageSize.width * mButtonsPageRelativeSize.x, true ) ); 476 + mScrollRulerX->SetDomain( RulerDomain( 0.0f, mTotalPages * stageSize.width * TABLE_RELATIVE_SIZE.x, true ) );
453 mScrollRulerY->Disable(); 477 mScrollRulerY->Disable();
454 mScrollView.SetRulerX( mScrollRulerX ); 478 mScrollView.SetRulerX( mScrollRulerX );
455 mScrollView.SetRulerY( mScrollRulerY ); 479 mScrollView.SetRulerY( mScrollRulerY );
@@ -483,12 +507,16 @@ void DaliTableView::Rotate( unsigned int degrees ) @@ -483,12 +507,16 @@ void DaliTableView::Rotate( unsigned int degrees )
483 mRotateAnimation.Play(); 507 mRotateAnimation.Play();
484 } 508 }
485 509
486 -Actor DaliTableView::CreateTile( const std::string& name, const std::string& title, const Size& parentSize, bool addBackground ) 510 +Actor DaliTableView::CreateTile( const std::string& name, const std::string& title, const Dali::Vector3& sizeMultiplier, bool addBackground )
487 { 511 {
488 - Actor tile = Actor::New();  
489 - tile.SetName( name );  
490 - tile.SetAnchorPoint( AnchorPoint::CENTER );  
491 - tile.SetParentOrigin( ParentOrigin::CENTER ); 512 + Actor content = Actor::New();
  513 + content.SetName( name );
  514 + content.SetAnchorPoint( AnchorPoint::CENTER );
  515 + content.SetParentOrigin( ParentOrigin::CENTER );
  516 + content.SetRelayoutEnabled( true );
  517 + content.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  518 + content.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  519 + content.SetSizeModeFactor( sizeMultiplier );
492 520
493 // create background image 521 // create background image
494 if( addBackground ) 522 if( addBackground )
@@ -498,16 +526,17 @@ Actor DaliTableView::CreateTile( const std::string&amp; name, const std::string&amp; tit @@ -498,16 +526,17 @@ Actor DaliTableView::CreateTile( const std::string&amp; name, const std::string&amp; tit
498 image.SetAnchorPoint( AnchorPoint::CENTER ); 526 image.SetAnchorPoint( AnchorPoint::CENTER );
499 image.SetParentOrigin( ParentOrigin::CENTER ); 527 image.SetParentOrigin( ParentOrigin::CENTER );
500 // make the image 100% of tile 528 // make the image 100% of tile
501 - image.SetSizeMode( SIZE_EQUAL_TO_PARENT ); 529 + image.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  530 +
502 // move image back to get text appear in front 531 // move image back to get text appear in front
503 image.SetZ( -1 ); 532 image.SetZ( -1 );
504 image.SetStyle( ImageActor::STYLE_NINE_PATCH ); 533 image.SetStyle( ImageActor::STYLE_NINE_PATCH );
505 image.SetNinePatchBorder( Vector4( IMAGE_BORDER_LEFT, IMAGE_BORDER_TOP, IMAGE_BORDER_RIGHT, IMAGE_BORDER_BOTTOM ) ); 534 image.SetNinePatchBorder( Vector4( IMAGE_BORDER_LEFT, IMAGE_BORDER_TOP, IMAGE_BORDER_RIGHT, IMAGE_BORDER_BOTTOM ) );
506 - tile.Add( image ); 535 + content.Add( image );
507 536
508 // Add stencil 537 // Add stencil
509 ImageActor stencil = NewStencilImage(); 538 ImageActor stencil = NewStencilImage();
510 - stencil.SetSizeMode( SIZE_EQUAL_TO_PARENT ); 539 + stencil.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
511 image.Add( stencil ); 540 image.Add( stencil );
512 } 541 }
513 542
@@ -518,22 +547,23 @@ Actor DaliTableView::CreateTile( const std::string&amp; name, const std::string&amp; tit @@ -518,22 +547,23 @@ Actor DaliTableView::CreateTile( const std::string&amp; name, const std::string&amp; tit
518 text.SetMultilinePolicy( Toolkit::TextView::SplitByWord ); 547 text.SetMultilinePolicy( Toolkit::TextView::SplitByWord );
519 text.SetLineJustification( Toolkit::TextView::Center ); 548 text.SetLineJustification( Toolkit::TextView::Center );
520 text.SetTextAlignment( Toolkit::Alignment::Type( Alignment::HorizontalCenter | Alignment::VerticalCenter ) ); 549 text.SetTextAlignment( Toolkit::Alignment::Type( Alignment::HorizontalCenter | Alignment::VerticalCenter ) );
521 - text.SetColor( Color::WHITE );  
522 text.SetZ( 1 ); 550 text.SetZ( 1 );
523 // make the text 90% of tile 551 // make the text 90% of tile
524 - text.SetSize( 0.9f * parentSize.width, 0.9f * parentSize.height ); 552 + text.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  553 + text.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  554 + text.SetSizeModeFactor( Vector3( 0.9f, 0.9f, 0.0f ) );
525 text.SetStyleToCurrentText( GetTableTextStyle() ); 555 text.SetStyleToCurrentText( GetTableTextStyle() );
526 text.SetSnapshotModeEnabled( false ); 556 text.SetSnapshotModeEnabled( false );
527 - tile.Add( text ); 557 + content.Add( text );
528 558
529 // Set the tile to be keyboard focusable 559 // Set the tile to be keyboard focusable
530 - tile.SetKeyboardFocusable(true); 560 + content.SetKeyboardFocusable(true);
531 561
532 // connect to the touch events 562 // connect to the touch events
533 - tile.TouchedSignal().Connect( this, &DaliTableView::OnTilePressed );  
534 - tile.HoveredSignal().Connect( this, &DaliTableView::OnTileHovered ); 563 + content.TouchedSignal().Connect( this, &DaliTableView::OnTilePressed );
  564 + content.HoveredSignal().Connect( this, &DaliTableView::OnTileHovered );
535 565
536 - return tile; 566 + return content;
537 } 567 }
538 568
539 ImageActor DaliTableView::NewStencilImage() 569 ImageActor DaliTableView::NewStencilImage()
@@ -654,8 +684,6 @@ void DaliTableView::OnScrollComplete( const Dali::Vector3&amp; position ) @@ -654,8 +684,6 @@ void DaliTableView::OnScrollComplete( const Dali::Vector3&amp; position )
654 // move focus to 1st item of new page 684 // move focus to 1st item of new page
655 FocusManager focusManager = FocusManager::Get(); 685 FocusManager focusManager = FocusManager::Get();
656 focusManager.SetCurrentFocusActor(mPages[mScrollView.GetCurrentPage()].GetChildAt(0) ); 686 focusManager.SetCurrentFocusActor(mPages[mScrollView.GetCurrentPage()].GetChildAt(0) );
657 -  
658 - ApplyCubeEffectToActors();  
659 } 687 }
660 688
661 bool DaliTableView::OnScrollTouched( Actor actor, const TouchEvent& event ) 689 bool DaliTableView::OnScrollTouched( Actor actor, const TouchEvent& event )
@@ -721,37 +749,65 @@ void DaliTableView::OnKeyEvent( const KeyEvent&amp; event ) @@ -721,37 +749,65 @@ void DaliTableView::OnKeyEvent( const KeyEvent&amp; event )
721 } 749 }
722 } 750 }
723 751
724 -void DaliTableView::SetupBackground( Actor bubbleContainer, Actor backgroundLayer, const Vector2& size ) 752 +void DaliTableView::SetupBackground( Actor bubbleContainer )
725 { 753 {
726 // Create distance field shape. 754 // Create distance field shape.
727 BufferImage distanceField; 755 BufferImage distanceField;
728 Size imageSize( 512, 512 ); 756 Size imageSize( 512, 512 );
729 CreateShapeImage( CIRCLE, imageSize, distanceField ); 757 CreateShapeImage( CIRCLE, imageSize, distanceField );
730 758
731 - // Create solid background colour.  
732 - ImageActor backgroundColourActor = Dali::Toolkit::CreateSolidColorActor( BACKGROUND_COLOR );  
733 - backgroundColourActor.SetAnchorPoint( AnchorPoint::CENTER );  
734 - backgroundColourActor.SetParentOrigin( ParentOrigin::CENTER );  
735 - backgroundColourActor.SetSize( size * BACKGROUND_SIZE_SCALE );  
736 - backgroundColourActor.SetZ( BACKGROUND_Z );  
737 - backgroundColourActor.SetPositionInheritanceMode( DONT_INHERIT_POSITION );  
738 - backgroundLayer.Add( backgroundColourActor );  
739 -  
740 // Add bubbles to the bubbleContainer. 759 // Add bubbles to the bubbleContainer.
741 // Note: The bubbleContainer is parented externally to this function. 760 // Note: The bubbleContainer is parented externally to this function.
742 - AddBackgroundActors( bubbleContainer, NUM_BACKGROUND_IMAGES, distanceField, size ); 761 + AddBackgroundActors( bubbleContainer, NUM_BACKGROUND_IMAGES, distanceField );
  762 +}
  763 +
  764 +void DaliTableView::InitialiseBackgroundActors( Actor actor )
  765 +{
  766 + // Delete current animations
  767 + mBackgroundAnimations.clear();
  768 +
  769 + // Create new animations
  770 + const Vector3 size = actor.GetTargetSize();
  771 +
  772 + for( unsigned int i = 0, childCount = actor.GetChildCount(); i < childCount; ++i )
  773 + {
  774 + Actor child = actor.GetChildAt( i );
  775 +
  776 + const Vector3 childSize = child.GetTargetSize();
  777 +
  778 + // Calculate a random position
  779 + Vector3 childPos( Random::Range( -size.x * 0.5f * BACKGROUND_SPREAD_SCALE, size.x * 0.5f * BACKGROUND_SPREAD_SCALE ),
  780 + Random::Range( -size.y * 0.5f - childSize.height, size.y * 0.5f + childSize.height ),
  781 + Random::Range( BUBBLE_MIN_Z, BUBBLE_MAX_Z ) );
  782 +
  783 + child.SetPosition( childPos );
  784 +
  785 + // Define bubble horizontal parallax and vertical wrapping
  786 + Constraint animConstraint = Constraint::New < Vector3 > ( Actor::Property::POSITION,
  787 + Source( mScrollView, mScrollView.GetPropertyIndex( ScrollView::SCROLL_POSITION_PROPERTY_NAME ) ),
  788 + Dali::ParentSource( Dali::Actor::Property::SIZE ),
  789 + AnimateBubbleConstraint( childPos, Random::Range( -0.85f, 0.25f ), childSize.height ) );
  790 + child.ApplyConstraint( animConstraint );
  791 +
  792 + // Kickoff animation
  793 + Animation animation = Animation::New( Random::Range( 40.0f, 80.0f ) );
  794 + animation.MoveBy( child, Vector3( 0.0f, -1.0f, 0.0f ), AlphaFunctions::Linear );
  795 + animation.SetLooping( true );
  796 + animation.Play();
  797 + mBackgroundAnimations.push_back( animation );
  798 + }
743 } 799 }
744 800
745 -void DaliTableView::AddBackgroundActors( Actor layer, int count, BufferImage distanceField, const Dali::Vector2& size ) 801 +void DaliTableView::AddBackgroundActors( Actor layer, int count, BufferImage distanceField )
746 { 802 {
747 for( int i = 0; i < count; ++i ) 803 for( int i = 0; i < count; ++i )
748 { 804 {
749 float randSize = Random::Range( 10.0f, 400.0f ); 805 float randSize = Random::Range( 10.0f, 400.0f );
750 float hue = Random::Range( 0.3f, 1.0f ); 806 float hue = Random::Range( 0.3f, 1.0f );
751 - Vector4 randColour( hue, hue*0.5, 0.0f, Random::Range( 0.3f, 0.6f )); 807 + Vector4 randColour( hue, hue * 0.5, 0.0f, Random::Range( 0.3f, 0.6f ));
752 808
753 ImageActor dfActor = ImageActor::New( distanceField ); 809 ImageActor dfActor = ImageActor::New( distanceField );
754 - mBackgroundActors.push_back( dfActor ); 810 + dfActor.SetRelayoutEnabled( false );
755 dfActor.SetSize( Vector2( randSize, randSize ) ); 811 dfActor.SetSize( Vector2( randSize, randSize ) );
756 dfActor.SetParentOrigin( ParentOrigin::CENTER ); 812 dfActor.SetParentOrigin( ParentOrigin::CENTER );
757 813
@@ -761,33 +817,10 @@ void DaliTableView::AddBackgroundActors( Actor layer, int count, BufferImage dis @@ -761,33 +817,10 @@ void DaliTableView::AddBackgroundActors( Actor layer, int count, BufferImage dis
761 effect.SetOutlineParams( Vector2( 0.55f, 0.00f ) ); 817 effect.SetOutlineParams( Vector2( 0.55f, 0.00f ) );
762 effect.SetSmoothingEdge( 0.5f ); 818 effect.SetSmoothingEdge( 0.5f );
763 layer.Add( dfActor ); 819 layer.Add( dfActor );
764 -  
765 - // Setup animation  
766 - Vector3 actorPos(  
767 - Random::Range( -size.x * 0.5f * BACKGROUND_SPREAD_SCALE, size.x * 0.5f * BACKGROUND_SPREAD_SCALE ),  
768 - Random::Range( -size.y * 0.5f - randSize, size.y * 0.5f + randSize ),  
769 - Random::Range( BUBBLE_MIN_Z, BUBBLE_MAX_Z ) );  
770 - dfActor.SetPosition( actorPos );  
771 -  
772 - // Define bubble horizontal parallax and vertical wrapping  
773 - Constraint animConstraint = Constraint::New < Vector3 > ( Actor::Property::POSITION,  
774 - Source( mScrollView, mScrollView.GetPropertyIndex( ScrollView::SCROLL_POSITION_PROPERTY_NAME ) ),  
775 - Dali::ParentSource( Dali::Actor::Property::SIZE ),  
776 - AnimateBubbleConstraint( actorPos, Random::Range( -0.85f, 0.25f ), randSize ) );  
777 - dfActor.ApplyConstraint( animConstraint );  
778 -  
779 - // Kickoff animation  
780 - Animation animation = Animation::New( Random::Range( 40.0f, 200.0f ) );  
781 - KeyFrames keyframes = KeyFrames::New();  
782 - keyframes.Add( 0.0f, actorPos );  
783 - Vector3 toPos( actorPos );  
784 - toPos.y -= ( size.y + randSize );  
785 - keyframes.Add( 1.0f, toPos );  
786 - animation.AnimateBetween( Property( dfActor, Actor::Property::POSITION ), keyframes );  
787 - animation.SetLooping( true );  
788 - animation.Play();  
789 - mBackgroundAnimations.push_back( animation );  
790 } 820 }
  821 +
  822 + // Positioning will occur when the layer is relaid out
  823 + layer.OnRelayoutSignal().Connect( this, &DaliTableView::InitialiseBackgroundActors );
791 } 824 }
792 825
793 void DaliTableView::CreateShapeImage( ShapeType shapeType, const Size& size, BufferImage& distanceFieldOut ) 826 void DaliTableView::CreateShapeImage( ShapeType shapeType, const Size& size, BufferImage& distanceFieldOut )
@@ -860,7 +893,7 @@ ImageActor DaliTableView::CreateLogo( std::string imagePath ) @@ -860,7 +893,7 @@ ImageActor DaliTableView::CreateLogo( std::string imagePath )
860 ImageActor logo = ImageActor::New( image ); 893 ImageActor logo = ImageActor::New( image );
861 894
862 logo.SetAnchorPoint( AnchorPoint::CENTER ); 895 logo.SetAnchorPoint( AnchorPoint::CENTER );
863 - logo.SetParentOrigin( ParentOrigin::BOTTOM_CENTER ); 896 + logo.SetParentOrigin( ParentOrigin::CENTER );
864 897
865 return logo; 898 return logo;
866 } 899 }
@@ -994,14 +1027,18 @@ void DaliTableView::OnLogoTapped( Dali::Actor actor, const Dali::TapGesture&amp; tap @@ -994,14 +1027,18 @@ void DaliTableView::OnLogoTapped( Dali::Actor actor, const Dali::TapGesture&amp; tap
994 stream << "DALi Toolkit: " << TOOLKIT_MAJOR_VERSION << "." << TOOLKIT_MINOR_VERSION << "." << TOOLKIT_MICRO_VERSION << std::endl << "(" << TOOLKIT_BUILD_DATE << ")"; 1027 stream << "DALi Toolkit: " << TOOLKIT_MAJOR_VERSION << "." << TOOLKIT_MINOR_VERSION << "." << TOOLKIT_MICRO_VERSION << std::endl << "(" << TOOLKIT_BUILD_DATE << ")";
995 1028
996 mVersionPopup = Dali::Toolkit::Popup::New(); 1029 mVersionPopup = Dali::Toolkit::Popup::New();
997 - mVersionPopup.SetTitle( stream.str() );  
998 mVersionPopup.SetParentOrigin( ParentOrigin::CENTER ); 1030 mVersionPopup.SetParentOrigin( ParentOrigin::CENTER );
999 mVersionPopup.SetAnchorPoint( AnchorPoint::CENTER ); 1031 mVersionPopup.SetAnchorPoint( AnchorPoint::CENTER );
  1032 + mVersionPopup.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1033 + mVersionPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  1034 + mVersionPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
  1035 + mVersionPopup.SetResizePolicy( FIT_TO_CHILDREN, HEIGHT );
  1036 + mVersionPopup.SetTitle( stream.str() );
1000 mVersionPopup.HideTail(); 1037 mVersionPopup.HideTail();
1001 mVersionPopup.OutsideTouchedSignal().Connect( this, &DaliTableView::HideVersionPopup ); 1038 mVersionPopup.OutsideTouchedSignal().Connect( this, &DaliTableView::HideVersionPopup );
1002 mVersionPopup.HiddenSignal().Connect( this, &DaliTableView::PopupHidden ); 1039 mVersionPopup.HiddenSignal().Connect( this, &DaliTableView::PopupHidden );
1003 1040
1004 - Dali::Stage::GetCurrent().Add( mVersionPopup ); 1041 + mVersionPopup.MarkDirtyForRelayout();
1005 } 1042 }
1006 1043
1007 mVersionPopup.Show(); 1044 mVersionPopup.Show();
demo/dali-table-view.h
@@ -165,7 +165,7 @@ private: // Application callbacks &amp; implementation @@ -165,7 +165,7 @@ private: // Application callbacks &amp; implementation
165 * 165 *
166 * @return The Actor for the created tile. 166 * @return The Actor for the created tile.
167 */ 167 */
168 - Dali::Actor CreateTile( const std::string& name, const std::string& title, const Dali::Size& parentSize, bool addBackground ); 168 + Dali::Actor CreateTile( const std::string& name, const std::string& title, const Dali::Vector3& sizeMultiplier, bool addBackground );
169 169
170 /** 170 /**
171 * Create a stencil image 171 * Create a stencil image
@@ -276,9 +276,8 @@ private: // Application callbacks &amp; implementation @@ -276,9 +276,8 @@ private: // Application callbacks &amp; implementation
276 * Create a depth field background 276 * Create a depth field background
277 * 277 *
278 * @param[in] bubbleLayer Add the graphics to this layer 278 * @param[in] bubbleLayer Add the graphics to this layer
279 - * @param[in] backgroundLayer Add the background to this layer  
280 */ 279 */
281 - void SetupBackground( Dali::Actor bubbleLayer, Dali::Actor backgroundLayer, const Dali::Vector2& size ); 280 + void SetupBackground( Dali::Actor bubbleLayer );
282 281
283 /** 282 /**
284 * Create background actors for the given layer 283 * Create background actors for the given layer
@@ -286,9 +285,8 @@ private: // Application callbacks &amp; implementation @@ -286,9 +285,8 @@ private: // Application callbacks &amp; implementation
286 * @param[in] layer The layer to add the actors to 285 * @param[in] layer The layer to add the actors to
287 * @param[in] count The number of actors to generate 286 * @param[in] count The number of actors to generate
288 * @param[in] distanceField The distance field bitmap to use 287 * @param[in] distanceField The distance field bitmap to use
289 - * @param[in] size The size of the actor  
290 */ 288 */
291 - void AddBackgroundActors( Dali::Actor layer, int count, Dali::BufferImage distanceField, const Dali::Vector2& size ); 289 + void AddBackgroundActors( Dali::Actor layer, int count, Dali::BufferImage distanceField );
292 290
293 /** 291 /**
294 * Create a bitmap with the specified shape and also output a distance field 292 * Create a bitmap with the specified shape and also output a distance field
@@ -378,6 +376,20 @@ private: // Application callbacks &amp; implementation @@ -378,6 +376,20 @@ private: // Application callbacks &amp; implementation
378 */ 376 */
379 void PopupHidden(); 377 void PopupHidden();
380 378
  379 + /*
  380 + * @brief Callback called when the buttons page actor is relaid out
  381 + *
  382 + * @param[in] actor The page actor
  383 + */
  384 + void OnButtonsPageRelayout( const Dali::Actor& actor );
  385 +
  386 + /**
  387 + * @brief Callback called to set up background actors
  388 + *
  389 + * @param[in] actor The actor raising the callback
  390 + */
  391 + void InitialiseBackgroundActors( Dali::Actor actor );
  392 +
381 private: 393 private:
382 394
383 Dali::Application& mApplication; ///< Application instance. 395 Dali::Application& mApplication; ///< Application instance.
@@ -385,7 +397,6 @@ private: @@ -385,7 +397,6 @@ private:
385 Dali::Toolkit::TableView mRootActor; ///< All content (excluding background is anchored to this Actor) 397 Dali::Toolkit::TableView mRootActor; ///< All content (excluding background is anchored to this Actor)
386 Dali::Animation mRotateAnimation; ///< Animation to rotate and resize mRootActor. 398 Dali::Animation mRotateAnimation; ///< Animation to rotate and resize mRootActor.
387 Dali::ImageActor mBackground; ///< Background's static image. 399 Dali::ImageActor mBackground; ///< Background's static image.
388 - Dali::ImageActor mLogo; ///< Logo's static image.  
389 Dali::Animation mPressedAnimation; ///< Button press scaling animation. 400 Dali::Animation mPressedAnimation; ///< Button press scaling animation.
390 Dali::Layer mScrollViewLayer; ///< ScrollView resides on a separate layer. 401 Dali::Layer mScrollViewLayer; ///< ScrollView resides on a separate layer.
391 Dali::Toolkit::ScrollView mScrollView; ///< ScrollView container (for all Examples) 402 Dali::Toolkit::ScrollView mScrollView; ///< ScrollView container (for all Examples)
@@ -413,6 +424,7 @@ private: @@ -413,6 +424,7 @@ private:
413 bool mSortAlphabetically:1; ///< Sort examples alphabetically. 424 bool mSortAlphabetically:1; ///< Sort examples alphabetically.
414 bool mBackgroundAnimsPlaying:1; ///< Are background animations playing 425 bool mBackgroundAnimsPlaying:1; ///< Are background animations playing
415 bool mVersionPopupShown:1; ///< Whehter the version popup is shown or not 426 bool mVersionPopupShown:1; ///< Whehter the version popup is shown or not
  427 +
416 }; 428 };
417 429
418 #endif // __DALI_DEMO_H__ 430 #endif // __DALI_DEMO_H__
examples/animated-shapes/animated-shapes-example.cpp
@@ -52,6 +52,7 @@ public: @@ -52,6 +52,7 @@ public:
52 52
53 //Create a view 53 //Create a view
54 mView = Dali::Toolkit::View::New(); 54 mView = Dali::Toolkit::View::New();
  55 + mView.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
55 stage.Add( mView ); 56 stage.Add( mView );
56 57
57 //Set background image for the view 58 //Set background image for the view
examples/blocks/blocks-example.cpp
@@ -421,7 +421,8 @@ private: @@ -421,7 +421,8 @@ private:
421 mLevelContainer = Actor::New(); 421 mLevelContainer = Actor::New();
422 mLevelContainer.SetAnchorPoint( AnchorPoint::CENTER ); 422 mLevelContainer.SetAnchorPoint( AnchorPoint::CENTER );
423 mLevelContainer.SetParentOrigin( ParentOrigin::CENTER ); 423 mLevelContainer.SetParentOrigin( ParentOrigin::CENTER );
424 - mLevelContainer.SetSizeMode( SIZE_EQUAL_TO_PARENT ); 424 + mLevelContainer.SetRelayoutEnabled( true );
  425 + mLevelContainer.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
425 mContentLayer.Add( mLevelContainer ); 426 mContentLayer.Add( mLevelContainer );
426 427
427 mBrickCount = 0; 428 mBrickCount = 0;
@@ -593,6 +594,7 @@ private: @@ -593,6 +594,7 @@ private:
593 ImageActor brick = ImageActor::New(img); 594 ImageActor brick = ImageActor::New(img);
594 brick.SetParentOrigin(ParentOrigin::TOP_LEFT); 595 brick.SetParentOrigin(ParentOrigin::TOP_LEFT);
595 brick.SetAnchorPoint(AnchorPoint::CENTER); 596 brick.SetAnchorPoint(AnchorPoint::CENTER);
  597 + brick.SetRelayoutEnabled( false );
596 brick.SetSize( brickSize ); 598 brick.SetSize( brickSize );
597 brick.SetPosition( Vector3( position ) ); 599 brick.SetPosition( Vector3( position ) );
598 600
@@ -625,6 +627,7 @@ private: @@ -625,6 +627,7 @@ private:
625 ImageActor actor = ImageActor::New(img); 627 ImageActor actor = ImageActor::New(img);
626 actor.SetParentOrigin(ParentOrigin::TOP_LEFT); 628 actor.SetParentOrigin(ParentOrigin::TOP_LEFT);
627 actor.SetAnchorPoint(AnchorPoint::CENTER); 629 actor.SetAnchorPoint(AnchorPoint::CENTER);
  630 + actor.SetRelayoutEnabled( false );
628 return actor; 631 return actor;
629 } 632 }
630 633
examples/builder/examples.cpp
@@ -290,6 +290,7 @@ public: @@ -290,6 +290,7 @@ public:
290 mFiles.clear(); 290 mFiles.clear();
291 291
292 mItemView = ItemView::New(*this); 292 mItemView = ItemView::New(*this);
  293 + mItemView.SetRelayoutEnabled( false );
293 stage.Add( mItemView ); 294 stage.Add( mItemView );
294 mItemView.SetParentOrigin(ParentOrigin::CENTER); 295 mItemView.SetParentOrigin(ParentOrigin::CENTER);
295 mItemView.SetAnchorPoint(AnchorPoint::CENTER); 296 mItemView.SetAnchorPoint(AnchorPoint::CENTER);
@@ -396,6 +397,7 @@ public: @@ -396,6 +397,7 @@ public:
396 Actor MenuItem(const std::string& text) 397 Actor MenuItem(const std::string& text)
397 { 398 {
398 TextView t = TextView::New(); 399 TextView t = TextView::New();
  400 + t.SetResizePolicy( FILL_TO_PARENT, WIDTH );
399 t.SetMarkupProcessingEnabled(true); 401 t.SetMarkupProcessingEnabled(true);
400 402
401 int size = static_cast<int>(DemoHelper::ScalePointSize(6)); 403 int size = static_cast<int>(DemoHelper::ScalePointSize(6));
@@ -480,6 +482,8 @@ public: @@ -480,6 +482,8 @@ public:
480 482
481 builder.AddActors( layer ); 483 builder.AddActors( layer );
482 484
  485 + // Force relayout on layer
  486 + layer.RelayoutRequestTree();
483 } 487 }
484 488
485 489
examples/buttons/buttons-example.cpp
@@ -127,14 +127,16 @@ class ButtonsController: public ConnectionTracker @@ -127,14 +127,16 @@ class ButtonsController: public ConnectionTracker
127 radioGroup2Background.SetAnchorPoint( AnchorPoint::TOP_LEFT ); 127 radioGroup2Background.SetAnchorPoint( AnchorPoint::TOP_LEFT );
128 radioGroup2Background.SetParentOrigin( ParentOrigin::TOP_LEFT ); 128 radioGroup2Background.SetParentOrigin( ParentOrigin::TOP_LEFT );
129 radioGroup2Background.SetPosition( DP(MARGIN_SIZE), DP(yPos) ); 129 radioGroup2Background.SetPosition( DP(MARGIN_SIZE), DP(yPos) );
130 - radioGroup2Background.SetSize( DP(348), DP(GROUP2_HEIGHT) ); 130 + radioGroup2Background.SetRelayoutEnabled( true );
  131 + radioGroup2Background.SetPreferredSize( Vector2( DP(348), DP(GROUP2_HEIGHT) ) );
131 mContentLayer.Add( radioGroup2Background ); 132 mContentLayer.Add( radioGroup2Background );
132 133
133 Actor radioButtonsGroup2 = Actor::New(); 134 Actor radioButtonsGroup2 = Actor::New();
134 radioButtonsGroup2.SetParentOrigin( ParentOrigin::TOP_LEFT ); 135 radioButtonsGroup2.SetParentOrigin( ParentOrigin::TOP_LEFT );
135 radioButtonsGroup2.SetAnchorPoint( AnchorPoint::TOP_LEFT ); 136 radioButtonsGroup2.SetAnchorPoint( AnchorPoint::TOP_LEFT );
136 radioButtonsGroup2.SetPosition( DP(MARGIN_SIZE), DP(MARGIN_SIZE) ); 137 radioButtonsGroup2.SetPosition( DP(MARGIN_SIZE), DP(MARGIN_SIZE) );
137 - radioButtonsGroup2.SetSize( DP(100), DP(160) ); 138 + radioButtonsGroup2.SetRelayoutEnabled( true );
  139 + radioButtonsGroup2.SetPreferredSize( Vector2( DP(100), DP(160) ) );
138 140
139 radioGroup2Background.Add( radioButtonsGroup2 ); 141 radioGroup2Background.Add( radioButtonsGroup2 );
140 142
@@ -143,7 +145,7 @@ class ButtonsController: public ConnectionTracker @@ -143,7 +145,7 @@ class ButtonsController: public ConnectionTracker
143 // Radio 1 145 // Radio 1
144 { 146 {
145 ImageActor imageActor = ImageActor::New( ResourceImage::New( SMALL_IMAGE_1 ) ); 147 ImageActor imageActor = ImageActor::New( ResourceImage::New( SMALL_IMAGE_1 ) );
146 - imageActor.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); 148 + imageActor.SetPreferredSize( Vector2( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ) );
147 mRadioButtonImage1 = Dali::Toolkit::RadioButton::New( imageActor ); 149 mRadioButtonImage1 = Dali::Toolkit::RadioButton::New( imageActor );
148 mRadioButtonImage1.SetParentOrigin( ParentOrigin::TOP_LEFT ); 150 mRadioButtonImage1.SetParentOrigin( ParentOrigin::TOP_LEFT );
149 mRadioButtonImage1.SetAnchorPoint( AnchorPoint::TOP_LEFT ); 151 mRadioButtonImage1.SetAnchorPoint( AnchorPoint::TOP_LEFT );
@@ -158,7 +160,7 @@ class ButtonsController: public ConnectionTracker @@ -158,7 +160,7 @@ class ButtonsController: public ConnectionTracker
158 radioY += RADIO_LABEL_THUMBNAIL_SIZE + RADIO_IMAGE_SPACING; 160 radioY += RADIO_LABEL_THUMBNAIL_SIZE + RADIO_IMAGE_SPACING;
159 161
160 ImageActor imageActor = ImageActor::New( ResourceImage::New( SMALL_IMAGE_2 ) ); 162 ImageActor imageActor = ImageActor::New( ResourceImage::New( SMALL_IMAGE_2 ) );
161 - imageActor.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); 163 + imageActor.SetPreferredSize( Vector2( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ) );
162 164
163 mRadioButtonImage2 = Dali::Toolkit::RadioButton::New( imageActor ); 165 mRadioButtonImage2 = Dali::Toolkit::RadioButton::New( imageActor );
164 mRadioButtonImage2.SetParentOrigin( ParentOrigin::TOP_LEFT ); 166 mRadioButtonImage2.SetParentOrigin( ParentOrigin::TOP_LEFT );
@@ -173,7 +175,7 @@ class ButtonsController: public ConnectionTracker @@ -173,7 +175,7 @@ class ButtonsController: public ConnectionTracker
173 radioY += RADIO_LABEL_THUMBNAIL_SIZE + RADIO_IMAGE_SPACING; 175 radioY += RADIO_LABEL_THUMBNAIL_SIZE + RADIO_IMAGE_SPACING;
174 176
175 ImageActor imageActor = ImageActor::New( ResourceImage::New( SMALL_IMAGE_3 ) ); 177 ImageActor imageActor = ImageActor::New( ResourceImage::New( SMALL_IMAGE_3 ) );
176 - imageActor.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); 178 + imageActor.SetPreferredSize( Vector2( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ) );
177 179
178 mRadioButtonImage3 = Dali::Toolkit::RadioButton::New( imageActor ); 180 mRadioButtonImage3 = Dali::Toolkit::RadioButton::New( imageActor );
179 mRadioButtonImage3.SetParentOrigin( ParentOrigin::TOP_LEFT ); 181 mRadioButtonImage3.SetParentOrigin( ParentOrigin::TOP_LEFT );
@@ -188,8 +190,8 @@ class ButtonsController: public ConnectionTracker @@ -188,8 +190,8 @@ class ButtonsController: public ConnectionTracker
188 mUpdateButton.SetParentOrigin( ParentOrigin::BOTTOM_CENTER ); 190 mUpdateButton.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
189 mUpdateButton.SetAnchorPoint( AnchorPoint::TOP_CENTER ); 191 mUpdateButton.SetAnchorPoint( AnchorPoint::TOP_CENTER );
190 mUpdateButton.SetPosition( 0, DP(MARGIN_SIZE) ); 192 mUpdateButton.SetPosition( 0, DP(MARGIN_SIZE) );
191 - mUpdateButton.SetLabel("Select");  
192 - mUpdateButton.SetSize( DP(100), DP(BUTTON_HEIGHT) ); 193 + mUpdateButton.SetLabel( "Select" );
  194 + mUpdateButton.SetPreferredSize( Vector2( DP(100), DP(BUTTON_HEIGHT) ) );
193 195
194 mUpdateButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) ); 196 mUpdateButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
195 mUpdateButton.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) ); 197 mUpdateButton.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) );
@@ -208,7 +210,7 @@ class ButtonsController: public ConnectionTracker @@ -208,7 +210,7 @@ class ButtonsController: public ConnectionTracker
208 mImage.SetParentOrigin( ParentOrigin::TOP_RIGHT ); 210 mImage.SetParentOrigin( ParentOrigin::TOP_RIGHT );
209 mImage.SetAnchorPoint( AnchorPoint::TOP_LEFT ); 211 mImage.SetAnchorPoint( AnchorPoint::TOP_LEFT );
210 mImage.SetPosition( DP(MARGIN_SIZE), 0 ); 212 mImage.SetPosition( DP(MARGIN_SIZE), 0 );
211 - mImage.SetSize( DP(218), DP(218) ); 213 + mImage.SetPreferredSize( Vector2( DP(218), DP(218) ) );
212 radioButtonsGroup2.Add( mImage ); 214 radioButtonsGroup2.Add( mImage );
213 215
214 // The enable/disable radio group 216 // The enable/disable radio group
@@ -218,7 +220,8 @@ class ButtonsController: public ConnectionTracker @@ -218,7 +220,8 @@ class ButtonsController: public ConnectionTracker
218 radioGroup1Background.SetAnchorPoint( AnchorPoint::TOP_LEFT ); 220 radioGroup1Background.SetAnchorPoint( AnchorPoint::TOP_LEFT );
219 radioGroup1Background.SetParentOrigin( ParentOrigin::TOP_LEFT ); 221 radioGroup1Background.SetParentOrigin( ParentOrigin::TOP_LEFT );
220 radioGroup1Background.SetPosition( DP(MARGIN_SIZE), DP(yPos) ); 222 radioGroup1Background.SetPosition( DP(MARGIN_SIZE), DP(yPos) );
221 - radioGroup1Background.SetSize( DP(348), DP(GROUP1_HEIGHT) ); 223 + radioGroup1Background.SetRelayoutEnabled( true );
  224 + radioGroup1Background.SetPreferredSize( Vector2( DP(348), DP(GROUP1_HEIGHT) ) );
222 mContentLayer.Add( radioGroup1Background ); 225 mContentLayer.Add( radioGroup1Background );
223 226
224 // Radio group 227 // Radio group
@@ -232,17 +235,17 @@ class ButtonsController: public ConnectionTracker @@ -232,17 +235,17 @@ class ButtonsController: public ConnectionTracker
232 // First radio button 235 // First radio button
233 { 236 {
234 Toolkit::TableView tableView = Toolkit::TableView::New( 1, 2 ); 237 Toolkit::TableView tableView = Toolkit::TableView::New( 1, 2 );
235 - tableView.SetSize( DP(260), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); 238 + tableView.SetPreferredSize( Vector2( DP(260), 0.0f ) );
  239 + tableView.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
236 240
237 Toolkit::TextView textView = Toolkit::TextView::New( "Select enabled" ); 241 Toolkit::TextView textView = Toolkit::TextView::New( "Select enabled" );
238 - Toolkit::Alignment alignment = Toolkit::Alignment::New( Toolkit::Alignment::HorizontalLeft );  
239 - alignment.Add( textView );  
240 - tableView.AddChild( alignment, Toolkit::TableView::CellPosition( 0, 0 ) ); 242 + tableView.AddChild( textView, Toolkit::TableView::CellPosition( 0, 0 ) );
241 243
242 ImageActor imageActor = ImageActor::New( ResourceImage::New( ENABLED_IMAGE ) ); 244 ImageActor imageActor = ImageActor::New( ResourceImage::New( ENABLED_IMAGE ) );
243 - imageActor.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); 245 + imageActor.SetPreferredSize( Vector2( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ) );
  246 + imageActor.SetResizePolicy( FIXED, ALL_DIMENSIONS );
  247 + imageActor.SetPadding( Padding( DP(20.0f), 0.0f, 0.0f, 0.0f ) );
244 tableView.AddChild( imageActor, Toolkit::TableView::CellPosition( 0, 1 ) ); 248 tableView.AddChild( imageActor, Toolkit::TableView::CellPosition( 0, 1 ) );
245 - tableView.SetFixedWidth( 1, DP(RADIO_LABEL_THUMBNAIL_SIZE) );  
246 249
247 Toolkit::RadioButton radioButton = Dali::Toolkit::RadioButton::New( tableView ); 250 Toolkit::RadioButton radioButton = Dali::Toolkit::RadioButton::New( tableView );
248 radioButton.SetName( "radio-select-enable" ); 251 radioButton.SetName( "radio-select-enable" );
@@ -276,7 +279,8 @@ class ButtonsController: public ConnectionTracker @@ -276,7 +279,8 @@ class ButtonsController: public ConnectionTracker
276 checkBoxBackground.SetAnchorPoint( AnchorPoint::TOP_LEFT ); 279 checkBoxBackground.SetAnchorPoint( AnchorPoint::TOP_LEFT );
277 checkBoxBackground.SetParentOrigin( ParentOrigin::TOP_LEFT ); 280 checkBoxBackground.SetParentOrigin( ParentOrigin::TOP_LEFT );
278 checkBoxBackground.SetPosition( DP(MARGIN_SIZE), DP(yPos) ); 281 checkBoxBackground.SetPosition( DP(MARGIN_SIZE), DP(yPos) );
279 - checkBoxBackground.SetSize( DP(430), DP(GROUP3_HEIGHT) ); 282 + checkBoxBackground.SetRelayoutEnabled( true );
  283 + checkBoxBackground.SetPreferredSize( Vector2( DP(430), DP(GROUP3_HEIGHT) ) );
280 mContentLayer.Add( checkBoxBackground ); 284 mContentLayer.Add( checkBoxBackground );
281 285
282 Dali::Image unselected = Dali::ResourceImage::New( CHECKBOX_UNSELECTED_IMAGE ); 286 Dali::Image unselected = Dali::ResourceImage::New( CHECKBOX_UNSELECTED_IMAGE );
@@ -336,7 +340,8 @@ class ButtonsController: public ConnectionTracker @@ -336,7 +340,8 @@ class ButtonsController: public ConnectionTracker
336 toggleBackground.SetAnchorPoint( AnchorPoint::TOP_LEFT ); 340 toggleBackground.SetAnchorPoint( AnchorPoint::TOP_LEFT );
337 toggleBackground.SetParentOrigin( ParentOrigin::TOP_LEFT ); 341 toggleBackground.SetParentOrigin( ParentOrigin::TOP_LEFT );
338 toggleBackground.SetPosition( DP(MARGIN_SIZE), DP(yPos) ); 342 toggleBackground.SetPosition( DP(MARGIN_SIZE), DP(yPos) );
339 - toggleBackground.SetSize( DP(150 + MARGIN_SIZE * 2), DP(GROUP4_HEIGHT) ); 343 + toggleBackground.SetRelayoutEnabled( true );
  344 + toggleBackground.SetPreferredSize( Vector2( DP(150 + MARGIN_SIZE * 2), DP(GROUP4_HEIGHT) ) );
340 mContentLayer.Add( toggleBackground ); 345 mContentLayer.Add( toggleBackground );
341 346
342 Toolkit::PushButton toggleButton = Toolkit::PushButton::New(); 347 Toolkit::PushButton toggleButton = Toolkit::PushButton::New();
@@ -345,7 +350,7 @@ class ButtonsController: public ConnectionTracker @@ -345,7 +350,7 @@ class ButtonsController: public ConnectionTracker
345 toggleButton.SetAnchorPoint( AnchorPoint::TOP_LEFT ); 350 toggleButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
346 toggleButton.SetPosition( DP(MARGIN_SIZE), DP(MARGIN_SIZE) ); 351 toggleButton.SetPosition( DP(MARGIN_SIZE), DP(MARGIN_SIZE) );
347 toggleButton.SetLabel( "Unselected" ); 352 toggleButton.SetLabel( "Unselected" );
348 - toggleButton.SetSize( DP(150), DP(BUTTON_HEIGHT) ); 353 + toggleButton.SetPreferredSize( Vector2( DP(150), DP(BUTTON_HEIGHT) ) );
349 354
350 toggleButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) ); 355 toggleButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
351 toggleButton.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) ); 356 toggleButton.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) );
examples/cluster/cluster-example.cpp
@@ -477,6 +477,7 @@ public: @@ -477,6 +477,7 @@ public:
477 477
478 // create and setup the scroll view... 478 // create and setup the scroll view...
479 mScrollView = ScrollView::New(); 479 mScrollView = ScrollView::New();
  480 + mScrollView.SetRelayoutEnabled( false );
480 mScrollView.SetSize(stageSize); 481 mScrollView.SetSize(stageSize);
481 482
482 // attach Wobble Effect to ScrollView 483 // attach Wobble Effect to ScrollView
@@ -488,7 +489,8 @@ public: @@ -488,7 +489,8 @@ public:
488 mScrollView.SetParentOrigin(ParentOrigin::CENTER); 489 mScrollView.SetParentOrigin(ParentOrigin::CENTER);
489 490
490 // Scale ScrollView to fit parent (mContentLayer) 491 // Scale ScrollView to fit parent (mContentLayer)
491 - mScrollView.SetSizeMode( SIZE_EQUAL_TO_PARENT ); 492 + mScrollView.SetRelayoutEnabled( true );
  493 + mScrollView.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
492 494
493 // Add the scroll view to the content layer 495 // Add the scroll view to the content layer
494 mContentLayer.Add(mScrollView); 496 mContentLayer.Add(mScrollView);
@@ -515,6 +517,7 @@ public: @@ -515,6 +517,7 @@ public:
515 Cluster clusterActor = Cluster::New(style); 517 Cluster clusterActor = Cluster::New(style);
516 clusterActor.SetParentOrigin(ParentOrigin::CENTER); 518 clusterActor.SetParentOrigin(ParentOrigin::CENTER);
517 clusterActor.SetAnchorPoint(AnchorPoint::CENTER); 519 clusterActor.SetAnchorPoint(AnchorPoint::CENTER);
  520 + clusterActor.SetRelayoutEnabled( false );
518 521
519 Vector2 stageSize = Dali::Stage::GetCurrent().GetSize(); 522 Vector2 stageSize = Dali::Stage::GetCurrent().GetSize();
520 float minStageDimension = std::min(stageSize.x, stageSize.y); 523 float minStageDimension = std::min(stageSize.x, stageSize.y);
@@ -533,6 +536,7 @@ public: @@ -533,6 +536,7 @@ public:
533 backgroundAttributes.SetScalingMode( Dali::ImageAttributes::ShrinkToFit ); 536 backgroundAttributes.SetScalingMode( Dali::ImageAttributes::ShrinkToFit );
534 Image bg = ResourceImage::New( CLUSTER_BACKGROUND_IMAGE_PATH ); 537 Image bg = ResourceImage::New( CLUSTER_BACKGROUND_IMAGE_PATH );
535 ImageActor image = ImageActor::New(bg); 538 ImageActor image = ImageActor::New(bg);
  539 + image.SetRelayoutEnabled( false );
536 clusterActor.SetBackgroundImage(image); 540 clusterActor.SetBackgroundImage(image);
537 541
538 // Add actors (pictures) as the children of the cluster 542 // Add actors (pictures) as the children of the cluster
@@ -576,6 +580,7 @@ public: @@ -576,6 +580,7 @@ public:
576 shadowActor.SetPosition(Vector3(0.0f, 0.0f, -1.0f)); 580 shadowActor.SetPosition(Vector3(0.0f, 0.0f, -1.0f));
577 581
578 // Apply size-relative mode to auto-size the image shadow 582 // Apply size-relative mode to auto-size the image shadow
  583 + shadowActor.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
579 shadowActor.SetSizeMode( SIZE_RELATIVE_TO_PARENT ); 584 shadowActor.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
580 shadowActor.SetSizeModeFactor( ShadowProperty::SIZE_SCALE ); 585 shadowActor.SetSizeModeFactor( ShadowProperty::SIZE_SCALE );
581 actor.Add( shadowActor ); 586 actor.Add( shadowActor );
@@ -585,7 +590,7 @@ public: @@ -585,7 +590,7 @@ public:
585 ImageActor imageActor = ImageActor::New( image ); 590 ImageActor imageActor = ImageActor::New( image );
586 imageActor.SetParentOrigin( ParentOrigin::CENTER ); 591 imageActor.SetParentOrigin( ParentOrigin::CENTER );
587 imageActor.SetAnchorPoint( AnchorPoint::CENTER ); 592 imageActor.SetAnchorPoint( AnchorPoint::CENTER );
588 - imageActor.SetSizeMode( SIZE_EQUAL_TO_PARENT ); 593 + imageActor.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
589 actor.Add( imageActor ); 594 actor.Add( imageActor );
590 595
591 // Add a border image child actor (with a fixed size offset from parent). 596 // Add a border image child actor (with a fixed size offset from parent).
@@ -595,6 +600,7 @@ public: @@ -595,6 +600,7 @@ public:
595 borderActor.SetStyle( ImageActor::STYLE_NINE_PATCH ); 600 borderActor.SetStyle( ImageActor::STYLE_NINE_PATCH );
596 borderActor.SetNinePatchBorder( CLUSTER_IMAGE_BORDER_ABSOLUTE ); 601 borderActor.SetNinePatchBorder( CLUSTER_IMAGE_BORDER_ABSOLUTE );
597 borderActor.SetPosition( Vector3( 0.0f, 0.0f, 1.0f ) ); 602 borderActor.SetPosition( Vector3( 0.0f, 0.0f, 1.0f ) );
  603 + borderActor.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
598 borderActor.SetSizeMode( SIZE_FIXED_OFFSET_FROM_PARENT ); 604 borderActor.SetSizeMode( SIZE_FIXED_OFFSET_FROM_PARENT );
599 borderActor.SetSizeModeFactor( Vector3( CLUSTER_IMAGE_BORDER_INDENT - 1.0f, CLUSTER_IMAGE_BORDER_INDENT - 1.0f, 0.0f ) * 2.0f ); 605 borderActor.SetSizeModeFactor( Vector3( CLUSTER_IMAGE_BORDER_INDENT - 1.0f, CLUSTER_IMAGE_BORDER_INDENT - 1.0f, 0.0f ) * 2.0f );
600 actor.Add( borderActor ); 606 actor.Add( borderActor );
@@ -625,7 +631,8 @@ public: @@ -625,7 +631,8 @@ public:
625 mScrollView.Add(pageView); 631 mScrollView.Add(pageView);
626 pageView.SetParentOrigin(ParentOrigin::CENTER); 632 pageView.SetParentOrigin(ParentOrigin::CENTER);
627 pageView.SetPosition(Vector3(stageSize.width * column, 0.0f, 0.0f)); 633 pageView.SetPosition(Vector3(stageSize.width * column, 0.0f, 0.0f));
628 - pageView.SetSizeMode( SIZE_EQUAL_TO_PARENT ); 634 + pageView.SetRelayoutEnabled( true );
  635 + pageView.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
629 636
630 // Create cluster actors, add them to scroll view, and set the shear effect with the given center point. 637 // Create cluster actors, add them to scroll view, and set the shear effect with the given center point.
631 Cluster cluster = CreateClusterActor(clusterType, style); 638 Cluster cluster = CreateClusterActor(clusterType, style);
examples/cube-transition-effect/cube-transition-effect-example.cpp
@@ -288,6 +288,7 @@ void CubeTransitionApp::OnInit( Application&amp; application ) @@ -288,6 +288,7 @@ void CubeTransitionApp::OnInit( Application&amp; application )
288 mCurrentImage = ImageActor::New( LoadStageFillingImage( IMAGES[mIndex] ) ); 288 mCurrentImage = ImageActor::New( LoadStageFillingImage( IMAGES[mIndex] ) );
289 mCurrentImage.SetPositionInheritanceMode( USE_PARENT_POSITION ); 289 mCurrentImage.SetPositionInheritanceMode( USE_PARENT_POSITION );
290 mCurrentImage.ApplyConstraint( mImageConstraint ); 290 mCurrentImage.ApplyConstraint( mImageConstraint );
  291 + mCurrentImage.SetRelayoutEnabled( false );
291 mParent.Add( mCurrentImage ); 292 mParent.Add( mCurrentImage );
292 293
293 mCurrentEffect = mCubeWaveEffect; 294 mCurrentEffect = mCubeWaveEffect;
@@ -332,6 +333,7 @@ void CubeTransitionApp::GoToNextImage() @@ -332,6 +333,7 @@ void CubeTransitionApp::GoToNextImage()
332 333
333 mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION); 334 mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION);
334 mNextImage.ApplyConstraint( mImageConstraint ); 335 mNextImage.ApplyConstraint( mImageConstraint );
  336 + mNextImage.SetRelayoutEnabled( false );
335 mCurrentEffect.SetTargetImage(mNextImage); 337 mCurrentEffect.SetTargetImage(mNextImage);
336 if( image.GetLoadingState() == ResourceLoadingSucceeded ) 338 if( image.GetLoadingState() == ResourceLoadingSucceeded )
337 { 339 {
examples/image-scaling-irregular-grid/image-scaling-irregular-grid-example.cpp
@@ -421,7 +421,8 @@ public: @@ -421,7 +421,8 @@ public:
421 // coordinates in a frame defined by a parent actor: 421 // coordinates in a frame defined by a parent actor:
422 422
423 Actor gridActor = Actor::New(); 423 Actor gridActor = Actor::New();
424 - gridActor.SetSizeMode( SIZE_EQUAL_TO_PARENT ); 424 + gridActor.SetRelayoutEnabled( true );
  425 + gridActor.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
425 gridActor.SetParentOrigin( ParentOrigin::CENTER ); 426 gridActor.SetParentOrigin( ParentOrigin::CENTER );
426 gridActor.SetAnchorPoint( AnchorPoint::CENTER ); 427 gridActor.SetAnchorPoint( AnchorPoint::CENTER );
427 428
examples/item-view/item-view-example.cpp
@@ -281,7 +281,8 @@ public: @@ -281,7 +281,8 @@ public:
281 mDeleteButton.SetDrawMode( DrawMode::OVERLAY ); 281 mDeleteButton.SetDrawMode( DrawMode::OVERLAY );
282 mDeleteButton.SetBackgroundImage( ResourceImage::New( TOOLBAR_IMAGE ) ); 282 mDeleteButton.SetBackgroundImage( ResourceImage::New( TOOLBAR_IMAGE ) );
283 mDeleteButton.SetButtonImage( ResourceImage::New( DELETE_IMAGE ) ); 283 mDeleteButton.SetButtonImage( ResourceImage::New( DELETE_IMAGE ) );
284 - mDeleteButton.SetSize( stageSize.width * 0.15f, stageSize.width * 0.15f ); 284 + mDeleteButton.SetResizePolicy( FIXED, ALL_DIMENSIONS );
  285 + mDeleteButton.SetPreferredSize( Vector2( stageSize.width * 0.15f, stageSize.width * 0.15f ) );
285 mDeleteButton.ClickedSignal().Connect( this, &ItemViewExample::OnDeleteButtonClicked); 286 mDeleteButton.ClickedSignal().Connect( this, &ItemViewExample::OnDeleteButtonClicked);
286 mDeleteButton.SetLeaveRequired( true ); 287 mDeleteButton.SetLeaveRequired( true );
287 mDeleteButton.SetVisible( false ); 288 mDeleteButton.SetVisible( false );
@@ -295,7 +296,8 @@ public: @@ -295,7 +296,8 @@ public:
295 mInsertButton.SetDrawMode( DrawMode::OVERLAY ); 296 mInsertButton.SetDrawMode( DrawMode::OVERLAY );
296 mInsertButton.SetBackgroundImage( ResourceImage::New( TOOLBAR_IMAGE ) ); 297 mInsertButton.SetBackgroundImage( ResourceImage::New( TOOLBAR_IMAGE ) );
297 mInsertButton.SetButtonImage( ResourceImage::New( INSERT_IMAGE ) ); 298 mInsertButton.SetButtonImage( ResourceImage::New( INSERT_IMAGE ) );
298 - mInsertButton.SetSize( stageSize.width * 0.15f, stageSize.width * 0.15f ); 299 + mInsertButton.SetResizePolicy( FIXED, ALL_DIMENSIONS );
  300 + mInsertButton.SetPreferredSize( Vector2( stageSize.width * 0.15f, stageSize.width * 0.15f ) );
299 mInsertButton.ClickedSignal().Connect( this, &ItemViewExample::OnInsertButtonClicked); 301 mInsertButton.ClickedSignal().Connect( this, &ItemViewExample::OnInsertButtonClicked);
300 mInsertButton.SetLeaveRequired( true ); 302 mInsertButton.SetLeaveRequired( true );
301 mInsertButton.SetVisible( false ); 303 mInsertButton.SetVisible( false );
@@ -309,7 +311,8 @@ public: @@ -309,7 +311,8 @@ public:
309 mReplaceButton.SetDrawMode( DrawMode::OVERLAY ); 311 mReplaceButton.SetDrawMode( DrawMode::OVERLAY );
310 mReplaceButton.SetBackgroundImage( ResourceImage::New( TOOLBAR_IMAGE ) ); 312 mReplaceButton.SetBackgroundImage( ResourceImage::New( TOOLBAR_IMAGE ) );
311 mReplaceButton.SetButtonImage( ResourceImage::New( REPLACE_IMAGE ) ); 313 mReplaceButton.SetButtonImage( ResourceImage::New( REPLACE_IMAGE ) );
312 - mReplaceButton.SetSize( stageSize.width * 0.15f, stageSize.width * 0.15f ); 314 + mReplaceButton.SetResizePolicy( FIXED, ALL_DIMENSIONS );
  315 + mReplaceButton.SetPreferredSize( Vector2( stageSize.width * 0.15f, stageSize.width * 0.15f ) );
313 mReplaceButton.ClickedSignal().Connect( this, &ItemViewExample::OnReplaceButtonClicked); 316 mReplaceButton.ClickedSignal().Connect( this, &ItemViewExample::OnReplaceButtonClicked);
314 mReplaceButton.SetLeaveRequired( true ); 317 mReplaceButton.SetLeaveRequired( true );
315 mReplaceButton.SetVisible( false ); 318 mReplaceButton.SetVisible( false );
@@ -318,6 +321,7 @@ public: @@ -318,6 +321,7 @@ public:
318 // Create the item view actor 321 // Create the item view actor
319 mImageAtlas = CreateImageAtlas(); 322 mImageAtlas = CreateImageAtlas();
320 mItemView = ItemView::New(*this); 323 mItemView = ItemView::New(*this);
  324 + mItemView.SetRelayoutEnabled( false );
321 mItemView.SetParentOrigin(ParentOrigin::CENTER); 325 mItemView.SetParentOrigin(ParentOrigin::CENTER);
322 mItemView.SetAnchorPoint(AnchorPoint::CENTER); 326 mItemView.SetAnchorPoint(AnchorPoint::CENTER);
323 327
@@ -897,6 +901,7 @@ public: // From ItemFactory @@ -897,6 +901,7 @@ public: // From ItemFactory
897 borderActor.SetStyle( ImageActor::STYLE_NINE_PATCH ); 901 borderActor.SetStyle( ImageActor::STYLE_NINE_PATCH );
898 borderActor.SetNinePatchBorder( Vector4( ITEM_IMAGE_BORDER_LEFT, ITEM_IMAGE_BORDER_TOP, ITEM_IMAGE_BORDER_RIGHT, ITEM_IMAGE_BORDER_BOTTOM ) ); 902 borderActor.SetNinePatchBorder( Vector4( ITEM_IMAGE_BORDER_LEFT, ITEM_IMAGE_BORDER_TOP, ITEM_IMAGE_BORDER_RIGHT, ITEM_IMAGE_BORDER_BOTTOM ) );
899 borderActor.SetColorMode( USE_OWN_MULTIPLY_PARENT_COLOR ); // darken with parent image-actor 903 borderActor.SetColorMode( USE_OWN_MULTIPLY_PARENT_COLOR ); // darken with parent image-actor
  904 + borderActor.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
900 borderActor.SetSizeMode( SIZE_FIXED_OFFSET_FROM_PARENT ); 905 borderActor.SetSizeMode( SIZE_FIXED_OFFSET_FROM_PARENT );
901 borderActor.SetSizeModeFactor( ITEM_BORDER_MARGIN_SIZE ); 906 borderActor.SetSizeModeFactor( ITEM_BORDER_MARGIN_SIZE );
902 actor.Add(borderActor); 907 actor.Add(borderActor);
@@ -908,6 +913,7 @@ public: // From ItemFactory @@ -908,6 +913,7 @@ public: // From ItemFactory
908 // Add a checkbox child actor; invisible until edit-mode is enabled 913 // Add a checkbox child actor; invisible until edit-mode is enabled
909 914
910 ImageActor checkbox = ImageActor::New( mWhiteImage ); 915 ImageActor checkbox = ImageActor::New( mWhiteImage );
  916 + checkbox.SetRelayoutEnabled( false );
911 checkbox.SetName( "CheckBox" ); 917 checkbox.SetName( "CheckBox" );
912 checkbox.SetColor( Vector4(0.0f,0.0f,0.0f,0.6f) ); 918 checkbox.SetColor( Vector4(0.0f,0.0f,0.0f,0.6f) );
913 checkbox.SetParentOrigin( ParentOrigin::TOP_RIGHT ); 919 checkbox.SetParentOrigin( ParentOrigin::TOP_RIGHT );
@@ -924,6 +930,7 @@ public: // From ItemFactory @@ -924,6 +930,7 @@ public: // From ItemFactory
924 actor.Add( checkbox ); 930 actor.Add( checkbox );
925 931
926 ImageActor tick = ImageActor::New( ResourceImage::New(SELECTED_IMAGE) ); 932 ImageActor tick = ImageActor::New( ResourceImage::New(SELECTED_IMAGE) );
  933 + tick.SetRelayoutEnabled( false );
927 tick.SetColorMode( USE_OWN_COLOR ); 934 tick.SetColorMode( USE_OWN_COLOR );
928 tick.SetName( "Tick" ); 935 tick.SetName( "Tick" );
929 tick.SetParentOrigin( ParentOrigin::TOP_RIGHT ); 936 tick.SetParentOrigin( ParentOrigin::TOP_RIGHT );
@@ -988,12 +995,12 @@ private: @@ -988,12 +995,12 @@ private:
988 mMenu = Toolkit::Popup::New(); 995 mMenu = Toolkit::Popup::New();
989 mMenu.SetParentOrigin( ParentOrigin::BOTTOM_LEFT ); 996 mMenu.SetParentOrigin( ParentOrigin::BOTTOM_LEFT );
990 mMenu.SetAnchorPoint( AnchorPoint::BOTTOM_LEFT ); 997 mMenu.SetAnchorPoint( AnchorPoint::BOTTOM_LEFT );
  998 + mMenu.SetResizePolicy( FIXED, ALL_DIMENSIONS );
  999 + mMenu.SetPreferredSize( Vector2( popupWidth, MENU_OPTION_HEIGHT * 2 ) );
991 mMenu.OutsideTouchedSignal().Connect( this, &ItemViewExample::HideMenu ); 1000 mMenu.OutsideTouchedSignal().Connect( this, &ItemViewExample::HideMenu );
992 - stage.Add( mMenu );  
993 1001
994 TableView tableView = TableView::New( 0, 0 ); 1002 TableView tableView = TableView::New( 0, 0 );
995 - Vector2 tableSize = Vector2( popupWidth, MENU_OPTION_HEIGHT * 2 );  
996 - tableView.SetSize( tableSize ); 1003 + tableView.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
997 mMenu.Add( tableView ); 1004 mMenu.Add( tableView );
998 1005
999 Slider slider = Slider::New(); 1006 Slider slider = Slider::New();
@@ -1002,9 +1009,9 @@ private: @@ -1002,9 +1009,9 @@ private:
1002 slider.SetProperty( Slider::Property::VALUE, mDurationSeconds ); 1009 slider.SetProperty( Slider::Property::VALUE, mDurationSeconds );
1003 slider.SetProperty( Slider::Property::VALUE_PRECISION, 2 ); 1010 slider.SetProperty( Slider::Property::VALUE_PRECISION, 2 );
1004 slider.SetProperty( Slider::Property::SHOW_POPUP, true ); 1011 slider.SetProperty( Slider::Property::SHOW_POPUP, true );
  1012 + slider.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
1005 slider.ValueChangedSignal().Connect( this, &ItemViewExample::SliderValueChange ); 1013 slider.ValueChangedSignal().Connect( this, &ItemViewExample::SliderValueChange );
1006 tableView.AddChild( slider, TableView::CellPosition( 0, 0 ) ); 1014 tableView.AddChild( slider, TableView::CellPosition( 0, 0 ) );
1007 - tableView.SetRelativeHeight( 0, 0.5f );  
1008 1015
1009 TextStyle defaultTextStyle; 1016 TextStyle defaultTextStyle;
1010 defaultTextStyle.SetFontName(DEFAULT_TEXT_STYLE_FONT_FAMILY); 1017 defaultTextStyle.SetFontName(DEFAULT_TEXT_STYLE_FONT_FAMILY);
@@ -1018,19 +1025,21 @@ private: @@ -1018,19 +1025,21 @@ private:
1018 text.SetParentOrigin( ParentOrigin::TOP_LEFT ); 1025 text.SetParentOrigin( ParentOrigin::TOP_LEFT );
1019 text.SetTextAlignment( Dali::Toolkit::Alignment::HorizontalLeft ); 1026 text.SetTextAlignment( Dali::Toolkit::Alignment::HorizontalLeft );
1020 text.SetStyleToCurrentText( defaultTextStyle ); 1027 text.SetStyleToCurrentText( defaultTextStyle );
1021 - text.SetSize( 0.0f, LABEL_TEXT_SIZE_Y );  
1022 - text.ApplyConstraint( Dali::Constraint::New<float>( Dali::Actor::Property::SIZE_WIDTH, Dali::ParentSource( Dali::Actor::Property::SIZE_WIDTH ), Dali::EqualToConstraint() ) ); 1028 + text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1029 + text.SetResizePolicy( FIXED, HEIGHT );
  1030 + text.SetPreferredSize( Vector2( 0.0f, LABEL_TEXT_SIZE_Y ) );
1023 text.SetZ( -0.9f ); 1031 text.SetZ( -0.9f );
1024 slider.Add( text ); 1032 slider.Add( text );
1025 1033
1026 Actor textContainer = Actor::New(); 1034 Actor textContainer = Actor::New();
  1035 + textContainer.SetRelayoutEnabled( true );
  1036 + textContainer.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
1027 mAlphaFunctionText = TextView::New( ALPHA_FUNCTIONS_TEXT[mAlphaFuncIndex] ); 1037 mAlphaFunctionText = TextView::New( ALPHA_FUNCTIONS_TEXT[mAlphaFuncIndex] );
1028 mAlphaFunctionText.SetAnchorPoint( ParentOrigin::CENTER ); 1038 mAlphaFunctionText.SetAnchorPoint( ParentOrigin::CENTER );
1029 mAlphaFunctionText.SetParentOrigin( ParentOrigin::CENTER ); 1039 mAlphaFunctionText.SetParentOrigin( ParentOrigin::CENTER );
1030 mAlphaFunctionText.SetTextAlignment( Toolkit::Alignment::VerticalCenter ); 1040 mAlphaFunctionText.SetTextAlignment( Toolkit::Alignment::VerticalCenter );
1031 textContainer.Add( mAlphaFunctionText ); 1041 textContainer.Add( mAlphaFunctionText );
1032 tableView.AddChild( textContainer, TableView::CellPosition( 1, 0 ) ); 1042 tableView.AddChild( textContainer, TableView::CellPosition( 1, 0 ) );
1033 - tableView.SetRelativeHeight( 0, 0.5f );  
1034 1043
1035 mTapDetector = TapGestureDetector::New(); 1044 mTapDetector = TapGestureDetector::New();
1036 mTapDetector.Attach(mAlphaFunctionText); 1045 mTapDetector.Attach(mAlphaFunctionText);
@@ -1041,10 +1050,12 @@ private: @@ -1041,10 +1050,12 @@ private:
1041 text.SetParentOrigin( ParentOrigin::TOP_LEFT ); 1050 text.SetParentOrigin( ParentOrigin::TOP_LEFT );
1042 text.SetTextAlignment( Dali::Toolkit::Alignment::HorizontalLeft ); 1051 text.SetTextAlignment( Dali::Toolkit::Alignment::HorizontalLeft );
1043 text.SetStyleToCurrentText( defaultTextStyle ); 1052 text.SetStyleToCurrentText( defaultTextStyle );
1044 - text.SetSize( 0.0f, LABEL_TEXT_SIZE_Y );  
1045 - text.ApplyConstraint( Dali::Constraint::New<float>( Dali::Actor::Property::SIZE_WIDTH, Dali::ParentSource( Dali::Actor::Property::SIZE_WIDTH ), Dali::EqualToConstraint() ) ); 1053 + text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1054 + text.SetResizePolicy( FIXED, HEIGHT );
  1055 + text.SetPreferredSize( Vector2( 0.0f, LABEL_TEXT_SIZE_Y ) );
1046 textContainer.Add( text ); 1056 textContainer.Add( text );
1047 1057
  1058 + mMenu.MarkDirtyForRelayout();
1048 mMenu.Show(); 1059 mMenu.Show();
1049 mMenuShown = true; 1060 mMenuShown = true;
1050 } 1061 }
examples/logging/logging-example.cpp
@@ -275,7 +275,7 @@ class LoggingController: public ConnectionTracker @@ -275,7 +275,7 @@ class LoggingController: public ConnectionTracker
275 mContentLayer.Add( createGroupBackground ); 275 mContentLayer.Add( createGroupBackground );
276 276
277 int buttonXDP = DP(MARGIN_SIZE); 277 int buttonXDP = DP(MARGIN_SIZE);
278 - int buttonWidthDP = (createGroupBackground.GetSize().width - DP(MARGIN_SIZE) * 3) / 2; 278 + int buttonWidthDP = (createGroupBackground.GetTargetSize().width - DP(MARGIN_SIZE) * 3) / 2;
279 279
280 { 280 {
281 Toolkit::PushButton button = Toolkit::PushButton::New(); 281 Toolkit::PushButton button = Toolkit::PushButton::New();
@@ -326,7 +326,7 @@ class LoggingController: public ConnectionTracker @@ -326,7 +326,7 @@ class LoggingController: public ConnectionTracker
326 mContentLayer.Add( timingGroupBackground ); 326 mContentLayer.Add( timingGroupBackground );
327 327
328 buttonXDP = DP(MARGIN_SIZE); 328 buttonXDP = DP(MARGIN_SIZE);
329 - buttonWidthDP = (timingGroupBackground.GetSize().width - DP(MARGIN_SIZE) * 3) / 2; 329 + buttonWidthDP = (timingGroupBackground.GetTargetSize().width - DP(MARGIN_SIZE) * 3) / 2;
330 330
331 { 331 {
332 Toolkit::PushButton button = Toolkit::PushButton::New(); 332 Toolkit::PushButton button = Toolkit::PushButton::New();
@@ -377,7 +377,7 @@ class LoggingController: public ConnectionTracker @@ -377,7 +377,7 @@ class LoggingController: public ConnectionTracker
377 mContentLayer.Add( enableGroupBackground ); 377 mContentLayer.Add( enableGroupBackground );
378 378
379 buttonXDP = DP(MARGIN_SIZE); 379 buttonXDP = DP(MARGIN_SIZE);
380 - buttonWidthDP = (enableGroupBackground.GetSize().width - DP(MARGIN_SIZE) * 3) / 2; 380 + buttonWidthDP = (enableGroupBackground.GetTargetSize().width - DP(MARGIN_SIZE) * 3) / 2;
381 381
382 { 382 {
383 Toolkit::PushButton button = Toolkit::PushButton::New(); 383 Toolkit::PushButton button = Toolkit::PushButton::New();
@@ -509,7 +509,7 @@ class LoggingController: public ConnectionTracker @@ -509,7 +509,7 @@ class LoggingController: public ConnectionTracker
509 mContentLayer.Add( vsyncGroupBackground ); 509 mContentLayer.Add( vsyncGroupBackground );
510 510
511 buttonXDP = DP(MARGIN_SIZE); 511 buttonXDP = DP(MARGIN_SIZE);
512 - buttonWidthDP = vsyncGroupBackground.GetSize().width - DP(MARGIN_SIZE) * 2; 512 + buttonWidthDP = vsyncGroupBackground.GetTargetSize().width - DP(MARGIN_SIZE) * 2;
513 513
514 { 514 {
515 Toolkit::PushButton button = Toolkit::PushButton::New(); 515 Toolkit::PushButton button = Toolkit::PushButton::New();
examples/magnifier/magnifier-example.cpp
@@ -227,12 +227,14 @@ public: @@ -227,12 +227,14 @@ public:
227 227
228 // Create magnifier (controlled by human touch) 228 // Create magnifier (controlled by human touch)
229 Layer overlay = Layer::New(); 229 Layer overlay = Layer::New();
  230 + overlay.SetRelayoutEnabled( false );
230 overlay.SetSensitive(false); 231 overlay.SetSensitive(false);
231 overlay.SetParentOrigin( ParentOrigin::CENTER ); 232 overlay.SetParentOrigin( ParentOrigin::CENTER );
232 overlay.SetSize(mStageSize); 233 overlay.SetSize(mStageSize);
233 Stage::GetCurrent().Add(overlay); 234 Stage::GetCurrent().Add(overlay);
234 235
235 mMagnifier = Toolkit::Magnifier::New(); 236 mMagnifier = Toolkit::Magnifier::New();
  237 + mMagnifier.SetRelayoutEnabled( false );
236 mMagnifier.SetSourceActor( mView.GetBackgroundLayer() ); 238 mMagnifier.SetSourceActor( mView.GetBackgroundLayer() );
237 mMagnifier.SetSize( MAGNIFIER_SIZE * mStageSize.width ); // Size of magnifier is in relation to stage width 239 mMagnifier.SetSize( MAGNIFIER_SIZE * mStageSize.width ); // Size of magnifier is in relation to stage width
238 mMagnifier.SetMagnificationFactor( MAGNIFICATION_FACTOR ); 240 mMagnifier.SetMagnificationFactor( MAGNIFICATION_FACTOR );
@@ -251,6 +253,7 @@ public: @@ -251,6 +253,7 @@ public:
251 253
252 // Create bouncing magnifier automatically bounces around screen. 254 // Create bouncing magnifier automatically bounces around screen.
253 mBouncingMagnifier = Toolkit::Magnifier::New(); 255 mBouncingMagnifier = Toolkit::Magnifier::New();
  256 + mBouncingMagnifier.SetRelayoutEnabled( false );
254 mBouncingMagnifier.SetSourceActor( mView.GetBackgroundLayer() ); 257 mBouncingMagnifier.SetSourceActor( mView.GetBackgroundLayer() );
255 mBouncingMagnifier.SetSize( MAGNIFIER_SIZE * mStageSize.width ); // Size of magnifier is in relation to stage width 258 mBouncingMagnifier.SetSize( MAGNIFIER_SIZE * mStageSize.width ); // Size of magnifier is in relation to stage width
256 mBouncingMagnifier.SetMagnificationFactor( MAGNIFICATION_FACTOR ); 259 mBouncingMagnifier.SetMagnificationFactor( MAGNIFICATION_FACTOR );
examples/page-turn-view/page-turn-view-example.cpp
@@ -78,14 +78,20 @@ class PortraitPageFactory : public PageFactory @@ -78,14 +78,20 @@ class PortraitPageFactory : public PageFactory
78 */ 78 */
79 virtual Actor NewPage( unsigned int pageId ) 79 virtual Actor NewPage( unsigned int pageId )
80 { 80 {
  81 + ImageActor page;
  82 +
81 if( pageId == 0 ) 83 if( pageId == 0 )
82 { 84 {
83 - return ImageActor::New( ResourceImage::New( BOOK_COVER_PORTRAIT ) ); 85 + page = ImageActor::New( ResourceImage::New( BOOK_COVER_PORTRAIT ) );
84 } 86 }
85 else 87 else
86 { 88 {
87 - return ImageActor::New( ResourceImage::New( PAGE_IMAGES_PORTRAIT[ (pageId-1) % NUMBER_OF_PORTRAIT_IMAGE ] ) ); 89 + page = ImageActor::New( ResourceImage::New( PAGE_IMAGES_PORTRAIT[ (pageId-1) % NUMBER_OF_PORTRAIT_IMAGE ] ) );
88 } 90 }
  91 +
  92 + page.SetRelayoutEnabled( false );
  93 +
  94 + return page;
89 } 95 }
90 }; 96 };
91 97
@@ -120,6 +126,10 @@ class LandscapePageFactory : public PageFactory @@ -120,6 +126,10 @@ class LandscapePageFactory : public PageFactory
120 pageBack = ImageActor::New( ResourceImage::New( PAGE_IMAGES_LANDSCAPE[ (imageId+1) % NUMBER_OF_LANDSCAPE_IMAGE ] ) ); 126 pageBack = ImageActor::New( ResourceImage::New( PAGE_IMAGES_LANDSCAPE[ (imageId+1) % NUMBER_OF_LANDSCAPE_IMAGE ] ) );
121 } 127 }
122 pageFront.Add(pageBack); 128 pageFront.Add(pageBack);
  129 +
  130 + pageFront.SetRelayoutEnabled( false );
  131 + pageBack.SetRelayoutEnabled( false );
  132 +
123 return pageFront; 133 return pageFront;
124 } 134 }
125 }; 135 };
@@ -223,6 +233,7 @@ void PageTurnController::OnInit( Application&amp; app ) @@ -223,6 +233,7 @@ void PageTurnController::OnInit( Application&amp; app )
223 233
224 // Create default View. 234 // Create default View.
225 mView = View::New(); 235 mView = View::New();
  236 + mView.SetRelayoutEnabled( false );
226 stage.Add( mView ); 237 stage.Add( mView );
227 238
228 Dali::Window winHandle = app.GetWindow(); 239 Dali::Window winHandle = app.GetWindow();
@@ -236,6 +247,7 @@ void PageTurnController::OnInit( Application&amp; app ) @@ -236,6 +247,7 @@ void PageTurnController::OnInit( Application&amp; app )
236 mView.OrientationAnimationStartedSignal().Connect( this, &PageTurnController::OnOrientationAnimationStarted ); 247 mView.OrientationAnimationStartedSignal().Connect( this, &PageTurnController::OnOrientationAnimationStarted );
237 248
238 mPageTurnPortraitView = PageTurnPortraitView::New( mPortraitPageFactory, stageSize ); 249 mPageTurnPortraitView = PageTurnPortraitView::New( mPortraitPageFactory, stageSize );
  250 + mPageTurnPortraitView.SetRelayoutEnabled( false );
239 mPageTurnPortraitView.SetSpineShadowParameter( Vector2(70.f, 30.f) ); 251 mPageTurnPortraitView.SetSpineShadowParameter( Vector2(70.f, 30.f) );
240 mPageTurnPortraitView.PageTurnStartedSignal().Connect( this, &PageTurnController::OnPageStartedTurn ); 252 mPageTurnPortraitView.PageTurnStartedSignal().Connect( this, &PageTurnController::OnPageStartedTurn );
241 mPageTurnPortraitView.PageTurnFinishedSignal().Connect( this, &PageTurnController::OnPageFinishedTurn ); 253 mPageTurnPortraitView.PageTurnFinishedSignal().Connect( this, &PageTurnController::OnPageFinishedTurn );
@@ -244,6 +256,7 @@ void PageTurnController::OnInit( Application&amp; app ) @@ -244,6 +256,7 @@ void PageTurnController::OnInit( Application&amp; app )
244 mPageTurnPortraitView.SetPositionInheritanceMode( USE_PARENT_POSITION ); 256 mPageTurnPortraitView.SetPositionInheritanceMode( USE_PARENT_POSITION );
245 257
246 mPageTurnLandscapeView = PageTurnLandscapeView::New( mLandscapePageFactory, Vector2(stageSize.y*0.5f, stageSize.x) ); 258 mPageTurnLandscapeView = PageTurnLandscapeView::New( mLandscapePageFactory, Vector2(stageSize.y*0.5f, stageSize.x) );
  259 + mPageTurnLandscapeView.SetRelayoutEnabled( false );
247 mPageTurnLandscapeView.PageTurnStartedSignal().Connect( this, &PageTurnController::OnPageStartedTurn ); 260 mPageTurnLandscapeView.PageTurnStartedSignal().Connect( this, &PageTurnController::OnPageStartedTurn );
248 mPageTurnLandscapeView.PageTurnFinishedSignal().Connect( this, &PageTurnController::OnPageFinishedTurn ); 261 mPageTurnLandscapeView.PageTurnFinishedSignal().Connect( this, &PageTurnController::OnPageFinishedTurn );
249 mPageTurnLandscapeView.PagePanStartedSignal().Connect( this, &PageTurnController::OnPageStartedPan ); 262 mPageTurnLandscapeView.PagePanStartedSignal().Connect( this, &PageTurnController::OnPageStartedPan );
examples/path-animation/path-animation.cpp
@@ -69,6 +69,7 @@ public: @@ -69,6 +69,7 @@ public:
69 textActor.SetSize(size.y,size.y,0.0f); 69 textActor.SetSize(size.y,size.y,0.0f);
70 70
71 Slider slider = Slider::New(); 71 Slider slider = Slider::New();
  72 + slider.SetRelayoutEnabled( false );
72 slider.SetAnchorPoint( AnchorPoint::CENTER_LEFT); 73 slider.SetAnchorPoint( AnchorPoint::CENTER_LEFT);
73 slider.SetParentOrigin( ParentOrigin::CENTER_RIGHT); 74 slider.SetParentOrigin( ParentOrigin::CENTER_RIGHT);
74 slider.SetProperty(Slider::Property::LOWER_BOUND, -1.0f ); 75 slider.SetProperty(Slider::Property::LOWER_BOUND, -1.0f );
@@ -100,6 +101,7 @@ public: @@ -100,6 +101,7 @@ public:
100 101
101 //TextInput 102 //TextInput
102 Dali::Layer controlsLayer = Dali::Layer::New(); 103 Dali::Layer controlsLayer = Dali::Layer::New();
  104 + controlsLayer.SetRelayoutEnabled( false );
103 controlsLayer.SetSize( stage.GetSize().x, stage.GetSize().y*0.3f, 0.0 ); 105 controlsLayer.SetSize( stage.GetSize().x, stage.GetSize().y*0.3f, 0.0 );
104 controlsLayer.SetPosition( 0.0f, stage.GetSize().y*0.8f, 0.0f ); 106 controlsLayer.SetPosition( 0.0f, stage.GetSize().y*0.8f, 0.0f );
105 controlsLayer.SetAnchorPoint( AnchorPoint::TOP_LEFT); 107 controlsLayer.SetAnchorPoint( AnchorPoint::TOP_LEFT);
@@ -199,6 +201,7 @@ public: @@ -199,6 +201,7 @@ public:
199 if( !mControlPoint[index] ) 201 if( !mControlPoint[index] )
200 { 202 {
201 mControlPoint[index] = Toolkit::CreateSolidColorActor(Vector4(1.0f,1.0f,1.0f,1.0f)); 203 mControlPoint[index] = Toolkit::CreateSolidColorActor(Vector4(1.0f,1.0f,1.0f,1.0f));
  204 + mControlPoint[index].SetRelayoutEnabled( false );
202 mControlPoint[index].SetParentOrigin( ParentOrigin::TOP_LEFT); 205 mControlPoint[index].SetParentOrigin( ParentOrigin::TOP_LEFT);
203 mControlPoint[index].SetAnchorPoint( AnchorPoint::CENTER ); 206 mControlPoint[index].SetAnchorPoint( AnchorPoint::CENTER );
204 mControlPoint[index].SetSize( 20.0f, 20.0f ); 207 mControlPoint[index].SetSize( 20.0f, 20.0f );
@@ -220,6 +223,7 @@ public: @@ -220,6 +223,7 @@ public:
220 if( !mControlPoint[index]) 223 if( !mControlPoint[index])
221 { 224 {
222 mControlPoint[index] = Toolkit::CreateSolidColorActor(Vector4(1.0f,1.0f,1.0f,1.0f)); 225 mControlPoint[index] = Toolkit::CreateSolidColorActor(Vector4(1.0f,1.0f,1.0f,1.0f));
  226 + mControlPoint[index].SetRelayoutEnabled( false );
223 mControlPoint[index].SetParentOrigin( ParentOrigin::TOP_LEFT); 227 mControlPoint[index].SetParentOrigin( ParentOrigin::TOP_LEFT);
224 mControlPoint[index].SetAnchorPoint( AnchorPoint::CENTER ); 228 mControlPoint[index].SetAnchorPoint( AnchorPoint::CENTER );
225 mControlPoint[index].SetSize( 20.0f, 20.0f ); 229 mControlPoint[index].SetSize( 20.0f, 20.0f );
@@ -470,6 +474,7 @@ public: @@ -470,6 +474,7 @@ public:
470 ImageAttributes attributes; 474 ImageAttributes attributes;
471 Image img = ResourceImage::New(ACTOR_IMAGE, attributes ); 475 Image img = ResourceImage::New(ACTOR_IMAGE, attributes );
472 mActor = ImageActor::New( img ); 476 mActor = ImageActor::New( img );
  477 + mActor.SetRelayoutEnabled( false );
473 mActor.SetAnchorPoint( AnchorPoint::CENTER ); 478 mActor.SetAnchorPoint( AnchorPoint::CENTER );
474 mActor.SetSize( 100, 50, 1 ); 479 mActor.SetSize( 100, 50, 1 );
475 stage.Add( mActor ); 480 stage.Add( mActor );
examples/scroll-view/scroll-view-example.cpp
@@ -226,6 +226,7 @@ private: @@ -226,6 +226,7 @@ private:
226 Vector2 stageSize = stage.GetSize(); 226 Vector2 stageSize = stage.GetSize();
227 227
228 mScrollView = ScrollView::New(); 228 mScrollView = ScrollView::New();
  229 + mScrollView.SetRelayoutEnabled( false );
229 mScrollView.SetAnchorPoint(AnchorPoint::CENTER); 230 mScrollView.SetAnchorPoint(AnchorPoint::CENTER);
230 mScrollView.SetParentOrigin(ParentOrigin::CENTER); 231 mScrollView.SetParentOrigin(ParentOrigin::CENTER);
231 mContentLayer.Add( mScrollView ); 232 mContentLayer.Add( mScrollView );
@@ -298,7 +299,8 @@ private: @@ -298,7 +299,8 @@ private:
298 Actor CreatePage() 299 Actor CreatePage()
299 { 300 {
300 Actor page = Actor::New(); 301 Actor page = Actor::New();
301 - page.SetSizeMode( SIZE_EQUAL_TO_PARENT ); 302 + page.SetRelayoutEnabled( true );
  303 + page.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
302 page.SetParentOrigin( ParentOrigin::CENTER ); 304 page.SetParentOrigin( ParentOrigin::CENTER );
303 page.SetAnchorPoint( AnchorPoint::CENTER ); 305 page.SetAnchorPoint( AnchorPoint::CENTER );
304 306
@@ -450,7 +452,8 @@ private: @@ -450,7 +452,8 @@ private:
450 void ApplyEffectToPage(Actor page) 452 void ApplyEffectToPage(Actor page)
451 { 453 {
452 page.RemoveConstraints(); 454 page.RemoveConstraints();
453 - page.SetSizeMode( SIZE_EQUAL_TO_PARENT ); 455 + page.SetRelayoutEnabled( true );
  456 + page.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
454 457
455 switch( mEffectMode ) 458 switch( mEffectMode )
456 { 459 {
@@ -566,6 +569,7 @@ private: @@ -566,6 +569,7 @@ private:
566 attributes.SetFilterMode( ImageAttributes::BoxThenLinear ); 569 attributes.SetFilterMode( ImageAttributes::BoxThenLinear );
567 Image img = ResourceImage::New(filename, attributes); 570 Image img = ResourceImage::New(filename, attributes);
568 ImageActor actor = ImageActor::New(img); 571 ImageActor actor = ImageActor::New(img);
  572 + actor.SetRelayoutEnabled( false );
569 actor.SetName( filename ); 573 actor.SetName( filename );
570 actor.SetParentOrigin(ParentOrigin::CENTER); 574 actor.SetParentOrigin(ParentOrigin::CENTER);
571 actor.SetAnchorPoint(AnchorPoint::CENTER); 575 actor.SetAnchorPoint(AnchorPoint::CENTER);
examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp
@@ -213,7 +213,8 @@ public: @@ -213,7 +213,8 @@ public:
213 mShadowView.SetName("Container"); 213 mShadowView.SetName("Container");
214 mShadowView.SetParentOrigin(ParentOrigin::CENTER); 214 mShadowView.SetParentOrigin(ParentOrigin::CENTER);
215 mShadowView.SetAnchorPoint(AnchorPoint::CENTER); 215 mShadowView.SetAnchorPoint(AnchorPoint::CENTER);
216 - mShadowView.SetSizeMode( SIZE_EQUAL_TO_PARENT ); 216 + mShadowView.SetRelayoutEnabled( true );
  217 + mShadowView.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
217 mShadowView.SetPointLightFieldOfView( Math::PI / 2.0f); 218 mShadowView.SetPointLightFieldOfView( Math::PI / 2.0f);
218 mContents.Add(mShadowView); 219 mContents.Add(mShadowView);
219 220
examples/size-negotiation/size-negotiation-example.cpp 0 โ†’ 100644
  1 +/*
  2 + * Copyright (c) 2014 Samsung Electronics Co., Ltd.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + *
  16 + */
  17 +
  18 +#include "shared/view.h"
  19 +#include <dali/dali.h>
  20 +#include <dali-toolkit/dali-toolkit.h>
  21 +
  22 +using namespace Dali;
  23 +
  24 +// Define this so that it is interchangeable
  25 +// "DP" stands for Device independent Pixels
  26 +#define DP(x) DemoHelper::ScalePointSize(x)
  27 +
  28 +struct ButtonItem
  29 +{
  30 + const char* name;
  31 + const char* text;
  32 +};
  33 +
  34 +
  35 +namespace
  36 +{
  37 +
  38 +const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "background-gradient.jpg";
  39 +const char* const TOOLBAR_IMAGE = DALI_IMAGE_DIR "top-bar.png";
  40 +
  41 +const char* const TOOLBAR_TITLE = "Size Negotiation";
  42 +const int TOOLBAR_HEIGHT = 62;
  43 +
  44 +const char* MENU_ICON_IMAGE = DALI_IMAGE_DIR "icon-cluster-none.png";
  45 +
  46 +const char* const PUSHBUTTON_BUTTON_IMAGE = DALI_IMAGE_DIR "button-up.9.png";
  47 +const char* const PUSHBUTTON_PRESS_IMAGE = DALI_IMAGE_DIR "button-down.9.png";
  48 +
  49 +const char* const POPUPS_MENU_ID = "POPUPS_MENU";
  50 +const char* const TABLEVIEW_MENU_ID = "TABLEVIEW_MENU";
  51 +
  52 +const char* const POPUP_BUTTON_EMPTY_ID = "POPUP_BUTTON_EMPTY";
  53 +const char* const POPUP_BUTTON_TITLE_ID = "POPUP_BUTTON_TITLE";
  54 +const char* const POPUP_BUTTON_BUTTONS_1_ID = "POPUP_BUTTON_BUTTONS_1";
  55 +const char* const POPUP_BUTTON_BUTTONS_2_ID = "POPUP_BUTTON_BUTTONS_2";
  56 +const char* const POPUP_BUTTON_TITLE_BUTTONS_ID = "POPUP_BUTTON_TITLE_BUTTONS";
  57 +const char* const POPUP_BUTTON_CONTENT_TEXT_ID = "POPUP_BUTTON_CONTENT_TEXT";
  58 +const char* const POPUP_BUTTON_CONTENT_IMAGE_ID = "POPUP_BUTTON_CONTENT_IMAGE";
  59 +const char* const POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID = "POPUP_BUTTON_CONTENT_IMAGE_SCALE";
  60 +const char* const POPUP_BUTTON_CONTENT_IMAGE_FIT_ID = "POPUP_BUTTON_CONTENT_IMAGE_FIT";
  61 +const char* const POPUP_BUTTON_CONTENT_IMAGE_FILL_ID = "POPUP_BUTTON_CONTENT_IMAGE_FILL";
  62 +const char* const POPUP_BUTTON_TITLE_CONTENT_TEXT_ID = "POPUP_BUTTON_TITLE_CONTENT_TEXT";
  63 +const char* const POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID = "POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS";
  64 +const char* const POPUP_BUTTON_COMPLEX_ID = "POPUP_BUTTON_COMPLEX";
  65 +
  66 +const char* const TABLEVIEW_BUTTON_EMPTY_ID = "TABLEVIEW_BUTTON_EMPTY";
  67 +const char* const TABLEVIEW_BUTTON_1CELL_ID = "TABLEVIEW_BUTTON_1CELL";
  68 +const char* const TABLEVIEW_BUTTON_3CELL_ID = "TABLEVIEW_BUTTON_3CELL";
  69 +const char* const TABLEVIEW_BUTTON_3X3CELL_ID = "TABLEVIEW_BUTTON_3X3CELL";
  70 +const char* const TABLEVIEW_BUTTON_FIXED1_ID = "TABLEVIEW_BUTTON_FIXED1";
  71 +const char* const TABLEVIEW_BUTTON_FIXED2_ID = "TABLEVIEW_BUTTON_FIXED2";
  72 +const char* const TABLEVIEW_BUTTON_FIT1_ID = "TABLEVIEW_BUTTON_FIT1";
  73 +const char* const TABLEVIEW_BUTTON_FIT2_ID = "TABLEVIEW_BUTTON_FIT2";
  74 +const char* const TABLEVIEW_BUTTON_NATURAL1_ID = "TABLEVIEW_BUTTON_NATURAL1";
  75 +const char* const TABLEVIEW_BUTTON_NATURAL2_ID = "TABLEVIEW_BUTTON_NATURAL2";
  76 +const char* const TABLEVIEW_BUTTON_NATURAL3_ID = "TABLEVIEW_BUTTON_NATURAL3";
  77 +
  78 +const char* const OKAY_BUTTON_ID = "OKAY_BUTTON";
  79 +const char* const CANCEL_BUTTON_ID = "CANCEL_BUTTON";
  80 +
  81 +const char* const CONTENT_TEXT = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
  82 +const char* const IMAGE1 = DALI_IMAGE_DIR "gallery-medium-5.jpg";
  83 +const char* const IMAGE2 = DALI_IMAGE_DIR "background-magnifier.jpg";
  84 +const char* const CHECKBOX_UNCHECKED_IMAGE = DALI_IMAGE_DIR "checkbox-unselected.png";
  85 +const char* const CHECKBOX_CHECKED_IMAGE = DALI_IMAGE_DIR "checkbox-selected.png";
  86 +
  87 +const ButtonItem MENU_ITEMS[] = {
  88 + { POPUPS_MENU_ID, "Popups" },
  89 + { TABLEVIEW_MENU_ID, "TableView" }
  90 +};
  91 +
  92 +const unsigned int MENU_ITEMS_COUNT = sizeof( MENU_ITEMS ) / sizeof( MENU_ITEMS[0] );
  93 +
  94 +const ButtonItem POPUP_BUTTON_ITEMS[] = {
  95 + { POPUP_BUTTON_COMPLEX_ID, "Complex" },
  96 + { POPUP_BUTTON_EMPTY_ID, "Empty" },
  97 + { POPUP_BUTTON_TITLE_ID, "Title" },
  98 + { POPUP_BUTTON_BUTTONS_1_ID, "1 Button" },
  99 + { POPUP_BUTTON_BUTTONS_2_ID, "2 Buttons" },
  100 + { POPUP_BUTTON_TITLE_BUTTONS_ID, "Title & Buttons" },
  101 + { POPUP_BUTTON_CONTENT_TEXT_ID, "Text" },
  102 + { POPUP_BUTTON_CONTENT_IMAGE_ID, "Image" },
  103 + { POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID, "Image Scale" },
  104 + { POPUP_BUTTON_CONTENT_IMAGE_FIT_ID, "Image Fit" },
  105 + { POPUP_BUTTON_CONTENT_IMAGE_FILL_ID, "Image Fill" },
  106 + { POPUP_BUTTON_TITLE_CONTENT_TEXT_ID, "Title Text" },
  107 + { POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID, "Title, text, buttons" }
  108 +
  109 +};
  110 +
  111 +const int POPUP_BUTTON_ITEMS_COUNT = sizeof( POPUP_BUTTON_ITEMS ) / sizeof( POPUP_BUTTON_ITEMS[0] );
  112 +
  113 +const ButtonItem TABLEVIEW_BUTTON_ITEMS[] = {
  114 + { TABLEVIEW_BUTTON_EMPTY_ID, "Empty" },
  115 + { TABLEVIEW_BUTTON_1CELL_ID, "1 Cell" },
  116 + { TABLEVIEW_BUTTON_3CELL_ID, "3 Cell" },
  117 + { TABLEVIEW_BUTTON_3X3CELL_ID, "3x3 Cells" },
  118 + { TABLEVIEW_BUTTON_FIXED1_ID, "Fixed 1" },
  119 + { TABLEVIEW_BUTTON_FIXED2_ID, "Fixed 2" },
  120 + { TABLEVIEW_BUTTON_FIT1_ID, "Fit Top Bottom" },
  121 + { TABLEVIEW_BUTTON_FIT2_ID, "Fit Middle" },
  122 + { TABLEVIEW_BUTTON_NATURAL1_ID, "Natural 1" },
  123 + { TABLEVIEW_BUTTON_NATURAL2_ID, "Natural 2" },
  124 + { TABLEVIEW_BUTTON_NATURAL3_ID, "Natural 3" },
  125 +};
  126 +
  127 +const unsigned int TABLEVIEW_BUTTON_ITEMS_COUNT = sizeof( TABLEVIEW_BUTTON_ITEMS ) / sizeof( TABLEVIEW_BUTTON_ITEMS[0] );
  128 +
  129 +} // namespace
  130 +
  131 +
  132 +
  133 +/**
  134 + * This example shows the usage of size negotiation.
  135 + */
  136 +class SizeNegotiationController: public ConnectionTracker, public Toolkit::ItemFactory
  137 +{
  138 +public:
  139 +
  140 + SizeNegotiationController( Application& application )
  141 + : mApplication( application ),
  142 + mMenuShown( false ),
  143 + mDemoState( POPUP )
  144 + {
  145 + // Connect to the Application's Init signal
  146 + mApplication.InitSignal().Connect( this, &SizeNegotiationController::Create );
  147 + }
  148 +
  149 + ~SizeNegotiationController()
  150 + {
  151 + // Nothing to do here
  152 + }
  153 +
  154 + void Create( Application& application )
  155 + {
  156 + // The Init signal is received once (only) during the Application lifetime
  157 +
  158 + Stage stage = Stage::GetCurrent();
  159 +
  160 + // Respond to key events
  161 + stage.KeyEventSignal().Connect(this, &SizeNegotiationController::OnKeyEvent);
  162 +
  163 + // Creates a default view with a default tool bar.
  164 + // The view is added to the stage.
  165 + mContentLayer = DemoHelper::CreateView( application,
  166 + mView,
  167 + mToolBar,
  168 + BACKGROUND_IMAGE,
  169 + TOOLBAR_IMAGE,
  170 + std::string("") );
  171 +
  172 + mTitleActor = Dali::Toolkit::TextView::New();
  173 + mTitleActor.SetName( "CUSTOM_TOOLBAR_TITLE" );
  174 +
  175 + SetTitle();
  176 +
  177 + // Create menu button
  178 + Toolkit::PushButton viewButton = Toolkit::PushButton::New();
  179 + viewButton.SetBackgroundImage( ResourceImage::New( MENU_ICON_IMAGE ) );
  180 + viewButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnMenu );
  181 + mToolBar.AddControl( viewButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalLeft, DemoHelper::DEFAULT_MODE_SWITCH_PADDING );
  182 +
  183 + // Add title to the tool bar.
  184 + const float padding( DemoHelper::DEFAULT_VIEW_STYLE.mToolBarPadding );
  185 + mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::Padding( padding, padding, padding, padding ) );
  186 +
  187 + mItemView = Toolkit::ItemView::New( *this );
  188 + mItemView.SetParentOrigin( ParentOrigin::CENTER );
  189 + mItemView.SetAnchorPoint( AnchorPoint::CENTER );
  190 + mItemView.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  191 +
  192 + // Use a grid layout for tests
  193 + Toolkit::GridLayoutPtr gridLayout = Toolkit::GridLayout::New();
  194 + gridLayout->SetNumberOfColumns( 2 );
  195 + gridLayout->SetTopMargin( DP(TOOLBAR_HEIGHT) + DP(20.0f) );
  196 + gridLayout->SetBottomMargin( DP(100.0f) );
  197 + gridLayout->SetRowSpacing( DP(20.0f) );
  198 + mItemView.AddLayout( *gridLayout );
  199 +
  200 + Vector2 stageSize = stage.GetSize();
  201 + float layoutWidth = Toolkit::IsHorizontal( gridLayout->GetOrientation() ) ? stageSize.height : stageSize.width;
  202 + float gridItemSize = ( layoutWidth / gridLayout->GetNumberOfColumns() ) * 0.5f;
  203 + gridLayout->SetScrollSpeedFactor( gridLayout->GetNumberOfColumns() / gridItemSize * 0.5f );
  204 +
  205 + mItemView.ActivateLayout( 0, Vector3(stageSize.x, stageSize.y, stageSize.x), 0.0f );
  206 +
  207 + mContentLayer.Add( mItemView );
  208 + }
  209 +
  210 + void SetTitle()
  211 + {
  212 + std::string subTitle = "";
  213 +
  214 + switch( mDemoState )
  215 + {
  216 + case POPUP:
  217 + {
  218 + subTitle = "Popups";
  219 + break;
  220 + }
  221 +
  222 + case TABLEVIEW:
  223 + {
  224 + subTitle = "TableView";
  225 + break;
  226 + }
  227 +
  228 + default:
  229 + {
  230 + break;
  231 + }
  232 + }
  233 +
  234 + mTitleActor.SetText( std::string( TOOLBAR_TITLE ) + ": " + subTitle );
  235 + mTitleActor.SetStyleToCurrentText( DemoHelper::GetDefaultTextStyle() );
  236 + }
  237 +
  238 + bool OnMenu( Toolkit::Button button )
  239 + {
  240 + ShowMenu();
  241 + return true;
  242 + }
  243 +
  244 + void ShowMenu()
  245 + {
  246 + Stage stage = Stage::GetCurrent();
  247 + const float popupWidth = stage.GetSize().x * 0.5f;
  248 +
  249 + mMenu = Toolkit::Popup::New();
  250 + mMenu.SetParentOrigin( ParentOrigin::TOP_LEFT );
  251 + mMenu.SetAnchorPoint( AnchorPoint::TOP_LEFT );
  252 + mMenu.HideTail();
  253 + mMenu.OutsideTouchedSignal().Connect( this, &SizeNegotiationController::HideMenu );
  254 + mMenu.SetPreferredSize( Vector2( popupWidth, 0.0f ) );
  255 + mMenu.SetResizePolicy( FIT_TO_CHILDREN, HEIGHT );
  256 +
  257 + Toolkit::TableView tableView = Toolkit::TableView::New( 0, 0 );
  258 + tableView.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  259 + tableView.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
  260 + mMenu.Add( tableView );
  261 +
  262 + for( unsigned int i = 0; i < MENU_ITEMS_COUNT; ++i )
  263 + {
  264 + Toolkit::PushButton menuButton = Toolkit::PushButton::New();
  265 + menuButton.SetName( MENU_ITEMS[ i ].name );
  266 + menuButton.SetLabel( MENU_ITEMS[ i ].text );
  267 + menuButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnMenuSelect );
  268 +
  269 + tableView.Add( menuButton );
  270 + tableView.SetFitHeight( i );
  271 + }
  272 +
  273 + // Show the menu
  274 + mMenu.Show();
  275 + mMenuShown = true;
  276 + }
  277 +
  278 + void HideMenu()
  279 + {
  280 + if( mMenu )
  281 + {
  282 + mMenu.Hide();
  283 + mMenu.Reset();
  284 + }
  285 +
  286 + mMenuShown = false;
  287 + }
  288 +
  289 + bool OnMenuSelect( Toolkit::Button button )
  290 + {
  291 + bool refresh = false;
  292 +
  293 + if( button.GetName() == POPUPS_MENU_ID )
  294 + {
  295 + if( mDemoState != POPUP )
  296 + {
  297 + refresh = true;
  298 + mDemoState = POPUP;
  299 + }
  300 + }
  301 + else if( button.GetName() == TABLEVIEW_MENU_ID )
  302 + {
  303 + if( mDemoState != TABLEVIEW )
  304 + {
  305 + refresh = true;
  306 + mDemoState = TABLEVIEW;
  307 + }
  308 + }
  309 +
  310 + if( refresh )
  311 + {
  312 + SetTitle();
  313 +
  314 + mItemView.Refresh();
  315 + }
  316 +
  317 + HideMenu();
  318 + return true;
  319 + }
  320 +
  321 + Toolkit::Popup CreatePopup()
  322 + {
  323 + Stage stage = Stage::GetCurrent();
  324 + const float POPUP_WIDTH_DP = stage.GetSize().width * 0.75f;
  325 +
  326 + Toolkit::Popup popup = Toolkit::Popup::New();
  327 + popup.SetName( "POPUP" );
  328 + popup.SetParentOrigin( ParentOrigin::CENTER );
  329 + popup.SetAnchorPoint( AnchorPoint::CENTER );
  330 + popup.SetPreferredSize( Vector2( POPUP_WIDTH_DP, 0.0f ) );
  331 + popup.HideTail();
  332 +
  333 + popup.OutsideTouchedSignal().Connect( this, &SizeNegotiationController::OnPopupOutsideTouched );
  334 +
  335 + return popup;
  336 + }
  337 +
  338 + bool OnButtonClicked( Toolkit::Button button )
  339 + {
  340 + if( button.GetName() == POPUP_BUTTON_EMPTY_ID )
  341 + {
  342 + mPopup = CreatePopup();
  343 +
  344 + // The popup is not yet on the stage so needs to be flaged as dirty
  345 + mPopup.MarkDirtyForRelayout();
  346 +
  347 + mPopup.Show();
  348 + }
  349 + else if( button.GetName() == POPUP_BUTTON_TITLE_ID )
  350 + {
  351 + mPopup = CreatePopup();
  352 + mPopup.SetTitle( "Popup!" );
  353 +
  354 + // The popup is not yet on the stage so needs to be flaged as dirty
  355 + mPopup.MarkDirtyForRelayout();
  356 +
  357 + mPopup.Show();
  358 + }
  359 + else if( button.GetName() == POPUP_BUTTON_BUTTONS_1_ID )
  360 + {
  361 + mPopup = CreatePopup();
  362 +
  363 + Toolkit::PushButton okayButton = Toolkit::PushButton::New();
  364 + okayButton.SetName( OKAY_BUTTON_ID );
  365 + okayButton.SetLabel( "OK!" );
  366 + okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
  367 + okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
  368 +
  369 + okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
  370 +
  371 + mPopup.AddButton( okayButton );
  372 +
  373 + // The popup is not yet on the stage so needs to be flaged as dirty
  374 + mPopup.MarkDirtyForRelayout();
  375 +
  376 + mPopup.Show();
  377 + }
  378 + else if( button.GetName() == POPUP_BUTTON_BUTTONS_2_ID )
  379 + {
  380 + mPopup = CreatePopup();
  381 +
  382 + Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
  383 + cancelButton.SetName( CANCEL_BUTTON_ID );
  384 + cancelButton.SetLabel( "Cancel" );
  385 + cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
  386 + cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
  387 +
  388 + cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
  389 +
  390 + mPopup.AddButton( cancelButton );
  391 +
  392 + Toolkit::PushButton okayButton = Toolkit::PushButton::New();
  393 + okayButton.SetName( OKAY_BUTTON_ID );
  394 + okayButton.SetLabel( "OK!" );
  395 + okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
  396 + okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
  397 +
  398 + okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
  399 +
  400 + mPopup.AddButton( okayButton );
  401 +
  402 + // The popup is not yet on the stage so needs to be flaged as dirty
  403 + mPopup.MarkDirtyForRelayout();
  404 +
  405 + mPopup.Show();
  406 + }
  407 + else if( button.GetName() == POPUP_BUTTON_TITLE_BUTTONS_ID )
  408 + {
  409 + mPopup = CreatePopup();
  410 + mPopup.SetTitle( "Popup!" );
  411 +
  412 + Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
  413 + cancelButton.SetName( CANCEL_BUTTON_ID );
  414 + cancelButton.SetLabel( "Cancel" );
  415 + cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
  416 + cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
  417 +
  418 + cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
  419 +
  420 + mPopup.AddButton( cancelButton );
  421 +
  422 + Toolkit::PushButton okayButton = Toolkit::PushButton::New();
  423 + okayButton.SetName( OKAY_BUTTON_ID );
  424 + okayButton.SetLabel( "OK!" );
  425 + okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
  426 + okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
  427 +
  428 + okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
  429 +
  430 + mPopup.AddButton( okayButton );
  431 +
  432 + // The popup is not yet on the stage so needs to be flaged as dirty
  433 + mPopup.MarkDirtyForRelayout();
  434 +
  435 + mPopup.Show();
  436 + }
  437 + else if( button.GetName() == POPUP_BUTTON_CONTENT_TEXT_ID )
  438 + {
  439 + mPopup = CreatePopup();
  440 +
  441 + Toolkit::TextView text = Toolkit::TextView::New();
  442 + text.SetName( "POPUP_CONTENT_TEXT" );
  443 + text.SetText( CONTENT_TEXT );
  444 + text.SetMultilinePolicy( Toolkit::TextView::SplitByWord );
  445 + text.SetWidthExceedPolicy( Toolkit::TextView::Split );
  446 + text.SetLineJustification( Toolkit::TextView::Center );
  447 + text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  448 + text.SetDimensionDependency( HEIGHT, WIDTH );
  449 + text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
  450 +
  451 + mPopup.Add( text );
  452 +
  453 + // The popup is not yet on the stage so needs to be flaged as dirty
  454 + mPopup.MarkDirtyForRelayout();
  455 +
  456 + mPopup.Show();
  457 + }
  458 + else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_ID )
  459 + {
  460 + mPopup = CreatePopup();
  461 +
  462 + ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
  463 + image.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  464 + image.SetDimensionDependency( HEIGHT, WIDTH );
  465 + image.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
  466 +
  467 + mPopup.Add( image );
  468 +
  469 + // The popup is not yet on the stage so needs to be flaged as dirty
  470 + mPopup.MarkDirtyForRelayout();
  471 +
  472 + mPopup.Show();
  473 + }
  474 + else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID )
  475 + {
  476 + mPopup = CreatePopup();
  477 +
  478 + mPopup.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  479 + mPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  480 + mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
  481 +
  482 + ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
  483 + image.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  484 +
  485 + mPopup.Add( image );
  486 +
  487 + // The popup is not yet on the stage so needs to be flaged as dirty
  488 + mPopup.MarkDirtyForRelayout();
  489 +
  490 + mPopup.Show();
  491 + }
  492 + else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FIT_ID )
  493 + {
  494 + mPopup = CreatePopup();
  495 +
  496 + mPopup.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  497 + mPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  498 + mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
  499 +
  500 + ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
  501 + image.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  502 + image.SetSizeScalePolicy( FIT_WITH_ASPECT_RATIO );
  503 +
  504 + mPopup.Add( image );
  505 +
  506 + // The popup is not yet on the stage so needs to be flaged as dirty
  507 + mPopup.MarkDirtyForRelayout();
  508 +
  509 + mPopup.Show();
  510 + }
  511 + else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FILL_ID )
  512 + {
  513 + mPopup = CreatePopup();
  514 +
  515 + mPopup.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  516 + mPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  517 + mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
  518 +
  519 + ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) );
  520 + image.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  521 + image.SetSizeScalePolicy( FILL_WITH_ASPECT_RATIO );
  522 +
  523 + mPopup.Add( image );
  524 +
  525 + // The popup is not yet on the stage so needs to be flaged as dirty
  526 + mPopup.MarkDirtyForRelayout();
  527 +
  528 + mPopup.Show();
  529 + }
  530 + else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_ID )
  531 + {
  532 + mPopup = CreatePopup();
  533 + mPopup.SetTitle( "Popup!" );
  534 +
  535 + Toolkit::TextView text = Toolkit::TextView::New();
  536 + text.SetName( "POPUP_CONTENT_TEXT" );
  537 + text.SetText( CONTENT_TEXT );
  538 + text.SetMultilinePolicy( Toolkit::TextView::SplitByWord );
  539 + text.SetWidthExceedPolicy( Toolkit::TextView::Split );
  540 + text.SetLineJustification( Toolkit::TextView::Center );
  541 + text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  542 + text.SetDimensionDependency( HEIGHT, WIDTH );
  543 + text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
  544 +
  545 + mPopup.Add( text );
  546 +
  547 + // The popup is not yet on the stage so needs to be flaged as dirty
  548 + mPopup.MarkDirtyForRelayout();
  549 +
  550 + mPopup.Show();
  551 + }
  552 + else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID )
  553 + {
  554 + mPopup = CreatePopup();
  555 + mPopup.SetTitle( "Popup!" );
  556 +
  557 + Toolkit::TextView text = Toolkit::TextView::New();
  558 + text.SetName( "POPUP_CONTENT_TEXT" );
  559 + text.SetText( CONTENT_TEXT );
  560 + text.SetMultilinePolicy( Toolkit::TextView::SplitByWord );
  561 + text.SetWidthExceedPolicy( Toolkit::TextView::Split );
  562 + text.SetLineJustification( Toolkit::TextView::Left );
  563 + text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  564 + text.SetDimensionDependency( HEIGHT, WIDTH );
  565 + text.SetPadding( Padding( 10.0f, 10.0f, 20.0f, 0.0f ) );
  566 +
  567 + mPopup.Add( text );
  568 +
  569 + Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
  570 + cancelButton.SetName( CANCEL_BUTTON_ID );
  571 + cancelButton.SetLabel( "Cancel" );
  572 + cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
  573 + cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
  574 +
  575 + cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
  576 +
  577 + mPopup.AddButton( cancelButton );
  578 +
  579 + Toolkit::PushButton okayButton = Toolkit::PushButton::New();
  580 + okayButton.SetName( OKAY_BUTTON_ID );
  581 + okayButton.SetLabel( "OK!" );
  582 + okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
  583 + okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
  584 +
  585 + okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
  586 +
  587 + mPopup.AddButton( okayButton );
  588 +
  589 + // The popup is not yet on the stage so needs to be flaged as dirty
  590 + mPopup.MarkDirtyForRelayout();
  591 +
  592 + mPopup.Show();
  593 + }
  594 + else if( button.GetName() == POPUP_BUTTON_COMPLEX_ID )
  595 + {
  596 + mPopup = CreatePopup();
  597 + mPopup.SetTitle( "Warning" );
  598 +
  599 + // Content
  600 + Toolkit::TableView content = Toolkit::TableView::New( 2, 2 );
  601 + content.SetName( "COMPLEX_TABLEVIEW" );
  602 + content.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  603 + content.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
  604 + content.SetFitHeight( 0 );
  605 + content.SetFitHeight( 1 );
  606 + content.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 0.0f ) );
  607 +
  608 + // Text
  609 + {
  610 + Toolkit::TextView text = Toolkit::TextView::New();
  611 + text.SetText( "Do you really want to quit?" );
  612 + text.SetMultilinePolicy( Toolkit::TextView::SplitByWord );
  613 + text.SetWidthExceedPolicy( Toolkit::TextView::Split );
  614 + text.SetLineJustification( Toolkit::TextView::Left );
  615 + text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  616 + text.SetDimensionDependency( HEIGHT, WIDTH );
  617 +
  618 + content.AddChild( text, Toolkit::TableView::CellPosition( 0, 0 ) );
  619 + }
  620 +
  621 + // Image
  622 + {
  623 + ImageActor image = ImageActor::New( ResourceImage::New( IMAGE1 ) );
  624 + image.SetName( "COMPLEX_IMAGE" );
  625 + image.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  626 + image.SetDimensionDependency( HEIGHT, WIDTH );
  627 + image.SetPadding( Padding( 20.0f, 0.0f, 0.0f, 0.0f ) );
  628 + content.AddChild( image, Toolkit::TableView::CellPosition( 0, 1 ) );
  629 + }
  630 +
  631 + // Text 2
  632 + {
  633 + Toolkit::TableView root = Toolkit::TableView::New( 1, 2 );
  634 + root.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  635 + root.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
  636 + root.SetFitHeight( 0 );
  637 + root.SetFitWidth( 0 );
  638 + root.SetPadding( Padding( 0.0f, 0.0f, 0.0f, 20.0f ) );
  639 +
  640 + Dali::Image unchecked = Dali::ResourceImage::New( CHECKBOX_UNCHECKED_IMAGE );
  641 + Dali::Image checked = Dali::ResourceImage::New( CHECKBOX_CHECKED_IMAGE );
  642 + Toolkit::CheckBoxButton checkBox = Toolkit::CheckBoxButton::New();
  643 + checkBox.SetBackgroundImage( unchecked );
  644 + checkBox.SetSelectedImage( checked );
  645 + checkBox.SetPreferredSize( Vector2( 48, 48 ) );
  646 + checkBox.SetResizePolicy( FIXED, ALL_DIMENSIONS );
  647 +
  648 + root.AddChild( checkBox, Toolkit::TableView::CellPosition( 0, 0 ) );
  649 +
  650 + Toolkit::TextView text = Toolkit::TextView::New();
  651 + text.SetText( "Don't show again" );
  652 + text.SetLineJustification( Toolkit::TextView::Left );
  653 + Actor textActor = text;
  654 + textActor.SetPadding( Padding( 20.0f, 0.0f, 0.0f, 10.0f ) );
  655 +
  656 + root.AddChild( text, Toolkit::TableView::CellPosition( 0, 1 ) );
  657 +
  658 + content.AddChild( root, Toolkit::TableView::CellPosition( 1, 0, 0, 2 ) ); // Column span 2
  659 + }
  660 +
  661 + mPopup.Add( content );
  662 +
  663 + // Buttons
  664 + Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
  665 + cancelButton.SetName( CANCEL_BUTTON_ID );
  666 + cancelButton.SetLabel( "Cancel" );
  667 + cancelButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
  668 + cancelButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
  669 +
  670 + cancelButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
  671 +
  672 + mPopup.AddButton( cancelButton );
  673 +
  674 + Toolkit::PushButton okayButton = Toolkit::PushButton::New();
  675 + okayButton.SetName( OKAY_BUTTON_ID );
  676 + okayButton.SetLabel( "OK!" );
  677 + okayButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
  678 + okayButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
  679 +
  680 + okayButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
  681 +
  682 + mPopup.AddButton( okayButton );
  683 +
  684 + // The popup is not yet on the stage so needs to be flaged as dirty
  685 + mPopup.MarkDirtyForRelayout();
  686 +
  687 + mPopup.Show();
  688 + }
  689 + else if( button.GetName() == TABLEVIEW_BUTTON_EMPTY_ID )
  690 + {
  691 + mPopup = CreatePopup();
  692 + mPopup.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  693 + mPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  694 + mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
  695 +
  696 +
  697 + Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
  698 + table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  699 +
  700 + mPopup.Add( table );
  701 +
  702 + // The popup is not yet on the stage so needs to be flaged as dirty
  703 + mPopup.MarkDirtyForRelayout();
  704 +
  705 + mPopup.Show();
  706 + }
  707 + else if( button.GetName() == TABLEVIEW_BUTTON_1CELL_ID )
  708 + {
  709 + mPopup = CreatePopup();
  710 + mPopup.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  711 + mPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  712 + mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
  713 +
  714 +
  715 + Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
  716 + table.SetName( "TABLEVIEW_BUTTON_1CELL_ID" );
  717 + table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  718 +
  719 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
  720 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  721 + table.Add( backing );
  722 +
  723 + mPopup.Add( table );
  724 +
  725 + // The popup is not yet on the stage so needs to be flaged as dirty
  726 + mPopup.MarkDirtyForRelayout();
  727 +
  728 + mPopup.Show();
  729 + }
  730 + else if( button.GetName() == TABLEVIEW_BUTTON_3CELL_ID )
  731 + {
  732 + mPopup = CreatePopup();
  733 + mPopup.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  734 + mPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  735 + mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
  736 +
  737 +
  738 + Toolkit::TableView table = Toolkit::TableView::New( 0, 0 );
  739 + table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  740 +
  741 + {
  742 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
  743 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  744 + table.Add( backing );
  745 + }
  746 + {
  747 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
  748 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  749 + table.Add( backing );
  750 + }
  751 + {
  752 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
  753 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  754 + table.Add( backing );
  755 + }
  756 +
  757 + mPopup.Add( table );
  758 +
  759 + // The popup is not yet on the stage so needs to be flaged as dirty
  760 + mPopup.MarkDirtyForRelayout();
  761 +
  762 + mPopup.Show();
  763 + }
  764 + else if( button.GetName() == TABLEVIEW_BUTTON_3X3CELL_ID )
  765 + {
  766 + mPopup = CreatePopup();
  767 + mPopup.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  768 + mPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  769 + mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
  770 +
  771 +
  772 + Toolkit::TableView table = Toolkit::TableView::New( 3, 3 );
  773 + table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  774 +
  775 + // Column 0
  776 + {
  777 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
  778 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  779 + table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 0 ) );
  780 + }
  781 + {
  782 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
  783 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  784 + table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 0 ) );
  785 + }
  786 + {
  787 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
  788 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  789 + table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 0 ) );
  790 + }
  791 +
  792 + // Column 1
  793 + {
  794 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 1.0f, 1.0f ) );
  795 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  796 + table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 1 ) );
  797 + }
  798 + {
  799 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 1.0f, 1.0f ) );
  800 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  801 + table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 1 ) );
  802 + }
  803 + {
  804 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 0.0f, 1.0f, 1.0f ) );
  805 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  806 + table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 1 ) );
  807 + }
  808 +
  809 + // Column 2
  810 + {
  811 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 0.0f, 0.0f, 1.0f ) );
  812 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  813 + table.AddChild( backing, Toolkit::TableView::CellPosition( 0, 2 ) );
  814 + }
  815 + {
  816 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.5f, 0.5f, 0.5f, 1.0f ) );
  817 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  818 + table.AddChild( backing, Toolkit::TableView::CellPosition( 1, 2 ) );
  819 + }
  820 + {
  821 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.5f, 0.0f, 1.0f ) );
  822 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  823 + table.AddChild( backing, Toolkit::TableView::CellPosition( 2, 2 ) );
  824 + }
  825 +
  826 + mPopup.Add( table );
  827 +
  828 + // The popup is not yet on the stage so needs to be flaged as dirty
  829 + mPopup.MarkDirtyForRelayout();
  830 +
  831 + mPopup.Show();
  832 + }
  833 + else if( button.GetName() == TABLEVIEW_BUTTON_FIXED1_ID )
  834 + {
  835 + mPopup = CreatePopup();
  836 + mPopup.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  837 + mPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  838 + mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
  839 +
  840 +
  841 + Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
  842 + table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  843 + table.SetFixedHeight( 0, 50.0f );
  844 +
  845 + {
  846 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
  847 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  848 + TextActor text = TextActor::New( "Fixed" );
  849 + text.SetAnchorPoint( AnchorPoint::CENTER );
  850 + text.SetParentOrigin( ParentOrigin::CENTER );
  851 + backing.Add( text );
  852 + table.Add( backing );
  853 + }
  854 + {
  855 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
  856 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  857 + TextActor text = TextActor::New( "Fill" );
  858 + text.SetAnchorPoint( AnchorPoint::CENTER );
  859 + text.SetParentOrigin( ParentOrigin::CENTER );
  860 + backing.Add( text );
  861 + table.Add( backing );
  862 + }
  863 + {
  864 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
  865 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  866 + TextActor text = TextActor::New( "Fill" );
  867 + text.SetAnchorPoint( AnchorPoint::CENTER );
  868 + text.SetParentOrigin( ParentOrigin::CENTER );
  869 + backing.Add( text );
  870 + table.Add( backing );
  871 + }
  872 +
  873 + mPopup.Add( table );
  874 +
  875 + // The popup is not yet on the stage so needs to be flaged as dirty
  876 + mPopup.MarkDirtyForRelayout();
  877 +
  878 + mPopup.Show();
  879 + }
  880 + else if( button.GetName() == TABLEVIEW_BUTTON_FIXED2_ID )
  881 + {
  882 + mPopup = CreatePopup();
  883 + mPopup.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  884 + mPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  885 + mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
  886 +
  887 +
  888 + Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
  889 + table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  890 + table.SetFixedHeight( 0, 50.0f );
  891 + table.SetFixedHeight( 2, 50.0f );
  892 +
  893 + {
  894 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
  895 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  896 + TextActor text = TextActor::New( "Fixed" );
  897 + text.SetAnchorPoint( AnchorPoint::CENTER );
  898 + text.SetParentOrigin( ParentOrigin::CENTER );
  899 + backing.Add( text );
  900 + table.Add( backing );
  901 + }
  902 + {
  903 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
  904 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  905 + TextActor text = TextActor::New( "Fill" );
  906 + text.SetAnchorPoint( AnchorPoint::CENTER );
  907 + text.SetParentOrigin( ParentOrigin::CENTER );
  908 + backing.Add( text );
  909 + table.Add( backing );
  910 + }
  911 + {
  912 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
  913 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  914 + TextActor text = TextActor::New( "Fixed" );
  915 + text.SetAnchorPoint( AnchorPoint::CENTER );
  916 + text.SetParentOrigin( ParentOrigin::CENTER );
  917 + backing.Add( text );
  918 + table.Add( backing );
  919 + }
  920 +
  921 + mPopup.Add( table );
  922 +
  923 + // The popup is not yet on the stage so needs to be flaged as dirty
  924 + mPopup.MarkDirtyForRelayout();
  925 +
  926 + mPopup.Show();
  927 + }
  928 + else if( button.GetName() == TABLEVIEW_BUTTON_FIT1_ID )
  929 + {
  930 + mPopup = CreatePopup();
  931 + mPopup.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  932 + mPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  933 + mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
  934 +
  935 +
  936 + Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
  937 + table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  938 + table.SetFitHeight( 0 );
  939 + table.SetFitHeight( 2 );
  940 +
  941 + {
  942 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
  943 + backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  944 + backing.SetResizePolicy( FIXED, HEIGHT );
  945 + backing.SetPreferredSize( Vector2( 0.0f, 100.0f ) );
  946 +
  947 + TextActor text = TextActor::New( "Fit" );
  948 + text.SetAnchorPoint( AnchorPoint::CENTER );
  949 + text.SetParentOrigin( ParentOrigin::CENTER );
  950 + backing.Add( text );
  951 +
  952 + table.Add( backing );
  953 + }
  954 + {
  955 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
  956 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  957 +
  958 + TextActor text = TextActor::New( "Fill" );
  959 + text.SetAnchorPoint( AnchorPoint::CENTER );
  960 + text.SetParentOrigin( ParentOrigin::CENTER );
  961 + backing.Add( text );
  962 +
  963 + table.Add( backing );
  964 + }
  965 + {
  966 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
  967 + backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  968 + backing.SetResizePolicy( FIXED, HEIGHT );
  969 + backing.SetPreferredSize( Vector2( 0.0f, 100.0f ) );
  970 +
  971 + TextActor text = TextActor::New( "Fit" );
  972 + text.SetAnchorPoint( AnchorPoint::CENTER );
  973 + text.SetParentOrigin( ParentOrigin::CENTER );
  974 + backing.Add( text );
  975 +
  976 + table.Add( backing );
  977 + }
  978 +
  979 + mPopup.Add( table );
  980 +
  981 + // The popup is not yet on the stage so needs to be flaged as dirty
  982 + mPopup.MarkDirtyForRelayout();
  983 +
  984 + mPopup.Show();
  985 + }
  986 + else if( button.GetName() == TABLEVIEW_BUTTON_FIT2_ID )
  987 + {
  988 + mPopup = CreatePopup();
  989 + mPopup.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  990 + mPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  991 + mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) );
  992 +
  993 +
  994 + Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
  995 + table.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  996 + table.SetFitHeight( 1 );
  997 +
  998 + {
  999 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
  1000 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  1001 +
  1002 + TextActor text = TextActor::New( "Fill" );
  1003 + text.SetAnchorPoint( AnchorPoint::CENTER );
  1004 + text.SetParentOrigin( ParentOrigin::CENTER );
  1005 + backing.Add( text );
  1006 +
  1007 + table.Add( backing );
  1008 + }
  1009 + {
  1010 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
  1011 + backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1012 + backing.SetResizePolicy( FIXED, HEIGHT );
  1013 + backing.SetPreferredSize( Vector2( 0.0f, 200.0f ) );
  1014 +
  1015 + TextActor text = TextActor::New( "Fit" );
  1016 + text.SetAnchorPoint( AnchorPoint::CENTER );
  1017 + text.SetParentOrigin( ParentOrigin::CENTER );
  1018 + backing.Add( text );
  1019 +
  1020 + table.Add( backing );
  1021 + }
  1022 + {
  1023 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
  1024 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  1025 +
  1026 + TextActor text = TextActor::New( "Fill" );
  1027 + text.SetAnchorPoint( AnchorPoint::CENTER );
  1028 + text.SetParentOrigin( ParentOrigin::CENTER );
  1029 + backing.Add( text );
  1030 +
  1031 + table.Add( backing );
  1032 + }
  1033 +
  1034 + mPopup.Add( table );
  1035 +
  1036 + // The popup is not yet on the stage so needs to be flaged as dirty
  1037 + mPopup.MarkDirtyForRelayout();
  1038 +
  1039 + mPopup.Show();
  1040 + }
  1041 + else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL1_ID )
  1042 + {
  1043 + mPopup = CreatePopup();
  1044 + mPopup.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1045 + mPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  1046 + mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
  1047 + mPopup.SetResizePolicy( FIT_TO_CHILDREN, HEIGHT );
  1048 +
  1049 + Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
  1050 + table.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1051 + table.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
  1052 + table.SetFitHeight( 0 );
  1053 + table.SetFitHeight( 1 );
  1054 + table.SetFitHeight( 2 );
  1055 +
  1056 + {
  1057 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
  1058 + backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1059 + backing.SetResizePolicy( FIXED, HEIGHT );
  1060 + backing.SetPreferredSize( Vector2( 0.0f, 100.0f ) );
  1061 +
  1062 + TextActor text = TextActor::New( "Fit" );
  1063 + text.SetAnchorPoint( AnchorPoint::CENTER );
  1064 + text.SetParentOrigin( ParentOrigin::CENTER );
  1065 + backing.Add( text );
  1066 +
  1067 + table.Add( backing );
  1068 + }
  1069 + {
  1070 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
  1071 + backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1072 + backing.SetResizePolicy( FIXED, HEIGHT );
  1073 + backing.SetPreferredSize( Vector2( 0.0f, 200.0f ) );
  1074 +
  1075 + TextActor text = TextActor::New( "Fit" );
  1076 + text.SetAnchorPoint( AnchorPoint::CENTER );
  1077 + text.SetParentOrigin( ParentOrigin::CENTER );
  1078 + backing.Add( text );
  1079 +
  1080 + table.Add( backing );
  1081 + }
  1082 + {
  1083 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
  1084 + backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1085 + backing.SetResizePolicy( FIXED, HEIGHT );
  1086 + backing.SetPreferredSize( Vector2( 0.0f, 300.0f ) );
  1087 +
  1088 + TextActor text = TextActor::New( "Fit" );
  1089 + text.SetAnchorPoint( AnchorPoint::CENTER );
  1090 + text.SetParentOrigin( ParentOrigin::CENTER );
  1091 + backing.Add( text );
  1092 +
  1093 + table.Add( backing );
  1094 + }
  1095 +
  1096 + mPopup.Add( table );
  1097 +
  1098 + // The popup is not yet on the stage so needs to be flaged as dirty
  1099 + mPopup.MarkDirtyForRelayout();
  1100 +
  1101 + mPopup.Show();
  1102 + }
  1103 + else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL2_ID )
  1104 + {
  1105 + mPopup = CreatePopup();
  1106 + mPopup.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1107 + mPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  1108 + mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
  1109 + mPopup.SetResizePolicy( FIT_TO_CHILDREN, HEIGHT );
  1110 +
  1111 + Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
  1112 + table.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1113 + table.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
  1114 + table.SetFitHeight( 0 );
  1115 + table.SetFitHeight( 1 );
  1116 +
  1117 + {
  1118 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
  1119 + backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1120 + backing.SetResizePolicy( FIXED, HEIGHT );
  1121 + backing.SetPreferredSize( Vector2( 0.0f, 100.0f ) );
  1122 +
  1123 + TextActor text = TextActor::New( "Fit" );
  1124 + text.SetAnchorPoint( AnchorPoint::CENTER );
  1125 + text.SetParentOrigin( ParentOrigin::CENTER );
  1126 + backing.Add( text );
  1127 +
  1128 + table.Add( backing );
  1129 + }
  1130 + {
  1131 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
  1132 + backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1133 + backing.SetResizePolicy( FIXED, HEIGHT );
  1134 + backing.SetPreferredSize( Vector2( 0.0f, 200.0f ) );
  1135 +
  1136 + TextActor text = TextActor::New( "Fit" );
  1137 + text.SetAnchorPoint( AnchorPoint::CENTER );
  1138 + text.SetParentOrigin( ParentOrigin::CENTER );
  1139 + backing.Add( text );
  1140 +
  1141 + table.Add( backing );
  1142 + }
  1143 +
  1144 + mPopup.Add( table );
  1145 +
  1146 + // The popup is not yet on the stage so needs to be flaged as dirty
  1147 + mPopup.MarkDirtyForRelayout();
  1148 +
  1149 + mPopup.Show();
  1150 + }
  1151 + else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL3_ID )
  1152 + {
  1153 + mPopup = CreatePopup();
  1154 + mPopup.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1155 + mPopup.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
  1156 + mPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
  1157 + mPopup.SetResizePolicy( FIT_TO_CHILDREN, HEIGHT );
  1158 +
  1159 + Toolkit::TableView table = Toolkit::TableView::New( 3, 1 );
  1160 + table.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1161 + table.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
  1162 + table.SetFixedHeight( 0, 20.0f );
  1163 + table.SetFitHeight( 1 );
  1164 +
  1165 + {
  1166 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
  1167 + backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
  1168 +
  1169 + TextActor text = TextActor::New( "Fixed" );
  1170 + text.SetAnchorPoint( AnchorPoint::CENTER );
  1171 + text.SetParentOrigin( ParentOrigin::CENTER );
  1172 + backing.Add( text );
  1173 +
  1174 + table.Add( backing );
  1175 + }
  1176 + {
  1177 + Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
  1178 + backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  1179 + backing.SetResizePolicy( FIXED, HEIGHT );
  1180 + backing.SetPreferredSize( Vector2( 0.0f, 200.0f ) );
  1181 +
  1182 + TextActor text = TextActor::New( "Fit" );
  1183 + text.SetAnchorPoint( AnchorPoint::CENTER );
  1184 + text.SetParentOrigin( ParentOrigin::CENTER );
  1185 + backing.Add( text );
  1186 +
  1187 + table.Add( backing );
  1188 + }
  1189 +
  1190 + mPopup.Add( table );
  1191 +
  1192 + // The popup is not yet on the stage so needs to be flaged as dirty
  1193 + mPopup.MarkDirtyForRelayout();
  1194 +
  1195 + mPopup.Show();
  1196 + }
  1197 + else if( button.GetName() == OKAY_BUTTON_ID || button.GetName() == CANCEL_BUTTON_ID )
  1198 + {
  1199 + if( mPopup )
  1200 + {
  1201 + mPopup.Hide();
  1202 + }
  1203 + }
  1204 +
  1205 + return true;
  1206 + }
  1207 +
  1208 + void OnPopupOutsideTouched()
  1209 + {
  1210 + if( mPopup )
  1211 + {
  1212 + mPopup.Hide();
  1213 + }
  1214 + }
  1215 +
  1216 + void OnKeyEvent( const KeyEvent& event )
  1217 + {
  1218 + if( event.state == KeyEvent::Down )
  1219 + {
  1220 + if( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) )
  1221 + {
  1222 + // Exit application when click back or escape.
  1223 + mApplication.Quit();
  1224 + }
  1225 + }
  1226 + }
  1227 +
  1228 +public: // From ItemFactory
  1229 +
  1230 + /**
  1231 + * @brief Return the number of items to display in the item view
  1232 + *
  1233 + * @return Return the number of items to display
  1234 + */
  1235 + virtual unsigned int GetNumberOfItems()
  1236 + {
  1237 + switch( mDemoState )
  1238 + {
  1239 + case POPUP:
  1240 + {
  1241 + return POPUP_BUTTON_ITEMS_COUNT;
  1242 + }
  1243 +
  1244 + case TABLEVIEW:
  1245 + {
  1246 + return TABLEVIEW_BUTTON_ITEMS_COUNT;
  1247 + }
  1248 +
  1249 + default:
  1250 + {
  1251 + break;
  1252 + }
  1253 + }
  1254 +
  1255 + return 0;
  1256 + }
  1257 +
  1258 + /**
  1259 + * @brief Create a new item to populate the item view with
  1260 + *
  1261 + * @param[in] itemId The index of the item to create
  1262 + * @return Return the created actor for the given ID
  1263 + */
  1264 + virtual Actor NewItem(unsigned int itemId)
  1265 + {
  1266 + const ButtonItem* buttonDataArray = NULL;
  1267 + switch( mDemoState )
  1268 + {
  1269 + case POPUP:
  1270 + {
  1271 + buttonDataArray = POPUP_BUTTON_ITEMS;
  1272 + break;
  1273 + }
  1274 +
  1275 + case TABLEVIEW:
  1276 + {
  1277 + buttonDataArray = TABLEVIEW_BUTTON_ITEMS;
  1278 + break;
  1279 + }
  1280 +
  1281 + default:
  1282 + {
  1283 + break;
  1284 + }
  1285 + }
  1286 +
  1287 + if( buttonDataArray )
  1288 + {
  1289 + Toolkit::PushButton popupButton = Toolkit::PushButton::New();
  1290 + popupButton.SetName( buttonDataArray[ itemId ].name );
  1291 + popupButton.SetLabel( buttonDataArray[ itemId ].text );
  1292 + popupButton.SetResizePolicy( USE_NATURAL_SIZE, ALL_DIMENSIONS );
  1293 +
  1294 + popupButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
  1295 + popupButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
  1296 +
  1297 + popupButton.ClickedSignal().Connect( this, &SizeNegotiationController::OnButtonClicked );
  1298 +
  1299 + return popupButton;
  1300 + }
  1301 +
  1302 + return Actor();
  1303 + }
  1304 +
  1305 +private:
  1306 +
  1307 + enum DemoState
  1308 + {
  1309 + POPUP,
  1310 + TABLEVIEW
  1311 + };
  1312 +
  1313 + Application& mApplication;
  1314 + Toolkit::View mView; ///< The View instance.
  1315 + Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
  1316 + Layer mContentLayer; ///< Content layer
  1317 +
  1318 + Toolkit::TextView mTitleActor; ///< Title text
  1319 +
  1320 + Toolkit::Popup mMenu; ///< The navigation menu
  1321 + bool mMenuShown; ///< If the navigation menu is currently being displayed or not
  1322 +
  1323 + Toolkit::Popup mPopup;
  1324 +
  1325 + Toolkit::ItemView mItemView; ///< ItemView to hold test images
  1326 +
  1327 + DemoState mDemoState;
  1328 +};
  1329 +
  1330 +void RunTest( Application& application )
  1331 +{
  1332 + SizeNegotiationController test( application );
  1333 +
  1334 + application.MainLoop();
  1335 +}
  1336 +
  1337 +// Entry point for Linux & SLP applications
  1338 +//
  1339 +int main( int argc, char **argv )
  1340 +{
  1341 + Application application = Application::New( &argc, &argv );
  1342 +
  1343 + RunTest( application );
  1344 +
  1345 + return 0;
  1346 +}
examples/text-view/text-view-example.cpp
@@ -75,14 +75,14 @@ const TableString TABLE_STRINGS[] = { { &quot;HelveticaNue&quot;, &quot;Regular&quot;, 8.0f, @@ -75,14 +75,14 @@ const TableString TABLE_STRINGS[] = { { &quot;HelveticaNue&quot;, &quot;Regular&quot;, 8.0f,
75 { "HelveticaNue", "Regular", 12.0f, Dali::TextStyle::REGULAR, Vector4( 0.5f, 1.0f, 1.0f, 1.0f ), "Hola", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 90.0f, { 2, 0, 4, 2 } }, 75 { "HelveticaNue", "Regular", 12.0f, Dali::TextStyle::REGULAR, Vector4( 0.5f, 1.0f, 1.0f, 1.0f ), "Hola", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 90.0f, { 2, 0, 4, 2 } },
76 { "HelveticaNue", "Regular", 18.0f, Dali::TextStyle::BOLD, Vector4( 0.5f, 1.0f, 0.5f, 1.0f ), "Bonjour", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 0.0f, { 2, 2, 2, 4 } }, 76 { "HelveticaNue", "Regular", 18.0f, Dali::TextStyle::BOLD, Vector4( 0.5f, 1.0f, 0.5f, 1.0f ), "Bonjour", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 0.0f, { 2, 2, 2, 4 } },
77 { "HelveticaNue", "Regular", 12.0f, Dali::TextStyle::REGULAR, Vector4( 1.0f, 1.0f, 0.5f, 1.0f ), "Ciao", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 0.0f, { 2, 7, 2, 3 } }, 77 { "HelveticaNue", "Regular", 12.0f, Dali::TextStyle::REGULAR, Vector4( 1.0f, 1.0f, 0.5f, 1.0f ), "Ciao", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 0.0f, { 2, 7, 2, 3 } },
78 - { "HelveticaNue", "Regular", 26.0f, Dali::TextStyle::EXTRABLACK, Vector4( 0.5f, 0.0f, 0.0f, 1.0f ), "Hello", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 0.0f, { 4, 2, 1, 6 } }, 78 + { "HelveticaNue", "Regular", 23.0f, Dali::TextStyle::EXTRABLACK, Vector4( 0.5f, 0.0f, 0.0f, 1.0f ), "์•ˆ๋…•ํ•˜์„ธ์š”", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 20.0f, 0.0f, { 4, 3, 1, 6 } },
79 { "HelveticaNue", "Regular", 8.0f, Dali::TextStyle::DEMIBOLD, Vector4( 0.0f, 0.5f, 0.0f, 1.0f ), "Top of the morning to you", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 90.0f, { 4, 10, 8, 2 } }, 79 { "HelveticaNue", "Regular", 8.0f, Dali::TextStyle::DEMIBOLD, Vector4( 0.0f, 0.5f, 0.0f, 1.0f ), "Top of the morning to you", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 90.0f, { 4, 10, 8, 2 } },
80 - { "HelveticaNue", "Regular", 13.0f, Dali::TextStyle::DEMIBOLD, Vector4( 1.0f, 1.0f, 1.0f, 1.0f ), "เคนเฅˆเคฒเฅ‹", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 0.0f, { 6, 1, 1, 3 } }, 80 + { "HelveticaNue", "Regular", 13.0f, Dali::TextStyle::DEMIBOLD, Vector4( 1.0f, 1.0f, 1.0f, 1.0f ), "เคนเฅˆเคฒเฅ‹", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 0.0f, { 6, 1, 1, 3 } },
81 { "HelveticaNue", "Regular", 8.0f, Dali::TextStyle::DEMIBOLD, Vector4( 1.0f, 1.0f, 0.0f, 1.0f ), "เธชเธงเธฑเธชเธ”เธต", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 90.0f, { 6, 5, 2, 1 } }, 81 { "HelveticaNue", "Regular", 8.0f, Dali::TextStyle::DEMIBOLD, Vector4( 1.0f, 1.0f, 0.0f, 1.0f ), "เธชเธงเธฑเธชเธ”เธต", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 90.0f, { 6, 5, 2, 1 } },
82 { "HelveticaNue", "Regular", 18.0f, Dali::TextStyle::REGULAR, Vector4( 0.0f, 1.0f, 1.0f, 1.0f ), "ไฝ ๅฅฝ", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalBottom, 10.0f, 0.0f, { 6, 6, 1, 3 } }, 82 { "HelveticaNue", "Regular", 18.0f, Dali::TextStyle::REGULAR, Vector4( 0.0f, 1.0f, 1.0f, 1.0f ), "ไฝ ๅฅฝ", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalBottom, 10.0f, 0.0f, { 6, 6, 1, 3 } },
83 { "HelveticaNue", "Regular", 34.0f, Dali::TextStyle::REGULAR, Vector4( 0.0f, 0.0f, 1.0f, 1.0f ), "G'day", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 0.0f, { 7, 0, 2, 10 } }, 83 { "HelveticaNue", "Regular", 34.0f, Dali::TextStyle::REGULAR, Vector4( 0.0f, 0.0f, 1.0f, 1.0f ), "G'day", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 0.0f, { 7, 0, 2, 10 } },
84 { "HelveticaNue", "Regular", 16.0f, Dali::TextStyle::EXTRABLACK, Vector4( 0.0f, 0.5f, 1.0f, 1.0f ), "ู…ุฑุญุจุง", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 0.0f, { 9, 1, 2, 4 } }, 84 { "HelveticaNue", "Regular", 16.0f, Dali::TextStyle::EXTRABLACK, Vector4( 0.0f, 0.5f, 1.0f, 1.0f ), "ู…ุฑุญุจุง", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 0.0f, { 9, 1, 2, 4 } },
85 - { "HelveticaNue", "Regular", 10.0f, Dali::TextStyle::EXTRABLACK, Vector4( 1.0f, 0.0f, 0.0f, 1.0f ), "ใ“ใ‚“ใซใกใฏ", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 0.0f, { 10, 0, 2, 6 } }, 85 + { "HelveticaNue", "Regular", 10.0f, Dali::TextStyle::EXTRABLACK, Vector4( 1.0f, 0.0f, 0.0f, 1.0f ), "ใ“ใ‚“ใซใกใฏ", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 0.0f, { 10, 0, 2, 6 } },
86 { "HelveticaNue", "Regular", 14.0f, Dali::TextStyle::REGULAR, Vector4( 0.0f, 1.0f, 0.0f, 1.0f ), "aloha", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 0.0f, { 10, 6, 2, 4 } } 86 { "HelveticaNue", "Regular", 14.0f, Dali::TextStyle::REGULAR, Vector4( 0.0f, 1.0f, 0.0f, 1.0f ), "aloha", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 0.0f, { 10, 6, 2, 4 } }
87 }; 87 };
88 88
@@ -132,7 +132,7 @@ public: @@ -132,7 +132,7 @@ public:
132 textContainer.SetParentOrigin( ParentOrigin::TOP_LEFT ); 132 textContainer.SetParentOrigin( ParentOrigin::TOP_LEFT );
133 textContainer.SetAnchorPoint( AnchorPoint::TOP_LEFT ); 133 textContainer.SetAnchorPoint( AnchorPoint::TOP_LEFT );
134 textContainer.SetPosition( 0, TOOLBAR_HEIGHT ); 134 textContainer.SetPosition( 0, TOOLBAR_HEIGHT );
135 - textContainer.SetSize( stage.GetSize().width, stage.GetSize().height - TOOLBAR_HEIGHT ); 135 + textContainer.SetPreferredSize( Vector2( stage.GetSize().width, stage.GetSize().height - TOOLBAR_HEIGHT ) );
136 136
137 mContentLayer.Add( textContainer ); 137 mContentLayer.Add( textContainer );
138 138
@@ -151,10 +151,12 @@ public: @@ -151,10 +151,12 @@ public:
151 Toolkit::TextView textView = Toolkit::TextView::New( tableString.text ); 151 Toolkit::TextView textView = Toolkit::TextView::New( tableString.text );
152 textView.SetStyleToCurrentText( textStyle ); 152 textView.SetStyleToCurrentText( textStyle );
153 textView.SetOrientation( Dali::Degree( tableString.orientation ), Vector3( 0.0f, 0.0f, 1.0f ) ); 153 textView.SetOrientation( Dali::Degree( tableString.orientation ), Vector3( 0.0f, 0.0f, 1.0f ) );
  154 + textView.SetResizePolicy( USE_NATURAL_SIZE, ALL_DIMENSIONS );
154 155
155 Toolkit::Alignment alignmentContainer = Toolkit::Alignment::New( tableString.horizontalAlignment, tableString.verticalAlignment ); 156 Toolkit::Alignment alignmentContainer = Toolkit::Alignment::New( tableString.horizontalAlignment, tableString.verticalAlignment );
156 - alignmentContainer.SetPadding( Toolkit::Alignment::Padding( tableString.padding, tableString.padding, tableString.padding, tableString.padding ) );  
157 - alignmentContainer.SetScaling( Toolkit::Alignment::ScaleToFill ); 157 + Actor alignmentContainerActor = alignmentContainer;
  158 + alignmentContainerActor.SetPadding( Padding( tableString.padding, tableString.padding, tableString.padding, tableString.padding ) );
  159 + alignmentContainer.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
158 alignmentContainer.Add( textView ); 160 alignmentContainer.Add( textView );
159 161
160 textContainer.AddChild( alignmentContainer, Toolkit::TableView::CellPosition( tableString.cellPosition.row, tableString.cellPosition.column, tableString.cellPosition.rowSpan, tableString.cellPosition.columnSpan ) ); 162 textContainer.AddChild( alignmentContainer, Toolkit::TableView::CellPosition( tableString.cellPosition.row, tableString.cellPosition.column, tableString.cellPosition.rowSpan, tableString.cellPosition.columnSpan ) );
resources/scripts/animated-buttons.json
@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
3 { 3 {
4 "type": "ImageActor", 4 "type": "ImageActor",
5 "name": "On", 5 "name": "On",
  6 + "relayout-enabled": false,
6 "position": [ 7 "position": [
7 374, 8 374,
8 215, 9 215,
@@ -11,7 +12,7 @@ @@ -11,7 +12,7 @@
11 "size": [ 12 "size": [
12 144, 13 144,
13 144, 14 144,
14 - 1 15 + 1
15 ], 16 ],
16 "sizeAspectRatio": false, 17 "sizeAspectRatio": false,
17 "color": [ 18 "color": [
@@ -33,6 +34,7 @@ @@ -33,6 +34,7 @@
33 { 34 {
34 "type": "ImageActor", 35 "type": "ImageActor",
35 "name": "Off", 36 "name": "Off",
  37 + "relayout-enabled": false,
36 "position": [ 38 "position": [
37 129, 39 129,
38 215, 40 215,
@@ -41,7 +43,7 @@ @@ -41,7 +43,7 @@
41 "size": [ 43 "size": [
42 144, 44 144,
43 144, 45 144,
44 - 1 46 + 1
45 ], 47 ],
46 "sizeAspectRatio": false, 48 "sizeAspectRatio": false,
47 "color": [ 49 "color": [
@@ -63,6 +65,7 @@ @@ -63,6 +65,7 @@
63 { 65 {
64 "type": "ImageActor", 66 "type": "ImageActor",
65 "name": "Right", 67 "name": "Right",
  68 + "relayout-enabled": false,
66 "position": [ 69 "position": [
67 418.5, 70 418.5,
68 214.5, 71 214.5,
@@ -71,7 +74,7 @@ @@ -71,7 +74,7 @@
71 "size": [ 74 "size": [
72 85, 75 85,
73 161, 76 161,
74 - 1 77 + 1
75 ], 78 ],
76 "sizeAspectRatio": false, 79 "sizeAspectRatio": false,
77 "visible": true, 80 "visible": true,
@@ -94,6 +97,7 @@ @@ -94,6 +97,7 @@
94 { 97 {
95 "type": "ImageActor", 98 "type": "ImageActor",
96 "name": "Left", 99 "name": "Left",
  100 + "relayout-enabled": false,
97 "position": [ 101 "position": [
98 331, 102 331,
99 214.5, 103 214.5,
@@ -102,7 +106,7 @@ @@ -102,7 +106,7 @@
102 "size": [ 106 "size": [
103 88, 107 88,
104 161, 108 161,
105 - 1 109 + 1
106 ], 110 ],
107 "sizeAspectRatio": false, 111 "sizeAspectRatio": false,
108 "visible": true, 112 "visible": true,
@@ -125,6 +129,7 @@ @@ -125,6 +129,7 @@
125 { 129 {
126 "type": "ImageActor", 130 "type": "ImageActor",
127 "name": "Middle", 131 "name": "Middle",
  132 + "relayout-enabled": false,
128 "position": [ 133 "position": [
129 375.5, 134 375.5,
130 214.5, 135 214.5,
@@ -138,7 +143,7 @@ @@ -138,7 +143,7 @@
138 "size": [ 143 "size": [
139 1, 144 1,
140 161, 145 161,
141 - 1 146 + 1
142 ], 147 ],
143 "sizeAspectRatio": false, 148 "sizeAspectRatio": false,
144 "color": [ 149 "color": [
@@ -160,6 +165,7 @@ @@ -160,6 +165,7 @@
160 { 165 {
161 "type": "ImageActor", 166 "type": "ImageActor",
162 "name": "Jelly", 167 "name": "Jelly",
  168 + "relayout-enabled": false,
163 "position": [ 169 "position": [
164 374, 170 374,
165 215, 171 215,
@@ -168,7 +174,7 @@ @@ -168,7 +174,7 @@
168 "size": [ 174 "size": [
169 144, 175 144,
170 144, 176 144,
171 - 1 177 + 1
172 ], 178 ],
173 "sizeAspectRatio": false, 179 "sizeAspectRatio": false,
174 "color": [ 180 "color": [
@@ -190,6 +196,7 @@ @@ -190,6 +196,7 @@
190 { 196 {
191 "type": "Control", 197 "type": "Control",
192 "name": "Left Black", 198 "name": "Left Black",
  199 + "relayout-enabled": false,
193 "position": [ 200 "position": [
194 144.5, 201 144.5,
195 218.5, 202 218.5,
@@ -198,7 +205,7 @@ @@ -198,7 +205,7 @@
198 "size": [ 205 "size": [
199 275, 206 275,
200 243, 207 243,
201 - 1 208 + 1
202 ], 209 ],
203 "sizeAspectRatio": false, 210 "sizeAspectRatio": false,
204 "background-color": [ 211 "background-color": [
@@ -218,6 +225,7 @@ @@ -218,6 +225,7 @@
218 { 225 {
219 "type": "Control", 226 "type": "Control",
220 "name": "Right Black", 227 "name": "Right Black",
  228 + "relayout-enabled": false,
221 "position": [ 229 "position": [
222 629.5, 230 629.5,
223 218.5, 231 218.5,
@@ -226,7 +234,7 @@ @@ -226,7 +234,7 @@
226 "size": [ 234 "size": [
227 335, 235 335,
228 243, 236 243,
229 - 1 237 + 1
230 ], 238 ],
231 "sizeAspectRatio": false, 239 "sizeAspectRatio": false,
232 "background-color": [ 240 "background-color": [
@@ -246,6 +254,7 @@ @@ -246,6 +254,7 @@
246 { 254 {
247 "type": "ImageActor", 255 "type": "ImageActor",
248 "name": "JellyOff", 256 "name": "JellyOff",
  257 + "relayout-enabled": false,
249 "position": [ 258 "position": [
250 121, 259 121,
251 -117, 260 -117,
@@ -254,7 +263,7 @@ @@ -254,7 +263,7 @@
254 "size": [ 263 "size": [
255 144, 264 144,
256 144, 265 144,
257 - 1 266 + 1
258 ], 267 ],
259 "sizeAspectRatio": false, 268 "sizeAspectRatio": false,
260 "color": [ 269 "color": [
@@ -276,6 +285,7 @@ @@ -276,6 +285,7 @@
276 { 285 {
277 "type": "Control", 286 "type": "Control",
278 "name": "Control On", 287 "name": "Control On",
  288 + "relayout-enabled": false,
279 "position": [ 289 "position": [
280 371.26116838487997, 290 371.26116838487997,
281 217.33333333333331, 291 217.33333333333331,
@@ -284,7 +294,7 @@ @@ -284,7 +294,7 @@
284 "size": [ 294 "size": [
285 196, 295 196,
286 184, 296 184,
287 - 1 297 + 1
288 ], 298 ],
289 "sizeAspectRatio": false, 299 "sizeAspectRatio": false,
290 "scale": [ 300 "scale": [
@@ -310,6 +320,7 @@ @@ -310,6 +320,7 @@
310 { 320 {
311 "type": "Control", 321 "type": "Control",
312 "name": "Control Off", 322 "name": "Control Off",
  323 + "relayout-enabled": false,
313 "position": [ 324 "position": [
314 123.5, 325 123.5,
315 -117, 326 -117,
@@ -318,7 +329,7 @@ @@ -318,7 +329,7 @@
318 "size": [ 329 "size": [
319 193, 330 193,
320 182, 331 182,
321 - 1 332 + 1
322 ], 333 ],
323 "sizeAspectRatio": false, 334 "sizeAspectRatio": false,
324 "color": [ 335 "color": [
resources/scripts/animated-colors.json
@@ -18,9 +18,11 @@ @@ -18,9 +18,11 @@
18 "stage": [ 18 "stage": [
19 { 19 {
20 "type": "Control", 20 "type": "Control",
  21 + "relayout-enabled": false,
21 "actors": [ 22 "actors": [
22 { 23 {
23 "type": "Control", 24 "type": "Control",
  25 + "relayout-enabled": true,
24 "actors": [], 26 "actors": [],
25 "name": "Control 8", 27 "name": "Control 8",
26 "position": [ 28 "position": [
@@ -60,9 +62,11 @@ @@ -60,9 +62,11 @@
60 }, 62 },
61 { 63 {
62 "type": "Control", 64 "type": "Control",
  65 + "relayout-enabled": false,
63 "actors": [ 66 "actors": [
64 { 67 {
65 "type": "Control", 68 "type": "Control",
  69 + "relayout-enabled": false,
66 "actors": [], 70 "actors": [],
67 "name": "Container 2", 71 "name": "Container 2",
68 "position": [ 72 "position": [
@@ -102,9 +106,11 @@ @@ -102,9 +106,11 @@
102 }, 106 },
103 { 107 {
104 "type": "Control", 108 "type": "Control",
  109 + "relayout-enabled": false,
105 "actors": [ 110 "actors": [
106 { 111 {
107 "type": "Control", 112 "type": "Control",
  113 + "relayout-enabled": false,
108 "actors": [], 114 "actors": [],
109 "name": "Container 4", 115 "name": "Container 4",
110 "position": [ 116 "position": [
@@ -181,9 +187,11 @@ @@ -181,9 +187,11 @@
181 }, 187 },
182 { 188 {
183 "type": "Control", 189 "type": "Control",
  190 + "relayout-enabled": false,
184 "actors": [ 191 "actors": [
185 { 192 {
186 "type": "Control", 193 "type": "Control",
  194 + "relayout-enabled": false,
187 "actors": [], 195 "actors": [],
188 "name": "Container 5", 196 "name": "Container 5",
189 "position": [ 197 "position": [
@@ -223,9 +231,11 @@ @@ -223,9 +231,11 @@
223 }, 231 },
224 { 232 {
225 "type": "Control", 233 "type": "Control",
  234 + "relayout-enabled": false,
226 "actors": [ 235 "actors": [
227 { 236 {
228 "type": "Control", 237 "type": "Control",
  238 + "relayout-enabled": false,
229 "actors": [], 239 "actors": [],
230 "name": "Container 7", 240 "name": "Container 7",
231 "position": [ 241 "position": [
@@ -302,9 +312,11 @@ @@ -302,9 +312,11 @@
302 }, 312 },
303 { 313 {
304 "type": "Control", 314 "type": "Control",
  315 + "relayout-enabled": false,
305 "actors": [ 316 "actors": [
306 { 317 {
307 "type": "Control", 318 "type": "Control",
  319 + "relayout-enabled": false,
308 "actors": [], 320 "actors": [],
309 "name": "Container 8", 321 "name": "Container 8",
310 "position": [ 322 "position": [
@@ -344,9 +356,11 @@ @@ -344,9 +356,11 @@
344 }, 356 },
345 { 357 {
346 "type": "Control", 358 "type": "Control",
  359 + "relayout-enabled": false,
347 "actors": [ 360 "actors": [
348 { 361 {
349 "type": "Control", 362 "type": "Control",
  363 + "relayout-enabled": false,
350 "actors": [], 364 "actors": [],
351 "name": "Container 10", 365 "name": "Container 10",
352 "position": [ 366 "position": [
@@ -534,9 +548,11 @@ @@ -534,9 +548,11 @@
534 }, 548 },
535 { 549 {
536 "type": "Control", 550 "type": "Control",
  551 + "relayout-enabled": false,
537 "actors": [ 552 "actors": [
538 { 553 {
539 "type": "Control", 554 "type": "Control",
  555 + "relayout-enabled": false,
540 "actors": [], 556 "actors": [],
541 "name": "Control 4", 557 "name": "Control 4",
542 "position": [ 558 "position": [
@@ -613,9 +629,11 @@ @@ -613,9 +629,11 @@
613 }, 629 },
614 { 630 {
615 "type": "Control", 631 "type": "Control",
  632 + "relayout-enabled": false,
616 "actors": [ 633 "actors": [
617 { 634 {
618 "type": "Control", 635 "type": "Control",
  636 + "relayout-enabled": false,
619 "actors": [ 637 "actors": [
620 { 638 {
621 "type": "Control", 639 "type": "Control",
@@ -695,6 +713,7 @@ @@ -695,6 +713,7 @@
695 }, 713 },
696 { 714 {
697 "type": "Control", 715 "type": "Control",
  716 + "relayout-enabled": false,
698 "actors": [], 717 "actors": [],
699 "name": "Container 11", 718 "name": "Container 11",
700 "position": [ 719 "position": [
@@ -734,12 +753,15 @@ @@ -734,12 +753,15 @@
734 }, 753 },
735 { 754 {
736 "type": "Control", 755 "type": "Control",
  756 + "relayout-enabled": false,
737 "actors": [ 757 "actors": [
738 { 758 {
739 "type": "Control", 759 "type": "Control",
  760 + "relayout-enabled": false,
740 "actors": [ 761 "actors": [
741 { 762 {
742 "type": "Control", 763 "type": "Control",
  764 + "relayout-enabled": false,
743 "actors": [], 765 "actors": [],
744 "name": "Container 15", 766 "name": "Container 15",
745 "position": [ 767 "position": [
@@ -816,6 +838,7 @@ @@ -816,6 +838,7 @@
816 }, 838 },
817 { 839 {
818 "type": "Control", 840 "type": "Control",
  841 + "relayout-enabled": false,
819 "actors": [], 842 "actors": [],
820 "name": "Container 16", 843 "name": "Container 16",
821 "position": [ 844 "position": [
resources/scripts/animation.json
@@ -122,6 +122,7 @@ @@ -122,6 +122,7 @@
122 "image": { 122 "image": {
123 "filename": "{DALI_IMAGE_DIR}gallery-large-21.jpg" 123 "filename": "{DALI_IMAGE_DIR}gallery-large-21.jpg"
124 }, 124 },
  125 + "relayout-enabled": false,
125 "position": [0, 200, 0], 126 "position": [0, 200, 0],
126 "size": [200, 200, 1], 127 "size": [200, 200, 1],
127 "signals": [{ 128 "signals": [{
resources/scripts/background-color.json
@@ -29,6 +29,7 @@ @@ -29,6 +29,7 @@
29 // A container with a yellow background 29 // A container with a yellow background
30 { 30 {
31 "type": "Control", 31 "type": "Control",
  32 + "relayout-enabled": false,
32 "parent-origin": "CENTER", 33 "parent-origin": "CENTER",
33 "anchor-point": "BOTTOM_CENTER", 34 "anchor-point": "BOTTOM_CENTER",
34 "background-color": [1, 1, 0, 1], 35 "background-color": [1, 1, 0, 1],
@@ -38,6 +39,7 @@ @@ -38,6 +39,7 @@
38 // A container with an image 39 // A container with an image
39 { 40 {
40 "type": "Control", 41 "type": "Control",
  42 + "relayout-enabled": false,
41 "parent-origin": "CENTER", 43 "parent-origin": "CENTER",
42 "anchor-point": "TOP_CENTER", 44 "anchor-point": "TOP_CENTER",
43 "size": [400, 150, 1], 45 "size": [400, 150, 1],
@@ -51,6 +53,7 @@ @@ -51,6 +53,7 @@
51 // A container with the same image blended in with a blue background 53 // A container with the same image blended in with a blue background
52 { 54 {
53 "type": "Control", 55 "type": "Control",
  56 + "relayout-enabled": false,
54 "parent-origin": "BOTTOM_CENTER", 57 "parent-origin": "BOTTOM_CENTER",
55 "anchor-point": "BOTTOM_CENTER", 58 "anchor-point": "BOTTOM_CENTER",
56 "size": [400, 150, 1], 59 "size": [400, 150, 1],
shared/view.h
@@ -84,10 +84,12 @@ Dali::Layer CreateToolbar( Dali::Toolkit::ToolBar&amp; toolBar, @@ -84,10 +84,12 @@ Dali::Layer CreateToolbar( Dali::Toolkit::ToolBar&amp; toolBar,
84 const Dali::TextStyle& textStyle ) 84 const Dali::TextStyle& textStyle )
85 { 85 {
86 Dali::Layer toolBarLayer = Dali::Layer::New(); 86 Dali::Layer toolBarLayer = Dali::Layer::New();
  87 + toolBarLayer.SetName( "TOOLBAR_LAYER" );
87 toolBarLayer.SetAnchorPoint( Dali::AnchorPoint::TOP_CENTER ); 88 toolBarLayer.SetAnchorPoint( Dali::AnchorPoint::TOP_CENTER );
88 toolBarLayer.SetParentOrigin( Dali::ParentOrigin::TOP_CENTER ); 89 toolBarLayer.SetParentOrigin( Dali::ParentOrigin::TOP_CENTER );
89 - toolBarLayer.ApplyConstraint( Dali::Constraint::New<Dali::Vector3>( Dali::Actor::Property::SIZE, Dali::ParentSource( Dali::Actor::Property::SIZE ), Dali::SourceWidthFixedHeight( style.mToolBarHeight ) ) );  
90 - toolBarLayer.SetSize( 0.0f, style.mToolBarHeight ); 90 + toolBarLayer.SetPreferredSize( Dali::Vector2( 0.0f, style.mToolBarHeight ) );
  91 + toolBarLayer.SetResizePolicy( Dali::FILL_TO_PARENT, Dali::WIDTH );
  92 + toolBarLayer.SetResizePolicy( Dali::FIXED, Dali::HEIGHT );
91 93
92 // Raise tool bar layer to the top. 94 // Raise tool bar layer to the top.
93 toolBarLayer.RaiseToTop(); 95 toolBarLayer.RaiseToTop();
@@ -95,12 +97,14 @@ Dali::Layer CreateToolbar( Dali::Toolkit::ToolBar&amp; toolBar, @@ -95,12 +97,14 @@ Dali::Layer CreateToolbar( Dali::Toolkit::ToolBar&amp; toolBar,
95 // Tool bar 97 // Tool bar
96 Dali::Image image = Dali::ResourceImage::New( toolbarImagePath ); 98 Dali::Image image = Dali::ResourceImage::New( toolbarImagePath );
97 Dali::ImageActor toolBarBackground = Dali::ImageActor::New( image ); 99 Dali::ImageActor toolBarBackground = Dali::ImageActor::New( image );
  100 + toolBarBackground.SetName( "TOOLBAR_BACKGROUND" );
  101 + toolBarBackground.SetResizePolicy( Dali::FILL_TO_PARENT, Dali::ALL_DIMENSIONS );
98 toolBar = Dali::Toolkit::ToolBar::New(); 102 toolBar = Dali::Toolkit::ToolBar::New();
  103 + toolBar.SetName( "TOOLBAR" );
99 toolBar.SetBackground( toolBarBackground ); 104 toolBar.SetBackground( toolBarBackground );
100 toolBar.SetParentOrigin( Dali::ParentOrigin::TOP_CENTER ); 105 toolBar.SetParentOrigin( Dali::ParentOrigin::TOP_CENTER );
101 toolBar.SetAnchorPoint( Dali::AnchorPoint::TOP_CENTER ); 106 toolBar.SetAnchorPoint( Dali::AnchorPoint::TOP_CENTER );
102 - toolBar.SetSize( 0.0f, style.mToolBarHeight );  
103 - toolBar.SetSizeMode( Dali::SIZE_EQUAL_TO_PARENT ); 107 + toolBar.SetResizePolicy( Dali::FILL_TO_PARENT, Dali::ALL_DIMENSIONS );
104 toolBarBackground.SetSortModifier(1.0f); 108 toolBarBackground.SetSortModifier(1.0f);
105 109
106 // Add the tool bar to the too bar layer. 110 // Add the tool bar to the too bar layer.
@@ -112,7 +116,7 @@ Dali::Layer CreateToolbar( Dali::Toolkit::ToolBar&amp; toolBar, @@ -112,7 +116,7 @@ Dali::Layer CreateToolbar( Dali::Toolkit::ToolBar&amp; toolBar,
112 if( !title.empty() ) 116 if( !title.empty() )
113 { 117 {
114 Dali::Toolkit::TextView titleActor = Dali::Toolkit::TextView::New(); 118 Dali::Toolkit::TextView titleActor = Dali::Toolkit::TextView::New();
115 - titleActor.SetName( "ToolbarTitle" ); 119 + titleActor.SetName( "TOOLBAR_TITLE" );
116 titleActor.SetText( title ); 120 titleActor.SetText( title );
117 titleActor.SetSize( font.MeasureText( title ) ); 121 titleActor.SetSize( font.MeasureText( title ) );
118 titleActor.SetStyleToCurrentText(textStyle); 122 titleActor.SetStyleToCurrentText(textStyle);
@@ -138,6 +142,7 @@ Dali::Layer CreateView( Dali::Application&amp; application, @@ -138,6 +142,7 @@ Dali::Layer CreateView( Dali::Application&amp; application,
138 142
139 // Create default View. 143 // Create default View.
140 view = Dali::Toolkit::View::New(); 144 view = Dali::Toolkit::View::New();
  145 + view.SetResizePolicy( Dali::FILL_TO_PARENT, Dali::ALL_DIMENSIONS );
141 146
142 // Add the view to the stage before setting the background. 147 // Add the view to the stage before setting the background.
143 stage.Add( view ); 148 stage.Add( view );
@@ -164,13 +169,11 @@ Dali::Layer CreateView( Dali::Application&amp; application, @@ -164,13 +169,11 @@ Dali::Layer CreateView( Dali::Application&amp; application,
164 // Add tool bar layer to the view. 169 // Add tool bar layer to the view.
165 view.AddContentLayer( toolBarLayer ); 170 view.AddContentLayer( toolBarLayer );
166 171
167 -  
168 -  
169 // Create a content layer. 172 // Create a content layer.
170 Dali::Layer contentLayer = Dali::Layer::New(); 173 Dali::Layer contentLayer = Dali::Layer::New();
171 contentLayer.SetAnchorPoint( Dali::AnchorPoint::CENTER ); 174 contentLayer.SetAnchorPoint( Dali::AnchorPoint::CENTER );
172 contentLayer.SetParentOrigin( Dali::ParentOrigin::CENTER ); 175 contentLayer.SetParentOrigin( Dali::ParentOrigin::CENTER );
173 - contentLayer.SetSizeMode( Dali::SIZE_EQUAL_TO_PARENT ); 176 + contentLayer.SetResizePolicy( Dali::FILL_TO_PARENT, Dali::ALL_DIMENSIONS );
174 view.AddContentLayer( contentLayer ); 177 view.AddContentLayer( contentLayer );
175 contentLayer.LowerBelow( toolBarLayer ); 178 contentLayer.LowerBelow( toolBarLayer );
176 179