13#include <AUI/Thread/IEventLoop.h>
14#include "AUI/Common/ATimer.h"
15#include "AUI/Platform/Pipe.h"
16#include "AUI/Util/AWatchdog.h"
17#include "IRenderingContext.h"
21class API_AUI_VIEWS AWindowManager:
public IEventLoop {
23 friend class AClipboard;
31 bool mLoopRunning =
false;
35 ~AWindowManager()
override;
41 bool isLoopRunning()
const {
return mLoopRunning; }
43 void removeAllWindows() {
44 auto windows = std::move(mWindows);
48 void closeAllWindows();
64 virtual void initNativeWindow(
const IRenderingContext::Init& init);
67 [[nodiscard]] ADeque<_<T>> getWindowsOfType()
const {
69 for (
auto& w : mWindows) {
70 if (
auto c = _cast<T>(w)) {
75 return std::move(result);
A std::deque with AUI extensions.
Definition ADeque.h:27
Watchdog helper class.
Definition AWatchdog.h:38
void loop() override
Do message processing loop.
void notifyProcessMessages() override
Notifies this IEventLoop that its thread got a new message to process.
Represents a window in the underlying windowing system.
Definition AWindow.h:45
Definition IEventLoop.h:33
virtual void notifyProcessMessages()=0
Notifies this IEventLoop that its thread got a new message to process.
An std::weak_ptr with AUI extensions.
Definition SharedPtrTypes.h:179
class_of c
Selects views that are of the specified classes.
Definition class_of.h:84