public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.Dialog);
+ AccessibilityRole = Role.Dialog;
AppendAccessibilityAttribute("sub-role", "Alert");
Show(); // calls RegisterDefaultLabel(); Hide() will call UnregisterDefaultLabel()
}
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.PushButton);
+ AccessibilityRole = Role.PushButton;
AccessibilityHighlightable = true;
EnableControlStatePropagation = true;
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.CheckBox);
+ AccessibilityRole = Role.CheckBox;
WidthSpecification = LayoutParamPolicies.WrapContent;
HeightSpecification = LayoutParamPolicies.WrapContent;
}
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.DateEditor);
+ AccessibilityRole = Role.DateEditor;
dayPicker = new Picker()
{
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.Dialog);
+ AccessibilityRole = Role.Dialog;
AppendAccessibilityAttribute("sub-role", "Alert");
Show(); // calls RegisterDefaultLabel(); Hide() will call UnregisterDefaultLabel()
}
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.ProgressBar);
+ AccessibilityRole = Role.ProgressBar;
imageVisual = new AnimatedImageVisual()
{
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.PopupMenu);
+ AccessibilityRole = Role.PopupMenu;
AppendAccessibilityAttribute("sub-role", "Alert");
}
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.MenuItem);
+ AccessibilityRole = Role.MenuItem;
}
}
}
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.TitleBar);
+ AccessibilityRole = Role.TitleBar;
}
/// <summary>
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.PageTab);
+ AccessibilityRole = Role.PageTab;
}
/// <summary>
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.PageTabList);
+ AccessibilityRole = Role.PageTabList;
}
/// <summary>
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
+using Tizen.NUI.Accessibility;
using Tizen.NUI.BaseComponents;
using Tizen.NUI.Binding;
/// Pagination shows the number of pages available and the currently active page.
/// </summary>
/// <since_tizen> 8 </since_tizen>
- public partial class Pagination : Control
+ public partial class Pagination : Control, IAtspiValue
{
/// <summary>The IndicatorSize bindable property.</summary>
[EditorBrowsable(EditorBrowsableState.Never)]
/// Minimum value.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override double AccessibilityGetMinimum()
+ double IAtspiValue.AccessibilityGetMinimum()
{
return 0.0;
}
/// Current value.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override double AccessibilityGetCurrent()
+ double IAtspiValue.AccessibilityGetCurrent()
{
return (double)SelectedIndex;
}
/// Maximum value.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override double AccessibilityGetMaximum()
+ double IAtspiValue.AccessibilityGetMaximum()
{
return (double)IndicatorCount;
}
/// Current value.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override bool AccessibilitySetCurrent(double value)
+ bool IAtspiValue.AccessibilitySetCurrent(double value)
{
int integerValue = (int)value;
/// Minimum increment.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override double AccessibilityGetMinimumIncrement()
+ double IAtspiValue.AccessibilityGetMinimumIncrement()
{
return 1.0;
}
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.ScrollBar, AccessibilityInterface.Value);
+ AccessibilityRole = Role.ScrollBar;
AccessibilityHighlightable = true;
AppendAccessibilityAttribute("style", "pagecontrolbyvalue");
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.List);
+ AccessibilityRole = Role.List;
Initialize();
}
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.Dialog);
+ AccessibilityRole = Role.Dialog;
AppendAccessibilityAttribute("sub-role", "Alert");
container.Add(this);
* limitations under the License.
*
*/
+
using System;
-using Tizen.NUI.BaseComponents;
-using Tizen.NUI.Binding;
using System.ComponentModel;
using System.Diagnostics;
+using Tizen.NUI.Accessibility;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Binding;
namespace Tizen.NUI.Components
{
/// The Progress class is used to show the ongoing status with a long narrow bar.
/// </summary>
/// <since_tizen> 6 </since_tizen>
- public partial class Progress : Control
+ public partial class Progress : Control, IAtspiValue
{
/// <summary>
/// MaxValueProperty
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.ProgressBar, AccessibilityInterface.Value);
+ AccessibilityRole = Role.ProgressBar;
// create necessary components
InitializeTrack();
InitializeBuffer();
/// Gets minimum value for Accessibility.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override double AccessibilityGetMinimum()
+ double IAtspiValue.AccessibilityGetMinimum()
{
if (this.ProgressState == Progress.ProgressStatusType.Determinate)
{
/// Gets the current value for Accessibility.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override double AccessibilityGetCurrent()
+ double IAtspiValue.AccessibilityGetCurrent()
{
if (this.ProgressState == Progress.ProgressStatusType.Determinate)
{
}
}
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool IAtspiValue.AccessibilitySetCurrent(double value)
+ {
+ return false;
+ }
+
/// <summary>
/// Gets maximum value for Accessibility.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override double AccessibilityGetMaximum()
+ double IAtspiValue.AccessibilityGetMaximum()
{
if (this.ProgressState == Progress.ProgressStatusType.Determinate)
{
}
}
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ double IAtspiValue.AccessibilityGetMinimumIncrement()
+ {
+ return 0.0;
+ }
+
/// <summary>
/// Dispose Progress and all children on it.
/// </summary>
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.RadioButton);
+ AccessibilityRole = Role.RadioButton;
}
/// <summary>
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.List);
+ AccessibilityRole = Role.List;
}
/// <summary>
AccessibilityManager.Instance.SetAccessibilityAttribute(this, AccessibilityManager.AccessibilityAttribute.Trait, "ViewItem");
- SetAccessibilityConstructor(Role.ListItem);
+ AccessibilityRole = Role.ListItem;
AccessibilityHighlightable = true;
}
* limitations under the License.
*
*/
+
using System;
-using Tizen.NUI.BaseComponents;
using System.ComponentModel;
+using Tizen.NUI.Accessibility;
+using Tizen.NUI.BaseComponents;
using Tizen.NUI.Binding;
namespace Tizen.NUI.Components
/// A slider lets users select a value from a continuous or discrete range of values by moving the slider thumb.
/// </summary>
/// <since_tizen> 6 </since_tizen>
- public partial class Slider : Control
+ public partial class Slider : Control, IAtspiValue
{
/// <summary>
/// SpaceBetweenTrackAndIndicatorProperty
/// Gets minimum value for Accessibility.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override double AccessibilityGetMinimum()
+ double IAtspiValue.AccessibilityGetMinimum()
{
return (double)MinValue;
}
/// Gets the current value for Accessibility.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override double AccessibilityGetCurrent()
+ double IAtspiValue.AccessibilityGetCurrent()
{
return (double)CurrentValue;
}
/// Gets maximum value for Accessibility.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override double AccessibilityGetMaximum()
+ double IAtspiValue.AccessibilityGetMaximum()
{
return (double)MaxValue;
}
/// Sets the current value using Accessibility.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override bool AccessibilitySetCurrent(double value)
+ bool IAtspiValue.AccessibilitySetCurrent(double value)
{
var current = (float)value;
/// Gets minimum increment for Accessibility.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override double AccessibilityGetMinimumIncrement()
+ double IAtspiValue.AccessibilityGetMinimumIncrement()
{
// FIXME
return (MaxValue - MinValue) / 20.0;
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.Slider, AccessibilityInterface.Value);
+ AccessibilityRole = Role.Slider;
}
/// <summary>
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.ToggleButton);
+ AccessibilityRole = Role.ToggleButton;
IsSelectable = true;
#if PROFILE_MOBILE
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.PageTabList);
+ AccessibilityRole = Role.PageTabList;
}
/// <summary>
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.PageTab);
+ AccessibilityRole = Role.PageTab;
}
/// <inheritdoc/>
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.PageTabList);
+ AccessibilityRole = Role.PageTabList;
}
/// <summary>
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.PageTabList);
+ AccessibilityRole = Role.PageTabList;
}
private void InitTabBar()
public override void OnInitialize()
{
base.OnInitialize();
- SetAccessibilityConstructor(Role.DateEditor);
+ AccessibilityRole = Role.DateEditor;
hourPicker = new Picker()
{
--- /dev/null
+/*
+ * Copyright(c) 2022 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.
+ *
+ */
+
+using System;
+using System.ComponentModel;
+
+namespace Tizen.NUI.Accessibility
+{
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public interface IAtspiEditableText : IAtspiText
+ {
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilityCopyText(int startPosition, int endPosition);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilityCutText(int startPosition, int endPosition);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilityInsertText(int startPosition, string text);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilitySetTextContents(string newContents);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilityDeleteText(int startPosition, int endPosition);
+ }
+}
--- /dev/null
+/*
+ * Copyright(c) 2022 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.
+ *
+ */
+
+using System;
+using System.ComponentModel;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Accessibility
+{
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public interface IAtspiSelection
+ {
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ int AccessibilityGetSelectedChildrenCount();
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ View AccessibilityGetSelectedChild(int selectedChildIndex);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilitySelectChild(int childIndex);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilityDeselectSelectedChild(int selectedChildIndex);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilityIsChildSelected(int childIndex);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilitySelectAll();
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilityClearSelection();
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilityDeselectChild(int childIndex);
+ }
+}
--- /dev/null
+/*
+ * Copyright(c) 2022 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.
+ *
+ */
+
+using System;
+using System.ComponentModel;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Accessibility
+{
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public interface IAtspiText
+ {
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ string AccessibilityGetText(int startOffset, int endOffset);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ int AccessibilityGetCharacterCount();
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ int AccessibilityGetCursorOffset();
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilitySetCursorOffset(int offset);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ AccessibilityRange AccessibilityGetTextAtOffset(int offset, AccessibilityTextBoundary boundary);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ AccessibilityRange AccessibilityGetSelection(int selectionNumber);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilityRemoveSelection(int selectionNumber);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilitySetSelection(int selectionNumber, int startOffset, int endOffset);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Rectangle AccessibilityGetRangeExtents(int startOffset, int endOffset, AccessibilityCoordinateType coordType);
+ }
+}
--- /dev/null
+/*
+ * Copyright(c) 2022 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.
+ *
+ */
+
+using System;
+using System.ComponentModel;
+
+namespace Tizen.NUI.Accessibility
+{
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public interface IAtspiValue
+ {
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ double AccessibilityGetMinimum();
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ double AccessibilityGetCurrent();
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ double AccessibilityGetMaximum();
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ bool AccessibilitySetCurrent(double value);
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ double AccessibilityGetMinimumIncrement();
+ }
+}
/// <since_tizen> 3 </since_tizen>
public virtual void OnInitialize()
{
- SetAccessibilityConstructor(Role.Unknown);
+ AccessibilityRole = Role.Unknown;
AppendAccessibilityAttribute("class", this.GetType().Name);
}
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
- /// <summary>
- /// Sets the specific constructor for creating accessibility structure with its role and interface.
- /// </summary>
- /// <remarks>
- /// The method should be called inside OnInitialize method of all classes inheriting from View.
- /// </remarks>
- /// <param name="role">Accessibility role</param>
- /// <param name="accessibilityInterface">Accessibility interface</param>
- [EditorBrowsable(EditorBrowsableState.Never)]
- public void SetAccessibilityConstructor(Role role, AccessibilityInterface accessibilityInterface = AccessibilityInterface.None)
- {
- // We have to store the interface flags until we remove SetAccessibilityConstructor and switch to native C# interfaces
- AtspiInterfaceFlags = (1U << (int)accessibilityInterface);
- AccessibilityRole = role;
- }
-
[EditorBrowsable(EditorBrowsableState.Never)]
protected override void Dispose(bool disposing)
{
}
[EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual double AccessibilityGetMinimum()
- {
- return 0.0;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual double AccessibilityGetCurrent()
- {
- return 0.0;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual double AccessibilityGetMaximum()
- {
- return 0.0;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilitySetCurrent(double value)
- {
- return false;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual double AccessibilityGetMinimumIncrement()
- {
- return 0.0;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
protected virtual bool AccessibilityIsScrollable()
{
return false;
}
[EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual string AccessibilityGetText(int startOffset, int endOffset)
- {
- return "";
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual int AccessibilityGetCharacterCount()
- {
- return 0;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual int AccessibilityGetCursorOffset()
- {
- return 0;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilitySetCursorOffset(int offset)
- {
- return false;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual AccessibilityRange AccessibilityGetTextAtOffset(int offset, AccessibilityTextBoundary boundary)
- {
- return new AccessibilityRange();
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual AccessibilityRange AccessibilityGetSelection(int selectionNumber)
- {
- return new AccessibilityRange();
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilityRemoveSelection(int selectionNumber)
- {
- return false;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilitySetSelection(int selectionNumber, int startOffset, int endOffset)
- {
- return false;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual Rectangle AccessibilityGetRangeExtents(int startOffset, int endOffset, AccessibilityCoordinateType coordType)
- {
- return new Rectangle(0, 0, 0, 0);
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilityCopyText(int startPosition, int endPosition)
- {
- return false;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilityCutText(int startPosition, int endPosition)
- {
- return false;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilityInsertText(int startPosition, string text)
- {
- return false;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilitySetTextContents(string newContents)
- {
- return false;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilityDeleteText(int startPosition, int endPosition)
- {
- return false;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
protected virtual bool AccessibilityScrollToChild(View child)
{
return false;
}
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual int AccessibilityGetSelectedChildrenCount()
- {
- return 0;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual View AccessibilityGetSelectedChild(int selectedChildIndex)
- {
- return null;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilitySelectChild(int childIndex)
- {
- return false;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilityDeselectSelectedChild(int selectedChildIndex)
- {
- return false;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilityIsChildSelected(int childIndex)
- {
- return false;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilitySelectAll()
- {
- return false;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilityClearSelection()
- {
- return false;
- }
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual bool AccessibilityDeselectChild(int childIndex)
- {
- return false;
- }
}
}
/// </summary>
// Values are from Dali::Accessibility::AtspiInterface
[EditorBrowsable(EditorBrowsableState.Never)]
- public enum AccessibilityInterface
+ internal enum AccessibilityInterface
{
/// <summary>
/// Common accessibility interface
[EditorBrowsable(EditorBrowsableState.Never)]
Value = 26,
/// <summary>
+ /// Accessibility interface which can store text
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ Text = 25,
+ /// <summary>
/// Accessibility interface which can store editable texts
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
/// <summary>
/// Accessibility text boundary is used in text controls.
/// </summary>
- /// <seealso cref="View.AccessibilityGetTextAtOffset" />
+ /// <seealso cref="Accessibility.IAtspiText.AccessibilityGetTextAtOffset" />
/// <remarks>
/// Currently, only AccessibilityTextBoundary.Character is supported.
/// </remarks>
/// <summary>
/// Accessibility coordinate type describing if coordinates are relative to screen or window
/// </summary>
- /// <seealso cref="View.AccessibilityGetRangeExtents" />
+ /// <seealso cref="Accessibility.IAtspiText.AccessibilityGetRangeExtents" />
[EditorBrowsable(EditorBrowsableState.Never)]
public enum AccessibilityCoordinateType
{
using System;
using System.Runtime.InteropServices;
+using Tizen.NUI.Accessibility;
namespace Tizen.NUI.BaseComponents
{
{
private static AccessibilityStates AccessibilityInitialStates = new AccessibilityStates();
- // To be removed when native C# AT-SPI interfaces are implemented.
- private uint? AtspiInterfaceFlags = null;
-
private static void RegisterAccessibilityDelegate()
{
InitializeAccessibilityDelegateAccessibleInterface();
return Registry.GetManagedBaseHandleFromRefObject(refObjectPtr) as View;
}
+ private static T GetInterfaceFromRefObject<T>(IntPtr refObjectPtr)
+ {
+ var view = GetViewFromRefObject(refObjectPtr);
+
+ // NUIViewAccessible::CallMethod<T> checks whether a given interface is implemented
+ // before jumping to managed code, so this condition should always be true.
+ if (view is T atspiInterface)
+ {
+ return atspiInterface;
+ }
+
+ return default(T);
+ }
+
private static IntPtr DuplicateString(string value)
{
return Interop.ControlDevel.DaliAccessibilityDuplicateString(value ?? "");
private static uint AccessibilityGetInterfaces(IntPtr self)
{
- // Currently a maximum of one AccessibilityInterface per View is supported.
- // This will change when we implement AT-SPI interfaces as native C# interfaces.
- // Then, this method will look like:
- //
- // uint flags = 0U;
- // if (view is IAtspiSelection) flags |= (1U << (int)AccessibilityInterface.Selection)
- // if (view is IAtspiValue) flags |= (1U << (int)AccessibilityInterface.Value)
- // ...
- // return flags;
-
View view = GetViewFromRefObject(self);
+ uint flags = 0U;
+
+ if (view is IAtspiEditableText)
+ {
+ flags |= (1U << (int)AccessibilityInterface.EditableText);
+ }
+
+ if (view is IAtspiSelection)
+ {
+ flags |= (1U << (int)AccessibilityInterface.Selection);
+ }
+
+ if (view is IAtspiText)
+ {
+ flags |= (1U << (int)AccessibilityInterface.Text);
+ }
- if (!view.AtspiInterfaceFlags.HasValue)
+ if (view is IAtspiValue)
{
- NUILog.Error("AtspiInterfaceFlags are not set!");
- return 0U;
+ flags |= (1U << (int)AccessibilityInterface.Value);
}
- return view.AtspiInterfaceFlags.Value;
+ return flags;
}
private static IntPtr AccessibilityGetNameWrapper(IntPtr self)
private static bool AccessibilityCopyTextWrapper(IntPtr self, int startPosition, int endPosition)
{
- return GetViewFromRefObject(self).AccessibilityCopyText(startPosition, endPosition);
+ return GetInterfaceFromRefObject<IAtspiEditableText>(self).AccessibilityCopyText(startPosition, endPosition);
}
private static bool AccessibilityCutTextWrapper(IntPtr self, int startPosition, int endPosition)
{
- return GetViewFromRefObject(self).AccessibilityCutText(startPosition, endPosition);
+ return GetInterfaceFromRefObject<IAtspiEditableText>(self).AccessibilityCutText(startPosition, endPosition);
}
private static bool AccessibilityDeleteTextWrapper(IntPtr self, int startPosition, int endPosition)
{
- return GetViewFromRefObject(self).AccessibilityDeleteText(startPosition, endPosition);
+ return GetInterfaceFromRefObject<IAtspiEditableText>(self).AccessibilityDeleteText(startPosition, endPosition);
}
private static bool AccessibilityInsertTextWrapper(IntPtr self, int startPosition, IntPtr text)
{
- return GetViewFromRefObject(self).AccessibilityInsertText(startPosition, Marshal.PtrToStringAnsi(text));
+ return GetInterfaceFromRefObject<IAtspiEditableText>(self).AccessibilityInsertText(startPosition, Marshal.PtrToStringAnsi(text));
}
private static bool AccessibilitySetTextContentsWrapper(IntPtr self, IntPtr newContents)
{
- return GetViewFromRefObject(self).AccessibilitySetTextContents(Marshal.PtrToStringAnsi(newContents));
+ return GetInterfaceFromRefObject<IAtspiEditableText>(self).AccessibilitySetTextContents(Marshal.PtrToStringAnsi(newContents));
}
//
private static bool AccessibilityClearSelectionWrapper(IntPtr self)
{
- return GetViewFromRefObject(self).AccessibilityClearSelection();
+ return GetInterfaceFromRefObject<IAtspiSelection>(self).AccessibilityClearSelection();
}
private static bool AccessibilityDeselectChildWrapper(IntPtr self, int childIndex)
{
- return GetViewFromRefObject(self).AccessibilityDeselectChild(childIndex);
+ return GetInterfaceFromRefObject<IAtspiSelection>(self).AccessibilityDeselectChild(childIndex);
}
private static bool AccessibilityDeselectSelectedChildWrapper(IntPtr self, int selectedChildIndex)
{
- return GetViewFromRefObject(self).AccessibilityDeselectSelectedChild(selectedChildIndex);
+ return GetInterfaceFromRefObject<IAtspiSelection>(self).AccessibilityDeselectSelectedChild(selectedChildIndex);
}
private static IntPtr AccessibilityGetSelectedChildWrapper(IntPtr self, int selectedChildIndex)
{
- View child = GetViewFromRefObject(self).AccessibilityGetSelectedChild(selectedChildIndex);
+ View child = GetInterfaceFromRefObject<IAtspiSelection>(self).AccessibilityGetSelectedChild(selectedChildIndex);
return View.getCPtr(child).Handle;
}
private static int AccessibilityGetSelectedChildrenCountWrapper(IntPtr self)
{
- return GetViewFromRefObject(self).AccessibilityGetSelectedChildrenCount();
+ return GetInterfaceFromRefObject<IAtspiSelection>(self).AccessibilityGetSelectedChildrenCount();
}
private static bool AccessibilityIsChildSelectedWrapper(IntPtr self, int childIndex)
{
- return GetViewFromRefObject(self).AccessibilityIsChildSelected(childIndex);
+ return GetInterfaceFromRefObject<IAtspiSelection>(self).AccessibilityIsChildSelected(childIndex);
}
private static bool AccessibilitySelectAllWrapper(IntPtr self)
{
- return GetViewFromRefObject(self).AccessibilitySelectAll();
+ return GetInterfaceFromRefObject<IAtspiSelection>(self).AccessibilitySelectAll();
}
private static bool AccessibilitySelectChildWrapper(IntPtr self, int childIndex)
{
- return GetViewFromRefObject(self).AccessibilitySelectChild(childIndex);
+ return GetInterfaceFromRefObject<IAtspiSelection>(self).AccessibilitySelectChild(childIndex);
}
//
private static int AccessibilityGetCharacterCountWrapper(IntPtr self)
{
- return GetViewFromRefObject(self).AccessibilityGetCharacterCount();
+ return GetInterfaceFromRefObject<IAtspiText>(self).AccessibilityGetCharacterCount();
}
private static int AccessibilityGetCursorOffsetWrapper(IntPtr self)
{
- return GetViewFromRefObject(self).AccessibilityGetCursorOffset();
+ return GetInterfaceFromRefObject<IAtspiText>(self).AccessibilityGetCursorOffset();
}
private static IntPtr AccessibilityGetRangeExtentsWrapper(IntPtr self, int startOffset, int endOffset, int coordType)
{
- using Rectangle rect = GetViewFromRefObject(self).AccessibilityGetRangeExtents(startOffset, endOffset, (AccessibilityCoordinateType)coordType);
+ using Rectangle rect = GetInterfaceFromRefObject<IAtspiText>(self).AccessibilityGetRangeExtents(startOffset, endOffset, (AccessibilityCoordinateType)coordType);
return DuplicateAccessibilityRectangle(rect);
}
private static IntPtr AccessibilityGetSelectionWrapper(IntPtr self, int selectionNumber)
{
- AccessibilityRange range = GetViewFromRefObject(self).AccessibilityGetSelection(selectionNumber);
+ AccessibilityRange range = GetInterfaceFromRefObject<IAtspiText>(self).AccessibilityGetSelection(selectionNumber);
return DuplicateAccessibilityRange(range);
}
private static IntPtr AccessibilityGetTextWrapper(IntPtr self, int startOffset, int endOffset)
{
- string text = GetViewFromRefObject(self).AccessibilityGetText(startOffset, endOffset);
+ string text = GetInterfaceFromRefObject<IAtspiText>(self).AccessibilityGetText(startOffset, endOffset);
return DuplicateString(text);
}
private static IntPtr AccessibilityGetTextAtOffsetWrapper(IntPtr self, int offset, int boundary)
{
- AccessibilityRange range = GetViewFromRefObject(self).AccessibilityGetTextAtOffset(offset, (AccessibilityTextBoundary)boundary);
+ AccessibilityRange range = GetInterfaceFromRefObject<IAtspiText>(self).AccessibilityGetTextAtOffset(offset, (AccessibilityTextBoundary)boundary);
return DuplicateAccessibilityRange(range);
}
private static bool AccessibilityRemoveSelectionWrapper(IntPtr self, int selectionNumber)
{
- return GetViewFromRefObject(self).AccessibilityRemoveSelection(selectionNumber);
+ return GetInterfaceFromRefObject<IAtspiText>(self).AccessibilityRemoveSelection(selectionNumber);
}
private static bool AccessibilitySetCursorOffsetWrapper(IntPtr self, int offset)
{
- return GetViewFromRefObject(self).AccessibilitySetCursorOffset(offset);
+ return GetInterfaceFromRefObject<IAtspiText>(self).AccessibilitySetCursorOffset(offset);
}
private static bool AccessibilitySetSelectionWrapper(IntPtr self, int selectionNumber, int startOffset, int endOffset)
{
- return GetViewFromRefObject(self).AccessibilitySetSelection(selectionNumber, startOffset, endOffset);
+ return GetInterfaceFromRefObject<IAtspiText>(self).AccessibilitySetSelection(selectionNumber, startOffset, endOffset);
}
//
private static double AccessibilityGetCurrentWrapper(IntPtr self)
{
- return GetViewFromRefObject(self).AccessibilityGetCurrent();
+ return GetInterfaceFromRefObject<IAtspiValue>(self).AccessibilityGetCurrent();
}
private static double AccessibilityGetMaximumWrapper(IntPtr self)
{
- return GetViewFromRefObject(self).AccessibilityGetMaximum();
+ return GetInterfaceFromRefObject<IAtspiValue>(self).AccessibilityGetMaximum();
}
private static double AccessibilityGetMinimumWrapper(IntPtr self)
{
- return GetViewFromRefObject(self).AccessibilityGetMinimum();
+ return GetInterfaceFromRefObject<IAtspiValue>(self).AccessibilityGetMinimum();
}
private static double AccessibilityGetMinimumIncrementWrapper(IntPtr self)
{
- return GetViewFromRefObject(self).AccessibilityGetMinimumIncrement();
+ return GetInterfaceFromRefObject<IAtspiValue>(self).AccessibilityGetMinimumIncrement();
}
private static bool AccessibilitySetCurrentWrapper(IntPtr self, double value)
{
- return GetViewFromRefObject(self).AccessibilitySetCurrent(value);
+ return GetInterfaceFromRefObject<IAtspiValue>(self).AccessibilitySetCurrent(value);
}
//