2#include <SFML/Graphics.hpp>
20 sf::RenderWindow window;
21 sf::Color backgroundColor;
22 std::vector<Widget*> widgets;
31 Window(
int width,
int height,
const std::string& title)
32 : window(sf::VideoMode(width, height), title),
33 backgroundColor(sf::Color(230, 230, 230)) {
34 window.setFramerateLimit(60);
49 void add(
Widget* widget) { widgets.push_back(widget); }
54 template<
typename... Ts>
55 void add(Ts&&... widgets_list) {
56 (add_widget(std::forward<Ts>(widgets_list)), ...);
62 bool isOpen() {
return window.isOpen(); }
71 while (window.isOpen()) {
75 while (window.pollEvent(event)) {
76 if (cursor.loadFromSystem(sf::Cursor::Arrow)) window.setMouseCursor(cursor);
78 if (event.type == sf::Event::Closed)
81 if (event.type == sf::Event::Resized) {
82 sf::FloatRect visibleArea(0, 0, event.size.width, event.size.height);
83 window.setView(sf::View(visibleArea));
89 window.clear(backgroundColor);
Application window and main event/render loop.
Definition Window.hpp:19
bool isOpen()
Check if the native window is open.
Definition Window.hpp:62
void setBackgroundColor(unsigned int hexCode)
Set window background color from RGBA hex integer.
Definition Window.hpp:42
void add(Widget *widget)
Add a widget by pointer.
Definition Window.hpp:49
Window(int width, int height, const std::string &title)
Create a window.
Definition Window.hpp:31
void close()
Close the window.
Definition Window.hpp:101
void add(Ts &&... widgets_list)
Add one or more widgets (pointer or reference forms).
Definition Window.hpp:55
void run()
Start event + render loop.
Definition Window.hpp:70