+ /** Creates a Root widget for a window. The geometry is set to match the
+ window's size, and input devices are created automatically. */
+ Root(Resources &, Graphics::Window &);
+
+ /** Creates a Root widget with custom input devices. If window is not null,
+ it is used to set the widget's initial geometry. */
+ Root(Resources &, Graphics::Window *, Input::Keyboard *, Input::Mouse *, Input::Touchscreen * = nullptr);
+
+ const char *get_class() const override { return "root"; }
+
+ Resources &get_resources() const { return resources; }
+ virtual unsigned get_width() const { return geom.w; }
+ virtual unsigned get_height() const { return geom.h; }
+