Пример #1
0
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();
}
Пример #2
0
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();
		}
}
Пример #3
0
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();
}
Пример #4
0
//---------------------------------------------------------
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;
}
Пример #5
0
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;
}
Пример #6
0
void
DropDownBase::Destroy()
{
	Destroy_Drop();

	if( !mfMouseRegionsCreated )
		return;
	
	mfMouseRegionsCreated	= FALSE;

	MSYS_RemoveRegion( &mSelectedOpenDropDownRegion);
	MSYS_RemoveRegion( &mSelectedCloseDropDownRegion);
	MSYS_RemoveRegion( &mBubbleHelpRegion);

	DeleteVideoObjectFromIndex(muiGoldArrowImages);

	SetRefresh();
}
Пример #7
0
//---------------------------------------------------------
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);
}