diff options
Diffstat (limited to 'Src/external_dependencies/openmpt-trunk/mptrack/AboutDialog.h')
-rw-r--r-- | Src/external_dependencies/openmpt-trunk/mptrack/AboutDialog.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/Src/external_dependencies/openmpt-trunk/mptrack/AboutDialog.h b/Src/external_dependencies/openmpt-trunk/mptrack/AboutDialog.h new file mode 100644 index 00000000..28b7b2f3 --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/mptrack/AboutDialog.h @@ -0,0 +1,83 @@ +/* + * AboutDialog.h + * ------------- + * Purpose: About dialog with credits, system information and a fancy demo effect. + * 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" + +OPENMPT_NAMESPACE_BEGIN + +class RawGDIDIB; + +class CRippleBitmap: public CWnd +{ + +public: + + static constexpr DWORD UPDATE_INTERVAL = 15; // milliseconds + +protected: + + BITMAPINFOHEADER m_bi; + std::unique_ptr<RawGDIDIB> m_bitmapSrc, m_bitmapTarget; + std::vector<int32> m_offset1, m_offset2; + int32 *m_frontBuf, *m_backBuf; + DWORD m_lastFrame = 0; // Time of last frame + DWORD m_lastRipple = 0; // Time of last added ripple + bool m_frame = false; // Backbuffer toggle + bool m_damp = true; // Ripple damping status + bool m_activity = true; // There are actually some ripples + bool m_showMouse = true; + +public: + + CRippleBitmap(); + ~CRippleBitmap(); + bool Animate(); + +protected: + void OnPaint(); + BOOL OnEraseBkgnd(CDC *) { return TRUE; } + + void OnMouseMove(UINT nFlags, CPoint point); + void OnMouseHover(UINT nFlags, CPoint point) { OnMouseMove(nFlags, point); } + void OnMouseLeave(); + + DECLARE_MESSAGE_MAP() +}; + + +class CAboutDlg: public CDialog +{ +protected: + CRippleBitmap m_bmp; + CTabCtrl m_Tab; + CEdit m_TabEdit; + UINT_PTR m_TimerID = 0; + static constexpr UINT_PTR TIMERID_ABOUT_DEFAULT = 3; + +public: + static CAboutDlg *instance; + + ~CAboutDlg(); + + // Implementation +protected: + BOOL OnInitDialog() override; + void OnOK() override; + void OnCancel() override; + DECLARE_MESSAGE_MAP(); + void DoDataExchange(CDataExchange* pDX) override; + afx_msg void OnTabChange(NMHDR *pNMHDR, LRESULT *pResult); + void OnTimer(UINT_PTR nIDEvent); +public: + static mpt::ustring GetTabText(int tab); +}; + +OPENMPT_NAMESPACE_END |