From: <sag...@us...> - 2013-03-12 01:41:52
|
Revision: 1562 http://sourceforge.net/p/modplug/code/1562 Author: saga-games Date: 2013-03-12 01:41:35 +0000 (Tue, 12 Mar 2013) Log Message: ----------- [Imp] Added clipboard manager to main menu [Ref] Made TrackerSettings, PatternClipboard and PatternClipboardDialog singletons (not stored in other objects anymore) [Ref] More TrackerSettings related refactoring. Modified Paths: -------------- trunk/OpenMPT/mptrack/Childfrm.cpp trunk/OpenMPT/mptrack/Ctrl_com.cpp trunk/OpenMPT/mptrack/Ctrl_com.h trunk/OpenMPT/mptrack/Ctrl_gen.cpp trunk/OpenMPT/mptrack/Ctrl_gen.h trunk/OpenMPT/mptrack/Ctrl_ins.cpp trunk/OpenMPT/mptrack/Ctrl_ins.h trunk/OpenMPT/mptrack/Ctrl_pat.cpp trunk/OpenMPT/mptrack/Ctrl_pat.h trunk/OpenMPT/mptrack/Ctrl_seq.cpp trunk/OpenMPT/mptrack/Ctrl_smp.cpp trunk/OpenMPT/mptrack/Ctrl_smp.h trunk/OpenMPT/mptrack/Draw_pat.cpp trunk/OpenMPT/mptrack/Globals.cpp trunk/OpenMPT/mptrack/InputHandler.cpp trunk/OpenMPT/mptrack/KeyConfigDlg.cpp trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Mainbar.cpp trunk/OpenMPT/mptrack/Mainfrm.h trunk/OpenMPT/mptrack/Mod2wave.cpp trunk/OpenMPT/mptrack/Moddoc.cpp trunk/OpenMPT/mptrack/Moptions.cpp trunk/OpenMPT/mptrack/Mpdlgs.cpp trunk/OpenMPT/mptrack/Mpdlgs.h trunk/OpenMPT/mptrack/Mpt_midi.cpp trunk/OpenMPT/mptrack/Mptrack.cpp trunk/OpenMPT/mptrack/Mptrack.h trunk/OpenMPT/mptrack/PatternClipboard.cpp trunk/OpenMPT/mptrack/PatternClipboard.h trunk/OpenMPT/mptrack/PatternEditorDialogs.cpp trunk/OpenMPT/mptrack/SelectPluginDialog.cpp trunk/OpenMPT/mptrack/TrackerSettings.cpp trunk/OpenMPT/mptrack/TrackerSettings.h trunk/OpenMPT/mptrack/TuningDialog.cpp trunk/OpenMPT/mptrack/Undo.cpp trunk/OpenMPT/mptrack/UpdateCheck.cpp trunk/OpenMPT/mptrack/View_ins.cpp trunk/OpenMPT/mptrack/View_pat.cpp trunk/OpenMPT/mptrack/View_pat.h trunk/OpenMPT/mptrack/View_smp.cpp trunk/OpenMPT/mptrack/View_tre.cpp trunk/OpenMPT/mptrack/Vstplug.cpp trunk/OpenMPT/mptrack/dlg_misc.cpp trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/resource.h trunk/OpenMPT/soundlib/Load_mid.cpp trunk/OpenMPT/soundlib/MixerSettings.cpp trunk/OpenMPT/soundlib/MixerSettings.h trunk/OpenMPT/soundlib/Snd_defs.h trunk/OpenMPT/soundlib/Snd_eq.cpp trunk/OpenMPT/soundlib/Sndfile.cpp trunk/OpenMPT/soundlib/Sndmix.cpp trunk/OpenMPT/soundlib/WindowedFIR.h Modified: trunk/OpenMPT/mptrack/Childfrm.cpp =================================================================== --- trunk/OpenMPT/mptrack/Childfrm.cpp 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Childfrm.cpp 2013-03-12 01:41:35 UTC (rev 1562) @@ -92,7 +92,7 @@ { if ((--glMdiOpenCount) == 0) { - CMainFrame::GetSettings().gbMdiMaximize = m_bMaxWhenClosed; + TrackerSettings::Instance().gbMdiMaximize = m_bMaxWhenClosed; } } @@ -104,7 +104,7 @@ if (!m_wndSplitter.CreateStatic(this, 2, 1)) return FALSE; // add the first splitter pane - the default view in row 0 - int cy = CMainFrame::GetSettings().glGeneralWindowHeight; //rewbs.varWindowSize - default to general tab. + int cy = TrackerSettings::Instance().glGeneralWindowHeight; //rewbs.varWindowSize - default to general tab. if (cy <= 1) cy = (lpcs->cy*2) / 3; if (!m_wndSplitter.CreateView(0, 0, pContext->m_pNewViewClass, CSize(0, cy), pContext)) return FALSE; @@ -140,7 +140,7 @@ void CChildFrame::ActivateFrame(int nCmdShow) //------------------------------------------- { - if ((glMdiOpenCount == 1) && (CMainFrame::GetSettings().gbMdiMaximize) && (nCmdShow == -1)) + if ((glMdiOpenCount == 1) && (TrackerSettings::Instance().gbMdiMaximize) && (nCmdShow == -1)) { nCmdShow = SW_SHOWMAXIMIZED; } @@ -245,7 +245,7 @@ CRect rect; m_bMaxWhenClosed = IsZoomed(); - if (bForce) CMainFrame::GetSettings().gbMdiMaximize = m_bMaxWhenClosed; + if (bForce) TrackerSettings::Instance().gbMdiMaximize = m_bMaxWhenClosed; if (!IsIconic()) { CWnd *pWnd = m_wndSplitter.GetPane(0, 0); @@ -255,18 +255,18 @@ LONG l = rect.Height(); //rewbs.varWindowSize - not the nicest piece of code, but we need to distinguish btw the views: if (strcmp("CViewGlobals",m_szCurrentViewClassName) == 0) - CMainFrame::GetSettings().glGeneralWindowHeight = l; + TrackerSettings::Instance().glGeneralWindowHeight = l; else if (strcmp("CViewPattern", m_szCurrentViewClassName) == 0) - CMainFrame::GetSettings().glPatternWindowHeight = l; + TrackerSettings::Instance().glPatternWindowHeight = l; else if (strcmp("CViewSample", m_szCurrentViewClassName) == 0) - CMainFrame::GetSettings().glSampleWindowHeight = l; + TrackerSettings::Instance().glSampleWindowHeight = l; else if (strcmp("CViewInstrument", m_szCurrentViewClassName) == 0) - CMainFrame::GetSettings().glInstrumentWindowHeight = l; + TrackerSettings::Instance().glInstrumentWindowHeight = l; else if (strcmp("CViewComments", m_szCurrentViewClassName) == 0) - CMainFrame::GetSettings().glCommentsWindowHeight = l; + TrackerSettings::Instance().glCommentsWindowHeight = l; //rewbs.graph else if (strcmp("CViewGraph", m_szCurrentViewClassName) == 0) - CMainFrame::GetSettings().glGraphWindowHeight = l; + TrackerSettings::Instance().glGraphWindowHeight = l; //end rewbs.graph } Modified: trunk/OpenMPT/mptrack/Ctrl_com.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_com.cpp 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Ctrl_com.cpp 2013-03-12 01:41:35 UTC (rev 1562) @@ -93,7 +93,7 @@ rect.right = rcClient.right - rect.left; if ((rect.right > rect.left) && (rect.bottom > rect.top)) { - int cxmax = (CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_LARGECOMMENTS) ? 80*8 : 80*6; + int cxmax = (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_LARGECOMMENTS) ? 80*8 : 80*6; int cx = rect.Width(), cy = rect.Height(); if (cx > cxmax) cx = cxmax; if ((cx != cx0) || (cy != cy0)) m_EditComments.SetWindowPos(NULL, 0,0, cx, cy, SWP_NOMOVE|SWP_NOZORDER|SWP_DRAWFRAME); @@ -108,7 +108,7 @@ if (m_nLockCount) return; m_nLockCount++; HFONT newfont; - if (CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_LARGECOMMENTS) + if (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_LARGECOMMENTS) newfont = CMainFrame::GetLargeFixedFont(); else newfont = CMainFrame::GetFixedFont(); Modified: trunk/OpenMPT/mptrack/Ctrl_com.h =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_com.h 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Ctrl_com.h 2013-03-12 01:41:35 UTC (rev 1562) @@ -21,7 +21,7 @@ public: CCtrlComments(); - LONG* GetSplitPosRef() {return &CMainFrame::GetSettings().glCommentsWindowHeight;} //rewbs.varWindowSize + LONG* GetSplitPosRef() {return &TrackerSettings::Instance().glCommentsWindowHeight;} //rewbs.varWindowSize public: //{{AFX_DATA(CCtrlComments) Modified: trunk/OpenMPT/mptrack/Ctrl_gen.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2013-03-12 01:41:35 UTC (rev 1562) @@ -250,7 +250,7 @@ } if (dwHint & HINT_MPTSETUP) { - CheckDlgButton(IDC_CHECK_LOOPSONG, (CMainFrame::GetSettings().gbLoopSong) ? TRUE : FALSE); + CheckDlgButton(IDC_CHECK_LOOPSONG, (TrackerSettings::Instance().gbLoopSong) ? TRUE : FALSE); } if (dwHint & HINT_MPTOPTIONS) { @@ -512,12 +512,12 @@ void CCtrlGeneral::OnLoopSongChanged() //------------------------------------ { - CMainFrame::GetSettings().gbLoopSong = IsDlgButtonChecked(IDC_CHECK_LOOPSONG); + TrackerSettings::Instance().gbLoopSong = IsDlgButtonChecked(IDC_CHECK_LOOPSONG); CModDoc *pModDoc = GetDocument(); if (pModDoc) { CSoundFile *pSndFile = pModDoc->GetSoundFile(); - if (pSndFile) pSndFile->SetRepeatCount((CMainFrame::GetSettings().gbLoopSong) ? -1 : 0); + if (pSndFile) pSndFile->SetRepeatCount((TrackerSettings::Instance().gbLoopSong) ? -1 : 0); } } Modified: trunk/OpenMPT/mptrack/Ctrl_gen.h =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_gen.h 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Ctrl_gen.h 2013-03-12 01:41:35 UTC (rev 1562) @@ -43,7 +43,7 @@ { public: CCtrlGeneral(); - LONG* GetSplitPosRef() {return &CMainFrame::GetSettings().glGeneralWindowHeight;} //rewbs.varWindowSize + LONG* GetSplitPosRef() {return &TrackerSettings::Instance().glGeneralWindowHeight;} //rewbs.varWindowSize private: void setAsDecibels(LPSTR stringToSet, double value, double valueAtZeroDB); Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp 2013-03-12 01:41:35 UTC (rev 1562) @@ -1487,7 +1487,7 @@ { TCHAR szName[_MAX_FNAME], szExt[_MAX_EXT]; _tsplitpath(lpszFileName, nullptr, nullptr, szName, szExt); - CMainFrame::GetSettings().SetWorkingDirectory(lpszFileName, DIR_INSTRUMENTS, true); + TrackerSettings::Instance().SetWorkingDirectory(lpszFileName, DIR_INSTRUMENTS, true); if (!pIns->name[0] && m_pSndFile->GetModSpecifications().instrNameLengthMax > 0) { @@ -1763,12 +1763,12 @@ "GF1 Patches (*.pat)|*.pat|" "Impulse Tracker Instruments (*.iti)|*.iti|" "All Files (*.*)|*.*||", - CMainFrame::GetSettings().GetWorkingDirectory(DIR_INSTRUMENTS), + TrackerSettings::Instance().GetWorkingDirectory(DIR_INSTRUMENTS), true, &nLastIndex); if(files.abort) return; - CMainFrame::GetSettings().SetWorkingDirectory(files.workingDirectory.c_str(), DIR_INSTRUMENTS, true); + TrackerSettings::Instance().SetWorkingDirectory(files.workingDirectory.c_str(), DIR_INSTRUMENTS, true); for(size_t counter = 0; counter < files.filenames.size(); counter++) { @@ -1820,7 +1820,7 @@ "Impulse Tracker Instruments (*.iti)|*.iti|" "Compressed Impulse Tracker Instruments (*.iti)|*.iti|" "FastTracker II Instruments (*.xi)|*.xi||", - CMainFrame::GetSettings().GetWorkingDirectory(DIR_INSTRUMENTS), false, &index); + TrackerSettings::Instance().GetWorkingDirectory(DIR_INSTRUMENTS), false, &index); if(files.abort) return; BeginWaitCursor(); @@ -1846,7 +1846,7 @@ strcpy(szFileName, drive); strcat(szFileName, path); - CMainFrame::GetSettings().SetWorkingDirectory(files.workingDirectory.c_str(), DIR_INSTRUMENTS); + TrackerSettings::Instance().SetWorkingDirectory(files.workingDirectory.c_str(), DIR_INSTRUMENTS); // -> CODE#0023 // -> DESC="IT project files (.itp)" Modified: trunk/OpenMPT/mptrack/Ctrl_ins.h =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_ins.h 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Ctrl_ins.h 2013-03-12 01:41:35 UTC (rev 1562) @@ -130,7 +130,7 @@ BOOL OpenInstrument(CSoundFile *pSndFile, UINT nInstr); BOOL EditSample(UINT nSample); VOID UpdateFilterText(); - LONG* GetSplitPosRef() {return &CMainFrame::GetSettings().glInstrumentWindowHeight;} //rewbs.varWindowSize + LONG* GetSplitPosRef() {return &TrackerSettings::Instance().glInstrumentWindowHeight;} //rewbs.varWindowSize public: //{{AFX_VIRTUAL(CCtrlInstruments) Modified: trunk/OpenMPT/mptrack/Ctrl_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2013-03-12 01:41:35 UTC (rev 1562) @@ -105,9 +105,9 @@ { m_nInstrument = 0; - m_bVUMeters = CMainFrame::GetSettings().gbPatternVUMeters; - m_bPluginNames = CMainFrame::GetSettings().gbPatternPluginNames; //rewbs.patPlugNames - m_bRecord = CMainFrame::GetSettings().gbPatternRecord; + m_bVUMeters = TrackerSettings::Instance().gbPatternVUMeters; + m_bPluginNames = TrackerSettings::Instance().gbPatternPluginNames; //rewbs.patPlugNames + m_bRecord = TrackerSettings::Instance().gbPatternRecord; m_nDetailLevel = PatternCursor::lastColumn; } @@ -157,7 +157,7 @@ m_ToolBar.AddButton(ID_PATTERNDETAIL_MED, TIMAGE_PATTERN_DETAIL_MED, TBSTYLE_CHECK, TBSTATE_ENABLED); m_ToolBar.AddButton(ID_PATTERNDETAIL_HI, TIMAGE_PATTERN_DETAIL_HI, TBSTYLE_CHECK, TBSTATE_ENABLED|TBSTATE_CHECKED); m_ToolBar.AddButton(ID_SEPARATOR, 0, TBSTYLE_SEP); - m_ToolBar.AddButton(ID_OVERFLOWPASTE, TIMAGE_PATTERN_OVERFLOWPASTE, TBSTYLE_CHECK, ((CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_OVERFLOWPASTE) ? TBSTATE_CHECKED : 0) | TBSTATE_ENABLED); + m_ToolBar.AddButton(ID_OVERFLOWPASTE, TIMAGE_PATTERN_OVERFLOWPASTE, TBSTYLE_CHECK, ((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_OVERFLOWPASTE) ? TBSTATE_CHECKED : 0) | TBSTATE_ENABLED); // Special edit controls -> tab switch to view m_EditSequence.SetParent(this); @@ -168,12 +168,12 @@ m_EditOrderListMargins.SetLimitText(3); // Spin controls m_SpinSpacing.SetRange(0, MAX_SPACING); - m_SpinSpacing.SetPos(CMainFrame::GetSettings().gnPatternSpacing); + m_SpinSpacing.SetPos(TrackerSettings::Instance().gnPatternSpacing); m_SpinInstrument.SetRange(-1, 1); m_SpinInstrument.SetPos(0); - if(CMainFrame::GetSettings().gbShowHackControls == true) + if(TrackerSettings::Instance().gbShowHackControls == true) { m_SpinOrderListMargins.ShowWindow(SW_SHOW); m_EditOrderListMargins.ShowWindow(SW_SHOW); @@ -186,9 +186,9 @@ m_EditOrderListMargins.ShowWindow(SW_HIDE); } - SetDlgItemInt(IDC_EDIT_SPACING, CMainFrame::GetSettings().gnPatternSpacing); + SetDlgItemInt(IDC_EDIT_SPACING, TrackerSettings::Instance().gnPatternSpacing); SetDlgItemInt(IDC_EDIT_ORDERLIST_MARGINS, m_OrderList.GetMargins()); - CheckDlgButton(IDC_PATTERN_FOLLOWSONG, !(CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_FOLLOWSONGOFF)); //rewbs.noFollow - set to unchecked + CheckDlgButton(IDC_PATTERN_FOLLOWSONG, !(TrackerSettings::Instance().m_dwPatternSetup & PATTERN_FOLLOWSONGOFF)); //rewbs.noFollow - set to unchecked m_SpinSequence.SetRange(0, m_pSndFile->Order.GetNumSequences() - 1); m_SpinSequence.SetPos(m_pSndFile->Order.GetCurrentSequenceIndex()); @@ -278,8 +278,8 @@ m_ToolBar.UpdateStyle(); // -> CODE#0007 // -> DESC="uncheck follow song checkbox by default" - //CheckDlgButton(IDC_PATTERN_FOLLOWSONG, (CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_FOLLOWSONGOFF) ? MF_UNCHECKED : MF_CHECKED); - m_ToolBar.SetState(ID_OVERFLOWPASTE, ((CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_OVERFLOWPASTE) ? TBSTATE_CHECKED : 0) | TBSTATE_ENABLED); + //CheckDlgButton(IDC_PATTERN_FOLLOWSONG, (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_FOLLOWSONGOFF) ? MF_UNCHECKED : MF_CHECKED); + m_ToolBar.SetState(ID_OVERFLOWPASTE, ((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_OVERFLOWPASTE) ? TBSTATE_CHECKED : 0) | TBSTATE_ENABLED); // -! BEHAVIOUR_CHANGE#0007 } if(dwHintMask & (HINT_MODTYPE|HINT_INSNAMES|HINT_SMPNAMES|HINT_PATNAMES)) @@ -452,7 +452,7 @@ case CTRLMSG_SETRECORD: if (lParam >= 0) m_bRecord = (BOOL)(lParam); else m_bRecord = !m_bRecord; m_ToolBar.SetState(IDC_PATTERN_RECORD, ((m_bRecord) ? TBSTATE_CHECKED : 0)|TBSTATE_ENABLED); - CMainFrame::GetSettings().gbPatternRecord = m_bRecord; + TrackerSettings::Instance().gbPatternRecord = m_bRecord; SendViewMessage(VIEWMSG_SETRECORD, m_bRecord); break; @@ -723,13 +723,13 @@ { if ((m_EditSpacing.m_hWnd) && (m_EditSpacing.GetWindowTextLength() > 0)) { - CMainFrame::GetSettings().gnPatternSpacing = GetDlgItemInt(IDC_EDIT_SPACING); - if (CMainFrame::GetSettings().gnPatternSpacing > MAX_SPACING) + TrackerSettings::Instance().gnPatternSpacing = GetDlgItemInt(IDC_EDIT_SPACING); + if (TrackerSettings::Instance().gnPatternSpacing > MAX_SPACING) { - CMainFrame::GetSettings().gnPatternSpacing = MAX_SPACING; - SetDlgItemInt(IDC_EDIT_SPACING, CMainFrame::GetSettings().gnPatternSpacing, FALSE); + TrackerSettings::Instance().gnPatternSpacing = MAX_SPACING; + SetDlgItemInt(IDC_EDIT_SPACING, TrackerSettings::Instance().gnPatternSpacing, FALSE); } - SendViewMessage(VIEWMSG_SETSPACING, CMainFrame::GetSettings().gnPatternSpacing); + SendViewMessage(VIEWMSG_SETSPACING, TrackerSettings::Instance().gnPatternSpacing); } } @@ -984,7 +984,7 @@ { UINT nState = m_ToolBar.GetState(IDC_PATTERN_RECORD); m_bRecord = ((nState & TBSTATE_CHECKED) != 0); - CMainFrame::GetSettings().gbPatternRecord = m_bRecord; + TrackerSettings::Instance().gbPatternRecord = m_bRecord; SendViewMessage(VIEWMSG_SETRECORD, m_bRecord); SwitchToView(); } @@ -995,7 +995,7 @@ { UINT nState = m_ToolBar.GetState(ID_PATTERN_VUMETERS); m_bVUMeters = ((nState & TBSTATE_CHECKED) != 0); - CMainFrame::GetSettings().gbPatternVUMeters = m_bVUMeters; + TrackerSettings::Instance().gbPatternVUMeters = m_bVUMeters; SendViewMessage(VIEWMSG_SETVUMETERS, m_bVUMeters); SwitchToView(); } @@ -1006,7 +1006,7 @@ { UINT nState = m_ToolBar.GetState(ID_VIEWPLUGNAMES); m_bPluginNames = ((nState & TBSTATE_CHECKED) != 0); - CMainFrame::GetSettings().gbPatternPluginNames = m_bPluginNames; + TrackerSettings::Instance().gbPatternPluginNames = m_bPluginNames; SendViewMessage(VIEWMSG_SETPLUGINNAMES, m_bPluginNames); SwitchToView(); } @@ -1235,7 +1235,7 @@ void CCtrlPatterns::OnToggleOverflowPaste() //------------------------------------- { - CMainFrame::GetSettings().m_dwPatternSetup ^= PATTERN_OVERFLOWPASTE; + TrackerSettings::Instance().m_dwPatternSetup ^= PATTERN_OVERFLOWPASTE; UpdateView(HINT_MPTOPTIONS, NULL); SwitchToView(); } Modified: trunk/OpenMPT/mptrack/Ctrl_pat.h =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_pat.h 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Ctrl_pat.h 2013-03-12 01:41:35 UTC (rev 1562) @@ -192,7 +192,7 @@ public: CCtrlPatterns(); - LONG* GetSplitPosRef() {return &CMainFrame::GetSettings().glPatternWindowHeight;} //rewbs.varWindowSize + LONG* GetSplitPosRef() {return &TrackerSettings::Instance().glPatternWindowHeight;} //rewbs.varWindowSize public: void SetCurrentPattern(PATTERNINDEX nPat); Modified: trunk/OpenMPT/mptrack/Ctrl_seq.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2013-03-12 01:41:35 UTC (rev 1562) @@ -15,7 +15,7 @@ #include "moddoc.h" #include "globals.h" #include "ctrl_pat.h" -#include "view_pat.h" +#include "PatternClipboard.h" ////////////////////////////////////////////////////////////// // CPatEdit @@ -122,7 +122,7 @@ m_pModDoc = nullptr; m_nScrollPos = m_nXScroll = 0; m_nScrollPos2nd = ORDERINDEX_INVALID; - m_nOrderlistMargins = CMainFrame::GetSettings().orderlistMargins; + m_nOrderlistMargins = TrackerSettings::Instance().orderlistMargins; m_bScrolling = false; m_bDragging = false; } @@ -585,8 +585,8 @@ { const OrdSelection ordsel = GetCurSel(false); BeginWaitCursor(); - CViewPattern::GetPatternClipboard().Copy(*m_pModDoc->GetSoundFile(), ordsel.firstOrd, ordsel.lastOrd); - CViewPattern::GetPatternClipboardDialog().UpdateList(); + PatternClipboard::Instance().Copy(*m_pModDoc->GetSoundFile(), ordsel.firstOrd, ordsel.lastOrd); + PatternClipboardDialog::Instance().UpdateList(); EndWaitCursor(); } @@ -622,7 +622,7 @@ // MOD orderlist always ends after first empty pattern const ORDERINDEX nLength = (pSndFile->GetType() & MOD_TYPE_MOD) ? pSndFile->Order.GetLengthFirstEmpty() : pSndFile->Order.GetLengthTailTrimmed(); - if(CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_HEXDISPLAY) + if(TrackerSettings::Instance().m_dwPatternSetup & PATTERN_HEXDISPLAY) { wsprintf(s, "Position %02Xh of %02Xh", m_nScrollPos, nLength); } Modified: trunk/OpenMPT/mptrack/Ctrl_smp.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2013-03-12 01:41:35 UTC (rev 1562) @@ -831,7 +831,7 @@ if (bOk) { ModSample &sample = m_pSndFile->GetSample(m_nSample); - CMainFrame::GetSettings().SetWorkingDirectory(lpszFileName, DIR_SAMPLES, true); + TrackerSettings::Instance().SetWorkingDirectory(lpszFileName, DIR_SAMPLES, true); if (!sample.filename[0]) { CHAR szFullFilename[_MAX_PATH]; @@ -989,12 +989,12 @@ "AIFF Files (*.aiff;*.8svx)|*.aif;*.aiff;*.8sv;*.8svx;*.svx|" "Raw Samples (*.raw,*.snd,*.pcm)|*.raw;*.snd;*.pcm|" "All Files (*.*)|*.*||", - CMainFrame::GetSettings().GetWorkingDirectory(DIR_SAMPLES), + TrackerSettings::Instance().GetWorkingDirectory(DIR_SAMPLES), true, &nLastIndex); if(files.abort) return; - CMainFrame::GetSettings().SetWorkingDirectory(files.workingDirectory.c_str(), DIR_SAMPLES, true); + TrackerSettings::Instance().SetWorkingDirectory(files.workingDirectory.c_str(), DIR_SAMPLES, true); for(size_t counter = 0; counter < files.filenames.size(); counter++) { @@ -1069,7 +1069,7 @@ "Wave File (*.wav)|*.wav|" "FLAC File (*.flac)|*.flac|" "RAW Audio (*.raw)|*.raw||", - CMainFrame::GetSettings().GetWorkingDirectory(DIR_SAMPLES), false, &filter); + TrackerSettings::Instance().GetWorkingDirectory(DIR_SAMPLES), false, &filter); if(files.abort) return; BeginWaitCursor(); @@ -1122,7 +1122,7 @@ ErrorBox(IDS_ERR_SAVESMP, this); } else { - CMainFrame::GetSettings().SetWorkingDirectory(files.workingDirectory.c_str(), DIR_SAMPLES, true); + TrackerSettings::Instance().SetWorkingDirectory(files.workingDirectory.c_str(), DIR_SAMPLES, true); } SwitchToView(); } Modified: trunk/OpenMPT/mptrack/Ctrl_smp.h =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_smp.h 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Ctrl_smp.h 2013-03-12 01:41:35 UTC (rev 1562) @@ -67,7 +67,7 @@ bool SetCurrentSample(SAMPLEINDEX nSmp, LONG lZoom = -1, bool bUpdNum = true); bool OpenSample(LPCSTR lpszFileName); bool OpenSample(const CSoundFile *pSndFile, SAMPLEINDEX nSample); - LONG* GetSplitPosRef() {return &CMainFrame::GetSettings().glSampleWindowHeight;} //rewbs.varWindowSize + LONG* GetSplitPosRef() {return &TrackerSettings::Instance().glSampleWindowHeight;} //rewbs.varWindowSize public: //{{AFX_VIRTUAL(CCtrlSamples) Modified: trunk/OpenMPT/mptrack/Draw_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/Draw_pat.cpp 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Draw_pat.cpp 2013-03-12 01:41:35 UTC (rev 1562) @@ -149,7 +149,7 @@ inline PCPATTERNFONT GetCurrentPatternFont() //------------------------------------------ { - return (CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_SMALLFONT) ? &gSmallPatternFont : &gDefaultPatternFont; + return (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_SMALLFONT) ? &gSmallPatternFont : &gDefaultPatternFont; } @@ -171,25 +171,25 @@ { BYTE r,g,b; - m_Dib.SetAllColors(0, MAX_MODCOLORS, CMainFrame::GetSettings().rgbCustomColors); + m_Dib.SetAllColors(0, MAX_MODCOLORS, TrackerSettings::Instance().rgbCustomColors); - r = hilightcolor(GetRValue(CMainFrame::GetSettings().rgbCustomColors[MODCOLOR_BACKHILIGHT]), - GetRValue(CMainFrame::GetSettings().rgbCustomColors[MODCOLOR_BACKNORMAL])); - g = hilightcolor(GetGValue(CMainFrame::GetSettings().rgbCustomColors[MODCOLOR_BACKHILIGHT]), - GetGValue(CMainFrame::GetSettings().rgbCustomColors[MODCOLOR_BACKNORMAL])); - b = hilightcolor(GetBValue(CMainFrame::GetSettings().rgbCustomColors[MODCOLOR_BACKHILIGHT]), - GetBValue(CMainFrame::GetSettings().rgbCustomColors[MODCOLOR_BACKNORMAL])); + r = hilightcolor(GetRValue(TrackerSettings::Instance().rgbCustomColors[MODCOLOR_BACKHILIGHT]), + GetRValue(TrackerSettings::Instance().rgbCustomColors[MODCOLOR_BACKNORMAL])); + g = hilightcolor(GetGValue(TrackerSettings::Instance().rgbCustomColors[MODCOLOR_BACKHILIGHT]), + GetGValue(TrackerSettings::Instance().rgbCustomColors[MODCOLOR_BACKNORMAL])); + b = hilightcolor(GetBValue(TrackerSettings::Instance().rgbCustomColors[MODCOLOR_BACKHILIGHT]), + GetBValue(TrackerSettings::Instance().rgbCustomColors[MODCOLOR_BACKNORMAL])); m_Dib.SetColor(MODCOLOR_2NDHIGHLIGHT, RGB(r,g,b)); - r = hilightcolor(GetRValue(CMainFrame::GetSettings().rgbCustomColors[MODCOLOR_VOLUME]), - GetRValue(CMainFrame::GetSettings().rgbCustomColors[MODCOLOR_BACKNORMAL])); - g = hilightcolor(GetGValue(CMainFrame::GetSettings().rgbCustomColors[MODCOLOR_VOLUME]), - GetGValue(CMainFrame::GetSettings().rgbCustomColors[MODCOLOR_BACKNORMAL])); - b = hilightcolor(GetBValue(CMainFrame::GetSettings().rgbCustomColors[MODCOLOR_VOLUME]), - GetBValue(CMainFrame::GetSettings().rgbCustomColors[MODCOLOR_BACKNORMAL])); + r = hilightcolor(GetRValue(TrackerSettings::Instance().rgbCustomColors[MODCOLOR_VOLUME]), + GetRValue(TrackerSettings::Instance().rgbCustomColors[MODCOLOR_BACKNORMAL])); + g = hilightcolor(GetGValue(TrackerSettings::Instance().rgbCustomColors[MODCOLOR_VOLUME]), + GetGValue(TrackerSettings::Instance().rgbCustomColors[MODCOLOR_BACKNORMAL])); + b = hilightcolor(GetBValue(TrackerSettings::Instance().rgbCustomColors[MODCOLOR_VOLUME]), + GetBValue(TrackerSettings::Instance().rgbCustomColors[MODCOLOR_BACKNORMAL])); m_Dib.SetColor(MODCOLOR_DEFAULTVOLUME, RGB(r,g,b)); - m_Dib.SetBlendColor(CMainFrame::GetSettings().rgbCustomColors[MODCOLOR_BLENDCOLOR]); + m_Dib.SetBlendColor(TrackerSettings::Instance().rgbCustomColors[MODCOLOR_BLENDCOLOR]); } @@ -670,7 +670,7 @@ PATTERNINDEX nPrevPat = PATTERNINDEX_INVALID; // Display previous pattern - if (CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_SHOWPREVIOUS) + if (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_SHOWPREVIOUS) { const ORDERINDEX startOrder = static_cast<ORDERINDEX>(SendCtrlMessage(CTRLMSG_GETCURRENTORDER)); if(startOrder > 0) @@ -713,7 +713,7 @@ DrawPatternData(hdc, pSndFile, m_nPattern, TRUE, (pMainFrm->GetModPlaying() == pModDoc), yofs, nrows, xofs, rcClient, &ypaint); // Display next pattern - if ((CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_SHOWPREVIOUS) && (ypaint < rcClient.bottom) && (ypaint == ypatternend)) + if ((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_SHOWPREVIOUS) && (ypaint < rcClient.bottom) && (ypaint == ypatternend)) { int nVisRows = (rcClient.bottom - ypaint + m_szCell.cy - 1) / m_szCell.cy; if ((nVisRows > 0) && (m_nMidRow)) @@ -825,9 +825,9 @@ for (UINT row=startRow; row<numRows; row++) { UINT col, xbmp, nbmp, oldrowcolor; - const int compRow = row + CMainFrame::GetSettings().rowDisplayOffset; + const int compRow = row + TrackerSettings::Instance().rowDisplayOffset; - if((CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_HEXDISPLAY)) + if((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_HEXDISPLAY)) wsprintf(s, "%s%02X", compRow < 0 ? "-" : "", abs(compRow)); else wsprintf(s, "%d", compRow); @@ -857,7 +857,7 @@ nMeasure = pSndFile->Patterns[nPattern].GetRowsPerMeasure(); } // secondary highlight (beats) - if ((CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_2NDHIGHLIGHT) + if ((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_2NDHIGHLIGHT) && (nBeat) && (nBeat < numRows)) { if(!(compRow % nBeat)) @@ -866,7 +866,7 @@ } } // primary highlight (measures) - if((CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_STDHIGHLIGHT) + if((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_STDHIGHLIGHT) && (nMeasure) && (nMeasure < numRows)) { if(!(compRow % nMeasure)) @@ -962,7 +962,7 @@ { tx_col = row_col; bk_col = row_bkcol; - if((CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_EFFECTHILIGHT) && m->IsNote()) + if((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_EFFECTHILIGHT) && m->IsNote()) { tx_col = MODCOLOR_NOTE; @@ -1000,7 +1000,7 @@ { tx_col = row_col; bk_col = row_bkcol; - if ((CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_EFFECTHILIGHT) && (m->instr)) + if ((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_EFFECTHILIGHT) && (m->instr)) { tx_col = MODCOLOR_INSTRUMENT; } @@ -1026,7 +1026,7 @@ { tx_col = MODCOLOR_TEXTSELECTED; bk_col = MODCOLOR_BACKSELECTED; - } else if (!m->IsPcNote() && (CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_EFFECTHILIGHT)) + } else if (!m->IsPcNote() && (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_EFFECTHILIGHT)) { if(m->volcmd != VOLCMD_NONE && m->volcmd < MAX_VOLCMDS && volEffectColors[m->volcmd] != 0) { @@ -1049,7 +1049,7 @@ uint16 val = m->GetValueEffectCol(); if(val > ModCommand::maxColumnValue) val = ModCommand::maxColumnValue; fx_col = row_col; - if (!isPCnote && m->command != CMD_NONE && m->command < MAX_EFFECTS && (CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_EFFECTHILIGHT)) + if (!isPCnote && m->command != CMD_NONE && m->command < MAX_EFFECTS && (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_EFFECTHILIGHT)) { if(effectColors[m->command] != 0) fx_col = effectColors[m->command]; @@ -1310,7 +1310,7 @@ sizePage.cy = sizeLine.cy * 8; GetClientRect(&rect); m_nMidRow = 0; - if (CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_CENTERROW) m_nMidRow = (rect.Height() - m_szHeader.cy) / (m_szCell.cy << 1); + if (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_CENTERROW) m_nMidRow = (rect.Height() - m_szHeader.cy) / (m_szCell.cy << 1); if (m_nMidRow) sizeTotal.cy += m_nMidRow * m_szCell.cy * 2; SetScrollSizes(MM_TEXT, sizeTotal, sizePage, sizeLine); //UpdateScrollPos(); //rewbs.FixLPsOddScrollingIssue Modified: trunk/OpenMPT/mptrack/Globals.cpp =================================================================== --- trunk/OpenMPT/mptrack/Globals.cpp 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Globals.cpp 2013-03-12 01:41:35 UTC (rev 1562) @@ -723,7 +723,7 @@ if (m_hWnd) { LONG lStyleOld = GetWindowLong(m_hWnd, GWL_STYLE); - if (CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_FLATBUTTONS) + if (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_FLATBUTTONS) lStyleOld |= TBSTYLE_FLAT; else lStyleOld &= ~TBSTYLE_FLAT; Modified: trunk/OpenMPT/mptrack/InputHandler.cpp =================================================================== --- trunk/OpenMPT/mptrack/InputHandler.cpp 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/InputHandler.cpp 2013-03-12 01:41:35 UTC (rev 1562) @@ -35,7 +35,7 @@ if (sDefaultPath.GetLength() > MAX_PATH - 1) sDefaultPath = ""; - const bool bNoExistingKbdFileSetting = (CMainFrame::GetSettings().m_szKbdFile[0] == 0); + const bool bNoExistingKbdFileSetting = (TrackerSettings::Instance().m_szKbdFile[0] == 0); // 1. Try to load keybindings from the path saved in the settings. // 2. If the setting doesn't exist or the loading fails, try to load from default location. @@ -43,10 +43,10 @@ // 4. If there were no keybinging setting already, create a keybinding file to default location // and set it's path to settings. - if (bNoExistingKbdFileSetting || !(activeCommandSet->LoadFile(CMainFrame::GetSettings().m_szKbdFile))) + if (bNoExistingKbdFileSetting || !(activeCommandSet->LoadFile(TrackerSettings::Instance().m_szKbdFile))) { if (bNoExistingKbdFileSetting) - _tcscpy(CMainFrame::GetSettings().m_szKbdFile, sDefaultPath); + _tcscpy(TrackerSettings::Instance().m_szKbdFile, sDefaultPath); bool bSuccess = false; if (PathFileExists(sDefaultPath) == TRUE) bSuccess = activeCommandSet->LoadFile(sDefaultPath); @@ -57,14 +57,14 @@ bSuccess = activeCommandSet->LoadDefaultKeymap(); if (bSuccess && bNoExistingKbdFileSetting) { - activeCommandSet->SaveFile(CMainFrame::GetSettings().m_szKbdFile); + activeCommandSet->SaveFile(TrackerSettings::Instance().m_szKbdFile); } } if (bSuccess == false) ErrorBox(IDS_UNABLE_TO_LOAD_KEYBINDINGS); } // We will only overwrite the default Keybindings.mkb file from now on. - _tcscpy(CMainFrame::GetSettings().m_szKbdFile, sDefaultPath); + _tcscpy(TrackerSettings::Instance().m_szKbdFile, sDefaultPath); //Get Keymap activeCommandSet->GenKeyMap(keyMap); @@ -541,6 +541,7 @@ case ID_HELP: s="&Help"; c = kcHelp; break; case ID_PLUGIN_SETUP: s="Pl&ugin Manager...\t"; c = kcViewAddPlugin; break; case ID_CHANNEL_MANAGER: s="Ch&annel Manager...\t"; c = kcViewChannelManager; break; + case ID_CLIPBOARD_MANAGER: s="C&lipboard Manager...\t"; c = kcToggleClipboardManager; break; case ID_VIEW_SONGPROPERTIES:s="Song P&roperties...\t"; c = kcViewSongProperties; break; //rewbs.graph case ID_VIEW_MIDIMAPPING: s="&MIDI Mapping...\t"; c = kcViewMIDImapping; break; case ID_VIEW_EDITHISTORY: s="Edit &History...\t"; c = kcViewEditHistory; break; @@ -613,6 +614,7 @@ pMenu->ModifyMenu(ID_VIEW_OPTIONS, MF_BYCOMMAND | MF_STRING, ID_VIEW_OPTIONS, GetMenuText(ID_VIEW_OPTIONS)); pMenu->ModifyMenu(ID_PLUGIN_SETUP, MF_BYCOMMAND | MF_STRING, ID_PLUGIN_SETUP, GetMenuText(ID_PLUGIN_SETUP)); pMenu->ModifyMenu(ID_CHANNEL_MANAGER, MF_BYCOMMAND | MF_STRING, ID_CHANNEL_MANAGER, GetMenuText(ID_CHANNEL_MANAGER)); + pMenu->ModifyMenu(ID_CLIPBOARD_MANAGER, MF_BYCOMMAND | MF_STRING, ID_CLIPBOARD_MANAGER, GetMenuText(ID_CLIPBOARD_MANAGER)); pMenu->ModifyMenu(ID_VIEW_SONGPROPERTIES, MF_BYCOMMAND | MF_STRING, ID_VIEW_SONGPROPERTIES, GetMenuText(ID_VIEW_SONGPROPERTIES)); pMenu->ModifyMenu(ID_VIEW_MIDIMAPPING, MF_BYCOMMAND | MF_STRING, ID_VIEW_MIDIMAPPING, GetMenuText(ID_VIEW_MIDIMAPPING)); pMenu->ModifyMenu(ID_HELP, MF_BYCOMMAND | MF_STRING, ID_HELP, GetMenuText(ID_HELP)); Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp =================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.cpp 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.cpp 2013-03-12 01:41:35 UTC (rev 1562) @@ -161,7 +161,7 @@ m_nCurKeyChoice = -1; m_bModified = false; m_bChoiceModified = false; - m_sFullPathName = CMainFrame::GetSettings().m_szKbdFile; + m_sFullPathName = TrackerSettings::Instance().m_szKbdFile; plocalCmdSet = new CCommandSet(); plocalCmdSet->Copy(CMainFrame::GetInputHandler()->activeCommandSet); @@ -182,7 +182,7 @@ m_eReport.SetWindowText(""); CString s; - s.Format("%d", CMainFrame::GetSettings().gnAutoChordWaitTime); + s.Format("%d", TrackerSettings::Instance().gnAutoChordWaitTime); m_eChordWaitTime.SetWindowText(s); return TRUE; } @@ -820,7 +820,7 @@ CString cs; m_eChordWaitTime.GetWindowText(cs); - CMainFrame::GetSettings().gnAutoChordWaitTime = atoi(cs); + TrackerSettings::Instance().gnAutoChordWaitTime = atoi(cs); CPropertyPage::OnOK(); } @@ -840,7 +840,7 @@ std::string filename = m_sFullPathName; FileDlgResult files = CTrackApp::ShowOpenSaveFileDialog(true, "mkb", filename, "OpenMPT Key Bindings (*.mkb)|*.mkb||", - CMainFrame::GetSettings().m_szKbdFile); + TrackerSettings::Instance().m_szKbdFile); if(files.abort) return; m_sFullPathName = files.first_file.c_str(); @@ -856,7 +856,7 @@ std::string filename = m_sFullPathName; FileDlgResult files = CTrackApp::ShowOpenSaveFileDialog(false, "mkb", filename, "OpenMPT Key Bindings (*.mkb)|*.mkb||", - CMainFrame::GetSettings().m_szKbdFile); + TrackerSettings::Instance().m_szKbdFile); if(files.abort) return; m_sFullPathName = files.first_file.c_str(); Modified: trunk/OpenMPT/mptrack/MainFrm.cpp =================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/MainFrm.cpp 2013-03-12 01:41:35 UTC (rev 1562) @@ -34,6 +34,7 @@ #include "CloseMainDialog.h" #include "SelectPluginDialog.h" #include "ExceptionHandler.h" +#include "PatternClipboard.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -70,15 +71,9 @@ ON_WM_RBUTTONDOWN() ON_COMMAND(ID_VIEW_OPTIONS, OnViewOptions) -// -> CODE#0002 -// -> DESC="list box to choose VST plugin presets (programs)" ON_COMMAND(ID_PLUGIN_SETUP, OnPluginManager) -// -! NEW_FEATURE#0002 - -// -> CODE#0015 -// -> DESC="channels management dlg" ON_COMMAND(ID_CHANNEL_MANAGER, OnChannelManager) -// -! NEW_FEATURE#0015 + ON_COMMAND(ID_CLIPBOARD_MANAGER, OnClipboardManager) ON_COMMAND(ID_VIEW_MIDIMAPPING, OnViewMIDIMapping) //ON_COMMAND(ID_HELP, CMDIFrameWnd::OnHelp) ON_COMMAND(ID_VIEW_SONGPROPERTIES, OnSongProperties) @@ -123,8 +118,6 @@ static DWORD gsdwTotalSamples = 0; static DWORD gdwPlayLatency = 0; -TrackerSettings CMainFrame::m_Settings; - // Globals DWORD CMainFrame::gdwNotificationType = MPTNOTIFY_DEFAULT; UINT CMainFrame::m_nLastOptionsPage = 0; @@ -238,7 +231,7 @@ MemsetZero(g_csAudio); InitializeCriticalSection(&g_csAudio); - m_Settings.LoadSettings(); + TrackerSettings::Instance().LoadSettings(); m_InputHandler = new CInputHandler(this); //rewbs.customKeys //m_pPerfCounter= new CPerformanceCounter(); @@ -270,12 +263,12 @@ OnUpdateFrameTitle(false); // Check for valid sound device - if (!EnumerateSoundDevices(SNDDEV_GET_TYPE(GetSettings().m_nWaveDevice), SNDDEV_GET_NUMBER(GetSettings().m_nWaveDevice), nullptr, 0)) + if (!EnumerateSoundDevices(SNDDEV_GET_TYPE(TrackerSettings::Instance().m_nWaveDevice), SNDDEV_GET_NUMBER(TrackerSettings::Instance().m_nWaveDevice), nullptr, 0)) { - GetSettings().m_nWaveDevice = SNDDEV_BUILD_ID(0, SNDDEV_DSOUND); - if (!EnumerateSoundDevices(SNDDEV_GET_TYPE(GetSettings().m_nWaveDevice), SNDDEV_GET_NUMBER(GetSettings().m_nWaveDevice), nullptr, 0)) + TrackerSettings::Instance().m_nWaveDevice = SNDDEV_BUILD_ID(0, SNDDEV_DSOUND); + if (!EnumerateSoundDevices(SNDDEV_GET_TYPE(TrackerSettings::Instance().m_nWaveDevice), SNDDEV_GET_NUMBER(TrackerSettings::Instance().m_nWaveDevice), nullptr, 0)) { - GetSettings().m_nWaveDevice = SNDDEV_BUILD_ID(0, SNDDEV_WAVEOUT); + TrackerSettings::Instance().m_nWaveDevice = SNDDEV_BUILD_ID(0, SNDDEV_WAVEOUT); } } @@ -386,7 +379,7 @@ AddControlBar(&m_wndStatusBar); //Restore statusbar to mainframe. - if(GetSettings().m_dwPatternSetup & PATTERN_MIDIRECORD) OnMidiRecord(); + if(TrackerSettings::Instance().m_dwPatternSetup & PATTERN_MIDIRECORD) OnMidiRecord(); return 0; } @@ -486,7 +479,7 @@ void CMainFrame::OnClose() //------------------------ { - if(!(GetSettings().m_dwPatternSetup & PATTERN_NOCLOSEDIALOG)) + if(!(TrackerSettings::Instance().m_dwPatternSetup & PATTERN_NOCLOSEDIALOG)) { // Show modified documents window CloseMainDialog dlg; @@ -511,12 +504,12 @@ } // Save Settings RemoveControlBar(&m_wndStatusBar); // Remove statusbar so that its state won't get saved. - m_Settings.SaveSettings(); + TrackerSettings::Instance().SaveSettings(); AddControlBar(&m_wndStatusBar); // Restore statusbar to mainframe. if(m_InputHandler && m_InputHandler->activeCommandSet) { - m_InputHandler->activeCommandSet->SaveFile(GetSettings().m_szKbdFile); + m_InputHandler->activeCommandSet->SaveFile(TrackerSettings::Instance().m_szKbdFile); } EndWaitCursor(); @@ -751,7 +744,7 @@ { ULONG nMaxSleep = CMainFrame::gpSoundDevice->GetMaxFillInterval(); bWait = FALSE; - nSleep = CMainFrame::GetSettings().m_nBufferLength / 8; + nSleep = TrackerSettings::Instance().m_nBufferLength / 8; if (nSleep > nMaxSleep) nSleep = nMaxSleep; if (nSleep < 10) nSleep = 10; if (nSleep > 40) nSleep = 40; @@ -873,7 +866,7 @@ //---------------------------------------------------------------------------------- { WAVEFORMATEXTENSIBLE WaveFormat; - UINT buflen = GetSettings().m_nBufferLength; + UINT buflen = TrackerSettings::Instance().m_nBufferLength; if (!m_pSndFile) return -1; slSampleSize = (bits/8) * channels; @@ -905,14 +898,14 @@ } WaveFormat.SubFormat = guid_MEDIASUBTYPE_PCM; } - if (GetSettings().m_dwSoundSetup & SOUNDSETUP_STREVERSE) CSoundFile::gdwSoundSetup |= SNDMIX_REVERSESTEREO; + if (TrackerSettings::Instance().m_dwSoundSetup & SOUNDSETUP_STREVERSE) CSoundFile::gdwSoundSetup |= SNDMIX_REVERSESTEREO; else CSoundFile::gdwSoundSetup &= ~SNDMIX_REVERSESTEREO; - m_pSndFile->SetWaveConfig(samplespersec, bits, channels, (GetSettings().m_dwSoundSetup & SOUNDSETUP_ENABLEMMX) ? TRUE : FALSE); + m_pSndFile->SetWaveConfig(samplespersec, bits, channels, (TrackerSettings::Instance().m_dwSoundSetup & SOUNDSETUP_ENABLEMMX) ? TRUE : FALSE); // Maybe we failed because someone is playing sound already. // Shut any sound off, and try once more before giving up. - UINT nDevType = SNDDEV_GET_TYPE(GetSettings().m_nWaveDevice); - UINT nDevNo = SNDDEV_GET_NUMBER(GetSettings().m_nWaveDevice); - UINT fulOptions = (GetSettings().m_dwSoundSetup & SOUNDSETUP_SECONDARY) ? SNDDEV_OPTIONS_SECONDARY : 0; + UINT nDevType = SNDDEV_GET_TYPE(TrackerSettings::Instance().m_nWaveDevice); + UINT nDevNo = SNDDEV_GET_NUMBER(TrackerSettings::Instance().m_nWaveDevice); + UINT fulOptions = (TrackerSettings::Instance().m_dwSoundSetup & SOUNDSETUP_SECONDARY) ? SNDDEV_OPTIONS_SECONDARY : 0; if ((gpSoundDevice) && (gpSoundDevice->GetDeviceType() != nDevType)) { gpSoundDevice->Release(); @@ -922,11 +915,11 @@ { if (!CreateSoundDevice(nDevType, &gpSoundDevice)) return -1; } - gpSoundDevice->Configure(m_hWnd, NUM_AUDIO_BUFFERS, GetSettings().m_nBufferLength, fulOptions); + gpSoundDevice->Configure(m_hWnd, NUM_AUDIO_BUFFERS, TrackerSettings::Instance().m_nBufferLength, fulOptions); gbStopSent = FALSE; - m_pSndFile->SetResamplingMode(GetSettings().m_nSrcMode); + m_pSndFile->SetResamplingMode(TrackerSettings::Instance().m_nSrcMode); m_pSndFile->UPDATEDSPEFFECTS(); - m_pSndFile->SetAGC(GetSettings().m_dwQuality & QUALITY_AGC); + m_pSndFile->SetAGC(TrackerSettings::Instance().m_dwQuality & QUALITY_AGC); if (!gpSoundDevice->Open(nDevNo, &WaveFormat.Format)) return -1; return 0; } @@ -940,25 +933,25 @@ if ((!m_pSndFile) || (!m_pSndFile->GetType())) return FALSE; if (m_dwStatus & MODSTATUS_PLAYING) return TRUE; - if (!GetSettings().m_dwRate) GetSettings().m_dwRate = 22050; - if ((GetSettings().m_nChannels != 1) && (GetSettings().m_nChannels != 2) && (GetSettings().m_nChannels != 4)) GetSettings().m_nChannels = 2; - err = audioTryOpeningDevice(GetSettings().m_nChannels, - GetSettings().m_nBitsPerSample, - GetSettings().m_dwRate); + if (!TrackerSettings::Instance().m_dwRate) TrackerSettings::Instance().m_dwRate = 22050; + if ((TrackerSettings::Instance().m_nChannels != 1) && (TrackerSettings::Instance().m_nChannels != 2) && (TrackerSettings::Instance().m_nChannels != 4)) TrackerSettings::Instance().m_nChannels = 2; + err = audioTryOpeningDevice(TrackerSettings::Instance().m_nChannels, + TrackerSettings::Instance().m_nBitsPerSample, + TrackerSettings::Instance().m_dwRate); nFixedBitsPerSample = (gpSoundDevice) ? gpSoundDevice->HasFixedBitsPerSample() : 0; - if ((err) && ((GetSettings().m_dwRate > 44100) || (GetSettings().m_nChannels > 2) || (GetSettings().m_nBitsPerSample > 16) - || ((nFixedBitsPerSample) && (nFixedBitsPerSample != GetSettings().m_nBitsPerSample)))) + if ((err) && ((TrackerSettings::Instance().m_dwRate > 44100) || (TrackerSettings::Instance().m_nChannels > 2) || (TrackerSettings::Instance().m_nBitsPerSample > 16) + || ((nFixedBitsPerSample) && (nFixedBitsPerSample != TrackerSettings::Instance().m_nBitsPerSample)))) { - DWORD oldrate = GetSettings().m_dwRate; + DWORD oldrate = TrackerSettings::Instance().m_dwRate; - GetSettings().m_dwRate = 44100; - if (GetSettings().m_nChannels > 2) GetSettings().m_nChannels = 2; - if (nFixedBitsPerSample) GetSettings().m_nBitsPerSample = nFixedBitsPerSample; - else if (GetSettings().m_nBitsPerSample > 16) GetSettings().m_nBitsPerSample = 16; - err = audioTryOpeningDevice(GetSettings().m_nChannels, - GetSettings().m_nBitsPerSample, - GetSettings().m_dwRate); - if (err) GetSettings().m_dwRate = oldrate; + TrackerSettings::Instance().m_dwRate = 44100; + if (TrackerSettings::Instance().m_nChannels > 2) TrackerSettings::Instance().m_nChannels = 2; + if (nFixedBitsPerSample) TrackerSettings::Instance().m_nBitsPerSample = nFixedBitsPerSample; + else if (TrackerSettings::Instance().m_nBitsPerSample > 16) TrackerSettings::Instance().m_nBitsPerSample = 16; + err = audioTryOpeningDevice(TrackerSettings::Instance().m_nChannels, + TrackerSettings::Instance().m_nBitsPerSample, + TrackerSettings::Instance().m_dwRate); + if (err) TrackerSettings::Instance().m_dwRate = oldrate; } // Display error message box if (err != 0) @@ -1117,7 +1110,7 @@ if (rVu > 0x10000) rVu = 0x10000; p->dwPos[0] = lVu; p->dwPos[1] = rVu; - DWORD dwVuDecay = _muldiv(dwSamplesRead, 120000, GetSettings().m_dwRate) + 1; + DWORD dwVuDecay = _muldiv(dwSamplesRead, 120000, TrackerSettings::Instance().m_dwRate) + 1; if (lVu >= dwVuDecay) gnLVuMeter = (lVu - dwVuDecay) << 11; else gnLVuMeter = 0; if (rVu >= dwVuDecay) gnRVuMeter = (rVu - dwVuDecay) << 11; else gnRVuMeter = 0; } @@ -1132,32 +1125,32 @@ void CMainFrame::UpdateAudioParameters(BOOL bReset) //------------------------------------------------- { - if ((GetSettings().m_nBitsPerSample != 8) && (GetSettings().m_nBitsPerSample != 32)) GetSettings().m_nBitsPerSample = 16; - CSoundFile::SetWaveConfig(GetSettings().m_dwRate, - GetSettings().m_nBitsPerSample, - GetSettings().m_nChannels, - (GetSettings().m_dwSoundSetup & SOUNDSETUP_ENABLEMMX) ? TRUE : FALSE); - if (GetSettings().m_dwSoundSetup & SOUNDSETUP_STREVERSE) + if ((TrackerSettings::Instance().m_nBitsPerSample != 8) && (TrackerSettings::Instance().m_nBitsPerSample != 32)) TrackerSettings::Instance().m_nBitsPerSample = 16; + CSoundFile::SetWaveConfig(TrackerSettings::Instance().m_dwRate, + TrackerSettings::Instance().m_nBitsPerSample, + TrackerSettings::Instance().m_nChannels, + (TrackerSettings::Instance().m_dwSoundSetup & SOUNDSETUP_ENABLEMMX) ? TRUE : FALSE); + if (TrackerSettings::Instance().m_dwSoundSetup & SOUNDSETUP_STREVERSE) CSoundFile::gdwSoundSetup |= SNDMIX_REVERSESTEREO; else CSoundFile::gdwSoundSetup &= ~SNDMIX_REVERSESTEREO; // Soft panning - if (GetSettings().m_dwSoundSetup & SOUNDSETUP_SOFTPANNING) + if (TrackerSettings::Instance().m_dwSoundSetup & SOUNDSETUP_SOFTPANNING) CSoundFile::gdwSoundSetup |= SNDMIX_SOFTPANNING; else CSoundFile::gdwSoundSetup &= ~SNDMIX_SOFTPANNING; - if (GetSettings().m_dwPatternSetup & PATTERN_MUTECHNMODE) + if (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_MUTECHNMODE) CSoundFile::gdwSoundSetup |= SNDMIX_MUTECHNMODE; else CSoundFile::gdwSoundSetup &= ~SNDMIX_MUTECHNMODE; - CSoundFile::SetResamplingMode(GetSettings().m_nSrcMode); + CSoundFile::SetResamplingMode(TrackerSettings::Instance().m_nSrcMode); CSoundFile::UPDATEDSPEFFECTS(); - CSoundFile::SetAGC(GetSettings().m_dwQuality & QUALITY_AGC); - CSoundFile::SetEQGains( GetSettings().m_EqSettings.Gains, MAX_EQ_BANDS, GetSettings().m_EqSettings.Freqs, bReset ); + CSoundFile::SetAGC(TrackerSettings::Instance().m_dwQuality & QUALITY_AGC); + CSoundFile::SetEQGains( TrackerSettings::Instance().m_EqSettings.Gains, MAX_EQ_BANDS, TrackerSettings::Instance().m_EqSettings.Freqs, bReset ); if (bReset) { - CSoundFile::SetMixerSettings(GetSettings().m_MixerSettings); + CSoundFile::SetMixerSettings(TrackerSettings::Instance().m_MixerSettings); CSoundFile::InitPlayer(TRUE); } } @@ -1194,7 +1187,7 @@ void CMainFrame::UpdateColors() //----------------------------- { - COLORREF (&colors)[MAX_MODCOLORS] = GetSettings().rgbCustomColors; + COLORREF (&colors)[MAX_MODCOLORS] = TrackerSettings::Instance().rgbCustomColors; if (bmpPatterns) { bmpPatterns->bmiColors[7] = rgb2quad(GetSysColor(COLOR_BTNFACE)); @@ -1291,8 +1284,8 @@ void CMainFrame::SetPreAmp(UINT n) //-------------------------------- { - GetSettings().m_nPreAmp = n; - if (m_pSndFile) m_pSndFile->SetMasterVolume(GetSettings().m_nPreAmp, true); + TrackerSettings::Instance().m_nPreAmp = n; + if (m_pSndFile) m_pSndFile->SetMasterVolume(TrackerSettings::Instance().m_nPreAmp, true); } @@ -1355,10 +1348,10 @@ pModDoc->SetPause(FALSE); } } - pSndFile->SetRepeatCount((GetSettings().gbLoopSong) ? -1 : 0); + pSndFile->SetRepeatCount((TrackerSettings::Instance().gbLoopSong) ? -1 : 0); - m_pSndFile->SetMasterVolume(GetSettings().m_nPreAmp, true); - m_pSndFile->SetMixerSettings(GetSettings().m_MixerSettings); + m_pSndFile->SetMasterVolume(TrackerSettings::Instance().m_nPreAmp, true); + m_pSndFile->SetMixerSettings(TrackerSettings::Instance().m_MixerSettings); m_pSndFile->InitPlayer(TRUE); MemsetZero(NotifyBuffer); m_dwStatus |= MODSTATUS_PLAYING; @@ -1452,8 +1445,8 @@ return FALSE; } gsdwTotalSamples = 0; - m_pSndFile->SetMasterVolume(GetSettings().m_nPreAmp, true); - m_pSndFile->SetMixerSettings(GetSettings().m_MixerSettings); + m_pSndFile->SetMasterVolume(TrackerSettings::Instance().m_nPreAmp, true); + m_pSndFile->SetMixerSettings(TrackerSettings::Instance().m_MixerSettings); m_pSndFile->InitPlayer(TRUE); m_dwStatus |= MODSTATUS_PLAYING; if (gpSoundDevice) gpSoundDevice->Start(); @@ -1663,9 +1656,9 @@ //------------------------------------------------------------------------------------------------- { const bool isPlaying = (m_dwStatus & MODSTATUS_PLAYING) != 0; - if ((GetSettings().m_dwRate != rate) || ((GetSettings().m_dwSoundSetup & SOUNDSETUP_RESTARTMASK) != (q & SOUNDSETUP_RESTARTMASK)) - || (GetSettings().m_nWaveDevice != wd) || (GetSettings().m_nBufferLength != bufsize) || (nBits != GetSettings().m_nBitsPerSample) - || (GetSettings().m_nChannels != nChns)) + if ((TrackerSettings::Instance().m_dwRate != rate) || ((TrackerSettings::Instance().m_dwSoundSetup & SOUNDSETUP_RESTARTMASK) != (q & SOUNDSETUP_RESTARTMASK)) + || (TrackerSettings::Instance().m_nWaveDevice != wd) || (TrackerSettings::Instance().m_nBufferLength != bufsize) || (nBits != TrackerSettings::Instance().m_nBitsPerSample) + || (TrackerSettings::Instance().m_nChannels != nChns)) { CModDoc *pActiveMod = NULL; HWND hFollow = m_hFollowSong; @@ -1674,12 +1667,12 @@ if ((m_pSndFile) && (!m_pSndFile->IsPaused())) pActiveMod = m_pModPlaying; PauseMod(); } - GetSettings().m_nWaveDevice = wd; - GetSettings().m_dwRate = rate; - GetSettings().m_dwSoundSetup = q; - GetSettings().m_nBufferLength = bufsize; - GetSettings().m_nBitsPerSample = nBits; - GetSettings().m_nChannels = nChns; + TrackerSettings::Instance().m_nWaveDevice = wd; + TrackerSettings::Instance().m_dwRate = rate; + TrackerSettings::Instance().m_dwSoundSetup = q; + TrackerSettings::Instance().m_nBufferLength = bufsize; + TrackerSettings::Instance().m_nBitsPerSample = nBits; + TrackerSettings::Instance().m_nChannels = nChns; { CriticalSection cs; UpdateAudioParameters(FALSE); @@ -1689,9 +1682,9 @@ } else { // No need to restart playback - GetSettings().m_dwSoundSetup = q; - CSoundFile::EnableMMX((GetSettings().m_dwSoundSetup & SOUNDSETUP_ENABLEMMX) != 0); - if (GetSettings().m_dwSoundSetup & SOUNDSETUP_STREVERSE) + TrackerSettings::Instance().m_dwSoundSetup = q; + CSoundFile::EnableMMX((TrackerSettings::Instance().m_dwSoundSetup & SOUNDSETUP_ENABLEMMX) != 0); + if (TrackerSettings::Instance().m_dwSoundSetup & SOUNDSETUP_STREVERSE) CSoundFile::gdwSoundSetup |= SNDMIX_REVERSESTEREO; else CSoundFile::gdwSoundSetup &= ~SNDMIX_REVERSESTEREO; @@ -1703,16 +1696,16 @@ BOOL CMainFrame::SetupPlayer(DWORD q, DWORD srcmode, BOOL bForceUpdate) //--------------------------------------------------------------------- { - if ((q != GetSettings().m_dwQuality) || (srcmode != GetSettings().m_nSrcMode) || (bForceUpdate)) + if ((q != TrackerSettings::Instance().m_dwQuality) || (srcmode != TrackerSettings::Instance().m_nSrcMode) || (bForceUpdate)) { - GetSettings().m_nSrcMode = srcmode; - GetSettings().m_dwQuality = q; + TrackerSettings::Instance().m_nSrcMode = srcmode; + TrackerSettings::Instance().m_dwQuality = q; { CriticalSection cs; - CSoundFile::SetMixerSettings(GetSettings().m_MixerSettings); - CSoundFile::SetResamplingMode(GetSettings().m_nSrcMode); + CSoundFile::SetMixerSettings(TrackerSettings::Instance().m_MixerSettings); + CSoundFile::SetResamplingMode(TrackerSettings::Instance().m_nSrcMode); CSoundFile::UPDATEDSPEFFECTS(); - CSoundFile::SetAGC(GetSettings().m_dwQuality & QUALITY_AGC); + CSoundFile::SetAGC(TrackerSettings::Instance().m_dwQuality & QUALITY_AGC); } PostMessage(WM_MOD_INVALIDATEPATTERNS, HINT_MPTSETUP); } @@ -1724,23 +1717,23 @@ //--------------------------------------------------------------------------------------------------------------------------------- { // will also set working directory - GetSettings().SetDefaultDirectory(szModDir, DIR_MODS); - GetSettings().SetDefaultDirectory(szSampleDir, DIR_SAMPLES); - GetSettings().SetDefaultDirectory(szInstrDir, DIR_INSTRUMENTS); - GetSettings().SetDefaultDirectory(szVstDir, DIR_PLUGINS); - GetSettings().SetDefaultDirectory(szPresetDir, DIR_PLUGINPRESETS); + TrackerSettings::Instance().SetDefaultDirectory(szModDir, DIR_MODS); + TrackerSettings::Instance().SetDefaultDirectory(szSampleDir, DIR_SAMPLES); + TrackerSettings::Instance().SetDefaultDirectory(szInstrDir, DIR_INSTRUMENTS); + TrackerSettings::Instance().SetDefaultDirectory(szVstDir, DIR_PLUGINS); + TrackerSettings::Instance().SetDefaultDirectory(szPresetDir, DIR_PLUGINPRESETS); return TRUE; } BOOL CMainFrame::SetupMiscOptions() //--------------------------------- { - if (CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_MUTECHNMODE) + if (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_MUTECHNMODE) CSoundFile::gdwSoundSetup |= SNDMIX_MUTECHNMODE; else CSoundFile::gdwSoundSetup &= ~SNDMIX_MUTECHNMODE; - m_wndToolBar.EnableFlatButtons(GetSettings().m_dwPatternSetup & PATTERN_FLATBUTTONS); + m_wndToolBar.EnableFlatButtons(TrackerSettings::Instance().m_dwPatternSetup & PATTERN_FLATBUTTONS); UpdateTree(NULL, HINT_MPTOPTIONS); UpdateAllViews(HINT_MPTOPTIONS, NULL); @@ -1751,8 +1744,8 @@ BOOL CMainFrame::SetupMidi(DWORD d, LONG n) //----------------------------------------- { - GetSettings().m_dwMidiSetup = d; - GetSettings().m_nMidiDevice = n; + TrackerSettings::Instance().m_dwMidiSetup = d; + TrackerSettings::Instance().m_nMidiDevice = n; return TRUE; } @@ -1851,12 +1844,12 @@ CPropertySheet dlg("OpenMPT Setup", this, m_nLastOptionsPage); COptionsGeneral general; - COptionsSoundcard sounddlg(GetSettings().m_dwRate, GetSettings().m_dwSoundSetup, GetSettings().m_nBitsPerSample, GetSettings().m_nChannels, GetSettings().m_nBufferLength, GetSettings().m_nWaveDevice); + COptionsSoundcard sounddlg(TrackerSettings::Instance().m_dwRate, TrackerSettings::Instance().m_dwSoundSetup, TrackerSettings::Instance().m_nBitsPerSample, TrackerSettings::Instance().m_nChannels, TrackerSettings::Instance().m_nBufferLength, TrackerSettings::Instance().m_nWaveDevice); COptionsKeyboard keyboard; COptionsColors colors; COptionsPlayer playerdlg; - CMidiSetupDlg mididlg(GetSettings().m_dwMidiSetup, GetSettings().m_nMidiDevice); - CEQSetupDlg eqdlg(&GetSettings().m_EqSettings); + CMidiSetupDlg mididlg(TrackerSettings::Instance().m_dwMidiSetup, TrackerSettings::Instance().m_nMidiDevice); + CEQSetupDlg eqdlg(&TrackerSettings::Instance().m_EqSettings); CAutoSaverGUI autosavedlg(m_pAutoSaver); //rewbs.AutoSaver CUpdateSetupDlg updatedlg; dlg.AddPage(&general); @@ -1921,8 +1914,6 @@ // -! NEW_FEATURE#0002 -// -> CODE#0015 -// -> DESC="channels management dlg" void CMainFrame::OnChannelManager() //--------------------------------- { @@ -1937,7 +1928,15 @@ } } } -// -! NEW_FEATURE#0015 + + +void CMainFrame::OnClipboardManager() +//----------------------------------- +{ + PatternClipboardDialog::Instance().Show(); +} + + void CMainFrame::OnAddDlsBank() //----------------------------- { Modified: trunk/OpenMPT/mptrack/Mainbar.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mainbar.cpp 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Mainbar.cpp 2013-03-12 01:41:35 UTC (rev 1562) @@ -316,7 +316,7 @@ void CMainToolBar::Init(CMainFrame *pMainFrm) //------------------------------------------- { - EnableFlatButtons(CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_FLATBUTTONS); + EnableFlatButtons(TrackerSettings::Instance().m_dwPatternSetup & PATTERN_FLATBUTTONS); SetHorizontal(); pMainFrm->DockControlBar(this); } @@ -610,7 +610,7 @@ //------------------------ { m_pModTree = m_pModTreeData = NULL; - m_nTreeSplitRatio = CMainFrame::GetSettings().glTreeSplitRatio; + m_nTreeSplitRatio = TrackerSettings::Instance().glTreeSplitRatio; } @@ -623,7 +623,7 @@ m_pModTree = new CModTree(m_pModTreeData); if (m_pModTree) m_pModTree->SubclassDlgItem(IDC_TREEVIEW, this); m_dwStatus = 0; - m_sizeDefault.cx = CMainFrame::GetSettings().glTreeWindowWidth + 3; + m_sizeDefault.cx = TrackerSettings::Instance().glTreeWindowWidth + 3; m_sizeDefault.cy = 32767; return l; } @@ -648,7 +648,7 @@ void CModTreeBar::Init() //---------------------- { - m_nTreeSplitRatio = CMainFrame::GetSettings().glTreeSplitRatio; + m_nTreeSplitRatio = TrackerSettings::Instance().glTreeSplitRatio; if (m_pModTree) { m_pModTreeData->Init(); @@ -702,9 +702,9 @@ //-------------------------------------------- { CSize sz; - m_sizeDefault.cx = CMainFrame::GetSettings().glTreeWindowWidth; + m_sizeDefault.cx = TrackerSettings::Instance().glTreeWindowWidth; m_sizeDefault.cy = 32767; - sz.cx = CMainFrame::GetSettings().glTreeWindowWidth + 3; + sz.cx = TrackerSettings::Instance().glTreeWindowWidth + 3; if (sz.cx < 4) sz.cx = 4; sz.cy = 32767; return sz; @@ -842,7 +842,7 @@ if (ratio < 0) ratio = 0; if (ratio > 256) ratio = 256; m_nTreeSplitRatio = ratio; - CMainFrame::GetSettings().glTreeSplitRatio = ratio; + TrackerSettings::Instance().glTreeSplitRatio = ratio; RecalcLayout(); } else { @@ -852,7 +852,7 @@ CMainFrame *pMainFrm = CMainFrame::GetMainFrame(); if ((m_nTrackPos != (UINT)rect.Width()) && (pMainFrm)) { - CMainFrame::GetSettings().glTreeWindowWidth = m_nTrackPos - 3; + TrackerSettings::Instance().glTreeWindowWidth = m_nTrackPos - 3; m_sizeDefault.cx = m_nTrackPos; m_sizeDefault.cy = 32767; pMainFrm->RecalcLayout(); Modified: trunk/OpenMPT/mptrack/Mainfrm.h =================================================================== --- trunk/OpenMPT/mptrack/Mainfrm.h 2013-03-11 22:50:59 UTC (rev 1561) +++ trunk/OpenMPT/mptrack/Mainfrm.h 2013-03-12 01:41:35 UTC (rev 1562) @@ -129,91 +129,9 @@ #define QUALITY_EQ 0x80 -// User-defined colors -enum -{ - MODCOLOR_BACKNORMAL = 0, - MODCOLOR_TEXTNORMAL, - MODCOLOR_BACKCURROW, - MODCOLOR_TEXTCURROW, - MODCOLOR_BACKSELECTED, - MODCOLOR_TEXTSELECTED, - MODCOLOR_SAMPLE, - MODCOLOR_BACKPLAYCURSOR, - MODCOLOR_TEXTPLAYCURSOR, - MODCOLOR_BACKHILIGHT, - MODCOLOR_NOTE, - MODCOLOR_INSTRUMENT, - MODCOLOR_VOLUME, - MODCOLOR_PANNING, - MODCOLOR_PITCH, - MODCOLOR_GLOBALS, - MODCOLOR_ENVELOPES, - MODCOLOR_VUMETER_LO, - MODCOLOR_VUMETER_MED, - MODCOLOR_VUMETER_HI, - MODCOLOR_SEPSHADOW, - MODCOLOR_SEPFACE, - MODCOLOR_SEPHILITE, - MODCOLOR_BLENDCOLOR, - MODCOLOR_DODGY_COMMANDS, - MAX_MODCOLORS, - // Internal color codes (not saved to color preset files) - MODCOLOR_2NDHIGHLIGHT, - MODCOLOR_DEFAULTVOLUME, - MAX_MODPALETTECOLORS -}; - #define NUM_VUMETER_PENS 32 -// Pattern Setup (contains also non-pattern related settings) -// Feel free to replace the deprecated flags by new flags, but be sure to -// update TrackerSettings::LoadINISettings() / TrackerSettings::LoadRegistrySettings() as well. -#define PATTERN_PLAYNEWNOTE 0x01 // play new notes while recording -#define PATTERN_LARGECOMMENTS 0x02 // use large font in comments -#define PATTERN_STDHIGHLIGHT 0x04 // enable primary highlight (measures) -#define PATTERN_SMALLFONT 0x08 // use small font in pattern editor -#define PATTERN_CENTERROW 0x10 // always center active row -#define PATTERN_WRAP 0x20 // wrap around cursor i... [truncated message content] |