summaryrefslogtreecommitdiff
path: root/vendor/vstsdk2.4/vstgui.sf/vstgui/Documentation/html/maceditor.html
diff options
context:
space:
mode:
authorpepper <peppersclothescult@gmail.com>2015-01-10 21:37:24 -0800
committerpepper <peppersclothescult@gmail.com>2015-01-10 21:37:24 -0800
commit58f8437f4b8b741ddc8e7bcde21bf983cc618430 (patch)
treebfd0a9d601274fe56de15a4eaeb0998f9481419d /vendor/vstsdk2.4/vstgui.sf/vstgui/Documentation/html/maceditor.html
parent36773a28ece1641a2d827a29869cdd4c38e87925 (diff)
added vstsdkHEADmaster
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.html73
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&nbsp;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&nbsp;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, &amp;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, &amp;pluginBounds);
+pluginBounds.size.width = newWidth;
+pluginBounds.size.height = newHeight;
+HIViewSetFrame (myPluginView, &amp;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>