From: <sag...@us...> - 2015-03-08 15:32:31
|
Revision: 4839 http://sourceforge.net/p/modplug/code/4839 Author: saga-games Date: 2015-03-08 15:32:18 +0000 (Sun, 08 Mar 2015) Log Message: ----------- [New] VST: Experimental feature: VST editors now have minimize / maximize buttons, which can be used to shrink a plugin window to only display the title and menu bar. Modified Paths: -------------- trunk/OpenMPT/mptrack/AbstractVstEditor.cpp trunk/OpenMPT/mptrack/AbstractVstEditor.h trunk/OpenMPT/mptrack/mptrack.rc Modified: trunk/OpenMPT/mptrack/AbstractVstEditor.cpp =================================================================== --- trunk/OpenMPT/mptrack/AbstractVstEditor.cpp 2015-03-08 12:40:08 UTC (rev 4838) +++ trunk/OpenMPT/mptrack/AbstractVstEditor.cpp 2015-03-08 15:32:18 UTC (rev 4839) @@ -43,6 +43,7 @@ ON_WM_ACTIVATE() ON_WM_DROPFILES() ON_WM_MOVE() + ON_WM_SYSCOMMAND() ON_COMMAND(ID_EDIT_COPY, OnCopyParameters) ON_COMMAND(ID_EDIT_PASTE, OnPasteParameters) ON_COMMAND(ID_PRESET_LOAD, OnLoadPreset) @@ -102,6 +103,43 @@ } +void CAbstractVstEditor::OnSysCommand(UINT nID, LPARAM lParam) +//------------------------------------------------------------ +{ + const UINT nID_ = nID & 0xFFF0; + if(nID_ == SC_MINIMIZE || nID_ == SC_MAXIMIZE) + { + // Override minimize and maximize buttons to reduce plugin windows to their non-client area + LONG style = GetWindowLong(m_hWnd, GWL_STYLE); + CRect rcWnd, rcClient; + GetWindowRect(&rcWnd); + if(nID_ == SC_MINIMIZE) + { + // When minimizing, remove the client area + GetClientRect(&rcClient); + clientHeight = rcClient.Height(); + + style &= ~WS_MINIMIZEBOX; + style |= WS_MAXIMIZEBOX; + } else + { + style |= WS_MINIMIZEBOX; + style &= ~WS_MAXIMIZEBOX; + } + clientHeight = -clientHeight; + int rcHeight = rcWnd.Height() + clientHeight; + + SetWindowLong(m_hWnd, GWL_STYLE, style); + SetWindowPos(NULL, 0, 0, + rcWnd.Width(), rcHeight, + SWP_NOZORDER | SWP_NOMOVE); + } else + { + CDialog::OnSysCommand(nID, lParam); + } +} + + void CAbstractVstEditor::OnActivate(UINT nState, CWnd *pWndOther, BOOL bMinimized) //-------------------------------------------------------------------------------- { Modified: trunk/OpenMPT/mptrack/AbstractVstEditor.h =================================================================== --- trunk/OpenMPT/mptrack/AbstractVstEditor.h 2015-03-08 12:40:08 UTC (rev 4838) +++ trunk/OpenMPT/mptrack/AbstractVstEditor.h 2015-03-08 15:32:18 UTC (rev 4839) @@ -31,7 +31,8 @@ CMenu m_OptionsMenu; static UINT clipboardFormat; int32 currentPresetMenu; - bool updateDisplay; + int32 clientHeight; + bool updateDisplay : 1; public: CVstPlugin &m_VstPlugin; @@ -48,6 +49,7 @@ void UpdatePresetField(); bool CreateInstrument(); + afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnLoadPreset(); afx_msg void OnSavePreset(); afx_msg void OnCopyParameters(); Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2015-03-08 12:40:08 UTC (rev 4838) +++ trunk/OpenMPT/mptrack/mptrack.rc 2015-03-08 15:32:18 UTC (rev 4839) @@ -1572,8 +1572,8 @@ END IDD_PLUGINEDITOR DIALOGEX 0, 0, 485, 153 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_CLIENTEDGE CAPTION "Editor" MENU IDR_VSTMENU FONT 8, "MS Shell Dlg", 0, 0, 0x1 @@ -2159,8 +2159,8 @@ MENUITEM "&OpenMPT Website", ID_NETLINK_MODPLUG MENUITEM "&Web Resources", ID_NETLINK_TOP_PICKS MENUITEM SEPARATOR - MENUITEM "Check for &Updates...", ID_INTERNETUPDATE - MENUITEM "&About OpenMPT...", ID_APP_ABOUT + MENUITEM "Check for &Updates", ID_INTERNETUPDATE + MENUITEM "&About OpenMPT", ID_APP_ABOUT END END @@ -2702,8 +2702,7 @@ END IDD_DEFAULTPLUGINEDITOR DIALOGEX 0, 0, 336, 247 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -EXSTYLE WS_EX_TOOLWINDOW +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Editor" FONT 8, "MS Shell Dlg", 400, 0, 0x0 BEGIN This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |