78a8bc754bbca4bc1e4575b6f90f4c54d897e530
[platform/core/uifw/dali-adaptor.git] / dali / internal / system / windows / callback-manager-win.cpp
1 /*\r
2  * Copyright (c) 2018 Samsung Electronics Co., Ltd.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  * http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  *\r
16  */\r
17 \r
18 // CLASS HEADER\r
19 #include <dali/internal/system/windows/callback-manager-win.h>\r
20 \r
21 // EXTERNAL INCLUDES\r
22 //#include <uv.h>\r
23 #include <dali/integration-api/debug.h>\r
24 #include <Win32WindowSystem.h>\r
25 \r
26 // INTERNAL INCLUDES\r
27 #include <Windows.h>\r
28 \r
29 namespace Dali\r
30 {\r
31 \r
32 namespace Internal\r
33 {\r
34 \r
35 namespace Adaptor\r
36 {\r
37 \r
38 WinCallbackManager::WinCallbackManager()\r
39 :mRunning(false)\r
40 {\r
41 }\r
42 \r
43 void WinCallbackManager::Start()\r
44 {\r
45   DALI_ASSERT_DEBUG( mRunning == false );\r
46   mRunning = true;\r
47 }\r
48 \r
49 void WinCallbackManager::Stop()\r
50 {\r
51   // make sure we're not called twice\r
52   DALI_ASSERT_DEBUG( mRunning == true );\r
53 \r
54   mRunning = false;\r
55 }\r
56 \r
57 #define WIN_CALLBACK_EVENT    9999\r
58 \r
59 bool WinCallbackManager::AddIdleCallback( CallbackBase* callback )\r
60 {\r
61   if( !mRunning )\r
62   {\r
63     return false;\r
64   }\r
65 \r
66   Win32WindowSystem::AddListener( WIN_CALLBACK_EVENT, callback );\r
67   Win32WindowSystem::PostWinMessage( WIN_CALLBACK_EVENT, (long)callback, 0 );\r
68   return true;\r
69 }\r
70 \r
71 void WinCallbackManager::RemoveIdleCallback( CallbackBase* callback )\r
72 {\r
73   //Wait for deal\r
74 }\r
75 \r
76 // Creates a concrete interface for CallbackManager\r
77 CallbackManager* CallbackManager::New()\r
78 {\r
79   return new WinCallbackManager;\r
80 }\r
81 \r
82 } // namespace Adaptor\r
83 \r
84 } // namespace Internal\r
85 \r
86 } // namespace Dali\r