X-Git-Url: http://git.tdb.fi/?p=libs%2Fgltk.git;a=blobdiff_plain;f=source%2Froot.h;fp=source%2Froot.h;h=29fff237430c156e0a2b94ef3ad89bbb269d38fb;hp=c71d50d6f7577d4ec3e710149c70115d50850ae3;hb=394e5c9969a30b604bfaf78fc05a8c2d5c98ab5b;hpb=90d5f5f2ebaeb8aaa4aa47a0c2207f96758cba8c diff --git a/source/root.h b/source/root.h index c71d50d..29fff23 100644 --- a/source/root.h +++ b/source/root.h @@ -1,6 +1,7 @@ #ifndef MSP_GLTK_ROOT_H_ #define MSP_GLTK_ROOT_H_ +#include #include #include #include @@ -33,10 +34,10 @@ public: private: Resources &resources; Input::Keyboard *keyboard = nullptr; - InputMethod *input_method = nullptr; + std::unique_ptr input_method; Input::Mouse *mouse = nullptr; Input::Touchscreen *touchscreen = nullptr; - bool own_input = false; + std::unique_ptr own_input[2]; Label *lbl_tooltip = nullptr; int pointer_x = 0; int pointer_y = 0; @@ -47,6 +48,8 @@ private: Msp::GL::Program *shprog = nullptr; Msp::GL::Blend blend; + Root(Resources &, Graphics::Window &, std::unique_ptr, std::unique_ptr); + public: /** Creates a Root widget for a window. The geometry is set to match the window's size, and input devices are created automatically. */ @@ -55,7 +58,6 @@ public: /** 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); - virtual ~Root(); const char *get_class() const override { return "root"; }