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"
20typedef union _XEvent XEvent;
23class API_AUI_VIEWS AWindowManager:
public IEventLoop {
25 friend class AClipboard;
33 bool mLoopRunning =
false;
37 std::atomic_bool mFastPathNotify =
false;
38 std::string mXClipboardText;
40 void xProcessEvent(XEvent& ev);
41 void xClipboardCopyImpl(
const AString& text);
47 ~AWindowManager()
override;
53 void removeAllWindows() {
54 auto windows = std::move(mWindows);
58 void closeAllWindows();
74 virtual void initNativeWindow(
const IRenderingContext::Init& init);
77 [[nodiscard]] ADeque<_<T>> getWindowsOfType()
const {
79 for (
auto& w : mWindows) {
80 if (
auto c = _cast<T>(w)) {
85 return std::move(result);
23class API_AUI_VIEWS AWindowManager:
public IEventLoop {
…};
A std::deque with AUI extensions.
Definition ADeque.h:27
Represents a Unicode character string.
Definition AString.h:38
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.
Native pipe RAII wrapper.
Definition Pipe.h:37
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