Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
|
@ -0,0 +1,222 @@
|
|||
/*
|
||||
* PatternEditorDialogs.h
|
||||
* ----------------------
|
||||
* Purpose: Code for various dialogs that are used in the pattern editor.
|
||||
* Notes : (currently none)
|
||||
* Authors: Olivier Lapicque
|
||||
* OpenMPT Devs
|
||||
* The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "openmpt/all/BuildSettings.hpp"
|
||||
|
||||
#include "dlg_misc.h" // for keyboard control
|
||||
#include "EffectInfo.h"
|
||||
#include "PatternCursor.h"
|
||||
#include "TrackerSettings.h"
|
||||
#include "ResizableDialog.h"
|
||||
#include "ColorPickerButton.h"
|
||||
|
||||
OPENMPT_NAMESPACE_BEGIN
|
||||
|
||||
class CModDoc;
|
||||
struct SplitKeyboardSettings;
|
||||
|
||||
class CPatternPropertiesDlg: public CDialog
|
||||
{
|
||||
protected:
|
||||
CModDoc &modDoc;
|
||||
TempoSwing m_tempoSwing;
|
||||
PATTERNINDEX m_nPattern;
|
||||
|
||||
public:
|
||||
CPatternPropertiesDlg(CModDoc &modParent, PATTERNINDEX nPat, CWnd *parent=NULL)
|
||||
: CDialog(IDD_PATTERN_PROPERTIES, parent)
|
||||
, modDoc(modParent)
|
||||
, m_nPattern(nPat)
|
||||
{ }
|
||||
|
||||
protected:
|
||||
BOOL OnInitDialog() override;
|
||||
void OnOK() override;
|
||||
afx_msg void OnHalfRowNumber();
|
||||
afx_msg void OnDoubleRowNumber();
|
||||
afx_msg void OnOverrideSignature();
|
||||
afx_msg void OnTempoSwing();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Command Editing
|
||||
|
||||
|
||||
class CEditCommand: public CDialog
|
||||
{
|
||||
protected:
|
||||
CComboBox cbnNote, cbnInstr, cbnVolCmd, cbnCommand, cbnPlugParam;
|
||||
CSliderCtrl sldVolParam, sldParam;
|
||||
CSoundFile &sndFile;
|
||||
const CModSpecifications *oldSpecs = nullptr;
|
||||
ModCommand *m = nullptr;
|
||||
EffectInfo effectInfo;
|
||||
PATTERNINDEX editPattern = PATTERNINDEX_INVALID;
|
||||
CHANNELINDEX editChannel = CHANNELINDEX_INVALID;
|
||||
ROWINDEX editRow = ROWINDEX_INVALID;
|
||||
UINT xParam, xMultiplier;
|
||||
bool modified = false;
|
||||
|
||||
public:
|
||||
CEditCommand(CSoundFile &sndFile);
|
||||
|
||||
public:
|
||||
bool ShowEditWindow(PATTERNINDEX pat, const PatternCursor &cursor, CWnd *parent);
|
||||
|
||||
protected:
|
||||
void InitAll() { InitNote(); InitVolume(); InitEffect(); InitPlugParam(); }
|
||||
void InitNote();
|
||||
void InitVolume();
|
||||
void InitEffect();
|
||||
void InitPlugParam();
|
||||
|
||||
void UpdateVolCmdRange();
|
||||
void UpdateVolCmdValue();
|
||||
void UpdateEffectRange(bool set);
|
||||
void UpdateEffectValue(bool set);
|
||||
|
||||
void PrepareUndo(const char *description);
|
||||
|
||||
//{{AFX_VIRTUAL(CEditCommand)
|
||||
void DoDataExchange(CDataExchange *pDX) override;
|
||||
void OnOK() override { ShowWindow(SW_HIDE); }
|
||||
void OnCancel() override { ShowWindow(SW_HIDE); }
|
||||
BOOL PreTranslateMessage(MSG *pMsg) override;
|
||||
afx_msg void OnActivate(UINT nState, CWnd *pWndOther, BOOL bMinimized);
|
||||
afx_msg void OnClose() { ShowWindow(SW_HIDE); }
|
||||
|
||||
afx_msg void OnNoteChanged();
|
||||
afx_msg void OnVolCmdChanged();
|
||||
afx_msg void OnCommandChanged();
|
||||
afx_msg void OnPlugParamChanged();
|
||||
afx_msg void OnHScroll(UINT, UINT, CScrollBar *);
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Chord Editor
|
||||
|
||||
class CChordEditor : public ResizableDialog
|
||||
{
|
||||
protected:
|
||||
CKeyboardControl m_Keyboard;
|
||||
CComboBox m_CbnShortcut, m_CbnBaseNote, m_CbnNote[MPTChord::notesPerChord - 1];
|
||||
MPTChords m_chords;
|
||||
MPTChord::NoteType m_mouseDownKey = MPTChord::noNote, m_dragKey = MPTChord::noNote;
|
||||
|
||||
static constexpr MPTChord::NoteType CHORD_MIN = -24;
|
||||
static constexpr MPTChord::NoteType CHORD_MAX = 24;
|
||||
|
||||
public:
|
||||
CChordEditor(CWnd *parent = nullptr);
|
||||
|
||||
protected:
|
||||
MPTChord &GetChord();
|
||||
|
||||
void DoDataExchange(CDataExchange* pDX) override;
|
||||
BOOL OnInitDialog() override;
|
||||
void OnOK() override;
|
||||
|
||||
void UpdateKeyboard();
|
||||
afx_msg LRESULT OnKeyboardNotify(WPARAM, LPARAM);
|
||||
afx_msg void OnChordChanged();
|
||||
afx_msg void OnBaseNoteChanged();
|
||||
afx_msg void OnNote1Changed() { OnNoteChanged(0); }
|
||||
afx_msg void OnNote2Changed() { OnNoteChanged(1); }
|
||||
afx_msg void OnNote3Changed() { OnNoteChanged(2); }
|
||||
void OnNoteChanged(int noteIndex);
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Keyboard Split Settings (pattern editor)
|
||||
|
||||
class CSplitKeyboardSettings : public CDialog
|
||||
{
|
||||
protected:
|
||||
CComboBox m_CbnSplitInstrument, m_CbnSplitNote, m_CbnOctaveModifier, m_CbnSplitVolume;
|
||||
CSoundFile &sndFile;
|
||||
|
||||
public:
|
||||
SplitKeyboardSettings &m_Settings;
|
||||
|
||||
CSplitKeyboardSettings(CWnd *parent, CSoundFile &sf, SplitKeyboardSettings &settings) : CDialog(IDD_KEYBOARD_SPLIT, parent), sndFile(sf), m_Settings(settings) { }
|
||||
|
||||
protected:
|
||||
void DoDataExchange(CDataExchange* pDX) override;
|
||||
BOOL OnInitDialog() override;
|
||||
void OnOK() override;
|
||||
void OnCancel() override;
|
||||
|
||||
afx_msg void OnOctaveModifierChanged();
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Show channel properties from pattern editor
|
||||
|
||||
class QuickChannelProperties : public CDialog
|
||||
{
|
||||
protected:
|
||||
CModDoc *m_document = nullptr;
|
||||
CHANNELINDEX m_channel = 0;
|
||||
bool m_visible = false;
|
||||
bool m_settingsChanged = false;
|
||||
bool m_settingColor = false;
|
||||
|
||||
ColorPickerButton m_colorBtn, m_colorBtnPrev, m_colorBtnNext;
|
||||
CSliderCtrl m_volSlider, m_panSlider;
|
||||
CSpinButtonCtrl m_volSpin, m_panSpin;
|
||||
CEdit m_nameEdit;
|
||||
|
||||
public:
|
||||
QuickChannelProperties() = default;
|
||||
~QuickChannelProperties();
|
||||
|
||||
void Show(CModDoc *modDoc, CHANNELINDEX chn, CPoint position);
|
||||
void UpdateDisplay();
|
||||
CHANNELINDEX GetChannel() const { return m_channel; }
|
||||
|
||||
protected:
|
||||
void DoDataExchange(CDataExchange *pDX) override;
|
||||
|
||||
void PrepareUndo();
|
||||
void PickColorFromChannel(CHANNELINDEX channel);
|
||||
|
||||
afx_msg void OnActivate(UINT nState, CWnd *, BOOL);
|
||||
afx_msg void OnVolChanged();
|
||||
afx_msg void OnPanChanged();
|
||||
afx_msg void OnHScroll(UINT, UINT, CScrollBar *);
|
||||
afx_msg void OnMuteChanged();
|
||||
afx_msg void OnSurroundChanged();
|
||||
afx_msg void OnNameChanged();
|
||||
afx_msg void OnPrevChannel();
|
||||
afx_msg void OnNextChannel();
|
||||
afx_msg void OnChangeColor();
|
||||
afx_msg void OnPickPrevColor();
|
||||
afx_msg void OnPickNextColor();
|
||||
afx_msg LRESULT OnCustomKeyMsg(WPARAM, LPARAM);
|
||||
afx_msg BOOL OnToolTipText(UINT, NMHDR *pNMHDR, LRESULT *pResult);
|
||||
|
||||
BOOL PreTranslateMessage(MSG *pMsg);
|
||||
|
||||
DECLARE_MESSAGE_MAP();
|
||||
};
|
||||
|
||||
OPENMPT_NAMESPACE_END
|
Loading…
Add table
Add a link
Reference in a new issue