Commit ae3d255070ab65633817672687dda381c4192092

Authored by Adeel Kazmi
1 parent bb5db46e

Updates after ItemLayout changes

- ItemView Demo:
  - Fade in/out animation between layouts
  - Removed menu
  - No animations when adding/deleting/replacing items
  - Items in spiral layout are a lot closer together

- Builder Examples Demo
  - No visible changes

- Size Negotiation Demo
  - One button per line rather than two

Change-Id: I2d50a49e49fb2271f41715daec74469ea2aa112b
examples/builder/examples.cpp
... ... @@ -20,7 +20,7 @@
20 20 //
21 21 //------------------------------------------------------------------------------
22 22  
23   -#include "dali.h"
  23 +#include <dali/dali.h>
24 24 #include <dali-toolkit/dali-toolkit.h>
25 25 #include <dali-toolkit/public-api/builder/builder.h>
26 26 #include <dali-toolkit/public-api/builder/tree-node.h>
... ... @@ -36,6 +36,7 @@
36 36  
37 37 #include "sys/stat.h"
38 38 #include <ctime>
  39 +#include <cstring>
39 40  
40 41 #include <dali/integration-api/debug.h>
41 42 #include "shared/view.h"
... ... @@ -141,11 +142,6 @@ const std::string ShortName( const std::string&amp; name )
141 142 }
142 143 }
143 144  
144   -static Vector3 SetItemSize(unsigned int numberOfColumns, float layoutWidth, float sideMargin, float columnSpacing)
145   -{
146   - return Vector3(layoutWidth, 50, 1);
147   -}
148   -
149 145 //------------------------------------------------------------------------------
150 146 //
151 147 //
... ... @@ -291,14 +287,11 @@ public:
291 287 stage.Add( mItemView );
292 288 mItemView.SetParentOrigin(ParentOrigin::CENTER);
293 289 mItemView.SetAnchorPoint(AnchorPoint::CENTER);
294   - mGridLayout = GridLayout::New();
295   - mGridLayout->SetNumberOfColumns(1);
296   -
297   - mGridLayout->SetItemSizeFunction(SetItemSize);
  290 + mLayout = DefaultItemLayout::New( DefaultItemLayout::LIST );
298 291  
299   - mGridLayout->SetTopMargin(DemoHelper::DEFAULT_VIEW_STYLE.mToolBarHeight);
  292 + mLayout->SetItemSize( Vector3( stage.GetSize().width, 50, 1 ) );
300 293  
301   - mItemView.AddLayout(*mGridLayout);
  294 + mItemView.AddLayout( *mLayout );
302 295  
303 296 Vector3 size(stage.GetSize());
304 297 mItemView.ActivateLayout(0, size, 0.0f/*immediate*/);
... ... @@ -585,7 +578,7 @@ public:
585 578 private:
586 579 Application& mApp;
587 580  
588   - GridLayoutPtr mGridLayout;
  581 + ItemLayoutPtr mLayout;
589 582 ItemView mItemView;
590 583  
591 584 Toolkit::Control mView;
... ...
examples/image-scaling-irregular-grid/grid-flags.h
... ... @@ -17,6 +17,7 @@
17 17 *
18 18 */
19 19 #include <algorithm>
  20 +#include <cassert>
20 21 #include <dali/dali.h>
21 22  
22 23 /** Controls the output of application logging. */
... ...
examples/item-view/item-view-example.cpp
... ... @@ -103,16 +103,6 @@ const unsigned int IMAGE_WIDTH = 256;
103 103 const unsigned int IMAGE_HEIGHT = 256;
104 104 const unsigned int NUM_IMAGE_PER_ROW_IN_ATLAS = 8;
105 105  
106   -AlphaFunction ALPHA_FUNCTIONS[] = { AlphaFunction(AlphaFunction::LINEAR),
107   - AlphaFunction(AlphaFunction::EASE_IN),
108   - AlphaFunction(AlphaFunction::EASE_OUT) };
109   -
110   -const unsigned int NUM_ALPHA_FUNCTIONS = sizeof(ALPHA_FUNCTIONS) / sizeof(AlphaFunction);
111   -
112   -const char* ALPHA_FUNCTIONS_TEXT[] = { "Linear",
113   - "EaseIn",
114   - "EaseOut" };
115   -
116 106 const char* BACKGROUND_IMAGE( "" );
117 107 const char* TOOLBAR_IMAGE( DALI_IMAGE_DIR "top-bar.png" );
118 108 const char* EDIT_IMAGE( DALI_IMAGE_DIR "icon-edit.png" );
... ... @@ -138,20 +128,10 @@ const float ITEM_IMAGE_BORDER_RIGHT = 13.0f;
138 128 const float ITEM_IMAGE_BORDER_TOP = 13.0f;
139 129 const float ITEM_IMAGE_BORDER_BOTTOM = 13.0f;
140 130  
141   -const unsigned int DEPTH_LAYOUT_ROWS_PORTRAIT = 26;
142   -const unsigned int DEPTH_LAYOUT_ROWS_LANDSCAPE = 16;
143   -const float DEPTH_LAYOUT_TILT_ANGLE_PORTRAIT = 25.0f;
144   -const float DEPTH_LAYOUT_TILT_ANGLE_LANDSCAPE = 21.0f;
145   -const float DEPTH_LAYOUT_ROW_SPACING_FACTOR = 0.1f;
146 131 const float DEPTH_LAYOUT_ITEM_SIZE_FACTOR_PORTRAIT = 1.0f;
147 132 const float DEPTH_LAYOUT_ITEM_SIZE_FACTOR_LANDSCAPE = 0.8f;
148   -const float DEPTH_LAYOUT_BOTTOM_MARGIN_FACTOR_PORTRAIT = 0.2f;
149   -const float DEPTH_LAYOUT_BOTTOM_MARGIN_FACTOR_LANDSCAPE = 0.1f;
  133 +const float DEPTH_LAYOUT_COLUMNS = 3.0f;
150 134  
151   -const float SPIRAL_LAYOUT_REVOLUTION_NUMBER_PORTRAIT = 4.5f;
152   -const float SPIRAL_LAYOUT_REVOLUTION_NUMBER_LANDSCAPE = 2.5f;
153   -
154   -const float DEPTH_LAYOUT_HEIGHT_SCALE = 20.0f;
155 135 const float MIN_SWIPE_DISTANCE = 15.0f;
156 136 const float MIN_SWIPE_SPEED = 5.0f;
157 137  
... ... @@ -162,33 +142,23 @@ const float LABEL_TEXT_SIZE_Y = 20.0f;
162 142  
163 143 const Vector3 INITIAL_OFFSCREEN_POSITION( 1000.0f, 0, -1000.0f );
164 144  
165   -static Vector3 DepthLayoutItemSizeFunctionPortrait(unsigned int numberOfColumns, float layoutWidth)
  145 +static Vector3 DepthLayoutItemSizeFunctionPortrait( float layoutWidth )
166 146 {
167   - float width = (layoutWidth / static_cast<float>(numberOfColumns + 1)) * DEPTH_LAYOUT_ITEM_SIZE_FACTOR_PORTRAIT;
  147 + float width = ( layoutWidth / ( DEPTH_LAYOUT_COLUMNS + 1.0f ) ) * DEPTH_LAYOUT_ITEM_SIZE_FACTOR_PORTRAIT;
168 148  
169 149 // 1x1 aspect ratio
170 150 return Vector3(width, width, width);
171 151 }
172 152  
173   -static Vector3 DepthLayoutItemSizeFunctionLandscape(unsigned int numberOfColumns, float layoutWidth)
  153 +static Vector3 DepthLayoutItemSizeFunctionLandscape( float layoutWidth )
174 154 {
175   - float width = (layoutWidth / static_cast<float>(numberOfColumns + 1)) * DEPTH_LAYOUT_ITEM_SIZE_FACTOR_LANDSCAPE;
  155 + float width = ( layoutWidth / ( DEPTH_LAYOUT_COLUMNS + 1.0f ) ) * DEPTH_LAYOUT_ITEM_SIZE_FACTOR_LANDSCAPE;
176 156  
177 157 // 1x1 aspect ratio
178 158 return Vector3(width, width, width);
179 159 }
180 160  
181   -static float DepthLayoutBottomMarginFunctionPortrait(float layoutHeight)
182   -{
183   - return layoutHeight * DEPTH_LAYOUT_BOTTOM_MARGIN_FACTOR_PORTRAIT;
184   -}
185   -
186   -static float DepthLayoutBottomMarginFunctionLandscape(float layoutHeight)
187   -{
188   - return layoutHeight * DEPTH_LAYOUT_BOTTOM_MARGIN_FACTOR_LANDSCAPE;
189   -}
190   -
191   -}
  161 +} // unnamed namespace
192 162  
193 163 /**
194 164 * This example shows how to use ItemView UI control.
... ... @@ -219,11 +189,9 @@ public:
219 189 ItemViewExample( Application& application )
220 190 : mApplication( application ),
221 191 mMode( MODE_NORMAL ),
222   - mMenuShown( false ),
223 192 mOrientation( 0 ),
224 193 mCurrentLayout( SPIRAL_LAYOUT ),
225   - mDurationSeconds( 1.0f ),
226   - mAlphaFuncIndex( 0u )
  194 + mDurationSeconds( 0.25f )
227 195 {
228 196 // Connect to the Application's Init signal
229 197 mApplication.InitSignal().Connect(this, &ItemViewExample::OnInit);
... ... @@ -321,9 +289,9 @@ public:
321 289 stage.Add( mItemView );
322 290  
323 291 // Create the layouts
324   - mSpiralLayout = SpiralLayout::New();
325   - mDepthLayout = DepthLayout::New();
326   - mGridLayout = GridLayout::New();
  292 + mSpiralLayout = DefaultItemLayout::New( DefaultItemLayout::SPIRAL );
  293 + mDepthLayout = DefaultItemLayout::New( DefaultItemLayout::DEPTH );
  294 + mGridLayout = DefaultItemLayout::New( DefaultItemLayout::GRID );
327 295  
328 296 // Add the layouts to item view
329 297 mItemView.AddLayout(*mSpiralLayout);
... ... @@ -334,7 +302,7 @@ public:
334 302 mItemView.SetMinimumSwipeSpeed(MIN_SWIPE_SPEED);
335 303  
336 304 // Activate the spiral layout
337   - UseLayout(mCurrentLayout, 0.0f);
  305 + SetLayout( mCurrentLayout );
338 306 mItemView.SetKeyboardFocusable( true );
339 307 KeyboardFocusManager::Get().PreFocusChangeSignal().Connect( this, &ItemViewExample::OnKeyboardPreFocusChange );
340 308  
... ... @@ -357,49 +325,45 @@ public:
357 325 }
358 326  
359 327 /**
  328 + * Animate to a different layout
  329 + */
  330 + void ChangeLayout()
  331 + {
  332 + Animation animation = Animation::New( mDurationSeconds );
  333 + animation.FinishedSignal().Connect( this, &ItemViewExample::AnimationFinished );
  334 + animation.AnimateTo( Property( mItemView, Actor::Property::COLOR_ALPHA ), 0.0f );
  335 + animation.Play();
  336 + }
  337 +
  338 + void AnimationFinished( Animation& )
  339 + {
  340 + SetLayout( mCurrentLayout );
  341 +
  342 + Animation animation = Animation::New( mDurationSeconds );
  343 + animation.AnimateTo( Property( mItemView, Actor::Property::COLOR_ALPHA ), 1.0f );
  344 + animation.Play();
  345 + }
  346 +
  347 + /**
360 348 * Switch to a different item view layout
361 349 */
362   - void UseLayout(int layoutId, float duration)
  350 + void SetLayout( int layoutId )
363 351 {
364 352 // Set the new orientation to the layout
365 353 mItemView.GetLayout(layoutId)->SetOrientation(static_cast<ControlOrientation::Type>(mOrientation / 90));
366 354  
367 355 Vector2 stageSize = Stage::GetCurrent().GetSize();
368 356  
369   - if(layoutId == SPIRAL_LAYOUT)
370   - {
371   - mSpiralLayout->SetRevolutionDistance(stageSize.height / Stage::GetCurrent().GetDpi().y * 45.0f);
372   - }
373   -
374   - if(layoutId == GRID_LAYOUT)
375   - {
376   - // Set up the grid layout according to the new orientation
377   - float layoutWidth = Toolkit::IsHorizontal(mGridLayout->GetOrientation()) ? stageSize.height : stageSize.width;
378   - float gridItemSize = (layoutWidth / mGridLayout->GetNumberOfColumns()) * 0.5f;
379   - mGridLayout->SetScrollSpeedFactor(mGridLayout->GetNumberOfColumns() / gridItemSize);
380   -
381   - float toolbarHeight = mToolBar.GetCurrentSize().y;
382   - mGridLayout->SetTopMargin(toolbarHeight + mGridLayout->GetRowSpacing());
383   - }
384   -
385 357 if(layoutId == DEPTH_LAYOUT)
386 358 {
387 359 // Set up the depth layout according to the new orientation
388 360 if(Toolkit::IsVertical(mDepthLayout->GetOrientation()))
389 361 {
390   - mDepthLayout->SetRowSpacing(stageSize.height * DEPTH_LAYOUT_ROW_SPACING_FACTOR);
391   - mDepthLayout->SetNumberOfRows(DEPTH_LAYOUT_ROWS_PORTRAIT);
392   - mDepthLayout->SetTiltAngle( Degree( DEPTH_LAYOUT_TILT_ANGLE_PORTRAIT - mDepthLayout->GetNumberOfColumns() ) );
393   - mDepthLayout->SetItemSizeFunction(DepthLayoutItemSizeFunctionPortrait);
394   - mDepthLayout->SetBottomMarginFunction(DepthLayoutBottomMarginFunctionPortrait);
  362 + mDepthLayout->SetItemSize( DepthLayoutItemSizeFunctionPortrait( stageSize.width ) );
395 363 }
396 364 else
397 365 {
398   - mDepthLayout->SetRowSpacing(stageSize.width * DEPTH_LAYOUT_ROW_SPACING_FACTOR);
399   - mDepthLayout->SetNumberOfRows(DEPTH_LAYOUT_ROWS_LANDSCAPE);
400   - mDepthLayout->SetTiltAngle( Degree( DEPTH_LAYOUT_TILT_ANGLE_LANDSCAPE - mDepthLayout->GetNumberOfColumns() ) );
401   - mDepthLayout->SetItemSizeFunction(DepthLayoutItemSizeFunctionLandscape);
402   - mDepthLayout->SetBottomMarginFunction(DepthLayoutBottomMarginFunctionLandscape);
  366 + mDepthLayout->SetItemSize( DepthLayoutItemSizeFunctionLandscape( stageSize.height ) );
403 367 }
404 368 }
405 369  
... ... @@ -407,7 +371,7 @@ public:
407 371 mItemView.SetAnchoring(layoutId == DEPTH_LAYOUT);
408 372  
409 373 // Activate the layout
410   - mItemView.ActivateLayout(layoutId, Vector3(stageSize.x, stageSize.y, stageSize.x), duration);
  374 + mItemView.ActivateLayout( layoutId, Vector3(stageSize.x, stageSize.y, stageSize.x), 0.0f );
411 375 }
412 376  
413 377 /**
... ... @@ -424,7 +388,7 @@ public:
424 388 // Remember orientation
425 389 mOrientation = angle;
426 390  
427   - UseLayout(mCurrentLayout, mDurationSeconds);
  391 + SetLayout( mCurrentLayout );
428 392 }
429 393 }
430 394  
... ... @@ -433,7 +397,7 @@ public:
433 397 // Switch to the next layout
434 398 mCurrentLayout = (mCurrentLayout + 1) % mItemView.GetLayoutCount();
435 399  
436   - UseLayout(mCurrentLayout, mDurationSeconds);
  400 + ChangeLayout();
437 401  
438 402 SetLayoutTitle();
439 403 SetLayoutImage();
... ... @@ -973,100 +937,6 @@ private:
973 937 mTitleActor.SetProperty( TextLabel::Property::TEXT, title );
974 938 }
975 939  
976   - void ShowMenu()
977   - {
978   - Stage stage = Stage::GetCurrent();
979   - const float popupWidth = stage.GetSize().x * 0.75f;
980   -
981   - mMenu = Toolkit::Popup::New();
982   - mMenu.SetParentOrigin( ParentOrigin::BOTTOM_LEFT );
983   - mMenu.SetAnchorPoint( AnchorPoint::BOTTOM_LEFT );
984   - mMenu.SetSize( popupWidth, MENU_OPTION_HEIGHT * 2 );
985   - mMenu.OutsideTouchedSignal().Connect( this, &ItemViewExample::HideMenu );
986   -
987   - TableView tableView = TableView::New( 0, 0 );
988   - tableView.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
989   - mMenu.Add( tableView );
990   -
991   - Slider slider = Slider::New();
992   - slider.SetProperty( Slider::Property::LOWER_BOUND, 0.0f );
993   - slider.SetProperty( Slider::Property::UPPER_BOUND, 3.0f );
994   - slider.SetProperty( Slider::Property::VALUE, mDurationSeconds );
995   - slider.SetProperty( Slider::Property::VALUE_PRECISION, 2 );
996   - slider.SetProperty( Slider::Property::SHOW_POPUP, true );
997   - slider.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
998   - slider.ValueChangedSignal().Connect( this, &ItemViewExample::SliderValueChange );
999   - tableView.AddChild( slider, TableView::CellPosition( 0, 0 ) );
1000   -
1001   - TextLabel text = TextLabel::New( "Duration" );
1002   - text.SetAnchorPoint( ParentOrigin::TOP_LEFT );
1003   - text.SetParentOrigin( ParentOrigin::TOP_LEFT );
1004   - text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1005   - text.SetResizePolicy( ResizePolicy::FIXED, Dimension::HEIGHT );
1006   - text.SetSize( Vector2( 0.0f, LABEL_TEXT_SIZE_Y ) );
1007   - slider.Add( text );
1008   -
1009   - Actor textContainer = Actor::New();
1010   - textContainer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
1011   - mAlphaFunctionText = TextLabel::New( ALPHA_FUNCTIONS_TEXT[mAlphaFuncIndex] );
1012   - mAlphaFunctionText.SetAnchorPoint( ParentOrigin::CENTER );
1013   - mAlphaFunctionText.SetParentOrigin( ParentOrigin::CENTER );
1014   - textContainer.Add( mAlphaFunctionText );
1015   - tableView.AddChild( textContainer, TableView::CellPosition( 1, 0 ) );
1016   -
1017   - mTapDetector = TapGestureDetector::New();
1018   - mTapDetector.Attach(mAlphaFunctionText);
1019   - mTapDetector.DetectedSignal().Connect( this, &ItemViewExample::ChangeAlphaFunctionOnTap );
1020   -
1021   - text = TextLabel::New( "Alpha Function" );
1022   - text.SetAnchorPoint( ParentOrigin::TOP_LEFT );
1023   - text.SetParentOrigin( ParentOrigin::TOP_LEFT );
1024   - text.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
1025   - text.SetSize( 0.0f, LABEL_TEXT_SIZE_Y );
1026   - textContainer.Add( text );
1027   -
1028   - mMenu.Show();
1029   - mMenuShown = true;
1030   - }
1031   -
1032   - bool SliderValueChange( Toolkit::Slider slider, float value )
1033   - {
1034   - mDurationSeconds = value;
1035   -
1036   - return true;
1037   - }
1038   -
1039   - void ChangeAlphaFunctionOnTap( Actor actor, const TapGesture& tap )
1040   - {
1041   - if( NUM_ALPHA_FUNCTIONS <= ++mAlphaFuncIndex )
1042   - {
1043   - mAlphaFuncIndex = 0;
1044   - }
1045   -
1046   - if( mAlphaFunctionText )
1047   - {
1048   - mAlphaFunctionText.SetProperty( TextLabel::Property::TEXT, std::string(ALPHA_FUNCTIONS_TEXT[mAlphaFuncIndex]) );
1049   - }
1050   -
1051   - if( mItemView )
1052   - {
1053   - mItemView.GetActiveLayout()->SetAlphaFunction( ALPHA_FUNCTIONS[mAlphaFuncIndex] );
1054   - }
1055   - }
1056   -
1057   - void HideMenu()
1058   - {
1059   - mTapDetector.Reset();
1060   -
1061   - if( mMenu )
1062   - {
1063   - mMenu.Hide();
1064   - mMenu.Reset();
1065   - }
1066   -
1067   - mMenuShown = false;
1068   - }
1069   -
1070 940 /**
1071 941 * Main key event handler
1072 942 */
... ... @@ -1074,27 +944,9 @@ private:
1074 944 {
1075 945 if(event.state == KeyEvent::Down)
1076 946 {
1077   - if( IsKey( event, DALI_KEY_MENU ) )
1078   - {
1079   - if( mMenuShown )
1080   - {
1081   - HideMenu();
1082   - }
1083   - else
1084   - {
1085   - ShowMenu();
1086   - }
1087   - }
1088   - else if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) )
  947 + if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) )
1089 948 {
1090   - if( mMenuShown )
1091   - {
1092   - HideMenu();
1093   - }
1094   - else
1095   - {
1096   - mApplication.Quit();
1097   - }
  949 + mApplication.Quit();
1098 950 }
1099 951 }
1100 952 }
... ... @@ -1103,7 +955,6 @@ private:
1103 955  
1104 956 Application& mApplication;
1105 957 Mode mMode;
1106   - bool mMenuShown;
1107 958  
1108 959 Toolkit::Control mView;
1109 960 unsigned int mOrientation;
... ... @@ -1117,11 +968,9 @@ private:
1117 968 unsigned int mCurrentLayout;
1118 969 float mDurationSeconds;
1119 970  
1120   - SpiralLayoutPtr mSpiralLayout;
1121   - DepthLayoutPtr mDepthLayout;
1122   - GridLayoutPtr mGridLayout;
1123   -
1124   - Toolkit::Popup mMenu;
  971 + ItemLayoutPtr mSpiralLayout;
  972 + ItemLayoutPtr mDepthLayout;
  973 + ItemLayoutPtr mGridLayout;
1125 974  
1126 975 TapGestureDetector mTapDetector;
1127 976 Toolkit::PushButton mLayoutButton;
... ... @@ -1129,8 +978,6 @@ private:
1129 978 Toolkit::PushButton mInsertButton;
1130 979 Toolkit::PushButton mReplaceButton;
1131 980  
1132   - unsigned int mAlphaFuncIndex;
1133   - TextLabel mAlphaFunctionText;
1134 981 BufferImage mWhiteImage;
1135 982 };
1136 983  
... ...
examples/refraction-effect/refraction-effect-example.cpp
... ... @@ -21,6 +21,7 @@
21 21  
22 22 #include <fstream>
23 23 #include <sstream>
  24 +#include <limits>
24 25  
25 26 using namespace Dali;
26 27  
... ...
examples/size-negotiation/size-negotiation-example.cpp
... ... @@ -193,17 +193,13 @@ public:
193 193 mItemView.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
194 194  
195 195 // Use a grid layout for tests
196   - Toolkit::GridLayoutPtr gridLayout = Toolkit::GridLayout::New();
197   - gridLayout->SetNumberOfColumns( 2 );
198   - gridLayout->SetTopMargin( DP(TOOLBAR_HEIGHT) + DP(20.0f) );
199   - gridLayout->SetBottomMargin( DP(100.0f) );
200   - gridLayout->SetRowSpacing( DP(20.0f) );
201   - mItemView.AddLayout( *gridLayout );
202   -
203 196 Vector2 stageSize = stage.GetSize();
204   - float layoutWidth = Toolkit::IsHorizontal( gridLayout->GetOrientation() ) ? stageSize.height : stageSize.width;
205   - float gridItemSize = ( layoutWidth / gridLayout->GetNumberOfColumns() ) * 0.5f;
206   - gridLayout->SetScrollSpeedFactor( gridLayout->GetNumberOfColumns() / gridItemSize * 0.5f );
  197 + Toolkit::ItemLayoutPtr gridLayout = Toolkit::DefaultItemLayout::New( Toolkit::DefaultItemLayout::LIST );
  198 + Vector3 itemSize;
  199 + gridLayout->GetItemSize( 0, Vector3( stageSize ), itemSize );
  200 + itemSize.height = stageSize.y / 10;
  201 + gridLayout->SetItemSize( itemSize );
  202 + mItemView.AddLayout( *gridLayout );
207 203  
208 204 mItemView.ActivateLayout( 0, Vector3(stageSize.x, stageSize.y, stageSize.x), 0.0f );
209 205  
... ...