7651c6efad39a91558108a708081b3ea945a8d58
[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 <dali/integration-api/debug.h>\r
23 \r
24 // INTERNAL INCLUDES\r
25 #include <Windows.h>\r
26 #include <dali/internal/window-system/windows/platform-implement-win.h>\r
27 \r
28 namespace Dali\r
29 {\r
30 \r
31 namespace Internal\r
32 {\r
33 \r
34 namespace Adaptor\r
35 {\r
36 \r
37 WinCallbackManager::WinCallbackManager()\r
38 :mRunning(false)\r
39 {\r
40 }\r
41 \r
42 void WinCallbackManager::Start()\r
43 {\r
44   DALI_ASSERT_DEBUG( mRunning == false );\r
45   mRunning = true;\r
46 }\r
47 \r
48 void WinCallbackManager::Stop()\r
49 {\r
50   // make sure we're not called twice\r
51   DALI_ASSERT_DEBUG( mRunning == true );\r
52 \r
53   mRunning = false;\r
54 }\r
55 \r
56 #define WIN_CALLBACK_EVENT    9999\r
57 \r
58 bool WinCallbackManager::AddIdleCallback( CallbackBase* callback, bool hasReturnValue)\r
59 {\r
60   if( !mRunning )\r
61   {\r
62     return false;\r
63   }\r
64 \r
65   WindowsPlatformImplement::AddListener( WIN_CALLBACK_EVENT, callback );\r
66   WindowsPlatformImplement::PostWinMessage( WIN_CALLBACK_EVENT, (long)callback, 0 );\r
67   return true;\r
68 }\r
69 \r
70 void WinCallbackManager::RemoveIdleCallback( CallbackBase* callback )\r
71 {\r
72   //Wait for deal\r
73 }\r
74 \r
75 bool WinCallbackManager::AddIdleEntererCallback(CallbackBase* callback)\r
76 {\r
77   return true;\r
78 }\r
79 \r
80 void WinCallbackManager::RemoveIdleEntererCallback(CallbackBase* callback)\r
81 {\r
82 \r
83 }\r
84 \r
85 \r
86 // Creates a concrete interface for CallbackManager\r
87 CallbackManager* CallbackManager::New()\r
88 {\r
89   return new WinCallbackManager;\r
90 }\r
91 \r
92 } // namespace Adaptor\r
93 \r
94 } // namespace Internal\r
95 \r
96 } // namespace Dali\r