AUI Framework
master
Cross-platform module-based framework for developing C++20 desktop applications
IEventLoop.h
1
/*
2
* AUI Framework - Declarative UI toolkit for modern C++20
3
* Copyright (C) 2020-2024 Alex2772 and Contributors
4
*
5
* SPDX-License-Identifier: MPL-2.0
6
*
7
* This Source Code Form is subject to the terms of the Mozilla Public
8
* License, v. 2.0. If a copy of the MPL was not distributed with this
9
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
10
*/
11
12
#pragma once
13
14
#include <AUI/Core.h>
15
16
class
API_AUI_CORE
IEventLoop
17
{
18
public
:
19
IEventLoop
() {}
20
virtual
~IEventLoop
() {}
21
25
virtual
void
notifyProcessMessages
() = 0;
26
30
virtual
void
loop
() = 0;
31
32
33
class
API_AUI_CORE
Handle
{
34
private
:
35
IEventLoop
* mPrevEventLoop;
36
IEventLoop
* mCurrentEventLoop;
37
38
public
:
39
explicit
Handle
(
IEventLoop
* loop);
40
~Handle
();
41
};
42
};
IEventLoop::Handle
Definition:
IEventLoop.h:33
IEventLoop
Definition:
IEventLoop.h:17
IEventLoop::loop
virtual void loop()=0
Do message processing loop.
IEventLoop::notifyProcessMessages
virtual void notifyProcessMessages()=0
Notifies this IEventLoop that its thread got a new message to process.