X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-Layouting.cpp;h=1be1e66d0a14ad962beddc32a282cbcf5e1f8f6c;hp=49bb0074278d14945a19e53a40ef00334fe6d151;hb=ec9a688fa39b6831eef9584dfa33a5b08b6c28a7;hpb=aa074b8dd817247c757473ab464db2920209af28 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp index 49bb007..1be1e66 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-Layouting.cpp @@ -21,8 +21,8 @@ #include #include -#include -#include +#include +#include #include @@ -46,7 +46,7 @@ int UtcDaliLayouting_HboxLayout01(void) Stage stage = Stage::GetCurrent(); auto hbox = Control::New(); - auto hboxLayout = HboxLayout::New(); + auto hboxLayout = LinearLayout::New(); hboxLayout.SetCellPadding( LayoutSize( 10, 0 ) ); DevelControl::SetLayout( hbox, hboxLayout ); hbox.SetName( "HBox"); @@ -81,6 +81,19 @@ int UtcDaliLayouting_HboxLayout01(void) DALI_TEST_EQUALS( controls[2].GetProperty( Actor::Property::SIZE ), Vector3( 80.0f, 40.0f, 0.0f ), 0.0001f, TEST_LOCATION ); DALI_TEST_EQUALS( controls[3].GetProperty( Actor::Property::SIZE ), Vector3( 100.0f, 40.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + // Change a layout + auto newHBoxLayout = LinearLayout::New(); + newHBoxLayout.SetCellPadding( LayoutSize( 10, 0 ) ); + DevelControl::SetLayout( hbox, newHBoxLayout ); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( controls[0].GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 380.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( controls[1].GetProperty( Actor::Property::POSITION ), Vector3( 50.0f, 380.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( controls[2].GetProperty( Actor::Property::POSITION ), Vector3( 120.0f, 380.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( controls[3].GetProperty( Actor::Property::POSITION ), Vector3( 210.0f, 380.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + END_TEST; } @@ -92,11 +105,11 @@ int UtcDaliLayouting_HboxLayout02(void) Stage stage = Stage::GetCurrent(); auto hbox1 = Control::New(); - auto hboxLayout1 = HboxLayout::New(); + auto hboxLayout1 = LinearLayout::New(); DevelControl::SetLayout( hbox1, hboxLayout1 ); auto hbox2 = Control::New(); - auto hboxLayout2 = HboxLayout::New(); + auto hboxLayout2 = LinearLayout::New(); DevelControl::SetLayout( hbox2, hboxLayout2 ); hbox1.SetName( "HBox1"); @@ -132,7 +145,7 @@ int UtcDaliLayouting_HboxLayout02(void) hbox2.SetAnchorPoint( AnchorPoint::CENTER ); auto hbox3 = Control::New(); - auto hboxLayout3 = HboxLayout::New(); + auto hboxLayout3 = LinearLayout::New(); DevelControl::SetLayout( hbox3, hboxLayout3 ); hbox3.SetParentOrigin( ParentOrigin::CENTER ); @@ -192,11 +205,11 @@ int UtcDaliLayouting_HboxLayout03(void) Stage stage = Stage::GetCurrent(); auto hbox1 = Control::New(); - auto hboxLayout1 = HboxLayout::New(); + auto hboxLayout1 = LinearLayout::New(); DevelControl::SetLayout( hbox1, hboxLayout1 ); auto hbox2 = Control::New(); - auto hboxLayout2 = HboxLayout::New(); + auto hboxLayout2 = LinearLayout::New(); DevelControl::SetLayout( hbox2, hboxLayout2 ); hbox1.SetName( "HBox1"); @@ -236,7 +249,7 @@ int UtcDaliLayouting_HboxLayout03(void) hbox2.SetAnchorPoint( AnchorPoint::CENTER ); auto hbox3 = Control::New(); - auto hboxLayout3 = HboxLayout::New(); + auto hboxLayout3 = LinearLayout::New(); DevelControl::SetLayout( hbox3, hboxLayout3); hbox3.SetParentOrigin( ParentOrigin::CENTER ); @@ -297,11 +310,11 @@ int UtcDaliLayouting_HboxLayout04(void) Stage stage = Stage::GetCurrent(); auto hbox1 = Control::New(); - auto hboxLayout1 = HboxLayout::New(); + auto hboxLayout1 = LinearLayout::New(); DevelControl::SetLayout( hbox1, hboxLayout1 ); auto hbox2 = Control::New(); - auto hboxLayout2 = HboxLayout::New(); + auto hboxLayout2 = LinearLayout::New(); DevelControl::SetLayout( hbox2, hboxLayout2 ); hbox1.SetName( "HBox1"); // Default spec is to wrap content @@ -338,7 +351,7 @@ int UtcDaliLayouting_HboxLayout04(void) controls[6].SetProperty( Toolkit::LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::MATCH_PARENT ); auto hbox3 = Control::New(); - auto hboxLayout3 = HboxLayout::New(); + auto hboxLayout3 = LinearLayout::New(); DevelControl::SetLayout( hbox3, hboxLayout3 ); hbox3.SetParentOrigin( ParentOrigin::CENTER ); @@ -389,6 +402,54 @@ int UtcDaliLayouting_HboxLayout04(void) END_TEST; } +int UtcDaliLayouting_HboxLayout05(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliLayouting_HboxLayout05 - Set children size explicitly via width & height specification"); + + Stage stage = Stage::GetCurrent(); + auto hbox = Control::New(); + auto hboxLayout = LinearLayout::New(); + hboxLayout.SetCellPadding( LayoutSize( 10, 0 ) ); + DevelControl::SetLayout( hbox, hboxLayout ); + hbox.SetName( "HBox"); + + std::vector< Control > controls; + controls.push_back( CreateLeafControl( 40, 40 ) ); + controls.push_back( CreateLeafControl( 60, 40 ) ); + controls.push_back( CreateLeafControl( 80, 40 ) ); + controls.push_back( CreateLeafControl( 100, 40 ) ); + + for( auto&& iter : controls ) + { + hbox.Add( iter ); + iter.SetProperty( Toolkit::LayoutItem::ChildProperty::WIDTH_SPECIFICATION, 100 ); + iter.SetProperty( Toolkit::LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, 50 ); + } + + hbox.SetParentOrigin( ParentOrigin::CENTER ); + hbox.SetAnchorPoint( AnchorPoint::CENTER ); + stage.Add( hbox ); + + // Ensure layouting happens + application.SendNotification(); + application.Render(); + + // hbox centers elements vertically, it fills test harness stage, which is 480x800. + // hbox left justifies elements + DALI_TEST_EQUALS( controls[0].GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 375.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( controls[1].GetProperty( Actor::Property::POSITION ), Vector3( 110.0f, 375.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( controls[2].GetProperty( Actor::Property::POSITION ), Vector3( 220.0f, 375.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( controls[3].GetProperty( Actor::Property::POSITION ), Vector3( 330.0f, 375.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + + DALI_TEST_EQUALS( controls[0].GetProperty( Actor::Property::SIZE ), Vector3( 100.0f, 50.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( controls[1].GetProperty( Actor::Property::SIZE ), Vector3( 100.0f, 50.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( controls[2].GetProperty( Actor::Property::SIZE ), Vector3( 100.0f, 50.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( controls[3].GetProperty( Actor::Property::SIZE ), Vector3( 100.0f, 50.0f, 0.0f ), 0.0001f, TEST_LOCATION ); + + END_TEST; +} + // Padding tests int UtcDaliLayouting_HboxLayout_Padding01(void) @@ -398,7 +459,7 @@ int UtcDaliLayouting_HboxLayout_Padding01(void) Stage stage = Stage::GetCurrent(); auto hbox = Control::New(); - auto hboxLayout = HboxLayout::New(); + auto hboxLayout = LinearLayout::New(); DevelControl::SetLayout( hbox, hboxLayout ); hbox.SetName( "HBox"); @@ -463,7 +524,7 @@ int UtcDaliLayouting_HboxLayout_Padding02(void) Stage stage = Stage::GetCurrent(); auto hbox = Control::New(); - auto hboxLayout = HboxLayout::New(); + auto hboxLayout = LinearLayout::New(); DevelControl::SetLayout( hbox, hboxLayout ); hbox.SetName( "HBox"); @@ -542,7 +603,7 @@ int UtcDaliLayouting_HboxLayout_Padding03(void) Stage stage = Stage::GetCurrent(); auto hbox = Control::New(); - auto hboxLayout = HboxLayout::New(); + auto hboxLayout = LinearLayout::New(); DevelControl::SetLayout( hbox, hboxLayout ); hbox.SetName( "HBox"); @@ -628,7 +689,7 @@ int UtcDaliLayouting_HboxLayout_Margin01(void) Stage stage = Stage::GetCurrent(); auto hbox = Control::New(); - auto hboxLayout = HboxLayout::New(); + auto hboxLayout = LinearLayout::New(); DevelControl::SetLayout( hbox, hboxLayout ); hbox.SetName( "HBox"); @@ -690,7 +751,8 @@ int UtcDaliLayouting_VboxLayout01(void) Stage stage = Stage::GetCurrent(); auto vbox = Control::New(); - auto vboxLayout = VboxLayout::New(); + auto vboxLayout = LinearLayout::New(); + vboxLayout.SetOrientation( LinearLayout::Orientation::VERTICAL ); DevelControl::SetLayout( vbox, vboxLayout ); vbox.SetName( "Vbox"); @@ -742,17 +804,18 @@ int UtcDaliLayouting_VboxLayout02(void) // LayoutGroup for this to happen automatically. // // For this test, add an hbox instead - auto hbox = Control::New(); - auto hboxLayout = HboxLayout::New(); - DevelControl::SetLayout( hbox, hboxLayout ); - hbox.SetName( "Hbox"); - stage.Add( hbox ); + auto rootControl = Control::New(); + auto absoluteLayout = AbsoluteLayout::New(); + DevelControl::SetLayout( rootControl, absoluteLayout ); + rootControl.SetName( "AbsoluteLayout"); + stage.Add( rootControl ); auto vbox = Control::New(); - auto vboxLayout = VboxLayout::New(); + auto vboxLayout = LinearLayout::New(); + vboxLayout.SetOrientation( LinearLayout::Orientation::VERTICAL ); DevelControl::SetLayout( vbox, vboxLayout ); vbox.SetName( "Vbox"); - hbox.Add( vbox ); + rootControl.Add( vbox ); vbox.SetProperty( Toolkit::LayoutItem::ChildProperty::WIDTH_SPECIFICATION, ChildLayoutData::WRAP_CONTENT ); vbox.SetProperty( Toolkit::LayoutItem::ChildProperty::HEIGHT_SPECIFICATION, ChildLayoutData::MATCH_PARENT ); @@ -779,8 +842,8 @@ int UtcDaliLayouting_VboxLayout02(void) application.SendNotification(); application.Render(); - DALI_TEST_EQUALS( hbox.GetProperty(Actor::Property::POSITION), Vector3(0,0,0),TEST_LOCATION); - DALI_TEST_EQUALS( hbox.GetProperty(Actor::Property::SIZE), Vector3(480,800,0),TEST_LOCATION); + DALI_TEST_EQUALS( rootControl.GetProperty(Actor::Property::POSITION), Vector3(0,0,0),TEST_LOCATION); + DALI_TEST_EQUALS( rootControl.GetProperty(Actor::Property::SIZE), Vector3(480,800,0),TEST_LOCATION); // vbox centers elements horizontally, it should wrap it's content horizontally, i.e. it should take the width of the largest element (100) DALI_TEST_EQUALS( vbox.GetProperty( Actor::Property::POSITION ), Vector3( 0.0f, 0.0f, 0.0f ), 0.0001f, TEST_LOCATION ); @@ -813,14 +876,15 @@ int UtcDaliLayouting_VboxLayout03(void) // // For this test, add an hbox instead auto hbox = Control::New(); - auto hboxLayout = HboxLayout::New(); + auto hboxLayout = LinearLayout::New(); DevelControl::SetLayout( hbox, hboxLayout ); hbox.SetName( "Hbox"); stage.Add( hbox ); auto vbox = Control::New(); - auto vboxLayout = VboxLayout::New(); + auto vboxLayout = LinearLayout::New(); vboxLayout.SetCellPadding( LayoutSize( 0, 10 ) ); + vboxLayout.SetOrientation( LinearLayout::Orientation::VERTICAL ); DALI_TEST_EQUALS( vboxLayout.GetCellPadding(), LayoutSize( 0, 10 ), TEST_LOCATION );