96578fc1226ff4d208b93ef38925b7f041edf6de
[platform/core/csapi/tizenfx.git] / test / NUITizenGallery / Examples / LabelTest5 / LabelTest5Page.xaml.cs
1 /*
2  * Copyright(c) 2021 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 Tizen.NUI;
18 using Tizen.NUI.BaseComponents;
19 using Tizen.NUI.Components;
20
21 namespace NUITizenGallery
22 {
23     public partial class LabelTest5Page : ContentPage
24     {
25         public LabelTest5Page()
26         {
27             InitializeComponent();
28             listItemContent1.Padding = new Extents(10, 0, 0, 0);
29             listItemContent2.Padding = new Extents(10, 0, 0, 0);
30         }
31
32         protected override void Dispose(DisposeTypes type)
33         {
34             if (Disposed)
35             {
36                 return;
37             }
38
39             if (type == DisposeTypes.Explicit)
40             {
41                 RemoveAllChildren(true);
42             }
43
44             base.Dispose(type);
45         }
46
47         private void RemoveAllChildren(bool dispose = false)
48         {
49             RecursiveRemoveChildren(this, dispose);
50         }
51
52         private void RecursiveRemoveChildren(View parent, bool dispose)
53         {
54             if (parent == null)
55             {
56                 return;
57             }
58
59             int maxChild = (int)parent.ChildCount;
60             for (int i = maxChild - 1; i >= 0; --i)
61             {
62                 View child = parent.GetChildAt((uint)i);
63                 if (child == null)
64                 {
65                     continue;
66                 }
67
68                 RecursiveRemoveChildren(child, dispose);
69                 parent.Remove(child);
70                 if (dispose)
71                 {
72                     child.Dispose();
73                 }
74             }
75         }
76     }
77 }