00001 /* 00002 * ============================================================================== 00003 * Name : PluginAdapterInterface.h 00004 * Part of : WebKit / Plugin 00005 * Interface : Browser Plugin API, MPluginAdapter 00006 * Description : The plug-in can use this interface to communicate with the browser. 00007 * Version : 1.01 00008 * 00009 * Copyright (c) 2006, Nokia Corporation 00010 * All rights reserved. 00011 * 00012 * Redistribution and use in source and binary forms, with or without 00013 * modification, are permitted provided that the following conditions 00014 * are met: 00015 * 00016 * * Redistributions of source code must retain the above copyright 00017 * notice, this list of conditions and the following disclaimer. 00018 * * Redistributions in binary form must reproduce the above copyright 00019 * notice, this list of conditions and the following disclaimer in 00020 * the documentation and/or other materials provided with the 00021 * distribution. 00022 * * Neither the name of the Nokia Corporation nor the names of its 00023 * contributors may be used to endorse or promote products derived 00024 * from this software without specific prior written permission. 00025 * 00026 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00027 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00028 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00029 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 00030 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00031 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00032 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00033 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00034 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00035 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 00036 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 00037 * DAMAGE. 00038 * 00039 * Please see file patentlicense.txt for further grants. 00040 * ============================================================================== 00041 */ 00042 00043 00044 #ifndef MPLUGINADAPTER_H 00045 #define MPLUGINADAPTER_H 00046 00047 // INCLUDES 00048 #include "coecntrl.h" 00049 #include "coecobs.h" 00050 #include "npupp.h" 00051 00052 // FORWARD DECLARATIONS 00053 class MPluginNotifier; 00054 00055 00056 class MOptionMenuHandler; 00057 class CEikMenuPane; 00058 00059 // CLASS DECLARATION 00060 00067 class MPluginAdapter 00068 { 00069 public: // New functions 00070 00076 virtual TUint16 GetVersion()=0; 00077 00085 virtual void PluginConstructedL(CCoeControl* aPluginControl)=0; 00086 00093 virtual void PluginFinishedL()=0; 00094 00100 virtual CCoeControl* GetParentControl()=0; 00101 00107 virtual MCoeControlObserver* GetParentControlObserver()=0; 00108 00115 virtual void SetPluginNotifier(MPluginNotifier *aNotifier)=0; 00116 00117 00126 virtual void SetOptionMenuHandler(MOptionMenuHandler* /*aOptionMenuHandler*/) {}; 00127 }; 00128 00129 00137 class MPluginNotifier 00138 { 00139 public: // Data 00140 // Types of notifications which can be passed to the plugin. 00141 enum TNotificationType { 00142 EEditCut, 00143 EEditCopy, 00144 EEditPaste, 00145 EEditDelete, 00146 EApplicationFocusChanged, 00147 ESystemNotification, 00148 EPluginInvisible, 00149 EPluginActivated, 00150 EPluginDeactivated}; 00151 00152 public: // New functions 00153 00161 virtual TInt NotifyL (TNotificationType aCallType, TAny *aParam)=0; 00162 00163 }; 00164 00165 00173 class MOptionMenuHandler 00174 { 00175 public: // New functions 00176 00187 virtual void AddPluginOptionMenuItemsL(CEikMenuPane& aMenuPane, TInt aCommandBase, TInt aAfter)=0; 00188 00197 virtual void HandlePluginCommandL(TInt aCommandId)=0; 00198 00199 }; 00200 00201 // MPLUGINADAPTER_H 00202 #endif 00203 00204 00205 // End of File