X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2FTizen.NUI%2Fsrc%2Fpublic%2FBaseComponents%2FView.cs;h=7a8dce5daa46430098cf693b2a3bf3d093716ebe;hb=40e14bc5d1c574ce1b6e6958114f1137c500ae00;hp=b523aa1e88c941ae80f30cfc10c27f8867bd0ce1;hpb=83d239b7caddfc9f2b31940408bb311b7f3695af;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git diff --git a/src/Tizen.NUI/src/public/BaseComponents/View.cs b/src/Tizen.NUI/src/public/BaseComponents/View.cs index b523aa1..7a8dce5 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/View.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/View.cs @@ -1,5 +1,5 @@ /* - * Copyright(c) 2017 Samsung Electronics Co., Ltd. + * Copyright(c) 2018 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. @@ -17,21 +17,1220 @@ using System; using System.ComponentModel; using System.Runtime.InteropServices; +using Tizen.NUI.Binding; namespace Tizen.NUI.BaseComponents { /// /// View is the base class for all views. /// - public class View : Container + /// 3 + public class View : Container, IResourcesProvider { + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public bool IsResourcesCreated + { + get + { + return Application.Current.IsResourcesCreated; + } + } + + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public ResourceDictionary XamlResources + { + get + { + return Application.Current.XamlResources; + } + set + { + Application.Current.XamlResources = value; + } + } + + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty StyleNameProperty = BindableProperty.Create("StyleName", typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.STYLE_NAME, new Tizen.NUI.PropertyValue((string)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + string temp; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.STYLE_NAME).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty BackgroundColorProperty = BindableProperty.Create("BackgroundColor", typeof(Color), typeof(View), Color.Transparent, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, new Tizen.NUI.PropertyValue((Color)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Color backgroundColor = new Color(0.0f, 0.0f, 0.0f, 0.0f); + + Tizen.NUI.PropertyMap background = view.Background; + int visualType = 0; + background.Find(Visual.Property.Type)?.Get(out visualType); + if (visualType == (int)Visual.Type.Color) + { + background.Find(ColorVisualProperty.MixColor)?.Get(backgroundColor); + } + + return backgroundColor; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty BackgroundImageProperty = BindableProperty.Create("BackgroundImage", typeof(string), typeof(View), default(string), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, new Tizen.NUI.PropertyValue((string)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + string backgroundImage = ""; + + Tizen.NUI.PropertyMap background = view.Background; + int visualType = 0; + background.Find(Visual.Property.Type)?.Get(out visualType); + if (visualType == (int)Visual.Type.Image) + { + background.Find(ImageVisualProperty.URL)?.Get(out backgroundImage); + } + + return backgroundImage; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty BackgroundProperty = BindableProperty.Create("Background", typeof(PropertyMap), typeof(View), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, new Tizen.NUI.PropertyValue((PropertyMap)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap(); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.BACKGROUND).Get(temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty StateProperty = BindableProperty.Create("State", typeof(States), typeof(View), States.Normal, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.STATE, new Tizen.NUI.PropertyValue((int)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + int temp = 0; + if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.STATE).Get(out temp) == false) + { + NUILog.Error("State get error!"); + } + switch (temp) + { + case 0: return States.Normal; + case 1: return States.Focused; + case 2: return States.Disabled; + default: return States.Normal; + } + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty SubStateProperty = BindableProperty.Create("SubState", typeof(States), typeof(View), States.Normal, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + string valueToString = ""; + if (newValue != null) + { + switch ((States)newValue) + { + case States.Normal: { valueToString = "NORMAL"; break; } + case States.Focused: { valueToString = "FOCUSED"; break; } + case States.Disabled: { valueToString = "DISABLED"; break; } + default: { valueToString = "NORMAL"; break; } + } + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SUB_STATE, new Tizen.NUI.PropertyValue(valueToString)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + string temp; + if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SUB_STATE).Get(out temp) == false) + { + NUILog.Error("subState get error!"); + } + switch (temp) + { + case "NORMAL": return States.Normal; + case "FOCUSED": return States.Focused; + case "DISABLED": return States.Disabled; + default: return States.Normal; + } + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty TooltipProperty = BindableProperty.Create("Tooltip", typeof(PropertyMap), typeof(View), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.TOOLTIP, new Tizen.NUI.PropertyValue((PropertyMap)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap(); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.TOOLTIP).Get(temp); + return temp; + }); + // public static readonly BindableProperty TooltipTextProperty = BindableProperty.Create("TooltipText", typeof(string), typeof(View), default(string), propertyChanged: (bindable, oldValue, newValue) => + // { + // var view = (View)bindable; + // if (newValue != null) + // { + // Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.TOOLTIP, new Tizen.NUI.PropertyValue((string)newValue)); + // } + // }); + public static readonly BindableProperty FlexProperty = BindableProperty.Create("Flex", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX, new Tizen.NUI.PropertyValue((float)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + float temp = 0.0f; + Tizen.NUI.Object.GetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty AlignSelfProperty = BindableProperty.Create("AlignSelf", typeof(int), typeof(View), default(int), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, FlexContainer.ChildProperty.ALIGN_SELF, new Tizen.NUI.PropertyValue((int)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + int temp = 0; + Tizen.NUI.Object.GetProperty(view.swigCPtr, FlexContainer.ChildProperty.ALIGN_SELF).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty FlexMarginProperty = BindableProperty.Create("FlexMargin", typeof(Vector4), typeof(View), Vector4.Zero, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX_MARGIN, new Tizen.NUI.PropertyValue((Vector4)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f); + Tizen.NUI.Object.GetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX_MARGIN).Get(temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty CellIndexProperty = BindableProperty.Create("CellIndex", typeof(Vector2), typeof(View), Vector2.Zero, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.CELL_INDEX, new Tizen.NUI.PropertyValue((Vector2)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Vector2 temp = new Vector2(0.0f, 0.0f); + Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.CELL_INDEX).Get(temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty RowSpanProperty = BindableProperty.Create("RowSpan", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.ROW_SPAN, new Tizen.NUI.PropertyValue((float)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + float temp = 0.0f; + Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.ROW_SPAN).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty ColumnSpanProperty = BindableProperty.Create("ColumnSpan", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.COLUMN_SPAN, new Tizen.NUI.PropertyValue((float)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + float temp = 0.0f; + Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.COLUMN_SPAN).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty CellHorizontalAlignmentProperty = BindableProperty.Create("CellHorizontalAlignment", typeof(HorizontalAlignmentType), typeof(View), HorizontalAlignmentType.Left, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + string valueToString = ""; + + if (newValue != null) + { + switch ((HorizontalAlignmentType)newValue) + { + case Tizen.NUI.HorizontalAlignmentType.Left: { valueToString = "left"; break; } + case Tizen.NUI.HorizontalAlignmentType.Center: { valueToString = "center"; break; } + case Tizen.NUI.HorizontalAlignmentType.Right: { valueToString = "right"; break; } + default: { valueToString = "left"; break; } + } + Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + string temp; + if (Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT).Get(out temp) == false) + { + NUILog.Error("CellHorizontalAlignment get error!"); + } + + switch (temp) + { + case "left": return Tizen.NUI.HorizontalAlignmentType.Left; + case "center": return Tizen.NUI.HorizontalAlignmentType.Center; + case "right": return Tizen.NUI.HorizontalAlignmentType.Right; + default: return Tizen.NUI.HorizontalAlignmentType.Left; + } + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty CellVerticalAlignmentProperty = BindableProperty.Create("CellVerticalAlignment", typeof(VerticalAlignmentType), typeof(View), VerticalAlignmentType.Top, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + string valueToString = ""; + + if (newValue != null) + { + switch ((VerticalAlignmentType)newValue) + { + case Tizen.NUI.VerticalAlignmentType.Top: { valueToString = "top"; break; } + case Tizen.NUI.VerticalAlignmentType.Center: { valueToString = "center"; break; } + case Tizen.NUI.VerticalAlignmentType.Bottom: { valueToString = "bottom"; break; } + default: { valueToString = "top"; break; } + } + Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + string temp; + Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT).Get(out temp); + { + NUILog.Error("CellVerticalAlignment get error!"); + } + + switch (temp) + { + case "top": return Tizen.NUI.VerticalAlignmentType.Top; + case "center": return Tizen.NUI.VerticalAlignmentType.Center; + case "bottom": return Tizen.NUI.VerticalAlignmentType.Bottom; + default: return Tizen.NUI.VerticalAlignmentType.Top; + } + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty LeftFocusableViewProperty = BindableProperty.Create("LeftFocusableView", typeof(View), typeof(View), default(View), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) { view.LeftFocusableViewId = (int)(newValue as View).GetId(); } + else { view.LeftFocusableViewId = -1; } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + if (view.LeftFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.LeftFocusableViewId); } + return null; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty RightFocusableViewProperty = BindableProperty.Create("RightFocusableView", typeof(View), typeof(View), default(View), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) { view.RightFocusableViewId = (int)(newValue as View).GetId(); } + else { view.RightFocusableViewId = -1; } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + if (view.RightFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.RightFocusableViewId); } + return null; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty UpFocusableViewProperty = BindableProperty.Create("UpFocusableView", typeof(View), typeof(View), default(View), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) { view.UpFocusableViewId = (int)(newValue as View).GetId(); } + else { view.UpFocusableViewId = -1; } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + if (view.UpFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.UpFocusableViewId); } + return null; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty DownFocusableViewProperty = BindableProperty.Create("DownFocusableView", typeof(View), typeof(View), default(View), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) { view.DownFocusableViewId = (int)(newValue as View).GetId(); } + else { view.DownFocusableViewId = -1; } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + if (view.DownFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.DownFocusableViewId); } + return null; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty FocusableProperty = BindableProperty.Create("Focusable", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) { view.SetKeyboardFocusable((bool)newValue); } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + return view.IsKeyboardFocusable(); + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty Size2DProperty = BindableProperty.Create("Size2D", typeof(Size2D), typeof(View), new Size2D(0,0), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE, new Tizen.NUI.PropertyValue( new Size((Size2D)newValue))); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Size temp = new Size(0.0f, 0.0f, 0.0f); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE).Get(temp); + Size2D size = new Size2D((int)temp.Width, (int)temp.Height); + return size; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty OpacityProperty = BindableProperty.Create("Opacity", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.OPACITY, new Tizen.NUI.PropertyValue((float)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + float temp = 0.0f; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.OPACITY).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty Position2DProperty = BindableProperty.Create("Position2D", typeof(Position2D), typeof(View), new Position2D(0,0), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION, new Tizen.NUI.PropertyValue( new Position((Position2D)newValue) )); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Position temp = new Position(0.0f, 0.0f, 0.0f); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION).Get(temp); + return new Position2D(temp); + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty PositionUsesPivotPointProperty = BindableProperty.Create("PositionUsesPivotPoint", typeof(bool), typeof(View), true, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_USES_ANCHOR_POINT, new Tizen.NUI.PropertyValue((bool)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + bool temp = false; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_USES_ANCHOR_POINT).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty SiblingOrderProperty = BindableProperty.Create("SiblingOrder", typeof(int), typeof(View), default(int), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + int value; + if (newValue != null) + { + value = (int)newValue; + if(value < 0) + { + NUILog.Error("SiblingOrder should be bigger than 0 or equal to 0."); + return; + } + var siblings = view.GetParent()?.Children; + if (siblings != null) + { + int currentOrder = siblings.IndexOf(view); + if (value != currentOrder) + { + if (value == 0) { view.LowerToBottom(); } + else if (value < siblings.Count - 1) + { + if (value > currentOrder) { view.RaiseAbove(siblings[value]); } + else { view.LowerBelow(siblings[value]); } + } + else { view.RaiseToTop(); } + } + } + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + var parentChildren = view.GetParent()?.Children; + int currentOrder = 0; + if (parentChildren != null) + { + currentOrder = parentChildren.IndexOf(view); + + if (currentOrder < 0) { return 0; } + else if (currentOrder < parentChildren.Count) { return currentOrder; } + } + + return 0; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty ParentOriginProperty = BindableProperty.Create("ParentOrigin", typeof(Position), typeof(View), Position.ParentOriginTopLeft, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.PARENT_ORIGIN, new Tizen.NUI.PropertyValue((Position)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Position temp = new Position(0.0f, 0.0f, 0.0f); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.PARENT_ORIGIN).Get(temp); + return temp; + } + ); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty PivotPointProperty = BindableProperty.Create("PivotPoint", typeof(Position), typeof(View), Position.PivotPointTopLeft, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.ANCHOR_POINT, new Tizen.NUI.PropertyValue((Position)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Position temp = new Position(0.0f, 0.0f, 0.0f); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.ANCHOR_POINT).Get(temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty SizeWidthProperty = BindableProperty.Create("SizeWidth", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_WIDTH, new Tizen.NUI.PropertyValue((float)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + float temp = 0.0f; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_WIDTH).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty SizeHeightProperty = BindableProperty.Create("SizeHeight", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_HEIGHT, new Tizen.NUI.PropertyValue((float)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + float temp = 0.0f; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_HEIGHT).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty PositionProperty = BindableProperty.Create("Position", typeof(Position), typeof(View), Position.Zero, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION, new Tizen.NUI.PropertyValue((Position)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Position temp = new Position(0.0f, 0.0f, 0.0f); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION).Get(temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty PositionXProperty = BindableProperty.Create("PositionX", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_X, new Tizen.NUI.PropertyValue((float)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + float temp = 0.0f; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_X).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty PositionYProperty = BindableProperty.Create("PositionY", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_Y, new Tizen.NUI.PropertyValue((float)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + float temp = 0.0f; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_Y).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty PositionZProperty = BindableProperty.Create("PositionZ", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_Z, new Tizen.NUI.PropertyValue((float)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + float temp = 0.0f; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_Z).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty OrientationProperty = BindableProperty.Create("Orientation", typeof(Rotation), typeof(View), new Rotation(new Radian(0), Vector3.ZAxis), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.ORIENTATION, new Tizen.NUI.PropertyValue((Rotation)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Rotation temp = new Rotation(); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.ORIENTATION).Get(temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty ScaleProperty = BindableProperty.Create("Scale", typeof(Vector3), typeof(View), Vector3.Zero, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE, new Tizen.NUI.PropertyValue((Vector3)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE).Get(temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty ScaleXProperty = BindableProperty.Create("ScaleX", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE_X, new Tizen.NUI.PropertyValue((float)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + float temp = 0.0f; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE_X).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty ScaleYProperty = BindableProperty.Create("ScaleY", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE_Y, new Tizen.NUI.PropertyValue((float)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + float temp = 0.0f; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE_Y).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty ScaleZProperty = BindableProperty.Create("ScaleZ", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE_Z, new Tizen.NUI.PropertyValue((float)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + float temp = 0.0f; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE_Z).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty NameProperty = BindableProperty.Create("Name", typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.NAME, new Tizen.NUI.PropertyValue((string)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + string temp; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.NAME).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty SensitiveProperty = BindableProperty.Create("Sensitive", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SENSITIVE, new Tizen.NUI.PropertyValue((bool)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + bool temp = false; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SENSITIVE).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty LeaveRequiredProperty = BindableProperty.Create("LeaveRequired", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.LEAVE_REQUIRED, new Tizen.NUI.PropertyValue((bool)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + bool temp = false; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.LEAVE_REQUIRED).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty InheritOrientationProperty = BindableProperty.Create("InheritOrientation", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_ORIENTATION, new Tizen.NUI.PropertyValue((bool)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + bool temp = false; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_ORIENTATION).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty InheritScaleProperty = BindableProperty.Create("InheritScale", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_SCALE, new Tizen.NUI.PropertyValue((bool)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + bool temp = false; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_SCALE).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty DrawModeProperty = BindableProperty.Create("DrawMode", typeof(DrawModeType), typeof(View), DrawModeType.Normal, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.DRAW_MODE, new Tizen.NUI.PropertyValue((int)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + string temp; + if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.DRAW_MODE).Get(out temp) == false) + { + NUILog.Error("DrawMode get error!"); + } + switch (temp) + { + case "NORMAL": return DrawModeType.Normal; + case "OVERLAY_2D": return DrawModeType.Overlay2D; + case "STENCIL": return DrawModeType.Stencil; + default: return DrawModeType.Normal; + } + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty SizeModeFactorProperty = BindableProperty.Create("SizeModeFactor", typeof(Vector3), typeof(View), Vector3.Zero, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_MODE_FACTOR, new Tizen.NUI.PropertyValue((Vector3)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_MODE_FACTOR).Get(temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty WidthResizePolicyProperty = BindableProperty.Create("WidthResizePolicy", typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.WIDTH_RESIZE_POLICY, new Tizen.NUI.PropertyValue((int)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + string temp; + if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.WIDTH_RESIZE_POLICY).Get(out temp) == false) + { + NUILog.Error("WidthResizePolicy get error!"); + } + switch (temp) + { + case "FIXED": return ResizePolicyType.Fixed; + case "USE_NATURAL_SIZE": return ResizePolicyType.UseNaturalSize; + case "FILL_TO_PARENT": return ResizePolicyType.FillToParent; + case "SIZE_RELATIVE_TO_PARENT": return ResizePolicyType.SizeRelativeToParent; + case "SIZE_FIXED_OFFSET_FROM_PARENT": return ResizePolicyType.SizeFixedOffsetFromParent; + case "FIT_TO_CHILDREN": return ResizePolicyType.FitToChildren; + case "DIMENSION_DEPENDENCY": return ResizePolicyType.DimensionDependency; + case "USE_ASSIGNED_SIZE": return ResizePolicyType.UseAssignedSize; + default: return ResizePolicyType.Fixed; + } + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty HeightResizePolicyProperty = BindableProperty.Create("HeightResizePolicy", typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.HEIGHT_RESIZE_POLICY, new Tizen.NUI.PropertyValue((int)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + string temp; + if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.HEIGHT_RESIZE_POLICY).Get(out temp) == false) + { + NUILog.Error("HeightResizePolicy get error!"); + } + switch (temp) + { + case "FIXED": return ResizePolicyType.Fixed; + case "USE_NATURAL_SIZE": return ResizePolicyType.UseNaturalSize; + case "FILL_TO_PARENT": return ResizePolicyType.FillToParent; + case "SIZE_RELATIVE_TO_PARENT": return ResizePolicyType.SizeRelativeToParent; + case "SIZE_FIXED_OFFSET_FROM_PARENT": return ResizePolicyType.SizeFixedOffsetFromParent; + case "FIT_TO_CHILDREN": return ResizePolicyType.FitToChildren; + case "DIMENSION_DEPENDENCY": return ResizePolicyType.DimensionDependency; + case "USE_ASSIGNED_SIZE": return ResizePolicyType.UseAssignedSize; + default: return ResizePolicyType.Fixed; + } + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty SizeScalePolicyProperty = BindableProperty.Create("SizeScalePolicy", typeof(SizeScalePolicyType), typeof(View), SizeScalePolicyType.UseSizeSet, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + string valueToString = ""; + if (newValue != null) + { + switch ((SizeScalePolicyType)newValue) + { + case SizeScalePolicyType.UseSizeSet: { valueToString = "USE_SIZE_SET"; break; } + case SizeScalePolicyType.FitWithAspectRatio: { valueToString = "FIT_WITH_ASPECT_RATIO"; break; } + case SizeScalePolicyType.FillWithAspectRatio: { valueToString = "FILL_WITH_ASPECT_RATIO"; break; } + default: { valueToString = "USE_SIZE_SET"; break; } + } + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_SCALE_POLICY, new Tizen.NUI.PropertyValue(valueToString)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + string temp; + if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_SCALE_POLICY).Get(out temp) == false) + { + NUILog.Error("SizeScalePolicy get error!"); + } + switch (temp) + { + case "USE_SIZE_SET": return SizeScalePolicyType.UseSizeSet; + case "FIT_WITH_ASPECT_RATIO": return SizeScalePolicyType.FitWithAspectRatio; + case "FILL_WITH_ASPECT_RATIO": return SizeScalePolicyType.FillWithAspectRatio; + default: return SizeScalePolicyType.UseSizeSet; + } + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty WidthForHeightProperty = BindableProperty.Create("WidthForHeight", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.WIDTH_FOR_HEIGHT, new Tizen.NUI.PropertyValue((bool)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + bool temp = false; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.WIDTH_FOR_HEIGHT).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty HeightForWidthProperty = BindableProperty.Create("HeightForWidth", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.HEIGHT_FOR_WIDTH, new Tizen.NUI.PropertyValue((bool)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + bool temp = false; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.HEIGHT_FOR_WIDTH).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty PaddingProperty = BindableProperty.Create("Padding", typeof(Extents), typeof(View), new Extents(0,0,0,0), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.PADDING, new Tizen.NUI.PropertyValue((Extents)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Extents temp = new Extents(0, 0, 0, 0); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.PADDING).Get(temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty SizeProperty = BindableProperty.Create("Size", typeof(Size), typeof(View), new Size(0,0,0), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE, new Tizen.NUI.PropertyValue((Size)newValue)); + } + }, + defaultValueCreator: (bindable) => { + var view = (View)bindable; + Size temp = new Size(0, 0, 0); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE).Get(temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty MinimumSizeProperty = BindableProperty.Create("MinimumSize", typeof(Size2D), typeof(View), new Size2D(0,0), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.MINIMUM_SIZE, new Tizen.NUI.PropertyValue((Size2D)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Size2D temp = new Size2D(0, 0); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.MINIMUM_SIZE).Get(temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty MaximumSizeProperty = BindableProperty.Create("MaximumSize", typeof(Size2D), typeof(View), new Size2D(0,0), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.MAXIMUM_SIZE, new Tizen.NUI.PropertyValue((Size2D)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Size2D temp = new Size2D(0, 0); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.MAXIMUM_SIZE).Get(temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty InheritPositionProperty = BindableProperty.Create("InheritPosition", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_POSITION, new Tizen.NUI.PropertyValue((bool)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + bool temp = false; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_POSITION).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty ClippingModeProperty = BindableProperty.Create("ClippingMode", typeof(ClippingModeType), typeof(View), ClippingModeType.Disabled, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.CLIPPING_MODE, new Tizen.NUI.PropertyValue((int)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + int temp = 0; + if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.CLIPPING_MODE).Get(out temp) == false) + { + NUILog.Error("ClippingMode get error!"); + } + return (ClippingModeType)temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty InheritLayoutDirectionProperty = BindableProperty.Create("InheritLayoutDirection", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_LAYOUT_DIRECTION, new Tizen.NUI.PropertyValue((bool)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + bool temp = false; + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_LAYOUT_DIRECTION).Get(out temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty LayoutDirectionProperty = BindableProperty.Create("LayoutDirection", typeof(ViewLayoutDirectionType), typeof(View), ViewLayoutDirectionType.LTR, propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.LAYOUT_DIRECTION, new Tizen.NUI.PropertyValue((int)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + int temp; + if (false == Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.LAYOUT_DIRECTION).Get(out temp)) + { + NUILog.Error("LAYOUT_DIRECTION get error!"); + } + return (ViewLayoutDirectionType)temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty MarginProperty = BindableProperty.Create("Margin", typeof(Extents), typeof(View), new Extents(0,0,0,0), propertyChanged: (bindable, oldValue, newValue) => + { + var view = (View)bindable; + if (newValue != null) + { + Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.MARGIN, new Tizen.NUI.PropertyValue((Extents)newValue)); + } + }, + defaultValueCreator:(bindable) => + { + var view = (View)bindable; + Extents temp = new Extents(0, 0, 0, 0); + Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.MARGIN).Get(temp); + return temp; + }); + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public static readonly BindableProperty StyleProperty = BindableProperty.Create("Style", typeof(Style), typeof(View), default(Style), + propertyChanged: (bindable, oldvalue, newvalue) => ((View)bindable)._mergedStyle.Style = (Style)newvalue); + + private global::System.Runtime.InteropServices.HandleRef swigCPtr; + private bool layoutSet = false; // Flag to indicate if SetLayout was called or View was automatically given a Layout 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; + } + _mergedStyle = new MergedStyle(GetType(), this); } internal static global::System.Runtime.InteropServices.HandleRef getCPtr(View obj) @@ -39,8 +1238,30 @@ namespace Tizen.NUI.BaseComponents return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr; } - // From Container Base class + /// + /// Event argument passed through ChildAdded event + /// + /// 5 + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public class ChildAddedEventArgs : EventArgs + { + /// + /// Added child View at moment + /// + /// 5 + public View Added { get; set; } + } + + /// + /// Event when a child is added + /// + /// 5 + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public new event EventHandler ChildAdded; + // From Container Base class /// /// Adds a child view to this view. /// @@ -48,14 +1269,76 @@ namespace Tizen.NUI.BaseComponents /// 4 public override void Add(View child) { - NDalicPINVOKE.Actor_Add(swigCPtr, View.getCPtr(child)); - if (NDalicPINVOKE.SWIGPendingException.Pending) - throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + if (null == child) + { + Tizen.Log.Fatal("NUI", "Child is null"); + return; + } + + Container oldParent = child.GetParent(); + if (oldParent != this) + { + if (oldParent != null) + { + oldParent.Remove(child); + } + else + { + child.InternalParent = this; + } + + if (layoutSet == true && child.Layout == null) // Only give children a layout if parent an explicit container + { + LayoutItem layoutItem = new LayoutItem(); + child.Layout = layoutItem; + } + + if (Layout) + { + Layout.LayoutChildren.Add(child.Layout); + } + + NDalicPINVOKE.Actor_Add(swigCPtr, View.getCPtr(child)); + if (NDalicPINVOKE.SWIGPendingException.Pending) + throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + Children.Add(child); + + if (ChildAdded != null) + { + ChildAddedEventArgs e = new ChildAddedEventArgs + { + Added = child + }; + ChildAdded(this, e); + } + } + } - Children.Add(child); + /// + /// Event argument passed through ChildRemoved event + /// + /// 5 + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public class ChildRemovedEventArgs : EventArgs + { + /// + /// Removed child View at moment + /// + /// 5 + public View Removed { get; set; } } /// + /// Event when a child is removed + /// + /// 5 + /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API. + [EditorBrowsable(EditorBrowsableState.Never)] + public new event EventHandler ChildRemoved; + + + /// /// Removes a child view from this View. If the view was not a child of this view, this is a no-op. /// /// @@ -67,6 +1350,24 @@ namespace Tizen.NUI.BaseComponents throw NDalicPINVOKE.SWIGPendingException.Retrieve(); Children.Remove(child); + child.InternalParent = null; + + if (Layout) + { + if(child.Layout) + { + Layout.LayoutChildren.Remove(child.Layout); + } + } + + if (ChildRemoved != null) + { + ChildRemovedEventArgs e = new ChildRemovedEventArgs + { + Removed = child + }; + ChildRemoved(this, e); + } } /// @@ -90,6 +1391,7 @@ namespace Tizen.NUI.BaseComponents /// Retrieves the number of children held by the view. /// /// + /// 4 public override uint GetChildCount() { return Convert.ToUInt32(Children.Count); @@ -99,21 +1401,15 @@ namespace Tizen.NUI.BaseComponents /// Gets the views parent. /// /// + /// 4 public override Container GetParent() { - IntPtr cPtr = NDalicPINVOKE.Actor_GetParent(swigCPtr); - - BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(cPtr); - - if (NDalicPINVOKE.SWIGPendingException.Pending) - throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - - return basehandle as Container; + return this.InternalParent as Container; } internal bool IsTopLevelView() { - if(GetParent() is Layer) + if (GetParent() is Layer) { return true; } @@ -127,12 +1423,12 @@ namespace Tizen.NUI.BaseComponents /// 3 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. @@ -142,8 +1438,10 @@ namespace Tizen.NUI.BaseComponents //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) { @@ -340,6 +1638,7 @@ namespace Tizen.NUI.BaseComponents /// /// Event arguments that passed via the KeyEvent signal. /// + /// 3 public class KeyEventArgs : EventArgs { private Key _key; @@ -370,7 +1669,7 @@ namespace Tizen.NUI.BaseComponents /// An event for the KeyPressed signal which can be used to subscribe or unsubscribe the event handler provided by the user.
/// The KeyPressed signal is emitted when the key event is received.
/// - /// 4 + /// 3 public event EventHandlerWithReturnType KeyEvent { add @@ -397,6 +1696,12 @@ namespace Tizen.NUI.BaseComponents 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; @@ -408,9 +1713,9 @@ namespace Tizen.NUI.BaseComponents Delegate[] delegateList = _keyEventHandler.GetInvocationList(); // Oring the result of each callback. - foreach ( EventHandlerWithReturnType del in delegateList ) + foreach (EventHandlerWithReturnType del in delegateList) { - result |= del( this, e ); + result |= del(this, e); } } @@ -464,6 +1769,7 @@ namespace Tizen.NUI.BaseComponents /// /// Event arguments that passed via the touch signal. /// + /// 3 public class TouchEventArgs : EventArgs { private Touch _touch; @@ -494,7 +1800,7 @@ namespace Tizen.NUI.BaseComponents /// An event for the touched signal which can be used to subscribe or unsubscribe the event handler provided by the user.
/// The touched signal is emitted when the touch input is received.
/// - /// 4 + /// 3 public event EventHandlerWithReturnType TouchEvent { add @@ -523,6 +1829,12 @@ namespace Tizen.NUI.BaseComponents // 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); @@ -538,6 +1850,7 @@ namespace Tizen.NUI.BaseComponents /// /// Event arguments that passed via the hover signal. /// + /// 3 public class HoverEventArgs : EventArgs { private Hover _hover; @@ -568,7 +1881,7 @@ namespace Tizen.NUI.BaseComponents /// An event for the hovered signal which can be used to subscribe or unsubscribe the event handler provided by the user.
/// The hovered signal is emitted when the hover input is received.
/// - /// 4 + /// 3 public event EventHandlerWithReturnType HoverEvent { add @@ -597,6 +1910,12 @@ namespace Tizen.NUI.BaseComponents // 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); @@ -612,6 +1931,7 @@ namespace Tizen.NUI.BaseComponents /// /// Event arguments that passed via the wheel signal. /// + /// 3 public class WheelEventArgs : EventArgs { private Wheel _wheel; @@ -642,7 +1962,7 @@ namespace Tizen.NUI.BaseComponents /// An event for the WheelMoved signal which can be used to subscribe or unsubscribe the event handler provided by the user.
/// The WheelMoved signal is emitted when the wheel event is received.
/// - /// 4 + /// 3 public event EventHandlerWithReturnType WheelEvent { add @@ -671,6 +1991,12 @@ namespace Tizen.NUI.BaseComponents // 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); @@ -773,6 +2099,7 @@ namespace Tizen.NUI.BaseComponents /// /// Event arguments of visibility changed. /// + /// 3 public class VisibilityChangedEventArgs : EventArgs { private View _view; @@ -883,6 +2210,7 @@ namespace Tizen.NUI.BaseComponents /// /// Event arguments of layout direction changed. /// + /// 4 public class LayoutDirectionChangedEventArgs : EventArgs { private View _view; @@ -971,12 +2299,6 @@ namespace Tizen.NUI.BaseComponents } } - - - - - - // Resource Ready Signal private EventHandler _resourcesLoadedEventHandler; @@ -988,7 +2310,7 @@ namespace Tizen.NUI.BaseComponents /// An event for the ResourcesLoadedSignal signal which can be used to subscribe or unsubscribe the event handler provided by the user.
/// This signal is emitted after all resources required by a view are loaded and ready.
/// - /// 4 + /// 3 public event EventHandler ResourcesLoaded { add @@ -1083,7 +2405,6 @@ namespace Tizen.NUI.BaseComponents 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(); @@ -1091,7 +2412,7 @@ namespace Tizen.NUI.BaseComponents 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 PADDINGEX = NDalicPINVOKE.View_Property_PADDING_get(); + internal static readonly int PADDING = NDalicPINVOKE.View_Property_PADDING_get(); } /// @@ -1139,50 +2460,18 @@ namespace Tizen.NUI.BaseComponents public View() : this(NDalicPINVOKE.View_New(), true) { if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - } internal View(View uiControl) : this(NDalicPINVOKE.new_View__SWIG_1(View.getCPtr(uiControl)), true) { if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } - /// - /// Downcasts a handle to view handle.
- /// If handle points to a view, the downcast produces a valid handle.
- /// If not, the returned handle is left uninitialized.
- ///
- /// A handle to an object. - /// A handle to a view or an uninitialized handle. - [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.")] - /// - /// 3 - [Obsolete("Please do not use! this will be deprecated, instead please use as keyword.")] - public static T DownCast(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; - - if (Parent is View) + if (GetParent() is View) { - View parentView = Parent as View; + View parentView = GetParent() as View; view = parentView.FindChildById(id); } @@ -1339,13 +2628,12 @@ namespace Tizen.NUI.BaseComponents { get { - string temp; - GetProperty(View.Property.STYLE_NAME).Get(out temp); - return temp; + return (string)GetValue(StyleNameProperty); } set { - SetProperty(View.Property.STYLE_NAME, new Tizen.NUI.PropertyValue(value)); + SetValue(StyleNameProperty, value); + NotifyPropertyChanged(); } } @@ -1357,21 +2645,12 @@ namespace Tizen.NUI.BaseComponents { get { - Color backgroundColor = new Color(0.0f, 0.0f, 0.0f, 0.0f); - - Tizen.NUI.PropertyMap background = Background; - int visualType = 0; - background.Find(Visual.Property.Type)?.Get(out visualType); - if (visualType == (int)Visual.Type.Color) - { - background.Find(ColorVisualProperty.MixColor)?.Get(backgroundColor); - } - - return backgroundColor; + return (Color)GetValue(BackgroundColorProperty); } set { - SetProperty(View.Property.BACKGROUND, new Tizen.NUI.PropertyValue(value)); + SetValue(BackgroundColorProperty, value); + NotifyPropertyChanged(); } } @@ -1379,8 +2658,8 @@ namespace Tizen.NUI.BaseComponents /// Creates an animation to animate the background color visual. If there is no /// background visual, creates one with transparent black as it's mixColor. ///
- /// 4 - public Animation AnimateBackgroundColor( object destinationValue, + /// 3 + public Animation AnimateBackgroundColor(object destinationValue, int startTime, int endTime, AlphaFunction.BuiltinFunctions? alphaFunction = null, @@ -1388,51 +2667,51 @@ namespace Tizen.NUI.BaseComponents { 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); } /// /// Creates an animation to animate the mixColor of the named visual. /// - /// 4 - public Animation AnimateColor( string targetVisual, object destinationColor, int startTime, int endTime, AlphaFunction.BuiltinFunctions? alphaFunction = null, object initialColor = null ) + /// 3 + 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(); } @@ -1446,22 +2725,13 @@ namespace Tizen.NUI.BaseComponents public string BackgroundImage { get - { - string backgroundImage = ""; - - Tizen.NUI.PropertyMap background = Background; - int visualType = 0; - background.Find(Visual.Property.Type)?.Get(out visualType); - if (visualType == (int)Visual.Type.Image) - { - background.Find(ImageVisualProperty.URL)?.Get(out backgroundImage); - } - - return backgroundImage; + { + return (string)GetValue(BackgroundImageProperty); } set { - SetProperty(View.Property.BACKGROUND, new Tizen.NUI.PropertyValue(value)); + SetValue(BackgroundImageProperty, value); + NotifyPropertyChanged(); } } @@ -1473,13 +2743,12 @@ namespace Tizen.NUI.BaseComponents { get { - Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap(); - GetProperty( View.Property.BACKGROUND ).Get(temp); - return temp; + return (PropertyMap)GetValue(BackgroundProperty); } set { - SetProperty(View.Property.BACKGROUND, new Tizen.NUI.PropertyValue(value)); + SetValue(BackgroundProperty, value); + NotifyPropertyChanged(); } } @@ -1492,34 +2761,12 @@ namespace Tizen.NUI.BaseComponents { get { - int temp = 0; - if (GetProperty(View.Property.STATE).Get(out temp) == false) - { - NUILog.Error("State get error!"); - } - switch (temp) - { - case 0: - { - return States.Normal; - } - case 1: - { - return States.Focused; - } - case 2: - { - return States.Disabled; - } - default: - { - return States.Normal; - } - } + return (States)GetValue(StateProperty); } set { - SetProperty(View.Property.STATE, new Tizen.NUI.PropertyValue((int)value)); + SetValue(StateProperty, value); + NotifyPropertyChanged(); } } @@ -1531,50 +2778,12 @@ namespace Tizen.NUI.BaseComponents { get { - string temp; - if (GetProperty(View.Property.SUB_STATE).Get(out temp) == false) - { - NUILog.Error("subState get error!"); - } - switch (temp) - { - case "NORMAL": - return States.Normal; - case "FOCUSED": - return States.Focused; - case "DISABLED": - return States.Disabled; - default: - return States.Normal; - } + return (States)GetValue(SubStateProperty); } set { - string valueToString = ""; - switch (value) - { - case States.Normal: - { - valueToString = "NORMAL"; - break; - } - case States.Focused: - { - valueToString = "FOCUSED"; - break; - } - case States.Disabled: - { - valueToString = "DISABLED"; - break; - } - default: - { - valueToString = "NORMAL"; - break; - } - } - SetProperty(View.Property.SUB_STATE, new Tizen.NUI.PropertyValue(valueToString)); + SetValue(SubStateProperty, value); + NotifyPropertyChanged(); } } @@ -1586,13 +2795,12 @@ namespace Tizen.NUI.BaseComponents { get { - Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap(); - GetProperty(View.Property.TOOLTIP).Get(temp); - return temp; + return (PropertyMap)GetValue(TooltipProperty); } set { - SetProperty(View.Property.TOOLTIP, new Tizen.NUI.PropertyValue(value)); + SetValue(TooltipProperty, value); + NotifyPropertyChanged(); } } @@ -1605,6 +2813,7 @@ namespace Tizen.NUI.BaseComponents set { SetProperty(View.Property.TOOLTIP, new Tizen.NUI.PropertyValue(value)); + NotifyPropertyChanged(); } } @@ -1674,13 +2883,12 @@ namespace Tizen.NUI.BaseComponents { get { - float temp = 0.0f; - GetProperty(FlexContainer.ChildProperty.FLEX).Get(out temp); - return temp; + return (float)GetValue(FlexProperty); } set { - SetProperty(FlexContainer.ChildProperty.FLEX, new Tizen.NUI.PropertyValue(value)); + SetValue(FlexProperty, value); + NotifyPropertyChanged(); } } @@ -1693,13 +2901,12 @@ namespace Tizen.NUI.BaseComponents { get { - int temp = 0; - GetProperty(FlexContainer.ChildProperty.ALIGN_SELF).Get(out temp); - return temp; + return (int)GetValue(AlignSelfProperty); } set { - SetProperty(FlexContainer.ChildProperty.ALIGN_SELF, new Tizen.NUI.PropertyValue(value)); + SetValue(AlignSelfProperty, value); + NotifyPropertyChanged(); } } @@ -1712,13 +2919,12 @@ namespace Tizen.NUI.BaseComponents { get { - Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f); - GetProperty(FlexContainer.ChildProperty.FLEX_MARGIN).Get(temp); - return temp; + return (Vector4)GetValue(FlexMarginProperty); } set { - SetProperty(FlexContainer.ChildProperty.FLEX_MARGIN, new Tizen.NUI.PropertyValue(value)); + SetValue(FlexMarginProperty, value); + NotifyPropertyChanged(); } } @@ -1730,13 +2936,12 @@ namespace Tizen.NUI.BaseComponents { get { - Vector2 temp = new Vector2(0.0f, 0.0f); - GetProperty(TableView.ChildProperty.CELL_INDEX).Get(temp); - return temp; + return (Vector2)GetValue(CellIndexProperty); } set { - SetProperty(TableView.ChildProperty.CELL_INDEX, new Tizen.NUI.PropertyValue(value)); + SetValue(CellIndexProperty, value); + NotifyPropertyChanged(); } } @@ -1748,13 +2953,12 @@ namespace Tizen.NUI.BaseComponents { get { - float temp = 0.0f; - GetProperty(TableView.ChildProperty.ROW_SPAN).Get(out temp); - return temp; + return (float)GetValue(RowSpanProperty); } set { - SetProperty(TableView.ChildProperty.ROW_SPAN, new Tizen.NUI.PropertyValue(value)); + SetValue(RowSpanProperty, value); + NotifyPropertyChanged(); } } @@ -1766,13 +2970,12 @@ namespace Tizen.NUI.BaseComponents { get { - float temp = 0.0f; - GetProperty(TableView.ChildProperty.COLUMN_SPAN).Get(out temp); - return temp; + return (float)GetValue(ColumnSpanProperty); } set { - SetProperty(TableView.ChildProperty.COLUMN_SPAN, new Tizen.NUI.PropertyValue(value)); + SetValue(ColumnSpanProperty, value); + NotifyPropertyChanged(); } } @@ -1784,51 +2987,12 @@ namespace Tizen.NUI.BaseComponents { get { - string temp; - if (GetProperty(TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT).Get(out temp) == false) - { - NUILog.Error("CellHorizontalAlignment get error!"); - } - - switch (temp) - { - case "left": - return Tizen.NUI.HorizontalAlignmentType.Left; - case "center": - return Tizen.NUI.HorizontalAlignmentType.Center; - case "right": - return Tizen.NUI.HorizontalAlignmentType.Right; - default: - return Tizen.NUI.HorizontalAlignmentType.Left; - } + return (HorizontalAlignmentType)GetValue(CellHorizontalAlignmentProperty); } set { - string valueToString = ""; - switch (value) - { - case Tizen.NUI.HorizontalAlignmentType.Left: - { - valueToString = "left"; - break; - } - case Tizen.NUI.HorizontalAlignmentType.Center: - { - valueToString = "center"; - break; - } - case Tizen.NUI.HorizontalAlignmentType.Right: - { - valueToString = "right"; - break; - } - default: - { - valueToString = "left"; - break; - } - } - SetProperty(TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString)); + SetValue(CellHorizontalAlignmentProperty, value); + NotifyPropertyChanged(); } } @@ -1840,51 +3004,12 @@ namespace Tizen.NUI.BaseComponents { get { - string temp; - GetProperty(TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT).Get(out temp); - { - NUILog.Error("CellVerticalAlignment get error!"); - } - - switch (temp) - { - case "top": - return Tizen.NUI.VerticalAlignmentType.Top; - case "center": - return Tizen.NUI.VerticalAlignmentType.Center; - case "bottom": - return Tizen.NUI.VerticalAlignmentType.Bottom; - default: - return Tizen.NUI.VerticalAlignmentType.Top; - } + return (VerticalAlignmentType)GetValue(CellVerticalAlignmentProperty); } set { - string valueToString = ""; - switch (value) - { - case Tizen.NUI.VerticalAlignmentType.Top: - { - valueToString = "top"; - break; - } - case Tizen.NUI.VerticalAlignmentType.Center: - { - valueToString = "center"; - break; - } - case Tizen.NUI.VerticalAlignmentType.Bottom: - { - valueToString = "bottom"; - break; - } - default: - { - valueToString = "top"; - break; - } - } - SetProperty(TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString)); + SetValue(CellVerticalAlignmentProperty, value); + NotifyPropertyChanged(); } } @@ -1899,22 +3024,12 @@ namespace Tizen.NUI.BaseComponents // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa. get { - if (LeftFocusableViewId >= 0) - { - return ConvertIdToView((uint)LeftFocusableViewId); - } - return null; + return (View)GetValue(LeftFocusableViewProperty); } set { - if(value) - { - LeftFocusableViewId = (int)value.GetId(); - } - else - { - LeftFocusableViewId = -1; - } + SetValue(LeftFocusableViewProperty, value); + NotifyPropertyChanged(); } } @@ -1929,22 +3044,12 @@ namespace Tizen.NUI.BaseComponents // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa. get { - if (RightFocusableViewId >= 0) - { - return ConvertIdToView((uint)RightFocusableViewId); - } - return null; + return (View)GetValue(RightFocusableViewProperty); } set { - if(value) - { - RightFocusableViewId = (int)value.GetId(); - } - else - { - RightFocusableViewId = -1; - } + SetValue(RightFocusableViewProperty, value); + NotifyPropertyChanged(); } } @@ -1959,22 +3064,12 @@ namespace Tizen.NUI.BaseComponents // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa. get { - if (UpFocusableViewId >= 0) - { - return ConvertIdToView((uint)UpFocusableViewId); - } - return null; + return (View)GetValue(UpFocusableViewProperty); } set { - if(value) - { - UpFocusableViewId = (int)value.GetId(); - } - else - { - UpFocusableViewId = -1; - } + SetValue(UpFocusableViewProperty, value); + NotifyPropertyChanged(); } } @@ -1989,22 +3084,12 @@ namespace Tizen.NUI.BaseComponents // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa. get { - if (DownFocusableViewId >= 0) - { - return ConvertIdToView((uint)DownFocusableViewId); - } - return null; + return (View)GetValue(DownFocusableViewProperty); } set { - if(value) - { - DownFocusableViewId = (int)value.GetId(); - } - else - { - DownFocusableViewId = -1; - } + SetValue(DownFocusableViewProperty, value); + NotifyPropertyChanged(); } } @@ -2016,11 +3101,12 @@ namespace Tizen.NUI.BaseComponents { set { - SetKeyboardFocusable(value); + SetValue(FocusableProperty, value); + NotifyPropertyChanged(); } get { - return IsKeyboardFocusable(); + return (bool)GetValue(FocusableProperty); } } @@ -2063,22 +3149,36 @@ namespace Tizen.NUI.BaseComponents /// This does not interfere with the view's scale factor.
/// The views default depth is the minimum of width and height.
/// + /// + /// This NUI object (Size2D) typed property can be configured by multiple cascade setting.
+ /// For example, this code ( view.Size2D.Width = 100; view.Size2D.Height = 100; ) is equivalent to this ( view.Size2D = new Size2D(100, 100); ).
+ /// Please note that this multi-cascade setting is especially possible for this NUI object (Size2D).
+ /// This means by default others are impossible so it is recommended that NUI object typed properties are configured by their constructor with parameters.
+ /// For example, this code is working fine : view.Scale = new Vector3( 2.0f, 1.5f, 0.0f);
+ /// but this will not work! : view.Scale.X = 2.0f; view.Scale.Y = 1.5f;
+ ///
/// 3 public Size2D Size2D { get { - Size temp = new Size(0.0f, 0.0f, 0.0f); - GetProperty(View.Property.SIZE).Get(temp); - Size2D size = new Size2D((int)temp.Width, (int)temp.Height); - return size; + Size2D temp = (Size2D)GetValue(Size2DProperty); + return new Size2D(OnSize2DChanged, temp.Width, temp.Height); } set { - SetProperty(View.Property.SIZE, new Tizen.NUI.PropertyValue(new Size(value))); + SetValue(Size2DProperty, value); + SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue(value.Width)); + SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue(value.Height)); + NotifyPropertyChanged(); } } + private void OnSize2DChanged(int width, int height) + { + Size2D = new Size2D(width, height); + } + /// /// Retrieves the size of the view.
/// The coordinates are relative to the view's parent.
@@ -2093,19 +3193,6 @@ namespace Tizen.NUI.BaseComponents } /// - /// [Obsolete("Please do not use! this will be deprecated. Please use Visibility instead.")] - /// - /// 3 - [Obsolete("Please do not use! this will be deprecated. Please use Visibility instead.")] - public bool Visible - { - get - { - return IsVisible(); - } - } - - /// /// Retrieves and sets the view's opacity.
///
/// 3 @@ -2113,13 +3200,12 @@ namespace Tizen.NUI.BaseComponents { get { - float temp = 0.0f; - GetProperty(View.Property.OPACITY).Get(out temp); - return temp; + return (float)GetValue(OpacityProperty); } set { - SetProperty(View.Property.OPACITY, new Tizen.NUI.PropertyValue(value)); + SetValue(OpacityProperty, value); + NotifyPropertyChanged(); } } @@ -2128,21 +3214,34 @@ namespace Tizen.NUI.BaseComponents /// By default, sets the position vector between the parent origin and the pivot point (default).
/// If the position inheritance is disabled, sets the world position.
///
+ /// + /// This NUI object (Position2D) typed property can be configured by multiple cascade setting.
+ /// For example, this code ( view.Position2D.X = 100; view.Position2D.Y = 100; ) is equivalent to this ( view.Position2D = new Position2D(100, 100); ).
+ /// Please note that this multi-cascade setting is especially possible for this NUI object (Position2D).
+ /// This means by default others are impossible so it is recommended that NUI object typed properties are configured by their constructor with parameters.
+ /// For example, this code is working fine : view.Scale = new Vector3( 2.0f, 1.5f, 0.0f);
+ /// but this will not work! : view.Scale.X = 2.0f; view.Scale.Y = 1.5f;
+ ///
/// 3 public Position2D Position2D { get { - Position temp = new Position(0.0f, 0.0f, 0.0f); - GetProperty(View.Property.POSITION).Get(temp); - return new Position2D(temp); + Position2D temp = (Position2D)GetValue(Position2DProperty); + return new Position2D(OnPosition2DChanged, temp.X, temp.Y); } set { - SetProperty(View.Property.POSITION, new Tizen.NUI.PropertyValue(new Position(value))); + SetValue(Position2DProperty, value); + NotifyPropertyChanged(); } } + private void OnPosition2DChanged(int x, int y) + { + Position2D = new Position2D(x, y); + } + /// /// Retrieves the screen postion of the view.
///
@@ -2164,18 +3263,17 @@ namespace Tizen.NUI.BaseComponents /// 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. /// - /// 4 + /// 3 public bool PositionUsesPivotPoint { get { - bool temp = false; - GetProperty(View.Property.POSITION_USES_ANCHOR_POINT).Get(out temp); - return temp; + return (bool)GetValue(PositionUsesPivotPointProperty); } set { - SetProperty(View.Property.POSITION_USES_ANCHOR_POINT, new Tizen.NUI.PropertyValue(value)); + SetValue(PositionUsesPivotPointProperty, value); + NotifyPropertyChanged(); } } @@ -2184,7 +3282,12 @@ namespace Tizen.NUI.BaseComponents /// /// Please do not use! this will be deprecated! /// Instead please use PositionUsesPivotPoint. - [Obsolete("Please do not use! this will be deprecated, instead please use PositionUsesPivotPoint")] + /// 3 + [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 { @@ -2197,6 +3300,7 @@ namespace Tizen.NUI.BaseComponents set { SetProperty(View.Property.POSITION_USES_ANCHOR_POINT, new Tizen.NUI.PropertyValue(value)); + NotifyPropertyChanged(); } } @@ -2241,7 +3345,7 @@ namespace Tizen.NUI.BaseComponents /// Sets the sibling order of the view so the depth position can be defined within the same parent. /// /// - /// 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. /// @@ -2250,13 +3354,12 @@ namespace Tizen.NUI.BaseComponents { get { - int temp = 0; - GetProperty(View.Property.SIBLING_ORDER).Get(out temp); - return temp; + return (int)GetValue(SiblingOrderProperty); } set { - SetProperty(View.Property.SIBLING_ORDER, new Tizen.NUI.PropertyValue(value)); + SetValue(SiblingOrderProperty, value); + NotifyPropertyChanged(); } } @@ -2268,7 +3371,11 @@ namespace Tizen.NUI.BaseComponents /// /// /// Please do not use! this will be deprecated! /// Instead please use NaturalSize2D. - [Obsolete("Please do not use! this will be deprecated, please use NaturalSize2D instead")] + /// 3 + [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 { @@ -2301,6 +3408,38 @@ namespace Tizen.NUI.BaseComponents } /// + /// Set the layout on this control. + /// + /// + /// + internal LayoutItem Layout + { + get + { + IntPtr cPtr = Tizen.NUI.NDalicManualPINVOKE.GetLayout__SWIG_1(View.getCPtr(this)); + + 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 basehandle as LayoutItem; + } + set + { + Tizen.NUI.NDalicManualPINVOKE.SetLayout__SWIG_1(View.getCPtr(this), LayoutItem.getCPtr(value)); + value.LayoutChildren.Clear(); + layoutSet = true; + foreach (View view in Children) + { + value.LayoutChildren.Add(view.Layout); + } + } + } + + /// /// Shows the view. /// /// @@ -2328,46 +3467,47 @@ namespace Tizen.NUI.BaseComponents internal void Raise() { - var parentChildren = Parent?.Children; + 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 != parentChildren.Count -1) + 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(); } } - NDalicPINVOKE.Raise(swigCPtr); - if (NDalicPINVOKE.SWIGPendingException.Pending) - throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } internal void Lower() { - var parentChildren = Parent?.Children; + 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) + 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(); } } - - NDalicPINVOKE.Lower(swigCPtr); - if (NDalicPINVOKE.SWIGPendingException.Pending) - throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } /// @@ -2380,17 +3520,18 @@ namespace Tizen.NUI.BaseComponents /// 3 public void RaiseToTop() { - var parentChildren = Parent?.Children; + var parentChildren = GetParent()?.Children; if (parentChildren != null) { parentChildren.Remove(this); parentChildren.Add(this); + + NDalicPINVOKE.RaiseToTop(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) + throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } - NDalicPINVOKE.RaiseToTop(swigCPtr); - if (NDalicPINVOKE.SWIGPendingException.Pending) - throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } /// @@ -2403,17 +3544,17 @@ namespace Tizen.NUI.BaseComponents /// 3 public void LowerToBottom() { - var parentChildren = Parent?.Children; + 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(); + NDalicPINVOKE.LowerToBottom(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) + throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } } /// @@ -2421,7 +3562,7 @@ namespace Tizen.NUI.BaseComponents /// /// Most resources are only loaded when the control is placed on the stage. /// - /// 4 + /// 3 public bool IsResourceReady() { bool ret = NDalicPINVOKE.IsResourceReady(swigCPtr); @@ -2440,24 +3581,31 @@ namespace Tizen.NUI.BaseComponents /// Will be raised above this view. internal void RaiseAbove(View target) { - var parentChildren = Parent?.Children; + 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(); } } - NDalicPINVOKE.RaiseAbove(swigCPtr, View.getCPtr(target)); - if (NDalicPINVOKE.SWIGPendingException.Pending) - throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } /// @@ -2470,12 +3618,18 @@ namespace Tizen.NUI.BaseComponents /// Will be lowered below this view. internal void LowerBelow(View target) { - var parentChildren = Parent?.Children; + 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) && @@ -2483,12 +3637,13 @@ namespace Tizen.NUI.BaseComponents { parentChildren.Remove(this); parentChildren.Insert(targetIndex, this); + + NDalicPINVOKE.LowerBelow(swigCPtr, View.getCPtr(target)); + if (NDalicPINVOKE.SWIGPendingException.Pending) + throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } } - NDalicPINVOKE.LowerBelow(swigCPtr, View.getCPtr(target)); - if (NDalicPINVOKE.SWIGPendingException.Pending) - throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } internal string GetName() @@ -2529,10 +3684,20 @@ namespace Tizen.NUI.BaseComponents return ret; } - internal Layer GetLayer() + /// + /// Gets the parent layer of this view.If a view has no parent, this method does nothing. + /// + ///
The view has been initialized. 
+ /// the parent layer of view + /// 5 + 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(); @@ -2559,9 +3724,12 @@ namespace Tizen.NUI.BaseComponents /// 3 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(); @@ -2570,9 +3738,12 @@ namespace Tizen.NUI.BaseComponents 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(); @@ -3146,7 +4317,7 @@ namespace Tizen.NUI.BaseComponents return ret; } - /// 4 + /// 3 public uint AddRenderer(Renderer renderer) { uint ret = NDalicPINVOKE.Actor_AddRenderer(swigCPtr, Renderer.getCPtr(renderer)); @@ -3163,18 +4334,22 @@ namespace Tizen.NUI.BaseComponents return ret; } - /// 4 + /// 3 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; } - /// 4 + /// 3 public void RemoveRenderer(Renderer renderer) { NDalicPINVOKE.Actor_RemoveRenderer__SWIG_0(swigCPtr, Renderer.getCPtr(renderer)); @@ -3182,7 +4357,7 @@ namespace Tizen.NUI.BaseComponents throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } - /// 4 + /// 3 public void RemoveRenderer(uint index) { NDalicPINVOKE.Actor_RemoveRenderer__SWIG_1(swigCPtr, index); @@ -3238,14 +4413,16 @@ namespace Tizen.NUI.BaseComponents 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; @@ -3271,13 +4448,12 @@ namespace Tizen.NUI.BaseComponents { get { - Position temp = new Position(0.0f, 0.0f, 0.0f); - GetProperty(View.Property.PARENT_ORIGIN).Get(temp); - return temp; + return (Position)GetValue(ParentOriginProperty); } set { - SetProperty(View.Property.PARENT_ORIGIN, new Tizen.NUI.PropertyValue(value)); + SetValue(ParentOriginProperty, value); + NotifyPropertyChanged(); } } @@ -3292,6 +4468,7 @@ namespace Tizen.NUI.BaseComponents set { SetProperty(View.Property.PARENT_ORIGIN_X, new Tizen.NUI.PropertyValue(value)); + NotifyPropertyChanged(); } } @@ -3306,6 +4483,7 @@ namespace Tizen.NUI.BaseComponents set { SetProperty(View.Property.PARENT_ORIGIN_Y, new Tizen.NUI.PropertyValue(value)); + NotifyPropertyChanged(); } } @@ -3320,6 +4498,7 @@ namespace Tizen.NUI.BaseComponents set { SetProperty(View.Property.PARENT_ORIGIN_Z, new Tizen.NUI.PropertyValue(value)); + NotifyPropertyChanged(); } } @@ -3336,13 +4515,12 @@ namespace Tizen.NUI.BaseComponents { get { - Position temp = new Position(0.0f, 0.0f, 0.0f); - GetProperty(View.Property.ANCHOR_POINT).Get(temp); - return temp; + return (Position)GetValue(PivotPointProperty); } set { - SetProperty(View.Property.ANCHOR_POINT, new Tizen.NUI.PropertyValue(value)); + SetValue(PivotPointProperty, value); + NotifyPropertyChanged(); } } @@ -3396,13 +4574,12 @@ namespace Tizen.NUI.BaseComponents { get { - float temp = 0.0f; - GetProperty(View.Property.SIZE_WIDTH).Get(out temp); - return temp; + return (float)GetValue(SizeWidthProperty); } set { - SetProperty(View.Property.SIZE_WIDTH, new Tizen.NUI.PropertyValue(value)); + SetValue(SizeWidthProperty, value); + NotifyPropertyChanged(); } } @@ -3414,13 +4591,12 @@ namespace Tizen.NUI.BaseComponents { get { - float temp = 0.0f; - GetProperty(View.Property.SIZE_HEIGHT).Get(out temp); - return temp; + return (float)GetValue(SizeHeightProperty); } set { - SetProperty(View.Property.SIZE_HEIGHT, new Tizen.NUI.PropertyValue(value)); + SetValue(SizeHeightProperty, value); + NotifyPropertyChanged(); } } @@ -3434,13 +4610,12 @@ namespace Tizen.NUI.BaseComponents { get { - Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f); - GetProperty(View.Property.POSITION).Get(temp); - return temp; + return (Position)GetValue(PositionProperty); } set { - SetProperty(View.Property.POSITION, new Tizen.NUI.PropertyValue(value)); + SetValue(PositionProperty, value); + NotifyPropertyChanged(); } } @@ -3452,13 +4627,12 @@ namespace Tizen.NUI.BaseComponents { get { - float temp = 0.0f; - GetProperty(View.Property.POSITION_X).Get(out temp); - return temp; + return (float)GetValue(PositionXProperty); } set { - SetProperty(View.Property.POSITION_X, new Tizen.NUI.PropertyValue(value)); + SetValue(PositionXProperty, value); + NotifyPropertyChanged(); } } @@ -3470,13 +4644,12 @@ namespace Tizen.NUI.BaseComponents { get { - float temp = 0.0f; - GetProperty(View.Property.POSITION_Y).Get(out temp); - return temp; + return (float)GetValue(PositionYProperty); } set { - SetProperty(View.Property.POSITION_Y, new Tizen.NUI.PropertyValue(value)); + SetValue(PositionYProperty, value); + NotifyPropertyChanged(); } } @@ -3488,13 +4661,12 @@ namespace Tizen.NUI.BaseComponents { get { - float temp = 0.0f; - GetProperty(View.Property.POSITION_Z).Get(out temp); - return temp; + return (float)GetValue(PositionZProperty); } set { - SetProperty(View.Property.POSITION_Z, new Tizen.NUI.PropertyValue(value)); + SetValue(PositionZProperty, value); + NotifyPropertyChanged(); } } @@ -3552,13 +4724,12 @@ namespace Tizen.NUI.BaseComponents { get { - Rotation temp = new Rotation(); - GetProperty(View.Property.ORIENTATION).Get(temp); - return temp; + return (Rotation)GetValue(OrientationProperty); } set { - SetProperty(View.Property.ORIENTATION, new Tizen.NUI.PropertyValue(value)); + SetValue(OrientationProperty, value); + NotifyPropertyChanged(); } } @@ -3584,13 +4755,12 @@ namespace Tizen.NUI.BaseComponents { get { - Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f); - GetProperty(View.Property.SCALE).Get(temp); - return temp; + return (Vector3)GetValue(ScaleProperty); } set { - SetProperty(View.Property.SCALE, new Tizen.NUI.PropertyValue(value)); + SetValue(ScaleProperty, value); + NotifyPropertyChanged(); } } @@ -3602,13 +4772,12 @@ namespace Tizen.NUI.BaseComponents { get { - float temp = 0.0f; - GetProperty(View.Property.SCALE_X).Get(out temp); - return temp; + return (float)GetValue(ScaleXProperty); } set { - SetProperty(View.Property.SCALE_X, new Tizen.NUI.PropertyValue(value)); + SetValue(ScaleXProperty, value); + NotifyPropertyChanged(); } } @@ -3620,13 +4789,12 @@ namespace Tizen.NUI.BaseComponents { get { - float temp = 0.0f; - GetProperty(View.Property.SCALE_Y).Get(out temp); - return temp; + return (float)GetValue(ScaleYProperty); } set { - SetProperty(View.Property.SCALE_Y, new Tizen.NUI.PropertyValue(value)); + SetValue(ScaleYProperty, value); + NotifyPropertyChanged(); } } @@ -3638,13 +4806,12 @@ namespace Tizen.NUI.BaseComponents { get { - float temp = 0.0f; - GetProperty(View.Property.SCALE_Z).Get(out temp); - return temp; + return (float)GetValue(ScaleZProperty); } set { - SetProperty(View.Property.SCALE_Z, new Tizen.NUI.PropertyValue(value)); + SetValue(ScaleZProperty, value); + NotifyPropertyChanged(); } } @@ -3712,13 +4879,12 @@ namespace Tizen.NUI.BaseComponents { get { - string temp; - GetProperty(View.Property.NAME).Get(out temp); - return temp; + return (string)GetValue(NameProperty); } set { - SetProperty(View.Property.NAME, new Tizen.NUI.PropertyValue(value)); + SetValue(NameProperty, value); + NotifyPropertyChanged(); } } @@ -3755,13 +4921,12 @@ namespace Tizen.NUI.BaseComponents { get { - bool temp = false; - GetProperty(View.Property.SENSITIVE).Get(out temp); - return temp; + return (bool)GetValue(SensitiveProperty); } set { - SetProperty(View.Property.SENSITIVE, new Tizen.NUI.PropertyValue(value)); + SetValue(SensitiveProperty, value); + NotifyPropertyChanged(); } } @@ -3773,13 +4938,12 @@ namespace Tizen.NUI.BaseComponents { get { - bool temp = false; - GetProperty(View.Property.LEAVE_REQUIRED).Get(out temp); - return temp; + return (bool)GetValue(LeaveRequiredProperty); } set { - SetProperty(View.Property.LEAVE_REQUIRED, new Tizen.NUI.PropertyValue(value)); + SetValue(LeaveRequiredProperty, value); + NotifyPropertyChanged(); } } @@ -3791,13 +4955,12 @@ namespace Tizen.NUI.BaseComponents { get { - bool temp = false; - GetProperty(View.Property.INHERIT_ORIENTATION).Get(out temp); - return temp; + return (bool)GetValue(InheritOrientationProperty); } set { - SetProperty(View.Property.INHERIT_ORIENTATION, new Tizen.NUI.PropertyValue(value)); + SetValue(InheritOrientationProperty, value); + NotifyPropertyChanged(); } } @@ -3809,13 +4972,12 @@ namespace Tizen.NUI.BaseComponents { get { - bool temp = false; - GetProperty(View.Property.INHERIT_SCALE).Get(out temp); - return temp; + return (bool)GetValue(InheritScaleProperty); } set { - SetProperty(View.Property.INHERIT_SCALE, new Tizen.NUI.PropertyValue(value)); + SetValue(InheritScaleProperty, value); + NotifyPropertyChanged(); } } @@ -3832,26 +4994,12 @@ namespace Tizen.NUI.BaseComponents { get { - string temp; - if (GetProperty(View.Property.DRAW_MODE).Get(out temp) == false) - { - NUILog.Error("DrawMode get error!"); - } - switch (temp) - { - case "NORMAL": - return DrawModeType.Normal; - case "OVERLAY_2D": - return DrawModeType.Overlay2D; - case "STENCIL": - return DrawModeType.Stencil; - default: - return DrawModeType.Normal; - } + return (DrawModeType)GetValue(DrawModeProperty); } set { - SetProperty(View.Property.DRAW_MODE, new Tizen.NUI.PropertyValue((int)value)); + SetValue(DrawModeProperty, value); + NotifyPropertyChanged(); } } @@ -3865,13 +5013,12 @@ namespace Tizen.NUI.BaseComponents { get { - Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f); - GetProperty(View.Property.SIZE_MODE_FACTOR).Get(temp); - return temp; + return (Vector3)GetValue(SizeModeFactorProperty); } set { - SetProperty(View.Property.SIZE_MODE_FACTOR, new Tizen.NUI.PropertyValue(value)); + SetValue(SizeModeFactorProperty, value); + NotifyPropertyChanged(); } } @@ -3883,36 +5030,12 @@ namespace Tizen.NUI.BaseComponents { get { - string temp; - if (GetProperty(View.Property.WIDTH_RESIZE_POLICY).Get(out temp) == false) - { - NUILog.Error("WidthResizePolicy get error!"); - } - switch (temp) - { - case "FIXED": - return ResizePolicyType.Fixed; - case "USE_NATURAL_SIZE": - return ResizePolicyType.UseNaturalSize; - case "FILL_TO_PARENT": - return ResizePolicyType.FillToParent; - case "SIZE_RELATIVE_TO_PARENT": - return ResizePolicyType.SizeRelativeToParent; - case "SIZE_FIXED_OFFSET_FROM_PARENT": - return ResizePolicyType.SizeFixedOffsetFromParent; - case "FIT_TO_CHILDREN": - return ResizePolicyType.FitToChildren; - case "DIMENSION_DEPENDENCY": - return ResizePolicyType.DimensionDependency; - case "USE_ASSIGNED_SIZE": - return ResizePolicyType.UseAssignedSize; - default: - return ResizePolicyType.Fixed; - } + return (ResizePolicyType)GetValue(WidthResizePolicyProperty); } set { - SetProperty(View.Property.WIDTH_RESIZE_POLICY, new Tizen.NUI.PropertyValue((int)value)); + SetValue(WidthResizePolicyProperty, value); + NotifyPropertyChanged(); } } @@ -3924,36 +5047,12 @@ namespace Tizen.NUI.BaseComponents { get { - string temp; - if (GetProperty(View.Property.HEIGHT_RESIZE_POLICY).Get(out temp) == false) - { - NUILog.Error("HeightResizePolicy get error!"); - } - switch (temp) - { - case "FIXED": - return ResizePolicyType.Fixed; - case "USE_NATURAL_SIZE": - return ResizePolicyType.UseNaturalSize; - case "FILL_TO_PARENT": - return ResizePolicyType.FillToParent; - case "SIZE_RELATIVE_TO_PARENT": - return ResizePolicyType.SizeRelativeToParent; - case "SIZE_FIXED_OFFSET_FROM_PARENT": - return ResizePolicyType.SizeFixedOffsetFromParent; - case "FIT_TO_CHILDREN": - return ResizePolicyType.FitToChildren; - case "DIMENSION_DEPENDENCY": - return ResizePolicyType.DimensionDependency; - case "USE_ASSIGNED_SIZE": - return ResizePolicyType.UseAssignedSize; - default: - return ResizePolicyType.Fixed; - } + return (ResizePolicyType)GetValue(HeightResizePolicyProperty); } set { - SetProperty(View.Property.HEIGHT_RESIZE_POLICY, new Tizen.NUI.PropertyValue((int)value)); + SetValue(HeightResizePolicyProperty, value); + NotifyPropertyChanged(); } } @@ -3966,50 +5065,12 @@ namespace Tizen.NUI.BaseComponents { get { - string temp; - if (GetProperty(View.Property.SIZE_SCALE_POLICY).Get(out temp) == false) - { - NUILog.Error("SizeScalePolicy get error!"); - } - switch (temp) - { - case "USE_SIZE_SET": - return SizeScalePolicyType.UseSizeSet; - case "FIT_WITH_ASPECT_RATIO": - return SizeScalePolicyType.FitWithAspectRatio; - case "FILL_WITH_ASPECT_RATIO": - return SizeScalePolicyType.FillWithAspectRatio; - default: - return SizeScalePolicyType.UseSizeSet; - } + return (SizeScalePolicyType)GetValue(SizeScalePolicyProperty); } set { - string valueToString = ""; - switch (value) - { - case SizeScalePolicyType.UseSizeSet: - { - valueToString = "USE_SIZE_SET"; - break; - } - case SizeScalePolicyType.FitWithAspectRatio: - { - valueToString = "FIT_WITH_ASPECT_RATIO"; - break; - } - case SizeScalePolicyType.FillWithAspectRatio: - { - valueToString = "FILL_WITH_ASPECT_RATIO"; - break; - } - default: - { - valueToString = "USE_SIZE_SET"; - break; - } - } - SetProperty(View.Property.SIZE_SCALE_POLICY, new Tizen.NUI.PropertyValue(valueToString)); + SetValue(SizeScalePolicyProperty, value); + NotifyPropertyChanged(); } } @@ -4021,13 +5082,12 @@ namespace Tizen.NUI.BaseComponents { get { - bool temp = false; - GetProperty(View.Property.WIDTH_FOR_HEIGHT).Get(out temp); - return temp; + return (bool)GetValue(WidthForHeightProperty); } set { - SetProperty(View.Property.WIDTH_FOR_HEIGHT, new Tizen.NUI.PropertyValue(value)); + SetValue(WidthForHeightProperty, value); + NotifyPropertyChanged(); } } @@ -4039,31 +5099,29 @@ namespace Tizen.NUI.BaseComponents { get { - bool temp = false; - GetProperty(View.Property.HEIGHT_FOR_WIDTH).Get(out temp); - return temp; + return (bool)GetValue(HeightForWidthProperty); } set { - SetProperty(View.Property.HEIGHT_FOR_WIDTH, new Tizen.NUI.PropertyValue(value)); + SetValue(HeightForWidthProperty, value); + NotifyPropertyChanged(); } } /// /// Gets or sets the padding for use in layout. /// - /// 3 - public Vector4 Padding + /// 5 + public Extents Padding { get { - Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f); - GetProperty(View.Property.PADDING).Get(temp); - return temp; + return (Extents)GetValue(PaddingProperty); } set { - SetProperty(View.Property.PADDING, new Tizen.NUI.PropertyValue(value)); + SetValue(PaddingProperty, value); + NotifyPropertyChanged(); } } @@ -4075,13 +5133,19 @@ namespace Tizen.NUI.BaseComponents { get { - Size2D temp = new Size2D(0, 0); - GetProperty(View.Property.MINIMUM_SIZE).Get(temp); - return temp; + return (Size2D)GetValue(MinimumSizeProperty); } set { - SetProperty(View.Property.MINIMUM_SIZE, new Tizen.NUI.PropertyValue(value)); + if (Layout != null) + { + // Note: it only works if minimum size is >= than natural size. + // To force the size it should be done through the width&height spec or Size2D. + Layout.MinimumWidth = new Tizen.NUI.LayoutLength(value.Width); + Layout.MinimumHeight = new Tizen.NUI.LayoutLength(value.Height); + } + SetValue(MinimumSizeProperty, value); + NotifyPropertyChanged(); } } @@ -4093,13 +5157,14 @@ namespace Tizen.NUI.BaseComponents { get { - Size2D temp = new Size2D(0, 0); - GetProperty(View.Property.MAXIMUM_SIZE).Get(temp); - return temp; + return (Size2D)GetValue(MaximumSizeProperty); } set { - SetProperty(View.Property.MAXIMUM_SIZE, new Tizen.NUI.PropertyValue(value)); + // We don't have Layout.Maximum(Width|Height) so we cannot apply it to layout. + // MATCH_PARENT spec + parent container size can be used to limit + SetValue(MaximumSizeProperty, value); + NotifyPropertyChanged(); } } @@ -4113,13 +5178,12 @@ namespace Tizen.NUI.BaseComponents { get { - bool temp = false; - GetProperty(View.Property.INHERIT_POSITION).Get(out temp); - return temp; + return (bool)GetValue(InheritPositionProperty); } set { - SetProperty(View.Property.INHERIT_POSITION, new Tizen.NUI.PropertyValue(value)); + SetValue(InheritPositionProperty, value); + NotifyPropertyChanged(); } } @@ -4131,33 +5195,19 @@ namespace Tizen.NUI.BaseComponents { get { - string temp; - if (GetProperty(View.Property.CLIPPING_MODE).Get(out temp) == false) - { - NUILog.Error("ClippingMode get error!"); - } - switch (temp) - { - case "DISABLED": - return ClippingModeType.Disabled; - case "CLIP_CHILDREN": - return ClippingModeType.ClipChildren; - case "CLIP_TO_BOUNDING_BOX": - return ClippingModeType.ClipToBoundingBox; - default: - return ClippingModeType.Disabled; - } + return (ClippingModeType)GetValue(ClippingModeProperty); } set { - SetProperty(View.Property.CLIPPING_MODE, new Tizen.NUI.PropertyValue((int)value)); + SetValue(ClippingModeProperty, value); + NotifyPropertyChanged(); } } /// /// Gets the number of renderers held by the view. /// - /// 4 + /// 3 public uint RendererCount { get @@ -4166,38 +5216,30 @@ namespace Tizen.NUI.BaseComponents } } - - /// /// [Obsolete("Please do not use! this will be deprecated")] /// /// 3 /// Please do not use! this will be deprecated! - /// Instead please use TouchEvent. - [Obsolete("Please do not use! this will be deprecated, instead please use TouchEvent.")] + /// 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 event EventHandlerWithReturnType Touched + public Position AnchorPoint { - add + get { - if (_touchDataEventHandler == null) - { - _touchDataCallback = OnTouch; - this.TouchSignal().Connect(_touchDataCallback); - } - - _touchDataEventHandler += value; + Position temp = new Position(0.0f, 0.0f, 0.0f); + GetProperty(View.Property.ANCHOR_POINT).Get(temp); + return temp; } - - remove + set { - _touchDataEventHandler -= value; - - if (_touchDataEventHandler == null && TouchSignal().Empty() == false) - { - this.TouchSignal().Disconnect(_touchDataCallback); - } - + SetProperty(View.Property.ANCHOR_POINT, new Tizen.NUI.PropertyValue(value)); + NotifyPropertyChanged(); } } @@ -4205,308 +5247,243 @@ namespace Tizen.NUI.BaseComponents /// [Obsolete("Please do not use! this will be deprecated")] ///
/// 3 - /// Please do not use! this will be deprecated! - /// Instead please use HoverEvent. - [Obsolete("Please do not use! this will be deprecated, instead please use HoverEvent.")] + [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 event EventHandlerWithReturnType Hovered + public Size Size { - add + get { - if (_hoverEventHandler == null) - { - _hoverEventCallback = OnHoverEvent; - this.HoveredSignal().Connect(_hoverEventCallback); - } - - _hoverEventHandler += value; + return (Size)GetValue(SizeProperty); } - - remove + set { - _hoverEventHandler -= value; - - if (_hoverEventHandler == null && HoveredSignal().Empty() == false) - { - this.HoveredSignal().Disconnect(_hoverEventCallback); - } - + SetValue(SizeProperty, value); + NotifyPropertyChanged(); } } /// - /// Please do not use! this will be deprecated. + /// "Please DO NOT use! This will be deprecated! Please use 'Container GetParent() for derived class' instead!" /// /// 3 - /// Please do not use! this will be deprecated! - /// Instead please use WheelEvent. - [Obsolete("Please do not use! this will be deprecated, instead please use WheelEvent.")] + [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 event EventHandlerWithReturnType WheelMoved + public new View Parent { - add + get { - if (_wheelEventHandler == null) + View ret; + IntPtr cPtr = NDalicPINVOKE.Actor_GetParent(swigCPtr); + HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr); + BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle); + + if (basehandle is Layer layer) { - _wheelEventCallback = OnWheelEvent; - this.WheelEventSignal().Connect(_wheelEventCallback); + ret = new View(Layer.getCPtr(layer).Handle, false); + NUILog.Error("This Parent property is deprecated, shoud do not be used"); } - - _wheelEventHandler += value; - } - - remove - { - _wheelEventHandler -= value; - - if (_wheelEventHandler == null && WheelEventSignal().Empty() == false) + else { - this.WheelEventSignal().Disconnect(_wheelEventCallback); + ret = basehandle 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(); + return ret; } } /// - /// [Obsolete("Please do not use! this will be deprecated")] + /// Gets/Sets whether inherit parent's the layout Direction. /// - /// 3 - /// Please do not use! this will be deprecated! - /// Instead please use PivotPoint. - [Obsolete("Please do not use! this will be deprecated, instead please use PivotPoint")] - [EditorBrowsable(EditorBrowsableState.Never)] - public Position AnchorPoint + /// 4 + public bool InheritLayoutDirection { get { - Position temp = new Position(0.0f, 0.0f, 0.0f); - GetProperty(View.Property.ANCHOR_POINT).Get(temp); - return temp; + return (bool)GetValue(InheritLayoutDirectionProperty); } set { - SetProperty(View.Property.ANCHOR_POINT, new Tizen.NUI.PropertyValue(value)); + SetValue(InheritLayoutDirectionProperty, value); + NotifyPropertyChanged(); } } /// - /// [Obsolete("Please do not use! this will be deprecated")] + /// Gets/Sets the layout Direction. /// - /// 3 - [Obsolete("Please do not use! this will be deprecated, please use Size2D instead")] - public Size Size + /// 4 + public ViewLayoutDirectionType LayoutDirection { get { - Size temp = new Size(0.0f, 0.0f, 0.0f); - GetProperty(View.Property.SIZE).Get(temp); - return temp; + return (ViewLayoutDirectionType)GetValue(LayoutDirectionProperty); } set { - SetProperty(View.Property.SIZE, new Tizen.NUI.PropertyValue(value)); + SetValue(LayoutDirectionProperty, value); + NotifyPropertyChanged(); } } /// - /// [Obsolete("Please do not use! this will be deprecated")] + /// Gets or sets the Margin for use in layout. /// - /// 3 - /// Please do not use! this will be deprecated! - /// Instead please use AddedToWindow. - [Obsolete("Please do not use! this will be deprecated, instead please use AddedToWindow")] - [EditorBrowsable(EditorBrowsableState.Never)] - public event EventHandler OnWindowEvent + /// 4 + public Extents Margin { - add + get { - if (_onWindowEventHandler == null) - { - _onWindowEventCallback = OnWindow; - this.OnWindowSignal().Connect(_onWindowEventCallback); - } - - _onWindowEventHandler += value; + return (Extents)GetValue(MarginProperty); } - - remove + set { - _onWindowEventHandler -= value; - - if (_onWindowEventHandler == null && OnWindowSignal().Empty() == false) - { - this.OnWindowSignal().Disconnect(_onWindowEventCallback); - } + SetValue(MarginProperty, value); + NotifyPropertyChanged(); } } - /// - /// [Obsolete("Please do not use! this will be deprecated")] - /// - /// 3 - /// Please do not use! this will be deprecated! - /// Instead please use RemovedFromWindow. - [Obsolete("Please do not use! this will be deprecated, instead please use RemovedFromWindow")] - [EditorBrowsable(EditorBrowsableState.Never)] - public event EventHandler OffWindowEvent + internal Style Style { - add + get { - if (_offWindowEventHandler == null) - { - _offWindowEventCallback = OffWindow; - this.OffWindowSignal().Connect(_offWindowEventCallback); - } - - _offWindowEventHandler += value; + return (Style)GetValue(StyleProperty); } - - remove + set { - _offWindowEventHandler -= value; - - if (_offWindowEventHandler == null && OffWindowSignal().Empty() == false) - { - this.OffWindowSignal().Disconnect(_offWindowEventCallback); - } + SetValue(StyleProperty, value); } } /// /// [Obsolete("Please do not use! this will be deprecated")] /// - /// 3 /// Please do not use! this will be deprecated! - /// Instead please use Relayout. - [Obsolete("Please do not use! this will be deprecated, instead please use Relayout")] + /// Instead please use Padding. + /// 4 + [Obsolete("Please do not use! this will be deprecated, instead please use Padding.")] [EditorBrowsable(EditorBrowsableState.Never)] - public event EventHandler OnRelayoutEvent + public Extents PaddingEX { - add + get { - if (_onRelayoutEventHandler == null) - { - _onRelayoutEventCallback = OnRelayout; - this.OnRelayoutSignal().Connect(_onRelayoutEventCallback); - } - - _onRelayoutEventHandler += value; + Extents temp = new Extents(0, 0, 0, 0); + GetProperty(View.Property.PADDING).Get(temp); + return temp; } - - remove + set { - _onRelayoutEventHandler -= value; - - if (_onRelayoutEventHandler == null && OnRelayoutSignal().Empty() == false) - { - this.OnRelayoutSignal().Disconnect(_onRelayoutEventCallback); - } - + SetProperty(View.Property.PADDING, new Tizen.NUI.PropertyValue(value)); + NotifyPropertyChanged(); } } /// - /// "Please DO NOT use! This will be deprecated! Please use 'Container GetParent() for derived class' instead!" + /// Perform an action on a visual registered to this view.
+ /// Visuals will have actions, this API is used to perform one of these actions with the given attributes. ///
- /// 3 - //"Please DO NOT use! This will be deprecated! Please use 'Container GetParent() for derived class' instead!" - [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] - public new View Parent + /// The Property index of the visual. + /// The action to perform. See Visual to find supported actions. + /// Optional attributes for the action. + /// 5 + public void DoAction(int propertyIndexOfVisual, int propertyIndexOfActionId, PropertyValue attributes) { - get - { - View ret; - IntPtr cPtr = NDalicPINVOKE.Actor_GetParent(swigCPtr); - - BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(cPtr); - - if (basehandle is Layer) - { - ret = new View(cPtr, false); - } - else - { - ret = basehandle as View; - } - - if (NDalicPINVOKE.SWIGPendingException.Pending) - throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } + NDalicManualPINVOKE.View_DoAction(swigCPtr, propertyIndexOfVisual, propertyIndexOfActionId, PropertyValue.getCPtr(attributes)); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } + internal readonly MergedStyle _mergedStyle; + /// - /// Gets/Sets whether inherit parent's the layout Direction. + /// Child property to specify desired width /// - /// 4 - public bool InheritLayoutDirection + internal int LayoutWidthSpecificationFixed { get { - bool temp = false; - GetProperty(View.Property.INHERIT_LAYOUT_DIRECTION).Get(out temp); - return temp; + int tmp = 0; + if (GetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION).Get(out tmp) == false) + { + NUILog.Error("WidthSpecificationFixed get error!"); + } + return tmp; } set { - SetProperty(View.Property.INHERIT_LAYOUT_DIRECTION, new Tizen.NUI.PropertyValue(value)); + SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue(value)); } } /// - /// Gets/Sets the layout Direction. + /// Child property to specify desired height /// - /// 4 - public ViewLayoutDirectionType LayoutDirection + internal int LayoutHeightSpecificationFixed { get { - int temp; - if (GetProperty(View.Property.LAYOUT_DIRECTION).Get(out temp) == false) + int tmp = 0; + if (GetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION).Get(out tmp) == false) { - NUILog.Error("LAYOUT_DIRECTION get error!"); + NUILog.Error("HeightSpecificationFixed get error!"); } - return (ViewLayoutDirectionType)temp; + return tmp; } set { - SetProperty(View.Property.LAYOUT_DIRECTION, new Tizen.NUI.PropertyValue((int)value)); + SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue(value)); } } /// - /// Gets or sets the Margin for use in layout. + /// Child property to specify desired width, use MatchParent/WrapContent) /// - public Extents Margin + internal ChildLayoutData LayoutWidthSpecification { get { - Extents temp = new Extents(0, 0, 0, 0); - GetProperty(View.Property.MARGIN).Get(temp); - return temp; + int tmp = 0; + if (GetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION).Get(out tmp) == false) + { + NUILog.Error("WidthSpecificationFixed get error!"); + } + return (ChildLayoutData)tmp; } set { - SetProperty(View.Property.MARGIN, new Tizen.NUI.PropertyValue(value)); + SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue((int)value)); } } /// - /// Gets or sets the Padding for use in layout. + /// Child property to specify desired height, use MatchParent/WrapContent) /// - public Extents PaddingEX + internal ChildLayoutData LayoutHeightSpecification { get { - Extents temp = new Extents(0, 0, 0, 0); - GetProperty(View.Property.PADDINGEX).Get(temp); - return temp; + int tmp = 0; + if (GetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION).Get(out tmp) == false) + { + NUILog.Error("HeightSpecificationFixed get error!"); + } + return (ChildLayoutData)tmp; } set { - SetProperty(View.Property.PADDINGEX, new Tizen.NUI.PropertyValue(value)); + SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue((int)value)); } } + } /// @@ -4518,10 +5495,25 @@ namespace Tizen.NUI.BaseComponents /// /// Left to right. /// + /// 4 LTR, /// /// Right to left. /// + /// 4 RTL } + + internal enum ChildLayoutData + { + /// + /// Constant which indicates child size should match parent size + /// + MatchParent = -1, + /// + /// Constant which indicates parent should take the smallest size possible to wrap it's children with their desired size + /// + WrapContent = -2, + } + }