From: <sag...@us...> - 2009-10-02 16:47:41
|
Revision: 384 http://modplug.svn.sourceforge.net/modplug/?rev=384&view=rev Author: saga-games Date: 2009-10-02 15:49:41 +0000 (Fri, 02 Oct 2009) Log Message: ----------- [Imp] Tree view: Show sequences in song treeview. Still slightly buggy, e.g. when removing everything but one sequence or when adding a sequence when there's only one sequence. [Mod] Pattern editor: Slight redesign of the pattern control area [Ref] Some minor internal changes Modified Paths: -------------- trunk/OpenMPT/mptrack/Ctrl_pat.cpp trunk/OpenMPT/mptrack/Mainfrm.h trunk/OpenMPT/mptrack/Modedit.cpp trunk/OpenMPT/mptrack/View_tre.cpp trunk/OpenMPT/mptrack/View_tre.h trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/resource.h Modified: trunk/OpenMPT/mptrack/Ctrl_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2009-09-29 23:13:53 UTC (rev 383) +++ trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2009-10-02 15:49:41 UTC (rev 384) @@ -296,6 +296,7 @@ ::EnableWindow(::GetDlgItem(m_hWnd, IDC_PATINSTROPLUGGUI2), false); // Show/hide multisequence controls according the current modtype. + GetDlgItem(IDC_STATIC_SEQUENCE_NAME_FRAME)->ShowWindow( (m_pSndFile->GetType() == MOD_TYPE_MPT) ? SW_SHOW : SW_HIDE); GetDlgItem(IDC_STATIC_SEQUENCE_NAME)->ShowWindow( (m_pSndFile->GetType() == MOD_TYPE_MPT) ? SW_SHOW : SW_HIDE); GetDlgItem(IDC_EDIT_SEQUENCE_NAME)->ShowWindow( (m_pSndFile->GetType() == MOD_TYPE_MPT) ? SW_SHOW : SW_HIDE); } @@ -608,6 +609,7 @@ if (pSndFile) { lParam &= 0x7FFF; + m_OrderList.OnSelectSequence(pSndFile->Order.GetCurrentSequenceIndex()); // new sequence already set in view_tre.cpp, GetModItem() m_OrderList.SetCurSel((ORDERINDEX)lParam); SetCurrentPattern(pSndFile->Order[lParam]); } Modified: trunk/OpenMPT/mptrack/Mainfrm.h =================================================================== --- trunk/OpenMPT/mptrack/Mainfrm.h 2009-09-29 23:13:53 UTC (rev 383) +++ trunk/OpenMPT/mptrack/Mainfrm.h 2009-10-02 15:49:41 UTC (rev 384) @@ -326,7 +326,9 @@ { DWORD dwType; DWORD dwLatency; - UINT nOrder, nPattern, nRow; // Always valid + ORDERINDEX nOrder; // Always valid + PATTERNINDEX nPattern; // dito + ROWINDEX nRow; // dito DWORD dwPos[MAX_CHANNELS]; // sample/envelope pos for each channel if >= 0 } MPTNOTIFICATION, *PMPTNOTIFICATION; Modified: trunk/OpenMPT/mptrack/Modedit.cpp =================================================================== --- trunk/OpenMPT/mptrack/Modedit.cpp 2009-09-29 23:13:53 UTC (rev 383) +++ trunk/OpenMPT/mptrack/Modedit.cpp 2009-10-02 15:49:41 UTC (rev 384) @@ -1736,9 +1736,9 @@ PATTERNINDEX CModDoc::InsertPattern(ORDERINDEX nOrd, ROWINDEX nRows) //------------------------------------------------------------------ { - const int i = m_SndFile.Patterns.Insert(nRows); - if(i < 0) - return PATTERNINDEX_INVALID; + const PATTERNINDEX i = m_SndFile.Patterns.Insert(nRows); + if(i == PATTERNINDEX_INVALID) + return i; //Increasing orderlist size if given order is beyond current limit, //or if the last order already has a pattern. Modified: trunk/OpenMPT/mptrack/View_tre.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_tre.cpp 2009-09-29 23:13:53 UTC (rev 383) +++ trunk/OpenMPT/mptrack/View_tre.cpp 2009-10-02 15:49:41 UTC (rev 384) @@ -296,7 +296,8 @@ if (pInfo) { pInfo->pModDoc = pModDoc; - pInfo->nOrdSel = (UINT)-1; + pInfo->nSeqSel = SEQUENCEINDEX_INVALID; + pInfo->nOrdSel = ORDERINDEX_INVALID; DocInfo[nNewNdx] = pInfo; UpdateView(nNewNdx, HINT_MODTYPE); if (pInfo->hSong) @@ -688,62 +689,114 @@ if ((pInfo->hOrders) && (hintFlagPart != HINT_INSNAMES) && (hintFlagPart != HINT_SMPNAMES)) { const DWORD nPat = (lHint >> HINT_SHIFT_PAT); - // If there are items past the new sequence length, delete them. - for(size_t i = pSndFile->Order.GetLength(); i < pInfo->tiOrders.size(); i++) if (pInfo->tiOrders[i]) - {DeleteItem(pInfo->tiOrders[i]); pInfo->tiOrders[i] = NULL;} - if (pInfo->tiOrders.size() < pSndFile->Order.GetLength()) // Resize tiOrders if needed. - pInfo->tiOrders.resize(pSndFile->Order.GetLength(), NULL); - UINT imin=0, imax = pSndFile->Order.GetLastIndex(); - const bool patNamesOnly = (hintFlagPart == HINT_PATNAMES); - //if (hintFlagPart == HINT_PATNAMES) && (dwHintParam < pSndFile->Order.size())) imin = imax = dwHintParam; - BOOL bEnded = FALSE; - for (UINT iOrd=imin; iOrd<=imax; iOrd++) + // If there are too many sequences, delete them. + for(size_t nSeq = pSndFile->Order.GetNumSequences(); nSeq < pInfo->tiSequences.size(); nSeq++) if (pInfo->tiSequences[nSeq]) { - if (pSndFile->Order[iOrd] == pSndFile->Order.GetInvalidPatIndex()) bEnded = TRUE; - if (bEnded) + for(size_t nOrd = 0; nOrd < pInfo->tiOrders[nSeq].size(); nOrd++) if (pInfo->tiOrders[nSeq][nOrd]) { - if (pInfo->tiOrders[iOrd]) + DeleteItem(pInfo->tiOrders[nSeq][nOrd]); pInfo->tiOrders[nSeq][nOrd] = NULL; + } + DeleteItem(pInfo->tiSequences[nSeq]); pInfo->tiSequences[nSeq] = NULL; + } + if (pInfo->tiSequences.size() < pSndFile->Order.GetNumSequences()) // Resize tiSequences if needed. + { + pInfo->tiSequences.resize(pSndFile->Order.GetNumSequences(), NULL); + pInfo->tiOrders.resize(pSndFile->Order.GetNumSequences()); + } + + /* // number of sequences changed: wipe tree first (is this necessary?) + if(pInfo->tiOrders.size() != pSndFile->Order.GetNumSequences()) + { + for(size_t nSeq = 0; nSeq < pInfo->tiOrders.size(); nSeq++) + { + for(size_t nOrd = 0; nOrd < pInfo->tiOrders[nSeq].size(); nOrd++) if (pInfo->tiOrders[nSeq][nOrd]) { - DeleteItem(pInfo->tiOrders[iOrd]); - pInfo->tiOrders[iOrd] = NULL; + DeleteItem(pInfo->tiOrders[nSeq][nOrd]); pInfo->tiOrders[nSeq][nOrd] = NULL; } - } else + DeleteItem(pInfo->tiSequences[nSeq]); pInfo->tiSequences[nSeq] = NULL; + } + pInfo->tiOrders.resize(pSndFile->Order.GetNumSequences()); + pInfo->tiSequences.resize(pSndFile->Order.GetNumSequences(), NULL); + }*/ + + HTREEITEM hAncestorNode = pInfo->hOrders; + + // go through all sequences + for(SEQUENCEINDEX nSeq = 0; nSeq < pSndFile->Order.GetNumSequences(); nSeq++) + { + // TODO update sequence names + if(pSndFile->Order.GetNumSequences() > 1) { - if(patNamesOnly && pSndFile->Order[iOrd] != nPat) - continue; - UINT state = (iOrd == pInfo->nOrdSel) ? TVIS_BOLD : 0; - if (pSndFile->Order[iOrd] < pSndFile->Patterns.Size()) + // more than one sequence -> add folder + if(pInfo->tiSequences[nSeq] == NULL) { - stmp[0] = 0; - pSndFile->GetPatternName(pSndFile->Order[iOrd], stmp, sizeof(stmp)); - if (stmp[0]) + CString sSeqName = pSndFile->Order.GetSequence(nSeq).m_sName; + if(sSeqName.IsEmpty()) sSeqName.Format("Sequence %d", nSeq); + pInfo->tiSequences[nSeq] = InsertItem(sSeqName, IMAGE_FOLDER, IMAGE_FOLDER, pInfo->hOrders, TVI_LAST); + } + hAncestorNode = pInfo->tiSequences[nSeq]; + } + + // If there are items past the new sequence length, delete them. + for(size_t nOrd = pSndFile->Order.GetSequence(nSeq).GetLength(); nOrd < pInfo->tiOrders[nSeq].size(); nOrd++) if (pInfo->tiOrders[nSeq][nOrd]) + { + DeleteItem(pInfo->tiOrders[nSeq][nOrd]); pInfo->tiOrders[nSeq][nOrd] = NULL; + } + if (pInfo->tiOrders[nSeq].size() < pSndFile->Order.GetSequence(nSeq).GetLength()) // Resize tiOrders if needed. + pInfo->tiOrders[nSeq].resize(pSndFile->Order.GetSequence(nSeq).GetLength(), NULL); + UINT imin = 0, imax = pSndFile->Order.GetSequence(nSeq).GetLastIndex(); + const bool patNamesOnly = (hintFlagPart == HINT_PATNAMES); + + //if (hintFlagPart == HINT_PATNAMES) && (dwHintParam < pSndFile->Order.size())) imin = imax = dwHintParam; + bool bEnded = false; + for (UINT iOrd=imin; iOrd<=imax; iOrd++) + { + if (pSndFile->Order.GetSequence(nSeq)[iOrd] == pSndFile->Order.GetInvalidPatIndex()) bEnded = true; + if (bEnded) + { + if (pInfo->tiOrders[nSeq][iOrd]) { - wsprintf(s, (CMainFrame::m_dwPatternSetup & PATTERN_HEXDISPLAY) ? "[%02Xh] %d: %s" : "[%02d] %d: %s", - iOrd, pSndFile->Order[iOrd], stmp); + DeleteItem(pInfo->tiOrders[nSeq][iOrd]); + pInfo->tiOrders[nSeq][iOrd] = NULL; + } + } else + { + if(patNamesOnly && pSndFile->Order.GetSequence(nSeq)[iOrd] != nPat) + continue; + UINT state = (iOrd == pInfo->nOrdSel && nSeq == pInfo->nSeqSel) ? TVIS_BOLD : 0; + if (pSndFile->Order.GetSequence(nSeq)[iOrd] < pSndFile->Patterns.Size()) + { + stmp[0] = 0; + pSndFile->GetPatternName(pSndFile->Order.GetSequence(nSeq)[iOrd], stmp, sizeof(stmp)); + if (stmp[0]) + { + wsprintf(s, (CMainFrame::m_dwPatternSetup & PATTERN_HEXDISPLAY) ? "[%02Xh] %d: %s" : "[%02d] %d: %s", + iOrd, pSndFile->Order.GetSequence(nSeq)[iOrd], stmp); + } else + { + wsprintf(s, (CMainFrame::m_dwPatternSetup & PATTERN_HEXDISPLAY) ? "[%02Xh] Pattern %d" : "[%02d] Pattern %d", + iOrd, pSndFile->Order.GetSequence(nSeq)[iOrd]); + } } else { - wsprintf(s, (CMainFrame::m_dwPatternSetup & PATTERN_HEXDISPLAY) ? "[%02Xh] Pattern %d" : "[%02d] Pattern %d", - iOrd, pSndFile->Order[iOrd]); + wsprintf(s, "[%02d] Skip", iOrd); } - } else - { - wsprintf(s, "[%02d] Skip", iOrd); + if (pInfo->tiOrders[nSeq][iOrd]) + { + tvi.mask = TVIF_TEXT | TVIF_HANDLE | TVIF_STATE; + tvi.state = 0; + tvi.stateMask = TVIS_BOLD; + tvi.hItem = pInfo->tiOrders[nSeq][iOrd]; + tvi.pszText = stmp; + tvi.cchTextMax = sizeof(stmp); + GetItem(&tvi); + if ((strcmp(s, stmp)) || (tvi.state != state)) + SetItem(pInfo->tiOrders[nSeq][iOrd], TVIF_TEXT | TVIF_STATE, s, 0, 0, state, TVIS_BOLD, 0); + } else + { + pInfo->tiOrders[nSeq][iOrd] = InsertItem(s, IMAGE_PARTITION, IMAGE_PARTITION, hAncestorNode, TVI_LAST); + } } - if (pInfo->tiOrders[iOrd]) - { - tvi.mask = TVIF_TEXT | TVIF_HANDLE | TVIF_STATE; - tvi.state = 0; - tvi.stateMask = TVIS_BOLD; - tvi.hItem = pInfo->tiOrders[iOrd]; - tvi.pszText = stmp; - tvi.cchTextMax = sizeof(stmp); - GetItem(&tvi); - if ((strcmp(s, stmp)) || (tvi.state != state)) - SetItem(pInfo->tiOrders[iOrd], TVIF_TEXT | TVIF_STATE, s, 0, 0, state, TVIS_BOLD, 0); - } else - { - pInfo->tiOrders[iOrd] = InsertItem(s, IMAGE_PARTITION, IMAGE_PARTITION, pInfo->hOrders, TVI_LAST); - } } } } @@ -899,7 +952,7 @@ //----------------------------------------- { LPARAM lParam; - HTREEITEM hItemParent, hRootParent; + HTREEITEM hItemParent, hItemParentParent, hRootParent; if (!hItem) return 0; // First, test root items @@ -908,9 +961,10 @@ // Test DLS Banks lParam = GetItemData(hItem); hItemParent = GetParentItem(hItem); + hItemParentParent = GetParentItem(hItemParent); hRootParent = hItemParent; CModDoc *pModDoc = GetDocumentFromItem(hItem); - CSoundFile *pSndFile = pModDoc ? pModDoc->GetSoundFile() : NULL; + CSoundFile *pSndFile = pModDoc ? pModDoc->GetSoundFile() : nullptr; if ((hRootParent != NULL) && (m_pDataTree)) { HTREEITEM h; @@ -971,13 +1025,29 @@ if (hItem == pSong->hSamples) return MODITEM_HDR_SAMPLES; if (hItem == pSong->hInstruments) return MODITEM_HDR_INSTRUMENTS; if (hItem == pSong->hComments) return MODITEM_COMMENTS; - // Order List ? - if (hItemParent == pSong->hOrders) + // Order List? (either "order list" or "sequence x" item as parent) + if ((hItemParent == pSong->hOrders && pSong->tiSequences.size() == 1) || (hItemParentParent == pSong->hOrders)) { - ASSERT(pSong->tiOrders.size() == pSndFile->Order.size()); - for (UINT i=0; i<pSong->tiOrders.size(); i++) + // find sequence this item belongs to + for(SEQUENCEINDEX nSeq = 0; nSeq < pSong->tiOrders.size(); nSeq++) { - if (hItem == pSong->tiOrders[i]) return (MODITEM_ORDER | (i << 16)); + ASSERT(pSong->tiOrders[nSeq].size() == pSndFile->Order.size()); + for(ORDERINDEX nOrd = 0; nOrd < pSong->tiOrders[nSeq].size(); nOrd++) + { + if (hItem == pSong->tiOrders[nSeq][nOrd]) + { + if(pSong->pModDoc->GetSoundFile() != nullptr) + { + pSong->pModDoc->GetSoundFile()->Order.SetSequence(nSeq); + // TODO this is buggy + //OnSelectSequence must be called? Or send a message? + } + //if(nSeq != pSong->nSeqSel) // sequence change + // return (MODITEM_ORDER_SEQUENCE | (nOrd << 16)); + //else // same sequence + return (MODITEM_ORDER | (nOrd << 16)); + } + } } } // Pattern ? @@ -1568,7 +1638,13 @@ || (!lstrcmpi(s, ".dmf")) || (!lstrcmpi(s, ".mt2")) || (!lstrcmpi(s, ".med")) - || (!lstrcmpi(s, ".wow"))))) + || (!lstrcmpi(s, ".wow")) + || (!lstrcmpi(s, ".gdm")) + || (!lstrcmpi(s, ".imf")) +#ifndef NO_MO3_SUPPORT + || (!lstrcmpi(s, ".mo3")) +#endif + ))) { if (m_pDataTree) { @@ -1910,10 +1986,12 @@ { for (UINT i=0; i<MODTREE_MAX_DOCUMENTS; i++) if ((DocInfo[i]) && (DocInfo[i]->pModDoc == pModDoc)) { - UINT nNewOrd = (pNotify) ? pNotify->nOrder : (UINT)-1; - if (nNewOrd != DocInfo[i]->nOrdSel) + ORDERINDEX nNewOrd = (pNotify) ? pNotify->nOrder : ORDERINDEX_INVALID; + SEQUENCEINDEX nNewSeq = (pModDoc->GetSoundFile() != nullptr) ? pModDoc->GetSoundFile()->Order.GetCurrentSequenceIndex() : SEQUENCEINDEX_INVALID; + if (nNewOrd != DocInfo[i]->nOrdSel || nNewSeq != DocInfo[i]->nSeqSel) { DocInfo[i]->nOrdSel = nNewOrd; + DocInfo[i]->nSeqSel = nNewSeq; UpdateView(i, HINT_MODSEQUENCE); } break; Modified: trunk/OpenMPT/mptrack/View_tre.h =================================================================== --- trunk/OpenMPT/mptrack/View_tre.h 2009-09-29 23:13:53 UTC (rev 383) +++ trunk/OpenMPT/mptrack/View_tre.h 2009-10-02 15:49:41 UTC (rev 384) @@ -44,24 +44,32 @@ struct MODTREEDOCINFO { CModDoc *pModDoc; - UINT nOrdSel; + SEQUENCEINDEX nSeqSel; + ORDERINDEX nOrdSel; HTREEITEM hSong, hPatterns, hSamples, hInstruments, hComments, hOrders, hEffects; vector<HTREEITEM> tiPatterns; HTREEITEM tiSamples[MAX_SAMPLES]; HTREEITEM tiInstruments[MAX_INSTRUMENTS]; - vector<HTREEITEM> tiOrders; + vector<vector<HTREEITEM>> tiOrders; + vector<HTREEITEM> tiSequences; HTREEITEM tiEffects[MAX_MIXPLUGINS]; MODTREEDOCINFO(const CSoundFile* const pSndFile) { pModDoc = NULL; - nOrdSel = 0; + nSeqSel = SEQUENCEINDEX_INVALID; + nOrdSel = ORDERINDEX_INVALID; hSong = hPatterns = hSamples = hInstruments = hComments = hOrders = hEffects = NULL; if(pSndFile != NULL) { tiPatterns.resize(pSndFile->Patterns.Size(), NULL); - tiOrders.resize(pSndFile->Order.GetLength(), NULL); + tiOrders.resize(pSndFile->Order.GetNumSequences()); + for(SEQUENCEINDEX i = 0; i < tiOrders.size(); i++) + { + //tiOrders[i].resize(pSndFile->Order.GetSequence(i)->GetLength(), NULL); + } + tiSequences.resize(pSndFile->Order.GetNumSequences(), NULL); } memset(tiSamples, 0, sizeof(tiSamples)); memset(tiInstruments, 0, sizeof(tiInstruments)); Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2009-09-29 23:13:53 UTC (rev 383) +++ trunk/OpenMPT/mptrack/mptrack.rc 2009-10-02 15:49:41 UTC (rev 384) @@ -13,7 +13,7 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// German (Germany) resources +// Deutsch (Deutschland) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) #ifdef _WIN32 @@ -55,12 +55,12 @@ END #endif // APSTUDIO_INVOKED -#endif // German (Germany) resources +#endif // Deutsch (Deutschland) resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources +// Englisch (USA) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 @@ -351,40 +351,41 @@ LTEXT "Song Message:",IDC_STATIC,4,2,76,8 END -IDD_CONTROL_PATTERNS DIALOGEX 0, 0, 585, 156 +IDD_CONTROL_PATTERNS DIALOGEX 0, 0, 585, 114 STYLE DS_SETFONT | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN - CONTROL "Follow Song",IDC_PATTERN_FOLLOWSONG,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT | BS_FLAT,432,34,55,10 - COMBOBOX IDC_COMBO_INSTRUMENT,22,74,95,137,CBS_DROPDOWNLIST | WS_VSCROLL - CTEXT "Row spacing",IDC_STATIC,172,32,54,12,SS_CENTERIMAGE,WS_EX_STATICEDGE - EDITTEXT IDC_EDIT_SPACING,225,32,28,12,ES_AUTOHSCROLL | ES_NUMBER | NOT WS_TABSTOP - CONTROL "Spin1",IDC_SPIN_SPACING,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,245,32,11,11 - PUSHBUTTON "<<",IDC_BUTTON2,2,99,14,15,NOT WS_TABSTOP,WS_EX_STATICEDGE - PUSHBUTTON ">>",IDC_BUTTON1,14,99,14,15,NOT WS_TABSTOP,WS_EX_STATICEDGE - CTEXT "Pattern name",IDC_STATIC,9,32,52,12,SS_CENTERIMAGE,WS_EX_STATICEDGE - EDITTEXT IDC_EDIT_PATTERNNAME,60,32,107,12,ES_AUTOHSCROLL + CONTROL "Follow Song",IDC_PATTERN_FOLLOWSONG,"Button",BS_AUTOCHECKBOX | BS_FLAT,321,31,55,10 + COMBOBOX IDC_COMBO_INSTRUMENT,19,61,96,137,CBS_DROPDOWNLIST | WS_VSCROLL + CTEXT "Row spacing",IDC_STATIC,171,32,42,8,SS_CENTERIMAGE + EDITTEXT IDC_EDIT_SPACING,219,30,28,12,ES_AUTOHSCROLL | ES_NUMBER | NOT WS_TABSTOP + CONTROL "Spin1",IDC_SPIN_SPACING,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,239,30,11,11 + PUSHBUTTON "<<",IDC_BUTTON2,3,84,14,15,NOT WS_TABSTOP,WS_EX_STATICEDGE + PUSHBUTTON ">>",IDC_BUTTON1,15,84,14,15,NOT WS_TABSTOP,WS_EX_STATICEDGE + CTEXT "Pattern name",IDC_STATIC,9,32,43,8,SS_CENTERIMAGE + EDITTEXT IDC_EDIT_PATTERNNAME,57,30,107,12,ES_AUTOHSCROLL CONTROL "Toolbar1",IDC_TOOLBAR1,"ToolbarWindow32",WS_GROUP | 0x4d,2,4,372,18 - CONTROL "Spin1",IDC_SPIN_INSTRUMENT,"msctls_updown32",0x0,9,74,9,12 - COMBOBOX IDC_COMBO_SPLITINSTRUMENT,209,74,95,125,CBS_DROPDOWNLIST | WS_VSCROLL - COMBOBOX IDC_COMBO_SPLITNOTE,173,74,32,137,CBS_DROPDOWNLIST | WS_VSCROLL - LTEXT "Note",IDC_STATIC,173,65,35,8 - LTEXT "Instrument",IDC_STATIC,209,65,58,8 - CONTROL "Transpose",IDC_PATTERN_OCTAVELINK,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT | BS_FLAT,438,76,49,10 - COMBOBOX IDC_COMBO_OCTAVEMODIFIER,382,74,52,137,CBS_DROPDOWNLIST | WS_VSCROLL - COMBOBOX IDC_COMBO_SPLITVOLUME,342,74,36,146,CBS_DROPDOWNLIST | WS_VSCROLL - LTEXT "Volume",IDC_STATIC,342,65,25,8 - PUSHBUTTON "Plugin",IDC_PATINSTROPLUGGUI,122,74,33,13,0,WS_EX_STATICEDGE - PUSHBUTTON "Plugin",IDC_PATINSTROPLUGGUI2,308,74,30,13,0,WS_EX_STATICEDGE - GROUPBOX "Main instrument",IDC_STATIC,2,53,160,40 - GROUPBOX "Keyboard Split",IDC_STATIC,167,53,328,40 - LTEXT "Octave shift",IDC_STATIC,382,65,52,8 - GROUPBOX "",IDC_STATIC,2,22,493,27 - CONTROL "Loop Pattern",IDC_PATTERN_LOOP,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT | BS_FLAT | WS_TABSTOP,370,34,55,10 - EDITTEXT IDC_EDIT_ORDERLIST_MARGINS,2,113,28,12,ES_AUTOHSCROLL | ES_READONLY - CONTROL "",IDC_SPIN_ORDERLIST_MARGINS,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,15,118,11,11 - EDITTEXT IDC_EDIT_SEQUENCE_NAME,317,32,47,12,ES_AUTOHSCROLL - CTEXT "Sequence name",IDC_STATIC_SEQUENCE_NAME,261,32,55,12,SS_CENTERIMAGE,WS_EX_STATICEDGE + CONTROL "Spin1",IDC_SPIN_INSTRUMENT,"msctls_updown32",0x0,7,61,11,12 + COMBOBOX IDC_COMBO_SPLITINSTRUMENT,243,60,96,125,CBS_DROPDOWNLIST | WS_VSCROLL + COMBOBOX IDC_COMBO_SPLITNOTE,189,60,32,137,CBS_DROPDOWNLIST | WS_VSCROLL + LTEXT "Note",IDC_STATIC,171,62,16,8 + LTEXT "Instr.",IDC_STATIC,225,62,16,8 + CONTROL "Transpose",IDC_PATTERN_OCTAVELINK,"Button",BS_AUTOCHECKBOX | BS_FLAT,513,61,49,10 + COMBOBOX IDC_COMBO_OCTAVEMODIFIER,465,60,44,137,CBS_DROPDOWNLIST | WS_VSCROLL + COMBOBOX IDC_COMBO_SPLITVOLUME,399,60,30,146,CBS_DROPDOWNLIST | WS_VSCROLL + LTEXT "Vol.",IDC_STATIC,381,62,13,8 + PUSHBUTTON "Plugin",IDC_PATINSTROPLUGGUI,121,61,33,13,0,WS_EX_STATICEDGE + PUSHBUTTON "Plugin",IDC_PATINSTROPLUGGUI2,345,60,30,13,0,WS_EX_STATICEDGE + GROUPBOX "Main instrument",IDC_STATIC,3,48,154,30 + GROUPBOX "Keyboard Split",IDC_STATIC,165,48,402,30 + LTEXT "Oct. shift",IDC_STATIC,435,62,29,8 + GROUPBOX "",IDC_STATIC,3,22,376,24 + CONTROL "Loop Pattern",IDC_PATTERN_LOOP,"Button",BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,261,31,57,10 + EDITTEXT IDC_EDIT_ORDERLIST_MARGINS,3,98,28,12,ES_AUTOHSCROLL | ES_READONLY + CONTROL "",IDC_SPIN_ORDERLIST_MARGINS,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,16,103,11,11 + EDITTEXT IDC_EDIT_SEQUENCE_NAME,453,30,108,12,ES_AUTOHSCROLL + CTEXT "Sequence name",IDC_STATIC_SEQUENCE_NAME,393,32,53,8,SS_CENTERIMAGE + GROUPBOX "",IDC_STATIC_SEQUENCE_NAME_FRAME,387,22,180,24 END IDD_CONTROL_SAMPLES DIALOGEX 0, 0, 544, 106 @@ -1428,7 +1429,7 @@ RIGHTMARGIN, 573 VERTGUIDE, 39 VERTGUIDE, 134 - BOTTOMMARGIN, 146 + BOTTOMMARGIN, 104 HORZGUIDE, 37 HORZGUIDE, 61 HORZGUIDE, 73 @@ -2218,12 +2219,12 @@ "Removing unused patterns is not available when using multiple sequences." END -#endif // English (U.S.) resources +#endif // Englisch (USA) resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// -// English (U.K.) resources +// Englisch (GB) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) #ifdef _WIN32 @@ -2592,7 +2593,7 @@ // IDR_BUILTIN_TUNINGS TUNING "res\\built-inTunings.tc" -#endif // English (U.K.) resources +#endif // Englisch (GB) resources ///////////////////////////////////////////////////////////////////////////// Modified: trunk/OpenMPT/mptrack/resource.h =================================================================== --- trunk/OpenMPT/mptrack/resource.h 2009-09-29 23:13:53 UTC (rev 383) +++ trunk/OpenMPT/mptrack/resource.h 2009-10-02 15:49:41 UTC (rev 384) @@ -889,6 +889,7 @@ #define IDC_SAVE_COLORSCHEME 2388 #define IDC_EDIT_SEQUENCE_NAME 2389 #define IDC_STATIC_SEQUENCE_NAME 2390 +#define IDC_STATIC_SEQUENCE_NAME_FRAME 2391 #define ID_FILE_NEWMOD 32771 #define ID_FILE_NEWXM 32772 #define ID_FILE_NEWS3M 32773 @@ -1132,7 +1133,7 @@ #define _APS_3D_CONTROLS 1 #define _APS_NEXT_RESOURCE_VALUE 521 #define _APS_NEXT_COMMAND_VALUE 59230 -#define _APS_NEXT_CONTROL_VALUE 2391 +#define _APS_NEXT_CONTROL_VALUE 2392 #define _APS_NEXT_SYMED_VALUE 901 #endif #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |