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