[AT-SPI] Fix role setting 60/241160/36
authorArtur Świgoń <a.swigon@samsung.com>
Tue, 18 Aug 2020 07:48:59 +0000 (09:48 +0200)
committerArtur Świgoń <a.swigon@samsung.com>
Fri, 23 Oct 2020 13:07:00 +0000 (15:07 +0200)
Change-Id: I8a697c6875a8c5317585a4b7fcf782facb1224e3

35 files changed:
dali-toolkit/devel-api/controls/control-devel.h
dali-toolkit/internal/controls/alignment/alignment-impl.cpp
dali-toolkit/internal/controls/alignment/alignment-impl.h
dali-toolkit/internal/controls/bloom-view/bloom-view-impl.cpp
dali-toolkit/internal/controls/buttons/check-box-button-impl.cpp
dali-toolkit/internal/controls/buttons/push-button-impl.cpp
dali-toolkit/internal/controls/buttons/radio-button-impl.cpp
dali-toolkit/internal/controls/buttons/toggle-button-impl.cpp
dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp
dali-toolkit/internal/controls/flex-container/flex-container-impl.cpp
dali-toolkit/internal/controls/gaussian-blur-view/gaussian-blur-view-impl.cpp
dali-toolkit/internal/controls/image-view/image-view-impl.cpp
dali-toolkit/internal/controls/magnifier/magnifier-impl.cpp
dali-toolkit/internal/controls/model3d-view/model3d-view-impl.cpp
dali-toolkit/internal/controls/navigation-view/navigation-view-impl.cpp
dali-toolkit/internal/controls/navigation-view/navigation-view-impl.h
dali-toolkit/internal/controls/page-turn-view/page-turn-view-impl.cpp
dali-toolkit/internal/controls/popup/confirmation-popup-impl.cpp
dali-toolkit/internal/controls/popup/popup-impl.cpp
dali-toolkit/internal/controls/progress-bar/progress-bar-impl.cpp
dali-toolkit/internal/controls/scroll-bar/scroll-bar-impl.cpp
dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp
dali-toolkit/internal/controls/scrollable/scrollable-impl.cpp
dali-toolkit/internal/controls/scrollable/scrollable-impl.h
dali-toolkit/internal/controls/shadow-view/shadow-view-impl.cpp
dali-toolkit/internal/controls/slider/slider-impl.cpp
dali-toolkit/internal/controls/super-blur-view/super-blur-view-impl.cpp
dali-toolkit/internal/controls/table-view/table-view-impl.cpp
dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp
dali-toolkit/internal/controls/text-controls/text-field-impl.cpp
dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
dali-toolkit/internal/controls/text-controls/text-selection-popup-impl.cpp
dali-toolkit/internal/controls/text-controls/text-selection-toolbar-impl.cpp
dali-toolkit/internal/controls/tool-bar/tool-bar-impl.cpp
dali-toolkit/internal/controls/video-view/video-view-impl.cpp

index a12b52d..b5f40a0 100644 (file)
@@ -524,7 +524,7 @@ DALI_TOOLKIT_API void NotifyAccessibilityStateChange( Dali::Actor control, Dali:
  *
  * Thank to this method hierarchy of accessibility objects can be based on internal hierarchy of Actors.
  * It prevents from necessity of keeping two trees synchronized.
- * The method should be called inside constructors of all classes inheriting from Control.
+ * The method should be called inside OnInitialize method of all classes inheriting from Control.
  *
  * Possible usage can be as follows:
  * @code
index a58f78f..407eb42 100644 (file)
@@ -190,6 +190,14 @@ const Toolkit::Alignment::Padding& Alignment::GetPadding() const
   return mPadding;
 }
 
+void Alignment::OnInitialize()
+{
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
+  } );
+}
+
 void Alignment::OnRelayout( const Vector2& size, RelayoutContainer& container )
 {
   // lay out the actors
@@ -299,10 +307,6 @@ Alignment::Alignment( Toolkit::Alignment::Type horizontal, Toolkit::Alignment::T
   mScaling( Toolkit::Alignment::SCALE_NONE ),
   mPadding( 0.f, 0.f, 0.f, 0.f )
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
-  } );
 }
 
 Alignment::~Alignment()
index 4eb8634..64d352a 100644 (file)
@@ -83,6 +83,11 @@ public:
 private: // From Control
 
   /**
+   * @copydoc Control::OnInitialize()
+   */
+  virtual void OnInitialize() override;
+
+  /**
    * @copydoc Control::OnRelayout()
    */
   void OnRelayout( const Vector2& size, RelayoutContainer& container ) override;
index 7ae0880..ed35267 100644 (file)
@@ -158,10 +158,6 @@ BloomView::BloomView()
   mImageSaturationPropertyIndex(Property::INVALID_INDEX),
   mActivated( false )
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::ANIMATION ) );
-  } );
 }
 
 BloomView::BloomView( const unsigned int blurNumSamples, const float blurBellCurveWidth, const Pixel::Format renderTargetPixelFormat,
@@ -277,6 +273,11 @@ void BloomView::OnInitialize()
 
   // bind properties for / set shader constants to defaults
   SetupProperties();
+
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::ANIMATION ) );
+  } );
 }
 
 void BloomView::OnSizeSet(const Vector3& targetSize)
index 45c5057..103992f 100644 (file)
@@ -74,10 +74,6 @@ CheckBoxButton::CheckBoxButton()
 : Button()
 {
   SetTogglableButton( true );
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new AccessibleImpl( actor, Dali::Accessibility::Role::CHECK_BOX ) );
-  } );
 }
 
 CheckBoxButton::~CheckBoxButton()
@@ -87,6 +83,11 @@ CheckBoxButton::~CheckBoxButton()
 void CheckBoxButton::OnInitialize()
 {
   Button::OnInitialize();
+
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new AccessibleImpl( actor, Dali::Accessibility::Role::CHECK_BOX ) );
+  } );
 }
 
 Dali::Accessibility::States CheckBoxButton::AccessibleImpl::CalculateStates()
index 345ce06..e77bd30 100644 (file)
@@ -86,10 +86,6 @@ PushButton::PushButton()
 : Button(),
   mIconAlignment( RIGHT )
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new AccessibleImpl( actor, Dali::Accessibility::Role::PUSH_BUTTON ) );
-  } );
 }
 
 PushButton::~PushButton()
@@ -103,6 +99,11 @@ void PushButton::OnInitialize()
   // Push button requires the Leave event.
   Actor self = Self();
   self.SetProperty( Actor::Property::LEAVE_REQUIRED, true );
+
+  DevelControl::SetAccessibilityConstructor( self, []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+        new AccessibleImpl( actor, Dali::Accessibility::Role::PUSH_BUTTON ) );
+  } );
 }
 
 void PushButton::SetIconAlignment( const PushButton::IconAlignment iconAlignment )
index 9df5207..3276076 100644 (file)
@@ -66,10 +66,6 @@ Dali::Toolkit::RadioButton RadioButton::New()
 RadioButton::RadioButton()
 {
   SetTogglableButton(true);
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new AccessibleImpl( actor, Dali::Accessibility::Role::RADIO_BUTTON ) );
-  } );
 }
 
 RadioButton::~RadioButton()
@@ -79,6 +75,11 @@ RadioButton::~RadioButton()
 void RadioButton::OnInitialize()
 {
   Button::OnInitialize();
+
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new AccessibleImpl( actor, Dali::Accessibility::Role::RADIO_BUTTON ) );
+  } );
 }
 
 bool RadioButton::OnToggleReleased()
index a3c4464..9921663 100644 (file)
@@ -96,10 +96,6 @@ ToggleButton::ToggleButton()
 {
   DALI_LOG_INFO( gLogButtonFilter, Debug::General, "ToggleButton::Constructor\n" );
   SetTogglableButton( false );
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new AccessibleImpl( actor, Dali::Accessibility::Role::TOGGLE_BUTTON ) );
-  } );
 }
 
 ToggleButton::~ToggleButton()
@@ -114,6 +110,11 @@ void ToggleButton::OnInitialize()
   // Toggle button requires the Leave event.
   Actor self = Self();
   self.SetProperty( Actor::Property::LEAVE_REQUIRED, true );
+
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new AccessibleImpl( actor, Dali::Accessibility::Role::TOGGLE_BUTTON ) );
+  } );
 }
 
 void ToggleButton::SetProperty( BaseObject* object, Property::Index propertyIndex, const Property::Value& value )
index dee09e9..f23d985 100644 (file)
@@ -148,10 +148,6 @@ EffectsView::EffectsView()
   mEnabled( false ),
   mRefreshOnDemand( EFFECTS_VIEW_REFRESH_ON_DEMAND )
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
-  } );
 }
 
 EffectsView::~EffectsView()
@@ -272,6 +268,11 @@ void EffectsView::OnInitialize()
   CustomActor self = Self();
   mChildrenRoot.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
   self.Add( mChildrenRoot );
+
+  DevelControl::SetAccessibilityConstructor( self, []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
+  } );
 }
 
 void EffectsView::OnSizeSet(const Vector3& targetSize)
index 9749407..5dc8719 100755 (executable)
@@ -825,10 +825,6 @@ FlexContainer::FlexContainer()
   mAlignContent( Toolkit::FlexContainer::ALIGN_FLEX_START )
 {
   SetKeyboardNavigationSupport( true );
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
-  } );
 }
 
 void FlexContainer::OnInitialize()
@@ -851,6 +847,11 @@ void FlexContainer::OnInitialize()
   // Make self as keyboard focusable and focus group
   self.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE, true );
   SetAsKeyboardFocusGroup( true );
+
+  DevelControl::SetAccessibilityConstructor( self, []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
+  } );
 }
 
 } // namespace Internal
index 7fd6fdf..93fb35b 100644 (file)
@@ -143,10 +143,6 @@ GaussianBlurView::GaussianBlurView()
   mActivated( false )
 {
   SetBlurBellCurveWidth(GAUSSIAN_BLUR_VIEW_DEFAULT_BLUR_BELL_CURVE_WIDTH);
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
-  } );
 }
 
 GaussianBlurView::GaussianBlurView( const unsigned int numSamples,
@@ -325,6 +321,11 @@ void GaussianBlurView::OnInitialize()
   mInternalRoot.Add( mHorizBlurActor );
   mInternalRoot.Add( mVertBlurActor );
   mInternalRoot.Add( mRenderDownsampledCamera );
+
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
+  } );
 }
 
 
index 90940f0..0f893a3 100644 (file)
@@ -70,10 +70,6 @@ ImageView::ImageView()
   mImageVisualPaddingSetByTransform( false ),
   mImageViewPixelAreaSetByFittingMode( false )
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::IMAGE ) );
-  } );
 }
 
 ImageView::~ImageView()
@@ -100,6 +96,11 @@ void ImageView::OnInitialize()
   // ImageView can relayout in the OnImageReady, alternative to a signal would be to have a upcall from the Control to ImageView
   Dali::Toolkit::Control handle( GetOwner() );
   handle.ResourceReadySignal().Connect( this, &ImageView::OnResourceReady );
+
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::IMAGE ) );
+  } );
 }
 
 void ImageView::SetImage( const Property::Map& map )
index aa1416a..0be5d46 100644 (file)
@@ -148,11 +148,6 @@ Magnifier::Magnifier()
   mActorSize(Vector3::ZERO),
   mMagnificationFactor(1.0f)
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
-  } );
-
 }
 
 void Magnifier::SetSourceActor(Actor actor)
@@ -225,6 +220,11 @@ void Magnifier::Initialize()
   constraint.AddSource( Source( self, Actor::Property::SIZE ) );
   constraint.AddSource( Source( self, Actor::Property::WORLD_SCALE ) );
   constraint.Apply();
+
+  DevelControl::SetAccessibilityConstructor( self, []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
+  } );
 }
 
 Magnifier::~Magnifier()
index db42cbe..5b49909 100644 (file)
@@ -284,11 +284,6 @@ Model3dView::Model3dView()
   mCameraFOV = Math::PI_OVER_180 * 45.f;
 
   mControlSize = Vector2(100.,100.);
-
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::IMAGE ) );
-  } );
 }
 
 Model3dView::~Model3dView()
@@ -467,6 +462,10 @@ void Model3dView::OnInitialize()
   Shader shader = Shader::New( SIMPLE_VERTEX_SHADER, SIMPLE_FRAGMENT_SHADER );
   mRenderer = Renderer::New( mesh, shader );
 
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::IMAGE ) );
+  } );
 }
 
 void Model3dView::LoadGeometry()
index 5c162a3..4573b4c 100644 (file)
@@ -49,10 +49,6 @@ DALI_TYPE_REGISTRATION_END()
 NavigationView::NavigationView()
 : Control(ControlBehaviour( CONTROL_BEHAVIOUR_DEFAULT ) )
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
-  } );
 }
 
 NavigationView::~NavigationView()
@@ -76,6 +72,14 @@ Toolkit::NavigationView NavigationView::New()
   return navigationView;
 }
 
+void NavigationView::OnInitialize()
+{
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
+  } );
+}
+
 void NavigationView::OnSceneConnection( int depth )
 {
   Self().SetProperty( Actor::Property::SENSITIVE,true);
index d766ebe..820499a 100644 (file)
@@ -78,6 +78,11 @@ public:
 private: // override functions from Control
 
   /**
+   * @copydoc Constrol::OnInitialize
+   */
+  virtual void OnInitialize() override;
+
+  /**
    * @copydoc Control::OnSceneConnection( int depth  )
    */
   void OnSceneConnection( int depth ) override;
index a8be341..df3bf6f 100644 (file)
@@ -363,10 +363,6 @@ PageTurnView::PageTurnView( PageFactory& pageFactory, const Vector2& viewPageSiz
   mPagePanStartedSignal(),
   mPagePanFinishedSignal()
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::PAGE_TAB_LIST ) );
-  } );
 }
 
 PageTurnView::~PageTurnView()
@@ -419,6 +415,11 @@ void PageTurnView::OnInitialize()
 
   // enable the pan gesture which is attached to the control
   EnableGestureDetection(GestureType::Value(GestureType::PAN));
+
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::PAGE_TAB_LIST ) );
+  } );
 }
 
 Shader PageTurnView::CreateShader( const Property::Map& shaderMap )
index 27179d6..0f1a585 100644 (file)
@@ -101,10 +101,6 @@ ConfirmationPopup::ConfirmationPopup()
   mControlSignals.reserve( MAXIMUM_NUMBER_OF_CONTROLS );
   mControlSignalNames[ Toolkit::ConfirmationPopup::CONTROL_OK ] = DEFAULT_CONNECT_SIGNAL_NAME;
   mControlSignalNames[ Toolkit::ConfirmationPopup::CONTROL_CANCEL ] = DEFAULT_CONNECT_SIGNAL_NAME;
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::DIALOG, true ) );
-  } );
 }
 
 ConfirmationPopup::~ConfirmationPopup()
index 430d985..94a0ead 100644 (file)
@@ -271,11 +271,6 @@ Popup::Popup()
   mTailDownImage = imageDirPath + DEFAULT_TAIL_DOWN_IMAGE_FILE_NAME;
   mTailLeftImage = imageDirPath + DEFAULT_TAIL_LEFT_IMAGE_FILE_NAME;
   mTailRightImage = imageDirPath + DEFAULT_TAIL_RIGHT_IMAGE_FILE_NAME;
-
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::DIALOG, true ) );
-  } );
 }
 
 void Popup::OnInitialize()
@@ -343,6 +338,11 @@ void Popup::OnInitialize()
   SetAsKeyboardFocusGroup( true );
 
   SetupTouch();
+
+  DevelControl::SetAccessibilityConstructor( self, []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::DIALOG, true ) );
+  } );
 }
 
 Popup::~Popup()
index fc39869..a24de27 100644 (file)
@@ -158,10 +158,6 @@ ProgressBar::ProgressBar()
   mSecondaryProgressValue( DEFAULT_VALUE ),
   mIndeterminate( false )
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new AccessibleImpl( actor, Dali::Accessibility::Role::PROGRESS_BAR ) );
-  } );
 }
 
 ProgressBar::~ProgressBar()
@@ -170,6 +166,10 @@ ProgressBar::~ProgressBar()
 
 void ProgressBar::OnInitialize()
 {
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+        new AccessibleImpl( actor, Dali::Accessibility::Role::PROGRESS_BAR ) );
+  } );
 }
 
 void ProgressBar::OnRelayout( const Vector2& size, RelayoutContainer& container )
index fb90dd4..b1b09d1 100644 (file)
@@ -205,10 +205,6 @@ ScrollBar::ScrollBar(Toolkit::ScrollBar::Direction direction)
   mIsPanning(false),
   mIndicatorFirstShow(true)
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new AccessibleImpl( actor, Dali::Accessibility::Role::SCROLL_BAR ) );
-  } );
 }
 
 ScrollBar::~ScrollBar()
@@ -219,6 +215,11 @@ void ScrollBar::OnInitialize()
 {
   CreateDefaultIndicatorActor();
   Self().SetProperty( Actor::Property::DRAW_MODE,DrawMode::OVERLAY_2D);
+
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new AccessibleImpl( actor, Dali::Accessibility::Role::SCROLL_BAR ) );
+  } );
 }
 
 void ScrollBar::SetScrollPropertySource( Handle handle, Property::Index propertyScrollPosition, Property::Index propertyMinScrollPosition, Property::Index propertyMaxScrollPosition, Property::Index propertyScrollContentSize )
index 12bd0c3..19d7373 100644 (file)
@@ -362,6 +362,8 @@ ItemView::ItemView(ItemFactory& factory)
 
 void ItemView::OnInitialize()
 {
+  Scrollable::OnInitialize();
+
   Actor self = Self();
 
   Vector2 stageSize = Stage::GetCurrent().GetSize();
index e3b381c..28e2e43 100644 (file)
@@ -90,16 +90,20 @@ Scrollable::Scrollable( ControlBehaviour behaviourFlags )
   mScrollCompletedSignal(),
   mOvershootEnabled(true)
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::SCROLL_PANE ) );
-  } );
 }
 
 Scrollable::~Scrollable()
 {
 }
 
+void Scrollable::OnInitialize()
+{
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::SCROLL_PANE ) );
+  } );
+}
+
 bool Scrollable::IsOvershootEnabled() const
 {
   return mOvershootEnabled;
index 72f710a..ee1e02c 100644 (file)
@@ -118,6 +118,13 @@ public:
    */
   virtual void SetOvershootSize( const Vector2& size ) = 0;
 
+protected: // From Control
+
+  /**
+   * @copydoc Control::OnInitialize
+   */
+  virtual void OnInitialize() override;
+
 private:
 
   /**
index b22bff0..37f7f53 100644 (file)
@@ -132,10 +132,6 @@ ShadowView::ShadowView( float downsampleWidthScale, float downsampleHeightScale
   mDownsampleWidthScale(downsampleWidthScale),
   mDownsampleHeightScale(downsampleHeightScale)
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
-  } );
 }
 
 ShadowView::~ShadowView()
@@ -294,6 +290,11 @@ void ShadowView::OnInitialize()
   Constraint blurStrengthConstraint = Constraint::New<float>( mBlurFilter.GetHandleForAnimateBlurStrength(), mBlurFilter.GetBlurStrengthPropertyIndex(), EqualToConstraint() );
   blurStrengthConstraint.AddSource( Source( self, mBlurStrengthPropertyIndex) );
   blurStrengthConstraint.Apply();
+
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
+  } );
 }
 
 void ShadowView::OnChildAdd( Actor& child )
index 791adea..c347676 100644 (file)
@@ -159,10 +159,6 @@ Slider::Slider()
   mShowValue( false ),
   mSnapToMarks( false )
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new AccessibleImpl( actor, Dali::Accessibility::Role::SLIDER ) );
-  } );
 }
 
 Slider::~Slider()
@@ -209,6 +205,11 @@ void Slider::OnInitialize()
 
   // Connect to the touch signal
   self.TouchedSignal().Connect( this, &Slider::OnTouch );
+
+  DevelControl::SetAccessibilityConstructor( self, []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new AccessibleImpl( actor, Dali::Accessibility::Role::SLIDER ) );
+  } );
 }
 
 void Slider::OnRelayout( const Vector2& size, RelayoutContainer& container )
index 80714d0..769a7fc 100644 (file)
@@ -138,11 +138,6 @@ SuperBlurView::SuperBlurView( unsigned int blurLevels )
   mGaussianBlurView.assign( blurLevels, Toolkit::GaussianBlurView() );
   mBlurredImage.assign( blurLevels, FrameBuffer() );
   mRenderers.assign( blurLevels+1, Dali::Renderer() );
-
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
-  } );
 }
 
 SuperBlurView::~SuperBlurView()
@@ -169,6 +164,11 @@ void SuperBlurView::OnInitialize()
   Actor self( Self() );
 
   mBlurStrengthPropertyIndex = self.RegisterProperty( "blurStrength", 0.f );
+
+  DevelControl::SetAccessibilityConstructor( self, []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::FILLER ) );
+  } );
 }
 
 void SuperBlurView::SetTexture( Texture texture )
index 3dc99a5..4f27bba 100755 (executable)
@@ -1114,10 +1114,6 @@ TableView::TableView( unsigned int initialRows, unsigned int initialColumns )
 {
   SetKeyboardNavigationSupport( true );
   ResizeContainers( initialRows, initialColumns );
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::TABLE ) );
-  } );
 }
 
 void TableView::OnInitialize()
@@ -1126,6 +1122,11 @@ void TableView::OnInitialize()
   Actor self = Self();
   self.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE,true);
   SetAsKeyboardFocusGroup(true);
+
+  DevelControl::SetAccessibilityConstructor( self, []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::TABLE ) );
+  } );
 }
 
 void TableView::ResizeContainers( unsigned int rows, unsigned int columns )
index 74f3732..9ce26d6 100644 (file)
@@ -1232,6 +1232,11 @@ void TextEditor::OnInitialize()
   mStencil.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
 
   self.Add( mStencil );
+
+  DevelControl::SetAccessibilityConstructor( self, []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new AccessibleImpl( actor, Dali::Accessibility::Role::ENTRY ) );
+  } );
 }
 
 void TextEditor::OnStyleChange( Toolkit::StyleManager styleManager, StyleChange::Type change )
@@ -1872,10 +1877,6 @@ TextEditor::TextEditor()
   mScrollBarEnabled( false ),
   mScrollStarted( false )
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new AccessibleImpl( actor, Dali::Accessibility::Role::ENTRY ) );
-  } );
 }
 
 TextEditor::~TextEditor()
index 4a9ccfb..068e55f 100644 (file)
@@ -1241,6 +1241,11 @@ void TextField::OnInitialize()
   {
     EnableClipping();
   }
+
+  DevelControl::SetAccessibilityConstructor( self, []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new AccessibleImpl( actor, Dali::Accessibility::Role::ENTRY ) );
+  } );
 }
 
 void TextField::OnStyleChange( Toolkit::StyleManager styleManager, StyleChange::Type change )
@@ -1812,10 +1817,6 @@ TextField::TextField()
   mExceedPolicy( Dali::Toolkit::TextField::EXCEED_POLICY_CLIP ),
   mHasBeenStaged( false )
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new AccessibleImpl( actor, Dali::Accessibility::Role::ENTRY ) );
-  } );
 }
 
 TextField::~TextField()
index 4699878..d5da6eb 100755 (executable)
@@ -731,6 +731,11 @@ void TextLabel::OnInitialize()
 
   Layout::Engine& engine = mController->GetLayoutEngine();
   engine.SetCursorWidth( 0u ); // Do not layout space for the cursor.
+
+  DevelControl::SetAccessibilityConstructor( self, []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new AccessibleImpl( actor, Dali::Accessibility::Role::LABEL ) );
+  } );
 }
 
 void TextLabel::OnStyleChange( Toolkit::StyleManager styleManager, StyleChange::Type change )
@@ -969,10 +974,6 @@ TextLabel::TextLabel()
   mRenderingBackend( DEFAULT_RENDERING_BACKEND ),
   mTextUpdateNeeded( false )
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new AccessibleImpl( actor, Dali::Accessibility::Role::LABEL ) );
-  } );
 }
 
 TextLabel::~TextLabel()
index 160ee47..f912be2 100644 (file)
@@ -387,6 +387,11 @@ void TextSelectionPopup::OnInitialize()
   Actor self = Self();
   self.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::ALL_DIMENSIONS );
   self.SetProperty( Actor::Property::COLOR_ALPHA, 0.0f );
+
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::DIALOG, true ) );
+  } );
 }
 
 void TextSelectionPopup::HideAnimationFinished( Animation& animation )
@@ -857,10 +862,6 @@ TextSelectionPopup::TextSelectionPopup( TextSelectionPopupCallbackInterface* cal
   mPopupShowing( false ),
   mButtonsChanged( false )
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::DIALOG, true ) );
-  } );
 }
 
 TextSelectionPopup::~TextSelectionPopup()
index 3736f67..792dead 100644 (file)
@@ -167,6 +167,11 @@ Property::Value TextSelectionToolbar::GetProperty( BaseObject* object, Property:
 void TextSelectionToolbar::OnInitialize()
 {
   SetUp();
+
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::TOOL_BAR ));
+  } );
 }
 
 void TextSelectionToolbar::OnRelayout( const Vector2& size, RelayoutContainer& container )
@@ -385,12 +390,6 @@ TextSelectionToolbar::TextSelectionToolbar()
   mDividerIndexes(),
   mFirstScrollEnd( false )
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor )
-    {
-      return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::TOOL_BAR, true ) );
-    }
-  );
 }
 
 TextSelectionToolbar::~TextSelectionToolbar()
index 0ca6e72..1519920 100644 (file)
@@ -289,10 +289,6 @@ ToolBar::ToolBar()
   mInitializing( false ),
   mControls()
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
-    return std::unique_ptr< Dali::Accessibility::Accessible >(
-      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::TOOL_BAR, true ) );
-  } );
 }
 
 ToolBar::~ToolBar()
@@ -318,6 +314,11 @@ 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::OnChildAdd(Actor& child)
index 9f6fc31..6956cb2 100755 (executable)
@@ -140,12 +140,6 @@ VideoView::VideoView( Dali::VideoSyncMode syncMode )
   mIsUnderlay( true ),
   mSyncMode( syncMode )
 {
-  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor )
-    {
-      return std::unique_ptr< Dali::Accessibility::Accessible >(
-        new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::VIDEO, true ) );
-    }
-  );
 }
 
 VideoView::~VideoView()
@@ -165,6 +159,11 @@ Toolkit::VideoView VideoView::New( VideoSyncMode syncMode )
 void VideoView::OnInitialize()
 {
   mVideoPlayer.FinishedSignal().Connect( this, &VideoView::EmitSignalFinish );
+
+  DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+    return std::unique_ptr< Dali::Accessibility::Accessible >(
+      new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::VIDEO ));
+  } );
 }
 
 void VideoView::SetUrl( const std::string& url )