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