diff --git a/src/add-ons/input_server/devices/virtualkeyboard/VirtualKeyboardInputDevice.cpp b/src/add-ons/input_server/devices/virtualkeyboard/VirtualKeyboardInputDevice.cpp new file mode 100644 index 0000000000..24088465e2 --- /dev/null +++ b/src/add-ons/input_server/devices/virtualkeyboard/VirtualKeyboardInputDevice.cpp @@ -0,0 +1,43 @@ +/* + * Copyright 2014 Freeman Lou + * All rights reserved. Distributed under the terms of the MIT license. + */ +#include "VirtualKeyboardInputDevice.h" + +extern "C" BInputServerDevice* +instantiate_input_device() +{ + return new(std::nothrow) VirtualKeyboardInputDevice(); +} + + +VirtualKeyboardInputDevice::VirtualKeyboardInputDevice() + : + BInputServerDevice() +{ + fKeyboardWindow = new VirtualKeyboardWindow(); +} + + +status_t +VirtualKeyboardInputDevice::SystemShuttingDown() +{ + if (fKeyboardWindow) + fKeyboardWindow->PostMessage(SYSTEM_SHUTTING_DOWN); + return B_OK; +} + + +status_t +VirtualKeyboardInputDevice::InitCheck() +{ + return BInputServerDevice::InitCheck(); +} + + +status_t +VirtualKeyboardInputDevice::Start(const char* name, void* cookie) +{ + fKeyboardWindow->Show(); + +} diff --git a/src/add-ons/input_server/devices/virtualkeyboard/VirtualKeyboardInputDevice.h b/src/add-ons/input_server/devices/virtualkeyboard/VirtualKeyboardInputDevice.h new file mode 100644 index 0000000000..86e0d2e716 --- /dev/null +++ b/src/add-ons/input_server/devices/virtualkeyboard/VirtualKeyboardInputDevice.h @@ -0,0 +1,30 @@ +/* + * Copyright 2014 Freeman Lou + * All rights reserved. Distributed under the terms of the MIT license. + */ +#ifndef VKID_H +#define VKID_H + +#include + +#include "VirtualKeyboardWindow.h" + +class VirtualKeyboardInputDevice : public BInputServerDevice { +public: + VirtualKeyboardInputDevice(); + virtual status_t InitCheck(); + virtual status_t Start(const char* name, void* cookie); + virtual status_t Stop(const char* name, void* cookie); + virtual status_t Control(const char* name, void* cookie, + uint32 command, BMessage* message); + virtual status_t SystemShuttingDown(); + +private: + friend class VirtualKeyboardWindow; + VirtualKeyboardWindow* fKeyboardWindow; + +}; + +extern "C" BInputServerDevice* instantiate_input_device(); + +#endif // VKID_H