예제 #1
0
void GTKeyboardDriver::keyRelease(GUITestOpStatus &os, int key, int modifiers)
{
    GT_CHECK(key != 0, " Error: key = 0 in GTKeyboardDriver::keyRelease()");

    if (modifiers) {
        INPUT input = getKeyEvent(modifiers, true);
        SendInput(1, &input, sizeof(input));
    }

    INPUT input = getKeyEvent(key, true);
    SendInput(1, &input, sizeof(input));
}
예제 #2
0
bool keyReleaseWindows(int key, int modifiers = 0, bool extended = false)
{
	DRIVER_CHECK(key != 0, " Error: key = 0 in GTKeyboardDriver::keyRelease()");

	if (modifiers) {
		INPUT input = getKeyEvent(modifiers, true);
		SendInput(1, &input, sizeof(input));
	}

	INPUT input = getKeyEvent(key, true, extended);
	SendInput(1, &input, sizeof(input));

	return true;
}
예제 #3
0
int main(int, char **)
{
	time_t time;

	std::time(&time);
	struct tm *current_time;

	current_time = localtime(&time);

	char time_string[17];
	strftime(time_string, 17, "%Y-%m-%d %H:%M", current_time);
	std::cout << "Current time: " << time_string << std::endl;

	EventManager events;

	events.add(inputEvent());
	
	KeyEvent key = KeyEvent::OTHER;
	do
	{
		if(kbhit())
		{
			key = getKeyEvent();
			switch(key)
			{
			case KeyEvent::NEW:
				events.add(inputEvent());
				break;

			case KeyEvent::QUIT:
				break;

			default:
				break;
			}
		}

		std::vector<Event> overdue = events.getOverDue();

		if (!overdue.empty())
		{
			for(Event event : overdue)
				std::cout << event.getMessage() << std::endl;

			break;
		}
	}
	while (key != KeyEvent::QUIT);

	return 0;
}
예제 #4
0
int DS::Keyboard::pool()
{
 DS::Event *event = new DS::Event();
 getKeyEvent(event);
 if( event->what() == evKeyDown )  // 若有按鍵產生 ,則將此事件放入訊息串列中
 {   
  //msgQueue->add( event );
  //event_queue.push_back(event);
  event_queue.push(event);
  return 1;            
 }
 else
 {    
  delete event;      // 若無,則殺去剛才所 new 的事件。
  return 0;    
 }
}
예제 #5
0
size_t Keyboard_GetEvents(keyevent_t *evbuf, size_t bufsize)
{
    keyevent_t *e;
    size_t      i = 0;

    if(!initOk)
        return 0;

    // Get the events.
    for(i = 0; i < bufsize; ++i)
    {
        e = getKeyEvent();
        if(!e) break; // No more events.
        memcpy(&evbuf[i], e, sizeof(*e));
    }

    return i;
}
예제 #6
0
//----------------------------------------------------------------
void Input::update()
{
	// update the mouse buttons data  based on the previous acquire data

	// button 1
    if (m_ucMouseButton[MB_1]) {
        if (!m_bButtonState[MB_1]) {
            m_lMouseButtonClick[MB_1] = true;
            m_bButtonState[MB_1] = true;
        } else 
            m_lMouseButtonClick[MB_1] = false;
    } 
    else
        if (m_bButtonState[MB_1])
            m_bButtonState[MB_1] = false;

	// button 2
    if (m_ucMouseButton[MB_2]) {
        if (!m_bButtonState[MB_2]) {
            m_lMouseButtonClick[MB_2] = true;
            m_bButtonState[MB_2] = true;
        } else 
            m_lMouseButtonClick[MB_2] = false;
    } 
    else
        if (m_bButtonState[MB_2])
            m_bButtonState[MB_2] = false;

	// button 3
    if (m_ucMouseButton[MB_3]) {
        if (!m_bButtonState[MB_3]) {
            m_lMouseButtonClick[MB_3] = true;
            m_bButtonState[MB_3] = true;
        } else 
            m_lMouseButtonClick[MB_3] = false;
    } 
    else
        if (m_bButtonState[MB_3])
            m_bButtonState[MB_3] = false;

	getKeyEvent();
}
예제 #7
0
uint8_t KEYS::readKeypad(void)
{
  return(getKeyEvent());
}
예제 #8
0
uint8_t KEYS::getKeyEvent(void) {
  return(getKeyEvent(0));
}
예제 #9
0
void TarryTown::pKeyRelease(QScriptValue target, QString text) {
    Hessian * tv = (Hessian *)target.toQObject();
    QWebView * v = (QWebView*)tv->GetView();
    QKeyEvent * event = getKeyEvent(text,"release");
    QApplication::sendEvent(v,event);
}