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