00001 //------------------------------------------------------------------------ 00002 // Project : VST SDK 00003 // Version : 3.0 00004 // 00005 // Category : Helpers 00006 // Filename : vstguieditor.h 00007 // Created by : Steinberg, 04/2005 00008 // Modified : $Date: 2008/01/09 12:51:07 $ 00009 // Description : VSTGUI Editor 00010 // 00011 //----------------------------------------------------------------------------- 00012 // LICENSE 00013 // © 2008, Steinberg Media Technologies GmbH, All Rights Reserved 00014 //----------------------------------------------------------------------------- 00015 // This Software Development Kit may not be distributed in parts or its entirety 00016 // without prior written agreement by Steinberg Media Technologies GmbH. 00017 // This SDK must not be used to re-engineer or manipulate any technology used 00018 // in any Steinberg or Third-party application or software module, 00019 // unless permitted by law. 00020 // Neither the name of the Steinberg Media Technologies nor the names of its 00021 // contributors may be used to endorse or promote products derived from this 00022 // software without specific prior written permission. 00023 // 00024 // THIS SDK IS PROVIDED BY STEINBERG MEDIA TECHNOLOGIES GMBH "AS IS" AND 00025 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00026 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 00027 // IN NO EVENT SHALL STEINBERG MEDIA TECHNOLOGIES GMBH BE LIABLE FOR ANY DIRECT, 00028 // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 00029 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00030 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00031 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 00032 // OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 00033 // OF THE POSSIBILITY OF SUCH DAMAGE. 00034 //----------------------------------------------------------------------------- 00035 00036 #ifndef __vstguieditor__ 00037 #define __vstguieditor__ 00038 00039 #include "vsteditcontroller.h" 00040 #include "vstgui.sf/vstgui/vstgui.h" 00041 #include "vstgui.sf/vstgui/cvstguitimer.h" 00042 00043 namespace Steinberg { 00044 namespace Vst { 00045 00046 //------------------------------------------------------------------------ 00047 class VSTGUIEditor : public EditorView, public VSTGUIEditorInterface 00048 { 00049 public: 00051 VSTGUIEditor (void* controller, ViewRect* size = 0); 00052 00054 ~VSTGUIEditor (); 00055 00056 //---Internal function----- 00058 virtual bool PLUGIN_API open (void* parent) = 0; 00060 virtual void PLUGIN_API close () = 0; 00061 00063 void setIdleRate (int millisec); 00064 00065 //---from CBaseObject--------------- 00066 CMessageResult notify (CBaseObject* sender, const char* message); 00067 00068 //---from IPlugView------- 00069 tresult PLUGIN_API isPlatformTypeSupported (FIDString type); 00070 00071 private: 00072 //---from IPlugView------- 00073 tresult PLUGIN_API attached (void* parent, FIDString type); 00074 tresult PLUGIN_API removed (); 00075 tresult PLUGIN_API setFrame (IPlugFrame* frame); 00076 00077 IPlugFrame* plugFrame; 00078 CVSTGUITimer* timer; 00079 }; 00080 00081 } // namespace Vst 00082 } // namespace Steinberg 00083 00084 #endif // __vstguieditor__