-
Notifications
You must be signed in to change notification settings - Fork 241
/
Highlight.cs
executable file
·184 lines (173 loc) · 5.62 KB
/
Highlight.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
/*
* Copyright (c) 2018 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the License);
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an AS IS BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
using System.Collections.Generic;
using System.Text;
namespace Tizen.Applications.WatchfaceComplication
{
/// <summary>
/// Represents the highlight data for an editable.
/// </summary>
/// <since_tizen> 6 </since_tizen>
public class Highlight
{
private IntPtr _raw = IntPtr.Zero;
private int _x;
private int _y;
private int _w;
private int _h;
private ShapeType _type;
/// <summary>
/// Initializes a new instance of the Highlight class.
/// </summary>
/// <param name="type">The highlight shape type.</param>
/// <param name="x">The highlight geometry x.</param>
/// <param name="y">The highlight geometry y.</param>
/// <param name="w">The highlight geometry w.</param>
/// <param name="h">The highlight geometry h.</param>
/// <exception cref="ArgumentException">Thrown when some parameter are invalid.</exception>
/// <exception cref="InvalidOperationException">Thrown when the method failed due to invalid operation.</exception>
/// <since_tizen> 6 </since_tizen>
public Highlight(ShapeType type, int x, int y, int w, int h)
{
_type = type;
_x = x;
_y = y;
_w = w;
_h = h;
}
/// <summary>
/// Destructor of the Highlight class.
/// </summary>
~Highlight()
{
Interop.WatchfaceComplication.DestroyHighlight(_raw);
}
internal IntPtr Raw
{
get
{
ComplicationError ret;
if (_raw == IntPtr.Zero)
{
ret = Interop.WatchfaceComplication.CreateHighlight(out _raw);
if (ret != ComplicationError.None)
{
ErrorFactory.ThrowException(ret, "Fail to create Highlight");
}
}
ret = Interop.WatchfaceComplication.SetHighlightGeometry(_raw, _x, _y, _w, _h);
if (ret != ComplicationError.None)
{
ErrorFactory.ThrowException(ret, "Fail to set Highlight geometry");
}
ret = Interop.WatchfaceComplication.SetHighlightShapeType(_raw, _type);
if (ret != ComplicationError.None)
{
ErrorFactory.ThrowException(ret, "Fail to set Highlight type");
}
return _raw;
}
}
/// <summary>
/// The x coordinate.
/// </summary>
/// <exception cref="ArgumentException">Thrown when some parameter are invalid.</exception>
/// <since_tizen> 6 </since_tizen>
public int X
{
get
{
return _x;
}
set
{
if (value < 0)
ErrorFactory.ThrowException(ComplicationError.InvalidParam, "invalid x value (" + value + ")");
_x = value;
}
}
/// <summary>
/// The y coordinate.
/// </summary>
/// <exception cref="ArgumentException">Thrown when some parameter are invalid.</exception>
/// <since_tizen> 6 </since_tizen>
public int Y
{
get
{
return _y;
}
set
{
if (value < 0)
ErrorFactory.ThrowException(ComplicationError.InvalidParam, "invalid y value (" + value + ")");
_y = value;
}
}
/// <summary>
/// The width of editable.
/// </summary>
/// <exception cref="ArgumentException">Thrown when some parameter are invalid.</exception>
/// <since_tizen> 6 </since_tizen>
public int W
{
get
{
return _w;
}
set
{
if (value < 0)
ErrorFactory.ThrowException(ComplicationError.InvalidParam, "invalid w value (" + value + ")");
_w = value;
}
}
/// <summary>
/// The height of editable.
/// </summary>
/// <exception cref="ArgumentException">Thrown when some parameter are invalid.</exception>
/// <since_tizen> 6 </since_tizen>
public int H
{
get
{
return _h;
}
set
{
if (value < 0)
ErrorFactory.ThrowException(ComplicationError.InvalidParam, "invalid h value (" + value + ")");
_h = value;
}
}
/// <summary>
/// The shape of editable.
/// </summary>
/// <since_tizen> 6 </since_tizen>
public ShapeType ShapeType
{
get
{
return _type;
}
set
{
_type = value;
}
}
}
}