void JGE::PressKey(const JButton sym) { #if defined (WIN32) || defined (LINUX) if (sym == JGE_BTN_FULLSCREEN) JGEToggleFullscreen(); #endif keyBuffer.push(triplet(LOCAL_KEY_NONE, sym, held(sym))); }
void JGE::HoldKey_NoRepeat(const JButton sym) { #if defined (WIN32) || defined (LINUX) if (JGE_BTN_FULLSCREEN == sym) JGEToggleFullscreen(); #endif keyBuffer.push(triplet(LOCAL_KEY_NONE, sym, true)); if (!held(sym)) holds[sym] = std::numeric_limits<float>::quiet_NaN(); }
void JGE::HoldKey(const JButton sym) { #if defined (WIN32) || defined (LINUX) if (JGE_BTN_FULLSCREEN == sym) JGEToggleFullscreen(); #endif if (!held(sym)) { keyBuffer.push(triplet(LOCAL_KEY_NONE, sym, false)); holds[sym] = REPEAT_DELAY; } else keyBuffer.push(triplet(LOCAL_KEY_NONE, sym, true)); }
void JGE::PressKey(const LocalKeySym sym) { const pair<keycodes_it, keycodes_it> rng = keyBinds.equal_range(sym); if (rng.first == rng.second) keyBuffer.push(triplet(sym, JGE_BTN_NONE, false)); else for (keycodes_it it = rng.first; it != rng.second; ++it) { #if defined (WIN32) || defined (LINUX) if (JGE_BTN_FULLSCREEN == it->second) JGEToggleFullscreen(); #endif keyBuffer.push(triplet(*it, held(it->second))); } }
void JGE::HoldKey_NoRepeat(const LocalKeySym sym) { const pair<keycodes_it, keycodes_it> rng = keyBinds.equal_range(sym); if (rng.first == rng.second) keyBuffer.push(triplet(sym, JGE_BTN_NONE, false)); else for (keycodes_it it = rng.first; it != rng.second; ++it) { #if defined (WIN32) || defined (LINUX) if (JGE_BTN_FULLSCREEN == it->second) { JGEToggleFullscreen(); return; } #endif keyBuffer.push(triplet(*it, true)); if (!held(it->second)) holds[it->second] = std::numeric_limits<float>::quiet_NaN(); } }
bool GuiTrigger::released(const GuiController *controller) const { if((controller->chan & chan) == 0) { return false; } if(clicked(controller) || held(controller)) return false; bool bResult = false; if(!controller->vpad.tpdata.touched && (btns & VPAD_TOUCH) && controller->vpadLast.tpdata.touched && !controller->vpadLast.tpdata.invalid) { bResult = true; } if(controller->vpad.btns_r & btns) { bResult = true; } return bResult; }
MineField::MineField( QWidget* parent, const char* name ) : QScrollView( parent, name ) { viewport()->setBackgroundMode( NoBackground ); setState( GameOver ); setSizePolicy( QSizePolicy( QSizePolicy::Maximum, QSizePolicy::Maximum ) ); setFocusPolicy( QWidget::NoFocus ); holdTimer = new QTimer( this ); connect( holdTimer, SIGNAL( timeout() ), this, SLOT( held() ) ); flagAction = NoAction; ignoreClick = FALSE; currRow = currCol = -1; minecount=0; mineguess=0; nonminecount=0; cellSize = -1; numRows = numCols = 0; mines = NULL; }
virtual void operator()(Engine& e, Configuration &c, double temp) { held(e,c,temp); }
// index wraps around IMidiMsg* KeyMap::get(int index) { int length = held(); return &(events[index % length]); }
void GuiButton::update(GuiController * c) { if(!c || isStateSet(STATE_DISABLED, c->chan)) return; else if(parentElement && parentElement->isStateSet(STATE_DISABLED, c->chan)) return; if(selectable) { if(!c->vpad.tpdata.invalid && this->isInside(c->vpadTvX, c->vpadTvY)) { if(!isStateSet(STATE_SELECTED, c->chan)) { setState(STATE_SELECTED, c->chan); //if(this->isRumbleActive()) // this->rumble(t->chan); if(soundOver) soundOver->Play(); if(effectsOver && !effects) { // initiate effects effects = effectsOver; effectAmount = effectAmountOver; effectTarget = effectTargetOver; } selected(this, c); } } else { if(isStateSet(STATE_SELECTED, c->chan)) { this->clearState(STATE_SELECTED); deSelected(this, c); } if(effectTarget == effectTargetOver && effectAmount == effectAmountOver) { // initiate effects (in reverse) effects = effectsOver; effectAmount = -effectAmountOver; effectTarget = 100; } } } for(int i = 0; i < 4; i++) { if(!trigger[i]) continue; // button triggers if(clickable) { bool isClicked = trigger[i]->clicked(c); if( !clickedTrigger && isClicked && (trigger[i]->isClickEverywhere() || (isStateSet(STATE_SELECTED, c->chan) && trigger[i]->isSelectionClickEverywhere()) || this->isInside(c->vpadTvX, c->vpadTvY))) { if(soundClick) soundClick->Play(); clickedTrigger = trigger[i]; if(!isStateSet(STATE_CLICKED, c->chan)) setState(STATE_CLICKED, c->chan); clicked(this, c, trigger[i]); } else if(isStateSet(STATE_CLICKED, c->chan) && (clickedTrigger == trigger[i]) && !isStateSet(STATE_HELD, c->chan) && !trigger[i]->held(c) && (!isClicked || trigger[i]->released(c))) { clickedTrigger = NULL; clearState(STATE_CLICKED, c->chan); released(this, c, trigger[i]); } } if(holdable) { bool isHeld = trigger[i]->held(c); if( (!heldTrigger || heldTrigger == trigger[i]) && isHeld && (trigger[i]->isHoldEverywhere() || (isStateSet(STATE_SELECTED, c->chan) && trigger[i]->isSelectionClickEverywhere()) || this->isInside(c->vpadTvX, c->vpadTvY))) { heldTrigger = trigger[i]; if(!isStateSet(STATE_HELD, c->chan)) setState(STATE_HELD, c->chan); held(this, c, trigger[i]); } else if(isStateSet(STATE_HELD, c->chan) && (heldTrigger == trigger[i]) && (!isHeld || trigger[i]->released(c))) { //! click is removed at this point and converted to held if(clickedTrigger == trigger[i]) { clickedTrigger = NULL; clearState(STATE_CLICKED, c->chan); } heldTrigger = NULL; clearState(STATE_HELD, c->chan); released(this, c, trigger[i]); } } } }