[NUI] Add moveCompleted and resizeCompleted api on BorderWindow
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / Window / IBorderInterface.cs
1 /*
2  * Copyright(c) 2022 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
18 using System;
19 using System.ComponentModel;
20 using Tizen.NUI.BaseComponents;
21
22 namespace Tizen.NUI
23 {
24     /// <summary>
25     /// This is the interface used to draw the border UI.
26     /// </summary>
27     [EditorBrowsable(EditorBrowsableState.Never)]
28     public interface IBorderInterface : IDisposable
29     {
30         /// <summary>
31         /// The thickness of the border.
32         /// </summary>
33         [EditorBrowsable(EditorBrowsableState.Never)]
34         public uint BorderLineThickness {get;}
35
36         /// <summary>
37         /// The thickness of the border's touch area.
38         /// </summary>
39         [EditorBrowsable(EditorBrowsableState.Never)]
40         public uint TouchThickness {get;}
41
42         /// <summary>
43         /// The height of the border.
44         /// This value is the initial value used when creating borders.
45         /// </summary>
46         [EditorBrowsable(EditorBrowsableState.Never)]
47         public float BorderHeight {get;}
48
49         /// <summary>
50         /// The minimum size by which the window will small.
51         /// </summary>
52         [EditorBrowsable(EditorBrowsableState.Never)]
53         public Size2D MinSize {get;}
54
55         /// <summary>
56         /// The maximum size by which the window will big.
57         /// </summary>
58         [EditorBrowsable(EditorBrowsableState.Never)]
59         public Size2D MaxSize {get;}
60
61         /// <summary>
62         /// The window with borders added.
63         /// </summary>
64         [EditorBrowsable(EditorBrowsableState.Never)]
65         public Window BorderWindow {get; set;}
66
67         /// <summary>
68         /// Whether overlay mode.
69         /// If overlay mode is true, the border area is hidden when the window is maximized.
70         /// And if you touched at screen, the border area is shown on the screen.
71         /// Default value is false;
72         /// </summary>
73         [EditorBrowsable(EditorBrowsableState.Never)]
74         public bool OverlayMode {get;}
75
76         /// <summary>
77         /// Set the window resizing policy.
78         /// </summary>
79         [EditorBrowsable(EditorBrowsableState.Never)]
80         public Window.BorderResizePolicyType ResizePolicy {get;}
81
82         /// <summary>
83         /// Create top border UI. User can override this method to draw top border UI.
84         /// </summary>
85         /// <param name="topView">The top view on which the border.</param>
86         [EditorBrowsable(EditorBrowsableState.Never)]
87         public bool CreateTopBorderView(View topView);
88
89         /// <summary>
90         /// Create bottom border UI. User can override this method to draw bottom border UI.
91         /// </summary>
92         /// <param name="bottomView">The bottom view on which the border.</param>
93         [EditorBrowsable(EditorBrowsableState.Never)]
94         public bool CreateBottomBorderView(View bottomView);
95
96         /// <summary>
97         /// Create border UI. User can override this method to draw border UI.
98         /// A top border and a bottom border are added to this view.
99         /// </summary>
100         /// <param name="borderView">The border view on which the border.</param>
101         [EditorBrowsable(EditorBrowsableState.Never)]
102         public void CreateBorderView(View borderView);
103
104         /// <summary>
105         /// Called after the border UI is created.
106         /// </summary>
107         /// <param name="borderView">The border view on which the border.</param>
108         [EditorBrowsable(EditorBrowsableState.Never)]
109         public void OnCreated(View borderView);
110
111         /// <summary>
112         /// Called when the window is resized.
113         /// </summary>
114         /// <param name="width">The width of the resized window</param>
115         /// <param name="height">The height of the resized window</param>
116         [EditorBrowsable(EditorBrowsableState.Never)]
117         public void OnResized(int width, int height);
118
119         /// <summary>
120         /// Called when the window is moved.
121         /// </summary>
122         /// <param name="x">The x of the moved window</param>
123         /// <param name="y">The y of the moved window</param>
124         [EditorBrowsable(EditorBrowsableState.Never)]
125         public void OnMoved(int x, int y);
126
127         /// <summary>
128         /// Called when window has been moved the display server.
129         /// </summary>
130         /// <param name="x">The x of the has been moved window</param>
131         /// <param name="y">The y of the has been moved window</param>
132         [EditorBrowsable(EditorBrowsableState.Never)]
133         public void OnMoveCompleted(int x, int y);
134
135         /// <summary>
136         /// Called when window has been resized the display server.
137         /// </summary>
138         /// <param name="width">The width of the resized window</param>
139         /// <param name="height">The height of the resized window</param>
140         [EditorBrowsable(EditorBrowsableState.Never)]
141         public void OnResizeCompleted(int width, int height);
142
143         /// <summary>
144         /// Called when the window is maximized.
145         /// </summary>
146         /// <param name="isMaximized">If window is maximized or unmaximized.</param>
147         [EditorBrowsable(EditorBrowsableState.Never)]
148         public void OnMaximize(bool isMaximized);
149
150         /// <summary>
151         /// Called when the window is minimized.
152         /// </summary>
153         /// <param name="isMinimized">If window is minimized or unminimized.</param>
154         [EditorBrowsable(EditorBrowsableState.Never)]
155         public void OnMinimize(bool isMinimized);
156
157         /// <summary>
158         /// Called when there is a change in overlay mode.
159         /// </summary>
160         /// <param name="enabled">If true, borderView has entered overlayMode.</param>
161         [EditorBrowsable(EditorBrowsableState.Never)]
162         public void OnOverlayMode(bool enabled);
163
164     }
165 }