X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Ftable-view%2Ftable-view-impl.cpp;h=76eab51e2257451d35eee91f92fdf8fca796e331;hb=refs%2Fchanges%2F81%2F35081%2F7;hp=d702ced3a40557789b6275d323204c668b1a1670;hpb=e2eda444afbe82e9591fe198eef339227f90a616;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/table-view/table-view-impl.cpp b/dali-toolkit/internal/controls/table-view/table-view-impl.cpp index d702ced..76eab51 100644 --- a/dali-toolkit/internal/controls/table-view/table-view-impl.cpp +++ b/dali-toolkit/internal/controls/table-view/table-view-impl.cpp @@ -1,82 +1,55 @@ -// -// Copyright (c) 2014 Samsung Electronics Co., Ltd. -// -// Licensed under the Flora License, Version 1.0 (the License); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://floralicense.org/license/ -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an AS IS BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ // CLASS HEADER -#include "dali-toolkit/internal/controls/table-view/table-view-impl.h" -#include +#include // EXTERNAL INCLUDES +#include #include -#include +#include +#include +#include using namespace Dali; -using namespace std; namespace { -// Type registration -BaseHandle Create() -{ - return Toolkit::TableView::New(0, 0); -} -TypeRegistration mType( typeid(Toolkit::TableView), typeid(Toolkit::Control), Create ); - const float DEFAULT_CONSTRAINT_DURATION = 0.0f; /** - * Constraint that sets a child property relative to parents Width or Height + * sets a child property relative to parents size and applies a unit based padding before the relative calculation. + * @param[in] scale of parent minus padding between 0 and 1 + * @param[in] padding in world coordinate units + * @param[in] fixed part in world coordinate units + * @param[in] size of the parent + * @return The relative size with padding. */ -struct RelativeToWidthOrHeight +Vector2 RelativeToSize( const Vector2& scale, const Vector2& padding, const Vector2& fixed, const Vector2& parentSize) { - /** - * Constraint that is relative (%) to parent width/height and applies a - * unit based padding before the relative calculation. - * @param scale of parent minus padding between 0 and 1 - * @param padding in world coordinate units - * @param fixed part in world coordinate units - */ - RelativeToWidthOrHeight( float scale, float padding, float fixed ) - : mScaleFactor( scale ), - mPadding( padding ), - mFixed( fixed ) - { - } - - inline float operator()( const float& parentWidthOrHeight ) - { - return mFixed + ( parentWidthOrHeight - mPadding ) * mScaleFactor; - } - - float operator()( const float& current, - const PropertyInput& parentWidthOrHeight ) - { - return operator()( parentWidthOrHeight.GetFloat() ); - } - - float mScaleFactor; - float mPadding; - float mFixed; -}; + return fixed + ( parentSize - padding ) * scale; +} #if defined(DEBUG_ENABLED) // debugging support, very useful when new features are added or bugs are hunted down // currently not called from code so compiler will optimize these away, kept here for future debugging -#define TABLEVIEW_TAG "DALI Toolkit::TableView" -#define TV_LOG(fmt, args...) LOG(LOG_INFO, TABLEVIEW_TAG, fmt, ## args) +#define TABLEVIEW_TAG "DALI Toolkit::TableView " +#define TV_LOG(fmt, args...) Debug::LogMessage(Debug::DebugInfo, TABLEVIEW_TAG fmt, ## args) void PrintArray( Array2d& array ) { @@ -117,7 +90,7 @@ void PrintArray( Array2d& array ) } // debugging support, very useful when new features are added or bugs are hunted down // currently not called from code so compiler will optimize these away, kept here for future debugging -void PrintVector( vector& array ) +void PrintVector( std::vector& array ) { TV_LOG( "vector, size [%d]\n", array.size() ); // print values @@ -137,9 +110,42 @@ namespace Dali namespace Toolkit { +const Property::Index TableView::PROPERTY_ROWS( Internal::TableView::TABLEVIEW_PROPERTY_START_INDEX ); +const Property::Index TableView::PROPERTY_COLUMNS( Internal::TableView::TABLEVIEW_PROPERTY_START_INDEX + 1 ); +const Property::Index TableView::PROPERTY_CELL_PADDING( Internal::TableView::TABLEVIEW_PROPERTY_START_INDEX + 2 ); +const Property::Index TableView::PROPERTY_LAYOUT_ROWS( Internal::TableView::TABLEVIEW_PROPERTY_START_INDEX + 3 ); +const Property::Index TableView::PROPERTY_LAYOUT_COLUMNS( Internal::TableView::TABLEVIEW_PROPERTY_START_INDEX + 4 ); + namespace Internal { +namespace +{ + +const Scripting::StringEnum< Toolkit::TableView::LayoutPolicy > LAYOUT_POLICY_STRING_TABLE[] = +{ + { "fixed", Toolkit::TableView::Fixed }, + { "relative", Toolkit::TableView::Relative }, + { "fill", Toolkit::TableView::Fill } +}; + +const unsigned int LAYOUT_POLICY_STRING_TABLE_COUNT = sizeof(LAYOUT_POLICY_STRING_TABLE) / sizeof( LAYOUT_POLICY_STRING_TABLE[0] ); + +// Type registration +BaseHandle Create() +{ + return Toolkit::TableView::New(0, 0); +} +TypeRegistration mType( typeid(Toolkit::TableView), typeid(Toolkit::Control), Create ); + +PropertyRegistration property1( mType, "rows", Toolkit::TableView::PROPERTY_ROWS, Property::UNSIGNED_INTEGER, &TableView::SetProperty, &TableView::GetProperty ); +PropertyRegistration property2( mType, "columns", Toolkit::TableView::PROPERTY_COLUMNS, Property::UNSIGNED_INTEGER, &TableView::SetProperty, &TableView::GetProperty ); +PropertyRegistration property3( mType, "cell-padding", Toolkit::TableView::PROPERTY_CELL_PADDING, Property::VECTOR2, &TableView::SetProperty, &TableView::GetProperty ); +PropertyRegistration property4( mType, "layout-rows", Toolkit::TableView::PROPERTY_LAYOUT_ROWS, Property::MAP, &TableView::SetProperty, &TableView::GetProperty ); +PropertyRegistration property5( mType, "layout-columns", Toolkit::TableView::PROPERTY_LAYOUT_COLUMNS, Property::MAP, &TableView::SetProperty, &TableView::GetProperty ); + +} // namespace + Toolkit::TableView TableView::New( unsigned int initialRows, unsigned int initialColumns ) { // Create the implementation, temporarily owned by this handle on stack @@ -327,14 +333,14 @@ void TableView::InsertRow( unsigned int rowIndex ) void TableView::DeleteRow( unsigned int rowIndex ) { - vector< Actor > ignored; + std::vector< Actor > ignored; DeleteRow( rowIndex, ignored ); } -void TableView::DeleteRow( unsigned int rowIndex, vector& removed ) +void TableView::DeleteRow( unsigned int rowIndex, std::vector& removed ) { RelayoutingLock lock( *this ); - vector< CellData > lost; + std::vector< CellData > lost; mCellData.DeleteRow( rowIndex, lost ); // need to update the cellinfos for the items that moved const unsigned int rowCount = mCellData.GetRows(); @@ -414,14 +420,14 @@ void TableView::InsertColumn( unsigned int columnIndex ) void TableView::DeleteColumn( unsigned int columnIndex ) { - vector< Actor > ignored; + std::vector< Actor > ignored; DeleteColumn( columnIndex, ignored ); } -void TableView::DeleteColumn( unsigned int columnIndex, vector& removed ) +void TableView::DeleteColumn( unsigned int columnIndex, std::vector& removed ) { RelayoutingLock lock( *this ); - vector< CellData > lost; + std::vector< CellData > lost; mCellData.DeleteColumn( columnIndex, lost ); // need to update the cellinfos for the items that moved const unsigned int rowCount = mCellData.GetRows(); @@ -465,17 +471,17 @@ void TableView::DeleteColumn( unsigned int columnIndex, vector& removed ) void TableView::Resize( unsigned int rows, unsigned int columns ) { - vector< Actor > ignored; + std::vector< Actor > ignored; Resize( rows, columns, ignored ); } -void TableView::Resize( unsigned int rows, unsigned int columns, vector& removed ) +void TableView::Resize( unsigned int rows, unsigned int columns, std::vector& removed ) { RelayoutingLock lock( *this ); unsigned int oldRows = GetRows(); unsigned int oldColumns = GetColumns(); // resize data array - vector< CellData > lost; + std::vector< CellData > lost; ResizeContainers( rows, columns, lost ); // calculate if we lost rows or columns unsigned int rowsRemoved = 0; @@ -516,6 +522,8 @@ void TableView::SetFixedHeight( unsigned int rowIndex, float height ) DALI_ASSERT_ALWAYS( rowIndex < mFixedHeights.size() ); // add the fixed height to the array of fixed heights mFixedHeights[ rowIndex ] = height; + // remove the relative height of the same row + mRelativeHeights[ rowIndex ] = 0.f; // relayout all cells, no lock needed as nothing added or removed RelayoutRequest(); } @@ -532,6 +540,8 @@ void TableView::SetRelativeHeight( unsigned int rowIndex, float heightPercentage DALI_ASSERT_ALWAYS( rowIndex < mRelativeHeights.size() ); // add the relative height to the array of relative heights mRelativeHeights[ rowIndex ] = heightPercentage; + // remove the fixed height of the same row + mFixedHeights[ rowIndex ] = 0.f; // relayout all cells, no lock needed as nothing added or removed RelayoutRequest(); } @@ -548,6 +558,8 @@ void TableView::SetFixedWidth( unsigned int columnIndex, float width ) DALI_ASSERT_ALWAYS( columnIndex < mFixedWidths.size() ); // add the fixed width to the array of fixed column widths mFixedWidths[ columnIndex ] = width; + // remove the relative width of the same column + mRelativeWidths[ columnIndex ] = 0.f; // relayout all cells, no lock needed as nothing added or removed RelayoutRequest(); } @@ -564,6 +576,8 @@ void TableView::SetRelativeWidth( unsigned int columnIndex, float widthPercentag DALI_ASSERT_ALWAYS( columnIndex < mRelativeWidths.size() ); // add the relative widths to the array of relative widths mRelativeWidths[ columnIndex ] = widthPercentage; + // remove the fixed width of the same column + mFixedWidths[ columnIndex ] = 0.f; // relayout all cells, no lock needed as nothing added or removed RelayoutRequest(); } @@ -575,17 +589,7 @@ float TableView::GetRelativeWidth( unsigned int columnIndex ) const return mRelativeWidths[ columnIndex ]; } -void TableView::SetLayoutAnimationDuration( float duration ) -{ - mConstraintDuration = duration; -} - -float TableView::GetLayoutAnimationDuration() -{ - return mConstraintDuration; -} - -void TableView::OnRelaidOut( Vector2 size, ActorSizeContainer& container ) +void TableView::OnRelayout( const Vector2& size, ActorSizeContainer& container ) { float fixedHeightsTotal = 0.0f; float fixedWidthsTotal = 0.0f; @@ -639,23 +643,8 @@ void TableView::OnRelaidOut( Vector2 size, ActorSizeContainer& container ) Vector2 fixedPosition( ( colPos + 1.0f ) * mPadding.width + cumulatedFixedWidth, ( rowPos + 1.0f ) * mPadding.height + cumulatedFixedHeight ); - Constraint widthConstraint = Constraint::New( Actor::POSITION_X, - ParentSource( Actor::SIZE_WIDTH ), - RelativeToWidthOrHeight( relativePosition.x, positionPadding.x, fixedPosition.x ) ); - - Constraint heightConstraint = Constraint::New( Actor::POSITION_Y, - ParentSource( Actor::SIZE_HEIGHT ), - RelativeToWidthOrHeight( relativePosition.y, positionPadding.y, fixedPosition.y ) ); - - widthConstraint.SetApplyTime( mConstraintDuration ); - heightConstraint.SetApplyTime( mConstraintDuration ); - - // bake constrained position value if constraint is removed - widthConstraint.SetRemoveAction( Constraint::Bake ); - heightConstraint.SetRemoveAction( Constraint::Bake ); - - actor.ApplyConstraint( widthConstraint ); - actor.ApplyConstraint( heightConstraint ); + Vector3 actorPosition( RelativeToSize( relativePosition, positionPadding, fixedPosition, size ) ); + actor.SetPosition( actorPosition ); // 2. set size // constrain the actor size to be relative to the size of table @@ -691,29 +680,11 @@ void TableView::OnRelaidOut( Vector2 size, ActorSizeContainer& container ) fixedSize.width += ( position.columnSpan - 1.0f ) * mPadding.width; fixedSize.height += ( position.rowSpan - 1.0f ) * mPadding.height; - RelativeToWidthOrHeight relativeWidthFunctor( relativeSize.x, sizePadding.x, fixedSize.x ); - RelativeToWidthOrHeight relativeHeightFunctor( relativeSize.y, sizePadding.y, fixedSize.y ); - - widthConstraint = Constraint::New( Actor::SIZE_WIDTH, - ParentSource( Actor::SIZE_WIDTH ), - relativeWidthFunctor ); - - heightConstraint = Constraint::New( Actor::SIZE_HEIGHT, - ParentSource( Actor::SIZE_HEIGHT ), - relativeHeightFunctor ); - - widthConstraint.SetApplyTime( mConstraintDuration ); - heightConstraint.SetApplyTime( mConstraintDuration ); - - // bake constrained size value if constraint is removed - widthConstraint.SetRemoveAction( Constraint::Bake ); - heightConstraint.SetRemoveAction( Constraint::Bake ); - - actor.ApplyConstraint( widthConstraint ); - actor.ApplyConstraint( heightConstraint ); + Vector2 actorSize( RelativeToSize( relativeSize, sizePadding, fixedSize, size ) ); + actor.SetSize(actorSize.x, actorSize.y); // Relayout Children - Relayout ( actor, Vector2( relativeWidthFunctor( size.width ), relativeHeightFunctor( size.height ) ), container ); + Relayout ( actor, actorSize, container ); } // for position we need to keep track of current fixed width and relative width // increase for next column @@ -737,6 +708,92 @@ unsigned int TableView::GetColumns() return mCellData.GetColumns(); } +void TableView::SetProperty( BaseObject* object, Property::Index index, const Property::Value& value ) +{ + Toolkit::TableView tableView = Toolkit::TableView::DownCast( Dali::BaseHandle( object ) ); + + if( tableView ) + { + TableView& tableViewImpl( GetImpl( tableView ) ); + switch( index ) + { + case Toolkit::TableView::PROPERTY_ROWS: + { + if( value.Get() != tableViewImpl.GetRows() ) + { + tableViewImpl.Resize( value.Get(), tableViewImpl.GetColumns() ); + } + break; + } + case Toolkit::TableView::PROPERTY_COLUMNS: + { + if( value.Get() != tableViewImpl.GetColumns() ) + { + tableViewImpl.Resize( tableViewImpl.GetRows(), value.Get() ); + } + break; + } + case Toolkit::TableView::PROPERTY_CELL_PADDING: + { + tableViewImpl.SetCellPadding( value.Get() ); + break; + } + case Toolkit::TableView::PROPERTY_LAYOUT_ROWS: + { + SetHeightOrWidthProperty( tableViewImpl, &TableView::SetFixedHeight, &TableView::SetRelativeHeight, value ); + break; + } + case Toolkit::TableView::PROPERTY_LAYOUT_COLUMNS: + { + SetHeightOrWidthProperty( tableViewImpl, &TableView::SetFixedWidth, &TableView::SetRelativeWidth, value ); + break; + } + } + } +} + +Property::Value TableView::GetProperty( BaseObject* object, Property::Index index ) +{ + Property::Value value; + + Toolkit::TableView tableView = Toolkit::TableView::DownCast( Dali::BaseHandle( object ) ); + + if( tableView ) + { + TableView& tableViewImpl( GetImpl( tableView ) ); + switch( index ) + { + case Toolkit::TableView::PROPERTY_ROWS: + { + value = tableViewImpl.GetRows(); + break; + } + case Toolkit::TableView::PROPERTY_COLUMNS: + { + value = tableViewImpl.GetColumns(); + break; + } + case Toolkit::TableView::PROPERTY_CELL_PADDING: + { + value = tableViewImpl.GetCellPadding(); + break; + } + case Toolkit::TableView::PROPERTY_LAYOUT_ROWS: + { + value = tableViewImpl.GetRowHeightsPropertyValue(); + break; + } + case Toolkit::TableView::PROPERTY_LAYOUT_COLUMNS: + { + value = tableViewImpl.GetColumnWidthsPropertyValue(); + break; + } + } + } + + return value; +} + void TableView::OnControlChildAdd( Actor& child ) { if( mLayoutingChild ) @@ -744,6 +801,27 @@ void TableView::OnControlChildAdd( Actor& child ) // we're in the middle of laying out children so no point doing anything here return; } + + Toolkit::TableView::CellPosition cellPosition; + if( child.GetPropertyIndex(Toolkit::TableView::ROW_SPAN_PROPERTY_NAME) != Property::INVALID_INDEX ) + { + cellPosition.rowSpan = static_cast( child.GetProperty( child.GetPropertyIndex(Toolkit::TableView::ROW_SPAN_PROPERTY_NAME) ).Get() ); + } + if( child.GetPropertyIndex(Toolkit::TableView::COLUMN_SPAN_PROPERTY_NAME) != Property::INVALID_INDEX ) + { + cellPosition.columnSpan = static_cast( child.GetProperty( child.GetPropertyIndex(Toolkit::TableView::COLUMN_SPAN_PROPERTY_NAME) ).Get() ); + } + if( child.GetPropertyIndex(Toolkit::TableView::CELL_INDICES_PROPERTY_NAME) != Property::INVALID_INDEX ) + { + Vector2 indices = child.GetProperty( child.GetPropertyIndex(Toolkit::TableView::CELL_INDICES_PROPERTY_NAME) ).Get(); + cellPosition.rowIndex = static_cast( indices.x ); + cellPosition.columnIndex = static_cast( indices.y ); + + AddChild( child, cellPosition ); + // donot continue + return; + } + // check if we're already laying out this child somewhere on the table // walk through the layout data const unsigned int rowCount = mCellData.GetRows(); @@ -794,10 +872,9 @@ void TableView::OnControlChildRemove( Actor& child ) } TableView::TableView( unsigned int initialRows, unsigned int initialColumns ) -: ControlImpl( true ), // requires touch +: Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS | REQUIRES_STYLE_CHANGE_SIGNALS ) ), mCellData( initialRows, initialColumns ), - mLayoutingChild( false ), - mConstraintDuration( DEFAULT_CONSTRAINT_DURATION ) + mLayoutingChild( false ) { SetKeyboardNavigationSupport( true ); ResizeContainers( initialRows, initialColumns ); @@ -813,11 +890,11 @@ void TableView::OnInitialize() void TableView::ResizeContainers( unsigned int rows, unsigned int columns ) { - vector ignored; + std::vector ignored; ResizeContainers( rows, columns, ignored ); } -void TableView::ResizeContainers( unsigned int rows, unsigned int columns, vector& removed ) +void TableView::ResizeContainers( unsigned int rows, unsigned int columns, std::vector& removed ) { mCellData.Resize( rows, columns, removed ); // we dont care if these go smaller, data will be regenerated or is not needed anymore @@ -828,11 +905,11 @@ void TableView::ResizeContainers( unsigned int rows, unsigned int columns, vecto mRelativeWidths.resize( columns ); } -void TableView::RemoveAndGetLostActors( const vector& lost, vector& removed, +void TableView::RemoveAndGetLostActors( const std::vector& lost, std::vector& removed, unsigned int rowsRemoved, unsigned int columnsRemoved ) { // iterate through all lost cells - vector< CellData >::const_iterator iter = lost.begin(); + std::vector< CellData >::const_iterator iter = lost.begin(); for( ; iter != lost.end(); ++iter ) { // if it is a valid actor @@ -995,12 +1072,86 @@ void TableView::UpdateRelativeSizes( float& fixedHeightsTotal, float& fixedWidth } } +void TableView::SetHeightOrWidthProperty(TableView& tableViewImpl, + void(TableView::*funcFixed)(unsigned int, float), + void(TableView::*funcRelative)(unsigned int, float), + const Property::Value& value ) +{ + if( Property::MAP == value.GetType() ) + { + Property::Map map = value.Get(); + unsigned int rowIndex(0); + for ( unsigned int i = 0, count = map.Count(); i < count; ++i ) + { + Property::Value& item = map.GetValue(i); + + if( std::istringstream(map.GetKey(i)) >> rowIndex // the key is a number + && Property::MAP == item.GetType()) + { + if( item.HasKey( "policy" ) && item.HasKey( "value" ) ) + { + Toolkit::TableView::LayoutPolicy policy = Scripting::GetEnumeration< Toolkit::TableView::LayoutPolicy >( item.GetValue("policy").Get(), LAYOUT_POLICY_STRING_TABLE, LAYOUT_POLICY_STRING_TABLE_COUNT ); + if( policy == Toolkit::TableView::Fixed ) + { + (tableViewImpl.*funcFixed)( rowIndex, item.GetValue("value").Get() ); + } + else if( policy == Toolkit::TableView::Relative ) + { + (tableViewImpl.*funcRelative)( rowIndex, item.GetValue("value").Get() ); + } + } + } + } + } +} + +Property::Value TableView::GetRowHeightsPropertyValue() +{ + Property::Map map; + GetMapPropertyValue( mFixedHeights, mRelativeHeights, map); + return Property::Value(map); +} + +Property::Value TableView::GetColumnWidthsPropertyValue() +{ + Property::Map map; + GetMapPropertyValue( mFixedWidths, mRelativeWidths, map); + return Property::Value(map); +} + +void TableView::GetMapPropertyValue( const std::vector& fixedSize, const std::vector& relativeSize, Property::Map& map ) +{ + std::string fixedPolicy( Scripting::GetEnumerationName< Toolkit::TableView::LayoutPolicy >( Toolkit::TableView::Fixed, LAYOUT_POLICY_STRING_TABLE, LAYOUT_POLICY_STRING_TABLE_COUNT ) ); + std::string relativePolicy( Scripting::GetEnumerationName< Toolkit::TableView::LayoutPolicy >( Toolkit::TableView::Relative, LAYOUT_POLICY_STRING_TABLE, LAYOUT_POLICY_STRING_TABLE_COUNT ) ); + + size_t count = fixedSize.size(); + for( size_t index = 0; index < count; index++ ) + { + if( ! EqualsZero( fixedSize[index] ) ) + { + Property::Map item; + item[ "policy" ] = fixedPolicy; + item[ "value" ] = fixedSize[index]; + + map[ static_cast( &(std::ostringstream() << index ) )->str() ] = item; + } + else if( ! EqualsZero( relativeSize[index] ) ) + { + Property::Map item; + item[ "policy" ] = relativePolicy; + item[ "value" ] = relativeSize[index]; + + map[ static_cast( &(std::ostringstream() << index ) )->str() ] = item; + } + } +} + TableView::~TableView() { // nothing to do } -Actor TableView::GetNextKeyboardFocusableActor(Actor currentFocusedActor, Control::KeyboardFocusNavigationDirection direction, bool loopEnabled) +Actor TableView::GetNextKeyboardFocusableActor(Actor currentFocusedActor, Toolkit::Control::KeyboardFocusNavigationDirection direction, bool loopEnabled) { Actor nextFocusableActor; @@ -1023,7 +1174,7 @@ Actor TableView::GetNextKeyboardFocusableActor(Actor currentFocusedActor, Contro switch ( direction ) { - case Control::Left: + case Toolkit::Control::Left: { if(--currentColumn < 0) { @@ -1036,7 +1187,7 @@ Actor TableView::GetNextKeyboardFocusableActor(Actor currentFocusedActor, Contro } break; } - case Control::Right: + case Toolkit::Control::Right: { if(++currentColumn > numberOfColumns - 1) { @@ -1049,7 +1200,7 @@ Actor TableView::GetNextKeyboardFocusableActor(Actor currentFocusedActor, Contro } break; } - case Control::Up: + case Toolkit::Control::Up: { if(--currentRow < 0) { @@ -1058,7 +1209,7 @@ Actor TableView::GetNextKeyboardFocusableActor(Actor currentFocusedActor, Contro } break; } - case Control::Down: + case Toolkit::Control::Down: { if(++currentRow > numberOfRows - 1) {