From: <sag...@us...> - 2012-07-21 00:14:57
|
Revision: 1334 http://modplug.svn.sourceforge.net/modplug/?rev=1334&view=rev Author: saga-games Date: 2012-07-21 00:14:49 +0000 (Sat, 21 Jul 2012) Log Message: ----------- [Fix] Quick Channel Settings: Tab order is now correct. [New] Quick Channel Settings: Added freely assignable keyboard shortcuts for switching between channels and returning to the pattern editor. (Already added shortcuts to DE_jojo.mkb) [Imp] Order list: If playback is locked to some orders, those orders are now shown in grey. Modified Paths: -------------- trunk/OpenMPT/mptrack/CommandSet.cpp trunk/OpenMPT/mptrack/CommandSet.h trunk/OpenMPT/mptrack/Ctrl_seq.cpp trunk/OpenMPT/mptrack/KeyConfigDlg.cpp trunk/OpenMPT/mptrack/PatternEditorDialogs.cpp trunk/OpenMPT/mptrack/PatternEditorDialogs.h trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb Modified: trunk/OpenMPT/mptrack/CommandSet.cpp =================================================================== --- trunk/OpenMPT/mptrack/CommandSet.cpp 2012-07-20 18:46:14 UTC (rev 1333) +++ trunk/OpenMPT/mptrack/CommandSet.cpp 2012-07-21 00:14:49 UTC (rev 1334) @@ -630,6 +630,9 @@ DefineKeyCommand(kcOrderlistLockPlayback, 1875, _T("Lock Playback to Selection")); DefineKeyCommand(kcOrderlistUnlockPlayback, 1876, _T("Unlock Playback")); DefineKeyCommand(kcChannelSettings, 1877, _T("Quick Channel Settings")); + DefineKeyCommand(kcChnSettingsPrev, 1878, _T("Previous Channel")); + DefineKeyCommand(kcChnSettingsNext, 1879, _T("Next Channel")); + DefineKeyCommand(kcChnSettingsClose, 1880, _T("Switch to Pattern Editor")); // Add new key commands here. #ifdef _DEBUG @@ -1846,7 +1849,8 @@ case kCtxCtrlComments: return "Comments Context [top]"; case kCtxCtrlOrderlist: return "Orderlist"; case kCtxVSTGUI: return "Plugin GUI Context"; - case kCtxUnknownContext: + case kCtxChannelSettings: return "Quick Channel Settings Context"; + case kCtxUnknownContext: default: return "Unknown Context"; } }; @@ -2097,6 +2101,7 @@ m_isParentContext[kCtxCtrlComments][kCtxAllContexts] = true; m_isParentContext[kCtxCtrlSamples][kCtxAllContexts] = true; m_isParentContext[kCtxCtrlOrderlist][kCtxAllContexts] = true; + m_isParentContext[kCtxChannelSettings][kCtxAllContexts] = true; m_isParentContext[kCtxViewPatternsNote][kCtxViewPatterns] = true; m_isParentContext[kCtxViewPatternsIns][kCtxViewPatterns] = true; Modified: trunk/OpenMPT/mptrack/CommandSet.h =================================================================== --- trunk/OpenMPT/mptrack/CommandSet.h 2012-07-20 18:46:14 UTC (rev 1333) +++ trunk/OpenMPT/mptrack/CommandSet.h 2012-07-21 00:14:49 UTC (rev 1334) @@ -43,7 +43,8 @@ kCtxCtrlSamples, kCtxCtrlInstruments, kCtxCtrlComments, - kCtxCtrlOrderlist, + kCtxCtrlOrderlist, + kCtxChannelSettings, kCtxMaxInputContexts }; @@ -1081,6 +1082,12 @@ kcEndOrderlistLock = kcOrderlistUnlockPlayback, kcEndOrderlistCommands=kcEndOrderlistLock, + kcStartChnSettingsCommands, + kcChnSettingsPrev = kcStartChnSettingsCommands, + kcChnSettingsNext, + kcChnSettingsClose, + kcEndChnSettingsCommands = kcChnSettingsClose, + kcNumCommands, }; Modified: trunk/OpenMPT/mptrack/Ctrl_seq.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2012-07-20 18:46:14 UTC (rev 1333) +++ trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2012-07-21 00:14:49 UTC (rev 1334) @@ -809,20 +809,29 @@ maxEntries = Util::Max(maxEntries, pSndFile->Order.GetLengthTailTrimmed()); } - //Scrolling the shown orders(the showns rectangles)? + // Scrolling the shown orders(the showns rectangles)? while (rect.left < rcClient.right) { bool bHighLight = ((bFocus) && (nIndex >= selection.nOrdLo && nIndex <= selection.nOrdHi)); const PATTERNINDEX nPat = (nIndex < pSndFile->Order.GetLength()) ? pSndFile->Order[nIndex] : PATTERNINDEX_INVALID; if ((rect.right = rect.left + m_cxFont) > rcClient.right) rect.right = rcClient.right; rect.right--; - if (bHighLight) { + + if(bHighLight) + { + // Currently selected order item FillRect(dc.m_hDC, &rect, CMainFrame::brushHighLight); - } else { + } else if(nIndex >= pSndFile->m_lockOrderStart && nIndex <= pSndFile->m_lockOrderEnd) + { + // "Playback lock" indicator + FillRect(dc.m_hDC, &rect, CMainFrame::brushGray); + } else + { + // Normal, unselected item. FillRect(dc.m_hDC, &rect, CMainFrame::brushWindow); } - //Drawing the shown pattern-indicator or drag position. + // Drawing the shown pattern-indicator or drag position. if (nIndex == ((m_bDragging) ? m_nDropPos : m_nScrollPos)) { rect.InflateRect(-1, -1); @@ -832,18 +841,18 @@ MoveToEx(dc.m_hDC, rect.right, rect.top, NULL); LineTo(dc.m_hDC, rect.right, rect.bottom); - //Drawing the 'ctrl-transition' indicator + // Drawing the 'ctrl-transition' indicator if(nIndex == pSndFile->m_nSeqOverride - 1) { - MoveToEx(dc.m_hDC, rect.left+4, rect.bottom-4, NULL); - LineTo(dc.m_hDC, rect.right-4, rect.bottom-4); - } + MoveToEx(dc.m_hDC, rect.left + 4, rect.bottom - 4, NULL); + LineTo(dc.m_hDC, rect.right - 4, rect.bottom - 4); + } - //Drawing 'playing'-indicator. + // Drawing 'playing'-indicator. if(nIndex == pSndFile->GetCurrentOrder() && CMainFrame::GetMainFrame()->IsPlaying()) { - MoveToEx(dc.m_hDC, rect.left+4, rect.top+2, NULL); - LineTo(dc.m_hDC, rect.right-4, rect.top+2); + MoveToEx(dc.m_hDC, rect.left + 4, rect.top + 2, NULL); + LineTo(dc.m_hDC, rect.right - 4, rect.top + 2); } s[0] = '\0'; @@ -1558,6 +1567,7 @@ { pSndFile->m_lockOrderStart = selection.nOrdLo; pSndFile->m_lockOrderEnd = selection.nOrdHi; + InvalidateRect(NULL, FALSE); } } @@ -1567,4 +1577,5 @@ { CSoundFile *pSndFile = m_pModDoc->GetSoundFile(); pSndFile->m_lockOrderStart = pSndFile->m_lockOrderEnd = ORDERINDEX_INVALID; + InvalidateRect(NULL, FALSE); } \ No newline at end of file Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp =================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.cpp 2012-07-20 18:46:14 UTC (rev 1333) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.cpp 2012-07-21 00:14:49 UTC (rev 1334) @@ -243,6 +243,15 @@ } { + CommandCategory newCat(" Pattern Editor - Quick Channel Settings", kCtxChannelSettings); + + for(int c = kcStartChnSettingsCommands; c <= kcEndChnSettingsCommands; c++) + newCat.commands.Add(c); + + commandCategories.Add(newCat); + } + + { CommandCategory newCat(" Pattern Editor - General", kCtxViewPatterns); for(int c = kcStartPlainNavigate; c <= kcEndPlainNavigate; c++) Modified: trunk/OpenMPT/mptrack/PatternEditorDialogs.cpp =================================================================== --- trunk/OpenMPT/mptrack/PatternEditorDialogs.cpp 2012-07-20 18:46:14 UTC (rev 1333) +++ trunk/OpenMPT/mptrack/PatternEditorDialogs.cpp 2012-07-21 00:14:49 UTC (rev 1334) @@ -1618,6 +1618,7 @@ ON_COMMAND(IDC_CHECK2, OnSurroundChanged) ON_COMMAND(IDC_BUTTON1, OnPrevChannel) ON_COMMAND(IDC_BUTTON2, OnNextChannel) + ON_MESSAGE(WM_MOD_KEYCOMMAND, OnCustomKeyMsg) END_MESSAGE_MAP() @@ -1876,14 +1877,72 @@ void QuickChannelProperties::OnPrevChannel() //------------------------------------------ { - channel--; - UpdateDisplay(); + if(channel > 0) + { + channel--; + UpdateDisplay(); + } } void QuickChannelProperties::OnNextChannel() //------------------------------------------ { - channel++; - UpdateDisplay(); + if(channel < document->GetNumChannels() - 1) + { + channel++; + UpdateDisplay(); + } +} + + +BOOL QuickChannelProperties::PreTranslateMessage(MSG *pMsg) +//--------------------------------------------------------- +{ + if(pMsg) + { + //We handle keypresses before Windows has a chance to handle them (for alt etc..) + if((pMsg->message == WM_SYSKEYUP) || (pMsg->message == WM_KEYUP) || + (pMsg->message == WM_SYSKEYDOWN) || (pMsg->message == WM_KEYDOWN)) + { + CInputHandler* ih = (CMainFrame::GetMainFrame())->GetInputHandler(); + + //Translate message manually + UINT nChar = pMsg->wParam; + UINT nRepCnt = LOWORD(pMsg->lParam); + UINT nFlags = HIWORD(pMsg->lParam); + KeyEventType kT = ih->GetKeyEventType(nFlags); + + if(ih->KeyEvent(kCtxChannelSettings, nChar, nRepCnt, nFlags, kT, this) != kcNull) + { + return true; // Mapped to a command, no need to pass message on. + } + } + + } + + return CDialog::PreTranslateMessage(pMsg); +} + + +LRESULT QuickChannelProperties::OnCustomKeyMsg(WPARAM wParam, LPARAM) +//------------------------------------------------------------------- +{ + if (wParam == kcNull) + return 0; + + switch(wParam) + { + case kcChnSettingsPrev: + OnPrevChannel(); + return wParam; + case kcChnSettingsNext: + OnNextChannel(); + return wParam; + case kcChnSettingsClose: + OnActivate(WA_INACTIVE, nullptr, FALSE); + return wParam; + } + + return 0; } \ No newline at end of file Modified: trunk/OpenMPT/mptrack/PatternEditorDialogs.h =================================================================== --- trunk/OpenMPT/mptrack/PatternEditorDialogs.h 2012-07-20 18:46:14 UTC (rev 1333) +++ trunk/OpenMPT/mptrack/PatternEditorDialogs.h 2012-07-21 00:14:49 UTC (rev 1334) @@ -376,6 +376,9 @@ afx_msg void OnNameChanged(); afx_msg void OnPrevChannel(); afx_msg void OnNextChannel(); + afx_msg LRESULT OnCustomKeyMsg(WPARAM, LPARAM); + BOOL PreTranslateMessage(MSG *pMsg); + DECLARE_MESSAGE_MAP(); }; Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2012-07-20 18:46:14 UTC (rev 1333) +++ trunk/OpenMPT/mptrack/mptrack.rc 2012-07-21 00:14:49 UTC (rev 1334) @@ -227,20 +227,20 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN + CONTROL "Channel 1:",IDC_STATIC_CHANNEL_NAME,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,6,8,45,8 + EDITTEXT IDC_EDIT3,60,6,126,12,ES_AUTOHSCROLL + PUSHBUTTON "<<",IDC_BUTTON1,192,6,18,12 + PUSHBUTTON ">>",IDC_BUTTON2,216,6,18,12 + LTEXT "Initial Volume:",IDC_STATIC,6,30,45,8 + CONTROL "",IDC_SLIDER1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | WS_TABSTOP,54,24,92,22 EDITTEXT IDC_EDIT1,150,30,36,12,ES_NUMBER CONTROL "",IDC_SPIN1,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY,174,30,11,14 - CONTROL "",IDC_SLIDER1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | WS_TABSTOP,54,24,92,22 + CONTROL "Mute",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | WS_TABSTOP,192,30,42,12 + LTEXT "Initial Pan:",IDC_STATIC,6,54,34,8 + CONTROL "",IDC_SLIDER2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | WS_TABSTOP,54,48,92,22 EDITTEXT IDC_EDIT2,150,54,36,12,ES_NUMBER CONTROL "",IDC_SPIN2,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY,174,54,11,14 - CONTROL "",IDC_SLIDER2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | WS_TABSTOP,54,48,92,22 - CONTROL "Mute",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | WS_TABSTOP,192,30,42,12 CONTROL "Surround",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | WS_TABSTOP,192,54,42,12 - LTEXT "Initial Volume:",IDC_STATIC,6,30,45,8 - LTEXT "Initial Pan:",IDC_STATIC,6,54,34,8 - PUSHBUTTON "<<",IDC_BUTTON1,192,6,18,12 - PUSHBUTTON ">>",IDC_BUTTON2,216,6,18,12 - EDITTEXT IDC_EDIT3,60,6,126,12,ES_AUTOHSCROLL - CONTROL "Channel 1:",IDC_STATIC_CHANNEL_NAME,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,6,8,45,8 END Modified: trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb =================================================================== --- trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb 2012-07-20 18:46:14 UTC (rev 1333) +++ trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb 2012-07-21 00:14:49 UTC (rev 1334) @@ -385,3 +385,8 @@ 19:1854:0:32:1 //Stop (---) Index: LEER (KeyDown) 19:1875:2:76:1 //Lock Playback to Selection: Ctrl+L (KeyDown) 19:1876:2:85:1 //Unlock Playback: Ctrl+U (KeyDown) + +//----( Quick Channel Settings Context (20) )------------ +20:1878:2:8:5 //Previous Channel: Ctrl+R\xDCCK (KeyDown|KeyHold) +20:1879:0:13:5 //Next Channel: EINGABE (KeyDown|KeyHold) +20:1880:1:13:1 //Switch to Pattern Editor: Shift+EINGABE (KeyDown) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |