[NUI] Fix only to give children a layout in an explicit layout (#408)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / BaseComponents / View.cs
1 /*
2  * Copyright(c) 2018 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 using System;
18 using System.ComponentModel;
19 using System.Runtime.InteropServices;
20 using Tizen.NUI.Binding;
21
22 namespace Tizen.NUI.BaseComponents
23 {
24     /// <summary>
25     /// View is the base class for all views.
26     /// </summary>
27     /// <since_tizen> 3 </since_tizen>
28     public class View : Container, IResourcesProvider
29     {
30         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
31         [EditorBrowsable(EditorBrowsableState.Never)]
32         public bool IsResourcesCreated
33         {
34             get
35             {
36                 return Application.Current.IsResourcesCreated;
37             }
38         }
39
40         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
41         [EditorBrowsable(EditorBrowsableState.Never)]
42         public ResourceDictionary XamlResources
43         {
44             get
45             {
46                 return Application.Current.XamlResources;
47             }
48             set
49             {
50                 Application.Current.XamlResources = value;
51             }
52         }
53
54         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
55         [EditorBrowsable(EditorBrowsableState.Never)]
56         public static readonly BindableProperty StyleNameProperty = BindableProperty.Create("StyleName", typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
57         {
58             var view = (View)bindable;
59             if (newValue != null)
60             {
61                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.STYLE_NAME, new Tizen.NUI.PropertyValue((string)newValue));
62             }
63         },
64         defaultValueCreator:(bindable) =>
65         {
66             var view = (View)bindable;
67             string temp;
68             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.STYLE_NAME).Get(out temp);
69             return temp;
70         });
71         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
72         [EditorBrowsable(EditorBrowsableState.Never)]
73         public static readonly BindableProperty BackgroundColorProperty = BindableProperty.Create("BackgroundColor", typeof(Color), typeof(View), Color.Transparent, propertyChanged: (bindable, oldValue, newValue) =>
74         {
75             var view = (View)bindable;
76             if (newValue != null)
77             {
78                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, new Tizen.NUI.PropertyValue((Color)newValue));
79             }
80         },
81         defaultValueCreator:(bindable) =>
82         {
83             var view = (View)bindable;
84             Color backgroundColor = new Color(0.0f, 0.0f, 0.0f, 0.0f);
85
86             Tizen.NUI.PropertyMap background = view.Background;
87             int visualType = 0;
88             background.Find(Visual.Property.Type)?.Get(out visualType);
89             if (visualType == (int)Visual.Type.Color)
90             {
91                 background.Find(ColorVisualProperty.MixColor)?.Get(backgroundColor);
92             }
93
94             return backgroundColor;
95         });
96         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
97         [EditorBrowsable(EditorBrowsableState.Never)]
98         public static readonly BindableProperty BackgroundImageProperty = BindableProperty.Create("BackgroundImage", typeof(string), typeof(View), default(string), propertyChanged: (bindable, oldValue, newValue) =>
99         {
100             var view = (View)bindable;
101             if (newValue != null)
102             {
103                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, new Tizen.NUI.PropertyValue((string)newValue));
104             }
105         },
106         defaultValueCreator:(bindable) =>
107         {
108             var view = (View)bindable;
109             string backgroundImage = "";
110
111             Tizen.NUI.PropertyMap background = view.Background;
112             int visualType = 0;
113             background.Find(Visual.Property.Type)?.Get(out visualType);
114             if (visualType == (int)Visual.Type.Image)
115             {
116                 background.Find(ImageVisualProperty.URL)?.Get(out backgroundImage);
117             }
118
119             return backgroundImage;
120         });
121         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
122         [EditorBrowsable(EditorBrowsableState.Never)]
123         public static readonly BindableProperty BackgroundProperty = BindableProperty.Create("Background", typeof(PropertyMap), typeof(View), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
124         {
125             var view = (View)bindable;
126             if (newValue != null)
127             {
128                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.BACKGROUND, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
129             }
130         },
131         defaultValueCreator:(bindable) =>
132         {
133             var view = (View)bindable;
134             Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
135             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.BACKGROUND).Get(temp);
136             return temp;
137         });
138         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
139         [EditorBrowsable(EditorBrowsableState.Never)]
140         public static readonly BindableProperty StateProperty = BindableProperty.Create("State", typeof(States), typeof(View), States.Normal, propertyChanged: (bindable, oldValue, newValue) =>
141         {
142             var view = (View)bindable;
143             if (newValue != null)
144             {
145                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.STATE, new Tizen.NUI.PropertyValue((int)newValue));
146             }
147         },
148         defaultValueCreator:(bindable) =>
149         {
150             var view = (View)bindable;
151             int temp = 0;
152             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.STATE).Get(out temp) == false)
153             {
154                 NUILog.Error("State get error!");
155             }
156             switch (temp)
157             {
158                 case 0: return States.Normal;
159                 case 1: return States.Focused;
160                 case 2: return States.Disabled;
161                 default: return States.Normal;
162             }
163         });
164         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
165         [EditorBrowsable(EditorBrowsableState.Never)]
166         public static readonly BindableProperty SubStateProperty = BindableProperty.Create("SubState", typeof(States), typeof(View), States.Normal, propertyChanged: (bindable, oldValue, newValue) =>
167         {
168             var view = (View)bindable;
169             string valueToString = "";
170             if (newValue != null)
171             {
172                 switch ((States)newValue)
173                 {
174                     case States.Normal: { valueToString = "NORMAL"; break; }
175                     case States.Focused: { valueToString = "FOCUSED"; break; }
176                     case States.Disabled:   { valueToString = "DISABLED"; break; }
177                     default: { valueToString = "NORMAL"; break; }
178                 }
179                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SUB_STATE, new Tizen.NUI.PropertyValue(valueToString));
180             }
181         },
182         defaultValueCreator:(bindable) =>
183         {
184             var view = (View)bindable;
185             string temp;
186             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SUB_STATE).Get(out temp) == false)
187             {
188                 NUILog.Error("subState get error!");
189             }
190             switch (temp)
191             {
192                 case "NORMAL": return States.Normal;
193                 case "FOCUSED": return States.Focused;
194                 case "DISABLED": return States.Disabled;
195                 default: return States.Normal;
196             }
197         });
198         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
199         [EditorBrowsable(EditorBrowsableState.Never)]
200         public static readonly BindableProperty TooltipProperty = BindableProperty.Create("Tooltip", typeof(PropertyMap), typeof(View), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
201         {
202             var view = (View)bindable;
203             if (newValue != null)
204             {
205                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.TOOLTIP, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
206             }
207         },
208         defaultValueCreator:(bindable) =>
209         {
210             var view = (View)bindable;
211             Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
212             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.TOOLTIP).Get(temp);
213             return temp;
214         });
215         // public static readonly BindableProperty TooltipTextProperty = BindableProperty.Create("TooltipText", typeof(string), typeof(View), default(string), propertyChanged: (bindable, oldValue, newValue) =>
216         // {
217         //     var view = (View)bindable;
218         //     if (newValue != null)
219         //     {
220         //         Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.TOOLTIP, new Tizen.NUI.PropertyValue((string)newValue));
221         //     }
222         // });
223         public static readonly BindableProperty FlexProperty = BindableProperty.Create("Flex", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
224         {
225             var view = (View)bindable;
226             if (newValue != null)
227             {
228                 Tizen.NUI.Object.SetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX, new Tizen.NUI.PropertyValue((float)newValue));
229             }
230         },
231         defaultValueCreator:(bindable) =>
232         {
233             var view = (View)bindable;
234             float temp = 0.0f;
235             Tizen.NUI.Object.GetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX).Get(out temp);
236             return temp;
237         });
238         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
239         [EditorBrowsable(EditorBrowsableState.Never)]
240         public static readonly BindableProperty AlignSelfProperty = BindableProperty.Create("AlignSelf", typeof(int), typeof(View), default(int), propertyChanged: (bindable, oldValue, newValue) =>
241         {
242             var view = (View)bindable;
243             if (newValue != null)
244             {
245                 Tizen.NUI.Object.SetProperty(view.swigCPtr, FlexContainer.ChildProperty.ALIGN_SELF, new Tizen.NUI.PropertyValue((int)newValue));
246             }
247         },
248         defaultValueCreator:(bindable) =>
249         {
250             var view = (View)bindable;
251             int temp = 0;
252             Tizen.NUI.Object.GetProperty(view.swigCPtr, FlexContainer.ChildProperty.ALIGN_SELF).Get(out temp);
253             return temp;
254         });
255         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
256         [EditorBrowsable(EditorBrowsableState.Never)]
257         public static readonly BindableProperty FlexMarginProperty = BindableProperty.Create("FlexMargin", typeof(Vector4), typeof(View), Vector4.Zero, propertyChanged: (bindable, oldValue, newValue) =>
258         {
259             var view = (View)bindable;
260             if (newValue != null)
261             {
262                 Tizen.NUI.Object.SetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX_MARGIN, new Tizen.NUI.PropertyValue((Vector4)newValue));
263             }
264         },
265         defaultValueCreator:(bindable) =>
266         {
267             var view = (View)bindable;
268             Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
269             Tizen.NUI.Object.GetProperty(view.swigCPtr, FlexContainer.ChildProperty.FLEX_MARGIN).Get(temp);
270             return temp;
271         });
272         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
273         [EditorBrowsable(EditorBrowsableState.Never)]
274         public static readonly BindableProperty CellIndexProperty = BindableProperty.Create("CellIndex", typeof(Vector2), typeof(View), Vector2.Zero, propertyChanged: (bindable, oldValue, newValue) =>
275         {
276             var view = (View)bindable;
277             if (newValue != null)
278             {
279                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.CELL_INDEX, new Tizen.NUI.PropertyValue((Vector2)newValue));
280             }
281         },
282         defaultValueCreator:(bindable) =>
283         {
284             var view = (View)bindable;
285             Vector2 temp = new Vector2(0.0f, 0.0f);
286             Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.CELL_INDEX).Get(temp);
287             return temp;
288         });
289         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
290         [EditorBrowsable(EditorBrowsableState.Never)]
291         public static readonly BindableProperty RowSpanProperty = BindableProperty.Create("RowSpan", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
292         {
293             var view = (View)bindable;
294             if (newValue != null)
295             {
296                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.ROW_SPAN, new Tizen.NUI.PropertyValue((float)newValue));
297             }
298         },
299         defaultValueCreator:(bindable) =>
300         {
301             var view = (View)bindable;
302             float temp = 0.0f;
303             Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.ROW_SPAN).Get(out temp);
304             return temp;
305         });
306         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
307         [EditorBrowsable(EditorBrowsableState.Never)]
308         public static readonly BindableProperty ColumnSpanProperty = BindableProperty.Create("ColumnSpan", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
309         {
310             var view = (View)bindable;
311             if (newValue != null)
312             {
313                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.COLUMN_SPAN, new Tizen.NUI.PropertyValue((float)newValue));
314             }
315         },
316         defaultValueCreator:(bindable) =>
317         {
318             var view = (View)bindable;
319             float temp = 0.0f;
320             Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.COLUMN_SPAN).Get(out temp);
321             return temp;
322         });
323         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
324         [EditorBrowsable(EditorBrowsableState.Never)]
325         public static readonly BindableProperty CellHorizontalAlignmentProperty = BindableProperty.Create("CellHorizontalAlignment", typeof(HorizontalAlignmentType), typeof(View), HorizontalAlignmentType.Left, propertyChanged: (bindable, oldValue, newValue) =>
326         {
327             var view = (View)bindable;
328             string valueToString = "";
329
330             if (newValue != null)
331             {
332                 switch ((HorizontalAlignmentType)newValue)
333                 {
334                     case Tizen.NUI.HorizontalAlignmentType.Left: { valueToString = "left"; break; }
335                     case Tizen.NUI.HorizontalAlignmentType.Center: { valueToString = "center"; break; }
336                     case Tizen.NUI.HorizontalAlignmentType.Right: { valueToString = "right"; break; }
337                     default: { valueToString = "left"; break; }
338                 }
339                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
340             }
341         },
342         defaultValueCreator:(bindable) =>
343         {
344             var view = (View)bindable;
345             string temp;
346             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT).Get(out temp) == false)
347             {
348                 NUILog.Error("CellHorizontalAlignment get error!");
349             }
350
351             switch (temp)
352             {
353                 case "left": return Tizen.NUI.HorizontalAlignmentType.Left;
354                 case "center": return Tizen.NUI.HorizontalAlignmentType.Center;
355                 case "right": return Tizen.NUI.HorizontalAlignmentType.Right;
356                 default: return Tizen.NUI.HorizontalAlignmentType.Left;
357             }
358         });
359         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
360         [EditorBrowsable(EditorBrowsableState.Never)]
361         public static readonly BindableProperty CellVerticalAlignmentProperty = BindableProperty.Create("CellVerticalAlignment", typeof(VerticalAlignmentType), typeof(View), VerticalAlignmentType.Top, propertyChanged: (bindable, oldValue, newValue) =>
362         {
363             var view = (View)bindable;
364             string valueToString = "";
365
366             if (newValue != null)
367             {
368                 switch ((VerticalAlignmentType)newValue)
369                 {
370                     case Tizen.NUI.VerticalAlignmentType.Top: { valueToString = "top"; break; }
371                     case Tizen.NUI.VerticalAlignmentType.Center: { valueToString = "center"; break; }
372                     case Tizen.NUI.VerticalAlignmentType.Bottom: { valueToString = "bottom"; break; }
373                     default: { valueToString = "top"; break; }
374                 }
375                 Tizen.NUI.Object.SetProperty(view.swigCPtr, TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
376             }
377         },
378         defaultValueCreator:(bindable) =>
379         {
380             var view = (View)bindable;
381             string temp;
382             Tizen.NUI.Object.GetProperty(view.swigCPtr, TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT).Get(out temp);
383             {
384                 NUILog.Error("CellVerticalAlignment get error!");
385             }
386
387             switch (temp)
388             {
389                 case "top": return Tizen.NUI.VerticalAlignmentType.Top;
390                 case "center": return Tizen.NUI.VerticalAlignmentType.Center;
391                 case "bottom":  return Tizen.NUI.VerticalAlignmentType.Bottom;
392                 default: return Tizen.NUI.VerticalAlignmentType.Top;
393             }
394         });
395         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
396         [EditorBrowsable(EditorBrowsableState.Never)]
397         public static readonly BindableProperty LeftFocusableViewProperty = BindableProperty.Create("LeftFocusableView", typeof(View), typeof(View), default(View), propertyChanged: (bindable, oldValue, newValue) =>
398         {
399             var view = (View)bindable;
400             if (newValue != null) { view.LeftFocusableViewId = (int)(newValue as View).GetId(); }
401             else { view.LeftFocusableViewId = -1; }
402         },
403         defaultValueCreator:(bindable) =>
404         {
405             var view = (View)bindable;
406             if (view.LeftFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.LeftFocusableViewId); }
407             return null;
408         });
409         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
410         [EditorBrowsable(EditorBrowsableState.Never)]
411         public static readonly BindableProperty RightFocusableViewProperty = BindableProperty.Create("RightFocusableView", typeof(View), typeof(View), default(View), propertyChanged: (bindable, oldValue, newValue) =>
412         {
413             var view = (View)bindable;
414             if (newValue != null) { view.RightFocusableViewId = (int)(newValue as View).GetId(); }
415             else { view.RightFocusableViewId = -1; }
416         },
417         defaultValueCreator:(bindable) =>
418         {
419             var view = (View)bindable;
420             if (view.RightFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.RightFocusableViewId);  }
421             return null;
422         });
423         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
424         [EditorBrowsable(EditorBrowsableState.Never)]
425         public static readonly BindableProperty UpFocusableViewProperty = BindableProperty.Create("UpFocusableView", typeof(View), typeof(View), default(View), propertyChanged: (bindable, oldValue, newValue) =>
426         {
427             var view = (View)bindable;
428             if (newValue != null) { view.UpFocusableViewId = (int)(newValue as View).GetId(); }
429             else  { view.UpFocusableViewId = -1; }
430         },
431         defaultValueCreator:(bindable) =>
432         {
433             var view = (View)bindable;
434             if (view.UpFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.UpFocusableViewId); }
435             return null;
436         });
437         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
438         [EditorBrowsable(EditorBrowsableState.Never)]
439         public static readonly BindableProperty DownFocusableViewProperty = BindableProperty.Create("DownFocusableView", typeof(View), typeof(View), default(View), propertyChanged: (bindable, oldValue, newValue) =>
440         {
441             var view = (View)bindable;
442             if (newValue != null) { view.DownFocusableViewId = (int)(newValue as View).GetId(); }
443             else { view.DownFocusableViewId = -1; }
444         },
445         defaultValueCreator:(bindable) =>
446         {
447             var view = (View)bindable;
448             if (view.DownFocusableViewId >= 0) { return view.ConvertIdToView((uint)view.DownFocusableViewId); }
449             return null;
450         });
451         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
452         [EditorBrowsable(EditorBrowsableState.Never)]
453         public static readonly BindableProperty FocusableProperty = BindableProperty.Create("Focusable", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
454         {
455             var view = (View)bindable;
456             if (newValue != null)  { view.SetKeyboardFocusable((bool)newValue); }
457         },
458         defaultValueCreator:(bindable) =>
459         {
460             var view = (View)bindable;
461             return view.IsKeyboardFocusable();
462         });
463         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
464         [EditorBrowsable(EditorBrowsableState.Never)]
465         public static readonly BindableProperty Size2DProperty = BindableProperty.Create("Size2D", typeof(Size2D), typeof(View), new Size2D(0,0), propertyChanged: (bindable, oldValue, newValue) =>
466         {
467             var view = (View)bindable;
468             if (newValue != null)
469             {
470                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE, new Tizen.NUI.PropertyValue( new Size((Size2D)newValue)));
471             }
472         },
473         defaultValueCreator:(bindable) =>
474         {
475             var view = (View)bindable;
476             Size temp = new Size(0.0f, 0.0f, 0.0f);
477             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE).Get(temp);
478             Size2D size = new Size2D((int)temp.Width, (int)temp.Height);
479             return size;
480         });
481         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
482         [EditorBrowsable(EditorBrowsableState.Never)]
483         public static readonly BindableProperty OpacityProperty = BindableProperty.Create("Opacity", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
484         {
485             var view = (View)bindable;
486             if (newValue != null)
487             {
488                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.OPACITY, new Tizen.NUI.PropertyValue((float)newValue));
489             }
490         },
491         defaultValueCreator:(bindable) =>
492         {
493             var view = (View)bindable;
494             float temp = 0.0f;
495             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.OPACITY).Get(out temp);
496             return temp;
497         });
498         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
499         [EditorBrowsable(EditorBrowsableState.Never)]
500         public static readonly BindableProperty Position2DProperty = BindableProperty.Create("Position2D", typeof(Position2D), typeof(View), new Position2D(0,0), propertyChanged: (bindable, oldValue, newValue) =>
501         {
502             var view = (View)bindable;
503             if (newValue != null)
504             {
505                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION, new Tizen.NUI.PropertyValue( new Position((Position2D)newValue) ));
506             }
507         },
508         defaultValueCreator:(bindable) =>
509         {
510             var view = (View)bindable;
511             Position temp = new Position(0.0f, 0.0f, 0.0f);
512             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION).Get(temp);
513             return new Position2D(temp);
514         });
515         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
516         [EditorBrowsable(EditorBrowsableState.Never)]
517         public static readonly BindableProperty PositionUsesPivotPointProperty = BindableProperty.Create("PositionUsesPivotPoint", typeof(bool), typeof(View), true, propertyChanged: (bindable, oldValue, newValue) =>
518         {
519             var view = (View)bindable;
520             if (newValue != null)
521             {
522                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_USES_ANCHOR_POINT, new Tizen.NUI.PropertyValue((bool)newValue));
523             }
524         },
525         defaultValueCreator:(bindable) =>
526         {
527             var view = (View)bindable;
528             bool temp = false;
529             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_USES_ANCHOR_POINT).Get(out temp);
530             return temp;
531         });
532         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
533         [EditorBrowsable(EditorBrowsableState.Never)]
534         public static readonly BindableProperty SiblingOrderProperty = BindableProperty.Create("SiblingOrder", typeof(int), typeof(View), default(int), propertyChanged: (bindable, oldValue, newValue) =>
535         {
536             var view = (View)bindable;
537             int value;
538             if (newValue != null)
539             {
540                 value = (int)newValue;
541                 if(value < 0)
542                 {
543                     NUILog.Error("SiblingOrder should be bigger than 0 or equal to 0.");
544                     return;
545                 }
546                 var siblings = view.GetParent()?.Children;
547                 if (siblings != null)
548                 {
549                     int currentOrder = siblings.IndexOf(view);
550                     if (value != currentOrder)
551                     {
552                         if (value == 0) { view.LowerToBottom(); }
553                         else if (value < siblings.Count - 1)
554                         {
555                             if (value > currentOrder) { view.RaiseAbove(siblings[value]); }
556                             else { view.LowerBelow(siblings[value]); }
557                         }
558                         else { view.RaiseToTop(); }
559                     }
560                 }
561             }
562         },
563         defaultValueCreator:(bindable) =>
564         {
565             var view = (View)bindable;
566             var parentChildren = view.GetParent()?.Children;
567             int currentOrder = 0;
568             if (parentChildren != null)
569             {
570                 currentOrder = parentChildren.IndexOf(view);
571
572                 if (currentOrder < 0) { return 0; }
573                 else if (currentOrder < parentChildren.Count) { return currentOrder; }
574             }
575
576             return 0;
577         });
578         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
579         [EditorBrowsable(EditorBrowsableState.Never)]
580         public static readonly BindableProperty ParentOriginProperty = BindableProperty.Create("ParentOrigin", typeof(Position), typeof(View), Position.ParentOriginTopLeft, propertyChanged: (bindable, oldValue, newValue) =>
581         {
582             var view = (View)bindable;
583             if (newValue != null)
584             {
585                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.PARENT_ORIGIN, new Tizen.NUI.PropertyValue((Position)newValue));
586             }
587         },
588         defaultValueCreator:(bindable) =>
589         {
590             var view = (View)bindable;
591             Position temp = new Position(0.0f, 0.0f, 0.0f);
592             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.PARENT_ORIGIN).Get(temp);
593             return temp;
594         }
595         );
596         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
597         [EditorBrowsable(EditorBrowsableState.Never)]
598         public static readonly BindableProperty PivotPointProperty = BindableProperty.Create("PivotPoint", typeof(Position), typeof(View), Position.PivotPointTopLeft, propertyChanged: (bindable, oldValue, newValue) =>
599         {
600             var view = (View)bindable;
601             if (newValue != null)
602             {
603                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.ANCHOR_POINT, new Tizen.NUI.PropertyValue((Position)newValue));
604             }
605         },
606         defaultValueCreator:(bindable) =>
607         {
608             var view = (View)bindable;
609             Position temp = new Position(0.0f, 0.0f, 0.0f);
610             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.ANCHOR_POINT).Get(temp);
611             return temp;
612         });
613         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
614         [EditorBrowsable(EditorBrowsableState.Never)]
615         public static readonly BindableProperty SizeWidthProperty = BindableProperty.Create("SizeWidth", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
616         {
617             var view = (View)bindable;
618             if (newValue != null)
619             {
620                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_WIDTH, new Tizen.NUI.PropertyValue((float)newValue));
621             }
622         },
623         defaultValueCreator:(bindable) =>
624         {
625             var view = (View)bindable;
626             float temp = 0.0f;
627             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_WIDTH).Get(out temp);
628             return temp;
629         });
630         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
631         [EditorBrowsable(EditorBrowsableState.Never)]
632         public static readonly BindableProperty SizeHeightProperty = BindableProperty.Create("SizeHeight", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
633         {
634             var view = (View)bindable;
635             if (newValue != null)
636             {
637                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_HEIGHT, new Tizen.NUI.PropertyValue((float)newValue));
638             }
639         },
640         defaultValueCreator:(bindable) =>
641         {
642             var view = (View)bindable;
643             float temp = 0.0f;
644             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_HEIGHT).Get(out temp);
645             return temp;
646         });
647         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
648         [EditorBrowsable(EditorBrowsableState.Never)]
649         public static readonly BindableProperty PositionProperty = BindableProperty.Create("Position", typeof(Position), typeof(View), Position.Zero, propertyChanged: (bindable, oldValue, newValue) =>
650         {
651             var view = (View)bindable;
652             if (newValue != null)
653             {
654                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION, new Tizen.NUI.PropertyValue((Position)newValue));
655             }
656         },
657         defaultValueCreator:(bindable) =>
658         {
659             var view = (View)bindable;
660             Position temp = new Position(0.0f, 0.0f, 0.0f);
661             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION).Get(temp);
662             return temp;
663         });
664         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
665         [EditorBrowsable(EditorBrowsableState.Never)]
666         public static readonly BindableProperty PositionXProperty = BindableProperty.Create("PositionX", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
667         {
668             var view = (View)bindable;
669             if (newValue != null)
670             {
671                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_X, new Tizen.NUI.PropertyValue((float)newValue));
672             }
673         },
674         defaultValueCreator:(bindable) =>
675         {
676             var view = (View)bindable;
677             float temp = 0.0f;
678             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_X).Get(out temp);
679             return temp;
680         });
681         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
682         [EditorBrowsable(EditorBrowsableState.Never)]
683         public static readonly BindableProperty PositionYProperty = BindableProperty.Create("PositionY", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
684         {
685             var view = (View)bindable;
686             if (newValue != null)
687             {
688                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_Y, new Tizen.NUI.PropertyValue((float)newValue));
689             }
690         },
691         defaultValueCreator:(bindable) =>
692         {
693             var view = (View)bindable;
694             float temp = 0.0f;
695             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_Y).Get(out temp);
696             return temp;
697         });
698         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
699         [EditorBrowsable(EditorBrowsableState.Never)]
700         public static readonly BindableProperty PositionZProperty = BindableProperty.Create("PositionZ", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
701         {
702             var view = (View)bindable;
703             if (newValue != null)
704             {
705                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.POSITION_Z, new Tizen.NUI.PropertyValue((float)newValue));
706             }
707         },
708         defaultValueCreator:(bindable) =>
709         {
710             var view = (View)bindable;
711             float temp = 0.0f;
712             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.POSITION_Z).Get(out temp);
713             return temp;
714         });
715         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
716         [EditorBrowsable(EditorBrowsableState.Never)]
717         public static readonly BindableProperty OrientationProperty = BindableProperty.Create("Orientation", typeof(Rotation), typeof(View), new Rotation(new Radian(0), Vector3.ZAxis), propertyChanged: (bindable, oldValue, newValue) =>
718         {
719             var view = (View)bindable;
720             if (newValue != null)
721             {
722                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.ORIENTATION, new Tizen.NUI.PropertyValue((Rotation)newValue));
723             }
724         },
725         defaultValueCreator:(bindable) =>
726         {
727             var view = (View)bindable;
728             Rotation temp = new Rotation();
729             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.ORIENTATION).Get(temp);
730             return temp;
731         });
732         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
733         [EditorBrowsable(EditorBrowsableState.Never)]
734         public static readonly BindableProperty ScaleProperty = BindableProperty.Create("Scale", typeof(Vector3), typeof(View), Vector3.Zero, propertyChanged: (bindable, oldValue, newValue) =>
735         {
736             var view = (View)bindable;
737             if (newValue != null)
738             {
739                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE, new Tizen.NUI.PropertyValue((Vector3)newValue));
740             }
741         },
742         defaultValueCreator:(bindable) =>
743         {
744             var view = (View)bindable;
745             Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
746             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE).Get(temp);
747             return temp;
748         });
749         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
750         [EditorBrowsable(EditorBrowsableState.Never)]
751         public static readonly BindableProperty ScaleXProperty = BindableProperty.Create("ScaleX", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
752         {
753             var view = (View)bindable;
754             if (newValue != null)
755             {
756                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE_X, new Tizen.NUI.PropertyValue((float)newValue));
757             }
758         },
759         defaultValueCreator:(bindable) =>
760         {
761             var view = (View)bindable;
762             float temp = 0.0f;
763             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE_X).Get(out temp);
764             return temp;
765         });
766         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
767         [EditorBrowsable(EditorBrowsableState.Never)]
768         public static readonly BindableProperty ScaleYProperty = BindableProperty.Create("ScaleY", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
769         {
770             var view = (View)bindable;
771             if (newValue != null)
772             {
773                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE_Y, new Tizen.NUI.PropertyValue((float)newValue));
774             }
775         },
776         defaultValueCreator:(bindable) =>
777         {
778             var view = (View)bindable;
779             float temp = 0.0f;
780             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE_Y).Get(out temp);
781             return temp;
782         });
783         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
784         [EditorBrowsable(EditorBrowsableState.Never)]
785         public static readonly BindableProperty ScaleZProperty = BindableProperty.Create("ScaleZ", typeof(float), typeof(View), default(float), propertyChanged: (bindable, oldValue, newValue) =>
786         {
787             var view = (View)bindable;
788             if (newValue != null)
789             {
790                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SCALE_Z, new Tizen.NUI.PropertyValue((float)newValue));
791             }
792         },
793         defaultValueCreator:(bindable) =>
794         {
795             var view = (View)bindable;
796             float temp = 0.0f;
797             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SCALE_Z).Get(out temp);
798             return temp;
799         });
800         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
801         [EditorBrowsable(EditorBrowsableState.Never)]
802         public static readonly BindableProperty NameProperty = BindableProperty.Create("Name", typeof(string), typeof(View), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
803         {
804             var view = (View)bindable;
805             if (newValue != null)
806             {
807                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.NAME, new Tizen.NUI.PropertyValue((string)newValue));
808             }
809         },
810         defaultValueCreator:(bindable) =>
811         {
812             var view = (View)bindable;
813             string temp;
814             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.NAME).Get(out temp);
815             return temp;
816         });
817         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
818         [EditorBrowsable(EditorBrowsableState.Never)]
819         public static readonly BindableProperty SensitiveProperty = BindableProperty.Create("Sensitive", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
820         {
821             var view = (View)bindable;
822             if (newValue != null)
823             {
824                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SENSITIVE, new Tizen.NUI.PropertyValue((bool)newValue));
825             }
826         },
827         defaultValueCreator:(bindable) =>
828         {
829             var view = (View)bindable;
830             bool temp = false;
831             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SENSITIVE).Get(out temp);
832             return temp;
833         });
834         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
835         [EditorBrowsable(EditorBrowsableState.Never)]
836         public static readonly BindableProperty LeaveRequiredProperty = BindableProperty.Create("LeaveRequired", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
837         {
838             var view = (View)bindable;
839             if (newValue != null)
840             {
841                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.LEAVE_REQUIRED, new Tizen.NUI.PropertyValue((bool)newValue));
842             }
843         },
844         defaultValueCreator:(bindable) =>
845         {
846             var view = (View)bindable;
847             bool temp = false;
848             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.LEAVE_REQUIRED).Get(out temp);
849             return temp;
850         });
851         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
852         [EditorBrowsable(EditorBrowsableState.Never)]
853         public static readonly BindableProperty InheritOrientationProperty = BindableProperty.Create("InheritOrientation", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
854         {
855             var view = (View)bindable;
856             if (newValue != null)
857             {
858                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_ORIENTATION, new Tizen.NUI.PropertyValue((bool)newValue));
859             }
860         },
861         defaultValueCreator:(bindable) =>
862         {
863             var view = (View)bindable;
864             bool temp = false;
865             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_ORIENTATION).Get(out temp);
866             return temp;
867         });
868         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
869         [EditorBrowsable(EditorBrowsableState.Never)]
870         public static readonly BindableProperty InheritScaleProperty = BindableProperty.Create("InheritScale", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
871         {
872             var view = (View)bindable;
873             if (newValue != null)
874             {
875                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_SCALE, new Tizen.NUI.PropertyValue((bool)newValue));
876             }
877         },
878         defaultValueCreator:(bindable) =>
879         {
880             var view = (View)bindable;
881             bool temp = false;
882             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_SCALE).Get(out temp);
883             return temp;
884         });
885         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
886         [EditorBrowsable(EditorBrowsableState.Never)]
887         public static readonly BindableProperty DrawModeProperty = BindableProperty.Create("DrawMode", typeof(DrawModeType), typeof(View), DrawModeType.Normal, propertyChanged: (bindable, oldValue, newValue) =>
888         {
889             var view = (View)bindable;
890             if (newValue != null)
891             {
892                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.DRAW_MODE, new Tizen.NUI.PropertyValue((int)newValue));
893             }
894         },
895         defaultValueCreator:(bindable) =>
896         {
897             var view = (View)bindable;
898             string temp;
899             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.DRAW_MODE).Get(out temp) == false)
900             {
901                 NUILog.Error("DrawMode get error!");
902             }
903             switch (temp)
904             {
905                 case "NORMAL": return DrawModeType.Normal;
906                 case "OVERLAY_2D": return DrawModeType.Overlay2D;
907                 case "STENCIL": return DrawModeType.Stencil;
908                 default: return DrawModeType.Normal;
909             }
910         });
911         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
912         [EditorBrowsable(EditorBrowsableState.Never)]
913         public static readonly BindableProperty SizeModeFactorProperty = BindableProperty.Create("SizeModeFactor", typeof(Vector3), typeof(View), Vector3.Zero, propertyChanged: (bindable, oldValue, newValue) =>
914         {
915             var view = (View)bindable;
916             if (newValue != null)
917             {
918                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_MODE_FACTOR, new Tizen.NUI.PropertyValue((Vector3)newValue));
919             }
920         },
921         defaultValueCreator:(bindable) =>
922         {
923             var view = (View)bindable;
924             Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
925             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_MODE_FACTOR).Get(temp);
926             return temp;
927         });
928         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
929         [EditorBrowsable(EditorBrowsableState.Never)]
930         public static readonly BindableProperty WidthResizePolicyProperty = BindableProperty.Create("WidthResizePolicy", typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (bindable, oldValue, newValue) =>
931         {
932             var view = (View)bindable;
933             if (newValue != null)
934             {
935                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.WIDTH_RESIZE_POLICY, new Tizen.NUI.PropertyValue((int)newValue));
936             }
937         },
938         defaultValueCreator:(bindable) =>
939         {
940             var view = (View)bindable;
941             string temp;
942             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.WIDTH_RESIZE_POLICY).Get(out temp) == false)
943             {
944                 NUILog.Error("WidthResizePolicy get error!");
945             }
946             switch (temp)
947             {
948                 case "FIXED": return ResizePolicyType.Fixed;
949                 case "USE_NATURAL_SIZE": return ResizePolicyType.UseNaturalSize;
950                 case "FILL_TO_PARENT": return ResizePolicyType.FillToParent;
951                 case "SIZE_RELATIVE_TO_PARENT": return ResizePolicyType.SizeRelativeToParent;
952                 case "SIZE_FIXED_OFFSET_FROM_PARENT": return ResizePolicyType.SizeFixedOffsetFromParent;
953                 case "FIT_TO_CHILDREN": return ResizePolicyType.FitToChildren;
954                 case "DIMENSION_DEPENDENCY": return ResizePolicyType.DimensionDependency;
955                 case "USE_ASSIGNED_SIZE": return ResizePolicyType.UseAssignedSize;
956                 default: return ResizePolicyType.Fixed;
957             }
958         });
959         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
960         [EditorBrowsable(EditorBrowsableState.Never)]
961         public static readonly BindableProperty HeightResizePolicyProperty = BindableProperty.Create("HeightResizePolicy", typeof(ResizePolicyType), typeof(View), ResizePolicyType.Fixed, propertyChanged: (bindable, oldValue, newValue) =>
962         {
963             var view = (View)bindable;
964             if (newValue != null)
965             {
966                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.HEIGHT_RESIZE_POLICY, new Tizen.NUI.PropertyValue((int)newValue));
967             }
968         },
969         defaultValueCreator:(bindable) =>
970         {
971             var view = (View)bindable;
972             string temp;
973             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.HEIGHT_RESIZE_POLICY).Get(out temp) == false)
974             {
975                 NUILog.Error("HeightResizePolicy get error!");
976             }
977             switch (temp)
978             {
979                 case "FIXED": return ResizePolicyType.Fixed;
980                 case "USE_NATURAL_SIZE":  return ResizePolicyType.UseNaturalSize;
981                 case "FILL_TO_PARENT": return ResizePolicyType.FillToParent;
982                 case "SIZE_RELATIVE_TO_PARENT": return ResizePolicyType.SizeRelativeToParent;
983                 case "SIZE_FIXED_OFFSET_FROM_PARENT": return ResizePolicyType.SizeFixedOffsetFromParent;
984                 case "FIT_TO_CHILDREN": return ResizePolicyType.FitToChildren;
985                 case "DIMENSION_DEPENDENCY": return ResizePolicyType.DimensionDependency;
986                 case "USE_ASSIGNED_SIZE": return ResizePolicyType.UseAssignedSize;
987                 default: return ResizePolicyType.Fixed;
988             }
989         });
990         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
991         [EditorBrowsable(EditorBrowsableState.Never)]
992         public static readonly BindableProperty SizeScalePolicyProperty = BindableProperty.Create("SizeScalePolicy", typeof(SizeScalePolicyType), typeof(View), SizeScalePolicyType.UseSizeSet, propertyChanged: (bindable, oldValue, newValue) =>
993         {
994             var view = (View)bindable;
995             string valueToString = "";
996             if (newValue != null)
997             {
998                 switch ((SizeScalePolicyType)newValue)
999                 {
1000                     case SizeScalePolicyType.UseSizeSet: { valueToString = "USE_SIZE_SET"; break; }
1001                     case SizeScalePolicyType.FitWithAspectRatio: { valueToString = "FIT_WITH_ASPECT_RATIO"; break; }
1002                     case SizeScalePolicyType.FillWithAspectRatio: { valueToString = "FILL_WITH_ASPECT_RATIO"; break; }
1003                     default: { valueToString = "USE_SIZE_SET"; break; }
1004                 }
1005                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE_SCALE_POLICY, new Tizen.NUI.PropertyValue(valueToString));
1006             }
1007         },
1008         defaultValueCreator:(bindable) =>
1009         {
1010             var view = (View)bindable;
1011             string temp;
1012             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE_SCALE_POLICY).Get(out temp) == false)
1013             {
1014                 NUILog.Error("SizeScalePolicy get error!");
1015             }
1016             switch (temp)
1017             {
1018                 case "USE_SIZE_SET": return SizeScalePolicyType.UseSizeSet;
1019                 case "FIT_WITH_ASPECT_RATIO": return SizeScalePolicyType.FitWithAspectRatio;
1020                 case "FILL_WITH_ASPECT_RATIO": return SizeScalePolicyType.FillWithAspectRatio;
1021                 default: return SizeScalePolicyType.UseSizeSet;
1022             }
1023         });
1024         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1025         [EditorBrowsable(EditorBrowsableState.Never)]
1026         public static readonly BindableProperty WidthForHeightProperty = BindableProperty.Create("WidthForHeight", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1027         {
1028             var view = (View)bindable;
1029             if (newValue != null)
1030             {
1031                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.WIDTH_FOR_HEIGHT, new Tizen.NUI.PropertyValue((bool)newValue));
1032             }
1033         },
1034         defaultValueCreator:(bindable) =>
1035         {
1036             var view = (View)bindable;
1037             bool temp = false;
1038             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.WIDTH_FOR_HEIGHT).Get(out temp);
1039             return temp;
1040         });
1041         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1042         [EditorBrowsable(EditorBrowsableState.Never)]
1043         public static readonly BindableProperty HeightForWidthProperty = BindableProperty.Create("HeightForWidth", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1044         {
1045             var view = (View)bindable;
1046             if (newValue != null)
1047             {
1048                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.HEIGHT_FOR_WIDTH, new Tizen.NUI.PropertyValue((bool)newValue));
1049             }
1050         },
1051         defaultValueCreator:(bindable) =>
1052         {
1053             var view = (View)bindable;
1054             bool temp = false;
1055             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.HEIGHT_FOR_WIDTH).Get(out temp);
1056             return temp;
1057         });
1058         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1059         [EditorBrowsable(EditorBrowsableState.Never)]
1060         public static readonly BindableProperty PaddingProperty = BindableProperty.Create("Padding", typeof(Extents), typeof(View), new Extents(0,0,0,0), propertyChanged: (bindable, oldValue, newValue) =>
1061         {
1062             var view = (View)bindable;
1063             if (newValue != null)
1064             {
1065                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.PADDING, new Tizen.NUI.PropertyValue((Extents)newValue));
1066             }
1067         },
1068         defaultValueCreator:(bindable) =>
1069         {
1070             var view = (View)bindable;
1071             Extents temp = new Extents(0, 0, 0, 0);
1072             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.PADDING).Get(temp);
1073             return temp;
1074         });
1075         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1076         [EditorBrowsable(EditorBrowsableState.Never)]
1077         public static readonly BindableProperty SizeProperty = BindableProperty.Create("Size", typeof(Size), typeof(View), new Size(0,0,0), propertyChanged: (bindable, oldValue, newValue) =>
1078         {
1079             var view = (View)bindable;
1080             if (newValue != null)
1081             {
1082                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.SIZE, new Tizen.NUI.PropertyValue((Size)newValue));
1083             }
1084         },
1085         defaultValueCreator: (bindable) => {
1086             var view = (View)bindable;
1087             Size temp = new Size(0, 0, 0);
1088             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.SIZE).Get(temp);
1089             return temp;
1090         });
1091         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1092         [EditorBrowsable(EditorBrowsableState.Never)]
1093         public static readonly BindableProperty MinimumSizeProperty = BindableProperty.Create("MinimumSize", typeof(Size2D), typeof(View), new Size2D(0,0), propertyChanged: (bindable, oldValue, newValue) =>
1094         {
1095             var view = (View)bindable;
1096             if (newValue != null)
1097             {
1098                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.MINIMUM_SIZE, new Tizen.NUI.PropertyValue((Size2D)newValue));
1099             }
1100         },
1101         defaultValueCreator:(bindable) =>
1102         {
1103             var view = (View)bindable;
1104             Size2D temp = new Size2D(0, 0);
1105             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.MINIMUM_SIZE).Get(temp);
1106             return temp;
1107         });
1108         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1109         [EditorBrowsable(EditorBrowsableState.Never)]
1110         public static readonly BindableProperty MaximumSizeProperty = BindableProperty.Create("MaximumSize", typeof(Size2D), typeof(View), new Size2D(0,0), propertyChanged: (bindable, oldValue, newValue) =>
1111         {
1112             var view = (View)bindable;
1113             if (newValue != null)
1114             {
1115                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.MAXIMUM_SIZE, new Tizen.NUI.PropertyValue((Size2D)newValue));
1116             }
1117         },
1118         defaultValueCreator:(bindable) =>
1119         {
1120             var view = (View)bindable;
1121             Size2D temp = new Size2D(0, 0);
1122             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.MAXIMUM_SIZE).Get(temp);
1123             return temp;
1124         });
1125         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1126         [EditorBrowsable(EditorBrowsableState.Never)]
1127         public static readonly BindableProperty InheritPositionProperty = BindableProperty.Create("InheritPosition", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1128         {
1129             var view = (View)bindable;
1130             if (newValue != null)
1131             {
1132                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_POSITION, new Tizen.NUI.PropertyValue((bool)newValue));
1133             }
1134         },
1135         defaultValueCreator:(bindable) =>
1136         {
1137             var view = (View)bindable;
1138             bool temp = false;
1139             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_POSITION).Get(out temp);
1140             return temp;
1141         });
1142         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1143         [EditorBrowsable(EditorBrowsableState.Never)]
1144         public static readonly BindableProperty ClippingModeProperty = BindableProperty.Create("ClippingMode", typeof(ClippingModeType), typeof(View), ClippingModeType.Disabled, propertyChanged: (bindable, oldValue, newValue) =>
1145         {
1146             var view = (View)bindable;
1147             if (newValue != null)
1148             {
1149                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.CLIPPING_MODE, new Tizen.NUI.PropertyValue((int)newValue));
1150             }
1151         },
1152         defaultValueCreator:(bindable) =>
1153         {
1154             var view = (View)bindable;
1155             int temp = 0;
1156             if (Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.CLIPPING_MODE).Get(out temp) == false)
1157             {
1158                 NUILog.Error("ClippingMode get error!");
1159             }
1160             return (ClippingModeType)temp;
1161         });
1162         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1163         [EditorBrowsable(EditorBrowsableState.Never)]
1164         public static readonly BindableProperty InheritLayoutDirectionProperty = BindableProperty.Create("InheritLayoutDirection", typeof(bool), typeof(View), false, propertyChanged: (bindable, oldValue, newValue) =>
1165         {
1166             var view = (View)bindable;
1167             if (newValue != null)
1168             {
1169                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.INHERIT_LAYOUT_DIRECTION, new Tizen.NUI.PropertyValue((bool)newValue));
1170             }
1171         },
1172         defaultValueCreator:(bindable) =>
1173         {
1174             var view = (View)bindable;
1175             bool temp = false;
1176             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.INHERIT_LAYOUT_DIRECTION).Get(out temp);
1177             return temp;
1178         });
1179         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1180         [EditorBrowsable(EditorBrowsableState.Never)]
1181         public static readonly BindableProperty LayoutDirectionProperty = BindableProperty.Create("LayoutDirection", typeof(ViewLayoutDirectionType), typeof(View), ViewLayoutDirectionType.LTR, propertyChanged: (bindable, oldValue, newValue) =>
1182         {
1183             var view = (View)bindable;
1184             if (newValue != null)
1185             {
1186                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.LAYOUT_DIRECTION, new Tizen.NUI.PropertyValue((int)newValue));
1187             }
1188         },
1189         defaultValueCreator:(bindable) =>
1190         {
1191             var view = (View)bindable;
1192             int temp;
1193             if (false == Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.LAYOUT_DIRECTION).Get(out temp))
1194             {
1195                 NUILog.Error("LAYOUT_DIRECTION get error!");
1196             }
1197             return (ViewLayoutDirectionType)temp;
1198         });
1199         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1200         [EditorBrowsable(EditorBrowsableState.Never)]
1201         public static readonly BindableProperty MarginProperty = BindableProperty.Create("Margin", typeof(Extents), typeof(View), new Extents(0,0,0,0), propertyChanged: (bindable, oldValue, newValue) =>
1202         {
1203             var view = (View)bindable;
1204             if (newValue != null)
1205             {
1206                 Tizen.NUI.Object.SetProperty(view.swigCPtr, View.Property.MARGIN, new Tizen.NUI.PropertyValue((Extents)newValue));
1207             }
1208         },
1209         defaultValueCreator:(bindable) =>
1210         {
1211             var view = (View)bindable;
1212             Extents temp = new Extents(0, 0, 0, 0);
1213             Tizen.NUI.Object.GetProperty(view.swigCPtr, View.Property.MARGIN).Get(temp);
1214             return temp;
1215         });
1216         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1217         [EditorBrowsable(EditorBrowsableState.Never)]
1218         public static readonly BindableProperty StyleProperty = BindableProperty.Create("Style", typeof(Style), typeof(View), default(Style),
1219     propertyChanged: (bindable, oldvalue, newvalue) => ((View)bindable)._mergedStyle.Style = (Style)newvalue);
1220
1221
1222         private global::System.Runtime.InteropServices.HandleRef swigCPtr;
1223
1224         private bool layoutSet = false; // Flag to indicate if SetLayout was called or View was automatically given a Layout
1225
1226         internal View(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.View_SWIGUpcast(cPtr), cMemoryOwn)
1227         {
1228             swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
1229             if (HasBody())
1230             {
1231                 PositionUsesPivotPoint = false;
1232             }
1233             _mergedStyle = new MergedStyle(GetType(), this);
1234         }
1235
1236         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(View obj)
1237         {
1238             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
1239         }
1240
1241         /// <summary>
1242         /// Event argument passed through ChildAdded event
1243         /// </summary>
1244         /// <since_tizen> 5 </since_tizen>
1245         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1246         [EditorBrowsable(EditorBrowsableState.Never)]
1247         public class ChildAddedEventArgs : EventArgs
1248         {
1249             /// <summary>
1250             /// Added child View at moment
1251             /// </summary>
1252             /// <since_tizen> 5 </since_tizen>
1253             public View Added { get; set; }
1254         }
1255
1256         /// <summary>
1257         /// Event when a child is added
1258         /// </summary>
1259         /// <since_tizen> 5 </since_tizen>
1260         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1261         [EditorBrowsable(EditorBrowsableState.Never)]
1262         public new event EventHandler<ChildAddedEventArgs> ChildAdded;
1263
1264         // From Container Base class
1265         /// <summary>
1266         /// Adds a child view to this view.
1267         /// </summary>
1268         /// <seealso cref="Container.Add" />
1269         /// <since_tizen> 4 </since_tizen>
1270         public override void Add(View child)
1271         {
1272             if (null == child)
1273             {
1274                 Tizen.Log.Fatal("NUI", "Child is null");
1275                 return;
1276             }
1277
1278             Container oldParent = child.Parent;
1279             if (oldParent != this)
1280             {
1281                 if (oldParent != null)
1282                 {
1283                     oldParent.Remove(child);
1284                 }
1285
1286                 if (layoutSet == true && child.Layout == null) // Only give children a layout if parent an explicit container
1287                 {
1288                     LayoutItem layoutItem = new LayoutItem();
1289                     child.Layout = layoutItem;
1290                 }
1291
1292                 if (Layout)
1293                 {
1294                     Layout.LayoutChildren.Add(child.Layout);
1295                 }
1296
1297                 NDalicPINVOKE.Actor_Add(swigCPtr, View.getCPtr(child));
1298                 if (NDalicPINVOKE.SWIGPendingException.Pending)
1299                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1300                 Children.Add(child);
1301
1302                 if (ChildAdded != null)
1303                 {
1304                     ChildAddedEventArgs e = new ChildAddedEventArgs
1305                     {
1306                         Added = child
1307                     };
1308                     ChildAdded(this, e);
1309                 }
1310             }
1311         }
1312
1313         /// <summary>
1314         /// Event argument passed through ChildRemoved event
1315         /// </summary>
1316         /// <since_tizen> 5 </since_tizen>
1317         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1318         [EditorBrowsable(EditorBrowsableState.Never)]
1319         public class ChildRemovedEventArgs : EventArgs
1320         {
1321             /// <summary>
1322             /// Removed child View at moment
1323             /// </summary>
1324             /// <since_tizen> 5 </since_tizen>
1325             public View Removed { get; set; }
1326         }
1327
1328         /// <summary>
1329         /// Event when a child is removed
1330         /// </summary>
1331         /// <since_tizen> 5 </since_tizen>
1332         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
1333         [EditorBrowsable(EditorBrowsableState.Never)]
1334         public new event EventHandler<ChildRemovedEventArgs> ChildRemoved;
1335
1336
1337         /// <summary>
1338         /// Removes a child view from this View. If the view was not a child of this view, this is a no-op.
1339         /// </summary>
1340         /// <seealso cref="Container.Remove" />
1341         /// <since_tizen> 4 </since_tizen>
1342         public override void Remove(View child)
1343         {
1344             NDalicPINVOKE.Actor_Remove(swigCPtr, View.getCPtr(child));
1345             if (NDalicPINVOKE.SWIGPendingException.Pending)
1346                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1347
1348             Children.Remove(child);
1349             if (Layout)
1350             {
1351                 if(child.Layout)
1352                 {
1353                     Layout.LayoutChildren.Remove(child.Layout);
1354                 }
1355             }
1356
1357             if (ChildRemoved != null)
1358             {
1359                 ChildRemovedEventArgs e = new ChildRemovedEventArgs
1360                 {
1361                     Removed = child
1362                 };
1363                 ChildRemoved(this, e);
1364             }
1365         }
1366
1367         /// <summary>
1368         /// Retrieves a child view by index.
1369         /// </summary>
1370         /// <seealso cref="Container.GetChildAt" />
1371         /// <since_tizen> 4 </since_tizen>
1372         public override View GetChildAt(uint index)
1373         {
1374             if (index < Children.Count)
1375             {
1376                 return Children[Convert.ToInt32(index)];
1377             }
1378             else
1379             {
1380                 return null;
1381             }
1382         }
1383
1384         /// <summary>
1385         /// Retrieves the number of children held by the view.
1386         /// </summary>
1387         /// <seealso cref="Container.GetChildCount" />
1388         /// <since_tizen> 4 </since_tizen>
1389         public override uint GetChildCount()
1390         {
1391             return Convert.ToUInt32(Children.Count);
1392         }
1393
1394         /// <summary>
1395         /// Gets the views parent.
1396         /// </summary>
1397         /// <seealso cref="Container.GetParent()" />
1398         /// <since_tizen> 4 </since_tizen>
1399         public override Container GetParent()
1400         {
1401             //to fix memory leak issue, match the handle count with native side.
1402             IntPtr cPtr = NDalicPINVOKE.Actor_GetParent(swigCPtr);
1403             HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
1404             BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle);
1405             NDalicPINVOKE.delete_BaseHandle(CPtr);
1406             CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
1407
1408             if (NDalicPINVOKE.SWIGPendingException.Pending)
1409                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1410
1411             return basehandle as Container;
1412         }
1413
1414         internal bool IsTopLevelView()
1415         {
1416             if (GetParent() is Layer)
1417             {
1418                 return true;
1419             }
1420             return false;
1421         }
1422
1423         /// <summary>
1424         /// you can override it to clean-up your own resources.
1425         /// </summary>
1426         /// <param name="type">DisposeTypes</param>
1427         /// <since_tizen> 3 </since_tizen>
1428         protected override void Dispose(DisposeTypes type)
1429         {
1430             if (disposed)
1431             {
1432                 return;
1433             }
1434
1435             if (type == DisposeTypes.Explicit)
1436             {
1437                 //Called by User
1438                 //Release your own managed resources here.
1439                 //You should release all of your own disposable objects here.
1440             }
1441
1442             //Release your own unmanaged resources here.
1443             //You should not access any managed member here except static instance.
1444             //because the execution order of Finalizes is non-deterministic.
1445             if (this != null)
1446             {
1447                 DisConnectFromSignals();
1448             }
1449
1450             if (swigCPtr.Handle != global::System.IntPtr.Zero)
1451             {
1452                 if (swigCMemOwn)
1453                 {
1454                     swigCMemOwn = false;
1455                     NDalicPINVOKE.delete_View(swigCPtr);
1456                 }
1457                 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
1458             }
1459
1460             base.Dispose(type);
1461
1462         }
1463
1464         private void DisConnectFromSignals()
1465         {
1466             // Save current CPtr.
1467             global::System.Runtime.InteropServices.HandleRef currentCPtr = swigCPtr;
1468
1469             // Use BaseHandle CPtr as current might have been deleted already in derived classes.
1470             swigCPtr = GetBaseHandleCPtrHandleRef;
1471
1472             if (_onRelayoutEventCallback != null)
1473             {
1474                 this.OnRelayoutSignal().Disconnect(_onRelayoutEventCallback);
1475             }
1476
1477             if (_offWindowEventCallback != null)
1478             {
1479                 this.OffWindowSignal().Disconnect(_offWindowEventCallback);
1480             }
1481
1482             if (_onWindowEventCallback != null)
1483             {
1484                 this.OnWindowSignal().Disconnect(_onWindowEventCallback);
1485             }
1486
1487             if (_wheelEventCallback != null)
1488             {
1489                 this.WheelEventSignal().Disconnect(_wheelEventCallback);
1490             }
1491
1492             if (_hoverEventCallback != null)
1493             {
1494                 this.HoveredSignal().Disconnect(_hoverEventCallback);
1495             }
1496
1497             if (_touchDataCallback != null)
1498             {
1499                 this.TouchSignal().Disconnect(_touchDataCallback);
1500             }
1501
1502             if (_ResourcesLoadedCallback != null)
1503             {
1504                 this.ResourcesLoadedSignal().Disconnect(_ResourcesLoadedCallback);
1505             }
1506
1507             if (_offWindowEventCallback != null)
1508             {
1509                 this.OffWindowSignal().Disconnect(_offWindowEventCallback);
1510             }
1511
1512             if (_onWindowEventCallback != null)
1513             {
1514                 this.OnWindowSignal().Disconnect(_onWindowEventCallback);
1515             }
1516
1517             if (_wheelEventCallback != null)
1518             {
1519                 this.WheelEventSignal().Disconnect(_wheelEventCallback);
1520             }
1521
1522             if (_hoverEventCallback != null)
1523             {
1524                 this.HoveredSignal().Disconnect(_hoverEventCallback);
1525             }
1526
1527             if (_touchDataCallback != null)
1528             {
1529                 this.TouchSignal().Disconnect(_touchDataCallback);
1530             }
1531
1532             if (_onRelayoutEventCallback != null)
1533             {
1534                 this.OnRelayoutSignal().Disconnect(_onRelayoutEventCallback);
1535             }
1536
1537             if (_keyCallback != null)
1538             {
1539                 this.KeyEventSignal().Disconnect(_keyCallback);
1540             }
1541
1542             if (_keyInputFocusLostCallback != null)
1543             {
1544                 this.KeyInputFocusLostSignal().Disconnect(_keyInputFocusLostCallback);
1545             }
1546
1547             if (_keyInputFocusGainedCallback != null)
1548             {
1549                 this.KeyInputFocusGainedSignal().Disconnect(_keyInputFocusGainedCallback);
1550             }
1551
1552             // BaseHandle CPtr is used in Registry and there is danger of deletion if we keep using it here.
1553             // Restore current CPtr.
1554             swigCPtr = currentCPtr;
1555         }
1556
1557         private EventHandler _keyInputFocusGainedEventHandler;
1558         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1559         private delegate void KeyInputFocusGainedCallbackType(IntPtr control);
1560         private KeyInputFocusGainedCallbackType _keyInputFocusGainedCallback;
1561
1562         /// <summary>
1563         /// An event for the KeyInputFocusGained signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
1564         /// The KeyInputFocusGained signal is emitted when the control gets the key input focus.<br />
1565         /// </summary>
1566         /// <since_tizen> 3 </since_tizen>
1567         public event EventHandler FocusGained
1568         {
1569             add
1570             {
1571                 if (_keyInputFocusGainedEventHandler == null)
1572                 {
1573                     _keyInputFocusGainedCallback = OnKeyInputFocusGained;
1574                     this.KeyInputFocusGainedSignal().Connect(_keyInputFocusGainedCallback);
1575                 }
1576
1577                 _keyInputFocusGainedEventHandler += value;
1578             }
1579
1580             remove
1581             {
1582                 _keyInputFocusGainedEventHandler -= value;
1583
1584                 if (_keyInputFocusGainedEventHandler == null && KeyInputFocusGainedSignal().Empty() == false)
1585                 {
1586                     this.KeyInputFocusGainedSignal().Disconnect(_keyInputFocusGainedCallback);
1587                 }
1588             }
1589         }
1590
1591         private void OnKeyInputFocusGained(IntPtr view)
1592         {
1593             if (_keyInputFocusGainedEventHandler != null)
1594             {
1595                 _keyInputFocusGainedEventHandler(this, null);
1596             }
1597         }
1598
1599
1600         private EventHandler _keyInputFocusLostEventHandler;
1601         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1602         private delegate void KeyInputFocusLostCallbackType(IntPtr control);
1603         private KeyInputFocusLostCallbackType _keyInputFocusLostCallback;
1604
1605         /// <summary>
1606         /// An event for the KeyInputFocusLost signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
1607         /// The KeyInputFocusLost signal is emitted when the control loses the key input focus.<br />
1608         /// </summary>
1609         /// <since_tizen> 3 </since_tizen>
1610         public event EventHandler FocusLost
1611         {
1612             add
1613             {
1614                 if (_keyInputFocusLostEventHandler == null)
1615                 {
1616                     _keyInputFocusLostCallback = OnKeyInputFocusLost;
1617                     this.KeyInputFocusLostSignal().Connect(_keyInputFocusLostCallback);
1618                 }
1619
1620                 _keyInputFocusLostEventHandler += value;
1621             }
1622
1623             remove
1624             {
1625                 _keyInputFocusLostEventHandler -= value;
1626
1627                 if (_keyInputFocusLostEventHandler == null && KeyInputFocusLostSignal().Empty() == false)
1628                 {
1629                     this.KeyInputFocusLostSignal().Disconnect(_keyInputFocusLostCallback);
1630                 }
1631             }
1632         }
1633
1634         private void OnKeyInputFocusLost(IntPtr view)
1635         {
1636             if (_keyInputFocusLostEventHandler != null)
1637             {
1638                 _keyInputFocusLostEventHandler(this, null);
1639             }
1640         }
1641
1642         /// <summary>
1643         /// Event arguments that passed via the KeyEvent signal.
1644         /// </summary>
1645         /// <since_tizen> 3 </since_tizen>
1646         public class KeyEventArgs : EventArgs
1647         {
1648             private Key _key;
1649
1650             /// <summary>
1651             /// Key - is the key sent to the view.
1652             /// </summary>
1653             /// <since_tizen> 3 </since_tizen>
1654             public Key Key
1655             {
1656                 get
1657                 {
1658                     return _key;
1659                 }
1660                 set
1661                 {
1662                     _key = value;
1663                 }
1664             }
1665         }
1666
1667         private EventHandlerWithReturnType<object, KeyEventArgs, bool> _keyEventHandler;
1668         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1669         private delegate bool KeyCallbackType(IntPtr control, IntPtr keyEvent);
1670         private KeyCallbackType _keyCallback;
1671
1672         /// <summary>
1673         /// An event for the KeyPressed signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
1674         /// The KeyPressed signal is emitted when the key event is received.<br />
1675         /// </summary>
1676         /// <since_tizen> 3 </since_tizen>
1677         public event EventHandlerWithReturnType<object, KeyEventArgs, bool> KeyEvent
1678         {
1679             add
1680             {
1681                 if (_keyEventHandler == null)
1682                 {
1683                     _keyCallback = OnKeyEvent;
1684                     this.KeyEventSignal().Connect(_keyCallback);
1685                 }
1686
1687                 _keyEventHandler += value;
1688             }
1689
1690             remove
1691             {
1692                 _keyEventHandler -= value;
1693
1694                 if (_keyEventHandler == null && KeyEventSignal().Empty() == false)
1695                 {
1696                     this.KeyEventSignal().Disconnect(_keyCallback);
1697                 }
1698             }
1699         }
1700
1701         private bool OnKeyEvent(IntPtr view, IntPtr keyEvent)
1702         {
1703             if (keyEvent == global::System.IntPtr.Zero)
1704             {
1705                 NUILog.Error("keyEvent should not be null!");
1706                 return true;
1707             }
1708
1709             KeyEventArgs e = new KeyEventArgs();
1710
1711             bool result = false;
1712
1713             e.Key = Tizen.NUI.Key.GetKeyFromPtr(keyEvent);
1714
1715             if (_keyEventHandler != null)
1716             {
1717                 Delegate[] delegateList = _keyEventHandler.GetInvocationList();
1718
1719                 // Oring the result of each callback.
1720                 foreach (EventHandlerWithReturnType<object, KeyEventArgs, bool> del in delegateList)
1721                 {
1722                     result |= del(this, e);
1723                 }
1724             }
1725
1726             return result;
1727         }
1728
1729         private EventHandler _onRelayoutEventHandler;
1730         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1731         private delegate void OnRelayoutEventCallbackType(IntPtr control);
1732         private OnRelayoutEventCallbackType _onRelayoutEventCallback;
1733
1734         /// <summary>
1735         /// An event for the OnRelayout signal which can be used to subscribe or unsubscribe the event handler.<br />
1736         /// The OnRelayout signal is emitted after the size has been set on the view during relayout.<br />
1737         /// </summary>
1738         /// <since_tizen> 3 </since_tizen>
1739         public event EventHandler Relayout
1740         {
1741             add
1742             {
1743                 if (_onRelayoutEventHandler == null)
1744                 {
1745                     _onRelayoutEventCallback = OnRelayout;
1746                     this.OnRelayoutSignal().Connect(_onRelayoutEventCallback);
1747                 }
1748
1749                 _onRelayoutEventHandler += value;
1750             }
1751
1752             remove
1753             {
1754                 _onRelayoutEventHandler -= value;
1755
1756                 if (_onRelayoutEventHandler == null && OnRelayoutSignal().Empty() == false)
1757                 {
1758                     this.OnRelayoutSignal().Disconnect(_onRelayoutEventCallback);
1759                 }
1760
1761             }
1762         }
1763
1764         // Callback for View OnRelayout signal
1765         private void OnRelayout(IntPtr data)
1766         {
1767             if (_onRelayoutEventHandler != null)
1768             {
1769                 _onRelayoutEventHandler(this, null);
1770             }
1771         }
1772
1773         /// <summary>
1774         /// Event arguments that passed via the touch signal.
1775         /// </summary>
1776         /// <since_tizen> 3 </since_tizen>
1777         public class TouchEventArgs : EventArgs
1778         {
1779             private Touch _touch;
1780
1781             /// <summary>
1782             /// Touch - contains the information of touch points.
1783             /// </summary>
1784             /// <since_tizen> 3 </since_tizen>
1785             public Touch Touch
1786             {
1787                 get
1788                 {
1789                     return _touch;
1790                 }
1791                 set
1792                 {
1793                     _touch = value;
1794                 }
1795             }
1796         }
1797
1798         private EventHandlerWithReturnType<object, TouchEventArgs, bool> _touchDataEventHandler;
1799         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1800         private delegate bool TouchDataCallbackType(IntPtr view, IntPtr touchData);
1801         private TouchDataCallbackType _touchDataCallback;
1802
1803         /// <summary>
1804         /// An event for the touched signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
1805         /// The touched signal is emitted when the touch input is received.<br />
1806         /// </summary>
1807         /// <since_tizen> 3 </since_tizen>
1808         public event EventHandlerWithReturnType<object, TouchEventArgs, bool> TouchEvent
1809         {
1810             add
1811             {
1812                 if (_touchDataEventHandler == null)
1813                 {
1814                     _touchDataCallback = OnTouch;
1815                     this.TouchSignal().Connect(_touchDataCallback);
1816                 }
1817
1818                 _touchDataEventHandler += value;
1819             }
1820
1821             remove
1822             {
1823                 _touchDataEventHandler -= value;
1824
1825                 if (_touchDataEventHandler == null && TouchSignal().Empty() == false)
1826                 {
1827                     this.TouchSignal().Disconnect(_touchDataCallback);
1828                 }
1829
1830             }
1831         }
1832
1833         // Callback for View TouchSignal
1834         private bool OnTouch(IntPtr view, IntPtr touchData)
1835         {
1836             if (touchData == global::System.IntPtr.Zero)
1837             {
1838                 NUILog.Error("touchData should not be null!");
1839                 return true;
1840             }
1841
1842             TouchEventArgs e = new TouchEventArgs();
1843
1844             e.Touch = Tizen.NUI.Touch.GetTouchFromPtr(touchData);
1845
1846             if (_touchDataEventHandler != null)
1847             {
1848                 return _touchDataEventHandler(this, e);
1849             }
1850             return false;
1851         }
1852
1853
1854         /// <summary>
1855         /// Event arguments that passed via the hover signal.
1856         /// </summary>
1857         /// <since_tizen> 3 </since_tizen>
1858         public class HoverEventArgs : EventArgs
1859         {
1860             private Hover _hover;
1861
1862             /// <summary>
1863             /// Hover - contains touch points that represent the points that are currently being hovered or the points where a hover has stopped.
1864             /// </summary>
1865             /// <since_tizen> 3 </since_tizen>
1866             public Hover Hover
1867             {
1868                 get
1869                 {
1870                     return _hover;
1871                 }
1872                 set
1873                 {
1874                     _hover = value;
1875                 }
1876             }
1877         }
1878
1879         private EventHandlerWithReturnType<object, HoverEventArgs, bool> _hoverEventHandler;
1880         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1881         private delegate bool HoverEventCallbackType(IntPtr view, IntPtr hoverEvent);
1882         private HoverEventCallbackType _hoverEventCallback;
1883
1884         /// <summary>
1885         /// An event for the hovered signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
1886         /// The hovered signal is emitted when the hover input is received.<br />
1887         /// </summary>
1888         /// <since_tizen> 3 </since_tizen>
1889         public event EventHandlerWithReturnType<object, HoverEventArgs, bool> HoverEvent
1890         {
1891             add
1892             {
1893                 if (_hoverEventHandler == null)
1894                 {
1895                     _hoverEventCallback = OnHoverEvent;
1896                     this.HoveredSignal().Connect(_hoverEventCallback);
1897                 }
1898
1899                 _hoverEventHandler += value;
1900             }
1901
1902             remove
1903             {
1904                 _hoverEventHandler -= value;
1905
1906                 if (_hoverEventHandler == null && HoveredSignal().Empty() == false)
1907                 {
1908                     this.HoveredSignal().Disconnect(_hoverEventCallback);
1909                 }
1910
1911             }
1912         }
1913
1914         // Callback for View Hover signal
1915         private bool OnHoverEvent(IntPtr view, IntPtr hoverEvent)
1916         {
1917             if (hoverEvent == global::System.IntPtr.Zero)
1918             {
1919                 NUILog.Error("hoverEvent should not be null!");
1920                 return true;
1921             }
1922
1923             HoverEventArgs e = new HoverEventArgs();
1924
1925             e.Hover = Tizen.NUI.Hover.GetHoverFromPtr(hoverEvent);
1926
1927             if (_hoverEventHandler != null)
1928             {
1929                 return _hoverEventHandler(this, e);
1930             }
1931             return false;
1932         }
1933
1934
1935         /// <summary>
1936         /// Event arguments that passed via the wheel signal.
1937         /// </summary>
1938         /// <since_tizen> 3 </since_tizen>
1939         public class WheelEventArgs : EventArgs
1940         {
1941             private Wheel _wheel;
1942
1943             /// <summary>
1944             /// WheelEvent - store a wheel rolling type: MOUSE_WHEEL or CUSTOM_WHEEL.
1945             /// </summary>
1946             /// <since_tizen> 3 </since_tizen>
1947             public Wheel Wheel
1948             {
1949                 get
1950                 {
1951                     return _wheel;
1952                 }
1953                 set
1954                 {
1955                     _wheel = value;
1956                 }
1957             }
1958         }
1959
1960         private EventHandlerWithReturnType<object, WheelEventArgs, bool> _wheelEventHandler;
1961         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
1962         private delegate bool WheelEventCallbackType(IntPtr view, IntPtr wheelEvent);
1963         private WheelEventCallbackType _wheelEventCallback;
1964
1965         /// <summary>
1966         /// An event for the WheelMoved signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
1967         /// The WheelMoved signal is emitted when the wheel event is received.<br />
1968         /// </summary>
1969         /// <since_tizen> 3 </since_tizen>
1970         public event EventHandlerWithReturnType<object, WheelEventArgs, bool> WheelEvent
1971         {
1972             add
1973             {
1974                 if (_wheelEventHandler == null)
1975                 {
1976                     _wheelEventCallback = OnWheelEvent;
1977                     this.WheelEventSignal().Connect(_wheelEventCallback);
1978                 }
1979
1980                 _wheelEventHandler += value;
1981             }
1982
1983             remove
1984             {
1985                 _wheelEventHandler -= value;
1986
1987                 if (_wheelEventHandler == null && WheelEventSignal().Empty() == false)
1988                 {
1989                     this.WheelEventSignal().Disconnect(_wheelEventCallback);
1990                 }
1991
1992             }
1993         }
1994
1995         // Callback for View Wheel signal
1996         private bool OnWheelEvent(IntPtr view, IntPtr wheelEvent)
1997         {
1998             if (wheelEvent == global::System.IntPtr.Zero)
1999             {
2000                 NUILog.Error("wheelEvent should not be null!");
2001                 return true;
2002             }
2003
2004             WheelEventArgs e = new WheelEventArgs();
2005
2006             e.Wheel = Tizen.NUI.Wheel.GetWheelFromPtr(wheelEvent);
2007
2008             if (_wheelEventHandler != null)
2009             {
2010                 return _wheelEventHandler(this, e);
2011             }
2012             return false;
2013         }
2014
2015
2016         private EventHandler _onWindowEventHandler;
2017         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
2018         private delegate void OnWindowEventCallbackType(IntPtr control);
2019         private OnWindowEventCallbackType _onWindowEventCallback;
2020
2021         /// <summary>
2022         /// An event for the OnWindow signal which can be used to subscribe or unsubscribe the event handler.<br />
2023         /// The OnWindow signal is emitted after the view has been connected to the window.<br />
2024         /// </summary>
2025         /// <since_tizen> 3 </since_tizen>
2026         public event EventHandler AddedToWindow
2027         {
2028             add
2029             {
2030                 if (_onWindowEventHandler == null)
2031                 {
2032                     _onWindowEventCallback = OnWindow;
2033                     this.OnWindowSignal().Connect(_onWindowEventCallback);
2034                 }
2035
2036                 _onWindowEventHandler += value;
2037             }
2038
2039             remove
2040             {
2041                 _onWindowEventHandler -= value;
2042
2043                 if (_onWindowEventHandler == null && OnWindowSignal().Empty() == false)
2044                 {
2045                     this.OnWindowSignal().Disconnect(_onWindowEventCallback);
2046                 }
2047             }
2048         }
2049
2050         // Callback for View OnWindow signal
2051         private void OnWindow(IntPtr data)
2052         {
2053             if (_onWindowEventHandler != null)
2054             {
2055                 _onWindowEventHandler(this, null);
2056             }
2057         }
2058
2059
2060         private EventHandler _offWindowEventHandler;
2061         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
2062         private delegate void OffWindowEventCallbackType(IntPtr control);
2063         private OffWindowEventCallbackType _offWindowEventCallback;
2064
2065         /// <summary>
2066         /// An event for the OffWindow signal, which can be used to subscribe or unsubscribe the event handler.<br />
2067         /// OffWindow signal is emitted after the view has been disconnected from the window.<br />
2068         /// </summary>
2069         /// <since_tizen> 3 </since_tizen>
2070         public event EventHandler RemovedFromWindow
2071         {
2072             add
2073             {
2074                 if (_offWindowEventHandler == null)
2075                 {
2076                     _offWindowEventCallback = OffWindow;
2077                     this.OffWindowSignal().Connect(_offWindowEventCallback);
2078                 }
2079
2080                 _offWindowEventHandler += value;
2081             }
2082
2083             remove
2084             {
2085                 _offWindowEventHandler -= value;
2086
2087                 if (_offWindowEventHandler == null && OffWindowSignal().Empty() == false)
2088                 {
2089                     this.OffWindowSignal().Disconnect(_offWindowEventCallback);
2090                 }
2091             }
2092         }
2093
2094         // Callback for View OffWindow signal
2095         private void OffWindow(IntPtr data)
2096         {
2097             if (_offWindowEventHandler != null)
2098             {
2099                 _offWindowEventHandler(this, null);
2100             }
2101         }
2102
2103         /// <summary>
2104         /// Event arguments of visibility changed.
2105         /// </summary>
2106         /// <since_tizen> 3 </since_tizen>
2107         public class VisibilityChangedEventArgs : EventArgs
2108         {
2109             private View _view;
2110             private bool _visibility;
2111             private VisibilityChangeType _type;
2112
2113             /// <summary>
2114             /// The view, or child of view, whose visibility has changed.
2115             /// </summary>
2116             /// <since_tizen> 3 </since_tizen>
2117             public View View
2118             {
2119                 get
2120                 {
2121                     return _view;
2122                 }
2123                 set
2124                 {
2125                     _view = value;
2126                 }
2127             }
2128
2129             /// <summary>
2130             /// Whether the view is now visible or not.
2131             /// </summary>
2132             /// <since_tizen> 3 </since_tizen>
2133             public bool Visibility
2134             {
2135                 get
2136                 {
2137                     return _visibility;
2138                 }
2139                 set
2140                 {
2141                     _visibility = value;
2142                 }
2143             }
2144
2145             /// <summary>
2146             /// Whether the view's visible property has changed or a parent's.
2147             /// </summary>
2148             /// <since_tizen> 3 </since_tizen>
2149             public VisibilityChangeType Type
2150             {
2151                 get
2152                 {
2153                     return _type;
2154                 }
2155                 set
2156                 {
2157                     _type = value;
2158                 }
2159             }
2160         }
2161
2162         private EventHandler<VisibilityChangedEventArgs> _visibilityChangedEventHandler;
2163         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
2164         private delegate void VisibilityChangedEventCallbackType(IntPtr data, bool visibility, VisibilityChangeType type);
2165         private VisibilityChangedEventCallbackType _visibilityChangedEventCallback;
2166
2167         /// <summary>
2168         /// An event for visibility change which can be used to subscribe or unsubscribe the event handler.<br />
2169         /// This signal is emitted when the visible property of this or a parent view is changed.<br />
2170         /// </summary>
2171         /// <since_tizen> 3 </since_tizen>
2172         public event EventHandler<VisibilityChangedEventArgs> VisibilityChanged
2173         {
2174             add
2175             {
2176                 if (_visibilityChangedEventHandler == null)
2177                 {
2178                     _visibilityChangedEventCallback = OnVisibilityChanged;
2179                     VisibilityChangedSignal(this).Connect(_visibilityChangedEventCallback);
2180                 }
2181
2182                 _visibilityChangedEventHandler += value;
2183             }
2184
2185             remove
2186             {
2187                 _visibilityChangedEventHandler -= value;
2188
2189                 if (_visibilityChangedEventHandler == null && VisibilityChangedSignal(this).Empty() == false)
2190                 {
2191                     VisibilityChangedSignal(this).Disconnect(_visibilityChangedEventCallback);
2192                 }
2193             }
2194         }
2195
2196         // Callback for View visibility change signal
2197         private void OnVisibilityChanged(IntPtr data, bool visibility, VisibilityChangeType type)
2198         {
2199             VisibilityChangedEventArgs e = new VisibilityChangedEventArgs();
2200             if (data != null)
2201             {
2202                 e.View = Registry.GetManagedBaseHandleFromNativePtr(data) as View;
2203             }
2204             e.Visibility = visibility;
2205             e.Type = type;
2206
2207             if (_visibilityChangedEventHandler != null)
2208             {
2209                 _visibilityChangedEventHandler(this, e);
2210             }
2211         }
2212
2213
2214         /// <summary>
2215         /// Event arguments of layout direction changed.
2216         /// </summary>
2217         /// <since_tizen> 4 </since_tizen>
2218         public class LayoutDirectionChangedEventArgs : EventArgs
2219         {
2220             private View _view;
2221             private ViewLayoutDirectionType _type;
2222
2223             /// <summary>
2224             /// The view, or child of view, whose layout direction has changed.
2225             /// </summary>
2226             /// <since_tizen> 4 </since_tizen>
2227             public View View
2228             {
2229                 get
2230                 {
2231                     return _view;
2232                 }
2233                 set
2234                 {
2235                     _view = value;
2236                 }
2237             }
2238
2239             /// <summary>
2240             /// Whether the view's layout direction property has changed or a parent's.
2241             /// </summary>
2242             /// <since_tizen> 4 </since_tizen>
2243             public ViewLayoutDirectionType Type
2244             {
2245                 get
2246                 {
2247                     return _type;
2248                 }
2249                 set
2250                 {
2251                     _type = value;
2252                 }
2253             }
2254         }
2255
2256         private EventHandler<LayoutDirectionChangedEventArgs> _layoutDirectionChangedEventHandler;
2257         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
2258         private delegate void LayoutDirectionChangedEventCallbackType(IntPtr data, ViewLayoutDirectionType type);
2259         private LayoutDirectionChangedEventCallbackType _layoutDirectionChangedEventCallback;
2260
2261         /// <summary>
2262         /// Event for layout direction change which can be used to subscribe/unsubscribe the event handler.<br />
2263         /// This signal is emitted when the layout direction property of this or a parent view is changed.<br />
2264         /// </summary>
2265         /// <since_tizen> 4 </since_tizen>
2266         public event EventHandler<LayoutDirectionChangedEventArgs> LayoutDirectionChanged
2267         {
2268             add
2269             {
2270                 if (_layoutDirectionChangedEventHandler == null)
2271                 {
2272                     _layoutDirectionChangedEventCallback = OnLayoutDirectionChanged;
2273                     LayoutDirectionChangedSignal(this).Connect(_layoutDirectionChangedEventCallback);
2274                 }
2275
2276                 _layoutDirectionChangedEventHandler += value;
2277             }
2278
2279             remove
2280             {
2281                 _layoutDirectionChangedEventHandler -= value;
2282
2283                 if (_layoutDirectionChangedEventHandler == null && LayoutDirectionChangedSignal(this).Empty() == false)
2284                 {
2285                     LayoutDirectionChangedSignal(this).Disconnect(_layoutDirectionChangedEventCallback);
2286                 }
2287             }
2288         }
2289
2290         // Callback for View layout direction change signal
2291         private void OnLayoutDirectionChanged(IntPtr data, ViewLayoutDirectionType type)
2292         {
2293             LayoutDirectionChangedEventArgs e = new LayoutDirectionChangedEventArgs();
2294             if (data != null)
2295             {
2296                 e.View = Registry.GetManagedBaseHandleFromNativePtr(data) as View;
2297             }
2298             e.Type = type;
2299
2300             if (_layoutDirectionChangedEventHandler != null)
2301             {
2302                 _layoutDirectionChangedEventHandler(this, e);
2303             }
2304         }
2305
2306         // Resource Ready Signal
2307
2308         private EventHandler _resourcesLoadedEventHandler;
2309         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
2310         private delegate void ResourcesLoadedCallbackType(IntPtr control);
2311         private ResourcesLoadedCallbackType _ResourcesLoadedCallback;
2312
2313         /// <summary>
2314         /// An event for the ResourcesLoadedSignal signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
2315         /// This signal is emitted after all resources required by a view are loaded and ready.<br />
2316         /// </summary>
2317         /// <since_tizen> 3 </since_tizen>
2318         public event EventHandler ResourcesLoaded
2319         {
2320             add
2321             {
2322                 if (_resourcesLoadedEventHandler == null)
2323                 {
2324                     _ResourcesLoadedCallback = OnResourcesLoaded;
2325                     this.ResourcesLoadedSignal().Connect(_ResourcesLoadedCallback);
2326                 }
2327
2328                 _resourcesLoadedEventHandler += value;
2329             }
2330
2331             remove
2332             {
2333                 _resourcesLoadedEventHandler -= value;
2334
2335                 if (_resourcesLoadedEventHandler == null && ResourcesLoadedSignal().Empty() == false)
2336                 {
2337                     this.ResourcesLoadedSignal().Disconnect(_ResourcesLoadedCallback);
2338                 }
2339             }
2340         }
2341
2342         private void OnResourcesLoaded(IntPtr view)
2343         {
2344             if (_resourcesLoadedEventHandler != null)
2345             {
2346                 _resourcesLoadedEventHandler(this, null);
2347             }
2348         }
2349
2350         internal IntPtr GetPtrfromView()
2351         {
2352             return (IntPtr)swigCPtr;
2353         }
2354
2355         internal class Property
2356         {
2357             internal static readonly int TOOLTIP = NDalicManualPINVOKE.View_Property_TOOLTIP_get();
2358             internal static readonly int STATE = NDalicManualPINVOKE.View_Property_STATE_get();
2359             internal static readonly int SUB_STATE = NDalicManualPINVOKE.View_Property_SUB_STATE_get();
2360             internal static readonly int LEFT_FOCUSABLE_VIEW_ID = NDalicManualPINVOKE.View_Property_LEFT_FOCUSABLE_ACTOR_ID_get();
2361             internal static readonly int RIGHT_FOCUSABLE_VIEW_ID = NDalicManualPINVOKE.View_Property_RIGHT_FOCUSABLE_ACTOR_ID_get();
2362             internal static readonly int UP_FOCUSABLE_VIEW_ID = NDalicManualPINVOKE.View_Property_UP_FOCUSABLE_ACTOR_ID_get();
2363             internal static readonly int DOWN_FOCUSABLE_VIEW_ID = NDalicManualPINVOKE.View_Property_DOWN_FOCUSABLE_ACTOR_ID_get();
2364             internal static readonly int STYLE_NAME = NDalicPINVOKE.View_Property_STYLE_NAME_get();
2365             internal static readonly int BACKGROUND = NDalicPINVOKE.View_Property_BACKGROUND_get();
2366             internal static readonly int SIBLING_ORDER = NDalicManualPINVOKE.Actor_Property_SIBLING_ORDER_get();
2367             internal static readonly int OPACITY = NDalicManualPINVOKE.Actor_Property_OPACITY_get();
2368             internal static readonly int SCREEN_POSITION = NDalicManualPINVOKE.Actor_Property_SCREEN_POSITION_get();
2369             internal static readonly int POSITION_USES_ANCHOR_POINT = NDalicManualPINVOKE.Actor_Property_POSITION_USES_ANCHOR_POINT_get();
2370             internal static readonly int PARENT_ORIGIN = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_get();
2371             internal static readonly int PARENT_ORIGIN_X = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_X_get();
2372             internal static readonly int PARENT_ORIGIN_Y = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_Y_get();
2373             internal static readonly int PARENT_ORIGIN_Z = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_Z_get();
2374             internal static readonly int ANCHOR_POINT = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_get();
2375             internal static readonly int ANCHOR_POINT_X = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_X_get();
2376             internal static readonly int ANCHOR_POINT_Y = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_Y_get();
2377             internal static readonly int ANCHOR_POINT_Z = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_Z_get();
2378             internal static readonly int SIZE = NDalicPINVOKE.Actor_Property_SIZE_get();
2379             internal static readonly int SIZE_WIDTH = NDalicPINVOKE.Actor_Property_SIZE_WIDTH_get();
2380             internal static readonly int SIZE_HEIGHT = NDalicPINVOKE.Actor_Property_SIZE_HEIGHT_get();
2381             internal static readonly int SIZE_DEPTH = NDalicPINVOKE.Actor_Property_SIZE_DEPTH_get();
2382             internal static readonly int POSITION = NDalicPINVOKE.Actor_Property_POSITION_get();
2383             internal static readonly int POSITION_X = NDalicPINVOKE.Actor_Property_POSITION_X_get();
2384             internal static readonly int POSITION_Y = NDalicPINVOKE.Actor_Property_POSITION_Y_get();
2385             internal static readonly int POSITION_Z = NDalicPINVOKE.Actor_Property_POSITION_Z_get();
2386             internal static readonly int WORLD_POSITION = NDalicPINVOKE.Actor_Property_WORLD_POSITION_get();
2387             internal static readonly int WORLD_POSITION_X = NDalicPINVOKE.Actor_Property_WORLD_POSITION_X_get();
2388             internal static readonly int WORLD_POSITION_Y = NDalicPINVOKE.Actor_Property_WORLD_POSITION_Y_get();
2389             internal static readonly int WORLD_POSITION_Z = NDalicPINVOKE.Actor_Property_WORLD_POSITION_Z_get();
2390             internal static readonly int ORIENTATION = NDalicPINVOKE.Actor_Property_ORIENTATION_get();
2391             internal static readonly int WORLD_ORIENTATION = NDalicPINVOKE.Actor_Property_WORLD_ORIENTATION_get();
2392             internal static readonly int SCALE = NDalicPINVOKE.Actor_Property_SCALE_get();
2393             internal static readonly int SCALE_X = NDalicPINVOKE.Actor_Property_SCALE_X_get();
2394             internal static readonly int SCALE_Y = NDalicPINVOKE.Actor_Property_SCALE_Y_get();
2395             internal static readonly int SCALE_Z = NDalicPINVOKE.Actor_Property_SCALE_Z_get();
2396             internal static readonly int WORLD_SCALE = NDalicPINVOKE.Actor_Property_WORLD_SCALE_get();
2397             internal static readonly int VISIBLE = NDalicPINVOKE.Actor_Property_VISIBLE_get();
2398             internal static readonly int WORLD_COLOR = NDalicPINVOKE.Actor_Property_WORLD_COLOR_get();
2399             internal static readonly int WORLD_MATRIX = NDalicPINVOKE.Actor_Property_WORLD_MATRIX_get();
2400             internal static readonly int NAME = NDalicPINVOKE.Actor_Property_NAME_get();
2401             internal static readonly int SENSITIVE = NDalicPINVOKE.Actor_Property_SENSITIVE_get();
2402             internal static readonly int LEAVE_REQUIRED = NDalicPINVOKE.Actor_Property_LEAVE_REQUIRED_get();
2403             internal static readonly int INHERIT_ORIENTATION = NDalicPINVOKE.Actor_Property_INHERIT_ORIENTATION_get();
2404             internal static readonly int INHERIT_SCALE = NDalicPINVOKE.Actor_Property_INHERIT_SCALE_get();
2405             internal static readonly int DRAW_MODE = NDalicPINVOKE.Actor_Property_DRAW_MODE_get();
2406             internal static readonly int SIZE_MODE_FACTOR = NDalicPINVOKE.Actor_Property_SIZE_MODE_FACTOR_get();
2407             internal static readonly int WIDTH_RESIZE_POLICY = NDalicPINVOKE.Actor_Property_WIDTH_RESIZE_POLICY_get();
2408             internal static readonly int HEIGHT_RESIZE_POLICY = NDalicPINVOKE.Actor_Property_HEIGHT_RESIZE_POLICY_get();
2409             internal static readonly int SIZE_SCALE_POLICY = NDalicPINVOKE.Actor_Property_SIZE_SCALE_POLICY_get();
2410             internal static readonly int WIDTH_FOR_HEIGHT = NDalicPINVOKE.Actor_Property_WIDTH_FOR_HEIGHT_get();
2411             internal static readonly int HEIGHT_FOR_WIDTH = NDalicPINVOKE.Actor_Property_HEIGHT_FOR_WIDTH_get();
2412             internal static readonly int MINIMUM_SIZE = NDalicPINVOKE.Actor_Property_MINIMUM_SIZE_get();
2413             internal static readonly int MAXIMUM_SIZE = NDalicPINVOKE.Actor_Property_MAXIMUM_SIZE_get();
2414             internal static readonly int INHERIT_POSITION = NDalicPINVOKE.Actor_Property_INHERIT_POSITION_get();
2415             internal static readonly int CLIPPING_MODE = NDalicPINVOKE.Actor_Property_CLIPPING_MODE_get();
2416             internal static readonly int INHERIT_LAYOUT_DIRECTION = NDalicManualPINVOKE.Actor_Property_INHERIT_LAYOUT_DIRECTION_get();
2417             internal static readonly int LAYOUT_DIRECTION = NDalicManualPINVOKE.Actor_Property_LAYOUT_DIRECTION_get();
2418             internal static readonly int MARGIN = NDalicPINVOKE.View_Property_MARGIN_get();
2419             internal static readonly int PADDING = NDalicPINVOKE.View_Property_PADDING_get();
2420         }
2421
2422         /// <summary>
2423         /// Describes the direction to move the focus towards.
2424         /// </summary>
2425         /// <since_tizen> 3 </since_tizen>
2426         public enum FocusDirection
2427         {
2428             /// <summary>
2429             /// Move keyboard focus towards the left direction.
2430             /// </summary>
2431             /// <since_tizen> 3 </since_tizen>
2432             Left,
2433             /// <summary>
2434             /// Move keyboard focus towards the right direction.
2435             /// </summary>
2436             /// <since_tizen> 3 </since_tizen>
2437             Right,
2438             /// <summary>
2439             /// Move keyboard focus towards the up direction.
2440             /// </summary>
2441             /// <since_tizen> 3 </since_tizen>
2442             Up,
2443             /// <summary>
2444             /// Move keyboard focus towards the down direction.
2445             /// </summary>
2446             /// <since_tizen> 3 </since_tizen>
2447             Down,
2448             /// <summary>
2449             /// Move keyboard focus towards the previous page direction.
2450             /// </summary>
2451             /// <since_tizen> 3 </since_tizen>
2452             PageUp,
2453             /// <summary>
2454             /// Move keyboard focus towards the next page direction.
2455             /// </summary>
2456             /// <since_tizen> 3 </since_tizen>
2457             PageDown
2458         }
2459
2460         protected void InitXamlResource()
2461         {
2462             if (null != Application.Current)
2463             {
2464                 Application.AddResourceChangedCallback(this, OnResourcesChanged);
2465             }
2466         }
2467
2468         /// <summary>
2469         /// Creates a new instance of a view.
2470         /// </summary>
2471         /// <since_tizen> 3 </since_tizen>
2472         public View() : this(NDalicPINVOKE.View_New(), true)
2473         {
2474             InitXamlResource();
2475             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2476         }
2477         internal View(View uiControl) : this(NDalicPINVOKE.new_View__SWIG_1(View.getCPtr(uiControl)), true)
2478         {
2479             InitXamlResource();
2480             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2481         }
2482
2483         private View ConvertIdToView(uint id)
2484         {
2485             View view = null;
2486             if (GetParent() is View)
2487             {
2488                 View parentView = GetParent() as View;
2489                 view = parentView.FindChildById(id);
2490             }
2491
2492             if (!view)
2493             {
2494                 view = Window.Instance.GetRootLayer().FindChildById(id);
2495             }
2496
2497             return view;
2498         }
2499
2500         internal void SetKeyInputFocus()
2501         {
2502             NDalicPINVOKE.View_SetKeyInputFocus(swigCPtr);
2503             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2504         }
2505
2506         /// <summary>
2507         /// Queries whether the view has a focus.
2508         /// </summary>
2509         /// <returns>True if this view has a focus.</returns>
2510         /// <since_tizen> 3 </since_tizen>
2511         public bool HasFocus()
2512         {
2513             bool ret = NDalicPINVOKE.View_HasKeyInputFocus(swigCPtr);
2514             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2515             return ret;
2516         }
2517
2518         internal void ClearKeyInputFocus()
2519         {
2520             NDalicPINVOKE.View_ClearKeyInputFocus(swigCPtr);
2521             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2522         }
2523
2524         internal PinchGestureDetector GetPinchGestureDetector()
2525         {
2526             PinchGestureDetector ret = new PinchGestureDetector(NDalicPINVOKE.View_GetPinchGestureDetector(swigCPtr), true);
2527             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2528             return ret;
2529         }
2530
2531         internal PanGestureDetector GetPanGestureDetector()
2532         {
2533             PanGestureDetector ret = new PanGestureDetector(NDalicPINVOKE.View_GetPanGestureDetector(swigCPtr), true);
2534             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2535             return ret;
2536         }
2537
2538         internal TapGestureDetector GetTapGestureDetector()
2539         {
2540             TapGestureDetector ret = new TapGestureDetector(NDalicPINVOKE.View_GetTapGestureDetector(swigCPtr), true);
2541             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2542             return ret;
2543         }
2544
2545         internal LongPressGestureDetector GetLongPressGestureDetector()
2546         {
2547             LongPressGestureDetector ret = new LongPressGestureDetector(NDalicPINVOKE.View_GetLongPressGestureDetector(swigCPtr), true);
2548             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2549             return ret;
2550         }
2551
2552         /// <summary>
2553         /// Sets the name of the style to be applied to the view.
2554         /// </summary>
2555         /// <param name="styleName">A string matching a style described in a stylesheet.</param>
2556         /// <since_tizen> 3 </since_tizen>
2557         public void SetStyleName(string styleName)
2558         {
2559             NDalicPINVOKE.View_SetStyleName(swigCPtr, styleName);
2560             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2561         }
2562
2563         /// <summary>
2564         /// Retrieves the name of the style to be applied to the view (if any).
2565         /// </summary>
2566         /// <returns>A string matching a style, or an empty string.</returns>
2567         /// <since_tizen> 3 </since_tizen>
2568         public string GetStyleName()
2569         {
2570             string ret = NDalicPINVOKE.View_GetStyleName(swigCPtr);
2571             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2572             return ret;
2573         }
2574
2575         internal void SetBackgroundColor(Vector4 color)
2576         {
2577             NDalicPINVOKE.View_SetBackgroundColor(swigCPtr, Vector4.getCPtr(color));
2578             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2579         }
2580
2581         internal Vector4 GetBackgroundColor()
2582         {
2583             Vector4 ret = new Vector4(NDalicPINVOKE.View_GetBackgroundColor(swigCPtr), true);
2584             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2585             return ret;
2586         }
2587
2588         internal void SetBackgroundImage(Image image)
2589         {
2590             NDalicPINVOKE.View_SetBackgroundImage(swigCPtr, Image.getCPtr(image));
2591             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2592         }
2593
2594         /// <summary>
2595         /// Clears the background.
2596         /// </summary>
2597         /// <since_tizen> 3 </since_tizen>
2598         public void ClearBackground()
2599         {
2600             NDalicPINVOKE.View_ClearBackground(swigCPtr);
2601             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2602         }
2603
2604         internal ControlKeySignal KeyEventSignal()
2605         {
2606             ControlKeySignal ret = new ControlKeySignal(NDalicPINVOKE.View_KeyEventSignal(swigCPtr), false);
2607             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2608             return ret;
2609         }
2610
2611         internal KeyInputFocusSignal KeyInputFocusGainedSignal()
2612         {
2613             KeyInputFocusSignal ret = new KeyInputFocusSignal(NDalicPINVOKE.View_KeyInputFocusGainedSignal(swigCPtr), false);
2614             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2615             return ret;
2616         }
2617
2618         internal KeyInputFocusSignal KeyInputFocusLostSignal()
2619         {
2620             KeyInputFocusSignal ret = new KeyInputFocusSignal(NDalicPINVOKE.View_KeyInputFocusLostSignal(swigCPtr), false);
2621             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2622             return ret;
2623         }
2624
2625         internal View(ViewImpl implementation) : this(NDalicPINVOKE.new_View__SWIG_2(ViewImpl.getCPtr(implementation)), true)
2626         {
2627             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2628         }
2629
2630         internal enum PropertyRange
2631         {
2632             PROPERTY_START_INDEX = PropertyRanges.PROPERTY_REGISTRATION_START_INDEX,
2633             CONTROL_PROPERTY_START_INDEX = PROPERTY_START_INDEX,
2634             CONTROL_PROPERTY_END_INDEX = CONTROL_PROPERTY_START_INDEX + 1000
2635         }
2636
2637         /// <summary>
2638         /// The StyleName, type string.
2639         /// </summary>
2640         /// <since_tizen> 3 </since_tizen>
2641         public string StyleName
2642         {
2643             get
2644             {
2645                 return (string)GetValue(StyleNameProperty);
2646             }
2647             set
2648             {
2649                 SetValue(StyleNameProperty, value);
2650                 NotifyPropertyChanged();
2651             }
2652         }
2653
2654         /// <summary>
2655         /// The mutually exclusive with BACKGROUND_IMAGE and BACKGROUND type Vector4.
2656         /// </summary>
2657         /// <since_tizen> 3 </since_tizen>
2658         public Color BackgroundColor
2659         {
2660             get
2661             {
2662                 return (Color)GetValue(BackgroundColorProperty);
2663             }
2664             set
2665             {
2666                 SetValue(BackgroundColorProperty, value);
2667                 NotifyPropertyChanged();
2668             }
2669         }
2670
2671         /// <summary>
2672         /// Creates an animation to animate the background color visual. If there is no
2673         /// background visual, creates one with transparent black as it's mixColor.
2674         /// </summary>
2675         /// <since_tizen> 3 </since_tizen>
2676         public Animation AnimateBackgroundColor(object destinationValue,
2677                                                  int startTime,
2678                                                  int endTime,
2679                                                  AlphaFunction.BuiltinFunctions? alphaFunction = null,
2680                                                  object initialValue = null)
2681         {
2682             Tizen.NUI.PropertyMap background = Background;
2683
2684             if (background.Empty())
2685             {
2686                 // If there is no background yet, ensure there is a transparent
2687                 // color visual
2688                 BackgroundColor = new Color(0.0f, 0.0f, 0.0f, 0.0f);
2689                 background = Background;
2690             }
2691             return AnimateColor("background", destinationValue, startTime, endTime, alphaFunction, initialValue);
2692         }
2693
2694         /// <summary>
2695         /// Creates an animation to animate the mixColor of the named visual.
2696         /// </summary>
2697         /// <since_tizen> 3 </since_tizen>
2698         public Animation AnimateColor(string targetVisual, object destinationColor, int startTime, int endTime, AlphaFunction.BuiltinFunctions? alphaFunction = null, object initialColor = null)
2699         {
2700             Animation animation = null;
2701             {
2702                 PropertyMap _animator = new PropertyMap();
2703                 if (alphaFunction != null)
2704                 {
2705                     _animator.Add("alphaFunction", new PropertyValue(AlphaFunction.BuiltinToPropertyKey(alphaFunction)));
2706                 }
2707
2708                 PropertyMap _timePeriod = new PropertyMap();
2709                 _timePeriod.Add("duration", new PropertyValue((endTime - startTime) / 1000.0f));
2710                 _timePeriod.Add("delay", new PropertyValue(startTime / 1000.0f));
2711                 _animator.Add("timePeriod", new PropertyValue(_timePeriod));
2712
2713                 PropertyMap _transition = new PropertyMap();
2714                 _transition.Add("animator", new PropertyValue(_animator));
2715                 _transition.Add("target", new PropertyValue(targetVisual));
2716                 _transition.Add("property", new PropertyValue("mixColor"));
2717
2718                 if (initialColor != null)
2719                 {
2720                     PropertyValue initValue = PropertyValue.CreateFromObject(initialColor);
2721                     _transition.Add("initialValue", initValue);
2722                 }
2723
2724                 PropertyValue destValue = PropertyValue.CreateFromObject(destinationColor);
2725                 _transition.Add("targetValue", destValue);
2726                 TransitionData _transitionData = new TransitionData(_transition);
2727
2728                 animation = new Animation(NDalicManualPINVOKE.View_CreateTransition(swigCPtr, TransitionData.getCPtr(_transitionData)), true);
2729                 if (NDalicPINVOKE.SWIGPendingException.Pending)
2730                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
2731             }
2732             return animation;
2733         }
2734
2735         /// <summary>
2736         /// The mutually exclusive with BACKGROUND_COLOR and BACKGROUND type Map.
2737         /// </summary>
2738         /// <since_tizen> 3 </since_tizen>
2739         public string BackgroundImage
2740         {
2741             get
2742             {
2743                 return (string)GetValue(BackgroundImageProperty);
2744             }
2745             set
2746             {
2747                 SetValue(BackgroundImageProperty, value);
2748                 NotifyPropertyChanged();
2749             }
2750         }
2751
2752         /// <summary>
2753         /// The background of view.
2754         /// </summary>
2755         /// <since_tizen> 3 </since_tizen>
2756         public Tizen.NUI.PropertyMap Background
2757         {
2758             get
2759             {
2760                 return (PropertyMap)GetValue(BackgroundProperty);
2761             }
2762             set
2763             {
2764                 SetValue(BackgroundProperty, value);
2765                 NotifyPropertyChanged();
2766             }
2767         }
2768
2769
2770         /// <summary>
2771         /// The current state of the view.
2772         /// </summary>
2773         /// <since_tizen> 3 </since_tizen>
2774         public States State
2775         {
2776             get
2777             {
2778                 return (States)GetValue(StateProperty);
2779             }
2780             set
2781             {
2782                 SetValue(StateProperty, value);
2783                 NotifyPropertyChanged();
2784             }
2785         }
2786
2787         /// <summary>
2788         /// The current sub state of the view.
2789         /// </summary>
2790         /// <since_tizen> 3 </since_tizen>
2791         public States SubState
2792         {
2793             get
2794             {
2795                 return (States)GetValue(SubStateProperty);
2796             }
2797             set
2798             {
2799                 SetValue(SubStateProperty, value);
2800                 NotifyPropertyChanged();
2801             }
2802         }
2803
2804         /// <summary>
2805         /// Displays a tooltip
2806         /// </summary>
2807         /// <since_tizen> 3 </since_tizen>
2808         public Tizen.NUI.PropertyMap Tooltip
2809         {
2810             get
2811             {
2812                 return (PropertyMap)GetValue(TooltipProperty);
2813             }
2814             set
2815             {
2816                 SetValue(TooltipProperty, value);
2817                 NotifyPropertyChanged();
2818             }
2819         }
2820
2821         /// <summary>
2822         /// Displays a tooltip as a text.
2823         /// </summary>
2824         /// <since_tizen> 3 </since_tizen>
2825         public string TooltipText
2826         {
2827             set
2828             {
2829                 SetProperty(View.Property.TOOLTIP, new Tizen.NUI.PropertyValue(value));
2830                 NotifyPropertyChanged();
2831             }
2832         }
2833
2834         private int LeftFocusableViewId
2835         {
2836             get
2837             {
2838                 int temp = 0;
2839                 GetProperty(View.Property.LEFT_FOCUSABLE_VIEW_ID).Get(out temp);
2840                 return temp;
2841             }
2842             set
2843             {
2844                 SetProperty(View.Property.LEFT_FOCUSABLE_VIEW_ID, new Tizen.NUI.PropertyValue(value));
2845             }
2846         }
2847
2848         private int RightFocusableViewId
2849         {
2850             get
2851             {
2852                 int temp = 0;
2853                 GetProperty(View.Property.RIGHT_FOCUSABLE_VIEW_ID).Get(out temp);
2854                 return temp;
2855             }
2856             set
2857             {
2858                 SetProperty(View.Property.RIGHT_FOCUSABLE_VIEW_ID, new Tizen.NUI.PropertyValue(value));
2859             }
2860         }
2861
2862         private int UpFocusableViewId
2863         {
2864             get
2865             {
2866                 int temp = 0;
2867                 GetProperty(View.Property.UP_FOCUSABLE_VIEW_ID).Get(out temp);
2868                 return temp;
2869             }
2870             set
2871             {
2872                 SetProperty(View.Property.UP_FOCUSABLE_VIEW_ID, new Tizen.NUI.PropertyValue(value));
2873             }
2874         }
2875
2876         private int DownFocusableViewId
2877         {
2878             get
2879             {
2880                 int temp = 0;
2881                 GetProperty(View.Property.DOWN_FOCUSABLE_VIEW_ID).Get(out temp);
2882                 return temp;
2883             }
2884             set
2885             {
2886                 SetProperty(View.Property.DOWN_FOCUSABLE_VIEW_ID, new Tizen.NUI.PropertyValue(value));
2887             }
2888         }
2889
2890         /// <summary>
2891         /// The Child property of FlexContainer.<br />
2892         /// The proportion of the free space in the container, the flex item will receive.<br />
2893         /// If all items in the container set this property, their sizes will be proportional to the specified flex factor.<br />
2894         /// </summary>
2895         /// <since_tizen> 3 </since_tizen>
2896         public float Flex
2897         {
2898             get
2899             {
2900                 return (float)GetValue(FlexProperty);
2901             }
2902             set
2903             {
2904                 SetValue(FlexProperty, value);
2905                 NotifyPropertyChanged();
2906             }
2907         }
2908
2909         /// <summary>
2910         /// The Child property of FlexContainer.<br />
2911         /// The alignment of the flex item along the cross axis, which, if set, overides the default alignment for all items in the container.<br />
2912         /// </summary>
2913         /// <since_tizen> 3 </since_tizen>
2914         public int AlignSelf
2915         {
2916             get
2917             {
2918                 return (int)GetValue(AlignSelfProperty);
2919             }
2920             set
2921             {
2922                 SetValue(AlignSelfProperty, value);
2923                 NotifyPropertyChanged();
2924             }
2925         }
2926
2927         /// <summary>
2928         /// The Child property of FlexContainer.<br />
2929         /// The space around the flex item.<br />
2930         /// </summary>
2931         /// <since_tizen> 3 </since_tizen>
2932         public Vector4 FlexMargin
2933         {
2934             get
2935             {
2936                 return (Vector4)GetValue(FlexMarginProperty);
2937             }
2938             set
2939             {
2940                 SetValue(FlexMarginProperty, value);
2941                 NotifyPropertyChanged();
2942             }
2943         }
2944
2945         /// <summary>
2946         /// The top-left cell this child occupies, if not set, the first available cell is used.
2947         /// </summary>
2948         /// <since_tizen> 3 </since_tizen>
2949         public Vector2 CellIndex
2950         {
2951             get
2952             {
2953                 return (Vector2)GetValue(CellIndexProperty);
2954             }
2955             set
2956             {
2957                 SetValue(CellIndexProperty, value);
2958                 NotifyPropertyChanged();
2959             }
2960         }
2961
2962         /// <summary>
2963         /// The number of rows this child occupies, if not set, the default value is 1.
2964         /// </summary>
2965         /// <since_tizen> 3 </since_tizen>
2966         public float RowSpan
2967         {
2968             get
2969             {
2970                 return (float)GetValue(RowSpanProperty);
2971             }
2972             set
2973             {
2974                 SetValue(RowSpanProperty, value);
2975                 NotifyPropertyChanged();
2976             }
2977         }
2978
2979         /// <summary>
2980         /// The number of columns this child occupies, if not set, the default value is 1.
2981         /// </summary>
2982         /// <since_tizen> 3 </since_tizen>
2983         public float ColumnSpan
2984         {
2985             get
2986             {
2987                 return (float)GetValue(ColumnSpanProperty);
2988             }
2989             set
2990             {
2991                 SetValue(ColumnSpanProperty, value);
2992                 NotifyPropertyChanged();
2993             }
2994         }
2995
2996         /// <summary>
2997         /// The horizontal alignment of this child inside the cells, if not set, the default value is 'left'.
2998         /// </summary>
2999         /// <since_tizen> 3 </since_tizen>
3000         public Tizen.NUI.HorizontalAlignmentType CellHorizontalAlignment
3001         {
3002             get
3003             {
3004                 return (HorizontalAlignmentType)GetValue(CellHorizontalAlignmentProperty);
3005             }
3006             set
3007             {
3008                 SetValue(CellHorizontalAlignmentProperty, value);
3009                 NotifyPropertyChanged();
3010             }
3011         }
3012
3013         /// <summary>
3014         /// The vertical alignment of this child inside the cells, if not set, the default value is 'top'.
3015         /// </summary>
3016         /// <since_tizen> 3 </since_tizen>
3017         public Tizen.NUI.VerticalAlignmentType CellVerticalAlignment
3018         {
3019             get
3020             {
3021                 return (VerticalAlignmentType)GetValue(CellVerticalAlignmentProperty);
3022             }
3023             set
3024             {
3025                 SetValue(CellVerticalAlignmentProperty, value);
3026                 NotifyPropertyChanged();
3027             }
3028         }
3029
3030         /// <summary>
3031         /// The left focusable view.<br />
3032         /// This will return null if not set.<br />
3033         /// This will also return null if the specified left focusable view is not on a window.<br />
3034         /// </summary>
3035         /// <since_tizen> 3 </since_tizen>
3036         public View LeftFocusableView
3037         {
3038             // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
3039             get
3040             {
3041                 return (View)GetValue(LeftFocusableViewProperty);
3042             }
3043             set
3044             {
3045                 SetValue(LeftFocusableViewProperty, value);
3046                 NotifyPropertyChanged();
3047             }
3048         }
3049
3050         /// <summary>
3051         /// The right focusable view.<br />
3052         /// This will return null if not set.<br />
3053         /// This will also return null if the specified right focusable view is not on a window.<br />
3054         /// </summary>
3055         /// <since_tizen> 3 </since_tizen>
3056         public View RightFocusableView
3057         {
3058             // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
3059             get
3060             {
3061                 return (View)GetValue(RightFocusableViewProperty);
3062             }
3063             set
3064             {
3065                 SetValue(RightFocusableViewProperty, value);
3066                 NotifyPropertyChanged();
3067             }
3068         }
3069
3070         /// <summary>
3071         /// The up focusable view.<br />
3072         /// This will return null if not set.<br />
3073         /// This will also return null if the specified up focusable view is not on a window.<br />
3074         /// </summary>
3075         /// <since_tizen> 3 </since_tizen>
3076         public View UpFocusableView
3077         {
3078             // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
3079             get
3080             {
3081                 return (View)GetValue(UpFocusableViewProperty);
3082             }
3083             set
3084             {
3085                 SetValue(UpFocusableViewProperty, value);
3086                 NotifyPropertyChanged();
3087             }
3088         }
3089
3090         /// <summary>
3091         /// The down focusable view.<br />
3092         /// This will return null if not set.<br />
3093         /// This will also return null if the specified down focusable view is not on a window.<br />
3094         /// </summary>
3095         /// <since_tizen> 3 </since_tizen>
3096         public View DownFocusableView
3097         {
3098             // As native side will be only storing IDs so need a logic to convert View to ID and vice-versa.
3099             get
3100             {
3101                 return (View)GetValue(DownFocusableViewProperty);
3102             }
3103             set
3104             {
3105                 SetValue(DownFocusableViewProperty, value);
3106                 NotifyPropertyChanged();
3107             }
3108         }
3109
3110         /// <summary>
3111         /// Whether the view should be focusable by keyboard navigation.
3112         /// </summary>
3113         /// <since_tizen> 3 </since_tizen>
3114         public bool Focusable
3115         {
3116             set
3117             {
3118                 SetValue(FocusableProperty, value);
3119                 NotifyPropertyChanged();
3120             }
3121             get
3122             {
3123                 return (bool)GetValue(FocusableProperty);
3124             }
3125         }
3126
3127         /// <summary>
3128         /// Enumeration for describing the states of the view.
3129         /// </summary>
3130         /// <since_tizen> 3 </since_tizen>
3131         public enum States
3132         {
3133             /// <summary>
3134             /// The normal state.
3135             /// </summary>
3136             Normal,
3137             /// <summary>
3138             /// The focused state.
3139             /// </summary>
3140             Focused,
3141             /// <summary>
3142             /// The disabled state.
3143             /// </summary>
3144             Disabled
3145         }
3146
3147         /// <summary>
3148         ///  Retrieves the position of the view.<br />
3149         ///  The coordinates are relative to the view's parent.<br />
3150         /// </summary>
3151         /// <since_tizen> 3 </since_tizen>
3152         public Position CurrentPosition
3153         {
3154             get
3155             {
3156                 return GetCurrentPosition();
3157             }
3158         }
3159
3160         /// <summary>
3161         /// Sets the size of a view for the width and the height.<br />
3162         /// Geometry can be scaled to fit within this area.<br />
3163         /// This does not interfere with the view's scale factor.<br />
3164         /// The views default depth is the minimum of width and height.<br />
3165         /// </summary>
3166         /// <remarks>
3167         /// This NUI object (Size2D) typed property can be configured by multiple cascade setting. <br />
3168         /// For example, this code ( view.Size2D.Width = 100; view.Size2D.Height = 100; ) is equivalent to this ( view.Size2D = new Size2D(100, 100); ). <br />
3169         /// Please note that this multi-cascade setting is especially possible for this NUI object (Size2D). <br />
3170         /// This means by default others are impossible so it is recommended that NUI object typed properties are configured by their constructor with parameters. <br />
3171         /// For example, this code is working fine : view.Scale = new Vector3( 2.0f, 1.5f, 0.0f); <br />
3172         /// but this will not work! : view.Scale.X = 2.0f; view.Scale.Y = 1.5f; <br />
3173         /// </remarks>
3174         /// <since_tizen> 3 </since_tizen>
3175         public Size2D Size2D
3176         {
3177             get
3178             {
3179                 Size2D temp = (Size2D)GetValue(Size2DProperty);
3180                 return new Size2D(OnSize2DChanged, temp.Width, temp.Height);
3181             }
3182             set
3183             {
3184                 SetValue(Size2DProperty, value);
3185                   SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue(value.Width));
3186                   SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue(value.Height));
3187                 NotifyPropertyChanged();
3188             }
3189         }
3190
3191         private void OnSize2DChanged(int width, int height)
3192         {
3193             Size2D = new Size2D(width, height);
3194         }
3195
3196         /// <summary>
3197         ///  Retrieves the size of the view.<br />
3198         ///  The coordinates are relative to the view's parent.<br />
3199         /// </summary>
3200         /// <since_tizen> 3 </since_tizen>
3201         public Size2D CurrentSize
3202         {
3203             get
3204             {
3205                 return GetCurrentSize();
3206             }
3207         }
3208
3209         /// <summary>
3210         /// Retrieves and sets the view's opacity.<br />
3211         /// </summary>
3212         /// <since_tizen> 3 </since_tizen>
3213         public float Opacity
3214         {
3215             get
3216             {
3217                 return (float)GetValue(OpacityProperty);
3218             }
3219             set
3220             {
3221                 SetValue(OpacityProperty, value);
3222                 NotifyPropertyChanged();
3223             }
3224         }
3225
3226         /// <summary>
3227         /// Sets the position of the view for X and Y.<br />
3228         /// By default, sets the position vector between the parent origin and the pivot point (default).<br />
3229         /// If the position inheritance is disabled, sets the world position.<br />
3230         /// </summary>
3231         /// <remarks>
3232         /// This NUI object (Position2D) typed property can be configured by multiple cascade setting. <br />
3233         /// For example, this code ( view.Position2D.X = 100; view.Position2D.Y = 100; ) is equivalent to this ( view.Position2D = new Position2D(100, 100); ). <br />
3234         /// Please note that this multi-cascade setting is especially possible for this NUI object (Position2D). <br />
3235         /// This means by default others are impossible so it is recommended that NUI object typed properties are configured by their constructor with parameters. <br />
3236         /// For example, this code is working fine : view.Scale = new Vector3( 2.0f, 1.5f, 0.0f); <br />
3237         /// but this will not work! : view.Scale.X = 2.0f; view.Scale.Y = 1.5f; <br />
3238         /// </remarks>
3239         /// <since_tizen> 3 </since_tizen>
3240         public Position2D Position2D
3241         {
3242             get
3243             {
3244                 Position2D temp = (Position2D)GetValue(Position2DProperty);
3245                 return new Position2D(OnPosition2DChanged, temp.X, temp.Y);
3246             }
3247             set
3248             {
3249                 SetValue(Position2DProperty, value);
3250                 NotifyPropertyChanged();
3251             }
3252         }
3253
3254         private void OnPosition2DChanged(int x, int y)
3255         {
3256             Position2D = new Position2D(x, y);
3257         }
3258
3259         /// <summary>
3260         /// Retrieves the screen postion of the view.<br />
3261         /// </summary>
3262         /// <since_tizen> 3 </since_tizen>
3263         public Vector2 ScreenPosition
3264         {
3265             get
3266             {
3267                 Vector2 temp = new Vector2(0.0f, 0.0f);
3268                 GetProperty(View.Property.SCREEN_POSITION).Get(temp);
3269                 return temp;
3270             }
3271         }
3272
3273         /// <summary>
3274         /// Determines whether the pivot point should be used to determine the position of the view.
3275         /// This is true by default.
3276         /// </summary>
3277         /// <remarks>If false, then the top-left of the view is used for the position.
3278         /// Setting this to false will allow scaling or rotation around the anchor-point without affecting the view's position.
3279         /// </remarks>
3280         /// <since_tizen> 3 </since_tizen>
3281         public bool PositionUsesPivotPoint
3282         {
3283             get
3284             {
3285                 return (bool)GetValue(PositionUsesPivotPointProperty);
3286             }
3287             set
3288             {
3289                 SetValue(PositionUsesPivotPointProperty, value);
3290                 NotifyPropertyChanged();
3291             }
3292         }
3293
3294         /// <summary>
3295         /// Please do not use! this will be deprecated.
3296         /// </summary>
3297         /// Please do not use! this will be deprecated!
3298         /// Instead please use PositionUsesPivotPoint.
3299         /// <since_tizen> 3 </since_tizen>
3300         [Obsolete("Please do not use! This will be deprecated! Please use PositionUsesPivotPoint instead! " +
3301             "Like: " +
3302             "View view = new View(); " +
3303             "view.PivotPoint = PivotPoint.Center; " +
3304             "view.PositionUsesPivotPoint = true;")]
3305         [EditorBrowsable(EditorBrowsableState.Never)]
3306         public bool PositionUsesAnchorPoint
3307         {
3308             get
3309             {
3310                 bool temp = false;
3311                 GetProperty(View.Property.POSITION_USES_ANCHOR_POINT).Get(out temp);
3312                 return temp;
3313             }
3314             set
3315             {
3316                 SetProperty(View.Property.POSITION_USES_ANCHOR_POINT, new Tizen.NUI.PropertyValue(value));
3317                 NotifyPropertyChanged();
3318             }
3319         }
3320
3321         internal bool FocusState
3322         {
3323             get
3324             {
3325                 return IsKeyboardFocusable();
3326             }
3327             set
3328             {
3329                 SetKeyboardFocusable(value);
3330             }
3331         }
3332
3333         /// <summary>
3334         /// Queries whether the view is connected to the stage.<br />
3335         /// When a view is connected, it will be directly or indirectly parented to the root view.<br />
3336         /// </summary>
3337         /// <since_tizen> 3 </since_tizen>
3338         public bool IsOnWindow
3339         {
3340             get
3341             {
3342                 return OnWindow();
3343             }
3344         }
3345
3346         /// <summary>
3347         /// Gets the depth in the hierarchy for the view.
3348         /// </summary>
3349         /// <since_tizen> 3 </since_tizen>
3350         public int HierarchyDepth
3351         {
3352             get
3353             {
3354                 return GetHierarchyDepth();
3355             }
3356         }
3357
3358         /// <summary>
3359         /// Sets the sibling order of the view so the depth position can be defined within the same parent.
3360         /// </summary>
3361         /// <remarks>
3362         /// Note the initial value is 0. SiblingOrder should be bigger than 0 or equal to 0.
3363         /// Raise, Lower, RaiseToTop, LowerToBottom, RaiseAbove, and LowerBelow will override the sibling order.
3364         /// The values set by this property will likely change.
3365         /// </remarks>
3366         /// <since_tizen> 3 </since_tizen>
3367         public int SiblingOrder
3368         {
3369             get
3370             {
3371                 return (int)GetValue(SiblingOrderProperty);
3372             }
3373             set
3374             {
3375                 SetValue(SiblingOrderProperty, value);
3376                 NotifyPropertyChanged();
3377             }
3378         }
3379
3380         /// <summary>
3381         /// Returns the natural size of the view.
3382         /// </summary>
3383         /// <remarks>
3384         /// Deriving classes stipulate the natural size and by default a view has a zero natural size.
3385         /// </remarks>
3386         /// /// Please do not use! this will be deprecated!
3387         /// Instead please use NaturalSize2D.
3388         /// <since_tizen> 3 </since_tizen>
3389         [Obsolete("Please do not use! This will be deprecated! Please use NaturalSize2D instead! " +
3390             "Like: " +
3391             "TextLabel label = new TextLabel(\"Hello World!\"); " +
3392             "Size2D size = label.NaturalSize2D;")]
3393         [EditorBrowsable(EditorBrowsableState.Never)]
3394         public Vector3 NaturalSize
3395         {
3396             get
3397             {
3398                 Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetNaturalSize(swigCPtr), true);
3399                 if (NDalicPINVOKE.SWIGPendingException.Pending)
3400                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3401                 return ret;
3402             }
3403         }
3404
3405         /// <summary>
3406         /// Returns the natural size (Size2D) of the view.
3407         /// </summary>
3408         /// <remarks>
3409         /// Deriving classes stipulate the natural size and by default a view has a zero natural size.
3410         /// </remarks>
3411         /// <since_tizen> 4 </since_tizen>
3412         public Size2D NaturalSize2D
3413         {
3414             get
3415             {
3416                 Vector3 temp = new Vector3(NDalicPINVOKE.Actor_GetNaturalSize(swigCPtr), true);
3417                 if (NDalicPINVOKE.SWIGPendingException.Pending)
3418                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3419
3420                 return new Size2D((int)temp.Width, (int)temp.Height);
3421             }
3422         }
3423
3424         /// <summary>
3425         /// Set the layout on this control.
3426         /// </summary>
3427         /// <remarks>
3428         /// </remarks>
3429         internal LayoutItem Layout
3430         {
3431             get
3432             {
3433                 IntPtr cPtr = Tizen.NUI.NDalicManualPINVOKE.GetLayout__SWIG_1(View.getCPtr(this));
3434
3435                 HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
3436                 BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle);
3437                 NDalicPINVOKE.delete_BaseHandle(CPtr);
3438                 CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
3439
3440                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3441
3442                 return basehandle as LayoutItem;
3443             }
3444             set
3445             {
3446                 Tizen.NUI.NDalicManualPINVOKE.SetLayout__SWIG_1(View.getCPtr(this), LayoutItem.getCPtr(value));
3447                 value.LayoutChildren.Clear();
3448                 layoutSet = true;
3449                 foreach (View view in Children)
3450                 {
3451                     value.LayoutChildren.Add(view.Layout);
3452                 }
3453             }
3454         }
3455
3456         /// <summary>
3457         /// Shows the view.
3458         /// </summary>
3459         /// <remarks>
3460         /// This is an asynchronous method.
3461         /// </remarks>
3462         /// <since_tizen> 3 </since_tizen>
3463         public void Show()
3464         {
3465             SetVisible(true);
3466         }
3467
3468         /// <summary>
3469         /// Hides the view.
3470         /// </summary>
3471         /// <remarks>
3472         /// This is an asynchronous method.
3473         /// If the view is hidden, then the view and its children will not be rendered.
3474         /// This is regardless of the individual visibility of the children, i.e., the view will only be rendered if all of its parents are shown.
3475         /// </remarks>
3476         /// <since_tizen> 3 </since_tizen>
3477         public void Hide()
3478         {
3479             SetVisible(false);
3480         }
3481
3482         internal void Raise()
3483         {
3484             var parentChildren = GetParent()?.Children;
3485
3486             if (parentChildren != null)
3487             {
3488                 int currentIndex = parentChildren.IndexOf(this);
3489
3490                 // If the view is not already the last item in the list.
3491                 if (currentIndex >= 0 && currentIndex < parentChildren.Count - 1)
3492                 {
3493                     View temp = parentChildren[currentIndex + 1];
3494                     parentChildren[currentIndex + 1] = this;
3495                     parentChildren[currentIndex] = temp;
3496
3497                     NDalicPINVOKE.Raise(swigCPtr);
3498                     if (NDalicPINVOKE.SWIGPendingException.Pending)
3499                         throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3500                 }
3501             }
3502
3503         }
3504
3505         internal void Lower()
3506         {
3507             var parentChildren = GetParent()?.Children;
3508
3509             if (parentChildren != null)
3510             {
3511                 int currentIndex = parentChildren.IndexOf(this);
3512
3513                 // If the view is not already the first item in the list.
3514                 if (currentIndex > 0 && currentIndex < parentChildren.Count)
3515                 {
3516                     View temp = parentChildren[currentIndex - 1];
3517                     parentChildren[currentIndex - 1] = this;
3518                     parentChildren[currentIndex] = temp;
3519
3520                     NDalicPINVOKE.Lower(swigCPtr);
3521                     if (NDalicPINVOKE.SWIGPendingException.Pending)
3522                         throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3523                 }
3524             }
3525         }
3526
3527         /// <summary>
3528         /// Raises the view above all other views.
3529         /// </summary>
3530         /// <remarks>
3531         /// Sibling order of views within the parent will be updated automatically.
3532         /// Once a raise or lower API is used, that view will then have an exclusive sibling order independent of insertion.
3533         /// </remarks>
3534         /// <since_tizen> 3 </since_tizen>
3535         public void RaiseToTop()
3536         {
3537             var parentChildren = GetParent()?.Children;
3538
3539             if (parentChildren != null)
3540             {
3541                 parentChildren.Remove(this);
3542                 parentChildren.Add(this);
3543
3544                 NDalicPINVOKE.RaiseToTop(swigCPtr);
3545                 if (NDalicPINVOKE.SWIGPendingException.Pending)
3546                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3547             }
3548
3549         }
3550
3551         /// <summary>
3552         /// Lowers the view to the bottom of all views.
3553         /// </summary>
3554         /// <remarks>
3555         /// The sibling order of views within the parent will be updated automatically.
3556         /// Once a raise or lower API is used that view will then have an exclusive sibling order independent of insertion.
3557         /// </remarks>
3558         /// <since_tizen> 3 </since_tizen>
3559         public void LowerToBottom()
3560         {
3561             var parentChildren = GetParent()?.Children;
3562
3563             if (parentChildren != null)
3564             {
3565                 parentChildren.Remove(this);
3566                 parentChildren.Insert(0, this);
3567
3568                 NDalicPINVOKE.LowerToBottom(swigCPtr);
3569                 if (NDalicPINVOKE.SWIGPendingException.Pending)
3570                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3571             }
3572         }
3573
3574         /// <summary>
3575         /// Queries if all resources required by a view are loaded and ready.
3576         /// </summary>
3577         /// <remarks>Most resources are only loaded when the control is placed on the stage.
3578         /// </remarks>
3579         /// <since_tizen> 3 </since_tizen>
3580         public bool IsResourceReady()
3581         {
3582             bool ret = NDalicPINVOKE.IsResourceReady(swigCPtr);
3583             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3584             return ret;
3585         }
3586
3587         /// <summary>
3588         /// Raises the view to above the target view.
3589         /// </summary>
3590         /// <remarks>The sibling order of views within the parent will be updated automatically.
3591         /// Views on the level above the target view will still be shown above this view.
3592         /// Raising this view above views with the same sibling order as each other will raise this view above them.
3593         /// Once a raise or lower API is used that view will then have an exclusive sibling order independent of insertion.
3594         /// </remarks>
3595         /// <param name="target">Will be raised above this view.</param>
3596         internal void RaiseAbove(View target)
3597         {
3598             var parentChildren = GetParent()?.Children;
3599
3600             if (parentChildren != null)
3601             {
3602                 int currentIndex = parentChildren.IndexOf(this);
3603                 int targetIndex = parentChildren.IndexOf(target);
3604
3605                 if (currentIndex < 0 || targetIndex < 0 ||
3606                     currentIndex >= parentChildren.Count || targetIndex >= parentChildren.Count)
3607                 {
3608                     NUILog.Error("index should be bigger than 0 and less than children of layer count");
3609                     return;
3610                 }
3611                 // If the currentIndex is less than the target index and the target has the same parent.
3612                 if (currentIndex < targetIndex)
3613                 {
3614                     parentChildren.Remove(this);
3615                     parentChildren.Insert(targetIndex, this);
3616
3617                     NDalicPINVOKE.RaiseAbove(swigCPtr, View.getCPtr(target));
3618                     if (NDalicPINVOKE.SWIGPendingException.Pending)
3619                         throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3620                 }
3621             }
3622
3623         }
3624
3625         /// <summary>
3626         /// Lowers the view to below the target view.
3627         /// </summary>
3628         /// <remarks>The sibling order of views within the parent will be updated automatically.
3629         /// Lowering this view below views with the same sibling order as each other will lower this view above them.
3630         /// Once a raise or lower API is used that view will then have an exclusive sibling order independent of insertion.
3631         /// </remarks>
3632         /// <param name="target">Will be lowered below this view.</param>
3633         internal void LowerBelow(View target)
3634         {
3635             var parentChildren = GetParent()?.Children;
3636
3637             if (parentChildren != null)
3638             {
3639                 int currentIndex = parentChildren.IndexOf(this);
3640                 int targetIndex = parentChildren.IndexOf(target);
3641                 if (currentIndex < 0 || targetIndex < 0 ||
3642                    currentIndex >= parentChildren.Count || targetIndex >= parentChildren.Count)
3643                 {
3644                     NUILog.Error("index should be bigger than 0 and less than children of layer count");
3645                     return;
3646                 }
3647
3648                 // If the currentIndex is not already the 0th index and the target has the same parent.
3649                 if ((currentIndex != 0) && (targetIndex != -1) &&
3650                     (currentIndex > targetIndex))
3651                 {
3652                     parentChildren.Remove(this);
3653                     parentChildren.Insert(targetIndex, this);
3654
3655                     NDalicPINVOKE.LowerBelow(swigCPtr, View.getCPtr(target));
3656                     if (NDalicPINVOKE.SWIGPendingException.Pending)
3657                         throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3658                 }
3659             }
3660
3661         }
3662
3663         internal string GetName()
3664         {
3665             string ret = NDalicPINVOKE.Actor_GetName(swigCPtr);
3666             if (NDalicPINVOKE.SWIGPendingException.Pending)
3667                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3668             return ret;
3669         }
3670
3671         internal void SetName(string name)
3672         {
3673             NDalicPINVOKE.Actor_SetName(swigCPtr, name);
3674             if (NDalicPINVOKE.SWIGPendingException.Pending)
3675                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3676         }
3677
3678         internal uint GetId()
3679         {
3680             uint ret = NDalicPINVOKE.Actor_GetId(swigCPtr);
3681             if (NDalicPINVOKE.SWIGPendingException.Pending)
3682                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3683             return ret;
3684         }
3685
3686         internal bool IsRoot()
3687         {
3688             bool ret = NDalicPINVOKE.Actor_IsRoot(swigCPtr);
3689             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3690             return ret;
3691         }
3692
3693         internal bool OnWindow()
3694         {
3695             bool ret = NDalicPINVOKE.Actor_OnStage(swigCPtr);
3696             if (NDalicPINVOKE.SWIGPendingException.Pending)
3697                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3698             return ret;
3699         }
3700
3701         /// <summary>
3702         /// Gets the parent layer of this view.If a view has no parent, this method does nothing.
3703         /// </summary>
3704         /// <pre>The view has been initialized. </pre>
3705         /// <returns>the parent layer of view </returns>
3706         /// <since_tizen> 5 </since_tizen>
3707         public Layer GetLayer()
3708         {
3709             //to fix memory leak issue, match the handle count with native side.
3710             IntPtr cPtr = NDalicPINVOKE.Actor_GetLayer(swigCPtr);
3711             HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
3712             Layer ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as Layer;
3713             NDalicPINVOKE.delete_BaseHandle(CPtr);
3714             CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
3715
3716             if (NDalicPINVOKE.SWIGPendingException.Pending)
3717                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3718             return ret;
3719         }
3720
3721         /// <summary>
3722         /// Removes a view from its parent view or layer. If a view has no parent, this method does nothing.
3723         /// </summary>
3724         /// <pre>The (child) view has been initialized. </pre>
3725         /// <since_tizen> 4 </since_tizen>
3726         public void Unparent()
3727         {
3728             GetParent()?.Remove(this);
3729         }
3730
3731         /// <summary>
3732         /// Search through this view's hierarchy for a view with the given name.
3733         /// The view itself is also considered in the search.
3734         /// </summary>
3735         /// <pre>The view has been initialized.</pre>
3736         /// <param name="viewName">The name of the view to find.</param>
3737         /// <returns>A handle to the view if found, or an empty handle if not.</returns>
3738         /// <since_tizen> 3 </since_tizen>
3739         public View FindChildByName(string viewName)
3740         {
3741             //to fix memory leak issue, match the handle count with native side.
3742             IntPtr cPtr = NDalicPINVOKE.Actor_FindChildByName(swigCPtr, viewName);
3743             HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
3744             View ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as View;
3745             NDalicPINVOKE.delete_BaseHandle(CPtr);
3746             CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
3747
3748             if (NDalicPINVOKE.SWIGPendingException.Pending)
3749                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3750             return ret;
3751         }
3752
3753         internal View FindChildById(uint id)
3754         {
3755             //to fix memory leak issue, match the handle count with native side.
3756             IntPtr cPtr = NDalicPINVOKE.Actor_FindChildById(swigCPtr, id);
3757             HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
3758             View ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as View;
3759             NDalicPINVOKE.delete_BaseHandle(CPtr);
3760             CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
3761
3762             if (NDalicPINVOKE.SWIGPendingException.Pending)
3763                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3764             return ret;
3765         }
3766
3767         internal void SetParentOrigin(Vector3 origin)
3768         {
3769             NDalicPINVOKE.Actor_SetParentOrigin(swigCPtr, Vector3.getCPtr(origin));
3770             if (NDalicPINVOKE.SWIGPendingException.Pending)
3771                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3772         }
3773
3774         internal Vector3 GetCurrentParentOrigin()
3775         {
3776             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentParentOrigin(swigCPtr), true);
3777             if (NDalicPINVOKE.SWIGPendingException.Pending)
3778                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3779             return ret;
3780         }
3781
3782         internal void SetAnchorPoint(Vector3 anchorPoint)
3783         {
3784             NDalicPINVOKE.Actor_SetAnchorPoint(swigCPtr, Vector3.getCPtr(anchorPoint));
3785             if (NDalicPINVOKE.SWIGPendingException.Pending)
3786                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3787         }
3788
3789         internal Vector3 GetCurrentAnchorPoint()
3790         {
3791             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentAnchorPoint(swigCPtr), true);
3792             if (NDalicPINVOKE.SWIGPendingException.Pending)
3793                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3794             return ret;
3795         }
3796
3797         internal void SetSize(float width, float height)
3798         {
3799             NDalicPINVOKE.Actor_SetSize__SWIG_0(swigCPtr, width, height);
3800             if (NDalicPINVOKE.SWIGPendingException.Pending)
3801                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3802         }
3803
3804         internal void SetSize(float width, float height, float depth)
3805         {
3806             NDalicPINVOKE.Actor_SetSize__SWIG_1(swigCPtr, width, height, depth);
3807             if (NDalicPINVOKE.SWIGPendingException.Pending)
3808                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3809         }
3810
3811         internal void SetSize(Vector2 size)
3812         {
3813             NDalicPINVOKE.Actor_SetSize__SWIG_2(swigCPtr, Vector2.getCPtr(size));
3814             if (NDalicPINVOKE.SWIGPendingException.Pending)
3815                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3816         }
3817
3818         internal void SetSize(Vector3 size)
3819         {
3820             NDalicPINVOKE.Actor_SetSize__SWIG_3(swigCPtr, Vector3.getCPtr(size));
3821             if (NDalicPINVOKE.SWIGPendingException.Pending)
3822                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3823         }
3824
3825         internal Vector3 GetTargetSize()
3826         {
3827             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetTargetSize(swigCPtr), true);
3828             if (NDalicPINVOKE.SWIGPendingException.Pending)
3829                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3830             return ret;
3831         }
3832
3833         internal Size2D GetCurrentSize()
3834         {
3835             Size ret = new Size(NDalicPINVOKE.Actor_GetCurrentSize(swigCPtr), true);
3836             if (NDalicPINVOKE.SWIGPendingException.Pending)
3837                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3838             Size2D size = new Size2D((int)ret.Width, (int)ret.Height);
3839             return size;
3840         }
3841
3842         internal Vector3 GetNaturalSize()
3843         {
3844             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetNaturalSize(swigCPtr), true);
3845             if (NDalicPINVOKE.SWIGPendingException.Pending)
3846                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3847             return ret;
3848         }
3849
3850         internal void SetPosition(float x, float y)
3851         {
3852             NDalicPINVOKE.Actor_SetPosition__SWIG_0(swigCPtr, x, y);
3853             if (NDalicPINVOKE.SWIGPendingException.Pending)
3854                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3855         }
3856
3857         internal void SetPosition(float x, float y, float z)
3858         {
3859             NDalicPINVOKE.Actor_SetPosition__SWIG_1(swigCPtr, x, y, z);
3860             if (NDalicPINVOKE.SWIGPendingException.Pending)
3861                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3862         }
3863
3864         internal void SetPosition(Vector3 position)
3865         {
3866             NDalicPINVOKE.Actor_SetPosition__SWIG_2(swigCPtr, Vector3.getCPtr(position));
3867             if (NDalicPINVOKE.SWIGPendingException.Pending)
3868                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3869         }
3870
3871         internal void SetX(float x)
3872         {
3873             NDalicPINVOKE.Actor_SetX(swigCPtr, x);
3874             if (NDalicPINVOKE.SWIGPendingException.Pending)
3875                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3876         }
3877
3878         internal void SetY(float y)
3879         {
3880             NDalicPINVOKE.Actor_SetY(swigCPtr, y);
3881             if (NDalicPINVOKE.SWIGPendingException.Pending)
3882                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3883         }
3884
3885         internal void SetZ(float z)
3886         {
3887             NDalicPINVOKE.Actor_SetZ(swigCPtr, z);
3888             if (NDalicPINVOKE.SWIGPendingException.Pending)
3889                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3890         }
3891
3892         internal void TranslateBy(Vector3 distance)
3893         {
3894             NDalicPINVOKE.Actor_TranslateBy(swigCPtr, Vector3.getCPtr(distance));
3895             if (NDalicPINVOKE.SWIGPendingException.Pending)
3896                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3897         }
3898
3899         internal Position GetCurrentPosition()
3900         {
3901             Position ret = new Position(NDalicPINVOKE.Actor_GetCurrentPosition(swigCPtr), true);
3902             if (NDalicPINVOKE.SWIGPendingException.Pending)
3903                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3904             return ret;
3905         }
3906
3907         internal Vector3 GetCurrentWorldPosition()
3908         {
3909             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentWorldPosition(swigCPtr), true);
3910             if (NDalicPINVOKE.SWIGPendingException.Pending)
3911                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3912             return ret;
3913         }
3914
3915         internal void SetInheritPosition(bool inherit)
3916         {
3917             NDalicPINVOKE.Actor_SetInheritPosition(swigCPtr, inherit);
3918             if (NDalicPINVOKE.SWIGPendingException.Pending)
3919                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3920         }
3921
3922         internal bool IsPositionInherited()
3923         {
3924             bool ret = NDalicPINVOKE.Actor_IsPositionInherited(swigCPtr);
3925             if (NDalicPINVOKE.SWIGPendingException.Pending)
3926                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3927             return ret;
3928         }
3929
3930         internal void SetOrientation(Degree angle, Vector3 axis)
3931         {
3932             NDalicPINVOKE.Actor_SetOrientation__SWIG_0(swigCPtr, Degree.getCPtr(angle), Vector3.getCPtr(axis));
3933             if (NDalicPINVOKE.SWIGPendingException.Pending)
3934                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3935         }
3936
3937         internal void SetOrientation(Radian angle, Vector3 axis)
3938         {
3939             NDalicPINVOKE.Actor_SetOrientation__SWIG_1(swigCPtr, Radian.getCPtr(angle), Vector3.getCPtr(axis));
3940             if (NDalicPINVOKE.SWIGPendingException.Pending)
3941                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3942         }
3943
3944         internal void SetOrientation(Rotation orientation)
3945         {
3946             NDalicPINVOKE.Actor_SetOrientation__SWIG_2(swigCPtr, Rotation.getCPtr(orientation));
3947             if (NDalicPINVOKE.SWIGPendingException.Pending)
3948                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3949         }
3950
3951         internal void RotateBy(Degree angle, Vector3 axis)
3952         {
3953             NDalicPINVOKE.Actor_RotateBy__SWIG_0(swigCPtr, Degree.getCPtr(angle), Vector3.getCPtr(axis));
3954             if (NDalicPINVOKE.SWIGPendingException.Pending)
3955                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3956         }
3957
3958         internal void RotateBy(Radian angle, Vector3 axis)
3959         {
3960             NDalicPINVOKE.Actor_RotateBy__SWIG_1(swigCPtr, Radian.getCPtr(angle), Vector3.getCPtr(axis));
3961             if (NDalicPINVOKE.SWIGPendingException.Pending)
3962                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3963         }
3964
3965         internal void RotateBy(Rotation relativeRotation)
3966         {
3967             NDalicPINVOKE.Actor_RotateBy__SWIG_2(swigCPtr, Rotation.getCPtr(relativeRotation));
3968             if (NDalicPINVOKE.SWIGPendingException.Pending)
3969                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3970         }
3971
3972         internal Rotation GetCurrentOrientation()
3973         {
3974             Rotation ret = new Rotation(NDalicPINVOKE.Actor_GetCurrentOrientation(swigCPtr), true);
3975             if (NDalicPINVOKE.SWIGPendingException.Pending)
3976                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3977             return ret;
3978         }
3979
3980         internal void SetInheritOrientation(bool inherit)
3981         {
3982             NDalicPINVOKE.Actor_SetInheritOrientation(swigCPtr, inherit);
3983             if (NDalicPINVOKE.SWIGPendingException.Pending)
3984                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3985         }
3986
3987         internal bool IsOrientationInherited()
3988         {
3989             bool ret = NDalicPINVOKE.Actor_IsOrientationInherited(swigCPtr);
3990             if (NDalicPINVOKE.SWIGPendingException.Pending)
3991                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
3992             return ret;
3993         }
3994
3995         internal Rotation GetCurrentWorldOrientation()
3996         {
3997             Rotation ret = new Rotation(NDalicPINVOKE.Actor_GetCurrentWorldOrientation(swigCPtr), true);
3998             if (NDalicPINVOKE.SWIGPendingException.Pending)
3999                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4000             return ret;
4001         }
4002
4003         internal void SetScale(float scale)
4004         {
4005             NDalicPINVOKE.Actor_SetScale__SWIG_0(swigCPtr, scale);
4006             if (NDalicPINVOKE.SWIGPendingException.Pending)
4007                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4008         }
4009
4010         internal void SetScale(float scaleX, float scaleY, float scaleZ)
4011         {
4012             NDalicPINVOKE.Actor_SetScale__SWIG_1(swigCPtr, scaleX, scaleY, scaleZ);
4013             if (NDalicPINVOKE.SWIGPendingException.Pending)
4014                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4015         }
4016
4017         internal void SetScale(Vector3 scale)
4018         {
4019             NDalicPINVOKE.Actor_SetScale__SWIG_2(swigCPtr, Vector3.getCPtr(scale));
4020             if (NDalicPINVOKE.SWIGPendingException.Pending)
4021                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4022         }
4023
4024         internal void ScaleBy(Vector3 relativeScale)
4025         {
4026             NDalicPINVOKE.Actor_ScaleBy(swigCPtr, Vector3.getCPtr(relativeScale));
4027             if (NDalicPINVOKE.SWIGPendingException.Pending)
4028                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4029         }
4030
4031         internal Vector3 GetCurrentScale()
4032         {
4033             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentScale(swigCPtr), true);
4034             if (NDalicPINVOKE.SWIGPendingException.Pending)
4035                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4036             return ret;
4037         }
4038
4039         internal Vector3 GetCurrentWorldScale()
4040         {
4041             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetCurrentWorldScale(swigCPtr), true);
4042             if (NDalicPINVOKE.SWIGPendingException.Pending)
4043                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4044             return ret;
4045         }
4046
4047         internal void SetInheritScale(bool inherit)
4048         {
4049             NDalicPINVOKE.Actor_SetInheritScale(swigCPtr, inherit);
4050             if (NDalicPINVOKE.SWIGPendingException.Pending)
4051                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4052         }
4053
4054         internal bool IsScaleInherited()
4055         {
4056             bool ret = NDalicPINVOKE.Actor_IsScaleInherited(swigCPtr);
4057             if (NDalicPINVOKE.SWIGPendingException.Pending)
4058                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4059             return ret;
4060         }
4061
4062         internal Matrix GetCurrentWorldMatrix()
4063         {
4064             Matrix ret = new Matrix(NDalicPINVOKE.Actor_GetCurrentWorldMatrix(swigCPtr), true);
4065             if (NDalicPINVOKE.SWIGPendingException.Pending)
4066                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4067             return ret;
4068         }
4069
4070         internal void SetVisible(bool visible)
4071         {
4072             NDalicPINVOKE.Actor_SetVisible(swigCPtr, visible);
4073             if (NDalicPINVOKE.SWIGPendingException.Pending)
4074                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4075         }
4076
4077         internal bool IsVisible()
4078         {
4079             bool ret = NDalicPINVOKE.Actor_IsVisible(swigCPtr);
4080             if (NDalicPINVOKE.SWIGPendingException.Pending)
4081                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4082             return ret;
4083         }
4084
4085         internal void SetOpacity(float opacity)
4086         {
4087             NDalicPINVOKE.Actor_SetOpacity(swigCPtr, opacity);
4088             if (NDalicPINVOKE.SWIGPendingException.Pending)
4089                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4090         }
4091
4092         internal float GetCurrentOpacity()
4093         {
4094             float ret = NDalicPINVOKE.Actor_GetCurrentOpacity(swigCPtr);
4095             if (NDalicPINVOKE.SWIGPendingException.Pending)
4096                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4097             return ret;
4098         }
4099
4100         internal void SetColor(Vector4 color)
4101         {
4102             NDalicPINVOKE.Actor_SetColor(swigCPtr, Vector4.getCPtr(color));
4103             if (NDalicPINVOKE.SWIGPendingException.Pending)
4104                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4105         }
4106
4107         internal Vector4 GetCurrentColor()
4108         {
4109             Vector4 ret = new Vector4(NDalicPINVOKE.Actor_GetCurrentColor(swigCPtr), true);
4110             if (NDalicPINVOKE.SWIGPendingException.Pending)
4111                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4112             return ret;
4113         }
4114
4115         internal void SetColorMode(ColorMode colorMode)
4116         {
4117             NDalicPINVOKE.Actor_SetColorMode(swigCPtr, (int)colorMode);
4118             if (NDalicPINVOKE.SWIGPendingException.Pending)
4119                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4120         }
4121
4122         internal ColorMode GetColorMode()
4123         {
4124             ColorMode ret = (ColorMode)NDalicPINVOKE.Actor_GetColorMode(swigCPtr);
4125             if (NDalicPINVOKE.SWIGPendingException.Pending)
4126                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4127             return ret;
4128         }
4129
4130         internal Vector4 GetCurrentWorldColor()
4131         {
4132             Vector4 ret = new Vector4(NDalicPINVOKE.Actor_GetCurrentWorldColor(swigCPtr), true);
4133             if (NDalicPINVOKE.SWIGPendingException.Pending)
4134                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4135             return ret;
4136         }
4137
4138         internal void SetDrawMode(DrawModeType drawMode)
4139         {
4140             NDalicPINVOKE.Actor_SetDrawMode(swigCPtr, (int)drawMode);
4141             if (NDalicPINVOKE.SWIGPendingException.Pending)
4142                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4143         }
4144
4145         internal DrawModeType GetDrawMode()
4146         {
4147             DrawModeType ret = (DrawModeType)NDalicPINVOKE.Actor_GetDrawMode(swigCPtr);
4148             if (NDalicPINVOKE.SWIGPendingException.Pending)
4149                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4150             return ret;
4151         }
4152
4153         /// <summary>
4154         /// Converts screen coordinates into the view's coordinate system using the default camera.
4155         /// </summary>
4156         /// <pre>The view has been initialized.</pre>
4157         /// <remarks>The view coordinates are relative to the top-left(0.0, 0.0, 0.5).</remarks>
4158         /// <param name="localX">On return, the X-coordinate relative to the view.</param>
4159         /// <param name="localY">On return, the Y-coordinate relative to the view.</param>
4160         /// <param name="screenX">The screen X-coordinate.</param>
4161         /// <param name="screenY">The screen Y-coordinate.</param>
4162         /// <returns>True if the conversion succeeded.</returns>
4163         /// <since_tizen> 3 </since_tizen>
4164         public bool ScreenToLocal(out float localX, out float localY, float screenX, float screenY)
4165         {
4166             bool ret = NDalicPINVOKE.Actor_ScreenToLocal(swigCPtr, out localX, out localY, screenX, screenY);
4167             if (NDalicPINVOKE.SWIGPendingException.Pending)
4168                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4169             return ret;
4170         }
4171
4172         internal void SetKeyboardFocusable(bool focusable)
4173         {
4174             NDalicPINVOKE.Actor_SetKeyboardFocusable(swigCPtr, focusable);
4175             if (NDalicPINVOKE.SWIGPendingException.Pending)
4176                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4177         }
4178
4179         internal bool IsKeyboardFocusable()
4180         {
4181             bool ret = NDalicPINVOKE.Actor_IsKeyboardFocusable(swigCPtr);
4182             if (NDalicPINVOKE.SWIGPendingException.Pending)
4183                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4184             return ret;
4185         }
4186
4187         internal void SetResizePolicy(ResizePolicyType policy, DimensionType dimension)
4188         {
4189             NDalicPINVOKE.Actor_SetResizePolicy(swigCPtr, (int)policy, (int)dimension);
4190             if (NDalicPINVOKE.SWIGPendingException.Pending)
4191                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4192         }
4193
4194         internal ResizePolicyType GetResizePolicy(DimensionType dimension)
4195         {
4196             ResizePolicyType ret = (ResizePolicyType)NDalicPINVOKE.Actor_GetResizePolicy(swigCPtr, (int)dimension);
4197             if (NDalicPINVOKE.SWIGPendingException.Pending)
4198                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4199             return ret;
4200         }
4201
4202         /// <summary>
4203         /// Sets the relative to parent size factor of the view.<br />
4204         /// This factor is only used when ResizePolicy is set to either:
4205         /// ResizePolicy::SIZE_RELATIVE_TO_PARENT or ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT.<br />
4206         /// This view's size is set to the view's size multiplied by or added to this factor, depending on ResizePolicy.<br />
4207         /// </summary>
4208         /// <pre>The view has been initialized.</pre>
4209         /// <param name="factor">A Vector3 representing the relative factor to be applied to each axis.</param>
4210         /// <since_tizen> 3 </since_tizen>
4211         public void SetSizeModeFactor(Vector3 factor)
4212         {
4213             NDalicPINVOKE.Actor_SetSizeModeFactor(swigCPtr, Vector3.getCPtr(factor));
4214             if (NDalicPINVOKE.SWIGPendingException.Pending)
4215                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4216         }
4217
4218         internal Vector3 GetSizeModeFactor()
4219         {
4220             Vector3 ret = new Vector3(NDalicPINVOKE.Actor_GetSizeModeFactor(swigCPtr), true);
4221             if (NDalicPINVOKE.SWIGPendingException.Pending)
4222                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4223             return ret;
4224         }
4225
4226         /// <summary>
4227         /// Calculates the height of the view given a width.<br />
4228         /// The natural size is used for default calculation.<br />
4229         /// Size 0 is treated as aspect ratio 1:1.<br />
4230         /// </summary>
4231         /// <param name="width">The width to use.</param>
4232         /// <returns>The height based on the width.</returns>
4233         /// <since_tizen> 3 </since_tizen>
4234         public float GetHeightForWidth(float width)
4235         {
4236             float ret = NDalicPINVOKE.Actor_GetHeightForWidth(swigCPtr, width);
4237             if (NDalicPINVOKE.SWIGPendingException.Pending)
4238                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4239             return ret;
4240         }
4241
4242         /// <summary>
4243         /// Calculates the width of the view given a height.<br />
4244         /// The natural size is used for default calculation.<br />
4245         /// Size 0 is treated as aspect ratio 1:1.<br />
4246         /// </summary>
4247         /// <param name="height">The height to use.</param>
4248         /// <returns>The width based on the height.</returns>
4249         /// <since_tizen> 3 </since_tizen>
4250         public float GetWidthForHeight(float height)
4251         {
4252             float ret = NDalicPINVOKE.Actor_GetWidthForHeight(swigCPtr, height);
4253             if (NDalicPINVOKE.SWIGPendingException.Pending)
4254                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4255             return ret;
4256         }
4257
4258         /// <summary>
4259         /// Return the amount of size allocated for relayout.
4260         /// </summary>
4261         /// <param name="dimension">The dimension to retrieve.</param>
4262         /// <returns>Return the size.</returns>
4263         /// <since_tizen> 3 </since_tizen>
4264         public float GetRelayoutSize(DimensionType dimension)
4265         {
4266             float ret = NDalicPINVOKE.Actor_GetRelayoutSize(swigCPtr, (int)dimension);
4267             if (NDalicPINVOKE.SWIGPendingException.Pending)
4268                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4269             return ret;
4270         }
4271
4272         /// <summary>
4273         /// Set the padding for the view.
4274         /// </summary>
4275         /// <param name="padding">Padding for the view.</param>
4276         /// <since_tizen> 3 </since_tizen>
4277         public void SetPadding(PaddingType padding)
4278         {
4279             NDalicPINVOKE.Actor_SetPadding(swigCPtr, PaddingType.getCPtr(padding));
4280             if (NDalicPINVOKE.SWIGPendingException.Pending)
4281                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4282         }
4283
4284         /// <summary>
4285         /// Return the value of padding for the view.
4286         /// </summary>
4287         /// <param name="paddingOut">the value of padding for the view</param>
4288         /// <since_tizen> 3 </since_tizen>
4289         public void GetPadding(PaddingType paddingOut)
4290         {
4291             NDalicPINVOKE.Actor_GetPadding(swigCPtr, PaddingType.getCPtr(paddingOut));
4292             if (NDalicPINVOKE.SWIGPendingException.Pending)
4293                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4294         }
4295
4296         internal void SetMinimumSize(Vector2 size)
4297         {
4298             NDalicPINVOKE.Actor_SetMinimumSize(swigCPtr, Vector2.getCPtr(size));
4299             if (NDalicPINVOKE.SWIGPendingException.Pending)
4300                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4301         }
4302
4303         internal Vector2 GetMinimumSize()
4304         {
4305             Vector2 ret = new Vector2(NDalicPINVOKE.Actor_GetMinimumSize(swigCPtr), true);
4306             if (NDalicPINVOKE.SWIGPendingException.Pending)
4307                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4308             return ret;
4309         }
4310
4311         internal void SetMaximumSize(Vector2 size)
4312         {
4313             NDalicPINVOKE.Actor_SetMaximumSize(swigCPtr, Vector2.getCPtr(size));
4314             if (NDalicPINVOKE.SWIGPendingException.Pending)
4315                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4316         }
4317
4318         internal Vector2 GetMaximumSize()
4319         {
4320             Vector2 ret = new Vector2(NDalicPINVOKE.Actor_GetMaximumSize(swigCPtr), true);
4321             if (NDalicPINVOKE.SWIGPendingException.Pending)
4322                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4323             return ret;
4324         }
4325
4326         internal int GetHierarchyDepth()
4327         {
4328             int ret = NDalicPINVOKE.Actor_GetHierarchyDepth(swigCPtr);
4329             if (NDalicPINVOKE.SWIGPendingException.Pending)
4330                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4331             return ret;
4332         }
4333
4334         /// <since_tizen> 3 </since_tizen>
4335         public uint AddRenderer(Renderer renderer)
4336         {
4337             uint ret = NDalicPINVOKE.Actor_AddRenderer(swigCPtr, Renderer.getCPtr(renderer));
4338             if (NDalicPINVOKE.SWIGPendingException.Pending)
4339                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4340             return ret;
4341         }
4342
4343         internal uint GetRendererCount()
4344         {
4345             uint ret = NDalicPINVOKE.Actor_GetRendererCount(swigCPtr);
4346             if (NDalicPINVOKE.SWIGPendingException.Pending)
4347                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4348             return ret;
4349         }
4350
4351         /// <since_tizen> 3 </since_tizen>
4352         public Renderer GetRendererAt(uint index)
4353         {
4354             //to fix memory leak issue, match the handle count with native side.
4355             IntPtr cPtr = NDalicPINVOKE.Actor_GetRendererAt(swigCPtr, index);
4356             HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
4357             Renderer ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as Renderer;
4358             NDalicPINVOKE.delete_BaseHandle(CPtr);
4359             CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
4360
4361             if (NDalicPINVOKE.SWIGPendingException.Pending)
4362                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4363             return ret;
4364         }
4365
4366         /// <since_tizen> 3 </since_tizen>
4367         public void RemoveRenderer(Renderer renderer)
4368         {
4369             NDalicPINVOKE.Actor_RemoveRenderer__SWIG_0(swigCPtr, Renderer.getCPtr(renderer));
4370             if (NDalicPINVOKE.SWIGPendingException.Pending)
4371                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4372         }
4373
4374         /// <since_tizen> 3 </since_tizen>
4375         public void RemoveRenderer(uint index)
4376         {
4377             NDalicPINVOKE.Actor_RemoveRenderer__SWIG_1(swigCPtr, index);
4378             if (NDalicPINVOKE.SWIGPendingException.Pending)
4379                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4380         }
4381
4382         internal TouchDataSignal TouchSignal()
4383         {
4384             TouchDataSignal ret = new TouchDataSignal(NDalicPINVOKE.Actor_TouchSignal(swigCPtr), false);
4385             if (NDalicPINVOKE.SWIGPendingException.Pending)
4386                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4387             return ret;
4388         }
4389
4390         internal HoverSignal HoveredSignal()
4391         {
4392             HoverSignal ret = new HoverSignal(NDalicPINVOKE.Actor_HoveredSignal(swigCPtr), false);
4393             if (NDalicPINVOKE.SWIGPendingException.Pending)
4394                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4395             return ret;
4396         }
4397
4398         internal WheelSignal WheelEventSignal()
4399         {
4400             WheelSignal ret = new WheelSignal(NDalicPINVOKE.Actor_WheelEventSignal(swigCPtr), false);
4401             if (NDalicPINVOKE.SWIGPendingException.Pending)
4402                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4403             return ret;
4404         }
4405
4406         internal ViewSignal OnWindowSignal()
4407         {
4408             ViewSignal ret = new ViewSignal(NDalicPINVOKE.Actor_OnStageSignal(swigCPtr), false);
4409             if (NDalicPINVOKE.SWIGPendingException.Pending)
4410                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4411             return ret;
4412         }
4413
4414         internal ViewSignal OffWindowSignal()
4415         {
4416             ViewSignal ret = new ViewSignal(NDalicPINVOKE.Actor_OffStageSignal(swigCPtr), false);
4417             if (NDalicPINVOKE.SWIGPendingException.Pending)
4418                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4419             return ret;
4420         }
4421
4422         internal ViewSignal OnRelayoutSignal()
4423         {
4424             ViewSignal ret = new ViewSignal(NDalicPINVOKE.Actor_OnRelayoutSignal(swigCPtr), false);
4425             if (NDalicPINVOKE.SWIGPendingException.Pending)
4426                 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4427             return ret;
4428         }
4429
4430         internal ViewVisibilityChangedSignal VisibilityChangedSignal(View view)
4431         {
4432             ViewVisibilityChangedSignal ret = new ViewVisibilityChangedSignal(NDalicPINVOKE.VisibilityChangedSignal(View.getCPtr(view)), false);
4433             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4434             return ret;
4435         }
4436
4437
4438         internal ViewLayoutDirectionChangedSignal LayoutDirectionChangedSignal(View view)
4439         {
4440             ViewLayoutDirectionChangedSignal ret = new ViewLayoutDirectionChangedSignal(NDalicManualPINVOKE.LayoutDirectionChangedSignal(View.getCPtr(view)), false);
4441             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4442             return ret;
4443         }
4444
4445
4446         internal ViewSignal ResourcesLoadedSignal()
4447         {
4448             ViewSignal ret = new ViewSignal(NDalicPINVOKE.ResourceReadySignal(swigCPtr), false);
4449             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
4450             return ret;
4451         }
4452
4453         /// <summary>
4454         /// Gets or sets the origin of a view within its parent's area.<br />
4455         /// This is expressed in unit coordinates, such that (0.0, 0.0, 0.5) is the top-left corner of the parent, and (1.0, 1.0, 0.5) is the bottom-right corner.<br />
4456         /// The default parent-origin is ParentOrigin.TopLeft (0.0, 0.0, 0.5).<br />
4457         /// A view's position is the distance between this origin and the view's anchor-point.<br />
4458         /// </summary>
4459         /// <pre>The view has been initialized.</pre>
4460         /// <since_tizen> 3 </since_tizen>
4461         public Position ParentOrigin
4462         {
4463             get
4464             {
4465                 return (Position)GetValue(ParentOriginProperty);
4466             }
4467             set
4468             {
4469                 SetValue(ParentOriginProperty, value);
4470                 NotifyPropertyChanged();
4471             }
4472         }
4473
4474         internal float ParentOriginX
4475         {
4476             get
4477             {
4478                 float temp = 0.0f;
4479                 GetProperty(View.Property.PARENT_ORIGIN_X).Get(out temp);
4480                 return temp;
4481             }
4482             set
4483             {
4484                 SetProperty(View.Property.PARENT_ORIGIN_X, new Tizen.NUI.PropertyValue(value));
4485                 NotifyPropertyChanged();
4486             }
4487         }
4488
4489         internal float ParentOriginY
4490         {
4491             get
4492             {
4493                 float temp = 0.0f;
4494                 GetProperty(View.Property.PARENT_ORIGIN_Y).Get(out temp);
4495                 return temp;
4496             }
4497             set
4498             {
4499                 SetProperty(View.Property.PARENT_ORIGIN_Y, new Tizen.NUI.PropertyValue(value));
4500                 NotifyPropertyChanged();
4501             }
4502         }
4503
4504         internal float ParentOriginZ
4505         {
4506             get
4507             {
4508                 float temp = 0.0f;
4509                 GetProperty(View.Property.PARENT_ORIGIN_Z).Get(out temp);
4510                 return temp;
4511             }
4512             set
4513             {
4514                 SetProperty(View.Property.PARENT_ORIGIN_Z, new Tizen.NUI.PropertyValue(value));
4515                 NotifyPropertyChanged();
4516             }
4517         }
4518
4519         /// <summary>
4520         /// Gets or sets the anchor-point of a view.<br />
4521         /// This is expressed in unit coordinates, such that (0.0, 0.0, 0.5) is the top-left corner of the view, and (1.0, 1.0, 0.5) is the bottom-right corner.<br />
4522         /// The default pivot point is PivotPoint.Center (0.5, 0.5, 0.5).<br />
4523         /// A view position is the distance between its parent-origin and this anchor-point.<br />
4524         /// A view's orientation is the rotation from its default orientation, the rotation is centered around its anchor-point.<br />
4525         /// <pre>The view has been initialized.</pre>
4526         /// </summary>
4527         /// <since_tizen> 3 </since_tizen>
4528         public Position PivotPoint
4529         {
4530             get
4531             {
4532                 return (Position)GetValue(PivotPointProperty);
4533             }
4534             set
4535             {
4536                 SetValue(PivotPointProperty, value);
4537                 NotifyPropertyChanged();
4538             }
4539         }
4540
4541         internal float PivotPointX
4542         {
4543             get
4544             {
4545                 float temp = 0.0f;
4546                 GetProperty(View.Property.ANCHOR_POINT_X).Get(out temp);
4547                 return temp;
4548             }
4549             set
4550             {
4551                 SetProperty(View.Property.ANCHOR_POINT_X, new Tizen.NUI.PropertyValue(value));
4552             }
4553         }
4554
4555         internal float PivotPointY
4556         {
4557             get
4558             {
4559                 float temp = 0.0f;
4560                 GetProperty(View.Property.ANCHOR_POINT_Y).Get(out temp);
4561                 return temp;
4562             }
4563             set
4564             {
4565                 SetProperty(View.Property.ANCHOR_POINT_Y, new Tizen.NUI.PropertyValue(value));
4566             }
4567         }
4568
4569         internal float PivotPointZ
4570         {
4571             get
4572             {
4573                 float temp = 0.0f;
4574                 GetProperty(View.Property.ANCHOR_POINT_Z).Get(out temp);
4575                 return temp;
4576             }
4577             set
4578             {
4579                 SetProperty(View.Property.ANCHOR_POINT_Z, new Tizen.NUI.PropertyValue(value));
4580             }
4581         }
4582
4583         /// <summary>
4584         /// Gets or sets the size width of the view.
4585         /// </summary>
4586         /// <since_tizen> 3 </since_tizen>
4587         public float SizeWidth
4588         {
4589             get
4590             {
4591                 return (float)GetValue(SizeWidthProperty);
4592             }
4593             set
4594             {
4595                 SetValue(SizeWidthProperty, value);
4596                 NotifyPropertyChanged();
4597             }
4598         }
4599
4600         /// <summary>
4601         /// Gets or sets the size height of the view.
4602         /// </summary>
4603         /// <since_tizen> 3 </since_tizen>
4604         public float SizeHeight
4605         {
4606             get
4607             {
4608                 return (float)GetValue(SizeHeightProperty);
4609             }
4610             set
4611             {
4612                 SetValue(SizeHeightProperty, value);
4613                 NotifyPropertyChanged();
4614             }
4615         }
4616
4617         /// <summary>
4618         /// Gets or sets the position of the view.<br />
4619         /// By default, sets the position vector between the parent origin and pivot point (default).<br />
4620         /// If the position inheritance is disabled, sets the world position.<br />
4621         /// </summary>
4622         /// <since_tizen> 3 </since_tizen>
4623         public Position Position
4624         {
4625             get
4626             {
4627                 return (Position)GetValue(PositionProperty);
4628             }
4629             set
4630             {
4631                 SetValue(PositionProperty, value);
4632                 NotifyPropertyChanged();
4633             }
4634         }
4635
4636         /// <summary>
4637         /// Gets or sets the position X of the view.
4638         /// </summary>
4639         /// <since_tizen> 3 </since_tizen>
4640         public float PositionX
4641         {
4642             get
4643             {
4644                 return (float)GetValue(PositionXProperty);
4645             }
4646             set
4647             {
4648                 SetValue(PositionXProperty, value);
4649                 NotifyPropertyChanged();
4650             }
4651         }
4652
4653         /// <summary>
4654         /// Gets or sets the position Y of the view.
4655         /// </summary>
4656         /// <since_tizen> 3 </since_tizen>
4657         public float PositionY
4658         {
4659             get
4660             {
4661                 return (float)GetValue(PositionYProperty);
4662             }
4663             set
4664             {
4665                 SetValue(PositionYProperty, value);
4666                 NotifyPropertyChanged();
4667             }
4668         }
4669
4670         /// <summary>
4671         /// Gets or sets the position Z of the view.
4672         /// </summary>
4673         /// <since_tizen> 3 </since_tizen>
4674         public float PositionZ
4675         {
4676             get
4677             {
4678                 return (float)GetValue(PositionZProperty);
4679             }
4680             set
4681             {
4682                 SetValue(PositionZProperty, value);
4683                 NotifyPropertyChanged();
4684             }
4685         }
4686
4687         /// <summary>
4688         /// Gets or sets the world position of the view.
4689         /// </summary>
4690         /// <since_tizen> 3 </since_tizen>
4691         public Vector3 WorldPosition
4692         {
4693             get
4694             {
4695                 Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
4696                 GetProperty(View.Property.WORLD_POSITION).Get(temp);
4697                 return temp;
4698             }
4699         }
4700
4701         internal float WorldPositionX
4702         {
4703             get
4704             {
4705                 float temp = 0.0f;
4706                 GetProperty(View.Property.WORLD_POSITION_X).Get(out temp);
4707                 return temp;
4708             }
4709         }
4710
4711         internal float WorldPositionY
4712         {
4713             get
4714             {
4715                 float temp = 0.0f;
4716                 GetProperty(View.Property.WORLD_POSITION_Y).Get(out temp);
4717                 return temp;
4718             }
4719         }
4720
4721         internal float WorldPositionZ
4722         {
4723             get
4724             {
4725                 float temp = 0.0f;
4726                 GetProperty(View.Property.WORLD_POSITION_Z).Get(out temp);
4727                 return temp;
4728             }
4729         }
4730
4731         /// <summary>
4732         /// Gets or sets the orientation of the view.<br />
4733         /// The view's orientation is the rotation from its default orientation, and the rotation is centered around its anchor-point.<br />
4734         /// </summary>
4735         /// <remarks>This is an asynchronous method.</remarks>
4736         /// <since_tizen> 3 </since_tizen>
4737         public Rotation Orientation
4738         {
4739             get
4740             {
4741                 return (Rotation)GetValue(OrientationProperty);
4742             }
4743             set
4744             {
4745                 SetValue(OrientationProperty, value);
4746                 NotifyPropertyChanged();
4747             }
4748         }
4749
4750         /// <summary>
4751         /// Gets or sets the world orientation of the view.<br />
4752         /// </summary>
4753         /// <since_tizen> 3 </since_tizen>
4754         public Rotation WorldOrientation
4755         {
4756             get
4757             {
4758                 Rotation temp = new Rotation();
4759                 GetProperty(View.Property.WORLD_ORIENTATION).Get(temp);
4760                 return temp;
4761             }
4762         }
4763
4764         /// <summary>
4765         /// Gets or sets the scale factor applied to the view.<br />
4766         /// </summary>
4767         /// <since_tizen> 3 </since_tizen>
4768         public Vector3 Scale
4769         {
4770             get
4771             {
4772                 return (Vector3)GetValue(ScaleProperty);
4773             }
4774             set
4775             {
4776                 SetValue(ScaleProperty, value);
4777                 NotifyPropertyChanged();
4778             }
4779         }
4780
4781         /// <summary>
4782         /// Gets or sets the scale X factor applied to the view.
4783         /// </summary>
4784         /// <since_tizen> 3 </since_tizen>
4785         public float ScaleX
4786         {
4787             get
4788             {
4789                 return (float)GetValue(ScaleXProperty);
4790             }
4791             set
4792             {
4793                 SetValue(ScaleXProperty, value);
4794                 NotifyPropertyChanged();
4795             }
4796         }
4797
4798         /// <summary>
4799         /// Gets or sets the scale Y factor applied to the view.
4800         /// </summary>
4801         /// <since_tizen> 3 </since_tizen>
4802         public float ScaleY
4803         {
4804             get
4805             {
4806                 return (float)GetValue(ScaleYProperty);
4807             }
4808             set
4809             {
4810                 SetValue(ScaleYProperty, value);
4811                 NotifyPropertyChanged();
4812             }
4813         }
4814
4815         /// <summary>
4816         /// Gets or sets the scale Z factor applied to the view.
4817         /// </summary>
4818         /// <since_tizen> 3 </since_tizen>
4819         public float ScaleZ
4820         {
4821             get
4822             {
4823                 return (float)GetValue(ScaleZProperty);
4824             }
4825             set
4826             {
4827                 SetValue(ScaleZProperty, value);
4828                 NotifyPropertyChanged();
4829             }
4830         }
4831
4832         /// <summary>
4833         /// Gets the world scale of the view.
4834         /// </summary>
4835         /// <since_tizen> 3 </since_tizen>
4836         public Vector3 WorldScale
4837         {
4838             get
4839             {
4840                 Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
4841                 GetProperty(View.Property.WORLD_SCALE).Get(temp);
4842                 return temp;
4843             }
4844         }
4845
4846         /// <summary>
4847         /// Retrieves the visibility flag of the view.
4848         /// </summary>
4849         /// <remarks>
4850         /// If the view is not visible, then the view and its children will not be rendered.
4851         /// This is regardless of the individual visibility values of the children, i.e., the view will only be rendered if all of its parents have visibility set to true.
4852         /// </remarks>
4853         /// <since_tizen> 3 </since_tizen>
4854         public bool Visibility
4855         {
4856             get
4857             {
4858                 bool temp = false;
4859                 GetProperty(View.Property.VISIBLE).Get(out temp);
4860                 return temp;
4861             }
4862         }
4863
4864         /// <summary>
4865         /// Gets the view's world color.
4866         /// </summary>
4867         /// <since_tizen> 3 </since_tizen>
4868         public Vector4 WorldColor
4869         {
4870             get
4871             {
4872                 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
4873                 GetProperty(View.Property.WORLD_COLOR).Get(temp);
4874                 return temp;
4875             }
4876         }
4877
4878         internal Matrix WorldMatrix
4879         {
4880             get
4881             {
4882                 Matrix temp = new Matrix();
4883                 GetProperty(View.Property.WORLD_MATRIX).Get(temp);
4884                 return temp;
4885             }
4886         }
4887
4888         /// <summary>
4889         /// Gets or sets the view's name.
4890         /// </summary>
4891         /// <since_tizen> 3 </since_tizen>
4892         public string Name
4893         {
4894             get
4895             {
4896                 return (string)GetValue(NameProperty);
4897             }
4898             set
4899             {
4900                 SetValue(NameProperty, value);
4901                 NotifyPropertyChanged();
4902             }
4903         }
4904
4905         /// <summary>
4906         /// Get the number of children held by the view.
4907         /// </summary>
4908         /// <since_tizen> 3 </since_tizen>
4909         public new uint ChildCount
4910         {
4911             get
4912             {
4913                 return GetChildCount();
4914             }
4915         }
4916
4917         /// <summary>
4918         /// Gets the view's ID.
4919         /// Readonly
4920         /// </summary>
4921         /// <since_tizen> 3 </since_tizen>
4922         public uint ID
4923         {
4924             get
4925             {
4926                 return GetId();
4927             }
4928         }
4929
4930         /// <summary>
4931         /// Gets or sets the status of whether the view should emit touch or hover signals.
4932         /// </summary>
4933         /// <since_tizen> 3 </since_tizen>
4934         public bool Sensitive
4935         {
4936             get
4937             {
4938                 return (bool)GetValue(SensitiveProperty);
4939             }
4940             set
4941             {
4942                 SetValue(SensitiveProperty, value);
4943                 NotifyPropertyChanged();
4944             }
4945         }
4946
4947         /// <summary>
4948         /// Gets or sets the status of whether the view should receive a notification when touch or hover motion events leave the boundary of the view.
4949         /// </summary>
4950         /// <since_tizen> 3 </since_tizen>
4951         public bool LeaveRequired
4952         {
4953             get
4954             {
4955                 return (bool)GetValue(LeaveRequiredProperty);
4956             }
4957             set
4958             {
4959                 SetValue(LeaveRequiredProperty, value);
4960                 NotifyPropertyChanged();
4961             }
4962         }
4963
4964         /// <summary>
4965         /// Gets or sets the status of whether a child view inherits it's parent's orientation.
4966         /// </summary>
4967         /// <since_tizen> 3 </since_tizen>
4968         public bool InheritOrientation
4969         {
4970             get
4971             {
4972                 return (bool)GetValue(InheritOrientationProperty);
4973             }
4974             set
4975             {
4976                 SetValue(InheritOrientationProperty, value);
4977                 NotifyPropertyChanged();
4978             }
4979         }
4980
4981         /// <summary>
4982         /// Gets or sets the status of whether a child view inherits it's parent's scale.
4983         /// </summary>
4984         /// <since_tizen> 3 </since_tizen>
4985         public bool InheritScale
4986         {
4987             get
4988             {
4989                 return (bool)GetValue(InheritScaleProperty);
4990             }
4991             set
4992             {
4993                 SetValue(InheritScaleProperty, value);
4994                 NotifyPropertyChanged();
4995             }
4996         }
4997
4998         /// <summary>
4999         /// Gets or sets the status of how the view and its children should be drawn.<br />
5000         /// Not all views are renderable, but DrawMode can be inherited from any view.<br />
5001         /// If an object is in a 3D layer, it will be depth-tested against other objects in the world, i.e., it may be obscured if other objects are in front.<br />
5002         /// If DrawMode.Overlay2D is used, the view and its children will be drawn as a 2D overlay.<br />
5003         /// Overlay views are drawn in a separate pass, after all non-overlay views within the layer.<br />
5004         /// For overlay views, the drawing order is with respect to tree levels of views, and depth-testing will not be used.<br />
5005         /// </summary>
5006         /// <since_tizen> 3 </since_tizen>
5007         public DrawModeType DrawMode
5008         {
5009             get
5010             {
5011                 return (DrawModeType)GetValue(DrawModeProperty);
5012             }
5013             set
5014             {
5015                 SetValue(DrawModeProperty, value);
5016                 NotifyPropertyChanged();
5017             }
5018         }
5019
5020         /// <summary>
5021         /// Gets or sets the relative to parent size factor of the view.<br />
5022         /// This factor is only used when ResizePolicyType is set to either: ResizePolicyType.SizeRelativeToParent or ResizePolicyType.SizeFixedOffsetFromParent.<br />
5023         /// This view's size is set to the view's size multiplied by or added to this factor, depending on ResizePolicyType.<br />
5024         /// </summary>
5025         /// <since_tizen> 3 </since_tizen>
5026         public Vector3 SizeModeFactor
5027         {
5028             get
5029             {
5030                 return (Vector3)GetValue(SizeModeFactorProperty);
5031             }
5032             set
5033             {
5034                 SetValue(SizeModeFactorProperty, value);
5035                 NotifyPropertyChanged();
5036             }
5037         }
5038
5039         /// <summary>
5040         /// Gets or sets the width resize policy to be used.
5041         /// </summary>
5042         /// <since_tizen> 3 </since_tizen>
5043         public ResizePolicyType WidthResizePolicy
5044         {
5045             get
5046             {
5047                 return (ResizePolicyType)GetValue(WidthResizePolicyProperty);
5048             }
5049             set
5050             {
5051                 SetValue(WidthResizePolicyProperty, value);
5052                 NotifyPropertyChanged();
5053             }
5054         }
5055
5056         /// <summary>
5057         /// Gets or sets the height resize policy to be used.
5058         /// </summary>
5059         /// <since_tizen> 3 </since_tizen>
5060         public ResizePolicyType HeightResizePolicy
5061         {
5062             get
5063             {
5064                 return (ResizePolicyType)GetValue(HeightResizePolicyProperty);
5065             }
5066             set
5067             {
5068                 SetValue(HeightResizePolicyProperty, value);
5069                 NotifyPropertyChanged();
5070             }
5071         }
5072
5073         /// <summary>
5074         /// Gets or sets the policy to use when setting size with size negotiation.<br />
5075         /// Defaults to SizeScalePolicyType.UseSizeSet.<br />
5076         /// </summary>
5077         /// <since_tizen> 3 </since_tizen>
5078         public SizeScalePolicyType SizeScalePolicy
5079         {
5080             get
5081             {
5082                 return (SizeScalePolicyType)GetValue(SizeScalePolicyProperty);
5083             }
5084             set
5085             {
5086                 SetValue(SizeScalePolicyProperty, value);
5087                 NotifyPropertyChanged();
5088             }
5089         }
5090
5091         /// <summary>
5092         ///  Gets or sets the status of whether the width size is dependent on the height size.
5093         /// </summary>
5094         /// <since_tizen> 3 </since_tizen>
5095         public bool WidthForHeight
5096         {
5097             get
5098             {
5099                 return (bool)GetValue(WidthForHeightProperty);
5100             }
5101             set
5102             {
5103                 SetValue(WidthForHeightProperty, value);
5104                 NotifyPropertyChanged();
5105             }
5106         }
5107
5108         /// <summary>
5109         /// Gets or sets the status of whether the height size is dependent on the width size.
5110         /// </summary>
5111         /// <since_tizen> 3 </since_tizen>
5112         public bool HeightForWidth
5113         {
5114             get
5115             {
5116                 return (bool)GetValue(HeightForWidthProperty);
5117             }
5118             set
5119             {
5120                 SetValue(HeightForWidthProperty, value);
5121                 NotifyPropertyChanged();
5122             }
5123         }
5124
5125         /// <summary>
5126         /// Gets or sets the padding for use in layout.
5127         /// </summary>
5128         /// <since_tizen> 5 </since_tizen>
5129         public Extents Padding
5130         {
5131             get
5132             {
5133                 return (Extents)GetValue(PaddingProperty);
5134             }
5135             set
5136             {
5137                 SetValue(PaddingProperty, value);
5138                 NotifyPropertyChanged();
5139             }
5140         }
5141
5142         /// <summary>
5143         /// Gets or sets the minimum size the view can be assigned in size negotiation.
5144         /// </summary>
5145         /// <since_tizen> 3 </since_tizen>
5146         public Size2D MinimumSize
5147         {
5148             get
5149             {
5150                 return (Size2D)GetValue(MinimumSizeProperty);
5151             }
5152             set
5153             {
5154                 if (Layout != null)
5155                 {
5156                     // Note: it only works if minimum size is >= than natural size.
5157                     // To force the size it should be done through the width&height spec or Size2D.
5158                     Layout.MinimumWidth = new Tizen.NUI.LayoutLength(value.Width);
5159                     Layout.MinimumHeight = new Tizen.NUI.LayoutLength(value.Height);
5160                 }
5161                 SetValue(MinimumSizeProperty, value);
5162                 NotifyPropertyChanged();
5163             }
5164         }
5165
5166         /// <summary>
5167         /// Gets or sets the maximum size the view can be assigned in size negotiation.
5168         /// </summary>
5169         /// <since_tizen> 3 </since_tizen>
5170         public Size2D MaximumSize
5171         {
5172             get
5173             {
5174                 return (Size2D)GetValue(MaximumSizeProperty);
5175             }
5176             set
5177             {
5178                 // We don't have Layout.Maximum(Width|Height) so we cannot apply it to layout.
5179                 // MATCH_PARENT spec + parent container size can be used to limit
5180                 SetValue(MaximumSizeProperty, value);
5181                 NotifyPropertyChanged();
5182             }
5183         }
5184
5185         /// <summary>
5186         /// Gets or sets whether a child view inherits it's parent's position.<br />
5187         /// Default is to inherit.<br />
5188         /// Switching this off means that using position sets the view's world position, i.e., translates from the world origin (0,0,0) to the pivot point of the view.<br />
5189         /// </summary>
5190         /// <since_tizen> 3 </since_tizen>
5191         public bool InheritPosition
5192         {
5193             get
5194             {
5195                 return (bool)GetValue(InheritPositionProperty);
5196             }
5197             set
5198             {
5199                 SetValue(InheritPositionProperty, value);
5200                 NotifyPropertyChanged();
5201             }
5202         }
5203
5204         /// <summary>
5205         /// Gets or sets the clipping behavior (mode) of it's children.
5206         /// </summary>
5207         /// <since_tizen> 3 </since_tizen>
5208         public ClippingModeType ClippingMode
5209         {
5210             get
5211             {
5212                 return (ClippingModeType)GetValue(ClippingModeProperty);
5213             }
5214             set
5215             {
5216                 SetValue(ClippingModeProperty, value);
5217                 NotifyPropertyChanged();
5218             }
5219         }
5220
5221         /// <summary>
5222         /// Gets the number of renderers held by the view.
5223         /// </summary>
5224         /// <since_tizen> 3 </since_tizen>
5225         public uint RendererCount
5226         {
5227             get
5228             {
5229                 return GetRendererCount();
5230             }
5231         }
5232
5233         /// <summary>
5234         /// [Obsolete("Please do not use! this will be deprecated")]
5235         /// </summary>
5236         /// <since_tizen> 3 </since_tizen>
5237         /// Please do not use! this will be deprecated!
5238         /// Instead please use PivotPoint.
5239         [Obsolete("Please do not use! This will be deprecated! Please use PivotPoint instead! " +
5240             "Like: " +
5241             "View view = new View(); " +
5242             "view.PivotPoint = PivotPoint.Center; " +
5243             "view.PositionUsesPivotPoint = true;")]
5244         [EditorBrowsable(EditorBrowsableState.Never)]
5245         public Position AnchorPoint
5246         {
5247             get
5248             {
5249                 Position temp = new Position(0.0f, 0.0f, 0.0f);
5250                 GetProperty(View.Property.ANCHOR_POINT).Get(temp);
5251                 return temp;
5252             }
5253             set
5254             {
5255                 SetProperty(View.Property.ANCHOR_POINT, new Tizen.NUI.PropertyValue(value));
5256                 NotifyPropertyChanged();
5257             }
5258         }
5259
5260         /// <summary>
5261         /// [Obsolete("Please do not use! this will be deprecated")]
5262         /// </summary>
5263         /// <since_tizen> 3 </since_tizen>
5264         [Obsolete("Please do not use! This will be deprecated! Please use Size2D instead! " +
5265             "Like: " +
5266             "View view = new View(); " +
5267             "view.Size2D = new Size2D(100, 100);")]
5268         [EditorBrowsable(EditorBrowsableState.Never)]
5269         public Size Size
5270         {
5271             get
5272             {
5273                 return (Size)GetValue(SizeProperty);
5274             }
5275             set
5276             {
5277                 SetValue(SizeProperty, value);
5278                 NotifyPropertyChanged();
5279             }
5280         }
5281
5282         /// <summary>
5283         /// "Please DO NOT use! This will be deprecated! Please use 'Container GetParent() for derived class' instead!"
5284         /// </summary>
5285         /// <since_tizen> 3 </since_tizen>
5286         [Obsolete("Please do not use! This will be deprecated! Please use 'Container GetParent() for derived class' instead! " +
5287             "Like: " +
5288             "Container parent =  view.GetParent(); " +
5289             "View view = parent as View;")]
5290         [EditorBrowsable(EditorBrowsableState.Never)]
5291         public new View Parent
5292         {
5293             get
5294             {
5295                 View ret;
5296                 IntPtr cPtr = NDalicPINVOKE.Actor_GetParent(swigCPtr);
5297                 HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
5298                 BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle);
5299
5300                 if (basehandle is Layer layer)
5301                 {
5302                     ret = new View(Layer.getCPtr(layer).Handle, false);
5303                     NUILog.Error("This Parent property is deprecated, shoud do not be used");
5304                 }
5305                 else
5306                 {
5307                     ret = basehandle as View;
5308                 }
5309
5310                 NDalicPINVOKE.delete_BaseHandle(CPtr);
5311                 CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
5312
5313                 if (NDalicPINVOKE.SWIGPendingException.Pending)
5314                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
5315                 return ret;
5316             }
5317         }
5318
5319         /// <summary>
5320         /// Gets/Sets whether inherit parent's the layout Direction.
5321         /// </summary>
5322         /// <since_tizen> 4 </since_tizen>
5323         public bool InheritLayoutDirection
5324         {
5325             get
5326             {
5327                 return (bool)GetValue(InheritLayoutDirectionProperty);
5328             }
5329             set
5330             {
5331                 SetValue(InheritLayoutDirectionProperty, value);
5332                 NotifyPropertyChanged();
5333             }
5334         }
5335
5336         /// <summary>
5337         /// Gets/Sets the layout Direction.
5338         /// </summary>
5339         /// <since_tizen> 4 </since_tizen>
5340         public ViewLayoutDirectionType LayoutDirection
5341         {
5342             get
5343             {
5344                 return (ViewLayoutDirectionType)GetValue(LayoutDirectionProperty);
5345             }
5346             set
5347             {
5348                 SetValue(LayoutDirectionProperty, value);
5349                 NotifyPropertyChanged();
5350             }
5351         }
5352
5353         /// <summary>
5354         /// Gets or sets the Margin for use in layout.
5355         /// </summary>
5356         /// <since_tizen> 4 </since_tizen>
5357         public Extents Margin
5358         {
5359             get
5360             {
5361                 return (Extents)GetValue(MarginProperty);
5362             }
5363             set
5364             {
5365                 SetValue(MarginProperty, value);
5366                 NotifyPropertyChanged();
5367             }
5368         }
5369
5370         internal Style Style
5371         {
5372             get
5373             {
5374                 return (Style)GetValue(StyleProperty);
5375             }
5376             set
5377             {
5378                 SetValue(StyleProperty, value);
5379             }
5380         }
5381
5382         /// <summary>
5383         /// [Obsolete("Please do not use! this will be deprecated")]
5384         /// </summary>
5385         /// Please do not use! this will be deprecated!
5386         /// Instead please use Padding.
5387         /// <since_tizen> 4 </since_tizen>
5388         [Obsolete("Please do not use! this will be deprecated, instead please use Padding.")]
5389         [EditorBrowsable(EditorBrowsableState.Never)]
5390         public Extents PaddingEX
5391         {
5392             get
5393             {
5394                 Extents temp = new Extents(0, 0, 0, 0);
5395                 GetProperty(View.Property.PADDING).Get(temp);
5396                 return temp;
5397             }
5398             set
5399             {
5400                 SetProperty(View.Property.PADDING, new Tizen.NUI.PropertyValue(value));
5401                 NotifyPropertyChanged();
5402             }
5403         }
5404
5405         /// <summary>
5406         /// Perform an action on a visual registered to this view. <br />
5407         /// Visuals will have actions, this API is used to perform one of these actions with the given attributes.
5408         /// </summary>
5409         /// <param name="propertyIndexOfVisual">The Property index of the visual.</param>
5410         /// <param name="propertyIndexOfActionId">The action to perform.  See Visual to find supported actions.</param>
5411         /// <param name="attributes">Optional attributes for the action.</param>
5412         /// <since_tizen> 5 </since_tizen>
5413         public void DoAction(int propertyIndexOfVisual, int propertyIndexOfActionId, PropertyValue attributes)
5414         {
5415             NDalicManualPINVOKE.View_DoAction(swigCPtr, propertyIndexOfVisual, propertyIndexOfActionId, PropertyValue.getCPtr(attributes));
5416             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
5417         }
5418
5419         internal readonly MergedStyle _mergedStyle;
5420
5421         /// <summary>
5422         /// Child property to specify desired width
5423         /// </summary>
5424         internal int LayoutWidthSpecificationFixed
5425         {
5426             get
5427             {
5428                 int tmp = 0;
5429                 if (GetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION).Get(out tmp) == false)
5430                 {
5431                     NUILog.Error("WidthSpecificationFixed get error!");
5432                 }
5433                 return tmp;
5434             }
5435             set
5436             {
5437                 SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue(value));
5438             }
5439         }
5440
5441         /// <summary>
5442         /// Child property to specify desired height
5443         /// </summary>
5444         internal int LayoutHeightSpecificationFixed
5445         {
5446             get
5447             {
5448                 int tmp = 0;
5449                 if (GetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION).Get(out tmp) == false)
5450                 {
5451                     NUILog.Error("HeightSpecificationFixed get error!");
5452                 }
5453                 return tmp;
5454             }
5455             set
5456             {
5457                 SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue(value));
5458             }
5459         }
5460
5461         /// <summary>
5462         /// Child property to specify desired width, use MatchParent/WrapContent)
5463         /// </summary>
5464         internal ChildLayoutData LayoutWidthSpecification
5465         {
5466             get
5467             {
5468                 int tmp = 0;
5469                 if (GetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION).Get(out tmp) == false)
5470                 {
5471                     NUILog.Error("WidthSpecificationFixed get error!");
5472                 }
5473                 return (ChildLayoutData)tmp;
5474             }
5475             set
5476             {
5477                 SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue((int)value));
5478             }
5479         }
5480
5481         /// <summary>
5482         /// Child property to specify desired height, use MatchParent/WrapContent)
5483         /// </summary>
5484         internal ChildLayoutData LayoutHeightSpecification
5485         {
5486             get
5487             {
5488                 int tmp = 0;
5489                 if (GetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION).Get(out tmp) == false)
5490                 {
5491                     NUILog.Error("HeightSpecificationFixed get error!");
5492                 }
5493                 return (ChildLayoutData)tmp;
5494             }
5495             set
5496             {
5497                 SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue((int)value));
5498             }
5499         }
5500
5501     }
5502
5503     /// <summary>
5504     /// The View layout Direction type.
5505     /// </summary>
5506     /// <since_tizen> 4 </since_tizen>
5507     public enum ViewLayoutDirectionType
5508     {
5509         /// <summary>
5510         /// Left to right.
5511         /// </summary>
5512         /// <since_tizen> 4 </since_tizen>
5513         LTR,
5514         /// <summary>
5515         /// Right to left.
5516         /// </summary>
5517         /// <since_tizen> 4 </since_tizen>
5518         RTL
5519     }
5520
5521     internal enum ChildLayoutData
5522     {
5523         /// <summary>
5524         /// Constant which indicates child size should match parent size
5525         /// </summary>
5526         MatchParent = -1,
5527         /// <summary>
5528         /// Constant which indicates parent should take the smallest size possible to wrap it's children with their desired size
5529         /// </summary>
5530         WrapContent = -2,
5531     }
5532
5533 }