/* * VSTEditor.h * ----------- * Purpose: Implementation of the custom plugin editor window that is used if a plugin provides an own editor GUI. * 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 "AbstractVstEditor.h" OPENMPT_NAMESPACE_BEGIN #ifdef MPT_WITH_VST class COwnerVstEditor : public CAbstractVstEditor { protected: CStatic m_plugWindow; int m_width = 0, m_height = 0; public: COwnerVstEditor(CVstPlugin &plugin) : CAbstractVstEditor(plugin) { } ~COwnerVstEditor() override { } // Plugins may request to change the GUI size. bool IsResizable() const override { return true; } bool SetSize(int contentWidth, int contentHeight) override; void UpdateParamDisplays() override; bool OpenEditor(CWnd *parent) override; void DoClose() override; protected: afx_msg BOOL OnEraseBkgnd(CDC *) { return TRUE; } afx_msg void OnPaint(); LRESULT OnPreTranslateKeyDown(WPARAM wParam, LPARAM lParam) { return HandlePreTranslateMessage(WM_KEYDOWN, wParam, lParam); } LRESULT OnPreTranslateKeyUp(WPARAM wParam, LPARAM lParam) { return HandlePreTranslateMessage(WM_KEYUP, wParam, lParam); } LRESULT OnPreTranslateSysKeyDown(WPARAM wParam, LPARAM lParam) { return HandlePreTranslateMessage(WM_SYSKEYDOWN, wParam, lParam); } LRESULT OnPreTranslateSysKeyUp(WPARAM wParam, LPARAM lParam) { return HandlePreTranslateMessage(WM_SYSKEYUP, wParam, lParam); } LRESULT HandlePreTranslateMessage(UINT message, WPARAM wParam, LPARAM lParam) { MSG msg = {m_plugWindow, message, wParam, lParam, 0, {}}; return HandleKeyMessage(msg); } DECLARE_MESSAGE_MAP() }; #endif // MPT_WITH_VST OPENMPT_NAMESPACE_END