void CInstrumentEditorN163::SelectInstrument(int Instrument) { CInstrumentN163 *pInstrument = (CInstrumentN163*)GetDocument()->GetInstrument(Instrument); CListCtrl *pList = (CListCtrl*) GetDlgItem(IDC_INSTSETTINGS); if (m_pInstrument) m_pInstrument->Release(); m_pInstrument = NULL; // Update instrument setting list for (int i = 0; i < CInstrumentN163::SEQUENCE_COUNT; ++i) { CString IndexStr; IndexStr.Format(_T("%i"), pInstrument->GetSeqIndex(i)); pList->SetCheck(i, pInstrument->GetSeqEnable(i)); pList->SetItemText(i, 1, IndexStr); } // Setting text box SetDlgItemInt(IDC_SEQ_INDEX, pInstrument->GetSeqIndex(m_iSelectedSetting)); m_pInstrument = pInstrument; // Select new sequence SelectSequence(pInstrument->GetSeqIndex(m_iSelectedSetting), m_iSelectedSetting); }
void CInstrumentEditorN163::OnLvnItemchangedInstsettings(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR); CListCtrl *pList = (CListCtrl*)GetDlgItem(IDC_INSTSETTINGS); if (pNMLV->uChanged & LVIF_STATE && m_pInstrument != NULL) { // Selected new setting if (pNMLV->uNewState & LVNI_SELECTED || pNMLV->uNewState & LCTRL_CHECKBOX_STATE) { m_iSelectedSetting = pNMLV->iItem; int Sequence = m_pInstrument->GetSeqIndex(m_iSelectedSetting); SetDlgItemInt(IDC_SEQ_INDEX, Sequence); SelectSequence(Sequence, m_iSelectedSetting); pList->SetSelectionMark(m_iSelectedSetting); pList->SetItemState(m_iSelectedSetting, LVIS_SELECTED, LVIS_SELECTED); } // Changed checkbox switch(pNMLV->uNewState & LCTRL_CHECKBOX_STATE) { case LCTRL_CHECKBOX_CHECKED: m_pInstrument->SetSeqEnable(m_iSelectedSetting, 1); break; case LCTRL_CHECKBOX_UNCHECKED: m_pInstrument->SetSeqEnable(m_iSelectedSetting, 0); break; } } *pResult = 0; }
void CSequenceEditor::ChangedSetting() { // Called when the setting selector has changed SelectSequence(m_pSequence, m_iSelectedSetting, m_iInstrumentType); switch (m_iSelectedSetting) { case SEQ_ARPEGGIO: dynamic_cast<CArpeggioGraphEditor*>(m_pGraphEditor)->ChangeSetting(); break; } m_pSetting->RedrawWindow(); RedrawWindow(); }
void CInstrumentEditorVRC6::OnEnChangeSeqIndex() { // Selected sequence changed CListCtrl *pList = (CListCtrl*) GetDlgItem(IDC_INSTSETTINGS); int Index = GetDlgItemInt(IDC_SEQ_INDEX); if (Index < 0) Index = 0; if (Index > (MAX_SEQUENCES - 1)) Index = (MAX_SEQUENCES - 1); if (m_pInstrument) { // Update list CString Text; Text.Format(_T("%i"), Index); pList->SetItemText(m_iSelectedSetting, 1, Text); if (m_pInstrument->GetSeqIndex(m_iSelectedSetting) != Index) m_pInstrument->SetSeqIndex(m_iSelectedSetting, Index); SelectSequence(Index, m_iSelectedSetting); } }