From: <sag...@us...> - 2014-03-24 18:16:58
|
Revision: 3960 http://sourceforge.net/p/modplug/code/3960 Author: saga-games Date: 2014-03-24 18:16:49 +0000 (Mon, 24 Mar 2014) Log Message: ----------- [Fix] Hopefully fix those disappearing combo boxes once and forever. I still don't understand *why* they disappear in some cases, but hopefully this fixes the problem completely. Modified Paths: -------------- trunk/OpenMPT/mptrack/Ctrl_ins.cpp trunk/OpenMPT/mptrack/Ctrl_pat.cpp trunk/OpenMPT/mptrack/Ctrl_smp.cpp trunk/OpenMPT/mptrack/View_gen.cpp trunk/OpenMPT/mptrack/view_com.cpp Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2014-03-24 18:03:15 UTC (rev 3959) +++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2014-03-24 18:16:49 UTC (rev 3960) @@ -1224,7 +1224,6 @@ s.Format("%d", ich); m_CbnMidiCh.SetItemData(m_CbnMidiCh.AddString(s), ich); } - } if (dwHintMask & (HINT_INSTRUMENT|HINT_MODTYPE)) { @@ -1358,6 +1357,17 @@ m_bInitialized = TRUE; UnlockControls(); } + + m_ComboNNA.Invalidate(FALSE); + m_ComboDCT.Invalidate(FALSE); + m_ComboDCA.Invalidate(FALSE); + m_ComboPPC.Invalidate(FALSE); + m_CbnMidiCh.Invalidate(FALSE); + m_CbnMixPlug.Invalidate(FALSE); + m_CbnResampling.Invalidate(FALSE); + m_CbnFilterMode.Invalidate(FALSE); + m_CbnPluginVolumeHandling.Invalidate(FALSE); + m_ComboTuning.Invalidate(FALSE); UnlockControls(); } Modified: trunk/OpenMPT/mptrack/Ctrl_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2014-03-24 18:03:15 UTC (rev 3959) +++ trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2014-03-24 18:16:49 UTC (rev 3960) @@ -335,6 +335,7 @@ } m_CbnInstrument.SetCurSel(nPos); m_CbnInstrument.SetRedraw(TRUE); + m_CbnInstrument.Invalidate(FALSE); } if(dwHintMask & (HINT_MODTYPE|HINT_PATNAMES)) { Modified: trunk/OpenMPT/mptrack/Ctrl_smp.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2014-03-24 18:03:15 UTC (rev 3959) +++ trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2014-03-24 18:16:49 UTC (rev 3960) @@ -672,7 +672,7 @@ m_SpinSample.SetRange(1, m_sndFile.GetNumSamples()); // Length / Type - wsprintf(s, "%d-bit %s, len: %d", sample.GetElementarySampleSize() * 8, (sample.uFlags & CHN_STEREO) ? "stereo" : "mono", sample.nLength); + wsprintf(s, "%d-bit %s, len: %d", sample.GetElementarySampleSize() * 8, sample.uFlags[CHN_STEREO] ? "stereo" : "mono", sample.nLength); SetDlgItemText(IDC_TEXT5, s); // Name mpt::String::Copy(s, m_sndFile.m_szNames[m_nSample]); @@ -686,8 +686,7 @@ // Global Volume SetDlgItemInt(IDC_EDIT8, sample.nGlobalVol); // Panning - CheckDlgButton(IDC_CHECK1, (sample.uFlags & CHN_PANNING) ? MF_CHECKED : MF_UNCHECKED); - //rewbs.fix36944 + CheckDlgButton(IDC_CHECK1, (sample.uFlags[CHN_PANNING]) ? MF_CHECKED : MF_UNCHECKED); if (m_sndFile.GetType() == MOD_TYPE_XM) { SetDlgItemInt(IDC_EDIT9, sample.nPan); //displayed panning with XM is 0-256, just like MPT's internal engine @@ -695,7 +694,6 @@ { SetDlgItemInt(IDC_EDIT9, sample.nPan / 4); //displayed panning with anything but XM is 0-64 so we divide by 4 } - //end rewbs.fix36944 // FineTune / C-4 Speed / BaseNote int transp = 0; if (m_sndFile.GetType() & (MOD_TYPE_S3M | MOD_TYPE_IT | MOD_TYPE_MPT)) @@ -746,6 +744,11 @@ m_bInitialized = TRUE; UnlockControls(); } + + m_ComboLoopType.Invalidate(FALSE); + m_ComboSustainType.Invalidate(FALSE); + m_ComboAutoVib.Invalidate(FALSE); + UnlockControls(); } @@ -869,10 +872,10 @@ m_modDoc.GetSampleUndo().PrepareUndo(m_nSample, sundo_replace, "Replace"); m_sndFile.ReadSampleFromSong(m_nSample, sndFile, nSample); ModSample &sample = m_sndFile.GetSample(m_nSample); - if((m_sndFile.GetType() & MOD_TYPE_XM) && (!(sample.uFlags & CHN_PANNING))) + if((m_sndFile.GetType() & MOD_TYPE_XM) && (!sample.uFlags[CHN_PANNING])) { sample.nPan = 128; - sample.uFlags |= CHN_PANNING; + sample.uFlags.set(CHN_PANNING); } EndWaitCursor(); @@ -2804,12 +2807,12 @@ LockControls(); if ((!sample.nLength) || (!pSample)) goto NoSample; - if (sample.uFlags & CHN_16BIT) + if (sample.uFlags[CHN_16BIT]) { pSample++; pinc *= 2; } - if (sample.uFlags & CHN_STEREO) pinc *= 2; + if (sample.uFlags[CHN_STEREO]) pinc *= 2; // Loop Start if ((pos = (short int)m_SpinLoopStart.GetPos()) != 0) { @@ -2823,7 +2826,7 @@ for (SmpLength i=sample.nLoopStart+1; i+16<sample.nLoopEnd; i++) { p += pinc; - bOk = (sample.uFlags & CHN_PINGPONGLOOP) ? MPT_BidiStartCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); + bOk = sample.uFlags[CHN_PINGPONGLOOP] ? MPT_BidiStartCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); if (bOk) { sample.nLoopStart = i; @@ -2837,7 +2840,7 @@ { i--; p -= pinc; - bOk = (sample.uFlags & CHN_PINGPONGLOOP) ? MPT_BidiStartCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); + bOk = sample.uFlags[CHN_PINGPONGLOOP] ? MPT_BidiStartCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); if (bOk) { sample.nLoopStart = i; @@ -2867,7 +2870,7 @@ { for (SmpLength i=sample.nLoopEnd+1; i<=sample.nLength; i++, p+=pinc) { - bOk = (sample.uFlags & CHN_PINGPONGLOOP) ? MPT_BidiEndCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); + bOk = sample.uFlags[CHN_PINGPONGLOOP] ? MPT_BidiEndCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); if (bOk) { sample.nLoopEnd = i; @@ -2881,7 +2884,7 @@ { i--; p -= pinc; - bOk = (sample.uFlags & CHN_PINGPONGLOOP) ? MPT_BidiEndCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); + bOk = sample.uFlags[CHN_PINGPONGLOOP] ? MPT_BidiEndCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); if (bOk) { sample.nLoopEnd = i; @@ -2912,7 +2915,7 @@ for (SmpLength i=sample.nSustainStart+1; i+16<sample.nSustainEnd; i++) { p += pinc; - bOk = (sample.uFlags & CHN_PINGPONGSUSTAIN) ? MPT_BidiStartCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); + bOk = sample.uFlags[CHN_PINGPONGSUSTAIN] ? MPT_BidiStartCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); if (bOk) { sample.nSustainStart = i; @@ -2926,7 +2929,7 @@ { i--; p -= pinc; - bOk = (sample.uFlags & CHN_PINGPONGSUSTAIN) ? MPT_BidiStartCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); + bOk = sample.uFlags[CHN_PINGPONGSUSTAIN] ? MPT_BidiStartCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); if (bOk) { sample.nSustainStart = i; @@ -2956,7 +2959,7 @@ { for (SmpLength i=sample.nSustainEnd+1; i+1<sample.nLength; i++, p+=pinc) { - bOk = (sample.uFlags & CHN_PINGPONGSUSTAIN) ? MPT_BidiEndCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); + bOk = sample.uFlags[CHN_PINGPONGSUSTAIN] ? MPT_BidiEndCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); if (bOk) { sample.nSustainEnd = i; @@ -2970,7 +2973,7 @@ { i--; p -= pinc; - bOk = (sample.uFlags & CHN_PINGPONGSUSTAIN) ? MPT_BidiEndCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); + bOk = sample.uFlags[CHN_PINGPONGSUSTAIN] ? MPT_BidiEndCheck(p[0], p[pinc], p[pinc*2]) : MPT_LoopCheck(find0, find1, p[0], p[pinc]); if (bOk) { sample.nSustainEnd = i; Modified: trunk/OpenMPT/mptrack/View_gen.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_gen.cpp 2014-03-24 18:03:15 UTC (rev 3959) +++ trunk/OpenMPT/mptrack/View_gen.cpp 2014-03-24 18:16:49 UTC (rev 3960) @@ -379,23 +379,24 @@ } m_CbnEffects[ichn].SetRedraw(TRUE); m_CbnEffects[ichn].SetCurSel(fxsel); + m_CbnEffects[ichn].Invalidate(FALSE); } else SetDlgItemText(IDC_TEXT1+ichn, ""); // Enable/Disable controls for this channel BOOL bIT = ((bEnable) && (pSndFile->m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT))); - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_CHECK1+ichn*2), bEnable); - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_CHECK2+ichn*2), bIT); + GetDlgItem(IDC_CHECK1 + ichn * 2)->EnableWindow(bEnable); + GetDlgItem(IDC_CHECK2 + ichn * 2)->EnableWindow(bIT); - ::EnableWindow(m_sbVolume[ichn].m_hWnd, bIT); - ::EnableWindow(m_spinVolume[ichn], bIT); + m_sbVolume[ichn].EnableWindow(bIT); + m_spinVolume[ichn].EnableWindow(bIT); - ::EnableWindow(m_sbPan[ichn].m_hWnd, bEnable && !(pSndFile->GetType() & (MOD_TYPE_XM|MOD_TYPE_MOD))); - ::EnableWindow(m_spinPan[ichn], bEnable && !(pSndFile->GetType() & (MOD_TYPE_XM|MOD_TYPE_MOD))); - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT1 + ichn*2), bIT); // channel vol - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT2 + ichn*2), bEnable && !(pSndFile->GetType() & (MOD_TYPE_XM|MOD_TYPE_MOD))); // channel pan - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT9 + ichn), ((bEnable) && (pSndFile->m_nType & (MOD_TYPE_XM|MOD_TYPE_IT|MOD_TYPE_MPT)))); // channel name + m_sbPan[ichn].EnableWindow(bEnable && !(pSndFile->GetType() & (MOD_TYPE_XM|MOD_TYPE_MOD))); + m_spinPan[ichn].EnableWindow(bEnable && !(pSndFile->GetType() & (MOD_TYPE_XM|MOD_TYPE_MOD))); + GetDlgItem(IDC_EDIT1 + ichn * 2)->EnableWindow(bIT); // channel vol + GetDlgItem(IDC_EDIT2 + ichn * 2)->EnableWindow(bEnable && !(pSndFile->GetType() & (MOD_TYPE_XM|MOD_TYPE_MOD))); // channel pan + GetDlgItem(IDC_EDIT9 + ichn)->EnableWindow(((bEnable) && (pSndFile->m_nType & (MOD_TYPE_XM|MOD_TYPE_IT|MOD_TYPE_MPT)))); // channel name m_CbnEffects[ichn].EnableWindow(bEnable & (pSndFile->GetModSpecifications().supportsPlugins ? TRUE : FALSE)); } UnlockControls(); @@ -416,9 +417,9 @@ CheckDlgButton(IDC_CHECK11, pPlugin->IsWetMix() ? BST_CHECKED : BST_UNCHECKED); CVstPlugin *pVstPlugin = (pPlugin->pMixPlugin) ? (CVstPlugin *)pPlugin->pMixPlugin : nullptr; m_BtnEdit.EnableWindow((pVstPlugin != nullptr && (pVstPlugin->HasEditor() || pVstPlugin->GetNumParameters())) ? TRUE : FALSE); - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_MOVEFXSLOT), (pVstPlugin) ? TRUE : FALSE); - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_INSERTFXSLOT), (pVstPlugin) ? TRUE : FALSE); - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_CLONEPLUG), (pVstPlugin) ? TRUE : FALSE); + GetDlgItem(IDC_MOVEFXSLOT)->EnableWindow((pVstPlugin) ? TRUE : FALSE); + GetDlgItem(IDC_INSERTFXSLOT)->EnableWindow((pVstPlugin) ? TRUE : FALSE); + GetDlgItem(IDC_CLONEPLUG)->EnableWindow((pVstPlugin) ? TRUE : FALSE); int n = static_cast<int>(pPlugin->fDryRatio*100); wsprintf(s, "(%d%% wet, %d%% dry)", 100-n, n); SetDlgItemText(IDC_STATIC8, s); @@ -426,12 +427,12 @@ if(pVstPlugin && pVstPlugin->isInstrument()) { - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_COMBO9), FALSE); - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_CHECK12), FALSE); + m_CbnSpecialMixProcessing.EnableWindow(FALSE); + GetDlgItem(IDC_CHECK12)->EnableWindow(FALSE); } else { - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_COMBO9), TRUE); - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_CHECK12), TRUE); + m_CbnSpecialMixProcessing.EnableWindow(TRUE); + GetDlgItem(IDC_CHECK12)->EnableWindow(TRUE); m_CbnSpecialMixProcessing.SetCurSel(pPlugin->GetMixMode()); CheckDlgButton(IDC_CHECK12, pPlugin->IsExpandedMix() ? BST_CHECKED : BST_UNCHECKED); } @@ -456,7 +457,6 @@ m_CbnParam.SetCurSel(0); m_CbnParam.SetRedraw(TRUE); - m_CbnParam.Invalidate(); OnParamChanged(); // Input / Output type @@ -474,9 +474,8 @@ m_sbValue.EnableWindow(TRUE); m_sbDryRatio.EnableWindow(TRUE); - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT14), TRUE); - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_BUTTON3), TRUE); - + GetDlgItem(IDC_EDIT14)->EnableWindow(TRUE); + GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE); } else { s[0] = 0; @@ -492,8 +491,8 @@ m_CbnPreset.SetCurSel(0); m_sbValue.EnableWindow(FALSE); m_sbDryRatio.EnableWindow(FALSE); - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT14), FALSE); - ::EnableWindow(::GetDlgItem(m_hWnd, IDC_BUTTON3), FALSE); + GetDlgItem(IDC_EDIT14)->EnableWindow(FALSE); + GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE); } SetDlgItemText(IDC_TEXT6, s); int outputsel = 0; @@ -526,6 +525,12 @@ m_CbnOutput.SetRedraw(TRUE); m_CbnOutput.SetCurSel(outputsel); } + + m_CbnPlugin.Invalidate(FALSE); + m_CbnParam.Invalidate(FALSE); + m_CbnPreset.Invalidate(FALSE); + m_CbnSpecialMixProcessing.Invalidate(FALSE); + m_CbnOutput.Invalidate(FALSE); } @@ -1456,6 +1461,7 @@ if (m_nCurrentParam >= nParams) m_nCurrentParam = 0; m_CbnParam.SetCurSel(m_nCurrentParam); m_CbnParam.SetRedraw(TRUE); + m_CbnParam.Invalidate(FALSE); } @@ -1487,6 +1493,7 @@ m_CbnPreset.SetItemData(m_CbnPreset.AddString(pVstPlugin->GetFormattedProgramName(i)), i); } m_CbnPreset.SetRedraw(TRUE); + m_CbnPreset.Invalidate(FALSE); } Modified: trunk/OpenMPT/mptrack/view_com.cpp =================================================================== --- trunk/OpenMPT/mptrack/view_com.cpp 2014-03-24 18:03:15 UTC (rev 3959) +++ trunk/OpenMPT/mptrack/view_com.cpp 2014-03-24 18:16:49 UTC (rev 3960) @@ -464,6 +464,7 @@ { } m_ItemList.SetRedraw(TRUE); + m_ItemList.Invalidate(FALSE); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |