Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
197
Src/external_dependencies/openmpt-trunk/mptrack/Mainbar.h
Normal file
197
Src/external_dependencies/openmpt-trunk/mptrack/Mainbar.h
Normal file
|
@ -0,0 +1,197 @@
|
|||
/*
|
||||
* Mainbar.h
|
||||
* ---------
|
||||
* Purpose: Implementation of OpenMPT's window toolbar.
|
||||
* 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 "UpdateToolTip.h"
|
||||
|
||||
OPENMPT_NAMESPACE_BEGIN
|
||||
|
||||
class CStereoVU: public CStatic
|
||||
{
|
||||
protected:
|
||||
uint8 numChannels;
|
||||
uint32 vuMeter[4];
|
||||
DWORD lastVuUpdateTime;
|
||||
int lastV[4];
|
||||
bool lastClip[4];
|
||||
bool horizontal;
|
||||
bool allowRightToLeft;
|
||||
|
||||
public:
|
||||
CStereoVU() { numChannels = 2; MemsetZero(vuMeter); lastVuUpdateTime = timeGetTime(); horizontal = true; MemsetZero(lastV); MemsetZero(lastClip); allowRightToLeft = false; }
|
||||
void SetVuMeter(uint8 validChannels, const uint32 channels[4], bool force=false);
|
||||
void SetOrientation(bool h) { horizontal = h; }
|
||||
|
||||
protected:
|
||||
void DrawVuMeters(CDC &dc, bool redraw=false);
|
||||
void DrawVuMeter(CDC &dc, const CRect &rect, int index, bool redraw=false);
|
||||
|
||||
protected:
|
||||
afx_msg void OnPaint();
|
||||
afx_msg void OnLButtonDown(UINT, CPoint);
|
||||
DECLARE_MESSAGE_MAP();
|
||||
};
|
||||
|
||||
#define MIN_BASEOCTAVE 0
|
||||
#define MAX_BASEOCTAVE 8
|
||||
|
||||
class CSoundFile;
|
||||
class CModDoc;
|
||||
class CModTree;
|
||||
class CMainFrame;
|
||||
|
||||
class CToolBarEx: public CToolBar
|
||||
{
|
||||
protected:
|
||||
bool m_bVertical = false, m_bFlatButtons = false;
|
||||
|
||||
public:
|
||||
CToolBarEx() {}
|
||||
~CToolBarEx() override {}
|
||||
|
||||
public:
|
||||
BOOL EnableControl(CWnd &wnd, UINT nIndex, UINT nHeight=0);
|
||||
void ChangeCtrlStyle(LONG lStyle, BOOL bSetStyle);
|
||||
void EnableFlatButtons(BOOL bFlat);
|
||||
|
||||
public:
|
||||
//{{AFX_VIRTUAL(CToolBarEx)
|
||||
CSize CalcDynamicLayout(int nLength, DWORD dwMode) override;
|
||||
virtual void SetHorizontal();
|
||||
virtual void SetVertical();
|
||||
//}}AFX_VIRTUAL
|
||||
};
|
||||
|
||||
|
||||
class CMainToolBar: public CToolBarEx
|
||||
{
|
||||
protected:
|
||||
UpdateToolTip m_tooltip;
|
||||
CImageListEx m_ImageList, m_ImageListDisabled;
|
||||
CStatic m_EditTempo, m_EditSpeed, m_EditOctave, m_EditRowsPerBeat;
|
||||
CStatic m_StaticTempo, m_StaticSpeed, m_StaticRowsPerBeat;
|
||||
CSpinButtonCtrl m_SpinTempo, m_SpinSpeed, m_SpinOctave, m_SpinRowsPerBeat;
|
||||
int nCurrentSpeed, nCurrentOctave, nCurrentRowsPerBeat;
|
||||
TEMPO nCurrentTempo;
|
||||
public:
|
||||
CStereoVU m_VuMeter;
|
||||
|
||||
public:
|
||||
CMainToolBar() {}
|
||||
~CMainToolBar() override {}
|
||||
|
||||
protected:
|
||||
void SetRowsPerBeat(ROWINDEX nNewRPB);
|
||||
|
||||
public:
|
||||
//{{AFX_VIRTUAL(CMainToolBar)
|
||||
void SetHorizontal() override;
|
||||
void SetVertical() override;
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
public:
|
||||
#if MPT_COMPILER_CLANG
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Woverloaded-virtual"
|
||||
#endif // MPT_COMPILER_CLANG
|
||||
BOOL Create(CWnd *parent);
|
||||
#if MPT_COMPILER_CLANG
|
||||
#pragma clang diagnostic pop
|
||||
#endif // MPT_COMPILER_CLANG
|
||||
void Init(CMainFrame *);
|
||||
UINT GetBaseOctave() const;
|
||||
BOOL SetBaseOctave(UINT nOctave);
|
||||
BOOL SetCurrentSong(CSoundFile *pModDoc);
|
||||
|
||||
bool ShowUpdateInfo(const CString &newVersion, const CString &infoURL, bool showHighLight);
|
||||
void RemoveUpdateInfo();
|
||||
|
||||
protected:
|
||||
//{{AFX_MSG(CMainToolBar)
|
||||
afx_msg void OnVScroll(UINT, UINT, CScrollBar *);
|
||||
afx_msg void OnTbnDropDownToolBar(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg BOOL OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnSelectMIDIDevice(UINT id);
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
|
||||
class CModTreeBar: public CDialogBar
|
||||
{
|
||||
protected:
|
||||
enum Status
|
||||
{
|
||||
MTB_VERTICAL = 0x01,
|
||||
MTB_CAPTURE = 0x02,
|
||||
MTB_DRAGGING = 0x04,
|
||||
MTB_TRACKER = 0x08,
|
||||
};
|
||||
|
||||
DWORD m_dwStatus = 0; // MTB_XXXX
|
||||
UINT m_nCursorDrag = 0;
|
||||
CPoint ptDragging;
|
||||
UINT m_cxOriginal = 0, m_cyOriginal = 0, m_nTrackPos = 0;
|
||||
UINT m_nTreeSplitRatio = 0;
|
||||
|
||||
public:
|
||||
CModTree *m_pModTree = nullptr, *m_pModTreeData = nullptr;
|
||||
|
||||
CModTreeBar();
|
||||
~CModTreeBar() override;
|
||||
|
||||
public:
|
||||
void Init();
|
||||
void RecalcLayout();
|
||||
void DoMouseMove(CPoint point);
|
||||
void DoLButtonDown(CPoint point);
|
||||
void DoLButtonUp();
|
||||
void CancelTracking();
|
||||
void OnInvertTracker(UINT x);
|
||||
void RefreshDlsBanks();
|
||||
void RefreshMidiLibrary();
|
||||
void OnOptionsChanged();
|
||||
void OnDocumentCreated(CModDoc *pModDoc);
|
||||
void OnDocumentClosed(CModDoc *pModDoc);
|
||||
void OnUpdate(CModDoc *pModDoc, UpdateHint hint, CObject *pHint = nullptr);
|
||||
void UpdatePlayPos(CModDoc *pModDoc, Notification *pNotify);
|
||||
HWND GetModTreeHWND(); //rewbs.customKeys
|
||||
LRESULT SendMessageToModTree(UINT cmdID, WPARAM wParam, LPARAM lParam);
|
||||
bool SetTreeSoundfile(FileReader &file);
|
||||
|
||||
|
||||
protected:
|
||||
//{{AFX_VIRTUAL(CModTreeBar)
|
||||
CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz) override;
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
protected:
|
||||
//{{AFX_MSG(CModTreeBar)
|
||||
afx_msg void OnNcPaint();
|
||||
afx_msg LRESULT OnNcHitTest(CPoint point);
|
||||
afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp);
|
||||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||
afx_msg void OnNcMouseMove(UINT nHitTest, CPoint point);
|
||||
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
||||
afx_msg void OnNcLButtonDown(UINT, CPoint);
|
||||
afx_msg void OnLButtonDown(UINT, CPoint);
|
||||
afx_msg void OnNcLButtonUp(UINT, CPoint);
|
||||
afx_msg void OnLButtonUp(UINT, CPoint);
|
||||
afx_msg void OnNcRButtonDown(UINT, CPoint) { CancelTracking(); }
|
||||
afx_msg void OnRButtonDown(UINT, CPoint) { CancelTracking(); }
|
||||
afx_msg LRESULT OnInitDialog(WPARAM, LPARAM);
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
|
||||
OPENMPT_NAMESPACE_END
|
Loading…
Add table
Add a link
Reference in a new issue