예제 #1
0
int connectDialog::readCfg()
{
    QFile config(":/cfg/cfg/db_config.cfg");
    if(!config.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        qDebug()<<"open config file faild!!!";
    }

    QTextStream textInput(&config);
    QString lineStr;
    while (!textInput.atEnd())
    {
        lineStr = textInput.readLine();
        if(lineStr.startsWith("[DBInfo]"))
        {
            if(!serverList.contains(lineStr.section(" ",1,1)))
                serverList.append(lineStr.section(" ",1,1));
            if(!portList.contains(lineStr.section(" ",2,2)))
                portList.append(lineStr.section(" ",2,2));
            if(!dbNameList.contains(lineStr.section(" ",3,3)))
                dbNameList.append(lineStr.section(" ",3,3));
            if(!usrNameList.contains(lineStr.section(" ",4,4)))
                usrNameList.append(lineStr.section(" ",4,4));
        }
        qDebug()<<"serverList: "<<serverList;
    }
//    serverEdit->setText(serverList.value(0));
//    portEdit->setText(portList.value(0));
//    dbNameEdit->setText(dbNameList.value(0));
//    usrEdit->setText(usrNameList.value(0));
    config.close();
    return 0;
}
예제 #2
0
int connectDialog::writeCfg()
{
    QFile config(":/cfg/cfg/db_config.cfg");
    QString newConnecter;
    newConnecter += "[DBInfo] ";
    newConnecter += serverEdit->text().append(" ");
    newConnecter += portEdit->text().append(" ");
    newConnecter += dbNameEdit->text().append(" ");
    newConnecter += usrEdit->text();
    if(!config.open(QIODevice::ReadWrite | QIODevice::Text))
    {
        qDebug()<<"open config file faild!!!";
    }
    qDebug()<<"open file successed!!!";

    QTextStream textInput(&config);
    QString lineStr;
    while (!textInput.atEnd())
    {
        lineStr = textInput.readLine();
        if(lineStr.contains(newConnecter))
        {
            qDebug()<<"contains";
            return 0;
        }
    }
    qDebug()<<"not Contains";
    qDebug()<<newConnecter;
    textInput<<newConnecter<<endl;
 //   config.close();
    return 0;
}
bool TextEditComponent::input(InputConfig* config, Input input)
{
	if(input.value == 0)
	{
		if(config->isMappedTo("left", input) || config->isMappedTo("right", input))
			mCursorRepeatDir = 0;

		return false;
	}

	if(config->isMappedTo("b", input) && mFocused && !mEditing)
	{
		startEditing();
		return true;
	}

	if(mEditing)
	{
		if(config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_RETURN)
		{
			if(isMultiline())
			{
				textInput("\n");
			}else{
				stopEditing();
			}

			return true;
		}

		if((config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_ESCAPE) || (config->getDeviceId() != DEVICE_KEYBOARD && config->isMappedTo("a", input)))
		{
			stopEditing();
			return true;
		}

		if(config->isMappedTo("up", input))
		{
			// TODO
		}else if(config->isMappedTo("down", input))
		{
			// TODO
		}else if(config->isMappedTo("left", input) || config->isMappedTo("right", input))
		{
			mCursorRepeatDir = config->isMappedTo("left", input) ? -1 : 1;
			mCursorRepeatTimer = -(CURSOR_REPEAT_START_DELAY - CURSOR_REPEAT_SPEED);
			moveCursor(mCursorRepeatDir);
		}

		//consume all input when editing text
		return true;
	}

	return false;
}
예제 #4
0
파일: cursynth.cpp 프로젝트: Lemm/cursynth
  void Cursynth::start(unsigned sample_rate, unsigned buffer_size) {
    // Setup all callbacks.
    setupAudio(sample_rate, buffer_size);
    setupMidi();
    setupGui();
    loadConfiguration();

    // Wait for computer keyboard input.
    while(textInput(getch()))
      ;

    stop();
  }
예제 #5
0
  void Cursynth::start() {
    // Setup all callbacks.
    setupAudio();
    setupMidi();
    setupGui();
    loadConfiguration();

    // Wait for computer keyboard input.
    while(textInput(getch()))
      ;

    stop();
  }
예제 #6
0
bool BrainGameOver::handleEvent(SDL_Event& event)
{
	switch(event.type)
	{
	case SDL_KEYDOWN:
		if( event.key.keysym.sym == SDLK_ESCAPE )
		{
			changeState(BrainMenu::instance());
			return true;
		}
		else if( !m_text_queue.empty() )
		{
			textInput(event.key.keysym.sym);
			return true;
		}
		break;
	}

	return false;
}
예제 #7
0
파일: InputX.cpp 프로젝트: ChicoTeam/gosu
void Gosu::Input::update()
{
    for (unsigned int i = 0; i < pimpl->eventList.size(); i++)
    {
        ::XEvent event = pimpl->eventList[i];

        if (textInput() && textInput()->feedXEvent(pimpl->display, &event))
            continue;

        if (event.type == KeyPress)
        {
            // char buf[8];
            // unsigned chars = XLookupString(&event.xkey, buf, sizeof buf, 0, 0);
            // unsigned keysym = XKeycodeToKeysym(pimpl->display, event.xkey.keycode, 0);
            // unsigned id = (chars == 0) ? keysym : widen(buf).at(0);

            unsigned id = XKeycodeToKeysym(pimpl->display, event.xkey.keycode, 0);

            pimpl->keyMap[id] = true;
            if (onButtonDown)
                onButtonDown(Button(id));
        }
        else if (event.type == KeyRelease)
        {
            // char buf[8];
            // unsigned chars = XLookupString(&event.xkey, buf, sizeof buf, 0, 0);
            // unsigned keysym = XKeycodeToKeysym(pimpl->display, event.xkey.keycode, 0);
            // unsigned id = (chars == 0) ? keysym : widen(buf).at(0);

            if (i < pimpl->eventList.size() - 1)
            {
                ::XEvent nextEvent = pimpl->eventList[i + 1];
                if (nextEvent.type == KeyPress && nextEvent.xkey.keycode == event.xkey.keycode)
                {
                    i += 1;
                    continue;
                }
            }

            unsigned id = XKeycodeToKeysym(pimpl->display, event.xkey.keycode, 0);

            pimpl->keyMap[id] = false;
            if (onButtonUp)
                onButtonUp(Button(id));
        }
        else if (event.type == ButtonPress)
        {
            unsigned id;
            switch (event.xbutton.button)
            {
            case Button1: id = msLeft; break;
            case Button2: id = msMiddle; break;
            case Button3: id = msRight; break;
            case Button4: id = msWheelUp; break;
            case Button5: id = msWheelDown; break;
            default: continue;
            }
            pimpl->keyMap[id] = true;
            // TODO: Here, above, below, who came up with that cast? Uh :)
            if (onButtonDown)
                onButtonDown(Button(id));
            if (onButtonUp and id == msWheelUp or id == msWheelDown)
                onButtonUp(Button(id));
        }
        else if (event.type == ButtonRelease)
        {
            unsigned id;
            switch (event.xbutton.button)
            {
            case Button1: id = msLeft; break;
            case Button2: id = msMiddle; break;
            case Button3: id = msRight; break;
            default: continue;
            }
            pimpl->keyMap[id] = false;
            if (onButtonUp)
                onButtonUp(*reinterpret_cast<Button*>(&id));
        }
        else if (event.type == MotionNotify)
        {
            pimpl->mouseX = event.xbutton.x;
            pimpl->mouseY = event.xbutton.y;
        }
        else if (event.type == EnterNotify || event.type == LeaveNotify)
        {
            pimpl->mouseX = event.xcrossing.x;
            pimpl->mouseY = event.xcrossing.y;
        }
    }
    pimpl->eventList.clear();
}
예제 #8
0
void Gosu::Input::update()
{
    for (unsigned int i = 0; i < pimpl->eventList.size(); i++)
    {
        ::XEvent event = pimpl->eventList[i];

        if (textInput() && textInput()->feedXEvent(pimpl->display, &event))
            continue;

        if (event.type == KeyPress)
        {
            unsigned id = event.xkey.keycode - 8;

            pimpl->keyMap[id] = true;
            if (onButtonDown)
                onButtonDown(Button(id));
        }
        else if (event.type == KeyRelease)
        {
            if (i < pimpl->eventList.size() - 1)
            {
                ::XEvent nextEvent = pimpl->eventList[i + 1];
                if (nextEvent.type == KeyPress && nextEvent.xkey.keycode == event.xkey.keycode)
                {
                    i += 1;
                    continue;
                }
            }

            unsigned id = event.xkey.keycode - 8;

            pimpl->keyMap[id] = false;
            if (onButtonUp)
                onButtonUp(Button(id));
        }
        else if (event.type == ButtonPress)
        {
            unsigned id;
            switch (event.xbutton.button)
            {
            case Button1: id = msLeft; break;
            case Button2: id = msMiddle; break;
            case Button3: id = msRight; break;
            case Button4: id = msWheelUp; break;
            case Button5: id = msWheelDown; break;
            case 6: id = msOther0; break;
            case 7: id = msOther1; break;
            case 8: id = msOther2; break;
            case 9: id = msOther3; break;
            case 10: id = msOther4; break;
            case 11: id = msOther5; break;
            case 12: id = msOther6; break;
            case 13: id = msOther7; break;
            default: continue;
            }
            pimpl->keyMap[id] = true;
            if (onButtonDown)
                onButtonDown(Button(id));
        }
        else if (event.type == ButtonRelease)
        {
            unsigned id;
            switch (event.xbutton.button)
            {
            case Button1: id = msLeft; break;
            case Button2: id = msMiddle; break;
            case Button3: id = msRight; break;
            case Button4: id = msWheelUp; break;
            case Button5: id = msWheelDown; break;
            case 6: id = msOther0; break;
            case 7: id = msOther1; break;
            case 8: id = msOther2; break;
            case 9: id = msOther3; break;
            case 10: id = msOther4; break;
            case 11: id = msOther5; break;
            case 12: id = msOther6; break;
            case 13: id = msOther7; break;
            default: continue;
            }
            pimpl->keyMap[id] = false;
            if (onButtonUp)
                onButtonUp(Button(id));
        }
        else if (event.type == MotionNotify)
        {
            pimpl->mouseX = event.xbutton.x;
            pimpl->mouseY = event.xbutton.y;
        }
        else if (event.type == EnterNotify || event.type == LeaveNotify)
        {
            pimpl->mouseX = event.xcrossing.x;
            pimpl->mouseY = event.xcrossing.y;
        }
    }
    pimpl->eventList.clear();
}
예제 #9
0
파일: Events.cpp 프로젝트: JERlabs/JERonimo
  const SUCCESS Events::handleEvent(const SDL_Event * const Event)
  {
    switch(Event->type)
    {  //newline brackets implemented since this is a lot of nesting
    case SDL_WINDOWEVENT: ///Some sort of input or output gained or lost
      {
        const Uint8 &winID = Event->window.windowID;
        switch(Event->window.event) 
        {
        case SDL_WINDOWEVENT_ENTER:   ///Mouse message handling gained or lost
          return mouseEnter(winID);
          
        case SDL_WINDOWEVENT_LEAVE:   ///General input message handling gained or lost
          return mouseLeave(winID);

        case SDL_WINDOWEVENT_MINIMIZED:   ///Output to the screen at all gained or lost
          return minimized(winID);
          
        case SDL_WINDOWEVENT_RESTORED:
          return restored(winID);
          
        case SDL_WINDOWEVENT_MAXIMIZED:
          return maximized(winID);
          
        case SDL_WINDOWEVENT_SHOWN:
          return shown(winID);
          
        case SDL_WINDOWEVENT_HIDDEN:
          return hidden(winID);
          
        case SDL_WINDOWEVENT_EXPOSED:
          return exposed(winID);
          
        case SDL_WINDOWEVENT_FOCUS_GAINED:
          return keyboardFocusGain(winID);
          
        case SDL_WINDOWEVENT_FOCUS_LOST:
          return keyboardFocusLost(winID);
          
        case SDL_WINDOWEVENT_SIZE_CHANGED:
            return changeSize(winID);
            
        case SDL_WINDOWEVENT_RESIZED:
          return resized(winID, Dimensions<int>(Event->window.data1, Event->window.data2));
          
        case SDL_WINDOWEVENT_MOVED:
          return moved(winID, Point<int>(Event->window.data1, Event->window.data2));
          
        case SDL_WINDOWEVENT_CLOSE:
          return windowExited(winID);
          
        default:   ///For some reason there is an unknown window event
          return FAILED;
        }
        break;
      }
    case SDL_KEYDOWN:
      {
        if(Event->key.repeat)
        {
          return keyHeld(Event->key.windowID, Event->key.keysym);
        }
        else
        {
          return keyPressed(Event->key.windowID, Event->key.keysym);
        }
        break;
      }
    case SDL_KEYUP:
        return keyReleased(Event->key.windowID, Event->key.keysym);
        
    case SDL_TEXTINPUT:
        return textInput(Event->text.windowID, Event->text.text);
        
    case SDL_TEXTEDITING:
        return textEdit(Event->edit.windowID, Event->edit.text, Event->edit.start, Event->edit.length);
        
    case SDL_MOUSEMOTION:
      return mouseMove(Event->motion.windowID, Event->motion.which,
                       Delta<Point<int> >(Point<int>(Event->motion.xrel, Event->motion.yrel), 
                                          Point<int>(Event->motion.x, Event->motion.y)),
                       bitset<N_MOUSE_BUTTONS>(Event->motion.state));
                       
    case SDL_MOUSEBUTTONDOWN:
      return mouseButtonPressed(Event->button.windowID, Event->button.which, Event->button.button, Event->button.clicks,
                                Point<int>(Event->button.x, Event->button.y));
      
    case SDL_MOUSEBUTTONUP:
        return mouseButtonReleased(Event->button.windowID, Event->button.which, Event->button.button, Event->button.clicks,
                                  Point<int>(Event->button.x, Event->button.y));
     
    case SDL_MOUSEWHEEL:
        return mouseWheel(Event->wheel.windowID, Event->wheel.which, Point<int>(Event->wheel.x, Event->wheel.y));
        
    case SDL_JOYAXISMOTION:
      return joyAxis(Event->jaxis.which, Event->jaxis.axis, Event->jaxis.value);
    
    case SDL_JOYBUTTONDOWN:
      return joyButtonPressed(Event->jbutton.which, Event->jbutton.button);
      
    case SDL_JOYBUTTONUP:
      return joyButtonReleased(Event->jbutton.which, Event->jbutton.button);
      
    case SDL_JOYHATMOTION:
      return joyHatChange(Event->jhat.which, Event->jhat.hat, Event->jhat.value);
        
    case SDL_JOYBALLMOTION:
      return joyBallMove(Event->jball.which, Event->jball.ball, Point<int>(Event->jball.xrel, Event->jball.yrel));
      
    case SDL_DROPFILE:
    {
      const SUCCESS ret = droppedFile(Event->drop.file);
      SDL_free(Event->drop.file);
      return ret;
    }
      
    case SDL_SYSWMEVENT:
      return unhandledSystemEvent(Event->syswm.msg);
     
    case SDL_QUIT:
      return appExited();
        
    case SDL_USEREVENT:
    default:
      {
        return userEvent(Event->user.windowID, Event->user.code, Event->user.data1, Event->user.data2);
      }
    }

    return FAILED;
  }
예제 #10
0
bool EventHandler::handleEvent(SDL_Event &event) {
	switch (event.type) {
	case SDL_TEXTINPUT:
		textInput(std::string(event.text.text));
		break;
	case SDL_KEYUP:
		keyRelease((int32_t) event.key.keysym.sym);
		break;
	case SDL_KEYDOWN:
		// we are handling this on our own
		if (!event.key.repeat)
			keyPress((int32_t) event.key.keysym.sym, (int16_t) event.key.keysym.mod);
		break;
	case SDL_MOUSEMOTION: {
		if (event.motion.which == SDL_TOUCH_MOUSEID)
			break;
		SDL_Window *window = SDL_GetWindowFromID(event.motion.windowID);
		if (!(SDL_GetWindowFlags(window) & SDL_WINDOW_INPUT_FOCUS))
			break;
		mouseMotion(event.motion.x, event.motion.y, event.motion.xrel, event.motion.yrel);
		break;
	}
	case SDL_MOUSEBUTTONDOWN:
		if (event.button.which == SDL_TOUCH_MOUSEID)
			break;
		mouseButtonPress(event.button.x, event.button.y, event.button.button);
		break;
	case SDL_MOUSEBUTTONUP:
		if (event.button.which == SDL_TOUCH_MOUSEID)
			break;
		mouseButtonRelease(event.button.x, event.button.y, event.button.button);
		break;
	case SDL_MOUSEWHEEL:
		if (event.wheel.which == SDL_TOUCH_MOUSEID)
			break;
		mouseWheel(event.wheel.x, event.wheel.y);
		break;
	case SDL_CONTROLLERAXISMOTION: {
		const uint8_t axis = event.caxis.axis;
		if (axis != SDL_CONTROLLER_AXIS_LEFTX && axis != SDL_CONTROLLER_AXIS_LEFTY && axis != SDL_CONTROLLER_AXIS_RIGHTX && axis != SDL_CONTROLLER_AXIS_RIGHTY)
			break;
		const bool horizontal = (axis == SDL_CONTROLLER_AXIS_LEFTX || axis == SDL_CONTROLLER_AXIS_RIGHTX);
		joystickMotion(horizontal, event.caxis.value);
		break;
	}
	case SDL_CONTROLLERBUTTONDOWN:
		controllerButtonPress(getControllerButtonName(event.cbutton.button));
		break;
	case SDL_CONTROLLERBUTTONUP:
		controllerButtonRelease(getControllerButtonName(event.cbutton.button));
		break;
	case SDL_CONTROLLERDEVICEADDED:
		joystickDeviceAdded(event.cdevice.which);
		break;
	case SDL_CONTROLLERDEVICEREMOVED:
		joystickDeviceRemoved(event.cdevice.which);
		break;
	case SDL_JOYDEVICEADDED:
		joystickDeviceAdded(event.jdevice.which);
		break;
	case SDL_JOYDEVICEREMOVED:
		joystickDeviceRemoved(event.jdevice.which);
		break;
	case SDL_DOLLARRECORD:
		gestureRecord(event.dgesture.gestureId);
		break;
	case SDL_DOLLARGESTURE:
		gesture(event.dgesture.gestureId, event.dgesture.error, event.dgesture.numFingers);
		break;
	case SDL_MULTIGESTURE:
		multiGesture(event.mgesture.dTheta, event.mgesture.dDist, event.mgesture.numFingers);
		break;
	case SDL_JOYHATMOTION:
		break;
	case SDL_JOYBUTTONDOWN:
		joystickButtonPress(event.jbutton.button);
		break;
	case SDL_JOYBUTTONUP:
		joystickButtonRelease(event.jbutton.button);
		break;
	case SDL_JOYAXISMOTION:
		joystickMotion(event.jaxis.axis == 0, event.jaxis.value);
		break;
	case SDL_FINGERDOWN:
		fingerPress(event.tfinger.fingerId, event.tfinger.x, event.tfinger.y);
		break;
	case SDL_FINGERUP:
		fingerRelease(event.tfinger.fingerId, event.tfinger.x, event.tfinger.y);
		break;
	case SDL_FINGERMOTION:
		fingerMotion(event.tfinger.fingerId, event.tfinger.x, event.tfinger.y, event.tfinger.dx, event.tfinger.dy);
		break;
	case SDL_WINDOWEVENT:
		switch (event.window.event) {
		case SDL_WINDOWEVENT_RESIZED:
		case SDL_WINDOWEVENT_SIZE_CHANGED:
			for (EventObservers::iterator i = _observers.begin(); i != _observers.end(); ++i) {
				(*i)->onWindowResize();
			}
			break;
		case SDL_WINDOWEVENT_CLOSE:
			return false;
		}
		break;
	}
	return true;
}
bool TextEditComponent::input(InputConfig* config, Input input)
{
	bool const cursor_left = (config->getDeviceId() != DEVICE_KEYBOARD && config->isMappedLike("left", input)) ||
		(config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_LEFT);
	bool const cursor_right = (config->getDeviceId() != DEVICE_KEYBOARD && config->isMappedLike("right", input)) ||
		(config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_RIGHT);

	if(input.value == 0)
	{
		if(cursor_left || cursor_right)
			mCursorRepeatDir = 0;

		return false;
	}

	if((config->isMappedTo("a", input) || (config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_RETURN)) && mFocused && !mEditing)
	{
		startEditing();
		return true;
	}

	if(mEditing)
	{
		if(config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_RETURN)
		{
			if(isMultiline())
			{
				textInput("\n");
			}else{
				stopEditing();
			}

			return true;
		}

		if((config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_ESCAPE) || (config->getDeviceId() != DEVICE_KEYBOARD && config->isMappedTo("b", input)))
		{
			stopEditing();
			return true;
		}

		if(config->getDeviceId() != DEVICE_KEYBOARD && config->isMappedLike("up", input))
		{
			// TODO
		}else if(config->getDeviceId() != DEVICE_KEYBOARD && config->isMappedLike("down", input))
		{
			// TODO
		}else if(cursor_left || cursor_right)
		{
			mCursorRepeatDir = cursor_left ? -1 : 1;
			mCursorRepeatTimer = -(CURSOR_REPEAT_START_DELAY - CURSOR_REPEAT_SPEED);
			moveCursor(mCursorRepeatDir);
		} else if(config->getDeviceId() == DEVICE_KEYBOARD)
		{
			switch(input.id)
			{
				case SDLK_HOME:
					setCursor(0);
					break;

				case SDLK_END:
					setCursor(std::string::npos);
					break;

				case SDLK_DELETE:
					if(mCursor < mText.length())
					{
						// Fake as Backspace one char to the right
						moveCursor(1);
						textInput("\b");
					}
					break;
			}
		}

		//consume all input when editing text
		return true;
	}

	return false;
}
void GameEngine::run()
{
	spriteVec.push_back(levelVec.at(currentLevel)->getBackground());
	spriteVec.push_back(player);
	bool goOn = true;
	long laps = 0;
	while (goOn) {
		Uint32 nextTick = SDL_GetTicks() + ticks;
		SDL_RenderClear(win->getRen());
		if (initialLoop) {
			textInput();
			initialLoop = false;
		}
		SDL_Event eve2;
		for (size_t i = 0; i < spriteVec.size(); i++) {
			spriteVec.at(i)->draw();
			cd.checkCollisions(spriteVec.at(i));
		}
		removeSprites();
		cd.clearVector();
		for (size_t i = 0; i < textBoxVec.size(); i++) {
			textBoxVec.at(i)->draw();
		}
		if (pointCounter != nullptr) {
			pointCounter->draw();
		}
		SDL_RenderPresent(win->getRen());
		
		if (player == nullptr) {
			playerDied();
		}
		while (SDL_PollEvent(&eve2)) {
			switch (eve2.type) {
			case SDL_QUIT: goOn = false;
				break;
			case SDL_KEYDOWN:
				if (functionMap.count(eve2.key.keysym.sym) != 0) {
					functionMap[eve2.key.keysym.sym]();
				}
				for (size_t i = 0; i < memberFuncVec.size(); i++) {
					memberFuncVec.at(i)->perform(eve2.key.keysym.sym);
				}
				for (size_t i = 0; i < spriteVec.size(); i++) {
					spriteVec.at(i)->draw(eve2);
				}
				break;
			case SDL_KEYUP:
				for (size_t i = 0; i < spriteVec.size(); i++) {
					spriteVec.at(i)->draw(eve2);
				}
				break;
			}
		}
		laps++;
		
		levelVec.at(currentLevel)->spawnWave(this, laps);
		
		deleteSpawns(laps);

		//This is triggered when the level is over:
		if (laps > levelVec.at(currentLevel)->getEndFrame()) {
			SDL_RenderClear(win->getRen());
			for (size_t i = 0; i < spriteVec.size(); i++) {
				if (spriteVec.at(i)->getIsPlayer() == false) {
					spriteVec.at(i)->destroy(); //Prepare every sprite for removal except the player
				}
			}
			removeSprites();
			spriteVec.clear();
			deleteAllSpawns();
			SDL_RenderClear(win->getRen());
			levelSwap(); //Needs to be set by the game programmer
			currentLevel++;
			return this->run();
		}
		if (SDL_GetTicks() < nextTick) {
			SDL_Delay(nextTick - SDL_GetTicks());
		}
	}
}
예제 #13
0
int SDL_Event_Handler::processEvents() {
  SDL_Event e;

  while (SDL_PollEvent(&e)) {
    switch (e.type) {
      case SDL_WINDOWEVENT:
        windowEvent(&e);
        break;
      case SDL_KEYDOWN:
        keyboardDown(&e);
        break;
      case SDL_KEYUP:
        keyboardUp(&e);
        break;
      case SDL_TEXTEDITING:
        //textEdit(&e);
        break;
      case SDL_TEXTINPUT:
        textInput(&e);
        break;
      case SDL_MOUSEMOTION:
        //mouseMotion(&e);
        break;
      case SDL_MOUSEBUTTONDOWN:
        mouseButtonDown(&e);
        break;
      case SDL_MOUSEBUTTONUP:
        mouseButtonUp(&e);
        break;
      case SDL_MOUSEWHEEL:
        mouseWheel(&e);
        break;
      case SDL_JOYAXISMOTION:
        //joystickAxisMotion(&e);
        break;
      case SDL_JOYBALLMOTION:
        //joyBallAxisMotion(&e);
        break;
      case SDL_JOYHATMOTION:
        //joyHatMotion(&e);
        break;
      case SDL_JOYBUTTONDOWN:
        //joyButtonDown(&e);
        break;
      case SDL_JOYBUTTONUP:
        //joyButtonUp(&e);
        break;
      case SDL_JOYDEVICEADDED:
        joyDeviceAdded(&e);
        break;
      case SDL_JOYDEVICEREMOVED:
        joyDeviceRemoved(&e);
        break;
      case SDL_CONTROLLERAXISMOTION:
        //controllerAxisMotion(&e);
        break;
      case SDL_CONTROLLERBUTTONDOWN:
        controllerButtonDown(&e);
        break;
      case SDL_CONTROLLERBUTTONUP:
        controllerButtonUp(&e);
        break;
      case SDL_CONTROLLERDEVICEADDED:
        //controllerDeviceAdded(&e);
        break;
      case SDL_CONTROLLERDEVICEREMOVED:
        //controllerDeviceRemoved(&e);
        break;
      case SDL_CONTROLLERDEVICEREMAPPED:
        //controllerDeviceRemmaped(&e);
        break;
#if SDL_VERSION_ATLEAST(2, 0, 4)
      case SDL_AUDIODEVICEADDED:
        //audioDeviceAdded(&e);
        break;
      case SDL_AUDIODEVICEREMOVED:
        //audioDeviceRemoved(&e);
        break;
#endif
      case SDL_QUIT:
        quit(&e);
        return 1;
      case SDL_FINGERMOTION:
        //fingerMotion(&e);
        break;
      case SDL_FINGERDOWN:
        //fingerDown(&e);
        break;
      case SDL_FINGERUP:
        //fingerUp(&e);
        break;
      case SDL_MULTIGESTURE:
        //multigesture(&e);
        break;
      case SDL_DOLLARGESTURE:
        //dollarGesture(&e);
        break;
      case SDL_DOLLARRECORD:
        //dollarRecord(&e);
        break;
      case SDL_DROPFILE:
        //dropFile(&e);
        break;
#if SDL_VERSION_ATLEAST(2, 0, 5)
      case SDL_DROPTEXT:
        //dropText(&e);
        break;
      case SDL_DROPBEGIN:
        //dropBegin(&e);
        break;
      case SDL_DROPCOMPLETE:
        //dropEnd(&e);
        break;
#endif
    }
  }

  return 0;
}