Merge "Add ThemeOverlay() API in Elementary." into devel/dotnet
[platform/core/csapi/tizenfx.git] / src / ElmSharp / ElmSharp / Check.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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
19 namespace ElmSharp
20 {
21     public class Check : Layout
22     {
23         private Interop.SmartEvent _changed;
24         private bool _currentState;
25
26         public Check(EvasObject parent) : base(parent)
27         {
28             _changed = new Interop.SmartEvent(this, Handle, "changed");
29             _changed.On += (sender, e) =>
30             {
31                 StateChanged?.Invoke(this, new CheckStateChangedEventArgs(_currentState, IsChecked));
32             };
33         }
34
35         public event EventHandler<CheckStateChangedEventArgs> StateChanged;
36
37         public bool IsChecked
38         {
39             get
40             {
41                 _currentState = Interop.Elementary.elm_check_state_get(Handle);
42                 return _currentState;
43             }
44             set
45             {
46                 Interop.Elementary.elm_check_state_set(Handle, value);
47             }
48         }
49
50         protected override IntPtr CreateHandle(EvasObject parent)
51         {
52             return Interop.Elementary.elm_check_add(parent.Handle);
53         }
54     }
55 }