Fix compile error. Non initialized variable.
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / table-view / table-view-impl.cpp
old mode 100644 (file)
new mode 100755 (executable)
index 703440a..a0c1849
@@ -48,7 +48,7 @@ bool FitToChild( Actor actor, Dimension::Type dimension )
 // 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...) Debug::LogMessage(Debug::DebugInfo, TABLEVIEW_TAG fmt, ## args)
+#define TV_LOG(fmt, args,...) Debug::LogMessage(Debug::DebugInfo, TABLEVIEW_TAG fmt, ## args)
 //#define TABLEVIEW_DEBUG 1
 
 #if defined(TABLEVIEW_DEBUG)
@@ -66,7 +66,7 @@ void PrintArray( Array2d<Dali::Toolkit::Internal::TableView::CellData>& array )
       if( data.actor )
       {
         actor = 'A';
-        actorName = data.actor.GetName();
+        actorName = data.actor.GetProperty< std::string >( Dali::Actor::Property::NAME );
       }
       TV_LOG("Array[%d,%d]=%c %s %d,%d,%d,%d  ", i, j, actor, actorName.c_str(),
           data.position.rowIndex, data.position.columnIndex,
@@ -750,15 +750,15 @@ void TableView::OnLayoutNegotiated( float size, Dimension::Type dimension )
 
     // update every column position in ColumnData array
     float cumulatedWidth = 0.0f;
-    for( unsigned int column = 0, columnCount = mCellData.GetColumns(); column < columnCount; ++column )
+    for( auto&& element : mColumnData )
     {
-      if( mColumnData[ column ].sizePolicy == Toolkit::TableView::FILL ||  mColumnData[ column ].sizePolicy == Toolkit::TableView::RELATIVE)
+      if( element.sizePolicy == Toolkit::TableView::FILL || element.sizePolicy == Toolkit::TableView::RELATIVE )
       {
-        mColumnData[ column ].size = mColumnData[ column ].fillRatio * remainingSize;
+        element.size = element.fillRatio * remainingSize;
       }
 
-      cumulatedWidth += mColumnData[ column ].size;
-      mColumnData[column].position = cumulatedWidth;
+      cumulatedWidth += element.size;
+      element.position = cumulatedWidth;
     }
 
     mColumnDirty = false;
@@ -803,6 +803,18 @@ void TableView::OnSizeSet( const Vector3& size )
 void TableView::OnRelayout( const Vector2& size, RelayoutContainer& container )
 {
   // Go through the layout data
+  float totalWidth = 0.0;
+
+  Dali::LayoutDirection::Type layoutDirection = static_cast<Dali::LayoutDirection::Type>( Self().GetProperty(Dali::Actor::Property::LAYOUT_DIRECTION).Get<int>() );
+
+  if( Dali::LayoutDirection::RIGHT_TO_LEFT == layoutDirection )
+  {
+    for (auto&& element : mColumnData)
+    {
+      totalWidth += element.size;
+    }
+  }
+
   for( unsigned int row = 0, rowCount = mCellData.GetRows(); row < rowCount; ++row )
   {
     for( unsigned int column = 0, columnCount = mCellData.GetColumns(); column < columnCount; ++column )
@@ -817,44 +829,54 @@ void TableView::OnRelayout( const Vector2& size, RelayoutContainer& container )
       if( actor &&  position.rowIndex == row && position.columnIndex == column )
       {
         // Anchor actor to top left of the cell
-        if( actor.GetProperty( DevelActor::Property::POSITION_USES_ANCHOR_POINT ).Get< bool >() )
+        if( actor.GetProperty( Actor::Property::POSITION_USES_ANCHOR_POINT ).Get< bool >() )
         {
-          actor.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+          actor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
         }
-        actor.SetParentOrigin( ParentOrigin::TOP_LEFT );
+        actor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
 
-        Padding padding;
-        actor.GetPadding( padding );
+        Padding padding = actor.GetProperty<Vector4>( Actor::Property::PADDING );
+
+        float left = (column > 0) ? mColumnData[column - 1].position : 0.f;
+        float right;
+
+        if( Dali::LayoutDirection::RIGHT_TO_LEFT == layoutDirection )
+        {
+          right = totalWidth - left;
+          left = right - mColumnData[column].size;
+        }
+        else
+        {
+          right = left + mColumnData[column].size;
+        }
 
-        float left = column > 0 ? mColumnData[column-1].position : 0.f;
-        float right = mColumnData[column+position.columnSpan-1].position;
         float top = row > 0 ? mRowData[row-1].position : 0.f;
         float bottom = mRowData[row+position.rowSpan-1].position;
 
         if( cellData.horizontalAlignment == HorizontalAlignment::LEFT )
         {
-          actor.SetX( left + mPadding.width + padding.left );
+          actor.SetProperty( Actor::Property::POSITION_X,  left + mPadding.width + padding.left );
         }
         else if( cellData.horizontalAlignment ==  HorizontalAlignment::RIGHT )
         {
-          actor.SetX( right - mPadding.width - padding.right - actor.GetRelayoutSize( Dimension::WIDTH ) );
+          actor.SetProperty( Actor::Property::POSITION_X,  right - mPadding.width - padding.right - actor.GetRelayoutSize( Dimension::WIDTH ) );
         }
         else //if( cellData.horizontalAlignment ==  HorizontalAlignment::CENTER )
         {
-          actor.SetX( (left + right + padding.left - padding.right - actor.GetRelayoutSize( Dimension::WIDTH )) * 0.5f );
+          actor.SetProperty( Actor::Property::POSITION_X,  (left + right + padding.left - padding.right - actor.GetRelayoutSize( Dimension::WIDTH )) * 0.5f );
         }
 
         if( cellData.verticalAlignment == VerticalAlignment::TOP )
         {
-          actor.SetY( top + mPadding.height + padding.top );
+          actor.SetProperty( Actor::Property::POSITION_Y,  top + mPadding.height + padding.top );
         }
         else if( cellData.verticalAlignment == VerticalAlignment::BOTTOM )
         {
-          actor.SetY( bottom - mPadding.height - padding.bottom -  actor.GetRelayoutSize( Dimension::HEIGHT ) );
+          actor.SetProperty( Actor::Property::POSITION_Y,  bottom - mPadding.height - padding.bottom -  actor.GetRelayoutSize( Dimension::HEIGHT ) );
         }
         else //if( cellData.verticalAlignment = VerticalAlignment::CENTER )
         {
-          actor.SetY( (top + bottom + padding.top - padding.bottom - actor.GetRelayoutSize( Dimension::HEIGHT )) * 0.5f );
+          actor.SetProperty( Actor::Property::POSITION_Y,  (top + bottom + padding.top - padding.bottom - actor.GetRelayoutSize( Dimension::HEIGHT )) * 0.5f );
         }
       }
     }
@@ -1095,7 +1117,7 @@ void TableView::OnInitialize()
 {
   // Make self as keyboard focusable and focus group
   Actor self = Self();
-  self.SetKeyboardFocusable(true);
+  self.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE,true);
   SetAsKeyboardFocusGroup(true);
 }