*
*/
-#include <iostream>
-#include <stdlib.h>
#include <dali-toolkit-test-suite-utils.h>
#include <dali-toolkit/dali-toolkit.h>
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
+#include <stdlib.h>
+#include <iostream>
+#include <sstream>
using namespace Dali;
using namespace Toolkit;
namespace
{
-
-const char* const PROPERTY_NAME_ROWS = "rows";
-const char* const PROPERTY_NAME_COLUMNS = "columns";
-const char* const PROPERTY_NAME_CELL_PADDING = "cell-padding";
-const char* const PROPERTY_NAME_LAYOUT_ROWS = "layout-rows";
-const char* const PROPERTY_NAME_LAYOUT_COLUMNS = "layout-columns";
+const char* const PROPERTY_NAME_ROWS = "rows";
+const char* const PROPERTY_NAME_COLUMNS = "columns";
+const char* const PROPERTY_NAME_CELL_PADDING = "cellPadding";
+const char* const PROPERTY_NAME_LAYOUT_ROWS = "layoutRows";
+const char* const PROPERTY_NAME_LAYOUT_COLUMNS = "layoutColumns";
+const Vector2 CELL_SIZE(10, 10);
static bool gObjectCreatedCallBackCalled;
struct Constraint100
{
- Constraint100( )
+ Constraint100()
{
}
/**
* function operator to apply the parent size
*/
- void operator()( Dali::Vector3& current, const PropertyInputContainer& /* inputs */ )
+ void operator()(Dali::Vector3& current, const PropertyInputContainer& /* inputs */)
{
current.x = current.y = current.z = 100.0f;
}
};
// Convenience function to quickly set up a 10x10 table with each cell being 10x10 pixels in size by default.
-static void SetupTableViewAndActors(TableView& tableView, Actor& actor1, Actor& actor2, Actor& actor3)
+static void SetupTableViewAndActors(Integration::Scene scene, TableView& tableView, Actor& actor1, Actor& actor2, Actor& actor3)
{
- tableView = TableView::New( 10, 10 ); // 10 by 10 grid.
- DALI_TEST_CHECK( tableView );
+ tableView = TableView::New(10, 10); // 10 by 10 grid.
+ DALI_TEST_CHECK(tableView);
- Stage::GetCurrent().Add( tableView );
- tableView.SetSize( Dali::Vector2( 100.0f, 100.0f ) );
+ scene.Add(tableView);
+ tableView.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f));
actor1 = Actor::New();
actor2 = Actor::New();
actor3 = Actor::New();
- actor1.SetSize( Dali::Vector2( 10, 10 ) );
- actor2.SetSize( Dali::Vector2( 10, 10 ) );
- actor3.SetSize( Dali::Vector2( 10, 10 ) );
+ actor1.SetProperty(Actor::Property::SIZE, CELL_SIZE);
+ actor2.SetProperty(Actor::Property::SIZE, CELL_SIZE);
+ actor3.SetProperty(Actor::Property::SIZE, CELL_SIZE);
- tableView.AddChild( actor1, TableView::CellPosition( 0, 0 ) );
- tableView.AddChild( actor2, TableView::CellPosition( 0, 1 ) );
- tableView.AddChild( actor3, TableView::CellPosition( 1, 0 ) );
+ tableView.AddChild(actor1, TableView::CellPosition(0, 0));
+ tableView.AddChild(actor2, TableView::CellPosition(0, 1));
+ tableView.AddChild(actor3, TableView::CellPosition(1, 0));
}
} // namespace
+int UtcDaliTableViewCtorCopyP(void)
+{
+ ToolkitTestApplication application;
+
+ TableView actor1 = TableView::New(10, 10);
+ TableView actor2(actor1);
+
+ DALI_TEST_EQUALS(actor1, actor2, TEST_LOCATION);
+ END_TEST;
+}
+
int UtcDaliTableViewNew(void)
{
ToolkitTestApplication application;
- TableView tableView = TableView::New(10,10);
+ TableView tableView = TableView::New(10, 10);
DALI_TEST_CHECK(tableView);
//Additional check to ensure object is created by checking if it's registered
- ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
- DALI_TEST_CHECK( registry );
+ ObjectRegistry registry = application.GetCore().GetObjectRegistry();
+ DALI_TEST_CHECK(registry);
gObjectCreatedCallBackCalled = false;
registry.ObjectCreatedSignal().Connect(&TestCallback);
{
- TableView tableView = TableView::New(10,10);
+ TableView tableView = TableView::New(10, 10);
}
- DALI_TEST_CHECK( gObjectCreatedCallBackCalled );
+ DALI_TEST_CHECK(gObjectCreatedCallBackCalled);
END_TEST;
}
tet_infoline("UtcDaliTableViewMetricsPadding");
TableView tableView;
- Actor actor1;
- Actor actor2;
- Actor actor3;
+ Actor actor1;
+ Actor actor2;
+ Actor actor3;
- SetupTableViewAndActors(tableView, actor1, actor2, actor3);
+ SetupTableViewAndActors(application.GetScene(), tableView, actor1, actor2, actor3);
// 1. check that padding works. no padding:
tableView.SetCellPadding(Size(0.0f, 0.0f));
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS( tableView.GetCellPadding(), Size(0.0f, 0.0f), TEST_LOCATION );
- DALI_TEST_EQUALS( actor1.GetCurrentPosition(), Vector3(0.0f, 0.0f, 0.0f), TEST_LOCATION );
- DALI_TEST_EQUALS( actor2.GetCurrentPosition(), Vector3(10.0f, 0.0f, 0.0f), TEST_LOCATION );
- DALI_TEST_EQUALS( actor3.GetCurrentPosition(), Vector3(0.0f, 10.0f, 0.0f), TEST_LOCATION );
+ DALI_TEST_EQUALS(tableView.GetCellPadding(), Size(0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor1.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(10.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor3.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 10.0f, 0.0f), TEST_LOCATION);
// 1. check that padding works. some padding:
tableView.SetCellPadding(Size(5.0f, 10.0f));
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS( tableView.GetCellPadding(), Size(5.0f, 10.0f), TEST_LOCATION );
- DALI_TEST_EQUALS( actor1.GetCurrentPosition(), Vector3(5.0f, 10.0f, 0.0f), TEST_LOCATION );
+ DALI_TEST_EQUALS(tableView.GetCellPadding(), Size(5.0f, 10.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor1.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(5.0f, 10.0f, 0.0f), TEST_LOCATION);
+ END_TEST;
+}
+
+// Test adjusting the metric values for the cell.
+int UtcDaliTableViewMetricsFit(void)
+{
+ ToolkitTestApplication application;
+
+ tet_infoline("UtcDaliTableViewMetricsFit");
+
+ TableView tableView;
+ Actor actor1;
+ Actor actor2;
+ Actor actor3;
+
+ SetupTableViewAndActors(application.GetScene(), tableView, actor1, actor2, actor3);
+ application.SendNotification();
+ application.Render();
+
+ // 1. check that with no fixed width/heights, actors are in default position.
+ DALI_TEST_EQUALS(actor1.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(10.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor3.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 10.0f, 0.0f), TEST_LOCATION);
+
+ // 2. check that with a fixed width & height, actors to the right and below are offsetted.
+ tableView.SetFitHeight(0);
+ tableView.SetFitWidth(0);
+ DALI_TEST_EQUALS(tableView.IsFitHeight(0), true, TEST_LOCATION);
+ DALI_TEST_EQUALS(tableView.IsFitWidth(0), true, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(actor1.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(10.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor3.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 10.0f, 0.0f), TEST_LOCATION);
+
+ tableView.SetProperty(Dali::Actor::Property::LAYOUT_DIRECTION, Dali::LayoutDirection::RIGHT_TO_LEFT);
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(actor1.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(90.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(80.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor3.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(90.0f, 10.0f, 0.0f), TEST_LOCATION);
+
+ tableView.SetProperty(Dali::Actor::Property::LAYOUT_DIRECTION, Dali::LayoutDirection::LEFT_TO_RIGHT);
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(actor1.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(10.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor3.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 10.0f, 0.0f), TEST_LOCATION);
+
END_TEST;
}
tet_infoline("UtcDaliTableViewMetricsFixed");
TableView tableView;
- Actor actor1;
- Actor actor2;
- Actor actor3;
+ Actor actor1;
+ Actor actor2;
+ Actor actor3;
- SetupTableViewAndActors(tableView, actor1, actor2, actor3);
+ SetupTableViewAndActors(application.GetScene(), tableView, actor1, actor2, actor3);
application.SendNotification();
application.Render();
// 1. check that with no fixed width/heights, actors are in default position.
- DALI_TEST_EQUALS( actor1.GetCurrentPosition(), Vector3(0.0f, 0.0f, 0.0f), TEST_LOCATION );
- DALI_TEST_EQUALS( actor2.GetCurrentPosition(), Vector3(10.0f, 0.0f, 0.0f), TEST_LOCATION );
- DALI_TEST_EQUALS( actor3.GetCurrentPosition(), Vector3(0.0f, 10.0f, 0.0f), TEST_LOCATION );
+ DALI_TEST_EQUALS(actor1.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(10.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor3.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 10.0f, 0.0f), TEST_LOCATION);
// 2. check that with a fixed width & height, actors to the right and below are offsetted.
tableView.SetFixedWidth(0, 20.0f);
tableView.SetFixedHeight(0, 50.0f);
- DALI_TEST_EQUALS( tableView.GetFixedWidth(0), 20.0f, TEST_LOCATION );
- DALI_TEST_EQUALS( tableView.GetFixedHeight(0), 50.0f, TEST_LOCATION );
+ DALI_TEST_EQUALS(tableView.GetFixedWidth(0), 20.0f, TEST_LOCATION);
+ DALI_TEST_EQUALS(tableView.GetFixedHeight(0), 50.0f, TEST_LOCATION);
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS( actor1.GetCurrentPosition(), Vector3(0.0f, 0.0f, 0.0f), TEST_LOCATION );
- DALI_TEST_EQUALS( actor2.GetCurrentPosition(), Vector3(20.0f, 0.0f, 0.0f), TEST_LOCATION );
- DALI_TEST_EQUALS( actor3.GetCurrentPosition(), Vector3(0.0f, 50.0f, 0.0f), TEST_LOCATION );
+ DALI_TEST_EQUALS(actor1.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(20.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor3.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 50.0f, 0.0f), TEST_LOCATION);
END_TEST;
}
tet_infoline("UtcDaliTableViewMetricsRelative");
TableView tableView;
- Actor actor1;
- Actor actor2;
- Actor actor3;
+ Actor actor1;
+ Actor actor2;
+ Actor actor3;
- SetupTableViewAndActors(tableView, actor1, actor2, actor3);
+ SetupTableViewAndActors(application.GetScene(), tableView, actor1, actor2, actor3);
application.SendNotification();
application.Render();
// 1. check that with no relative width/heights, actors are in default position.
- DALI_TEST_EQUALS( actor1.GetCurrentPosition(), Vector3(0.0f, 0.0f, 0.0f), TEST_LOCATION );
- DALI_TEST_EQUALS( actor2.GetCurrentPosition(), Vector3(10.0f, 0.0f, 0.0f), TEST_LOCATION );
- DALI_TEST_EQUALS( actor3.GetCurrentPosition(), Vector3(0.0f, 10.0f, 0.0f), TEST_LOCATION );
+ DALI_TEST_EQUALS(actor1.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(10.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor3.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 10.0f, 0.0f), TEST_LOCATION);
// 2. check that with a relative width & height, actors to the right and below are offsetted.
tableView.SetRelativeWidth(0, 0.3f); // cell 0,0 occupies 30%x50% of the grid (i.e. 30x50 pixels)
tableView.SetRelativeHeight(0, 0.5f);
- DALI_TEST_EQUALS( tableView.GetRelativeWidth(0), 0.3f, TEST_LOCATION );
- DALI_TEST_EQUALS( tableView.GetRelativeHeight(0), 0.5f, TEST_LOCATION );
+ DALI_TEST_EQUALS(tableView.GetRelativeWidth(0), 0.3f, TEST_LOCATION);
+ DALI_TEST_EQUALS(tableView.GetRelativeHeight(0), 0.5f, TEST_LOCATION);
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS( actor1.GetCurrentPosition(), Vector3(0.0f, 0.0f, 0.0f), TEST_LOCATION );
- DALI_TEST_EQUALS( actor2.GetCurrentPosition(), Vector3(30.0f, 0.0f, 0.0f), TEST_LOCATION );
- DALI_TEST_EQUALS( actor3.GetCurrentPosition(), Vector3(0.0f, 50.0f, 0.0f), TEST_LOCATION );
+ DALI_TEST_EQUALS(actor1.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(30.0f, 0.0f, 0.0f), TEST_LOCATION);
+ DALI_TEST_EQUALS(actor3.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(0.0f, 50.0f, 0.0f), TEST_LOCATION);
END_TEST;
}
-
// Test Adding/Removing/Finding Children.
int UtcDaliTableViewChild(void)
{
tet_infoline("UtcDaliTableViewChild");
// Create a 10x10 table-view
- TableView tableView = TableView::New(10,10);
- DALI_TEST_CHECK( tableView );
+ TableView tableView = TableView::New(10, 10);
+ DALI_TEST_CHECK(tableView);
// Check if actor doesn't exist.
- DALI_TEST_CHECK( !tableView.GetChildAt(TableView::CellPosition(0,0)) );
+ DALI_TEST_CHECK(!tableView.GetChildAt(TableView::CellPosition(0, 0)));
// Add an actor to it at 0,0
Actor actor = Actor::New();
tableView.AddChild(actor, TableView::CellPosition());
// Check if exists.
- DALI_TEST_CHECK( tableView.GetChildAt(TableView::CellPosition(0,0)) );
+ DALI_TEST_CHECK(tableView.GetChildAt(TableView::CellPosition(0, 0)));
// Remove this actor
tableView.RemoveChildAt(TableView::CellPosition());
// Check if actor no longer exists.
- DALI_TEST_CHECK( !tableView.GetChildAt(TableView::CellPosition(0,0)) );
+ DALI_TEST_CHECK(!tableView.GetChildAt(TableView::CellPosition(0, 0)));
// Add actor to it again, but at 2,5
- tableView.AddChild(actor, TableView::CellPosition(2,5));
+ tableView.AddChild(actor, TableView::CellPosition(2, 5));
// Add another actor somewhere else 7,8
Actor actor2 = Actor::New();
- tableView.AddChild(actor2, TableView::CellPosition(7,8));
+ tableView.AddChild(actor2, TableView::CellPosition(7, 8));
Actor searchActor;
// Check that no actor exists in a few random places.
- DALI_TEST_CHECK( !tableView.GetChildAt(TableView::CellPosition(0,0)) );
- DALI_TEST_CHECK( !tableView.GetChildAt(TableView::CellPosition(2,1)) );
- DALI_TEST_CHECK( !tableView.GetChildAt(TableView::CellPosition(6,3)) );
- DALI_TEST_CHECK( !tableView.GetChildAt(TableView::CellPosition(9,5)) );
+ DALI_TEST_CHECK(!tableView.GetChildAt(TableView::CellPosition(0, 0)));
+ DALI_TEST_CHECK(!tableView.GetChildAt(TableView::CellPosition(2, 1)));
+ DALI_TEST_CHECK(!tableView.GetChildAt(TableView::CellPosition(6, 3)));
+ DALI_TEST_CHECK(!tableView.GetChildAt(TableView::CellPosition(9, 5)));
// Check for actors at actual positions.
- searchActor = tableView.GetChildAt(TableView::CellPosition(2,5));
- DALI_TEST_CHECK( searchActor == actor);
+ searchActor = tableView.GetChildAt(TableView::CellPosition(2, 5));
+ DALI_TEST_CHECK(searchActor == actor);
- searchActor = tableView.GetChildAt(TableView::CellPosition(7,8));
- DALI_TEST_CHECK( searchActor == actor2);
+ searchActor = tableView.GetChildAt(TableView::CellPosition(7, 8));
+ DALI_TEST_CHECK(searchActor == actor2);
// Create a second table, and add already added Child to new one.
- TableView tableView2 = TableView::New(5,5);
- tableView2.AddChild(actor, TableView::CellPosition(2,2));
- DALI_TEST_CHECK( tableView2.GetChildAt(TableView::CellPosition(2,2)) );
+ TableView tableView2 = TableView::New(5, 5);
+ tableView2.AddChild(actor, TableView::CellPosition(2, 2));
+ DALI_TEST_CHECK(tableView2.GetChildAt(TableView::CellPosition(2, 2)));
END_TEST;
}
tet_infoline("UtcDaliTableViewAdd");
// Create a 4x1 table-view, and just keep adding.
- TableView tableView = TableView::New(1,4);
- DALI_TEST_CHECK( tableView );
+ TableView tableView = TableView::New(1, 4);
+ DALI_TEST_CHECK(tableView);
- for(unsigned int i = 0;i<16;i++)
+ for(unsigned int i = 0; i < 16; i++)
{
- Actor currentActor = Actor::New();
- TableView::CellPosition position = TableView::CellPosition();
- tableView.Add( currentActor );
+ Actor currentActor = Actor::New();
+ TableView::CellPosition position = TableView::CellPosition();
+ tableView.Add(currentActor);
tableView.FindChildPosition(currentActor, position);
tet_printf("%dx%d (%d,%d)\n", tableView.GetColumns(), tableView.GetRows(), position.columnIndex, position.rowIndex);
tet_infoline("UtcDaliTableViewCells");
// Create a 10x10 table-view
- TableView tableView = TableView::New(10,10);
- DALI_TEST_CHECK( tableView );
+ TableView tableView = TableView::New(10, 10);
+ DALI_TEST_CHECK(tableView);
// Add a few actors to the table.
Actor actor1 = Actor::New();
Actor actor2 = Actor::New();
Actor actor3 = Actor::New();
- actor1.SetName("Actor1");
- actor2.SetName("Actor2");
- actor3.SetName("Actor3");
+ actor1.SetProperty(Dali::Actor::Property::NAME, "Actor1");
+ actor2.SetProperty(Dali::Actor::Property::NAME, "Actor2");
+ actor3.SetProperty(Dali::Actor::Property::NAME, "Actor3");
// note: positions are specified in reversed cartesian coords - row,col (i.e. y,x)
- tableView.AddChild(actor1, TableView::CellPosition(0,0));
- tableView.AddChild(actor2, TableView::CellPosition(5,5));
- tableView.AddChild(actor3, TableView::CellPosition(7,2));
+ tableView.AddChild(actor1, TableView::CellPosition(0, 0));
+ tableView.AddChild(actor2, TableView::CellPosition(5, 5));
+ tableView.AddChild(actor3, TableView::CellPosition(7, 2));
- DALI_TEST_CHECK( tableView.GetRows() == 10 && tableView.GetColumns() == 10 );
+ DALI_TEST_CHECK(tableView.GetRows() == 10 && tableView.GetColumns() == 10);
// Add a row between actor1 and actor2 | insert column on actor1 and see what happens...
tableView.InsertRow(3);
tableView.InsertColumn(0);
- DALI_TEST_CHECK( tableView.GetRows() == 11 && tableView.GetColumns() == 11 );
+ DALI_TEST_CHECK(tableView.GetRows() == 11 && tableView.GetColumns() == 11);
TableView::CellPosition cellPosition;
- bool result;
+ bool result;
result = tableView.FindChildPosition(actor1, cellPosition);
- DALI_TEST_CHECK( result && cellPosition.rowIndex == 0 && cellPosition.columnIndex == 1);
+ DALI_TEST_CHECK(result && cellPosition.rowIndex == 0 && cellPosition.columnIndex == 1);
result = tableView.FindChildPosition(actor2, cellPosition);
- DALI_TEST_CHECK( result && cellPosition.rowIndex == 6 && cellPosition.columnIndex == 6);
+ DALI_TEST_CHECK(result && cellPosition.rowIndex == 6 && cellPosition.columnIndex == 6);
result = tableView.FindChildPosition(actor3, cellPosition);
- DALI_TEST_CHECK( result && cellPosition.rowIndex == 8 && cellPosition.columnIndex == 3);
+ DALI_TEST_CHECK(result && cellPosition.rowIndex == 8 && cellPosition.columnIndex == 3);
// Delete a row between actor2 and actor3 | delete column on actor2 and see what happens...
tableView.DeleteRow(7);
tableView.DeleteColumn(6);
- DALI_TEST_CHECK( tableView.GetRows() == 10 && tableView.GetColumns() == 10 );
+ DALI_TEST_CHECK(tableView.GetRows() == 10 && tableView.GetColumns() == 10);
result = tableView.FindChildPosition(actor1, cellPosition);
- DALI_TEST_CHECK( result && cellPosition.rowIndex == 0 && cellPosition.columnIndex == 1);
+ DALI_TEST_CHECK(result && cellPosition.rowIndex == 0 && cellPosition.columnIndex == 1);
result = tableView.FindChildPosition(actor2, cellPosition);
- DALI_TEST_CHECK( !result );
+ DALI_TEST_CHECK(!result);
result = tableView.FindChildPosition(actor3, cellPosition);
- DALI_TEST_CHECK( result && cellPosition.rowIndex == 7 && cellPosition.columnIndex == 3);
+ DALI_TEST_CHECK(result && cellPosition.rowIndex == 7 && cellPosition.columnIndex == 3);
// Delete the other two remaining actors by a row delete and a column delete.
std::vector<Actor> actorsRemoved;
tableView.DeleteRow(0, actorsRemoved);
tet_printf("Row Delete >> Actors Removed: %d {", actorsRemoved.size());
- for(size_t i = 0;i<actorsRemoved.size();i++) tet_printf("%d => %s, ", i, actorsRemoved[i].GetName().c_str());
+ for(size_t i = 0; i < actorsRemoved.size(); i++) tet_printf("%d => %s, ", i, actorsRemoved[i].GetProperty<std::string>(Dali::Actor::Property::NAME).c_str());
tet_printf("}\n");
- DALI_TEST_EQUALS( static_cast<int>(actorsRemoved.size()), 1, TEST_LOCATION );
- DALI_TEST_CHECK( actorsRemoved[0] == actor1 );
+ DALI_TEST_EQUALS(static_cast<int>(actorsRemoved.size()), 1, TEST_LOCATION);
+ DALI_TEST_CHECK(actorsRemoved[0] == actor1);
actorsRemoved.clear();
tableView.DeleteColumn(3, actorsRemoved);
tet_printf("Column Delete >> Actors Removed: %d {", actorsRemoved.size());
- for(size_t i = 0;i<actorsRemoved.size();i++) tet_printf("%d => %s, ", i, actorsRemoved[i].GetName().c_str());
+ for(size_t i = 0; i < actorsRemoved.size(); i++) tet_printf("%d => %s, ", i, actorsRemoved[i].GetProperty<std::string>(Dali::Actor::Property::NAME).c_str());
tet_printf("}\n");
- DALI_TEST_EQUALS( static_cast<int>(actorsRemoved.size()), 1, TEST_LOCATION );
- DALI_TEST_CHECK( actorsRemoved[0] == actor3 );
+ DALI_TEST_EQUALS(static_cast<int>(actorsRemoved.size()), 1, TEST_LOCATION);
+ DALI_TEST_CHECK(actorsRemoved[0] == actor3);
- DALI_TEST_CHECK( tableView.GetRows() == 9 && tableView.GetColumns() == 9 );
+ DALI_TEST_CHECK(tableView.GetRows() == 9 && tableView.GetColumns() == 9);
- tableView.AddChild(actor1, TableView::CellPosition(5,8));
- tableView.Resize(100,100);
- DALI_TEST_CHECK( tableView.GetRows() == 100 && tableView.GetColumns() == 100 );
+ tableView.AddChild(actor1, TableView::CellPosition(5, 8));
+ tableView.Resize(100, 100);
+ DALI_TEST_CHECK(tableView.GetRows() == 100 && tableView.GetColumns() == 100);
- tableView.AddChild(actor2, TableView::CellPosition(69,57));
- DALI_TEST_CHECK( tableView.FindChildPosition(actor1, cellPosition) && tableView.FindChildPosition(actor2, cellPosition) );
+ tableView.AddChild(actor2, TableView::CellPosition(69, 57));
+ DALI_TEST_CHECK(tableView.FindChildPosition(actor1, cellPosition) && tableView.FindChildPosition(actor2, cellPosition));
- tableView.Resize(20,20);
- DALI_TEST_CHECK( tableView.FindChildPosition(actor1, cellPosition) && !tableView.FindChildPosition(actor2, cellPosition) );
+ tableView.Resize(20, 20);
+ DALI_TEST_CHECK(tableView.FindChildPosition(actor1, cellPosition) && !tableView.FindChildPosition(actor2, cellPosition));
actorsRemoved.clear();
- tableView.Resize(1,1, actorsRemoved);
- DALI_TEST_CHECK( !tableView.FindChildPosition(actor1, cellPosition) && !tableView.FindChildPosition(actor2, cellPosition) );
- DALI_TEST_EQUALS( static_cast<int>(actorsRemoved.size()), 1, TEST_LOCATION );
- DALI_TEST_CHECK( actorsRemoved[0] == actor1 );
+ tableView.Resize(1, 1, actorsRemoved);
+ DALI_TEST_CHECK(!tableView.FindChildPosition(actor1, cellPosition) && !tableView.FindChildPosition(actor2, cellPosition));
+ DALI_TEST_EQUALS(static_cast<int>(actorsRemoved.size()), 1, TEST_LOCATION);
+ DALI_TEST_CHECK(actorsRemoved[0] == actor1);
// Add child outside table size, forcing a resize.
tableView.AddChild(actor1, TableView::CellPosition(100, 100, 1, 1));
- DALI_TEST_CHECK( tableView.GetRows() == 101 && tableView.GetColumns() == 101 );
+ DALI_TEST_CHECK(tableView.GetRows() == 101 && tableView.GetColumns() == 101);
// Add child outside table size, forcing a resize.
tableView.AddChild(actor1, TableView::CellPosition(110, 110, 5, 5));
- DALI_TEST_CHECK( tableView.GetRows() == 115 && tableView.GetColumns() == 115 );
+ DALI_TEST_CHECK(tableView.GetRows() == 115 && tableView.GetColumns() == 115);
- DALI_TEST_CHECK( true );
+ // Set the alignment of the cell
+ tableView.SetCellAlignment(TableView::CellPosition(100, 100, 1, 1), HorizontalAlignment::CENTER, VerticalAlignment::CENTER);
+ tableView.SetCellAlignment(TableView::CellPosition(110, 110, 5, 5), HorizontalAlignment::LEFT, VerticalAlignment::TOP);
+
+ DALI_TEST_CHECK(true);
END_TEST;
}
tet_infoline("UtcDaliTableViewChildAssert");
// Create a 10x10 table-view
- TableView tableView = TableView::New(10,10);
- DALI_TEST_CHECK( tableView );
+ TableView tableView = TableView::New(10, 10);
+ DALI_TEST_CHECK(tableView);
Actor childActor;
try
{
- tableView.AddChild( childActor, TableView::CellPosition(0,0,5,5) );
+ tableView.AddChild(childActor, TableView::CellPosition(0, 0, 5, 5));
// should assert
tet_result(TET_FAIL);
}
- catch( Dali::DaliException& e )
+ catch(Dali::DaliException& e)
{
- DALI_TEST_PRINT_ASSERT( e );
+ DALI_TEST_PRINT_ASSERT(e);
DALI_TEST_EQUALS(e.condition, "child", TEST_LOCATION);
}
END_TEST;
tet_infoline("UtcDaliTableViewChildAssert");
// Create a 10x10 table-view
- TableView tableView = TableView::New(10,10);
- DALI_TEST_CHECK( tableView );
+ TableView tableView = TableView::New(10, 10);
+ DALI_TEST_CHECK(tableView);
// fixeds...
try
{
- tableView.SetFixedHeight( 10, 1.0f );
+ tableView.SetFixedHeight(10, 1.0f);
tet_result(TET_FAIL);
}
- catch( Dali::DaliException& e )
+ catch(Dali::DaliException& e)
{
- DALI_TEST_PRINT_ASSERT( e );
+ DALI_TEST_PRINT_ASSERT(e);
DALI_TEST_EQUALS(e.condition, "rowIndex < mRowData.Size()", TEST_LOCATION);
}
try
{
- tableView.GetFixedHeight( 10 );
+ tableView.GetFixedHeight(10);
tet_result(TET_FAIL);
}
- catch( Dali::DaliException& e )
+ catch(Dali::DaliException& e)
{
- DALI_TEST_PRINT_ASSERT( e );
+ DALI_TEST_PRINT_ASSERT(e);
DALI_TEST_EQUALS(e.condition, "rowIndex < mRowData.Size()", TEST_LOCATION);
}
try
{
- tableView.SetFixedWidth( 10, 1.0f );
+ tableView.SetFixedWidth(10, 1.0f);
tet_result(TET_FAIL);
}
- catch( Dali::DaliException& e )
+ catch(Dali::DaliException& e)
{
- DALI_TEST_PRINT_ASSERT( e );
+ DALI_TEST_PRINT_ASSERT(e);
DALI_TEST_EQUALS(e.condition, "columnIndex < mColumnData.Size()", TEST_LOCATION);
}
try
{
- tableView.GetFixedWidth( 10 );
+ tableView.GetFixedWidth(10);
tet_result(TET_FAIL);
}
- catch( Dali::DaliException& e )
+ catch(Dali::DaliException& e)
{
- DALI_TEST_PRINT_ASSERT( e );
+ DALI_TEST_PRINT_ASSERT(e);
DALI_TEST_EQUALS(e.condition, "columnIndex < mColumnData.Size()", TEST_LOCATION);
}
try
{
- tableView.SetRelativeHeight( 10, 0.1f );
+ tableView.SetRelativeHeight(10, 0.1f);
tet_result(TET_FAIL);
}
- catch( Dali::DaliException& e )
+ catch(Dali::DaliException& e)
{
- DALI_TEST_PRINT_ASSERT( e );
+ DALI_TEST_PRINT_ASSERT(e);
DALI_TEST_EQUALS(e.condition, "rowIndex < mRowData.Size()", TEST_LOCATION);
}
try
{
- tableView.GetRelativeHeight( 10 );
+ tableView.GetRelativeHeight(10);
tet_result(TET_FAIL);
}
- catch( Dali::DaliException& e )
+ catch(Dali::DaliException& e)
{
- DALI_TEST_PRINT_ASSERT( e );
+ DALI_TEST_PRINT_ASSERT(e);
DALI_TEST_EQUALS(e.condition, "rowIndex < mRowData.Size()", TEST_LOCATION);
}
try
{
- tableView.SetRelativeWidth( 10, 0.1f );
+ tableView.SetRelativeWidth(10, 0.1f);
tet_result(TET_FAIL);
}
- catch( Dali::DaliException& e )
+ catch(Dali::DaliException& e)
{
- DALI_TEST_PRINT_ASSERT( e );
+ DALI_TEST_PRINT_ASSERT(e);
DALI_TEST_EQUALS(e.condition, "columnIndex < mColumnData.Size()", TEST_LOCATION);
}
try
{
- tableView.GetRelativeWidth( 10 );
+ tableView.GetRelativeWidth(10);
tet_result(TET_FAIL);
}
- catch( Dali::DaliException& e )
+ catch(Dali::DaliException& e)
{
- DALI_TEST_PRINT_ASSERT( e );
+ DALI_TEST_PRINT_ASSERT(e);
DALI_TEST_EQUALS(e.condition, "columnIndex < mColumnData.Size()", TEST_LOCATION);
}
END_TEST;
tet_infoline("UtcDaliTableViewSetGetProperty");
// Create a 1x1 table-view
- TableView tableView = TableView::New(1,1);
- tableView.SetSize( Vector2( 100.0f, 100.0f ) );
- DALI_TEST_CHECK( tableView );
+ TableView tableView = TableView::New(1, 1);
+ tableView.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f));
+ DALI_TEST_CHECK(tableView);
// Test "rows" property
- DALI_TEST_CHECK( tableView.GetPropertyIndex( PROPERTY_NAME_ROWS ) == TableView::Property::ROWS );
+ DALI_TEST_CHECK(tableView.GetPropertyIndex(PROPERTY_NAME_ROWS) == TableView::Property::ROWS);
- tableView.SetProperty( TableView::Property::ROWS, 4u );
+ tableView.SetProperty(TableView::Property::ROWS, 4);
- DALI_TEST_CHECK( tableView.GetRows() == 4u );
- DALI_TEST_CHECK( tableView.GetProperty(TableView::Property::ROWS).Get<unsigned int>() == 4u );
+ DALI_TEST_CHECK(tableView.GetRows() == 4u);
+ DALI_TEST_CHECK(tableView.GetProperty(TableView::Property::ROWS).Get<int>() == 4);
// Test "columns" property
- DALI_TEST_CHECK( tableView.GetPropertyIndex( PROPERTY_NAME_COLUMNS ) == TableView::Property::COLUMNS );
+ DALI_TEST_CHECK(tableView.GetPropertyIndex(PROPERTY_NAME_COLUMNS) == TableView::Property::COLUMNS);
- tableView.SetProperty( TableView::Property::COLUMNS, 5u );
+ tableView.SetProperty(TableView::Property::COLUMNS, 5);
- DALI_TEST_CHECK( tableView.GetColumns() == 5u );
- DALI_TEST_CHECK( tableView.GetProperty(TableView::Property::COLUMNS).Get<unsigned int>() == 5u );
+ DALI_TEST_CHECK(tableView.GetColumns() == 5u);
+ DALI_TEST_CHECK(tableView.GetProperty(TableView::Property::COLUMNS).Get<int>() == 5);
- // Test "cell-padding" property
- DALI_TEST_CHECK( tableView.GetPropertyIndex( PROPERTY_NAME_CELL_PADDING ) == TableView::Property::CELL_PADDING );
+ // Test "cellPadding" property
+ DALI_TEST_CHECK(tableView.GetPropertyIndex(PROPERTY_NAME_CELL_PADDING) == TableView::Property::CELL_PADDING);
- tableView.SetProperty( TableView::Property::CELL_PADDING, Size( 6.f, 8.f ) );
+ tableView.SetProperty(TableView::Property::CELL_PADDING, Size(6.f, 8.f));
- DALI_TEST_EQUALS( tableView.GetCellPadding(), Size(6.f, 8.f), TEST_LOCATION );
- DALI_TEST_EQUALS( tableView.GetProperty(TableView::Property::CELL_PADDING).Get<Vector2>(), Vector2(6.f,8.f), TEST_LOCATION );
+ DALI_TEST_EQUALS(tableView.GetCellPadding(), Size(6.f, 8.f), TEST_LOCATION);
+ DALI_TEST_EQUALS(tableView.GetProperty(TableView::Property::CELL_PADDING).Get<Vector2>(), Vector2(6.f, 8.f), TEST_LOCATION);
//{ "policy": "fixed", "value": 30.0 },
Property::Map item1;
- item1[ "policy" ] = "fixed";
- item1[ "value" ] = 30.f;
+ item1["policy"] = "fixed";
+ item1["value"] = 30.f;
//{ "policy": "relative", "value": 0.2 },
Property::Map item2;
- item2[ "policy" ] = "relative";
- item2[ "value" ] = 0.2f;
+ item2["policy"] = "relative";
+ item2["value"] = 0.2f;
- // Test "layout-rows" property
- DALI_TEST_CHECK( tableView.GetPropertyIndex(PROPERTY_NAME_LAYOUT_ROWS) == TableView::Property::LAYOUT_ROWS );
+ // Test "layoutRows" property
+ DALI_TEST_CHECK(tableView.GetPropertyIndex(PROPERTY_NAME_LAYOUT_ROWS) == TableView::Property::LAYOUT_ROWS);
/*
- * "layout-rows":
+ * "layoutRows":
* {
* "1": { "policy": "fixed", "value": 30 },
* "3": { "policy": "relative", "value": 0.2 }
* }
*/
Property::Map layoutRows;
- layoutRows[ "1" ] = item1;
- layoutRows[ "3" ] = item2;
- tableView.SetProperty( TableView::Property::LAYOUT_ROWS, layoutRows );
+ layoutRows["1"] = item1;
+ layoutRows["3"] = item2;
+ tableView.SetProperty(TableView::Property::LAYOUT_ROWS, layoutRows);
- DALI_TEST_EQUALS( tableView.GetFixedHeight( 1u ), 30.f, TEST_LOCATION );
- DALI_TEST_EQUALS( tableView.GetRelativeHeight( 3u ), 0.2f, TEST_LOCATION );
+ DALI_TEST_EQUALS(tableView.GetFixedHeight(1u), 30.f, TEST_LOCATION);
+ DALI_TEST_EQUALS(tableView.GetRelativeHeight(3u), 0.2f, TEST_LOCATION);
Property::Map layoutRowsGet = tableView.GetProperty(TableView::Property::LAYOUT_ROWS).Get<Property::Map>();
- DALI_TEST_EQUALS( layoutRowsGet.GetKey(1).compare(layoutRows.GetKey(0)), 0, TEST_LOCATION );
- DALI_TEST_CHECK( layoutRowsGet.GetValue(1).GetValue( "policy" ).Get<std::string>().compare(layoutRows.GetValue(0).GetValue( "policy" ).Get<std::string>()) == 0 );
- DALI_TEST_EQUALS( layoutRowsGet.GetValue(1).GetValue( "value" ).Get<float>(), layoutRows.GetValue(0).GetValue( "value" ).Get<float>(), TEST_LOCATION );
+ DALI_TEST_EQUALS(layoutRowsGet.GetKey(1).compare(layoutRows.GetKey(0)), 0, TEST_LOCATION);
+ Property::Map* childMap = layoutRowsGet.GetValue(1).GetMap();
+ DALI_TEST_CHECK(childMap->Find("policy")->Get<std::string>().compare("fixed") == 0);
+ DALI_TEST_EQUALS(childMap->Find("value")->Get<float>(), 30.f, TEST_LOCATION);
- DALI_TEST_CHECK( layoutRowsGet.GetKey(3).compare(layoutRows.GetKey(1)) == 0 );
- DALI_TEST_CHECK( layoutRowsGet.GetValue(3).GetValue( "policy" ).Get<std::string>().compare(layoutRows.GetValue(1).GetValue( "policy" ).Get<std::string>()) == 0 );
- DALI_TEST_EQUALS( layoutRowsGet.GetValue(3).GetValue( "value" ).Get<float>(), layoutRows.GetValue(1).GetValue( "value" ).Get<float>(), TEST_LOCATION );
+ childMap = layoutRowsGet.GetValue(3).GetMap();
+ DALI_TEST_CHECK(layoutRowsGet.GetKey(3).compare(layoutRows.GetKey(1)) == 0);
+ DALI_TEST_CHECK(childMap->Find("policy")->Get<std::string>().compare("relative") == 0);
+ DALI_TEST_EQUALS(childMap->Find("value")->Get<float>(), 0.2f, TEST_LOCATION);
- // Test "layout-columns" property
- DALI_TEST_CHECK( tableView.GetPropertyIndex( PROPERTY_NAME_LAYOUT_COLUMNS ) == TableView::Property::LAYOUT_COLUMNS );
+ // Test "layoutColumns" property
+ DALI_TEST_CHECK(tableView.GetPropertyIndex(PROPERTY_NAME_LAYOUT_COLUMNS) == TableView::Property::LAYOUT_COLUMNS);
/*
- * "layout-columns":
+ * "layoutColumns":
* {
* "2": { "policy": "relative", "value": 0.2 },
* "3": { "policy": "fixed", "value": 30 }
* }
*/
Property::Map layoutColumns;
- layoutColumns[ "2" ] = item2;
- layoutColumns[ "3" ] = item1;
- tableView.SetProperty( TableView::Property::LAYOUT_COLUMNS, layoutColumns );
+ layoutColumns["2"] = item2;
+ layoutColumns["3"] = item1;
+ tableView.SetProperty(TableView::Property::LAYOUT_COLUMNS, layoutColumns);
- DALI_TEST_EQUALS( tableView.GetRelativeWidth( 2u ), 0.2f, TEST_LOCATION );
- DALI_TEST_EQUALS( tableView.GetFixedWidth( 3u ), 30.f, TEST_LOCATION );
+ DALI_TEST_EQUALS(tableView.GetRelativeWidth(2u), 0.2f, TEST_LOCATION);
+ DALI_TEST_EQUALS(tableView.GetFixedWidth(3u), 30.f, TEST_LOCATION);
Property::Map layoutColumnsGet = tableView.GetProperty(TableView::Property::LAYOUT_COLUMNS).Get<Property::Map>();
- DALI_TEST_CHECK( layoutColumnsGet.GetKey(2).compare(layoutColumns.GetKey(0)) == 0 );
- DALI_TEST_CHECK( layoutColumnsGet.GetValue(2).GetValue( "policy" ).Get<std::string>().compare(layoutColumns.GetValue(0).GetValue( "policy" ).Get<std::string>()) == 0 );
- DALI_TEST_EQUALS( layoutColumnsGet.GetValue(2).GetValue( "value" ).Get<float>(),layoutColumns.GetValue(0).GetValue( "value" ).Get<float>(), TEST_LOCATION );
-
- DALI_TEST_CHECK( layoutColumnsGet.GetKey(3).compare(layoutColumns.GetKey(1)) == 0 );
- DALI_TEST_CHECK( layoutColumnsGet.GetValue(3).GetValue( "policy" ).Get<std::string>().compare(layoutColumns.GetValue(1).GetValue( "policy" ).Get<std::string>()) == 0 );
- DALI_TEST_EQUALS( layoutColumnsGet.GetValue(3).GetValue( "value" ).Get<float>(),layoutColumns.GetValue(1).GetValue( "value" ).Get<float>(), TEST_LOCATION );
+ DALI_TEST_CHECK(layoutColumnsGet.GetKey(2).compare(layoutColumns.GetKey(0)) == 0);
+ childMap = layoutColumnsGet.GetValue(2).GetMap();
+ DALI_TEST_CHECK(childMap->Find("policy")->Get<std::string>().compare("relative") == 0);
+ DALI_TEST_EQUALS(childMap->Find("value")->Get<float>(), 0.2f, TEST_LOCATION);
+ childMap = layoutColumnsGet.GetValue(3).GetMap();
+ DALI_TEST_CHECK(layoutColumnsGet.GetKey(3).compare(layoutColumns.GetKey(1)) == 0);
+ DALI_TEST_CHECK(childMap->Find("policy")->Get<std::string>().compare("fixed") == 0);
+ DALI_TEST_EQUALS(childMap->Find("value")->Get<float>(), 30.f, TEST_LOCATION);
END_TEST;
}
-int UtcDaliTableViewCustomProperties(void)
+int UtcDaliTableViewChildProperties(void)
{
ToolkitTestApplication application;
- tet_infoline("UtcDaliTableViewCustomProperties");
+ tet_infoline("UtcDaliTableViewChildProperties");
// Create a 10x10 table-view
- TableView tableView = TableView::New(10,10);
- Constraint constraint = Constraint::New<Vector3>( tableView, Actor::Property::SIZE, Constraint100() );
- constraint.Apply();
- DALI_TEST_CHECK( tableView );
+ TableView tableView = TableView::New(10, 10);
+ application.GetScene().Add(tableView);
+ tableView.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f));
+
+ DALI_TEST_CHECK(tableView);
// Create a child actor with the custom properties
Actor child1 = Actor::New();
- child1.RegisterProperty( TableView::CELL_INDICES_PROPERTY_NAME, Vector2( 3, 4 ) );
- tableView.Add( child1 );
+ child1.SetProperty(TableView::ChildProperty::CELL_INDEX, Vector2(3, 4));
+ tableView.Add(child1);
// Check for actors at actual positions.
- DALI_TEST_CHECK( tableView.GetChildAt(TableView::CellPosition(3,4)) == child1);
+ DALI_TEST_CHECK(tableView.GetChildAt(TableView::CellPosition(3, 4)) == child1);
// Create a second child actor with the custom properties
- Actor child2 = Actor::New();
- float rowSpan = 3.f;
+ Actor child2 = Actor::New();
+ float rowSpan = 3.f;
float columnSpan = 2.f;
- child2.RegisterProperty( TableView::CELL_INDICES_PROPERTY_NAME, Vector2( 6, 1 ) );
- child2.RegisterProperty( TableView::ROW_SPAN_PROPERTY_NAME, rowSpan );
- child2.RegisterProperty( TableView::COLUMN_SPAN_PROPERTY_NAME, columnSpan );
- tableView.Add( child2 );
+ child2.SetProperty(TableView::ChildProperty::CELL_INDEX, Vector2(6, 1));
+ child2.SetProperty(TableView::ChildProperty::ROW_SPAN, rowSpan);
+ child2.SetProperty(TableView::ChildProperty::COLUMN_SPAN, columnSpan);
+ tableView.Add(child2);
// Check for actors at actual positions.
- for( int i=0; i<rowSpan; i++ )
+ for(int i = 0; i < rowSpan; i++)
+ {
+ for(int j = 0; j < columnSpan; j++)
+ {
+ DALI_TEST_CHECK(tableView.GetChildAt(TableView::CellPosition(6 + i, 1 + j)) == child2);
+ }
+ }
+
+ // Create a third child actor with the cell alignment properties
+ Actor child3 = Actor::New();
+ child3.SetProperty(Actor::Property::SIZE, Vector2(5.f, 5.f));
+ child3.SetProperty(TableView::ChildProperty::CELL_HORIZONTAL_ALIGNMENT, "center");
+ child3.SetProperty(TableView::ChildProperty::CELL_VERTICAL_ALIGNMENT, "bottom");
+ tableView.Add(child3);
+
+ // store the actor in the first available cell
+ DALI_TEST_CHECK(tableView.GetChildAt(TableView::CellPosition(0, 0)) == child3)
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(child3.GetCurrentProperty<Vector3>(Actor::Property::ANCHOR_POINT), AnchorPoint::TOP_LEFT, TEST_LOCATION);
+ DALI_TEST_EQUALS(child3.GetCurrentProperty<Vector3>(Actor::Property::PARENT_ORIGIN), ParentOrigin::TOP_LEFT, TEST_LOCATION);
+ DALI_TEST_EQUALS(child3.GetCurrentProperty<Vector3>(Actor::Property::POSITION), Vector3(2.5f, 5.0f, 0.0f), TEST_LOCATION);
+
+ END_TEST;
+}
+
+int UtcDaliTableViewGetChildAtN(void)
+{
+ ToolkitTestApplication application;
+
+ TableView tableView = TableView::New(10, 10);
+
+ Actor actor = tableView.GetChildAt(TableView::CellPosition(200, 200));
+ DALI_TEST_CHECK(!actor);
+
+ END_TEST;
+}
+
+int UtcDaliTableViewAddChildN(void)
+{
+ ToolkitTestApplication application;
+
+ TableView tableView = TableView::New(10, 10);
+ DALI_TEST_CHECK(tableView.AddChild(Actor::New(), TableView::CellPosition(0, 0)));
+ DALI_TEST_CHECK(!tableView.AddChild(Actor::New(), TableView::CellPosition(0, 0)));
+
+ END_TEST;
+}
+
+int UtcDaliTableViewInsertRowAtZero(void)
+{
+ ToolkitTestApplication application;
+
+ TableView tableView = TableView::New(10, 10);
+ DALI_TEST_CHECK(tableView.AddChild(Actor::New(), TableView::CellPosition(0, 0, 10, 10)));
+ tableView.InsertRow(0);
+
+ DALI_TEST_CHECK(tableView.GetRows() == 11);
+
+ END_TEST;
+}
+
+int UtcDaliTableViewDeleteRowAtZero(void)
+{
+ ToolkitTestApplication application;
+
+ TableView tableView = TableView::New(10, 10);
+ DALI_TEST_CHECK(tableView.AddChild(Actor::New(), TableView::CellPosition(0, 0, 10, 10)));
+ tableView.DeleteRow(0);
+
+ DALI_TEST_CHECK(tableView.GetRows() == 9);
+
+ END_TEST;
+}
+
+int UtcDaliTableViewInsertColumnAtZero(void)
+{
+ ToolkitTestApplication application;
+
+ TableView tableView = TableView::New(10, 10);
+ DALI_TEST_CHECK(tableView.AddChild(Actor::New(), TableView::CellPosition(0, 0, 10, 10)));
+ tableView.InsertColumn(0);
+
+ DALI_TEST_CHECK(tableView.GetColumns() == 11);
+
+ END_TEST;
+}
+
+int UtcDaliTableViewDeleteColumnAtZero(void)
+{
+ ToolkitTestApplication application;
+
+ TableView tableView = TableView::New(10, 10);
+ DALI_TEST_CHECK(tableView.AddChild(Actor::New(), TableView::CellPosition(0, 0, 10, 10)));
+ tableView.DeleteColumn(0);
+
+ DALI_TEST_CHECK(tableView.GetColumns() == 9);
+
+ END_TEST;
+}
+
+int UtcDaliTableViewTypeRegistry(void)
+{
+ ToolkitTestApplication application;
+
+ TypeRegistry typeRegistry = TypeRegistry::Get();
+ DALI_TEST_CHECK(typeRegistry);
+
+ TypeInfo typeInfo = typeRegistry.GetTypeInfo("TableView");
+ DALI_TEST_CHECK(typeInfo);
+
+ BaseHandle handle = typeInfo.CreateInstance();
+ DALI_TEST_CHECK(handle);
+
+ TableView view = TableView::DownCast(handle);
+ DALI_TEST_CHECK(view);
+
+ END_TEST;
+}
+
+int UtcDaliTableViewKeyboardFocus(void)
+{
+ ToolkitTestApplication application;
+
+ TableView tableView = TableView::New(4, 4);
+ tableView.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);
+ tableView.SetProperty(Dali::Actor::Property::NAME, "TableView");
+
+ for(int row = 0; row < 4; ++row)
{
- for(int j=0; j<columnSpan; j++)
+ for(int col = 0; col < 4; ++col)
{
- DALI_TEST_CHECK( tableView.GetChildAt(TableView::CellPosition(6+i,1+j)) == child2);
+ Control control = Control::New();
+ std::ostringstream str;
+ str << row << "-" << col;
+ control.SetProperty(Dali::Actor::Property::NAME, str.str());
+ control.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);
+ tableView.AddChild(control, TableView::CellPosition(row, col));
}
}
+ application.GetScene().Add(tableView);
+
+ application.SendNotification();
+ application.Render();
+
+ Actor firstFocusActor = Toolkit::Internal::GetImplementation(tableView).GetNextKeyboardFocusableActor(Actor(), Control::KeyboardFocus::RIGHT, true);
+ DALI_TEST_CHECK(firstFocusActor);
+ DALI_TEST_CHECK(firstFocusActor.GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-0");
+
+ KeyboardFocusManager manager = KeyboardFocusManager::Get();
+ manager.SetFocusGroupLoop(true);
+ manager.SetCurrentFocusActor(firstFocusActor);
+
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-0");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-1");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-2");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-3");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-0");
+
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-3");
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-2");
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-1");
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-0");
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "3-3");
+
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-0");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-1");
+
+ manager.MoveFocus(Control::KeyboardFocus::DOWN);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-1");
+ manager.MoveFocus(Control::KeyboardFocus::DOWN);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "2-1");
+ manager.MoveFocus(Control::KeyboardFocus::DOWN);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "3-1");
+ manager.MoveFocus(Control::KeyboardFocus::DOWN);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-1");
+
+ manager.MoveFocus(Control::KeyboardFocus::UP);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "3-1");
+ manager.MoveFocus(Control::KeyboardFocus::UP);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "2-1");
+ manager.MoveFocus(Control::KeyboardFocus::UP);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-1");
+ manager.MoveFocus(Control::KeyboardFocus::UP);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-1");
+
+ END_TEST;
+}
+
+int UtcDaliTableViewKeyboardFocusInNestedTableView(void)
+{
+ ToolkitTestApplication application;
+
+ TableView tableView = TableView::New(3, 3);
+ tableView.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);
+ tableView.SetProperty(Dali::Actor::Property::NAME, "TableView");
+
+ for(int row = 0; row < 3; ++row)
+ {
+ for(int col = 0; col < 3; ++col)
+ {
+ std::ostringstream str;
+ str << row << "-" << col;
+
+ if(row == 1 && col == 1)
+ {
+ // Add a nested 2x2 table view in the middle cell of the parent table view
+ TableView childTableView = TableView::New(2, 2);
+ childTableView.SetProperty(Dali::Actor::Property::NAME, str.str());
+
+ for(int childRow = 0; childRow < 2; childRow++)
+ {
+ for(int childCol = 0; childCol < 2; childCol++)
+ {
+ Control control = Control::New();
+ std::ostringstream nameStr;
+ nameStr << row << "-" << col << "-" << childRow << "-" << childCol;
+ control.SetProperty(Dali::Actor::Property::NAME, nameStr.str());
+ control.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);
+ childTableView.AddChild(control, TableView::CellPosition(childRow, childCol));
+ }
+ }
+ tableView.AddChild(childTableView, TableView::CellPosition(row, col));
+ }
+ else
+ {
+ Control control = Control::New();
+ control.SetProperty(Dali::Actor::Property::NAME, str.str());
+ control.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);
+ tableView.AddChild(control, TableView::CellPosition(row, col));
+ }
+ }
+ }
+
+ application.GetScene().Add(tableView);
+
+ application.SendNotification();
+ application.Render();
+
+ Actor firstFocusActor = Toolkit::Internal::GetImplementation(tableView).GetNextKeyboardFocusableActor(Actor(), Control::KeyboardFocus::RIGHT, true);
+ DALI_TEST_CHECK(firstFocusActor);
+ DALI_TEST_CHECK(firstFocusActor.GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-0");
+
+ KeyboardFocusManager manager = KeyboardFocusManager::Get();
+ manager.SetFocusGroupLoop(false);
+ manager.SetCurrentFocusActor(firstFocusActor);
+
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-0");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-1");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-2");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-0");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-1-0-0");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-1-0-1");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-1-1-0");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-1-1-1");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-2");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "2-0");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "2-1");
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "2-2");
+
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "2-1");
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "2-0");
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-2");
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-1-1-1");
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-1-1-0");
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-1-0-1");
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-1-0-0");
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-0");
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-2");
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-1");
+ manager.MoveFocus(Control::KeyboardFocus::LEFT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-0");
+
+ manager.MoveFocus(Control::KeyboardFocus::RIGHT);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-1");
+ manager.MoveFocus(Control::KeyboardFocus::DOWN);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-1-0-0");
+ manager.MoveFocus(Control::KeyboardFocus::DOWN);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-1-1-0");
+ manager.MoveFocus(Control::KeyboardFocus::DOWN);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "2-1");
+
+ manager.MoveFocus(Control::KeyboardFocus::UP);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-1-1-1");
+ manager.MoveFocus(Control::KeyboardFocus::UP);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "1-1-0-1");
+ manager.MoveFocus(Control::KeyboardFocus::UP);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor().GetProperty<std::string>(Dali::Actor::Property::NAME) == "0-1");
+
END_TEST;
}