diff options
Diffstat (limited to 'vendor/vstsdk2.4/vstgui.sf/vstgui/Documentation/html/maceditor.html')
| -rw-r--r-- | vendor/vstsdk2.4/vstgui.sf/vstgui/Documentation/html/maceditor.html | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/vendor/vstsdk2.4/vstgui.sf/vstgui/Documentation/html/maceditor.html b/vendor/vstsdk2.4/vstgui.sf/vstgui/Documentation/html/maceditor.html new file mode 100644 index 0000000..702648f --- /dev/null +++ b/vendor/vstsdk2.4/vstgui.sf/vstgui/Documentation/html/maceditor.html @@ -0,0 +1,73 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> +<title>VSTGUI: Macintosh Editor as HIViewRef</title> +<link href="doxygen.css" rel="stylesheet" type="text/css"> +<link href="tabs.css" rel="stylesheet" type="text/css"> +</head><body> +<!-- Generated by Doxygen 1.4.5 --> +<div class="tabs"> + <ul> + <li><a href="main.html"><span>Main Page</span></a></li> + <li><a href="annotated.html"><span>Classes</span></a></li> + <li><a href="files.html"><span>Files</span></a></li> + <li><a href="pages.html"><span>Related Pages</span></a></li> + </ul></div> +<h1><a class="anchor" name="maceditor">Macintosh Editor as HIViewRef</a></h1><h2><a class="anchor" name="Introduction"> +Introduction</a></h2> +In the beginning of VST the Plug-In's GUI was attached at the left-top corner without a mechanism for the host to move it. This and the evolution of the macintosh platform makes it necessary to change this old behaviour. The modern way on Mac OS X to do UI design with C/C++ is to use HIViews and window compositing.<br> + The VST SDK 2.4 requires the Plug-In to attach one HIView to the window and that this HIView can be moved around and that it can be embedded into other subviews.<br> + Hosts which implement VST 2.4 need to provide a window to the Plug-In which is composited if the Plug-In itself uses 2.4. If the Plug-In uses an earlier VST SDK it should provide a non composited window.<p> +<hr> + <h2><a class="anchor" name="maceditoropen"> +Adding an HIView on effEditOpen</a></h2> +As before the ptr in effEditOpen is a WindowRef. You need to add one HIView to the content view of this window.<p> +<div class="fragment"><pre class="fragment">HIViewRef contentView; +<span class="keywordflow">if</span> (HIViewFindByID (HIViewGetRoot ((WindowRef)ptr, kHIViewWindowContentID, &contentView) == noErr) + HIViewAddSubview (contentView, myPluginView); +</pre></div><p> +<hr> + <h2><a class="anchor" name="maceditorclose"> +Closing on effEditClose</a></h2> +When effEditClose is called you should remove your HIView from the window.<p> +<div class="fragment"><pre class="fragment">HIViewRemoveFromSuperview (myPluginView); +</pre></div><p> +Don't do anything with the window. It is not your window.<p> +<hr> + <h2><a class="anchor" name="maceditorsizing"> +Resizing the Plug-In</a></h2> +If you want to resize your view, just do it, but don't resize the host window.<p> +<div class="fragment"><pre class="fragment">HIRect pluginBounds; +HIViewGetFrame (myPluginView, &pluginBounds); +pluginBounds.size.width = newWidth; +pluginBounds.size.height = newHeight; +HIViewSetFrame (myPluginView, &pluginBounds); +</pre></div><p> +The host needs to listen to bounds changes on the Plug-In view and resize its window accordingly.<p> +<hr> + <h2><a class="anchor" name="maceditordeprecated"> +No more effEditDraw, effEditIdle, effEditMouse, effEditTop, effEditSleep</a></h2> +You need to use Carbon Events now, which you register on the HIView, not on the window if possible. But don't remove these opcodes from your editor yet.<p> +<hr> + <h2><a class="anchor" name="maceditorvst23hosts"> +VST 2.4 Plug-Ins and VST 2.3 Hosts</a></h2> +Now there is a conflict situation that VST 2.3 hosts may not work with HIViews and window compositing. Therefore you need at least support effEditDraw, so that your Plug-In draws correctly in these hosts. Mouse, idle and activation events can be handled via Carbon Events.<p> +<dl compact><dt><b>See also:</b></dt><dd><a href="http://developer.apple.com/documentation/Carbon/Conceptual/HIViewDoc/index.html" target="_blank>">Apple HIView Programming Guide </a> </dd></dl> +<html> + +<head> + <title>Empty</title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <meta name="Author" content="mario"> +</head> + +<body> + +<br/> +<hr width="100%" size="2" align="left" /> +<div align=left> +Copyright ©2006 <a href="http://www.steinberg.net" target="_blank"><u>Steinberg Media Technologies</u></a>. +All Rights Reserved. +</div> +</body> + +</html> |
