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