RichTxt& RichTxt::GetTableUpdateText(int table, const RichStyles& style, int& pi) { Invalidate(); for(int i = 0;; i++) if(IsTable(i)) { table--; RichTable& tab = part[i].Get<RichTable>(); if(table <= tab.GetTableCount()) { SetRefresh(i); if(table == 0) { pi = i; return *this; } for(int i = 0; i < tab.GetRows(); i++) for(int j = 0; j < tab.GetColumns(); j++) if(tab(i, j)) { RichTxt& txt = tab[i][j].text; if(table <= txt.GetTableCount()) { tab.InvalidateRefresh(i, j); return txt.GetTableUpdateText(table, style, pi); } table -= txt.GetTableCount(); } NEVER(); } else table -= tab.GetTableCount(); } NEVER(); }
RichTable& RichTxt::GetTable0(int table, bool update) { if(update) Invalidate(); for(int i = 0;; i++) if(IsTable(i)) { table--; RichTable& tab = part[i].Get<RichTable>(); if(table <= tab.GetTableCount()) { if(update) SetRefresh(i); if(table == 0) return tab; for(int i = 0; i < tab.GetRows(); i++) for(int j = 0; j < tab.GetColumns(); j++) if(tab(i, j)) { RichTxt& txt = tab[i][j].text; if(table <= txt.GetTableCount()) { if(update) tab.InvalidateRefresh(i, j); return txt.GetTable0(table, update); } table -= txt.GetTableCount(); } NEVER(); } else table -= tab.GetTableCount(); } }
void DropDownBase::Destroy_Drop() { if( !mfMouseRegionsCreated_Drop ) return; UINT8 i; for( i=0; i< DROPDOWN_REGIONS; ++i) MSYS_RemoveRegion( &mDropDownRegion[i]); //destroy the scroll bar arrow regions for( i=0; i< 2; ++i) MSYS_RemoveRegion( &mgSelectedUpDownArrowOnScrollAreaRegion[i]); //destroy the scroll bar regions for( i=0; i<DROPDOWN_REGIONS; ++i) MSYS_RemoveRegion( &mSelectedScrollAreaDropDownRegion[i]); //disable the close region MSYS_DisableRegion(&mSelectedCloseDropDownRegion); mfMouseRegionsCreated_Drop = FALSE; SetRefresh(); }
//--------------------------------------------------------- bool CrolPlayer::update() { if ((mNextTempoEvent < mTempoEvents.size()) && (mTempoEvents[mNextTempoEvent].time == mCurrTick)) { SetRefresh(mTempoEvents[mNextTempoEvent].multiplier); ++mNextTempoEvent; } TVoiceData::iterator curr = mVoiceData.begin(); TVoiceData::iterator end = mVoiceData.end(); int voice = 0; while(curr != end) { UpdateVoice(voice, *curr); ++curr; ++voice; } ++mCurrTick; if (mCurrTick > mTimeOfLastNote) { return false; } return true; }
RichTxt& RichTxt::GetText0(int& pos, bool update) { if(update) Invalidate(); int p = pos; int pi = FindPart(p); if(IsTable(pi)) { RichTable& tab = part[pi].Get<RichTable>(); Point cl = tab.FindCell(p); if(update) { tab.InvalidateRefresh(cl); SetRefresh(pi); } pos = p; return tab[cl].text.GetText0(pos, update); } return *this; }
void DropDownBase::Destroy() { Destroy_Drop(); if( !mfMouseRegionsCreated ) return; mfMouseRegionsCreated = FALSE; MSYS_RemoveRegion( &mSelectedOpenDropDownRegion); MSYS_RemoveRegion( &mSelectedCloseDropDownRegion); MSYS_RemoveRegion( &mBubbleHelpRegion); DeleteVideoObjectFromIndex(muiGoldArrowImages); SetRefresh(); }
//--------------------------------------------------------- void CrolPlayer::rewind(int subsong) { TVoiceData::iterator curr = mVoiceData.begin(); TVoiceData::iterator end = mVoiceData.end(); while(curr != end) { CVoiceData & voice = *curr; voice.Reset(); ++curr; } mHalfToneOffset = TInt16Vector(kNumPercussiveVoices, 0); mVolumeCache = TUInt8Vector(kNumPercussiveVoices, skMaxVolume); mKSLTLCache = TUInt8Vector(kNumPercussiveVoices, 0); mNoteCache = TUInt8Vector(kNumPercussiveVoices, 0); mKOnOctFNumCache = TUInt8Vector(kNumMelodicVoices, 0); mKeyOnCache = TBoolVector(kNumPercussiveVoices, false); mNextTempoEvent = 0; mCurrTick = 0; mAMVibRhythmCache = 0; opl->init(); // initialize to melodic by default opl->write(skOPL2_WaveCtrlBaseAddress, skOPL2_EnableWaveformSelectMask); // Enable waveform select if (mpROLHeader->mode == 0) { mAMVibRhythmCache = skOPL2_RhythmMask; opl->write(skOPL2_AmVibRhythmBaseAddress, mAMVibRhythmCache); // Enable rhythm mode SetFreq(kTomtomChannel, kTomTomNote); SetFreq(kSnareDrumChannel, kSnareNote); } SetRefresh(1.0f); }