[AT-SPI] Fix role setting
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / tool-bar / tool-bar-impl.cpp
index 5ce8db6..1519920 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
 #include "tool-bar-impl.h"
 
 // EXTERNAL INCLUDES
-#include <dali/public-api/actors/image-actor.h>
 #include <dali/public-api/animation/constraints.h>
 #include <dali/public-api/object/type-registry.h>
-#include <dali/devel-api/object/type-registry-helper.h>
+#include <dali/public-api/object/type-registry-helper.h>
 
 // INTERNAL INCLUDES
-#include <dali-toolkit/public-api/controls/alignment/alignment.h>
+#include <dali-toolkit/devel-api/controls/alignment/alignment.h>
+#include <dali-toolkit/internal/controls/control/control-data-impl.h>
 
 namespace Dali
 {
@@ -48,7 +48,7 @@ DALI_TYPE_REGISTRATION_BEGIN( Toolkit::ToolBar, Toolkit::Control, Create )
 DALI_TYPE_REGISTRATION_END()
 
 const float DEFAULT_RELATIVE_SIZE( 0.1f );
-const Toolkit::Alignment::Type DEFAULT_ALIGNMENT( Toolkit::Alignment::HorizontalLeft );
+const Toolkit::Alignment::Type DEFAULT_ALIGNMENT( Toolkit::Alignment::HORIZONTAL_LEFT );
 } // namespace
 
 Toolkit::ToolBar ToolBar::New()
@@ -72,7 +72,7 @@ void ToolBar::AddControl( Actor control, float relativeSize, Toolkit::Alignment:
   unsigned int index = 0;
   switch( alignment )
   {
-    case Toolkit::Alignment::HorizontalLeft:
+    case Toolkit::Alignment::HORIZONTAL_LEFT:
     {
       index = mLeftOffset;
       ++mLeftOffset;
@@ -80,14 +80,14 @@ void ToolBar::AddControl( Actor control, float relativeSize, Toolkit::Alignment:
       ++mRightBase;
       break;
     }
-    case Toolkit::Alignment::HorizontalCenter:
+    case Toolkit::Alignment::HORIZONTAL_CENTER:
     {
       index = mCenterBase + mCenterOffset;
       ++mCenterOffset;
       ++mRightBase;
       break;
     }
-    case Toolkit::Alignment::HorizontalRight:
+    case Toolkit::Alignment::HORIZONTAL_RIGHT:
     {
       index = mRightBase - mRightOffset;
       ++mRightBase;
@@ -105,7 +105,7 @@ void ToolBar::AddControl( Actor control, float relativeSize, Toolkit::Alignment:
 
   // Create an alignment container where to place the control.
   Toolkit::Alignment alignmentContainer = Toolkit::Alignment::New( alignment );
-  alignmentContainer.SetSizeScalePolicy( SizeScalePolicy::FIT_WITH_ASPECT_RATIO );
+  alignmentContainer.SetProperty( Actor::Property::SIZE_SCALE_POLICY, SizeScalePolicy::FIT_WITH_ASPECT_RATIO );
   alignmentContainer.SetPadding( padding );
   alignmentContainer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
   alignmentContainer.Add( control );
@@ -123,7 +123,7 @@ void ToolBar::AddControl( Actor control, float relativeSize, Toolkit::Alignment:
   // Update spaces between left, center and right groups of controls.
   switch( alignment )
   {
-    case Toolkit::Alignment::HorizontalLeft:
+    case Toolkit::Alignment::HORIZONTAL_LEFT:
     {
       mLeftRelativeSpace -= relativeSize;
       if ( mLeftRelativeSpace < 0.f )
@@ -132,7 +132,7 @@ void ToolBar::AddControl( Actor control, float relativeSize, Toolkit::Alignment:
       }
       break;
     }
-    case Toolkit::Alignment::HorizontalCenter:
+    case Toolkit::Alignment::HORIZONTAL_CENTER:
     {
       mLeftRelativeSpace -= 0.5f * relativeSize;
       if ( mLeftRelativeSpace < 0.f )
@@ -146,7 +146,7 @@ void ToolBar::AddControl( Actor control, float relativeSize, Toolkit::Alignment:
       }
       break;
     }
-    case Toolkit::Alignment::HorizontalRight:
+    case Toolkit::Alignment::HORIZONTAL_RIGHT:
     {
       mRightRelativeSpace -= relativeSize;
       if ( mRightRelativeSpace < 0.f )
@@ -180,18 +180,18 @@ void ToolBar::RemoveControl( Actor control )
     // Update spaces between left, center and right groups of controls.
     if( 1.0 > mAccumulatedRelativeSpace )
     {
-      Toolkit::Alignment::Type alignment = Toolkit::Alignment::HorizontalLeft;
+      Toolkit::Alignment::Type alignment = Toolkit::Alignment::HORIZONTAL_LEFT;
       if( position.columnIndex < mLeftOffset )
       {
-        alignment = Toolkit::Alignment::HorizontalLeft;
+        alignment = Toolkit::Alignment::HORIZONTAL_LEFT;
       }
       else if( ( position.columnIndex > mLeftOffset ) && ( position.columnIndex < mCenterBase + mCenterOffset ) )
       {
-        alignment = Toolkit::Alignment::HorizontalCenter;
+        alignment = Toolkit::Alignment::HORIZONTAL_CENTER;
       }
       else if( position.columnIndex > mCenterBase + mCenterOffset )
       {
-        alignment = Toolkit::Alignment::HorizontalRight;
+        alignment = Toolkit::Alignment::HORIZONTAL_RIGHT;
       }
       else
       {
@@ -202,7 +202,7 @@ void ToolBar::RemoveControl( Actor control )
 
       switch( alignment )
       {
-        case Toolkit::Alignment::HorizontalLeft:
+        case Toolkit::Alignment::HORIZONTAL_LEFT:
         {
           mLeftRelativeSpace += relativeSize;
           if ( mLeftRelativeSpace < 0.f )
@@ -211,7 +211,7 @@ void ToolBar::RemoveControl( Actor control )
           }
           break;
         }
-        case Toolkit::Alignment::HorizontalCenter:
+        case Toolkit::Alignment::HORIZONTAL_CENTER:
         {
           mLeftRelativeSpace += 0.5f * relativeSize;
           if ( mLeftRelativeSpace < 0.f )
@@ -225,7 +225,7 @@ void ToolBar::RemoveControl( Actor control )
           }
           break;
         }
-        case Toolkit::Alignment::HorizontalRight:
+        case Toolkit::Alignment::HORIZONTAL_RIGHT:
         {
           mRightRelativeSpace += relativeSize;
           if ( mRightRelativeSpace < 0.f )
@@ -276,7 +276,7 @@ void ToolBar::RemoveControl( Actor control )
 }
 
 ToolBar::ToolBar()
-: Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ),
+: Control( ControlBehaviour( CONTROL_BEHAVIOUR_DEFAULT ) ),
   mLayout(),
   mLeftOffset( 0 ),
   mCenterBase( 1 ),
@@ -301,9 +301,9 @@ void ToolBar::OnInitialize()
 
   // Layout
   mLayout = Toolkit::TableView::New( 1, 1 );
-  mLayout.SetName( "TOOLBAR_LAYOUT" );
+  mLayout.SetProperty( Dali::Actor::Property::NAME, "TOOLBAR_LAYOUT" );
   mLayout.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
-  mLayout.SetParentOrigin( ParentOrigin::CENTER );
+  mLayout.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
 
   Self().Add( mLayout );
 
@@ -314,9 +314,14 @@ void ToolBar::OnInitialize()
   mLayout.AddChild( rightSpace, Toolkit::TableView::CellPosition( 0, 1 ) );
   mLayout.SetRelativeWidth( 0, mLeftRelativeSpace );
   mLayout.SetRelativeWidth( 1, mRightRelativeSpace );
+
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::TOOL_BAR ));
+  } );
 }
 
-void ToolBar::OnControlChildAdd(Actor& child)
+void ToolBar::OnChildAdd(Actor& child)
 {
   if( !mInitializing )
   {
@@ -331,9 +336,11 @@ void ToolBar::OnControlChildAdd(Actor& child)
     AddControl( child, DEFAULT_RELATIVE_SIZE, DEFAULT_ALIGNMENT, Toolkit::ToolBar::DEFAULT_PADDING );
   }
 
-  // No OnControlChildRemove method required because Actors are added to the mLayout table view, so if an
+  // No OnChildRemove method required because Actors are added to the mLayout table view, so if an
   // actor is removed using the Actor::RemoveChild method it will not remove anything because the
   // actor is in mLayout not in Self().
+
+  Control::OnChildAdd( child );
 }
 
 } // namespace Internal