-/** Copyright (c) 2017 Samsung Electronics Co., Ltd.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* 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.
-*
-*/
+/*
+ * Copyright(c) 2017 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * 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 System.Runtime.InteropServices;
namespace Tizen.NUI.BaseComponents
{
-
- using System;
- using System.Runtime.InteropServices;
-
/// <summary>
/// View is the base class for all views.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public class View : Container
{
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+
internal View(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.View_SWIGUpcast(cPtr), cMemoryOwn)
{
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
- PositionUsesPivotPoint = false;
+ if (HasBody())
+ {
+ PositionUsesPivotPoint = false;
+ }
}
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(View obj)
/// <summary>
/// Adds a child view to this view.
/// </summary>
- /// <seealso cref="Container.Add()">
- /// </seealso>
+ /// <seealso cref="Container.Add" />
+ /// <since_tizen> 4 </since_tizen>
public override void Add(View child)
{
- NDalicPINVOKE.Actor_Add(swigCPtr, View.getCPtr(child));
- if (NDalicPINVOKE.SWIGPendingException.Pending)
- throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ Container oldParent = child.GetParent();
+ if(oldParent != this)
+ {
+ if (oldParent != null)
+ {
+ oldParent.Remove(child);
+ }
+ NDalicPINVOKE.Actor_Add(swigCPtr, View.getCPtr(child));
+ if (NDalicPINVOKE.SWIGPendingException.Pending)
+ throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ Children.Add(child);
+ }
}
/// <summary>
/// Removes a child view from this View. If the view was not a child of this view, this is a no-op.
/// </summary>
- /// <seealso cref="Container.Remove()">
- /// </seealso>
+ /// <seealso cref="Container.Remove" />
+ /// <since_tizen> 4 </since_tizen>
public override void Remove(View child)
{
NDalicPINVOKE.Actor_Remove(swigCPtr, View.getCPtr(child));
if (NDalicPINVOKE.SWIGPendingException.Pending)
throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+
+ Children.Remove(child);
}
/// <summary>
/// Retrieves a child view by index.
/// </summary>
- /// <seealso cref="Container.GetChildAt()">
- /// </seealso>
+ /// <seealso cref="Container.GetChildAt" />
+ /// <since_tizen> 4 </since_tizen>
public override View GetChildAt(uint index)
{
- IntPtr cPtr = NDalicPINVOKE.Actor_GetChildAt(swigCPtr, index);
-
- View ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as View;
-
- if (NDalicPINVOKE.SWIGPendingException.Pending)
- throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret ?? null;
+ if (index < Children.Count)
+ {
+ return Children[Convert.ToInt32(index)];
+ }
+ else
+ {
+ return null;
+ }
}
/// <summary>
/// Retrieves the number of children held by the view.
/// </summary>
- /// <seealso cref="Container.GetChildCount()">
- /// </seealso>
- protected override uint GetChildCount()
+ /// <seealso cref="Container.GetChildCount" />
+ /// <since_tizen> 4 </since_tizen>
+ public override uint GetChildCount()
{
- uint ret = NDalicPINVOKE.Actor_GetChildCount(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending)
- throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
+ return Convert.ToUInt32(Children.Count);
}
/// <summary>
/// Gets the views parent.
/// </summary>
- /// <seealso cref="Container.GetParent()">
- protected override Container GetParent()
+ /// <seealso cref="Container.GetParent()" />
+ /// <since_tizen> 4 </since_tizen>
+ public override Container GetParent()
{
- Container ret;
+ //to fix memory leak issue, match the handle count with native side.
IntPtr cPtr = NDalicPINVOKE.Actor_GetParent(swigCPtr);
-
- BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(cPtr);
-
- if(basehandle is Layer)
- {
- ret = basehandle as Layer;
- }
- else
- {
- ret = basehandle as View;
- }
+ HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+ BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle);
+ NDalicPINVOKE.delete_BaseHandle(CPtr);
+ CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
if (NDalicPINVOKE.SWIGPendingException.Pending)
throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
- }
- [Obsolete("This is temporal API. Currently Parent returns View but Container class has been introduced so 'View Parent' will be changed 'Container Parent' later soon, then this will be removed")]
- public Container GetContainerParent()
- {
- return this.GetParent();
+ return basehandle as Container;
}
internal bool IsTopLevelView()
{
- if(GetContainerParent() is Layer)
+ if (GetParent() is Layer)
{
return true;
}
return false;
}
- // you can override it to clean-up your own resources.
+ /// <summary>
+ /// you can override it to clean-up your own resources.
+ /// </summary>
+ /// <param name="type">DisposeTypes</param>
+ /// <since_tizen> 3 </since_tizen>
protected override void Dispose(DisposeTypes type)
{
- if(disposed)
+ if (disposed)
{
return;
}
- if(type == DisposeTypes.Explicit)
+ if (type == DisposeTypes.Explicit)
{
//Called by User
//Release your own managed resources here.
//Release your own unmanaged resources here.
//You should not access any managed member here except static instance.
//because the execution order of Finalizes is non-deterministic.
-
- DisConnectFromSignals();
+ if (this != null)
+ {
+ DisConnectFromSignals();
+ }
if (swigCPtr.Handle != global::System.IntPtr.Zero)
{
}
base.Dispose(type);
+
}
private void DisConnectFromSignals()
private KeyInputFocusGainedCallbackType _keyInputFocusGainedCallback;
/// <summary>
- /// An event for the KeyInputFocusGained signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br>
- /// The KeyInputFocusGained signal is emitted when the control gets the key input focus.<br>
+ /// An event for the KeyInputFocusGained signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
+ /// The KeyInputFocusGained signal is emitted when the control gets the key input focus.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public event EventHandler FocusGained
{
add
private KeyInputFocusLostCallbackType _keyInputFocusLostCallback;
/// <summary>
- /// An event for the KeyInputFocusLost signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br>
- /// The KeyInputFocusLost signal is emitted when the control loses the key input focus.<br>
+ /// An event for the KeyInputFocusLost signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
+ /// The KeyInputFocusLost signal is emitted when the control loses the key input focus.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public event EventHandler FocusLost
{
add
/// <summary>
/// Event arguments that passed via the KeyEvent signal.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public class KeyEventArgs : EventArgs
{
private Key _key;
/// <summary>
/// Key - is the key sent to the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Key Key
{
get
private KeyCallbackType _keyCallback;
/// <summary>
- /// An event for the KeyPressed signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br>
- /// The KeyPressed signal is emitted when the key event is received.<br>
+ /// An event for the KeyPressed signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
+ /// The KeyPressed signal is emitted when the key event is received.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public event EventHandlerWithReturnType<object, KeyEventArgs, bool> KeyEvent
{
add
private bool OnKeyEvent(IntPtr view, IntPtr keyEvent)
{
+ if (keyEvent == global::System.IntPtr.Zero)
+ {
+ NUILog.Error("keyEvent should not be null!");
+ return true;
+ }
+
KeyEventArgs e = new KeyEventArgs();
bool result = false;
Delegate[] delegateList = _keyEventHandler.GetInvocationList();
// Oring the result of each callback.
- foreach ( EventHandlerWithReturnType<object, KeyEventArgs, bool> del in delegateList )
+ foreach (EventHandlerWithReturnType<object, KeyEventArgs, bool> del in delegateList)
{
- result |= del( this, e );
+ result |= del(this, e);
}
}
private OnRelayoutEventCallbackType _onRelayoutEventCallback;
/// <summary>
- /// An event for the OnRelayout signal which can be used to subscribe or unsubscribe the event handler.<br>
- /// The OnRelayout signal is emitted after the size has been set on the view during relayout.<br>
+ /// An event for the OnRelayout signal which can be used to subscribe or unsubscribe the event handler.<br />
+ /// The OnRelayout signal is emitted after the size has been set on the view during relayout.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public event EventHandler Relayout
{
add
/// <summary>
/// Event arguments that passed via the touch signal.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public class TouchEventArgs : EventArgs
{
private Touch _touch;
/// <summary>
/// Touch - contains the information of touch points.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Touch Touch
{
get
private TouchDataCallbackType _touchDataCallback;
/// <summary>
- /// An event for the touched signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br>
- /// The touched signal is emitted when the touch input is received.<br>
+ /// An event for the touched signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
+ /// The touched signal is emitted when the touch input is received.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public event EventHandlerWithReturnType<object, TouchEventArgs, bool> TouchEvent
{
add
// Callback for View TouchSignal
private bool OnTouch(IntPtr view, IntPtr touchData)
{
+ if (touchData == global::System.IntPtr.Zero)
+ {
+ NUILog.Error("touchData should not be null!");
+ return true;
+ }
+
TouchEventArgs e = new TouchEventArgs();
e.Touch = Tizen.NUI.Touch.GetTouchFromPtr(touchData);
/// <summary>
/// Event arguments that passed via the hover signal.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public class HoverEventArgs : EventArgs
{
private Hover _hover;
/// <summary>
/// Hover - contains touch points that represent the points that are currently being hovered or the points where a hover has stopped.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Hover Hover
{
get
private HoverEventCallbackType _hoverEventCallback;
/// <summary>
- /// An event for the hovered signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br>
- /// The hovered signal is emitted when the hover input is received.<br>
+ /// An event for the hovered signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
+ /// The hovered signal is emitted when the hover input is received.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public event EventHandlerWithReturnType<object, HoverEventArgs, bool> HoverEvent
{
add
// Callback for View Hover signal
private bool OnHoverEvent(IntPtr view, IntPtr hoverEvent)
{
+ if (hoverEvent == global::System.IntPtr.Zero)
+ {
+ NUILog.Error("hoverEvent should not be null!");
+ return true;
+ }
+
HoverEventArgs e = new HoverEventArgs();
e.Hover = Tizen.NUI.Hover.GetHoverFromPtr(hoverEvent);
/// <summary>
/// Event arguments that passed via the wheel signal.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public class WheelEventArgs : EventArgs
{
private Wheel _wheel;
/// <summary>
/// WheelEvent - store a wheel rolling type: MOUSE_WHEEL or CUSTOM_WHEEL.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Wheel Wheel
{
get
private WheelEventCallbackType _wheelEventCallback;
/// <summary>
- /// An event for the WheelMoved signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br>
- /// The WheelMoved signal is emitted when the wheel event is received.<br>
+ /// An event for the WheelMoved signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
+ /// The WheelMoved signal is emitted when the wheel event is received.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public event EventHandlerWithReturnType<object, WheelEventArgs, bool> WheelEvent
{
add
// Callback for View Wheel signal
private bool OnWheelEvent(IntPtr view, IntPtr wheelEvent)
{
+ if (wheelEvent == global::System.IntPtr.Zero)
+ {
+ NUILog.Error("wheelEvent should not be null!");
+ return true;
+ }
+
WheelEventArgs e = new WheelEventArgs();
e.Wheel = Tizen.NUI.Wheel.GetWheelFromPtr(wheelEvent);
private OnWindowEventCallbackType _onWindowEventCallback;
/// <summary>
- /// An event for the OnWindow signal which can be used to subscribe or unsubscribe the event handler.<br>
- /// The OnWindow signal is emitted after the view has been connected to the window.<br>
+ /// An event for the OnWindow signal which can be used to subscribe or unsubscribe the event handler.<br />
+ /// The OnWindow signal is emitted after the view has been connected to the window.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public event EventHandler AddedToWindow
{
add
private OffWindowEventCallbackType _offWindowEventCallback;
/// <summary>
- /// An event for the OffWindow signal, which can be used to subscribe or unsubscribe the event handler.<br>
- /// OffWindow signal is emitted after the view has been disconnected from the window.<br>
+ /// An event for the OffWindow signal, which can be used to subscribe or unsubscribe the event handler.<br />
+ /// OffWindow signal is emitted after the view has been disconnected from the window.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public event EventHandler RemovedFromWindow
{
add
/// <summary>
/// Event arguments of visibility changed.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public class VisibilityChangedEventArgs : EventArgs
{
private View _view;
/// <summary>
/// The view, or child of view, whose visibility has changed.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public View View
{
get
/// <summary>
/// Whether the view is now visible or not.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public bool Visibility
{
get
/// <summary>
/// Whether the view's visible property has changed or a parent's.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public VisibilityChangeType Type
{
get
private VisibilityChangedEventCallbackType _visibilityChangedEventCallback;
/// <summary>
- /// An event for visibility change which can be used to subscribe or unsubscribe the event handler.<br>
- /// This signal is emitted when the visible property of this or a parent view is changed.<br>
+ /// An event for visibility change which can be used to subscribe or unsubscribe the event handler.<br />
+ /// This signal is emitted when the visible property of this or a parent view is changed.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public event EventHandler<VisibilityChangedEventArgs> VisibilityChanged
{
add
/// <summary>
/// Event arguments of layout direction changed.
/// </summary>
+ /// <since_tizen> 4 </since_tizen>
public class LayoutDirectionChangedEventArgs : EventArgs
{
private View _view;
/// <summary>
/// The view, or child of view, whose layout direction has changed.
/// </summary>
+ /// <since_tizen> 4 </since_tizen>
public View View
{
get
/// <summary>
/// Whether the view's layout direction property has changed or a parent's.
/// </summary>
+ /// <since_tizen> 4 </since_tizen>
public ViewLayoutDirectionType Type
{
get
private LayoutDirectionChangedEventCallbackType _layoutDirectionChangedEventCallback;
/// <summary>
- /// Event for layout direction change which can be used to subscribe/unsubscribe the event handler.<br>
- /// This signal is emitted when the layout direction property of this or a parent view is changed.<br>
+ /// Event for layout direction change which can be used to subscribe/unsubscribe the event handler.<br />
+ /// This signal is emitted when the layout direction property of this or a parent view is changed.<br />
/// </summary>
+ /// <since_tizen> 4 </since_tizen>
public event EventHandler<LayoutDirectionChangedEventArgs> LayoutDirectionChanged
{
add
private ResourcesLoadedCallbackType _ResourcesLoadedCallback;
/// <summary>
- /// An event for the ResourcesLoadedSignal signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br>
- /// This signal is emitted after all resources required by a view are loaded and ready.<br>
+ /// An event for the ResourcesLoadedSignal signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
+ /// This signal is emitted after all resources required by a view are loaded and ready.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public event EventHandler ResourcesLoaded
{
add
internal static readonly int SIZE_SCALE_POLICY = NDalicPINVOKE.Actor_Property_SIZE_SCALE_POLICY_get();
internal static readonly int WIDTH_FOR_HEIGHT = NDalicPINVOKE.Actor_Property_WIDTH_FOR_HEIGHT_get();
internal static readonly int HEIGHT_FOR_WIDTH = NDalicPINVOKE.Actor_Property_HEIGHT_FOR_WIDTH_get();
- internal static readonly int PADDING = NDalicPINVOKE.Actor_Property_PADDING_get();
internal static readonly int MINIMUM_SIZE = NDalicPINVOKE.Actor_Property_MINIMUM_SIZE_get();
internal static readonly int MAXIMUM_SIZE = NDalicPINVOKE.Actor_Property_MAXIMUM_SIZE_get();
internal static readonly int INHERIT_POSITION = NDalicPINVOKE.Actor_Property_INHERIT_POSITION_get();
internal static readonly int CLIPPING_MODE = NDalicPINVOKE.Actor_Property_CLIPPING_MODE_get();
internal static readonly int INHERIT_LAYOUT_DIRECTION = NDalicManualPINVOKE.Actor_Property_INHERIT_LAYOUT_DIRECTION_get();
internal static readonly int LAYOUT_DIRECTION = NDalicManualPINVOKE.Actor_Property_LAYOUT_DIRECTION_get();
+ internal static readonly int MARGIN = NDalicPINVOKE.View_Property_MARGIN_get();
+ internal static readonly int PADDING = NDalicPINVOKE.View_Property_PADDING_get();
}
/// <summary>
/// Describes the direction to move the focus towards.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public enum FocusDirection
{
+ /// <summary>
+ /// Move keyboard focus towards the left direction.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
Left,
+ /// <summary>
+ /// Move keyboard focus towards the right direction.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
Right,
+ /// <summary>
+ /// Move keyboard focus towards the up direction.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
Up,
+ /// <summary>
+ /// Move keyboard focus towards the down direction.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
Down,
+ /// <summary>
+ /// Move keyboard focus towards the previous page direction.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
PageUp,
+ /// <summary>
+ /// Move keyboard focus towards the next page direction.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
PageDown
}
/// <summary>
/// Creates a new instance of a view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public View() : this(NDalicPINVOKE.View_New(), true)
{
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
- /// <summary>
- /// Downcasts a handle to view handle.<br>
- /// If handle points to a view, the downcast produces a valid handle.<br>
- /// If not, the returned handle is left uninitialized.<br>
- /// </summary>
- /// <param name="handle">A handle to an object.</param>
- /// <returns>A handle to a view or an uninitialized handle.</returns>
- [Obsolete("Please do not use! this will be deprecated, instead please use as keyword.")]
- public static View DownCast(BaseHandle handle)
- {
- View ret = Registry.GetManagedBaseHandleFromNativePtr(handle) as View;
- if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
- return ret;
- }
-
- [Obsolete("Please do not use! this will be deprecated, instead please use as keyword.")]
- public static T DownCast<T>(View view) where T : View
- {
- T ret = Registry.GetManagedBaseHandleFromNativePtr(view) as T;
- if (ret != null)
- {
- return ret;
- }
- return null;
- }
-
private View ConvertIdToView(uint id)
{
View view = null;
/// Queries whether the view has a focus.
/// </summary>
/// <returns>True if this view has a focus.</returns>
+ /// <since_tizen> 3 </since_tizen>
public bool HasFocus()
{
bool ret = NDalicPINVOKE.View_HasKeyInputFocus(swigCPtr);
/// Sets the name of the style to be applied to the view.
/// </summary>
/// <param name="styleName">A string matching a style described in a stylesheet.</param>
+ /// <since_tizen> 3 </since_tizen>
public void SetStyleName(string styleName)
{
NDalicPINVOKE.View_SetStyleName(swigCPtr, styleName);
/// Retrieves the name of the style to be applied to the view (if any).
/// </summary>
/// <returns>A string matching a style, or an empty string.</returns>
+ /// <since_tizen> 3 </since_tizen>
public string GetStyleName()
{
string ret = NDalicPINVOKE.View_GetStyleName(swigCPtr);
/// <summary>
/// Clears the background.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public void ClearBackground()
{
NDalicPINVOKE.View_ClearBackground(swigCPtr);
/// <summary>
/// The StyleName, type string.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public string StyleName
{
get
}
/// <summary>
- /// The mutually exclusive with BACKGROUND_IMAGE & BACKGROUND type Vector4.
+ /// The mutually exclusive with BACKGROUND_IMAGE and BACKGROUND type Vector4.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Color BackgroundColor
{
get
/// Creates an animation to animate the background color visual. If there is no
/// background visual, creates one with transparent black as it's mixColor.
/// </summary>
- public Animation AnimateBackgroundColor( object destinationValue,
+ /// <since_tizen> 3 </since_tizen>
+ public Animation AnimateBackgroundColor(object destinationValue,
int startTime,
int endTime,
AlphaFunction.BuiltinFunctions? alphaFunction = null,
{
Tizen.NUI.PropertyMap background = Background;
- if( background.Empty() )
+ if (background.Empty())
{
// If there is no background yet, ensure there is a transparent
// color visual
BackgroundColor = new Color(0.0f, 0.0f, 0.0f, 0.0f);
background = Background;
}
- return AnimateColor( "background", destinationValue, startTime, endTime, alphaFunction, initialValue );
+ return AnimateColor("background", destinationValue, startTime, endTime, alphaFunction, initialValue);
}
/// <summary>
/// Creates an animation to animate the mixColor of the named visual.
/// </summary>
- public Animation AnimateColor( string targetVisual, object destinationColor, int startTime, int endTime, AlphaFunction.BuiltinFunctions? alphaFunction = null, object initialColor = null )
+ /// <since_tizen> 3 </since_tizen>
+ public Animation AnimateColor(string targetVisual, object destinationColor, int startTime, int endTime, AlphaFunction.BuiltinFunctions? alphaFunction = null, object initialColor = null)
{
Animation animation = null;
{
PropertyMap _animator = new PropertyMap();
- if( alphaFunction != null )
+ if (alphaFunction != null)
{
- _animator.Add("alphaFunction", new PropertyValue( AlphaFunction.BuiltinToPropertyKey(alphaFunction) ) );
+ _animator.Add("alphaFunction", new PropertyValue(AlphaFunction.BuiltinToPropertyKey(alphaFunction)));
}
PropertyMap _timePeriod = new PropertyMap();
- _timePeriod.Add( "duration", new PropertyValue((endTime-startTime)/1000.0f) );
- _timePeriod.Add( "delay", new PropertyValue( startTime/1000.0f ) );
- _animator.Add( "timePeriod", new PropertyValue( _timePeriod ) );
+ _timePeriod.Add("duration", new PropertyValue((endTime - startTime) / 1000.0f));
+ _timePeriod.Add("delay", new PropertyValue(startTime / 1000.0f));
+ _animator.Add("timePeriod", new PropertyValue(_timePeriod));
PropertyMap _transition = new PropertyMap();
- _transition.Add( "animator", new PropertyValue( _animator ) );
- _transition.Add( "target", new PropertyValue( targetVisual ) );
- _transition.Add( "property", new PropertyValue( "mixColor" ) );
+ _transition.Add("animator", new PropertyValue(_animator));
+ _transition.Add("target", new PropertyValue(targetVisual));
+ _transition.Add("property", new PropertyValue("mixColor"));
- if( initialColor != null )
+ if (initialColor != null)
{
- PropertyValue initValue = PropertyValue.CreateFromObject( initialColor );
- _transition.Add( "initialValue", initValue );
+ PropertyValue initValue = PropertyValue.CreateFromObject(initialColor);
+ _transition.Add("initialValue", initValue);
}
- PropertyValue destValue = PropertyValue.CreateFromObject( destinationColor );
- _transition.Add( "targetValue", destValue );
- TransitionData _transitionData = new TransitionData( _transition );
+ PropertyValue destValue = PropertyValue.CreateFromObject(destinationColor);
+ _transition.Add("targetValue", destValue);
+ TransitionData _transitionData = new TransitionData(_transition);
- animation = new Animation( NDalicManualPINVOKE.View_CreateTransition(swigCPtr, TransitionData.getCPtr(_transitionData)), true );
+ animation = new Animation(NDalicManualPINVOKE.View_CreateTransition(swigCPtr, TransitionData.getCPtr(_transitionData)), true);
if (NDalicPINVOKE.SWIGPendingException.Pending)
throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
}
/// <summary>
- /// The mutually exclusive with BACKGROUND_COLOR & BACKGROUND type Map.
+ /// The mutually exclusive with BACKGROUND_COLOR and BACKGROUND type Map.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public string BackgroundImage
{
get
}
}
+ /// <summary>
+ /// The background of view.
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Tizen.NUI.PropertyMap Background
{
get
{
Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
- GetProperty( View.Property.BACKGROUND ).Get(temp);
+ GetProperty(View.Property.BACKGROUND).Get(temp);
return temp;
}
set
/// <summary>
/// The current state of the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public States State
{
get
switch (temp)
{
case 0:
- {
- return States.Normal;
- }
+ {
+ return States.Normal;
+ }
case 1:
- {
- return States.Focused;
- }
+ {
+ return States.Focused;
+ }
case 2:
- {
- return States.Disabled;
- }
+ {
+ return States.Disabled;
+ }
default:
- {
- return States.Normal;
- }
+ {
+ return States.Normal;
+ }
}
}
set
/// <summary>
/// The current sub state of the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public States SubState
{
get
switch (value)
{
case States.Normal:
- {
- valueToString = "NORMAL";
- break;
- }
+ {
+ valueToString = "NORMAL";
+ break;
+ }
case States.Focused:
- {
- valueToString = "FOCUSED";
- break;
- }
+ {
+ valueToString = "FOCUSED";
+ break;
+ }
case States.Disabled:
- {
- valueToString = "DISABLED";
- break;
- }
+ {
+ valueToString = "DISABLED";
+ break;
+ }
default:
- {
- valueToString = "NORMAL";
- break;
- }
+ {
+ valueToString = "NORMAL";
+ break;
+ }
}
SetProperty(View.Property.SUB_STATE, new Tizen.NUI.PropertyValue(valueToString));
}
/// <summary>
/// Displays a tooltip
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Tizen.NUI.PropertyMap Tooltip
{
get
/// <summary>
/// Displays a tooltip as a text.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public string TooltipText
{
set
}
/// <summary>
- /// The Child property of FlexContainer.<br>
- /// The proportion of the free space in the container, the flex item will receive.<br>
- /// If all items in the container set this property, their sizes will be proportional to the specified flex factor.<br>
+ /// The Child property of FlexContainer.<br />
+ /// The proportion of the free space in the container, the flex item will receive.<br />
+ /// If all items in the container set this property, their sizes will be proportional to the specified flex factor.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public float Flex
{
get
}
/// <summary>
- /// The Child property of FlexContainer.<br>
- /// The alignment of the flex item along the cross axis, which, if set, overides the default alignment for all items in the container.<br>
+ /// The Child property of FlexContainer.<br />
+ /// The alignment of the flex item along the cross axis, which, if set, overides the default alignment for all items in the container.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public int AlignSelf
{
get
}
/// <summary>
- /// The Child property of FlexContainer.<br>
- /// The space around the flex item.<br>
+ /// The Child property of FlexContainer.<br />
+ /// The space around the flex item.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Vector4 FlexMargin
{
get
/// <summary>
/// The top-left cell this child occupies, if not set, the first available cell is used.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Vector2 CellIndex
{
get
/// <summary>
/// The number of rows this child occupies, if not set, the default value is 1.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public float RowSpan
{
get
/// <summary>
/// The number of columns this child occupies, if not set, the default value is 1.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public float ColumnSpan
{
get
/// <summary>
/// The horizontal alignment of this child inside the cells, if not set, the default value is 'left'.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Tizen.NUI.HorizontalAlignmentType CellHorizontalAlignment
{
get
switch (value)
{
case Tizen.NUI.HorizontalAlignmentType.Left:
- {
- valueToString = "left";
- break;
- }
+ {
+ valueToString = "left";
+ break;
+ }
case Tizen.NUI.HorizontalAlignmentType.Center:
- {
- valueToString = "center";
- break;
- }
+ {
+ valueToString = "center";
+ break;
+ }
case Tizen.NUI.HorizontalAlignmentType.Right:
- {
- valueToString = "right";
- break;
- }
+ {
+ valueToString = "right";
+ break;
+ }
default:
- {
- valueToString = "left";
- break;
- }
+ {
+ valueToString = "left";
+ break;
+ }
}
SetProperty(TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
}
/// <summary>
/// The vertical alignment of this child inside the cells, if not set, the default value is 'top'.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Tizen.NUI.VerticalAlignmentType CellVerticalAlignment
{
get
switch (value)
{
case Tizen.NUI.VerticalAlignmentType.Top:
- {
- valueToString = "top";
- break;
- }
+ {
+ valueToString = "top";
+ break;
+ }
case Tizen.NUI.VerticalAlignmentType.Center:
- {
- valueToString = "center";
- break;
- }
+ {
+ valueToString = "center";
+ break;
+ }
case Tizen.NUI.VerticalAlignmentType.Bottom:
- {
- valueToString = "bottom";
- break;
- }
+ {
+ valueToString = "bottom";
+ break;
+ }
default:
- {
- valueToString = "top";
- break;
- }
+ {
+ valueToString = "top";
+ break;
+ }
}
SetProperty(TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
}
}
/// <summary>
- /// The left focusable view.<br>
- /// This will return null if not set.<br>
- /// This will also return null if the specified left focusable view is not on a window.<br>
+ /// The left focusable view.<br />
+ /// This will return null if not set.<br />
+ /// This will also return null if the specified left focusable view is not on a window.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public View LeftFocusableView
{
// As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
}
set
{
- LeftFocusableViewId = (int)value.GetId();
+ if (value)
+ {
+ LeftFocusableViewId = (int)value.GetId();
+ }
+ else
+ {
+ LeftFocusableViewId = -1;
+ }
}
}
/// <summary>
- /// The right focusable view.<br>
- /// This will return null if not set.<br>
- /// This will also return null if the specified right focusable view is not on a window.<br>
+ /// The right focusable view.<br />
+ /// This will return null if not set.<br />
+ /// This will also return null if the specified right focusable view is not on a window.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public View RightFocusableView
{
// As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
}
set
{
- RightFocusableViewId = (int)value.GetId();
+ if (value)
+ {
+ RightFocusableViewId = (int)value.GetId();
+ }
+ else
+ {
+ RightFocusableViewId = -1;
+ }
}
}
/// <summary>
- /// The up focusable view.<br>
- /// This will return null if not set.<br>
- /// This will also return null if the specified up focusable view is not on a window.<br>
+ /// The up focusable view.<br />
+ /// This will return null if not set.<br />
+ /// This will also return null if the specified up focusable view is not on a window.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public View UpFocusableView
{
// As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
}
set
{
- UpFocusableViewId = (int)value.GetId();
+ if (value)
+ {
+ UpFocusableViewId = (int)value.GetId();
+ }
+ else
+ {
+ UpFocusableViewId = -1;
+ }
}
}
/// <summary>
- /// The down focusable view.<br>
- /// This will return null if not set.<br>
- /// This will also return null if the specified down focusable view is not on a window.<br>
+ /// The down focusable view.<br />
+ /// This will return null if not set.<br />
+ /// This will also return null if the specified down focusable view is not on a window.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public View DownFocusableView
{
// As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
}
set
{
- DownFocusableViewId = (int)value.GetId();
+ if (value)
+ {
+ DownFocusableViewId = (int)value.GetId();
+ }
+ else
+ {
+ DownFocusableViewId = -1;
+ }
}
}
/// <summary>
/// Whether the view should be focusable by keyboard navigation.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public bool Focusable
{
set
/// <summary>
/// Enumeration for describing the states of the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public enum States
{
/// <summary>
}
/// <summary>
- /// Retrieves the position of the view.<br>
- /// The coordinates are relative to the view's parent.<br>
+ /// Retrieves the position of the view.<br />
+ /// The coordinates are relative to the view's parent.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Position CurrentPosition
{
get
}
/// <summary>
- /// Sets the size of a view for the width and the height.<br>
- /// Geometry can be scaled to fit within this area.<br>
- /// This does not interfere with the view's scale factor.<br>
- /// The views default depth is the minimum of width and height.<br>
+ /// Sets the size of a view for the width and the height.<br />
+ /// Geometry can be scaled to fit within this area.<br />
+ /// This does not interfere with the view's scale factor.<br />
+ /// The views default depth is the minimum of width and height.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Size2D Size2D
{
get
}
/// <summary>
- /// Retrieves the size of the view.<br>
- /// The coordinates are relative to the view's parent.<br>
+ /// Retrieves the size of the view.<br />
+ /// The coordinates are relative to the view's parent.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Size2D CurrentSize
{
get
}
}
- [Obsolete("Please do not use! this will be deprecated. Please use Visibility instead.")]
- public bool Visible
- {
- get
- {
- return IsVisible();
- }
- }
-
/// <summary>
- /// Retrieves and sets the view's opacity.<br>
+ /// Retrieves and sets the view's opacity.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public float Opacity
{
get
}
/// <summary>
- /// Sets the position of the view for X and Y.<br>
- /// By default, sets the position vector between the parent origin and the pivot point (default).<br>
- /// If the position inheritance is disabled, sets the world position.<br>
+ /// Sets the position of the view for X and Y.<br />
+ /// By default, sets the position vector between the parent origin and the pivot point (default).<br />
+ /// If the position inheritance is disabled, sets the world position.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Position2D Position2D
{
get
}
/// <summary>
- /// Retrieves the screen postion of the view.<br>
+ /// Retrieves the screen postion of the view.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Vector2 ScreenPosition
{
get
/// <remarks>If false, then the top-left of the view is used for the position.
/// Setting this to false will allow scaling or rotation around the anchor-point without affecting the view's position.
/// </remarks>
+ /// <since_tizen> 3 </since_tizen>
public bool PositionUsesPivotPoint
{
get
}
}
- [Obsolete("Please do not use! this will be deprecated")]
+ /// <summary>
+ /// Please do not use! this will be deprecated.
+ /// </summary>
+ /// Please do not use! this will be deprecated!
+ /// Instead please use PositionUsesPivotPoint.
+ /// <since_tizen> 3 </since_tizen>
+ [Obsolete("Please do not use! This will be deprecated! Please use PositionUsesPivotPoint instead! " +
+ "Like: " +
+ "View view = new View(); " +
+ "view.PivotPoint = PivotPoint.Center; " +
+ "view.PositionUsesPivotPoint = true;")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
public bool PositionUsesAnchorPoint
{
get
}
/// <summary>
- /// Queries whether the view is connected to the stage.<br>
- /// When a view is connected, it will be directly or indirectly parented to the root view.<br>
+ /// Queries whether the view is connected to the stage.<br />
+ /// When a view is connected, it will be directly or indirectly parented to the root view.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public bool IsOnWindow
{
get
/// <summary>
/// Gets the depth in the hierarchy for the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public int HierarchyDepth
{
get
/// Sets the sibling order of the view so the depth position can be defined within the same parent.
/// </summary>
/// <remarks>
- /// Note the initial value is 0.
+ /// Note the initial value is 0. SiblingOrder should be bigger than 0 or equal to 0.
/// Raise, Lower, RaiseToTop, LowerToBottom, RaiseAbove, and LowerBelow will override the sibling order.
/// The values set by this property will likely change.
/// </remarks>
+ /// <since_tizen> 3 </since_tizen>
public int SiblingOrder
{
get
{
- int temp = 0;
- GetProperty(View.Property.SIBLING_ORDER).Get(out temp);
- return temp;
+ var parentChildren = GetParent()?.Children;
+ int currentOrder = 0;
+ if (parentChildren != null)
+ {
+ currentOrder = parentChildren.IndexOf(this);
+
+ if (currentOrder < 0)
+ {
+ return 0;
+ }
+ else if (currentOrder < parentChildren.Count)
+ {
+ return currentOrder;
+ }
+ }
+
+ return 0;
}
set
{
- SetProperty(View.Property.SIBLING_ORDER, new Tizen.NUI.PropertyValue(value));
+ if(value < 0)
+ {
+ NUILog.Error("SiblingOrder should be bigger than 0 or equal to 0.");
+ return;
+ }
+ var siblings = GetParent()?.Children;
+ if (siblings != null)
+ {
+ int currentOrder = siblings.IndexOf(this);
+ if (value != currentOrder)
+ {
+ if (value == 0)
+ {
+ LowerToBottom();
+ }
+ else if (value < siblings.Count - 1)
+ {
+ if (value > currentOrder)
+ {
+ RaiseAbove(siblings[value]);
+ }
+ else
+ {
+ LowerBelow(siblings[value]);
+ }
+ }
+ else
+ {
+ RaiseToTop();
+ }
+ }
+ }
}
}
/// <remarks>
/// Deriving classes stipulate the natural size and by default a view has a zero natural size.
/// </remarks>
- [Obsolete("Please do not use! this will be deprecated, please use NaturalSize2D instead")]
+ /// /// Please do not use! this will be deprecated!
+ /// Instead please use NaturalSize2D.
+ /// <since_tizen> 3 </since_tizen>
+ [Obsolete("Please do not use! This will be deprecated! Please use NaturalSize2D instead! " +
+ "Like: " +
+ "TextLabel label = new TextLabel(\"Hello World!\"); " +
+ "Size2D size = label.NaturalSize2D;")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
public Vector3 NaturalSize
{
get
/// <remarks>
/// Deriving classes stipulate the natural size and by default a view has a zero natural size.
/// </remarks>
+ /// <since_tizen> 4 </since_tizen>
public Size2D NaturalSize2D
{
get
/// <remarks>
/// This is an asynchronous method.
/// </remarks>
+ /// <since_tizen> 3 </since_tizen>
public void Show()
{
SetVisible(true);
/// If the view is hidden, then the view and its children will not be rendered.
/// This is regardless of the individual visibility of the children, i.e., the view will only be rendered if all of its parents are shown.
/// </remarks>
+ /// <since_tizen> 3 </since_tizen>
public void Hide()
{
SetVisible(false);
internal void Raise()
{
- NDalicPINVOKE.Raise(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending)
- throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ var parentChildren = GetParent()?.Children;
+
+ if (parentChildren != null)
+ {
+ int currentIndex = parentChildren.IndexOf(this);
+
+ // If the view is not already the last item in the list.
+ if (currentIndex >= 0 && currentIndex < parentChildren.Count -1)
+ {
+ View temp = parentChildren[currentIndex + 1];
+ parentChildren[currentIndex + 1] = this;
+ parentChildren[currentIndex] = temp;
+
+ NDalicPINVOKE.Raise(swigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending)
+ throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+ }
+
}
internal void Lower()
{
- NDalicPINVOKE.Lower(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending)
- throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ var parentChildren = GetParent()?.Children;
+
+ if (parentChildren != null)
+ {
+ int currentIndex = parentChildren.IndexOf(this);
+
+ // If the view is not already the first item in the list.
+ if (currentIndex > 0 && currentIndex < parentChildren.Count)
+ {
+ View temp = parentChildren[currentIndex - 1];
+ parentChildren[currentIndex - 1] = this;
+ parentChildren[currentIndex] = temp;
+
+ NDalicPINVOKE.Lower(swigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending)
+ throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+ }
}
/// <summary>
/// Sibling order of views within the parent will be updated automatically.
/// Once a raise or lower API is used, that view will then have an exclusive sibling order independent of insertion.
/// </remarks>
+ /// <since_tizen> 3 </since_tizen>
public void RaiseToTop()
{
- NDalicPINVOKE.RaiseToTop(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending)
- throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ var parentChildren = GetParent()?.Children;
+
+ if (parentChildren != null)
+ {
+ parentChildren.Remove(this);
+ parentChildren.Add(this);
+
+ NDalicPINVOKE.RaiseToTop(swigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending)
+ throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+
}
/// <summary>
/// The sibling order of views within the parent will be updated automatically.
/// Once a raise or lower API is used that view will then have an exclusive sibling order independent of insertion.
/// </remarks>
+ /// <since_tizen> 3 </since_tizen>
public void LowerToBottom()
{
- NDalicPINVOKE.LowerToBottom(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending)
- throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ var parentChildren = GetParent()?.Children;
+
+ if (parentChildren != null)
+ {
+ parentChildren.Remove(this);
+ parentChildren.Insert(0, this);
+
+ NDalicPINVOKE.LowerToBottom(swigCPtr);
+ if (NDalicPINVOKE.SWIGPendingException.Pending)
+ throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
}
/// <summary>
/// </summary>
/// <remarks>Most resources are only loaded when the control is placed on the stage.
/// </remarks>
+ /// <since_tizen> 3 </since_tizen>
public bool IsResourceReady()
{
bool ret = NDalicPINVOKE.IsResourceReady(swigCPtr);
/// <param name="target">Will be raised above this view.</param>
internal void RaiseAbove(View target)
{
- NDalicPINVOKE.RaiseAbove(swigCPtr, View.getCPtr(target));
- if (NDalicPINVOKE.SWIGPendingException.Pending)
- throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ var parentChildren = GetParent()?.Children;
+
+ if (parentChildren != null)
+ {
+ int currentIndex = parentChildren.IndexOf(this);
+ int targetIndex = parentChildren.IndexOf(target);
+
+ if(currentIndex < 0 || targetIndex < 0 ||
+ currentIndex >= parentChildren.Count || targetIndex >= parentChildren.Count)
+ {
+ NUILog.Error("index should be bigger than 0 and less than children of layer count");
+ return;
+ }
+ // If the currentIndex is less than the target index and the target has the same parent.
+ if (currentIndex < targetIndex)
+ {
+ parentChildren.Remove(this);
+ parentChildren.Insert(targetIndex, this);
+
+ NDalicPINVOKE.RaiseAbove(swigCPtr, View.getCPtr(target));
+ if (NDalicPINVOKE.SWIGPendingException.Pending)
+ throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+ }
+
}
/// <summary>
/// <param name="target">Will be lowered below this view.</param>
internal void LowerBelow(View target)
{
- NDalicPINVOKE.RaiseAbove(swigCPtr, View.getCPtr(target));
- if (NDalicPINVOKE.SWIGPendingException.Pending)
- throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ var parentChildren = GetParent()?.Children;
+
+ if (parentChildren != null)
+ {
+ int currentIndex = parentChildren.IndexOf(this);
+ int targetIndex = parentChildren.IndexOf(target);
+ if(currentIndex < 0 || targetIndex < 0 ||
+ currentIndex >= parentChildren.Count ||targetIndex >= parentChildren.Count)
+ {
+ NUILog.Error("index should be bigger than 0 and less than children of layer count");
+ return;
+ }
+
+ // If the currentIndex is not already the 0th index and the target has the same parent.
+ if ((currentIndex != 0) && (targetIndex != -1) &&
+ (currentIndex > targetIndex))
+ {
+ parentChildren.Remove(this);
+ parentChildren.Insert(targetIndex, this);
+
+ NDalicPINVOKE.LowerBelow(swigCPtr, View.getCPtr(target));
+ if (NDalicPINVOKE.SWIGPendingException.Pending)
+ throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+ }
+
}
internal string GetName()
return ret;
}
- internal Layer GetLayer()
- {
+ /// <summary>
+ /// Gets the parent layer of this view.If a view has no parent, this method does nothing.
+ /// </summary>
+ /// <pre>The view has been initialized. </pre>
+ /// <returns>the parent layer of view </returns>
+ /// <since_tizen> 5 </since_tizen>
+ /// This will be released at Tizen.NET API Level 5, so currently this would be used as inhouse API.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public Layer GetLayer()
+ {
+ //to fix memory leak issue, match the handle count with native side.
IntPtr cPtr = NDalicPINVOKE.Actor_GetLayer(swigCPtr);
- Layer ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as Layer;
+ HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+ Layer ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as Layer;
+ NDalicPINVOKE.delete_BaseHandle(CPtr);
+ CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
if (NDalicPINVOKE.SWIGPendingException.Pending)
throw NDalicPINVOKE.SWIGPendingException.Retrieve();
/// Removes a view from its parent view or layer. If a view has no parent, this method does nothing.
/// </summary>
/// <pre>The (child) view has been initialized. </pre>
+ /// <since_tizen> 4 </since_tizen>
public void Unparent()
{
- NDalicPINVOKE.Actor_Unparent(swigCPtr);
- if (NDalicPINVOKE.SWIGPendingException.Pending)
- throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ GetParent()?.Remove(this);
}
/// <summary>
/// <pre>The view has been initialized.</pre>
/// <param name="viewName">The name of the view to find.</param>
/// <returns>A handle to the view if found, or an empty handle if not.</returns>
+ /// <since_tizen> 3 </since_tizen>
public View FindChildByName(string viewName)
{
+ //to fix memory leak issue, match the handle count with native side.
IntPtr cPtr = NDalicPINVOKE.Actor_FindChildByName(swigCPtr, viewName);
-
- View ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as View;
+ HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+ View ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as View;
+ NDalicPINVOKE.delete_BaseHandle(CPtr);
+ CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
if (NDalicPINVOKE.SWIGPendingException.Pending)
throw NDalicPINVOKE.SWIGPendingException.Retrieve();
internal View FindChildById(uint id)
{
+ //to fix memory leak issue, match the handle count with native side.
IntPtr cPtr = NDalicPINVOKE.Actor_FindChildById(swigCPtr, id);
-
- View ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as View;
+ HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+ View ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as View;
+ NDalicPINVOKE.delete_BaseHandle(CPtr);
+ CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
if (NDalicPINVOKE.SWIGPendingException.Pending)
throw NDalicPINVOKE.SWIGPendingException.Retrieve();
/// <param name="screenX">The screen X-coordinate.</param>
/// <param name="screenY">The screen Y-coordinate.</param>
/// <returns>True if the conversion succeeded.</returns>
+ /// <since_tizen> 3 </since_tizen>
public bool ScreenToLocal(out float localX, out float localY, float screenX, float screenY)
{
bool ret = NDalicPINVOKE.Actor_ScreenToLocal(swigCPtr, out localX, out localY, screenX, screenY);
}
/// <summary>
- /// Sets the relative to parent size factor of the view.<br>
+ /// Sets the relative to parent size factor of the view.<br />
/// This factor is only used when ResizePolicy is set to either:
- /// ResizePolicy::SIZE_RELATIVE_TO_PARENT or ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT.<br>
- /// This view's size is set to the view's size multiplied by or added to this factor, depending on ResizePolicy.<br>
+ /// ResizePolicy::SIZE_RELATIVE_TO_PARENT or ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT.<br />
+ /// This view's size is set to the view's size multiplied by or added to this factor, depending on ResizePolicy.<br />
/// </summary>
/// <pre>The view has been initialized.</pre>
/// <param name="factor">A Vector3 representing the relative factor to be applied to each axis.</param>
+ /// <since_tizen> 3 </since_tizen>
public void SetSizeModeFactor(Vector3 factor)
{
NDalicPINVOKE.Actor_SetSizeModeFactor(swigCPtr, Vector3.getCPtr(factor));
}
/// <summary>
- /// Calculates the height of the view given a width.<br>
- /// The natural size is used for default calculation.<br>
- /// Size 0 is treated as aspect ratio 1:1.<br>
+ /// Calculates the height of the view given a width.<br />
+ /// The natural size is used for default calculation.<br />
+ /// Size 0 is treated as aspect ratio 1:1.<br />
/// </summary>
/// <param name="width">The width to use.</param>
/// <returns>The height based on the width.</returns>
+ /// <since_tizen> 3 </since_tizen>
public float GetHeightForWidth(float width)
{
float ret = NDalicPINVOKE.Actor_GetHeightForWidth(swigCPtr, width);
}
/// <summary>
- /// Calculates the width of the view given a height.<br>
- /// The natural size is used for default calculation.<br>
- /// Size 0 is treated as aspect ratio 1:1.<br>
+ /// Calculates the width of the view given a height.<br />
+ /// The natural size is used for default calculation.<br />
+ /// Size 0 is treated as aspect ratio 1:1.<br />
/// </summary>
/// <param name="height">The height to use.</param>
/// <returns>The width based on the height.</returns>
+ /// <since_tizen> 3 </since_tizen>
public float GetWidthForHeight(float height)
{
float ret = NDalicPINVOKE.Actor_GetWidthForHeight(swigCPtr, height);
return ret;
}
+ /// <summary>
+ /// Return the amount of size allocated for relayout.
+ /// </summary>
+ /// <param name="dimension">The dimension to retrieve.</param>
+ /// <returns>Return the size.</returns>
+ /// <since_tizen> 3 </since_tizen>
public float GetRelayoutSize(DimensionType dimension)
{
float ret = NDalicPINVOKE.Actor_GetRelayoutSize(swigCPtr, (int)dimension);
return ret;
}
+ /// <summary>
+ /// Set the padding for the view.
+ /// </summary>
+ /// <param name="padding">Padding for the view.</param>
+ /// <since_tizen> 3 </since_tizen>
public void SetPadding(PaddingType padding)
{
NDalicPINVOKE.Actor_SetPadding(swigCPtr, PaddingType.getCPtr(padding));
throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
+ /// <summary>
+ /// Return the value of padding for the view.
+ /// </summary>
+ /// <param name="paddingOut">the value of padding for the view</param>
+ /// <since_tizen> 3 </since_tizen>
public void GetPadding(PaddingType paddingOut)
{
NDalicPINVOKE.Actor_GetPadding(swigCPtr, PaddingType.getCPtr(paddingOut));
return ret;
}
+ /// <since_tizen> 3 </since_tizen>
public uint AddRenderer(Renderer renderer)
{
uint ret = NDalicPINVOKE.Actor_AddRenderer(swigCPtr, Renderer.getCPtr(renderer));
return ret;
}
+ /// <since_tizen> 3 </since_tizen>
public Renderer GetRendererAt(uint index)
{
+ //to fix memory leak issue, match the handle count with native side.
IntPtr cPtr = NDalicPINVOKE.Actor_GetRendererAt(swigCPtr, index);
- Renderer ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as Renderer;
+ HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+ Renderer ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as Renderer;
+ NDalicPINVOKE.delete_BaseHandle(CPtr);
+ CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
if (NDalicPINVOKE.SWIGPendingException.Pending)
throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
+ /// <since_tizen> 3 </since_tizen>
public void RemoveRenderer(Renderer renderer)
{
NDalicPINVOKE.Actor_RemoveRenderer__SWIG_0(swigCPtr, Renderer.getCPtr(renderer));
throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
+ /// <since_tizen> 3 </since_tizen>
public void RemoveRenderer(uint index)
{
NDalicPINVOKE.Actor_RemoveRenderer__SWIG_1(swigCPtr, index);
return ret;
}
- internal ViewVisibilityChangedSignal VisibilityChangedSignal(View view) {
+ internal ViewVisibilityChangedSignal VisibilityChangedSignal(View view)
+ {
ViewVisibilityChangedSignal ret = new ViewVisibilityChangedSignal(NDalicPINVOKE.VisibilityChangedSignal(View.getCPtr(view)), false);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
- internal ViewLayoutDirectionChangedSignal LayoutDirectionChangedSignal(View view) {
+ internal ViewLayoutDirectionChangedSignal LayoutDirectionChangedSignal(View view)
+ {
ViewLayoutDirectionChangedSignal ret = new ViewLayoutDirectionChangedSignal(NDalicManualPINVOKE.LayoutDirectionChangedSignal(View.getCPtr(view)), false);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
/// <summary>
- /// Gets or sets the origin of a view within its parent's area.<br>
- /// This is expressed in unit coordinates, such that (0.0, 0.0, 0.5) is the top-left corner of the parent, and (1.0, 1.0, 0.5) is the bottom-right corner.<br>
- /// The default parent-origin is ParentOrigin.TopLeft (0.0, 0.0, 0.5).<br>
- /// A view's position is the distance between this origin and the view's anchor-point.<br>
+ /// Gets or sets the origin of a view within its parent's area.<br />
+ /// This is expressed in unit coordinates, such that (0.0, 0.0, 0.5) is the top-left corner of the parent, and (1.0, 1.0, 0.5) is the bottom-right corner.<br />
+ /// The default parent-origin is ParentOrigin.TopLeft (0.0, 0.0, 0.5).<br />
+ /// A view's position is the distance between this origin and the view's anchor-point.<br />
/// </summary>
/// <pre>The view has been initialized.</pre>
+ /// <since_tizen> 3 </since_tizen>
public Position ParentOrigin
{
get
}
/// <summary>
- /// Gets or sets the anchor-point of a view.<br>
- /// This is expressed in unit coordinates, such that (0.0, 0.0, 0.5) is the top-left corner of the view, and (1.0, 1.0, 0.5) is the bottom-right corner.<br>
- /// The default pivot point is PivotPoint.Center (0.5, 0.5, 0.5).<br>
- /// A view position is the distance between its parent-origin and this anchor-point.<br>
- /// A view's orientation is the rotation from its default orientation, the rotation is centered around its anchor-point.<br>
+ /// Gets or sets the anchor-point of a view.<br />
+ /// This is expressed in unit coordinates, such that (0.0, 0.0, 0.5) is the top-left corner of the view, and (1.0, 1.0, 0.5) is the bottom-right corner.<br />
+ /// The default pivot point is PivotPoint.Center (0.5, 0.5, 0.5).<br />
+ /// A view position is the distance between its parent-origin and this anchor-point.<br />
+ /// A view's orientation is the rotation from its default orientation, the rotation is centered around its anchor-point.<br />
/// <pre>The view has been initialized.</pre>
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Position PivotPoint
{
get
/// <summary>
/// Gets or sets the size width of the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public float SizeWidth
{
get
/// <summary>
/// Gets or sets the size height of the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public float SizeHeight
{
get
}
/// <summary>
- /// Gets or sets the position of the view.<br>
- /// By default, sets the position vector between the parent origin and pivot point (default).<br>
- /// If the position inheritance is disabled, sets the world position.<br>
+ /// Gets or sets the position of the view.<br />
+ /// By default, sets the position vector between the parent origin and pivot point (default).<br />
+ /// If the position inheritance is disabled, sets the world position.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Position Position
{
get
/// <summary>
/// Gets or sets the position X of the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public float PositionX
{
get
/// <summary>
/// Gets or sets the position Y of the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public float PositionY
{
get
/// <summary>
/// Gets or sets the position Z of the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public float PositionZ
{
get
/// <summary>
/// Gets or sets the world position of the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Vector3 WorldPosition
{
get
}
/// <summary>
- /// Gets or sets the orientation of the view.<br>
- /// The view's orientation is the rotation from its default orientation, and the rotation is centered around its anchor-point.<br>
+ /// Gets or sets the orientation of the view.<br />
+ /// The view's orientation is the rotation from its default orientation, and the rotation is centered around its anchor-point.<br />
/// </summary>
/// <remarks>This is an asynchronous method.</remarks>
+ /// <since_tizen> 3 </since_tizen>
public Rotation Orientation
{
get
}
/// <summary>
- /// Gets or sets the world orientation of the view.<br>
+ /// Gets or sets the world orientation of the view.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Rotation WorldOrientation
{
get
}
/// <summary>
- /// Gets or sets the scale factor applied to the view.<br>
+ /// Gets or sets the scale factor applied to the view.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Vector3 Scale
{
get
/// <summary>
/// Gets or sets the scale X factor applied to the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public float ScaleX
{
get
/// <summary>
/// Gets or sets the scale Y factor applied to the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public float ScaleY
{
get
/// <summary>
/// Gets or sets the scale Z factor applied to the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public float ScaleZ
{
get
/// <summary>
/// Gets the world scale of the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Vector3 WorldScale
{
get
/// If the view is not visible, then the view and its children will not be rendered.
/// This is regardless of the individual visibility values of the children, i.e., the view will only be rendered if all of its parents have visibility set to true.
/// </remarks>
+ /// <since_tizen> 3 </since_tizen>
public bool Visibility
{
get
/// <summary>
/// Gets the view's world color.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Vector4 WorldColor
{
get
/// <summary>
/// Gets or sets the view's name.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public string Name
{
get
/// <summary>
/// Get the number of children held by the view.
/// </summary>
- public uint ChildCount
+ /// <since_tizen> 3 </since_tizen>
+ public new uint ChildCount
{
get
{
/// Gets the view's ID.
/// Readonly
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public uint ID
{
get
/// <summary>
/// Gets or sets the status of whether the view should emit touch or hover signals.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public bool Sensitive
{
get
/// <summary>
/// Gets or sets the status of whether the view should receive a notification when touch or hover motion events leave the boundary of the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public bool LeaveRequired
{
get
/// <summary>
/// Gets or sets the status of whether a child view inherits it's parent's orientation.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public bool InheritOrientation
{
get
/// <summary>
/// Gets or sets the status of whether a child view inherits it's parent's scale.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public bool InheritScale
{
get
}
/// <summary>
- /// Gets or sets the status of how the view and its children should be drawn.<br>
- /// Not all views are renderable, but DrawMode can be inherited from any view.<br>
- /// If an object is in a 3D layer, it will be depth-tested against other objects in the world, i.e., it may be obscured if other objects are in front.<br>
- /// If DrawMode.Overlay2D is used, the view and its children will be drawn as a 2D overlay.<br>
- /// Overlay views are drawn in a separate pass, after all non-overlay views within the layer.<br>
- /// For overlay views, the drawing order is with respect to tree levels of views, and depth-testing will not be used.<br>
+ /// Gets or sets the status of how the view and its children should be drawn.<br />
+ /// Not all views are renderable, but DrawMode can be inherited from any view.<br />
+ /// If an object is in a 3D layer, it will be depth-tested against other objects in the world, i.e., it may be obscured if other objects are in front.<br />
+ /// If DrawMode.Overlay2D is used, the view and its children will be drawn as a 2D overlay.<br />
+ /// Overlay views are drawn in a separate pass, after all non-overlay views within the layer.<br />
+ /// For overlay views, the drawing order is with respect to tree levels of views, and depth-testing will not be used.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public DrawModeType DrawMode
{
get
switch (temp)
{
case "NORMAL":
- return DrawModeType.Normal;
+ return DrawModeType.Normal;
case "OVERLAY_2D":
- return DrawModeType.Overlay2D;
+ return DrawModeType.Overlay2D;
case "STENCIL":
- return DrawModeType.Stencil;
+ return DrawModeType.Stencil;
default:
- return DrawModeType.Normal;
+ return DrawModeType.Normal;
}
}
set
}
/// <summary>
- /// Gets or sets the relative to parent size factor of the view.<br>
- /// This factor is only used when ResizePolicyType is set to either: ResizePolicyType.SizeRelativeToParent or ResizePolicyType.SizeFixedOffsetFromParent.<br>
- /// This view's size is set to the view's size multiplied by or added to this factor, depending on ResizePolicyType.<br>
+ /// Gets or sets the relative to parent size factor of the view.<br />
+ /// This factor is only used when ResizePolicyType is set to either: ResizePolicyType.SizeRelativeToParent or ResizePolicyType.SizeFixedOffsetFromParent.<br />
+ /// This view's size is set to the view's size multiplied by or added to this factor, depending on ResizePolicyType.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Vector3 SizeModeFactor
{
get
/// <summary>
/// Gets or sets the width resize policy to be used.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public ResizePolicyType WidthResizePolicy
{
get
/// <summary>
/// Gets or sets the height resize policy to be used.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public ResizePolicyType HeightResizePolicy
{
get
}
/// <summary>
- /// Gets or sets the policy to use when setting size with size negotiation.<br>
- /// Defaults to SizeScalePolicyType.UseSizeSet.<br>
+ /// Gets or sets the policy to use when setting size with size negotiation.<br />
+ /// Defaults to SizeScalePolicyType.UseSizeSet.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public SizeScalePolicyType SizeScalePolicy
{
get
/// <summary>
/// Gets or sets the status of whether the width size is dependent on the height size.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public bool WidthForHeight
{
get
/// <summary>
/// Gets or sets the status of whether the height size is dependent on the width size.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public bool HeightForWidth
{
get
/// <summary>
/// Gets or sets the padding for use in layout.
/// </summary>
- public Vector4 Padding
+ /// <since_tizen> 4 </since_tizen>
+ public Extents Padding
{
get
{
- Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
+ Extents temp = new Extents(0, 0, 0, 0);
GetProperty(View.Property.PADDING).Get(temp);
return temp;
}
/// <summary>
/// Gets or sets the minimum size the view can be assigned in size negotiation.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Size2D MinimumSize
{
get
/// <summary>
/// Gets or sets the maximum size the view can be assigned in size negotiation.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public Size2D MaximumSize
{
get
}
/// <summary>
- /// Gets or sets whether a child view inherits it's parent's position.<br>
- /// Default is to inherit.<br>
- /// Switching this off means that using position sets the view's world position, i.e., translates from the world origin (0,0,0) to the pivot point of the view.<br>
+ /// Gets or sets whether a child view inherits it's parent's position.<br />
+ /// Default is to inherit.<br />
+ /// Switching this off means that using position sets the view's world position, i.e., translates from the world origin (0,0,0) to the pivot point of the view.<br />
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public bool InheritPosition
{
get
/// <summary>
/// Gets or sets the clipping behavior (mode) of it's children.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public ClippingModeType ClippingMode
{
get
switch (temp)
{
case "DISABLED":
- return ClippingModeType.Disabled;
+ return ClippingModeType.Disabled;
case "CLIP_CHILDREN":
- return ClippingModeType.ClipChildren;
+ return ClippingModeType.ClipChildren;
+ case "CLIP_TO_BOUNDING_BOX":
+ return ClippingModeType.ClipToBoundingBox;
default:
- return ClippingModeType.Disabled;
+ return ClippingModeType.Disabled;
}
}
set
/// <summary>
/// Gets the number of renderers held by the view.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public uint RendererCount
{
get
}
}
-
-
-
- [Obsolete("Please do not use! this will be deprecated")]
- public event EventHandlerWithReturnType<object, TouchEventArgs, bool> Touched
- {
- add
- {
- if (_touchDataEventHandler == null)
- {
- _touchDataCallback = OnTouch;
- this.TouchSignal().Connect(_touchDataCallback);
- }
-
- _touchDataEventHandler += value;
- }
-
- remove
- {
- _touchDataEventHandler -= value;
-
- if (_touchDataEventHandler == null && TouchSignal().Empty() == false)
- {
- this.TouchSignal().Disconnect(_touchDataCallback);
- }
-
- }
- }
-
- [Obsolete("Please do not use! this will be deprecated")]
- public event EventHandlerWithReturnType<object, HoverEventArgs, bool> Hovered
- {
- add
- {
- if (_hoverEventHandler == null)
- {
- _hoverEventCallback = OnHoverEvent;
- this.HoveredSignal().Connect(_hoverEventCallback);
- }
-
- _hoverEventHandler += value;
- }
-
- remove
- {
- _hoverEventHandler -= value;
-
- if (_hoverEventHandler == null && HoveredSignal().Empty() == false)
- {
- this.HoveredSignal().Disconnect(_hoverEventCallback);
- }
-
- }
- }
-
- [Obsolete("Please do not use! this will be deprecated")]
- public event EventHandlerWithReturnType<object, WheelEventArgs, bool> WheelMoved
- {
- add
- {
- if (_wheelEventHandler == null)
- {
- _wheelEventCallback = OnWheelEvent;
- this.WheelEventSignal().Connect(_wheelEventCallback);
- }
-
- _wheelEventHandler += value;
- }
-
- remove
- {
- _wheelEventHandler -= value;
-
- if (_wheelEventHandler == null && WheelEventSignal().Empty() == false)
- {
- this.WheelEventSignal().Disconnect(_wheelEventCallback);
- }
-
- }
- }
-
- [Obsolete("Please do not use! this will be deprecated")]
+ /// <summary>
+ /// [Obsolete("Please do not use! this will be deprecated")]
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ /// Please do not use! this will be deprecated!
+ /// Instead please use PivotPoint.
+ [Obsolete("Please do not use! This will be deprecated! Please use PivotPoint instead! " +
+ "Like: " +
+ "View view = new View(); " +
+ "view.PivotPoint = PivotPoint.Center; " +
+ "view.PositionUsesPivotPoint = true;")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
public Position AnchorPoint
{
get
}
}
- [Obsolete("Please do not use! this will be deprecated, please use Size2D instead")]
+ /// <summary>
+ /// [Obsolete("Please do not use! this will be deprecated")]
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ [Obsolete("Please do not use! This will be deprecated! Please use Size2D instead! " +
+ "Like: " +
+ "View view = new View(); " +
+ "view.Size2D = new Size2D(100, 100);")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
public Size Size
{
get
}
}
- [Obsolete("Please do not use! this will be deprecated")]
- public event EventHandler OnWindowEvent
- {
- add
- {
- if (_onWindowEventHandler == null)
- {
- _onWindowEventCallback = OnWindow;
- this.OnWindowSignal().Connect(_onWindowEventCallback);
- }
-
- _onWindowEventHandler += value;
- }
-
- remove
- {
- _onWindowEventHandler -= value;
-
- if (_onWindowEventHandler == null && OnWindowSignal().Empty() == false)
- {
- this.OnWindowSignal().Disconnect(_onWindowEventCallback);
- }
- }
- }
-
- [Obsolete("Please do not use! this will be deprecated")]
- public event EventHandler OffWindowEvent
- {
- add
- {
- if (_offWindowEventHandler == null)
- {
- _offWindowEventCallback = OffWindow;
- this.OffWindowSignal().Connect(_offWindowEventCallback);
- }
-
- _offWindowEventHandler += value;
- }
-
- remove
- {
- _offWindowEventHandler -= value;
-
- if (_offWindowEventHandler == null && OffWindowSignal().Empty() == false)
- {
- this.OffWindowSignal().Disconnect(_offWindowEventCallback);
- }
- }
- }
-
- [Obsolete("Please do not use! this will be deprecated")]
- public event EventHandler OnRelayoutEvent
- {
- add
- {
- if (_onRelayoutEventHandler == null)
- {
- _onRelayoutEventCallback = OnRelayout;
- this.OnRelayoutSignal().Connect(_onRelayoutEventCallback);
- }
-
- _onRelayoutEventHandler += value;
- }
-
- remove
- {
- _onRelayoutEventHandler -= value;
-
- if (_onRelayoutEventHandler == null && OnRelayoutSignal().Empty() == false)
- {
- this.OnRelayoutSignal().Disconnect(_onRelayoutEventCallback);
- }
-
- }
- }
-
- [Obsolete("Please DO NOT use! This will be deprecated! Please use 'Container GetParent() for derived class' instead!")]
- public View Parent
+ /// <summary>
+ /// "Please DO NOT use! This will be deprecated! Please use 'Container GetParent() for derived class' instead!"
+ /// </summary>
+ /// <since_tizen> 3 </since_tizen>
+ [Obsolete("Please do not use! This will be deprecated! Please use 'Container GetParent() for derived class' instead! " +
+ "Like: " +
+ "Container parent = view.GetParent(); " +
+ "View view = parent as View;")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public new View Parent
{
get
{
View ret;
IntPtr cPtr = NDalicPINVOKE.Actor_GetParent(swigCPtr);
-
BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(cPtr);
+ //HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+ //BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle);
+ //NDalicPINVOKE.delete_BaseHandle(CPtr);
+ //CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
if (basehandle is Layer)
{
}
}
+ /// <summary>
+ /// Gets/Sets whether inherit parent's the layout Direction.
+ /// </summary>
+ /// <since_tizen> 4 </since_tizen>
public bool InheritLayoutDirection
{
get
}
}
+ /// <summary>
+ /// Gets/Sets the layout Direction.
+ /// </summary>
+ /// <since_tizen> 4 </since_tizen>
public ViewLayoutDirectionType LayoutDirection
{
get
SetProperty(View.Property.LAYOUT_DIRECTION, new Tizen.NUI.PropertyValue((int)value));
}
}
+
+ /// <summary>
+ /// Gets or sets the Margin for use in layout.
+ /// </summary>
+ /// <since_tizen> 4 </since_tizen>
+ public Extents Margin
+ {
+ get
+ {
+ Extents temp = new Extents(0, 0, 0, 0);
+ GetProperty(View.Property.MARGIN).Get(temp);
+ return temp;
+ }
+ set
+ {
+ SetProperty(View.Property.MARGIN, new Tizen.NUI.PropertyValue(value));
+ }
+ }
+
+ /// <summary>
+ /// [Obsolete("Please do not use! this will be deprecated")]
+ /// </summary>
+ /// Please do not use! this will be deprecated!
+ /// Instead please use Padding.
+ /// <since_tizen> 4 </since_tizen>
+ [Obsolete("Please do not use! this will be deprecated, instead please use Padding.")]
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public Extents PaddingEX
+ {
+ get
+ {
+ Extents temp = new Extents(0, 0, 0, 0);
+ GetProperty(View.Property.PADDING).Get(temp);
+ return temp;
+ }
+ set
+ {
+ SetProperty(View.Property.PADDING, new Tizen.NUI.PropertyValue(value));
+ }
+ }
+
+ /// <summary>
+ /// Perform an action on a visual registered to this view. <br />
+ /// Visuals will have actions, this API is used to perform one of these actions with the given attributes.
+ /// </summary>
+ /// <param name="propertyIndexOfVisual">The Property index of the visual.</param>
+ /// <param name="propertyIndexOfActionId">The action to perform. See Visual to find supported actions.</param>
+ /// <param name="attributes">Optional attributes for the action.</param>
+ /// <since_tizen> 5 </since_tizen>
+ /// This will be released at Tizen.NET API Level 5, so currently this would be used as inhouse API.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public void DoAction(int propertyIndexOfVisual, int propertyIndexOfActionId, PropertyValue attributes)
+ {
+ NDalicManualPINVOKE.View_DoAction(swigCPtr, propertyIndexOfVisual, propertyIndexOfActionId, PropertyValue.getCPtr(attributes));
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ }
+
}
+ /// <summary>
+ /// The View layout Direction type.
+ /// </summary>
+ /// <since_tizen> 4 </since_tizen>
public enum ViewLayoutDirectionType
{
+ /// <summary>
+ /// Left to right.
+ /// </summary>
+ /// <since_tizen> 4 </since_tizen>
LTR,
+ /// <summary>
+ /// Right to left.
+ /// </summary>
+ /// <since_tizen> 4 </since_tizen>
RTL
}
}