2 * Copyright (c) 2018 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 <dali/integration-api/debug.h>
\r
23 #include <Windows.h>
\r
25 // INTERNAL INCLUDES
\r
26 #include <dali/internal/window-system/windows/platform-implement-win.h>
\r
37 WinCallbackManager::WinCallbackManager()
\r
42 void WinCallbackManager::Start()
\r
44 DALI_ASSERT_DEBUG( mRunning == false );
\r
48 void WinCallbackManager::Stop()
\r
50 // make sure we're not called twice
\r
51 DALI_ASSERT_DEBUG( mRunning == true );
\r
56 bool WinCallbackManager::AddIdleCallback( CallbackBase* callback, bool hasReturnValue )
\r
63 mCallbacks.insert(callback);
\r
65 WindowsPlatformImplementation::PostWinThreadMessage( WIN_CALLBACK_EVENT, reinterpret_cast<uint64_t>(callback), 0 );
\r
70 void WinCallbackManager::RemoveIdleCallback( CallbackBase* callback )
\r
75 bool WinCallbackManager::ProcessIdle()
\r
77 const bool idleProcessed = !mCallbacks.empty();
\r
79 for (CallbackBase* cb : mCallbacks)
\r
81 Dali::CallbackBase::Execute(*cb);
\r
85 return idleProcessed;
\r
88 void WinCallbackManager::ClearIdleCallbacks()
\r
93 bool WinCallbackManager::AddIdleEntererCallback( CallbackBase* callback )
\r
95 return AddIdleCallback( callback, true );
\r
98 void WinCallbackManager::RemoveIdleEntererCallback( CallbackBase* callback )
\r
103 // Creates a concrete interface for CallbackManager
\r
104 CallbackManager* CallbackManager::New()
\r
106 return new WinCallbackManager;
\r
109 } // namespace Adaptor
\r
111 } // namespace Internal
\r
113 } // namespace Dali
\r