SQInteger SQString::Next(const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval) { SQInteger idx = (SQInteger)TranslateIndex(refpos); while(idx < _len){ outkey = (SQInteger)idx; outval = SQInteger(_val[idx]); //return idx for the next iteration return ++idx; } //nothing to iterate anymore return -1; }
//-------------------------------------------------------------------------- void PushEvent(HWindow hWnd, const KeyboardEvent& keyboardEvent){ //Logger::Log(FB_DEFAULT_LOG_ARG, FormatString( //"MakeCode = %d, Flags = %x, VKey = %d, Message = %d, ExtraInformation = %d", //keyboardEvent.MakeCode, keyboardEvent.Flags, keyboardEvent.VKey, keyboardEvent.Message, keyboardEvent.ExtraInformation).c_str()); if (keyboardEvent.Flags & 1) // key up { unsigned int key[] = { keyboardEvent.VKey, 0 }; if (IsPairedKey(keyboardEvent.VKey)) key[1] = TranslateIndex(keyboardEvent); for (unsigned i = 0; i<2; i++) { if (key[i] == 0) continue; mKeyDown[key[i]] = false; mKeyUp[key[i]] = true; } } if (!(keyboardEvent.Flags & 1))// key down { unsigned int key[] = { keyboardEvent.VKey, 0 }; if (IsPairedKey(keyboardEvent.VKey)) key[1] = TranslateIndex(keyboardEvent); for (unsigned i = 0; i<2; i++) { if (key[i] == 0) continue; mKeyPressed[key[i]] = true; mKeyDown[key[i]] = true; } } }
SQInteger SQTable::Next(bool getweakrefs,const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval) { SQInteger idx = (SQInteger)TranslateIndex(refpos); while (idx < _numofnodes) { if(type(_nodes[idx].key) != OT_NULL) { //first found _HashNode &n = _nodes[idx]; outkey = n.key; outval = getweakrefs?(SQObject)n.val:_realval(n.val); //return idx for the next iteration return ++idx; } ++idx; } //nothing to iterate anymore return -1; }