]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/widget.h
Add an input method subsystem
[libs/gltk.git] / source / widget.h
index f852ec354f4874c75bf91945090ab4330c9bc342..f1a83f78a5532c0e355306dcd826369d31caa1e3 100644 (file)
@@ -5,6 +5,7 @@
 #include <msp/datafile/objectloader.h>
 #include <msp/gl/renderer.h>
 #include "geometry.h"
+#include "inputmethod.h"
 #include "partcache.h"
 #include "state.h"
 
@@ -46,7 +47,7 @@ protected:
        const Style *style;
        State state;
        bool visible;
-       bool focusable;
+       InputType input_type;
        Container *parent;
        std::string tooltip;
        PartCache part_cache;
@@ -107,12 +108,15 @@ public:
 
        void set_visible(bool);
        bool is_visible() const { return visible; }
-       void set_focusable(bool);
-       bool is_focusable() const { return focusable; }
+       InputType get_input_type() const { return input_type; }
+       bool is_focusable() const { return visible && input_type!=INPUT_NONE; }
        void set_focus();
        void set_enabled(bool);
        bool is_enabled() const { return !(state&DISABLED); }
 
+       // Deprecated
+       void set_focusable(bool);
+
 protected:
        void set_state(State s) { set_state(s, s); }
        void clear_state(State s) { set_state(s, NORMAL); }