highlight.SetProperty( Actor::Property::POSITION_Z, 1.0f );
highlight.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
+ EnsureSelfVisible();
self.Add( highlight );
SetCurrentlyHighlightedActor( self );
EmitHighlighted( true );
return ret;
}
+void Control::Impl::AccessibleImpl::EnsureChildVisible(Actor child)
+{
+}
+
+void Control::Impl::AccessibleImpl::EnsureSelfVisible()
+{
+ auto parent = dynamic_cast<Control::Impl::AccessibleImpl*>(GetParent());
+ if (parent)
+ {
+ parent->EnsureChildVisible(self);
+ }
+}
+
void Control::Impl::PositionOrSizeChangedCallback( PropertyNotification &p )
{
auto self = Dali::Actor::DownCast(p.GetTarget());
std::vector<Dali::Accessibility::Relation> GetRelationSet() override;
virtual Dali::Accessibility::States CalculateStates();
+ virtual void EnsureChildVisible(Actor child);
+ virtual void EnsureSelfVisible();
};
std::function< std::unique_ptr< Dali::Accessibility::Accessible >( Actor ) > accessibilityConstructor;
#include <cstring> // for strcmp
#include <algorithm>
#include <dali/public-api/actors/layer.h>
-
+#include <dali/devel-api/actors/actor-devel.h>
#include <dali/public-api/animation/constraint.h>
#include <dali/public-api/animation/constraints.h>
#include <dali/devel-api/common/stage.h>
// Connect wheel event
self.WheelEventSignal().Connect( this, &ItemView::OnWheelEvent );
+
+ DevelControl::SetAccessibilityConstructor(self, [](Dali::Actor actor)
+ {
+ return std::unique_ptr<Dali::Accessibility::Accessible>(new AccessibleImpl(actor, Dali::Accessibility::Role::SCROLL_PANE));
+ });
}
ItemView::~ItemView()
}
}
+void ItemView::AccessibleImpl::EnsureChildVisible(Actor child)
+{
+ EnsureSelfVisible();
+ auto itemView = Dali::Toolkit::ItemView::DownCast(self);
+ Toolkit::GetImpl(itemView).OnKeyboardFocusChangeCommitted(child);
+}
+
Animation ItemView::DoAnchoring()
{
Animation anchoringAnimation;
void OnKeyboardFocusChangeCommitted(Actor commitedFocusableActor) override;
protected:
+ struct AccessibleImpl : public Scrollable::AccessibleImpl
+ {
+ using Scrollable::AccessibleImpl::AccessibleImpl;
+
+ void EnsureChildVisible(Actor child) override;
+ };
/**
* Construct a new ItemView.
// EXTERNAL INCLUDES
#include <cstring> // for strcmp
+#include <dali/devel-api/actors/actor-devel.h>
#include <dali/public-api/animation/constraints.h>
#include <dali/devel-api/common/stage.h>
#include <dali/public-api/events/wheel-event.h>
// Connect wheel event
self.WheelEventSignal().Connect( this, &ScrollView::OnWheelEvent );
+
+ DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
+ return std::unique_ptr< Dali::Accessibility::Accessible >(
+ new AccessibleImpl( actor, Dali::Accessibility::Role::SCROLL_PANE ) );
+ } );
}
void ScrollView::OnSceneConnection( int depth )
return mSnapStartedSignal;
}
+void ScrollView::AccessibleImpl::EnsureChildVisible(Actor child)
+{
+ auto scrollView = Dali::Toolkit::ScrollView::DownCast(self);
+ scrollView.ScrollTo(child);
+}
+
void ScrollView::FindAndUnbindActor(Actor child)
{
UnbindActor(child);
void SetInternalConstraints();
protected:
+ struct AccessibleImpl : public Scrollable::AccessibleImpl
+ {
+ using Scrollable::AccessibleImpl::AccessibleImpl;
+
+ void EnsureChildVisible(Actor child) override;
+ };
/**
* Construct a new ScrollView.