123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /*
- * MoveFXSlotDialog.h
- * ------------------
- * Purpose: Implementationof OpenMPT's move plugin dialog.
- * Notes : (currently none)
- * Authors: OpenMPT Devs
- * The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
- */
- #include "stdafx.h"
- #include "Mptrack.h"
- #include "MoveFXSlotDialog.h"
- OPENMPT_NAMESPACE_BEGIN
- void CMoveFXSlotDialog::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_COMBO1, m_CbnEmptySlots);
- }
- CMoveFXSlotDialog::CMoveFXSlotDialog(CWnd *pParent, PLUGINDEX currentSlot, const std::vector<PLUGINDEX> &emptySlots, PLUGINDEX defaultIndex, bool clone, bool hasChain) :
- CDialog(CMoveFXSlotDialog::IDD, pParent),
- m_EmptySlots(emptySlots),
- m_nDefaultSlot(defaultIndex),
- moveChain(hasChain)
- {
- if(clone)
- {
- m_csPrompt.Format(_T("Clone plugin in slot %d to the following empty slot:"), currentSlot + 1);
- m_csTitle = _T("Clone To Slot...");
- m_csChain = _T("&Clone follow-up plugin chain if possible");
- } else
- {
- m_csPrompt.Format(_T("Move plugin in slot %d to the following empty slot:"), currentSlot + 1);
- m_csTitle = _T("Move To Slot...");
- m_csChain = _T("&Move follow-up plugin chain if possible");
- }
- }
- BOOL CMoveFXSlotDialog::OnInitDialog()
- {
- CDialog::OnInitDialog();
- SetDlgItemText(IDC_STATIC1, m_csPrompt);
- SetDlgItemText(IDC_CHECK1, m_csChain);
- SetWindowText(m_csTitle);
- if(m_EmptySlots.empty())
- {
- Reporting::Error("No empty plugin slots are availabe.");
- OnCancel();
- return TRUE;
- }
- CString slotText;
- std::size_t defaultSlot = 0;
- bool foundDefault = false;
- for(size_t nSlot = 0; nSlot < m_EmptySlots.size(); nSlot++)
- {
- slotText.Format(_T("FX%d"), m_EmptySlots[nSlot] + 1);
- m_CbnEmptySlots.SetItemData(m_CbnEmptySlots.AddString(slotText), nSlot);
- if(m_EmptySlots[nSlot] >= m_nDefaultSlot && !foundDefault)
- {
- defaultSlot = nSlot;
- foundDefault = true;
- }
- }
- m_CbnEmptySlots.SetCurSel(static_cast<int>(defaultSlot));
- GetDlgItem(IDC_CHECK1)->EnableWindow(moveChain ? TRUE : FALSE);
- CheckDlgButton(IDC_CHECK1, moveChain ? BST_CHECKED : BST_UNCHECKED);
- return TRUE;
- }
- void CMoveFXSlotDialog::OnOK()
- {
- m_nToSlot = m_CbnEmptySlots.GetItemData(m_CbnEmptySlots.GetCurSel());
- moveChain = IsDlgButtonChecked(IDC_CHECK1) != BST_UNCHECKED;
- CDialog::OnOK();
- }
- OPENMPT_NAMESPACE_END
|