~aleteoryx/muditaos

muditaos/module-apps/apps-common/WindowsPopupQueue.cpp -rw-r--r-- 784 bytes
a405cad6Aleteoryx trim readme 6 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md

#include "WindowsPopupQueue.hpp"
#include "WindowsPopupFilter.hpp"

namespace app
{
    void WindowsPopupQueue::clear()
    {
        requests.clear();
    }

    std::optional<gui::popup::Request> WindowsPopupQueue::popRequest(const gui::popup::Filter &filter)
    {
        for (const auto &val : requests) {
            if (filter.isPermitted(val.getPopupParams())) {
                return {std::move(requests.extract(val).value())};
            }
        }
        return {std::nullopt};
    }

    void WindowsPopupQueue::pushRequest(gui::popup::Request &&r)
    {
        requests.emplace(std::move(r));
    }
} // namespace app