1c099b74eSFreeman Lou /* 2c099b74eSFreeman Lou * Copyright 2014 Freeman Lou <freemanlou2430@yahoo.com> 3c099b74eSFreeman Lou * All rights reserved. Distributed under the terms of the MIT license. 4c099b74eSFreeman Lou */ 5c099b74eSFreeman Lou #include "VirtualKeyboardInputDevice.h" 6c099b74eSFreeman Lou 7a9fd76aeSFreeman Lou #include <InterfaceDefs.h> 8a9fd76aeSFreeman Lou 9c099b74eSFreeman Lou extern "C" BInputServerDevice* 10c099b74eSFreeman Lou instantiate_input_device() 11c099b74eSFreeman Lou { 12c099b74eSFreeman Lou return new(std::nothrow) VirtualKeyboardInputDevice(); 13c099b74eSFreeman Lou } 14c099b74eSFreeman Lou 15c099b74eSFreeman Lou 16c099b74eSFreeman Lou VirtualKeyboardInputDevice::VirtualKeyboardInputDevice() 17c099b74eSFreeman Lou { 18c099b74eSFreeman Lou } 19c099b74eSFreeman Lou 20c099b74eSFreeman Lou 21a9fd76aeSFreeman Lou VirtualKeyboardInputDevice::~VirtualKeyboardInputDevice() 22c099b74eSFreeman Lou { 23c099b74eSFreeman Lou } 24c099b74eSFreeman Lou 25c099b74eSFreeman Lou 26c099b74eSFreeman Lou status_t 27c099b74eSFreeman Lou VirtualKeyboardInputDevice::InitCheck() 28c099b74eSFreeman Lou { 29a9fd76aeSFreeman Lou static input_device_ref keyboard = {"VirtualKeyboard", 30a9fd76aeSFreeman Lou B_KEYBOARD_DEVICE, (void*) this}; 31a9fd76aeSFreeman Lou static input_device_ref* devices[2] = {&keyboard, NULL}; 32a9fd76aeSFreeman Lou 33a9fd76aeSFreeman Lou RegisterDevices(devices); 34a9fd76aeSFreeman Lou return B_OK; 35c099b74eSFreeman Lou } 36c099b74eSFreeman Lou 37c099b74eSFreeman Lou 38c099b74eSFreeman Lou status_t 39c099b74eSFreeman Lou VirtualKeyboardInputDevice::Start(const char* name, void* cookie) 40c099b74eSFreeman Lou { 41*b8fe0b58SFreeman Lou fKeyboardWindow = new VirtualKeyboardWindow(this); 42c099b74eSFreeman Lou fKeyboardWindow->Show(); 43a9fd76aeSFreeman Lou return B_OK; 44a9fd76aeSFreeman Lou } 45c099b74eSFreeman Lou 46a9fd76aeSFreeman Lou 47a9fd76aeSFreeman Lou status_t 48a9fd76aeSFreeman Lou VirtualKeyboardInputDevice::Stop(const char* name, void* cookie) 49a9fd76aeSFreeman Lou { 50*b8fe0b58SFreeman Lou if (fKeyboardWindow->Lock()) { 51a9fd76aeSFreeman Lou fKeyboardWindow->Quit(); 52a9fd76aeSFreeman Lou fKeyboardWindow = NULL; 53a9fd76aeSFreeman Lou } 54a9fd76aeSFreeman Lou return B_OK; 55c099b74eSFreeman Lou } 562071724cSFreeman Lou 572071724cSFreeman Lou 582071724cSFreeman Lou status_t 592071724cSFreeman Lou VirtualKeyboardInputDevice::Control(const char* name, void* cookie, 602071724cSFreeman Lou uint32 command, BMessage* message) 612071724cSFreeman Lou { 622071724cSFreeman Lou return B_OK; 632071724cSFreeman Lou } 64