2 * Copyright (c) 2021 Samsung Electronics Co., Ltd.
\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
8 * http://www.apache.org/licenses/LICENSE-2.0
\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
19 #include <dali/internal/system/windows/callback-manager-win.h>
\r
21 // EXTERNAL INCLUDES
\r
22 #include <Windows.h>
\r
23 #include <dali/integration-api/debug.h>
\r
25 // INTERNAL INCLUDES
\r
26 #include <dali/internal/window-system/windows/platform-implement-win.h>
\r
34 WinCallbackManager::WinCallbackManager()
\r
39 void WinCallbackManager::Start()
\r
41 DALI_ASSERT_DEBUG(mRunning == false);
\r
45 void WinCallbackManager::Stop()
\r
47 // make sure we're not called twice
\r
48 DALI_ASSERT_DEBUG(mRunning == true);
\r
53 bool WinCallbackManager::AddIdleCallback(CallbackBase* callback, bool hasReturnValue)
\r
60 mCallbacks.insert(callback);
\r
62 WindowsPlatform::PostWinThreadMessage(WIN_CALLBACK_EVENT, reinterpret_cast<uint64_t>(callback), 0);
\r
67 void WinCallbackManager::RemoveIdleCallback(CallbackBase* callback)
\r
72 bool WinCallbackManager::ProcessIdle()
\r
74 const bool idleProcessed = !mCallbacks.empty();
\r
76 for(CallbackBase* cb : mCallbacks)
\r
78 Dali::CallbackBase::Execute(*cb);
\r
82 return idleProcessed;
\r
85 void WinCallbackManager::ClearIdleCallbacks()
\r
90 bool WinCallbackManager::AddIdleEntererCallback(CallbackBase* callback)
\r
92 return AddIdleCallback(callback, true);
\r
95 void WinCallbackManager::RemoveIdleEntererCallback(CallbackBase* callback)
\r
99 // Creates a concrete interface for CallbackManager
\r
100 CallbackManager* CallbackManager::New()
\r
102 return new WinCallbackManager;
\r
105 } // namespace Adaptor
\r
107 } // namespace Internal
\r
109 } // namespace Dali
\r