File: PlatformConfiguration\TizenSpecific\VisualElement.cs
Web Access
Project: src\src\Controls\src\Core\Controls.Core.csproj (Microsoft.Maui.Controls)
#nullable disable
using System.ComponentModel;
using System.Xml.Linq;
using Microsoft.Maui.Controls.StyleSheets;
 
namespace Microsoft.Maui.Controls.PlatformConfiguration.TizenSpecific
{
	using static Microsoft.Maui.ApplicationModel.Permissions;
	using FormsElement = Maui.Controls.VisualElement;
 
	/// <summary>
	/// Provides access to focus order, styles, and tooltips for visual elements on the Tizen platform.
	/// </summary>
	public static class VisualElement
	{
		/// <summary>Bindable property for <see cref="Style"/>.</summary>
		public static readonly BindableProperty StyleProperty = BindableProperty.Create("ThemeStyle", typeof(string), typeof(VisualElement), default(string));
 
		/// <summary>Bindable property for attached property <c>IsFocusAllowed</c>.</summary>
		public static readonly BindableProperty IsFocusAllowedProperty = BindableProperty.Create("IsFocusAllowed", typeof(bool?), typeof(VisualElement), null);
 
		/// <summary>Bindable property for attached property <c>NextFocusDirection</c>.</summary>
		[EditorBrowsable(EditorBrowsableState.Never)]
		public static readonly BindableProperty NextFocusDirectionProperty = BindableProperty.Create("NextFocusDirection", typeof(string), typeof(VisualElement), FocusDirection.None, propertyChanged: OnNextFocusDirectionPropertyChanged);
 
		/// <summary>Bindable property for attached property <c>NextFocusUpView</c>.</summary>
		public static readonly BindableProperty NextFocusUpViewProperty = BindableProperty.Create("NextFocusUpView", typeof(View), typeof(VisualElement), default(View));
 
		/// <summary>Bindable property for attached property <c>NextFocusDownView</c>.</summary>
		public static readonly BindableProperty NextFocusDownViewProperty = BindableProperty.Create("NextFocusDownView", typeof(View), typeof(VisualElement), default(View));
 
		/// <summary>Bindable property for attached property <c>NextFocusLeftView</c>.</summary>
		public static readonly BindableProperty NextFocusLeftViewProperty = BindableProperty.Create("NextFocusLeftView", typeof(View), typeof(VisualElement), default(View));
 
		/// <summary>Bindable property for attached property <c>NextFocusRightView</c>.</summary>
		public static readonly BindableProperty NextFocusRightViewProperty = BindableProperty.Create("NextFocusRightView", typeof(View), typeof(VisualElement), default(View));
 
		/// <summary>Bindable property for attached property <c>NextFocusBackView</c>.</summary>
		public static readonly BindableProperty NextFocusBackViewProperty = BindableProperty.Create("NextFocusBackView", typeof(View), typeof(VisualElement), default(View));
 
		/// <summary>Bindable property for attached property <c>NextFocusForwardView</c>.</summary>
		public static readonly BindableProperty NextFocusForwardViewProperty = BindableProperty.Create("NextFocusForwardView", typeof(View), typeof(VisualElement), default(View));
 
		/// <summary>Bindable property for <see cref="ToolTip"/>.</summary>
		public static readonly BindableProperty ToolTipProperty = BindableProperty.Create("ToolTip", typeof(string), typeof(VisualElement), default(string));
 
		/// <summary>
		/// Returns the style for the element.
		/// </summary>
		/// <param name="element">The visual element whose style to get.</param>
		/// <returns>The style for the element.</returns>
		public static string GetStyle(BindableObject element)
		{
			return (string)element.GetValue(StyleProperty);
		}
 
		/// <summary>
		/// Sets the style on a visual element.
		/// </summary>
		/// <param name="element">The visual element whose style to set.</param>
		/// <param name="value">The new style value.</param>
		public static void SetStyle(BindableObject element, string value)
		{
			element.SetValue(StyleProperty, value);
		}
 
		/// <summary>
		/// The platform configuration for the visual element whose style to get.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose style to get.</param>
		/// <returns>The style for the element.</returns>
		public static string GetStyle(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			return GetStyle(config.Element);
		}
 
		/// <summary>
		/// Sets the style on a visual element.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose style to set.</param>
		/// <param name="value">The new style value.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> SetStyle(this IPlatformElementConfiguration<Tizen, FormsElement> config, string value)
		{
			SetStyle(config.Element, value);
			return config;
		}
 
		/// <summary>
		/// Returns <see langword="true" /> if the element may be focused. Otherwise, returns <see langword="false" />.
		/// </summary>
		/// <param name="element">The visual element whose focusability to check.</param>
		/// <returns><see langword="true" /> if the element may be focused. Otherwise, <see langword="false" />.</returns>
		public static bool? IsFocusAllowed(BindableObject element)
		{
			return (bool?)element.GetValue(IsFocusAllowedProperty);
		}
 
		/// <summary>
		/// Sets the focus participation value for a visual element.
		/// </summary>
		/// <param name="element">The element whose focus participation value to set.</param>
		/// <param name="value">The new focus participation value.</param>
		public static void SetFocusAllowed(BindableObject element, bool value)
		{
			element.SetValue(IsFocusAllowedProperty, value);
		}
 
		/// <summary>
		/// Returns <see langword="true" /> if the element may be focused. Otherwise, returns <see langword="false" />.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose focusability to check.</param>
		/// <returns><see langword="true" /> if the element may be focused. Otherwise, <see langword="false" />.</returns>
		public static bool? IsFocusAllowed(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			return IsFocusAllowed(config.Element);
		}
 
		/// <summary>
		/// Sets the focus participation value for a visual element.
		/// </summary>
		/// <param name="config">The platform configuration for the element whose focus participation value to set.</param>
		/// <param name="value">The new focus participation value.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> SetFocusAllowed(this IPlatformElementConfiguration<Tizen, FormsElement> config, bool value)
		{
			SetFocusAllowed(config.Element, value);
			return config;
		}
 
		/// <summary>
		/// Returns the next focus direction.
		/// </summary>
		/// <param name="element">The visual element whose next focus direction to get.</param>
		/// <returns>The next focus direction.</returns>
		[EditorBrowsable(EditorBrowsableState.Never)]
		public static string GetNextFocusDirection(BindableObject element)
		{
			return (string)element.GetValue(NextFocusDirectionProperty);
		}
 
		/// <summary>
		/// The visual element whose next focus direction to set.
		/// </summary>
		/// <param name="element">Sets the direction of the next focus on a visual element.</param>
		/// <param name="value">The new focus direction.</param>
		[EditorBrowsable(EditorBrowsableState.Never)]
		public static void SetNextFocusDirection(BindableObject element, string value)
		{
			element.SetValue(NextFocusDirectionProperty, value);
		}
 
		/// <summary>
		/// Returns the next focus direction.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose next focus direction to get.</param>
		/// <returns>The next focus direction.</returns>
		[EditorBrowsable(EditorBrowsableState.Never)]
		public static string GetNextFocusDirection(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			return GetNextFocusDirection(config.Element);
		}
 
		/// <summary>
		/// Sets the direction of the next focus on a visual element.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose next focus direction to set.</param>
		/// <param name="value">The new focus direction.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		[EditorBrowsable(EditorBrowsableState.Never)]
		public static IPlatformElementConfiguration<Tizen, FormsElement> SetNextFocusDirection(this IPlatformElementConfiguration<Tizen, FormsElement> config, string value)
		{
			SetNextFocusDirection(config.Element, value);
			return config;
		}
 
		/// <summary>
		/// Changes the focus direction to up.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose focus direction to set.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> MoveFocusUp(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			SetNextFocusDirection(config.Element, FocusDirection.Up);
			return config;
		}
 
		/// <summary>
		/// 
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose focus direction to set.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> MoveFocusDown(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			SetNextFocusDirection(config.Element, FocusDirection.Down);
			return config;
		}
 
		/// <summary>
		/// Changes the focus direction to left.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose focus direction to set.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> MoveFocusLeft(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			SetNextFocusDirection(config.Element, FocusDirection.Left);
			return config;
		}
 
		/// <summary>
		/// Changes the focus direction to right.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose focus direction to set.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> MoveFocusRight(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			SetNextFocusDirection(config.Element, FocusDirection.Right);
			return config;
		}
 
		/// <summary>
		/// Changes the focus direction to back.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose focus direction to set.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> MoveFocusBack(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			SetNextFocusDirection(config.Element, FocusDirection.Back);
			return config;
		}
 
		/// <summary>
		/// Changes the focus direction to forward.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose focus direction to set.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> MoveFocusForward(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			SetNextFocusDirection(config.Element, FocusDirection.Forward);
			return config;
		}
 
		/// <summary>
		/// Returns the view that gets the focus when moving up.
		/// </summary>
		/// <param name="element">The visual element whose next focus to get.</param>
		/// <returns>The view that gets the focus when moving up.</returns>
		public static View GetNextFocusUpView(BindableObject element)
		{
			return (View)element.GetValue(NextFocusUpViewProperty);
		}
 
		/// <summary>
		/// Sets the up focus view for a visual element.
		/// </summary>
		/// <param name="element">The element whose up focus view to set.</param>
		/// <param name="value">The new up focus view.</param>
		public static void SetNextFocusUpView(BindableObject element, View value)
		{
			element.SetValue(NextFocusUpViewProperty, value);
		}
 
		/// <summary>
		/// Returns the view that gets the focus when moving up.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose next focus to get.</param>
		/// <returns>The view that gets the focus when moving up.</returns>
		public static View GetNextFocusUpView(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			return GetNextFocusUpView(config.Element);
		}
 
		/// <summary>
		/// Sets the up focus view for a visual element.
		/// </summary>
		/// <param name="config">The platform configuration for the element whose up focus view to set.</param>
		/// <param name="value">The new up focus view.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> SetNextFocusUpView(this IPlatformElementConfiguration<Tizen, FormsElement> config, View value)
		{
			SetNextFocusUpView(config.Element, value);
			return config;
		}
 
		/// <summary>
		/// Returns the view that gets the focus when moving down.
		/// </summary>
		/// <param name="element">The visual element whose next focus to get.</param>
		/// <returns>The view that gets the focus when moving down.</returns>
		public static View GetNextFocusDownView(BindableObject element)
		{
			return (View)element.GetValue(NextFocusDownViewProperty);
		}
 
		/// <summary>
		/// Sets the down focus view for a visual element.
		/// </summary>
		/// <param name="element">The element whose down focus view to set.</param>
		/// <param name="value">The new down focus view.</param>
		public static void SetNextFocusDownView(BindableObject element, View value)
		{
			element.SetValue(NextFocusDownViewProperty, value);
		}
 
		/// <summary>
		/// Returns the view that gets the focus when moving down.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose next focus to get.</param>
		/// <returns>The view that gets the focus when moving down.</returns>
		public static View GetNextFocusDownView(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			return GetNextFocusDownView(config.Element);
		}
 
		/// <summary>
		/// Sets the down focus view for a visual element.
		/// </summary>
		/// <param name="config">The platform configuration for the element whose down focus view to set.</param>
		/// <param name="value">The new down focus view.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> SetNextFocusDownView(this IPlatformElementConfiguration<Tizen, FormsElement> config, View value)
		{
			SetNextFocusDownView(config.Element, value);
			return config;
		}
 
		/// <summary>
		/// Returns the view that gets the focus when moving left.
		/// </summary>
		/// <param name="element">The element whose left focus view to get.</param>
		/// <returns>The view that gets the focus when moving left.</returns>
		public static View GetNextFocusLeftView(BindableObject element)
		{
			return (View)element.GetValue(NextFocusLeftViewProperty);
		}
 
		/// <summary>
		/// Sets the left focus view for a visual element.
		/// </summary>
		/// <param name="element">The element whose left focus view to set.</param>
		/// <param name="value">The new left focus view.</param>
		public static void SetNextFocusLeftView(BindableObject element, View value)
		{
			element.SetValue(NextFocusLeftViewProperty, value);
		}
 
		/// <summary>
		/// Returns the view that gets the focus when moving left.
		/// </summary>
		/// <param name="config">The platform configuration for the element whose left focus view to get.</param>
		/// <returns>The view that gets the focus when moving left.</returns>
		public static View GetNextFocusLeftView(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			return GetNextFocusLeftView(config.Element);
		}
 
		/// <summary>
		/// Sets the left focus view for a visual element.
		/// </summary>
		/// <param name="config">The platform configuration for the element whose left focus view to set.</param>
		/// <param name="value">The new left focus view.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> SetNextFocusLeftView(this IPlatformElementConfiguration<Tizen, FormsElement> config, View value)
		{
			SetNextFocusLeftView(config.Element, value);
			return config;
		}
 
		/// <summary>
		/// Returns the view that gets the focus when moving right.
		/// </summary>
		/// <param name="element">The visual element whose next focus to get.</param>
		/// <returns>The view that gets the focus when moving right.</returns>
		public static View GetNextFocusRightView(BindableObject element)
		{
			return (View)element.GetValue(NextFocusRightViewProperty);
		}
 
		/// <summary>
		/// Sets the right focus view for a visual element.
		/// </summary>
		/// <param name="element">The element whose right focus view to set.</param>
		/// <param name="value">The new right focus view.</param>
		public static void SetNextFocusRightView(BindableObject element, View value)
		{
			element.SetValue(NextFocusRightViewProperty, value);
		}
 
		/// <summary>
		/// Returns the view that gets the focus when moving right.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose next focus to get.</param>
		/// <returns>The view that gets the focus when moving right.</returns>
		public static View GetNextFocusRightView(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			return GetNextFocusRightView(config.Element);
		}
 
		/// <summary>
		/// Sets the right focus view for a visual element.
		/// </summary>
		/// <param name="config">The platform configuration for the element whose right focus view to set.</param>
		/// <param name="value">The new right focus view.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> SetNextFocusRightView(this IPlatformElementConfiguration<Tizen, FormsElement> config, View value)
		{
			SetNextFocusRightView(config.Element, value);
			return config;
		}
 
		/// <summary>
		/// Returns the view that gets the focus when moving back.
		/// </summary>
		/// <param name="element">The visual element whose next focus to get.</param>
		/// <returns>The view that gets the focus when moving back.</returns>
		public static View GetNextFocusBackView(BindableObject element)
		{
			return (View)element.GetValue(NextFocusBackViewProperty);
		}
 
		/// <summary>
		/// Sets the back focus view for a visual element.
		/// </summary>
		/// <param name="element">The element whose back focus view to set.</param>
		/// <param name="value">The new back focus view.</param>
		public static void SetNextFocusBackView(BindableObject element, View value)
		{
			element.SetValue(NextFocusBackViewProperty, value);
		}
 
		/// <summary>
		/// Returns the view that gets the focus when moving back.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose next focus to get.</param>
		/// <returns>The view that gets the focus when moving back.</returns>
		public static View GetNextFocusBackView(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			return GetNextFocusBackView(config.Element);
		}
 
		/// <summary>
		/// Sets the back focus view for a visual element.
		/// </summary>
		/// <param name="config">The platform configuration for the element whose back focus view to set.</param>
		/// <param name="value">The new back focus view.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> SetNextFocusBackView(this IPlatformElementConfiguration<Tizen, FormsElement> config, View value)
		{
			SetNextFocusBackView(config.Element, value);
			return config;
		}
 
		/// <summary>
		/// Returns the view that gets the focus when moving forward.
		/// </summary>
		/// <param name="element">The visual element whose next focus to get.</param>
		/// <returns>The view that gets the focus when moving forward.</returns>
		public static View GetNextFocusForwardView(BindableObject element)
		{
			return (View)element.GetValue(NextFocusForwardViewProperty);
		}
 
		/// <summary>
		/// Sets the forward focus view for a visual element.
		/// </summary>
		/// <param name="element">The element whose forward focus view to set.</param>
		/// <param name="value">The new forward focus view.</param>
		public static void SetNextFocusForwardView(BindableObject element, View value)
		{
			element.SetValue(NextFocusForwardViewProperty, value);
		}
 
		/// <summary>
		/// Returns the view that gets the focus when moving forward.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose next focus to get.</param>
		/// <returns>The view that gets the focus when moving forward.</returns>
		public static View GetNextFocusForwardView(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			return GetNextFocusForwardView(config.Element);
		}
 
		/// <summary>
		/// Sets the forward focus view for a visual element.
		/// </summary>
		/// <param name="config">The platform configuration for the element whose forward focus view to set.</param>
		/// <param name="value">The new forward focus view.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> SetNextFocusForwardView(this IPlatformElementConfiguration<Tizen, FormsElement> config, View value)
		{
			SetNextFocusForwardView(config.Element, value);
			return config;
		}
 
		static void OnNextFocusDirectionPropertyChanged(BindableObject bindable, object oldvalue, object newvalue)
		{
			bindable.SetValue(NextFocusDirectionProperty, FocusDirection.None);
		}
 
		/// <summary>
		/// Returns the tooltip for the element.
		/// </summary>
		/// <param name="element">The visual element whose tooltip to get.</param>
		/// <returns>The tooltip text for the element.</returns>
		public static string GetToolTip(BindableObject element)
		{
			return (string)element.GetValue(ToolTipProperty);
		}
 
		/// <summary>
		/// Sets the tooltip on a visual element.
		/// </summary>
		/// <param name="element">The visual element whose tooltip to set.</param>
		/// <param name="value">The new tooltip value.</param>
		public static void SetToolTip(BindableObject element, string value)
		{
			element.SetValue(ToolTipProperty, value);
		}
 
		/// <summary>
		/// Returns the tooltip for the element.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose tooltip to get.</param>
		/// <returns>The tooltip text for the element.</returns>
		public static string GetToolTip(this IPlatformElementConfiguration<Tizen, FormsElement> config)
		{
			return GetToolTip(config.Element);
		}
 
		/// <summary>
		/// Sets the tooltip on a visual element.
		/// </summary>
		/// <param name="config">The platform configuration for the visual element whose tooltip to set.</param>
		/// <param name="value">The new tooltip value.</param>
		/// <returns>A fluent object on which the developer may make further method calls.</returns>
		public static IPlatformElementConfiguration<Tizen, FormsElement> SetToolTip(this IPlatformElementConfiguration<Tizen, FormsElement> config, string value)
		{
			SetToolTip(config.Element, value);
			return config;
		}
	}
}