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