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