FifeGUI 0.2.0
A C++ GUI library designed for games.
modalbackdrop.hpp
1// SPDX-License-Identifier: LGPL-2.1-or-later OR BSD-3-Clause
2// SPDX-FileCopyrightText: 2026 Fifengine contributors
3
4#ifndef INCLUDE_FIFECHAN_WIDGETS_MODALBACKDROP_HPP_
5#define INCLUDE_FIFECHAN_WIDGETS_MODALBACKDROP_HPP_
6
7// Platform config include
8#include "fifechan/platform.hpp"
9
10// Standard library includes
11#include <functional>
12
13#include "fifechan/listeners/mouselistener.hpp"
14#include "fifechan/widget.hpp"
15#include "fifechan/widgets/container.hpp"
16
17namespace fcn
18{
19 class MenuPopup;
20
27 class FIFEGUI_API ModalBackdrop : public Container, public MouseListener
28 {
29 public:
37 explicit ModalBackdrop(MenuPopup* owner);
38 ~ModalBackdrop() override;
39
40 ModalBackdrop(ModalBackdrop const &) = delete;
41 ModalBackdrop& operator=(ModalBackdrop const &) = delete;
42 ModalBackdrop(ModalBackdrop&&) = delete;
43 ModalBackdrop& operator=(ModalBackdrop&&) = delete;
44
45 // Widget
46 void draw(Graphics* graphics) override;
47
48 // MouseListener
49 void mousePressed(MouseEvent& event) override;
50 void mouseReleased(MouseEvent& event) override;
51 void mouseEntered(MouseEvent& event) override;
52 void mouseExited(MouseEvent& event) override;
53
54 private:
55 MenuPopup* mOwner{nullptr};
56 };
57} // namespace fcn
58
59#endif // INCLUDE_FIFECHAN_WIDGETS_MODALBACKDROP_HPP_
Container()
Constructor.
Abstract interface providing primitive drawing functions (lines, rectangles, etc.).
Definition graphics.hpp:58
A menu popup widget that displays a dropdown menu.
Definition menupopup.hpp:38
void mousePressed(MouseEvent &event) override
Called when a mouse button has been pressed down on the widget area.
ModalBackdrop(MenuPopup *owner)
Constructor.
void mouseExited(MouseEvent &event) override
Called when the mouse has exited the widget area.
void mouseEntered(MouseEvent &event) override
Called when the mouse has entered into the widget area.
void draw(Graphics *graphics) override
Draws the widget.
void mouseReleased(MouseEvent &event) override
Called when a mouse button has been released on the widget area.
Represents a mouse event.
MouseListener(MouseListener const &)=default
Copy constructor.
Used replacement tokens by configure_file():