aboutsummaryrefslogtreecommitdiff
path: root/Src/external_dependencies/openmpt-trunk/mptrack/Childfrm.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/external_dependencies/openmpt-trunk/mptrack/Childfrm.h')
-rw-r--r--Src/external_dependencies/openmpt-trunk/mptrack/Childfrm.h156
1 files changed, 156 insertions, 0 deletions
diff --git a/Src/external_dependencies/openmpt-trunk/mptrack/Childfrm.h b/Src/external_dependencies/openmpt-trunk/mptrack/Childfrm.h
new file mode 100644
index 00000000..a9ff360a
--- /dev/null
+++ b/Src/external_dependencies/openmpt-trunk/mptrack/Childfrm.h
@@ -0,0 +1,156 @@
+/*
+ * Childfrm.h
+ * ----------
+ * Purpose: Implementation of tab interface class.
+ * Notes : (currently none)
+ * Authors: 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 "PatternCursor.h"
+
+#include "../common/FileReaderFwd.h"
+
+OPENMPT_NAMESPACE_BEGIN
+
+class CModControlView;
+class CModControlDlg;
+
+struct GENERALVIEWSTATE
+{
+ PlugParamIndex nParam = 0;
+ CHANNELINDEX nTab = 0;
+ PLUGINDEX nPlugin = 0;
+ bool initialized = false;
+};
+
+
+struct PATTERNVIEWSTATE
+{
+ PATTERNINDEX nPattern = 0;
+ PatternCursor cursor = 0;
+ PatternRect selection;
+ PatternCursor::Columns nDetailLevel = PatternCursor::firstColumn;
+ ORDERINDEX nOrder = 0;
+ ORDERINDEX initialOrder = ORDERINDEX_INVALID;
+ bool initialized = false;
+};
+
+struct SAMPLEVIEWSTATE
+{
+ SmpLength dwScrollPos = 0;
+ SmpLength dwBeginSel = 0;
+ SmpLength dwEndSel = 0;
+ SAMPLEINDEX nSample = 0;
+ SAMPLEINDEX initialSample = 0;
+};
+
+
+struct INSTRUMENTVIEWSTATE
+{
+ float zoom = 4;
+ EnvelopeType nEnv = ENV_VOLUME;
+ INSTRUMENTINDEX initialInstrument = 0;
+ bool bGrid = false;
+ bool initialized = false;
+};
+
+struct COMMENTVIEWSTATE
+{
+ UINT nId = 0;
+ bool initialized = false;
+};
+
+
+
+class CChildFrame: public CMDIChildWnd
+{
+ friend class CModControlDlg;
+ DECLARE_DYNCREATE(CChildFrame)
+public:
+ CChildFrame();
+
+protected:
+ static CChildFrame *m_lastActiveFrame;
+ static int glMdiOpenCount;
+
+// Attributes
+protected:
+ CSplitterWnd m_wndSplitter;
+ HWND m_hWndCtrl, m_hWndView;
+ GENERALVIEWSTATE m_ViewGeneral;
+ PATTERNVIEWSTATE m_ViewPatterns;
+ SAMPLEVIEWSTATE m_ViewSamples;
+ INSTRUMENTVIEWSTATE m_ViewInstruments;
+ COMMENTVIEWSTATE m_ViewComments;
+ CHAR m_szCurrentViewClassName[256];
+ bool m_bMaxWhenClosed;
+ bool m_bInitialActivation;
+
+// Operations
+public:
+ CModControlView *GetModControlView() const { return (CModControlView *)m_wndSplitter.GetPane(0, 0); }
+ BOOL ChangeViewClass(CRuntimeClass* pNewViewClass, CCreateContext* pContext=NULL);
+ void ForceRefresh();
+ void SavePosition(BOOL bExit=FALSE);
+ const char *GetCurrentViewClassName() const;
+ LRESULT SendCtrlMessage(UINT uMsg, LPARAM lParam = 0) const;
+ LRESULT SendViewMessage(UINT uMsg, LPARAM lParam = 0) const;
+ LRESULT ActivateView(UINT nId, LPARAM lParam) { return ::SendMessage(m_hWndCtrl, WM_MOD_ACTIVATEVIEW, nId, lParam); }
+ HWND GetHwndCtrl() const { return m_hWndCtrl; }
+ HWND GetHwndView() const { return m_hWndView; }
+ GENERALVIEWSTATE &GetGeneralViewState() { return m_ViewGeneral; }
+ PATTERNVIEWSTATE &GetPatternViewState() { return m_ViewPatterns; }
+ SAMPLEVIEWSTATE &GetSampleViewState() { return m_ViewSamples; }
+ INSTRUMENTVIEWSTATE &GetInstrumentViewState() { return m_ViewInstruments; }
+ COMMENTVIEWSTATE &GetCommentViewState() { return m_ViewComments; }
+
+ void SetSplitterHeight(int x);
+ int GetSplitterHeight();
+
+ std::string SerializeView() const;
+ void DeserializeView(FileReader &file);
+
+ void ToggleViews();
+
+ static CChildFrame *LastActiveFrame() { return m_lastActiveFrame; }
+
+// Overrides
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CChildFrame)
+ public:
+ BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) override;
+ BOOL PreCreateWindow(CREATESTRUCT& cs) override;
+ void ActivateFrame(int nCmdShow) override;
+ void OnUpdateFrameTitle(BOOL bAddToTitle) override;
+ //}}AFX_VIRTUAL
+
+// Implementation
+public:
+ virtual ~CChildFrame();
+
+// Generated message map functions
+protected:
+ //{{AFX_MSG(CChildFrame)
+ afx_msg void OnDestroy();
+ afx_msg BOOL OnNcActivate(BOOL bActivate);
+ afx_msg void OnMDIActivate(BOOL bActivate, CWnd *pActivateWnd, CWnd *pDeactivateWnd);
+ afx_msg LRESULT OnChangeViewClass(WPARAM, LPARAM lParam);
+ afx_msg LRESULT OnInstrumentSelected(WPARAM, LPARAM lParam);
+ afx_msg BOOL OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult);
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+};
+
+/////////////////////////////////////////////////////////////////////////////
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
+
+
+OPENMPT_NAMESPACE_END