コード例 #1
0
ファイル: Qt5GLWidget.cpp プロジェクト: ochilan/graphene
void Qt5GLWidget::mouseReleaseEvent(QMouseEvent* event) {
	int x = event->x();
	int y = m_height - event->y() - 1;
	switch (event->button()) {
		case Qt::LeftButton:
			mouseRelease(Left, x, y);
			if (!m_mouseDragged) mouseClick(Left, m_startX, m_startY);
			else mouseDragStop(Left, x, y);
			m_leftDown = false;
			break;
		case Qt::RightButton:
			mouseRelease(Right, x, y);
			if (!m_mouseDragged) mouseClick(Right, m_startX, m_startY);
			else mouseDragStop(Right, x, y);
			m_rightDown = false;
			break;
		case Qt::MiddleButton:
			mouseRelease(Middle, x, y);
			if (!m_mouseDragged) mouseClick(Middle, m_startX, m_startY);
			else mouseDragStop(Middle, x, y);
			m_middleDown = false;
			break;
		default: break;
	}
	m_mouseDragged = false;
}
コード例 #2
0
/*
 * Event: Mouse Double Click
 * Input: int left = 1, right = 2
 * Input Error: return INPUT_ERROR
 */
int Event::mouseDClick(int left_or_right)
{
    if(left_or_right == 1){
        //left button click twice
        mouseClick(1);
        mouseClick(1);
        return 0;
    }else if(left_or_right == 2){
        //rigth button click twice
        mouseClick(2);
        mouseClick(2);
        return 0;
    }else {
        return INPUT_ERROR;
    }
}
コード例 #3
0
ファイル: menu.cpp プロジェクト: Deledrius/scummvm
bool Menu::mouseMove(int x, int y) {
	if (_menuActivated)
		if (mouseClick(x, y))
			return true;

	return false;
}
コード例 #4
0
ファイル: EditboxView.cpp プロジェクト: ZoriaRPG/ZeldaClassic
bool EditboxNoWrapView::mouseDragOther(int x, int)
{
    //maybe pressing arrow, or sliding?
    if(leftarrow_state == 1)
    {
        scrollLeft();
        return true;
    }
    
    if(rightarrow_state == 1)
    {
        scrollRight();
        return true;
    }
    
    if(hbarstate == 1)
    {
        //fake a click
        //first, clip the coords
        int fakey = leftarrow_y+1;
        return mouseClick(x,fakey);
    }
    
    return false;
}
コード例 #5
0
ファイル: EditboxView.cpp プロジェクト: ZoriaRPG/ZeldaClassic
bool EditboxVScrollView::mouseDrag(int x, int  y)
{
    int textheight;
    textheight = text_height(textfont);
    
    if(model->getSelection().isSelecting())
    {
        return BasicEditboxView::mouseDrag(x,y);
    }
    else
    {
        //maybe pressing arrow, or sliding?
        if(toparrow_state == 1)
        {
            scrollUp();
            return true;
        }
        
        if(bottomarrow_state == 1)
        {
            scrollDown();
            return true;
        }
        
        if(barstate == 1)
        {
            //fake a click
            //first, clip the coords
            int fakex = toparrow_x+1;
            return mouseClick(fakex,y);
        }
        
        return mouseDragOther(x,y);
    }
}
コード例 #6
0
void spellButton::update()
{
	if (mouseClick())
	{
		messageBus::sharedMessageBus()->sendMessage(castSpellEvent(sName));
		std::cout << "sent castSpell" << std::endl;
	}
}
コード例 #7
0
ファイル: dialog.cpp プロジェクト: Strangerke/scummvm
int Dialog::run() {
	bool shouldQuit = false;
	Common::Rect r(_bbox);

	_tempSurface.copyRectToSurface(_gui->_screen.getBasePtr(_bbox.left, _bbox.top), _gui->_screen.pitch, 0, 0, _bbox.width() + 1, _bbox.height() + 1);
	_gui->_wm.pushArrowCursor();

	while (!shouldQuit) {
		Common::Event event;

		while (_gui->_engine->_eventMan->pollEvent(event)) {
			switch (event.type) {
			case Common::EVENT_QUIT:
				_gui->_engine->_shouldQuit = true;
				shouldQuit = true;
				break;
			case Common::EVENT_MOUSEMOVE:
				mouseMove(event.mouse.x, event.mouse.y);
				break;
			case Common::EVENT_LBUTTONDOWN:
				mouseClick(event.mouse.x, event.mouse.y);
				break;
			case Common::EVENT_LBUTTONUP:
				shouldQuit = mouseRaise(event.mouse.x, event.mouse.y);
				break;
			case Common::EVENT_KEYDOWN:
				switch (event.kbd.keycode) {
				case Common::KEYCODE_ESCAPE:
					_pressedButton = -1;
					shouldQuit = true;
				default:
					break;
				}
				break;
			default:
				break;
			}
		}

		if (_needsRedraw)
			paint();

		g_system->updateScreen();
		g_system->delayMillis(50);
	}

	_gui->_screen.copyRectToSurface(_tempSurface.getBasePtr(0, 0), _tempSurface.pitch, _bbox.left, _bbox.top, _bbox.width() + 1, _bbox.height() + 1);
	g_system->copyRectToScreen(_gui->_screen.getBasePtr(r.left, r.top), _gui->_screen.pitch, r.left, r.top, r.width() + 1, r.height() + 1);

	_gui->_wm.popCursor();

	return _pressedButton;
}
コード例 #8
0
void QgsGrassEditTool::canvasPressEvent( QMouseEvent * event )
{
  QgsPoint point = toLayerCoordinates( e->layer(), event->pos() );
  mouseClick( point,  event->button() );

  // Set last click
  e->mLastPoint = point;

  e->statusBar()->showMessage( e->mCanvasPrompt );

  QgsDebugMsg( QString( "n_points = %1" ).arg( e->mEditPoints->n_points ) );
}
コード例 #9
0
ファイル: moc_DrawCanvas.cpp プロジェクト: seeyousystems/core
int DrawCanvas::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QWidget::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: draw((*reinterpret_cast< QPainter*(*)>(_a[1]))); break;
        case 1: mouseClick((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break;
        default: ;
        }
        _id -= 2;
    }
    return _id;
}
コード例 #10
0
ファイル: moc_mainwindow.cpp プロジェクト: volmaxa/project1
int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QMainWindow::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: keyPress((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 1: doMouseLeftClick1(); break;
        case 2: doMouseLeftClick2(); break;
        case 3: mouseClick((*reinterpret_cast< int(*)>(_a[1]))); break;
        default: ;
        }
        _id -= 4;
    }
    return _id;
}
コード例 #11
0
ファイル: main.cpp プロジェクト: PirtualVineapple/LightsOut
void startGame()
{
    GLFWwindow* Window = initWindow();
    bool Clicked = false;
    GLuint VAO[2];
    GLuint VBO[2];
    GLuint LinesVBO[2];
    glGenVertexArrays(2, VAO);
    
    CellList cellList = createCellList();
    GLfloat* cellVertexArray = createCellVertexArray(cellVertexArray, cellList);
    GLfloat* cellColorArray = constructCellColorArray(cellColorArray, cellList, true);
    constructVO(VAO[0], VBO, cellVertexArray, cellColorArray);
    //constructLines(VAO[1], LinesVBO);
    createShaders();
    glClearColor(1.0, 1.0, 1.0, 1.0);

    while (!glfwWindowShouldClose(Window)){
        glClear(GL_COLOR_BUFFER_BIT);

        constructCellColorArray(cellColorArray, cellList, false);
        constructVO(VAO[0], VBO, cellVertexArray, cellColorArray);

        glBindVertexArray(VAO[0]);
        glDrawArrays(GL_TRIANGLES, 0, cellDim * cellDim * 12);

        glBindVertexArray(VAO[1]);
        //glDrawArrays(GL_LINES, 0, cellDim * 8);

        glfwSwapBuffers(Window);
        glfwWaitEvents();
        if (glfwGetMouseButton(Window, GLFW_MOUSE_BUTTON_LEFT) == 1 && !Clicked){
            Clicked = true;
            mouseClick(Window, cellList);
        }
        if (glfwGetMouseButton(Window, GLFW_MOUSE_BUTTON_LEFT) == 0 && Clicked)
            Clicked = false;
    }
    glfwDestroyWindow(Window);
    glfwTerminate();
    

}
コード例 #12
0
int main(int argc, char** argv) {
    printf("Init\n");

    //Open X Display
    Display *display = XOpenDisplay(NULL);
    assert(display != NULL);
    Window root = XDefaultRootWindow(display);
    char* eventName = "/dev/input/event2";

    mouseMove(display, root, 0, 0);
    mouseClick(display, root, Button1);
    getInput(display, root, eventName);

    //Close the display
    XCloseDisplay(display);

    printf("You are awesome :) \n");
    return EXIT_SUCCESS;
}
コード例 #13
0
int myView::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QGraphicsView::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: mouseOnScene(); break;
        case 1: mouseOutScene(); break;
        case 2: mouseMoving((*reinterpret_cast< float(*)>(_a[1])),(*reinterpret_cast< float(*)>(_a[2]))); break;
        case 3: mouseClick((*reinterpret_cast< float(*)>(_a[1])),(*reinterpret_cast< float(*)>(_a[2]))); break;
        case 4: mouseDoubleClick(); break;
        case 5: ameliorerItem(); break;
        case 6: vendreItem(); break;
        case 7: switchMouseMoving(); break;
        default: ;
        }
        _id -= 8;
    }
    return _id;
}
コード例 #14
0
ファイル: dialog.cpp プロジェクト: kevL/xoreos
int Dialog::processEventQueue() {
	bool hasMove = false;

	for (std::list<Events::Event>::const_iterator e = _eventQueue.begin();
	     e != _eventQueue.end(); ++e) {

		if      (e->type == Events::kEventMouseMove)
			hasMove = true;
		else if (e->type == Events::kEventKeyDown)
			keyPressed(*e);
		else if (e->type == Events::kEventMouseDown)
			mouseClick(*e);
	}

	_eventQueue.clear();

	if (hasMove)
		mouseMove();

	return hasEnded() ? 1 : 0;
}
コード例 #15
0
ファイル: keyboard.cpp プロジェクト: lig1/lig1_repo
void Keyboard::doKeyboard(unsigned char key, int x, int y, float solidZ, float transparentZ, float MAXZ, float MINZ, float ZINC, float WINPOSX, float WINPOSY) {

	_solidZ = solidZ;
	_transparentZ = transparentZ; 
	_MAXZ = MAXZ;
	_MINZ = MINZ;
	_ZINC = ZINC;



	switch (key) {
	case 'a':
	case 'A':
		solidZ = MAXZ;
		transparentZ = MINZ;
		glutIdleFunc(animate);
		break;
	case 'r':
	case 'R':
		solidZ = MAXZ;
		transparentZ = MINZ;
		glutPostRedisplay();
		break;
	case 27:
		exit(0);
		break;
	}

		std::cout << "_solidZ: " << _solidZ << "_transparentZ: " << _transparentZ << "_MAXZ: " << _MAXZ;

	Display *display = XOpenDisplay(0);
	Window root = DefaultRootWindow(display);

	XWarpPointer(display, None, root, 0, 0, 0, 0, WINPOSX+30, WINPOSY+30);

	mouseClick(Button1);

	XFlush(display);
	XCloseDisplay(display);
}
コード例 #16
0
VOID Combobox::MouseEventProc(MOUSE_EVENT_RECORD mer)
{
	switch (mer.dwEventFlags)
	{
	case 0:

		if (mer.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED && mer.dwMousePosition.Y == 8 && mer.dwMousePosition.X > 22 && mer.dwMousePosition.X < 26)
			showList();
		else if (mer.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED && mer.dwMousePosition.Y > 9 && mer.dwMousePosition.X > 8 && mer.dwMousePosition.X < 17)
			mouseClick(mer.dwMousePosition.Y);
		break;
	case MOUSE_MOVED:
		if (mer.dwMousePosition.Y > 9 && mer.dwMousePosition.Y < 15 && mer.dwMousePosition.X > 8 && mer.dwMousePosition.X < 17)
		{
			mouseMove(mer.dwMousePosition.Y);
		}

		break;
	default:
		//Nothing...
		break;
	}
}
コード例 #17
0
ファイル: XComp.cpp プロジェクト: digitaltembo/jade
void XComp::mousePaste(){
    mouseClick(Button3);
}
コード例 #18
0
ファイル: EventRecorder.cpp プロジェクト: AzeronX/proland-4.0
void EventRecorder::redisplay(double t, double dt)
{
     if (isRecording) {
        recordedEvents.push_back(Event(t, dt, TerrainNode::nextGroundHeightAtCamera));
    } else if (isPlaying) {
        ostringstream s;
        bool replay = true;
        isPlaying = false;
        while (replay && lastPlayed < recordedEvents.size()) {
            Event e = recordedEvents[lastPlayed++];
            switch (e.kind) {
            case Event::DISPLAY:
                t = e.display.t;
                dt = e.display.dt;
                TerrainNode::nextGroundHeightAtCamera = e.display.groundHeight;
                replay = false;
                break;
            case Event::MOUSE:
                mouseClick((button) e.e.arg1, (state) e.e.arg2, (modifier) e.e.m, e.e.arg3, e.e.arg4);
                savedX = e.e.arg3;
                savedY = e.e.arg4;
                break;
            case Event::MOTION:
                mouseMotion(e.e.arg1, e.e.arg2);
                savedX = e.e.arg1;
                savedY = e.e.arg2;
                break;
            case Event::PASSIVEMOTION:
                mousePassiveMotion(e.e.arg1, e.e.arg2);
                savedX = e.e.arg1;
                savedY = e.e.arg2;
                break;
            case Event::WHEEL:
                mouseWheel((wheel) e.e.arg1, (modifier) e.e.m, e.e.arg2, e.e.arg3);
                savedX = e.e.arg2;
                savedY = e.e.arg3;
                break;
            case Event::KEYBOARD:
                if (e.e.arg4 == 0) {
                    keyTyped(e.e.arg1, (modifier) e.e.m, e.e.arg2, e.e.arg3);
                    if (e.e.arg1 == 27) {
                        ::exit(0);
                    }
                } else {
                    keyReleased(e.e.arg1, (modifier) e.e.m, e.e.arg2, e.e.arg3);
                }
                break;
            case Event::SPECIAL:
                if (e.e.arg4 == 0) {
                    specialKey((key) e.e.arg1, (modifier) e.e.m, e.e.arg2, e.e.arg3);
                } else {
                    specialKeyReleased((key) e.e.arg1, (modifier) e.e.m, e.e.arg2, e.e.arg3);
                }
                break;
            }
        }
        isPlaying = lastPlayed < recordedEvents.size();
    }

    if (next != NULL) {
        next->redisplay(t, dt);
    }

    if (isPlaying) {
        ptr<FrameBuffer> fb = FrameBuffer::getDefault();
        vec4<GLint> vp = fb->getViewport();

        fb->setBlend(true, ADD, SRC_ALPHA, ONE_MINUS_SRC_ALPHA, ADD, ZERO, ONE);
        fb->setColorMask(true, true, true, false);
        fb->setDepthMask(false);
        fb->setStencilMask(0, 0);

        correctU->set(vec3f(0.f, 0.f, 1.f));
        rescaleU->set(vec4f(2.0f * (float)(savedX + 0.5f * cursW) / vp.z - 1.0f, 2.0f * (float)(vp.w - savedY - 0.5f * cursH) / vp.w - 1.0f, cursW / (float)vp.z, cursH / (float)vp.w));

        cursorSamplerU->set(cursor);
        fb->drawQuad(cursorProg);

        fb->setBlend(false);
        fb->setColorMask(true, true, true, true);
        fb->setDepthMask(true);
        fb->setStencilMask(0xFFFFFFFF,0xFFFFFFFF);
    }

    if (isPlaying && saveVideo) {
        int frameCount = 0;
        if (lastSavedEvent >= 0) {
            double prevTime = recordedEvents[lastSavedEvent].display.t;
            double curTime = recordedEvents[lastPlayed - 1].display.t;
            assert(recordedEvents[lastSavedEvent].kind == Event::DISPLAY && prevTime > 0.0);
            assert(recordedEvents[lastPlayed - 1].kind == Event::DISPLAY && curTime > 0.0);
            frameCount = int(floor(curTime / 40000.0) - floor(prevTime / 40000.0));
        }
        // if the delay between two recorded frames is more than 1/25 of a second
        // the first one must be saved several times in the video to keep a video
        // framerate of 25 frames per second.
        for (int i = 0; i < frameCount; ++i) {
            char name[256];
            sprintf(name, frames, lastSavedFrame++);
            saveFrame(name);
        }
        lastSavedEvent = lastPlayed - 1;
    }
}
コード例 #19
0
void getInput(Display *display, Window root, char* devName) {
    int fd, rd, i, root_x, root_y;
    struct input_event ev[64];
    Window window_returned;
    int win_x, win_y;
    unsigned int mask_return;
    int prev_x, prev_y;

    int slots = 0;

    fd = open(devName, O_RDONLY);

    if(fd < 0) {
        printf("Error Opening device. Are you root?\n");
    }

    while(1) {
        rd = read(fd, ev, sizeof(struct input_event) * 64);

        if(rd < (int) sizeof(struct input_event)) {
            printf("Error Reading Input");
        }

        for(i = 0; i < rd / sizeof(struct input_event); i++) {
            if(ev[i].code >= 47 && ev[i].code <= 60) {
                //Get current pointer information
                XQueryPointer(display, root, &window_returned,
                              &window_returned, &root_x, &root_y, &win_x, &win_y,
                              &mask_return);

                int ii;

                //Fill the slots
                if(ev[i].code == ABS_MT_SLOT && (ev[i].value - slots) == 1){
                    slots++;
                    printf("ADD SLOTS: %d\n",slots);
                }

                //X-Axis
                if(ev[i].code == ABS_MT_POSITION_X) {
                    mouseMove(display, root, ev[i].value, root_y);
                    prev_x = ev[i].value;
                }
                //Y-Axis
                if(ev[i].code == ABS_MT_POSITION_Y) {
                    mouseMove(display, root, root_x, ev[i].value);
                    prev_y = ev[i].value;
                }

                if(ev[i].code == ABS_MT_TRACKING_ID && ev[i].value == -1){
                    
                    slots--;
                    printf("REMOVE SLOTS: %d\n",slots);
                    
                    //We can click with one slot ;)
                    /*if(slots == 0){
                        mouseClick(display, root, Button1);
                    }*/
                    mouseClick(display, root, Button1);
                }
            }
        }

    }

    close(fd);

}
コード例 #20
0
ファイル: sdlapp.cpp プロジェクト: acaudwell/ConfHUD
int SDLApp::run() {

    Uint32 msec=0, last_msec=0, buffer_msec=0, total_msec = 0;

    frame_count = 0;
    fps_updater = 0;

    if(!appFinished) init();

    msec = SDL_GetTicks();
    last_msec = msec;

    while(!appFinished) {
        last_msec = msec;
        msec      = SDL_GetTicks();

        Uint32 delta_msec = msec - last_msec;

        // cant have delta ticks be 0
        buffer_msec += delta_msec;
        if(buffer_msec < 1) {
            SDL_Delay(1);
            continue;
        }

        delta_msec = buffer_msec;
        buffer_msec =0;

        //determine time elapsed since last time we were here
        total_msec += delta_msec;

        float t  = total_msec / 1000.0f;
        float dt = delta_msec / 1000.0f;

        fps_updater += delta_msec;

        //update framerate if a second has passed
        if (fps_updater >= 1000) {
            updateFramerate();
        }

        //process new events
        SDL_Event event;
        while ( SDL_PollEvent(&event) ) {

            switch(event.type) {
                case SDL_QUIT:
                    appFinished=true;
                    break;

                case SDL_MOUSEMOTION:
                    mouseMove(&event.motion);
                    break;

                case SDL_MOUSEBUTTONDOWN:
                    mouseClick(&event.button);
                    break;

                case SDL_MOUSEBUTTONUP:
                    mouseClick(&event.button);
                    break;

                case SDL_KEYDOWN:
                    keyPress(&event.key);
                    break;

                case SDL_KEYUP:
                    keyPress(&event.key);
                    break;

                default:
                    break;
            }
        }

        update(t, dt);

        //update display
        display.update();
        frame_count++;
    }

    return return_code;
}
コード例 #21
0
ファイル: MouseClick.cpp プロジェクト: d3m3vilurr/touchegg
void MouseClick::executeFinish(const QHash<QString, QVariant>& /*attrs*/)
{
    if (!at_start) {
        mouseClick();
    }
}
コード例 #22
0
ファイル: main.c プロジェクト: abersager/osxautomation
void processCommand(const char *cmd) {
  int tmpx, tmpy, btn;
  float tmpInterval;
  UInt32 tmpkc;
  char str[CMD_STRING_MAXLEN];

  bzero(str, CMD_STRING_MAXLEN);
  if (IS_CMD(cmd, "mouselocation")) {

    CGPoint cgLoc = mouseLoc();
    printf("%.f %.f\n", cgLoc.x, cgLoc.y);

  } else if (IS_CMD(cmd, "mousewarp ")) {

    print_msg("Warping mouse to location.");
    sscanf(cmd, "mousewarp %d %d", &tmpx, &tmpy);
    mouseMove(tmpx, tmpy);

  } else if (IS_CMD(cmd, "mousemove ")) {

    print_msg("Moving mouse.");
    sscanf(cmd, "mousemove %d %d", &tmpx, &tmpy);
    mouseMoveTo(tmpx, tmpy, 0.7);

  } else if (IS_CMD(cmd, "mousedown")) {

    print_msg("Pressing mouse button.");
    sscanf(cmd, "mousedown %d", &btn);
    mousePress(btn, SINGLE_CLICK);

  } else if (IS_CMD(cmd, "mouseup")) {

    print_msg("Releasing mouse button.");
    sscanf(cmd, "mouseup %d", &btn);
    mouseRelease(btn, SINGLE_CLICK);

  } else if (IS_CMD(cmd, "mouseclick")) {

    print_msg("Clicking mouse.");
    sscanf(cmd, "mouseclick %d", &btn);
    mouseClick(btn, SINGLE_CLICK);

  } else if (IS_CMD(cmd, "mousedoubleclick")) {

    print_msg("Double-clicking mouse.");
    sscanf(cmd, "mousedoubleclick %d", &btn);
    mouseClick(btn, DOUBLE_CLICK);

  } else if (IS_CMD(cmd, "mousetripleclick")) {

    print_msg("Triple-clicking mouse.");
    sscanf(cmd, "mousetripleclick %d", &btn);
    mouseClick(btn, TRIPLE_CLICK);

  } else if (IS_CMD(cmd, "mousedrag ")) {

    print_msg("Dragging mouse.");
    sscanf(cmd, "mousedrag %d %d", &tmpx, &tmpy);
    mouseDrag(LEFT_MOUSE, tmpx, tmpy);

  } else if (IS_CMD(cmd, "press ")) {

    print_msg("Pressing key.");
    sscanf(cmd, "press %x", &tmpkc);
    keyPress((CGKeyCode)tmpkc, NULL);

  } else if (IS_CMD(cmd, "release ")) {

    print_msg("Releasing key.");
    sscanf(cmd, "release %x", &tmpkc);
    keyRelease((CGKeyCode)tmpkc, NULL);

  } else if (IS_CMD(cmd, "hit ")) {

    print_msg("Hitting key.");
    sscanf(cmd, "hit %x", &tmpkc);
    keyHit((CGKeyCode)tmpkc, NULL);

  } else if (IS_CMD(cmd, "type ")) {

    print_msg("Typing.");
    strncpy(str, &cmd[5], CMD_STRING_MAXLEN);
    typeString(str);

  } else if (IS_CMD(cmd, "wait")) {

    print_msg("Waiting.");
    sscanf(cmd, "wait %f", &tmpInterval);
    usleep(1000000 * tmpInterval);

  } else {

    print_msg("I don't know what you want to do.");

  }
}
コード例 #23
0
ファイル: sdlapp.cpp プロジェクト: JickLee/Core
int SDLApp::run() {

#ifdef USE_X11
    SDLApp::initX11ClipboardEventFilter();
#endif

    Uint32 msec=0, last_msec=0, buffer_msec=0, total_msec = 0;

    frame_count = 0;
    fps_updater = 0;

    if(!appFinished) init();

    msec = SDL_GetTicks();
    last_msec = msec;

    while(!appFinished) {
        last_msec = msec;
        msec      = SDL_GetTicks();

        Uint32 delta_msec = msec - last_msec;

        // cant have delta ticks be less than 8ms
        buffer_msec += delta_msec;
        if(buffer_msec < min_delta_msec) {
            SDL_Delay(1);
            continue;
        }

        delta_msec = buffer_msec;
        buffer_msec =0;

        //determine time elapsed since last time we were here
        total_msec += delta_msec;

        float t  = total_msec / 1000.0f;
        float dt = delta_msec / 1000.0f;

        fps_updater += delta_msec;

        //update framerate if a second has passed
        if (fps_updater >= 1000) {
            updateFramerate();
        }

        //process new events
        SDL_Event event;
        while ( SDL_PollEvent(&event) ) {

            switch(event.type) {
                case SDL_QUIT:
                    quit();
                    break;

                case SDL_MOUSEMOTION:
                    mouseMove(&event.motion);
                    break;

#if SDL_VERSION_ATLEAST(1,3,0)
                case SDL_MOUSEWHEEL:
                    mouseWheel(&event.wheel);
                    break;

		case SDL_WINDOWEVENT:
		    if(event.window.event == SDL_WINDOWEVENT_RESIZED) {
			resize(event.window.data1, event.window.data2);
		    }
                    break;
#else
                case SDL_VIDEORESIZE:
                    resize(event.resize.w, event.resize.h);
                    break;
#endif

                case SDL_MOUSEBUTTONDOWN:
                    mouseClick(&event.button);
                    break;

                case SDL_MOUSEBUTTONUP:
                    mouseClick(&event.button);
                    break;

                case SDL_KEYDOWN:
                    keyPress(&event.key);
                    break;

                case SDL_KEYUP:
                    keyPress(&event.key);
                    break;

                default:
                    break;
            }
        }

        update(t, dt);

        //update display
        display.update();
        frame_count++;
    }

    return return_code;
}
コード例 #24
0
ファイル: XComp.cpp プロジェクト: digitaltembo/jade
void XComp::rightClick(){
    mouseClick(Button3);
}
コード例 #25
0
int main(int argc, char **argv)
{	
	fprintf(stderr, "Launch the app BTMouse in your phone and connect with the PC! \n");
    struct sockaddr_rc loc_addr = { 0 }, rem_addr = { 0 };
    char buf[1024] = { 0 };
    int s, client, bytes_read,flag=1;
    socklen_t opt = sizeof(rem_addr);

    // allocate socket
    s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);

    // bind socket to port 1 of the first available 
    // local bluetooth adapter
    loc_addr.rc_family = AF_BLUETOOTH;
    loc_addr.rc_bdaddr = *BDADDR_ANY;
    loc_addr.rc_channel = (uint8_t) 1;
    bind(s, (struct sockaddr *)&loc_addr, sizeof(loc_addr));
	
    // put socket into listening mode
    listen(s, 1);

    // accept one connection
    client = accept(s, (struct sockaddr *)&rem_addr, &opt);

    ba2str( &rem_addr.rc_bdaddr, buf );
    fprintf(stderr, "accepted connection from %s\n", buf);
    memset(buf, 0, sizeof(buf));


	// initialise X components

	dpy = XOpenDisplay(0);
	root_window = XRootWindow(dpy, 0);
	XSelectInput(dpy, root_window, KeyReleaseMask);
    // read data from the client
	while(1){
    bytes_read = read(client, buf, sizeof(buf));
    if( bytes_read > 0 ) {
		//if(flag==1){
        printf("%s \n", buf);
		//flag=2;}
	switch(buf[0]){
		case 'l':
		mouseClick(1);
		break;
    	case 'r':
		mouseClick(3);
		break;
	case '(': 
		act(buf);
		break;
	
    	}}
	else { 
		}
	
	}
    // close connection
    close(client);
    close(s);
	
	//move(100,100);
	//refresh();


    return 0;
}
コード例 #26
0
ファイル: XComp.cpp プロジェクト: digitaltembo/jade
void XComp::scrollDown(){
    mouseClick(Button5);
}
コード例 #27
0
ファイル: ThumbnailStrip.cpp プロジェクト: cgmb/renderdoc
void ThumbnailStrip::mousePressEvent(QMouseEvent *event)
{
  emit(mouseClick(event));
}
コード例 #28
0
ファイル: XComp.cpp プロジェクト: digitaltembo/jade
void XComp::mouseClick(){
    mouseClick(Button1);
}
コード例 #29
0
ファイル: server.c プロジェクト: GuilhermeRuiz/rat
void click()
{
    mouseClick(Button1);
}
コード例 #30
0
ファイル: XComp.cpp プロジェクト: digitaltembo/jade
void XComp::scrollUp(){
    mouseClick(Button4);
}