diff options
Diffstat (limited to 'src/EditBreakupAndTrillDlg.cpp')
-rw-r--r-- | src/EditBreakupAndTrillDlg.cpp | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/src/EditBreakupAndTrillDlg.cpp b/src/EditBreakupAndTrillDlg.cpp new file mode 100644 index 0000000..c7af825 --- /dev/null +++ b/src/EditBreakupAndTrillDlg.cpp @@ -0,0 +1,143 @@ +//******************************************************************************
+// MIDIシーケンサーソフト『世界樹』
+// 細分化とトリルダイアログクラス
+// (C)2002-2010 おーぷんMIDIぷろじぇくと/くず
+//******************************************************************************
+
+/* This library is free software; you can redistribute it and/or */
+/* modify it under the terms of the GNU Lesser General Public */
+/* License as published by the Free Software Foundation; either */
+/* version 2.1 of the License, or (at your option) any later version. */
+
+/* This library is distributed in the hope that it will be useful, */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */
+/* Lesser General Public License for more details. */
+
+/* You should have received a copy of the GNU Lesser General Public */
+/* License along with this library; if not, write to the Free Software */
+/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#include "winver.h"
+#include <afxwin.h>
+#include <afxcmn.h>
+#include "resource.h"
+#include "EditBreakupAndTrillDlg.h"
+
+#ifndef CLIP
+#define CLIP(A,B,C) ((B)<(A)?(A):((B)>(C)?(C):(B)))
+#endif
+
+// コンストラクタ
+CEditBreakupAndTrillDlg::CEditBreakupAndTrillDlg () : CDialog (CEditBreakupAndTrillDlg::IDD) {
+ m_lTimeMode = 0;
+ m_lTimeResolution = 0;
+ m_nDurationIndex = 0;
+ m_nEnableTrill = 0;
+ m_nKeyShift = 0;
+}
+
+// オペレーション
+BOOL CEditBreakupAndTrillDlg::FillDurationCombo () {
+ CComboBox* pDurationCombo = (CComboBox*)GetDlgItem (IDC_EDITBREAKUPANDTRILL_DURATION);
+ CString strTextLine;
+ CString strFormat;
+ if (m_lTimeMode == 0) {
+ VERIFY (strFormat.LoadString (IDS_D_4DIVNOTE));
+ strTextLine.Format (strFormat, m_lTimeResolution / 1);
+ pDurationCombo->AddString (strTextLine);
+ VERIFY (strFormat.LoadString (IDS_D_8DIVNOTE));
+ strTextLine.Format (strFormat, m_lTimeResolution / 2);
+ pDurationCombo->AddString (strTextLine);
+ VERIFY (strFormat.LoadString (IDS_D_12DIVNOTE));
+ strTextLine.Format (strFormat, m_lTimeResolution / 3);
+ pDurationCombo->AddString (strTextLine);
+ VERIFY (strFormat.LoadString (IDS_D_16DIVNOTE));
+ strTextLine.Format (strFormat, m_lTimeResolution / 4);
+ pDurationCombo->AddString (strTextLine);
+ VERIFY (strFormat.LoadString (IDS_D_24DIVNOTE));
+ strTextLine.Format (strFormat, m_lTimeResolution / 6);
+ pDurationCombo->AddString (strTextLine);
+ VERIFY (strFormat.LoadString (IDS_D_32DIVNOTE));
+ strTextLine.Format (strFormat, m_lTimeResolution / 8);
+ pDurationCombo->AddString (strTextLine);
+ VERIFY (strFormat.LoadString (IDS_D_48DIVNOTE));
+ strTextLine.Format (strFormat, m_lTimeResolution / 12);
+ pDurationCombo->AddString (strTextLine);
+ }
+ else {
+ VERIFY (strFormat.LoadString (IDS_D_1FRAME));
+ strTextLine.Format (strFormat, m_lTimeResolution / 1);
+ pDurationCombo->AddString (strTextLine);
+ VERIFY (strFormat.LoadString (IDS_D_2DIVFRAME));
+ strTextLine.Format (strFormat, m_lTimeResolution / 2);
+ pDurationCombo->AddString (strTextLine);
+ VERIFY (strFormat.LoadString (IDS_D_3DIVFRAME));
+ strTextLine.Format (strFormat, m_lTimeResolution / 3);
+ pDurationCombo->AddString (strTextLine);
+ VERIFY (strFormat.LoadString (IDS_D_4DIVFRAME));
+ strTextLine.Format (strFormat, m_lTimeResolution / 4);
+ pDurationCombo->AddString (strTextLine);
+ VERIFY (strFormat.LoadString (IDS_D_6DIVFRAME));
+ strTextLine.Format (strFormat, m_lTimeResolution / 6);
+ pDurationCombo->AddString (strTextLine);
+ VERIFY (strFormat.LoadString (IDS_D_8DIVFRAME));
+ strTextLine.Format (strFormat, m_lTimeResolution / 8);
+ pDurationCombo->AddString (strTextLine);
+ VERIFY (strFormat.LoadString (IDS_D_12DIVFRAME));
+ strTextLine.Format (strFormat, m_lTimeResolution / 12);
+ pDurationCombo->AddString (strTextLine);
+ }
+
+ return TRUE;
+}
+
+BOOL CEditBreakupAndTrillDlg::SetKeyShiftRange () {
+ ((CSpinButtonCtrl*)GetDlgItem (IDC_EDITBREAKUPANDTRILL_KEYSHIFTSP))->SetRange (-127, 127);
+ ((CSpinButtonCtrl*)GetDlgItem (IDC_EDITBREAKUPANDTRILL_KEYSHIFTSP))->SetPos (CLIP (-127, m_nKeyShift, 127));
+ return TRUE;
+}
+
+BOOL CEditBreakupAndTrillDlg::UpdateKeyShift () {
+ int nEnableTrill = ((CButton*)GetDlgItem (IDC_EDITBREAKUPANDTRILL_ENABLETRILL))->GetCheck ();
+ GetDlgItem (IDC_EDITBREAKUPANDTRILL_KEYSHIFT)->EnableWindow (nEnableTrill);
+ GetDlgItem (IDC_EDITBREAKUPANDTRILL_KEYSHIFTSP)->EnableWindow (nEnableTrill);
+ return TRUE;
+}
+
+
+// オーバーライド
+
+// データエクスチェンジ
+void CEditBreakupAndTrillDlg::DoDataExchange (CDataExchange* pDX) {
+ CDialog::DoDataExchange (pDX);
+ DDX_CBIndex (pDX, IDC_EDITBREAKUPANDTRILL_DURATION, m_nDurationIndex);
+ DDX_Check (pDX, IDC_EDITBREAKUPANDTRILL_ENABLETRILL, m_nEnableTrill);
+ DDX_Text (pDX, IDC_EDITBREAKUPANDTRILL_KEYSHIFT, m_nKeyShift);
+}
+
+
+BOOL CEditBreakupAndTrillDlg::OnInitDialog () {
+ FillDurationCombo ();
+ BOOL bRet = CDialog::OnInitDialog ();
+ UpdateKeyShift ();
+ SetKeyShiftRange ();
+ return bRet;
+}
+
+
+
+
+// メッセージマップ
+BEGIN_MESSAGE_MAP (CEditBreakupAndTrillDlg, CDialog)
+ ON_BN_CLICKED (IDC_EDITBREAKUPANDTRILL_ENABLETRILL, OnChangeEnableTrill)
+END_MESSAGE_MAP ()
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CEditBreakupAndTrillDlg メッセージ ハンドラ
+
+void CEditBreakupAndTrillDlg::OnChangeEnableTrill () {
+ UpdateKeyShift ();
+}
+
|