How to notify the host when the actual editor window of custom GUI is closed?

Hi everyone

I’m new to VST development, and as an experiment I’m writing a plugin that uses a GUI framework other than VSTGUI.

I inherit from IPlugView and create a new process that manages the GUI inside IPlugView::attached() (the IPC to actually update the controller is a whole other topic), and destroy the process in IPlugView::removed().

This all works perfectly for notifying my plugin when the host wants to close its editor, but if I close the editor at the OS level (e.g., by alt-F4 or clicking the X in its window), the host wont know about it and will think my editor is still open. In practice, this means clicking the GUI toggle (this is in reaper) after alt-F4ing the editor window will do nothing the first time, and then on the second time it will reopen my editor.

What I need is some function that I can call that will the host that my editor window has been closed, so that the host can put itself into the “no editor” state. Does something like this exist in the SDK? If not, are there any workarounds that would help?

Thanks in advance

You are suppose to add a child window to the window provided by the host, so that Alt-F4 and Close button is handled by the host.

Hi Arne, thanks for the reply

When I mentioned alt-f4 and the window close button, I was referring to closing the separate window that my plugin’s GUI runs in, not closing the window of the host DAW. Basically when I close the plugin GUI window, I want to let the DAW know

Sorry that my original post wasn’t clear, I’ll edit it and add an image once I’m back at my computer

Thanks again

I did read your issue correctly. You are not supposed to close the window containing your plug-in view, it’s the business of the host. If you open a separate window then it’s up to you what you do with it, but you cannot close the window the host opens for you. It’s actually a bad user experience if you don’t provide a view for the window the host provides and open another window with decorations.

Ahh, I understand now. Sorry for misunderstanding

Could you point me towards the parts of the sdk I should use in order to do custom rendering in a view in the host window? What is the standard process for doing custom rendering within the contraints of the sdk? I found this thread httpscolon// (I’m getting an error when posting links, so you’ll have to replace “colon” with “:”) on the subject, but what the poster is doing is quite different from what I’m aiming for, so unfortunately it didn’t help much

The basics are documented in this header:

And for Windows, see this part.

1 Like

Thanks Arne, this answers everything :slight_smile: