a450d2959ab18c4553b3b9f1fb0f1c9af444950c
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / internal / FontMetrics.cs
1 /*
2  * Copyright(c) 2019 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 namespace Tizen.NUI
18 {
19     internal class FontMetrics : Disposable
20     {
21
22         internal FontMetrics(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
23         {
24         }
25
26         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(FontMetrics obj)
27         {
28             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
29         }
30
31         protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
32         {
33             Interop.FontClient.DeleteFontMetrics(swigCPtr);
34         }
35
36         public FontMetrics() : this(Interop.FontClient.NewFontMetrics(), true)
37         {
38             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
39         }
40
41         public FontMetrics(float ascenderPixels, float descenderPixels, float heightPixels, float underlinePositionPixels, float underlinePositionThickness) : this(Interop.FontClient.NewFontMetrics(ascenderPixels, descenderPixels, heightPixels, underlinePositionPixels, underlinePositionThickness), true)
42         {
43             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
44         }
45
46         public float Ascender
47         {
48             set
49             {
50                 Interop.FontClient.FontMetricsAscenderSet(swigCPtr, value);
51                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
52             }
53             get
54             {
55                 float ret = Interop.FontClient.FontMetricsAscenderGet(swigCPtr);
56                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
57                 return ret;
58             }
59         }
60
61         public float Descender
62         {
63             set
64             {
65                 Interop.FontClient.FontMetricsDescenderSet(swigCPtr, value);
66                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
67             }
68             get
69             {
70                 float ret = Interop.FontClient.FontMetricsDescenderGet(swigCPtr);
71                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
72                 return ret;
73             }
74         }
75
76         public float Height
77         {
78             set
79             {
80                 Interop.FontClient.FontMetricsHeightSet(swigCPtr, value);
81                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
82             }
83             get
84             {
85                 float ret = Interop.FontClient.FontMetricsHeightGet(swigCPtr);
86                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
87                 return ret;
88             }
89         }
90
91         public float UnderlinePosition
92         {
93             set
94             {
95                 Interop.FontClient.FontMetricsUnderlinePositionSet(swigCPtr, value);
96                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
97             }
98             get
99             {
100                 float ret = Interop.FontClient.FontMetricsUnderlinePositionGet(swigCPtr);
101                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
102                 return ret;
103             }
104         }
105
106         public float UnderlineThickness
107         {
108             set
109             {
110                 Interop.FontClient.FontMetricsUnderlineThicknessSet(swigCPtr, value);
111                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
112             }
113             get
114             {
115                 float ret = Interop.FontClient.FontMetricsUnderlineThicknessGet(swigCPtr);
116                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
117                 return ret;
118             }
119         }
120     }
121 }