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 #start_since SINCE_3_1_SDK 00056 class MOptionMenuHandler; 00057 class CEikMenuPane; 00058 #end_since SINCE_3_1_SDK 00059 00060 // CLASS DECLARATION 00061 00068 class MPluginAdapter 00069 { 00070 public: // New functions 00071 00077 virtual TUint16 GetVersion()=0; 00078 00086 virtual void PluginConstructedL(CCoeControl* aPluginControl)=0; 00087 00094 virtual void PluginFinishedL()=0; 00095 00101 virtual CCoeControl* GetParentControl()=0; 00102 00108 virtual MCoeControlObserver* GetParentControlObserver()=0; 00109 00116 virtual void SetPluginNotifier(MPluginNotifier *aNotifier)=0; 00117 00118 #start_since SINCE_3_1_SDK 00119 00128 virtual void SetOptionMenuHandler(MOptionMenuHandler* /*aOptionMenuHandler*/) {}; 00129 #end_since SINCE_3_1_SDK 00130 }; 00131 00132 00140 class MPluginNotifier 00141 { 00142 public: // Data 00143 // Types of notifications which can be passed to the plugin. 00144 enum TNotificationType { 00145 EEditCut, 00146 EEditCopy, 00147 EEditPaste, 00148 EEditDelete, 00149 EApplicationFocusChanged, 00150 ESystemNotification 00151 #start_since SINCE_3_1_SDK 00152 ,EPluginInvisible 00153 #end_since SINCE_3_1_SDK 00154 }; 00155 00156 public: // New functions 00157 00165 virtual TInt NotifyL (TNotificationType aCallType, TAny *aParam)=0; 00166 00167 }; 00168 00169 #start_since SINCE_3_1_SDK 00170 00177 class MOptionMenuHandler 00178 { 00179 public: // New functions 00180 00192 virtual void AddPluginOptionMenuItemsL(CEikMenuPane& aMenuPane, TInt aCommandBase, TInt aAfter)=0; 00193 00203 virtual void HandlePluginCommandL(TInt aCommandId)=0; 00204 00205 }; 00206 #end_since SINCE_3_1_SDK 00207 00208 // MPLUGINADAPTER_H 00209 #endif 00210 00211 00212 // End of File