]> git.tdb.fi Git - libs/gui.git/blobdiff - source/input/keyboard.h
Update .gitignore to include build products on Windows
[libs/gui.git] / source / input / keyboard.h
index 54479ea9da6e42873683a66647778b1698146c46..9048d520ece556971c57ec68b9761b3304fbe3d4 100644 (file)
@@ -1,31 +1,34 @@
-/* $Id$
-
-This file is part of libmspgbase
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
-#ifndef MSP_GBASE_KEYBOARD_H_
-#define MSP_GBASE_KEYBOARD_H_
+#ifndef MSP_INPUT_KEYBOARD_H_
+#define MSP_INPUT_KEYBOARD_H_
 
+#include <sigc++/trackable.h>
+#include <msp/graphics/mspgui_api.h>
+#include <msp/graphics/window.h>
+#include <msp/stringcodec/ustring.h>
 #include "device.h"
-#include "../gbase/window.h"
 
 namespace Msp {
 namespace Input {
 
-class Keyboard: public Device
+/**
+Adapts key events from a window to the abstracted input framework.  Key codes
+are translated to platform-independent values.  See keys.h for a list.
+*/
+class MSPGUI_API Keyboard: public Device, public sigc::trackable
 {
+public:
+       sigc::signal<bool, StringCodec::unichar>::accumulated<EventAccumulator> signal_character;
+
 private:
        Graphics::Window &window;
 
 public:
        Keyboard(Graphics::Window &);
+       ~Keyboard();
 
-       virtual std::string get_button_name(unsigned) const;
+       std::string get_button_name(unsigned) const override;
 private:
-       void key_press(unsigned, unsigned, unsigned);
-       void key_release(unsigned, unsigned);
+       void input_event(const Graphics::Window::Event &);
 };
 
 } // namespace Input