imgeditor_plat/image_editor_utilities_api/inc/plugininfo.h
changeset 1 edfc90759b9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgeditor_plat/image_editor_utilities_api/inc/plugininfo.h	Fri Jan 29 13:53:17 2010 +0200
@@ -0,0 +1,626 @@
+/*
+* Copyright (c) 2010 Ixonos Plc.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - Initial contribution
+*
+* Contributors:
+* Ixonos Plc
+*
+* Description: 
+* CPluginInfo class represents information about editor plug-in.
+*
+*/
+
+
+#ifndef PLUGININFO_H
+#define PLUGININFO_H
+
+#include <e32base.h>
+#include <badesca.h>
+#include <eikmenup.h>
+
+/**  Array for menu items */
+typedef CArrayFixSeg<CEikMenuPaneItem::SData> CMenuItemArray;
+
+
+class CFbsBitmap;
+class RReadStream;
+class RWriteStream;
+
+/**
+ *  Represents information about editor plug-in.
+ *	The class encapsulates the following info:
+ *
+ *	PLUG-IN DLL INFO:
+ *
+ *		plug-in DLL name 
+ *		plug-in DLL UID 2 (API UID)
+ *		plug-in DLL UID 3
+ *		plug-in UI type
+ *		plug-in filter type
+ *
+ *	PLUG-IN UI INFO:
+ *
+ *    plug-in run-time ID
+ *		plug-in name 
+ *		icon file name
+ *       icon bitmap
+ *       icon mask bitmap
+ *		parameter array
+ *		softkey 1 items
+ *		softkey 2 items
+ *		menu items
+ *  
+ *  @code
+ *   ?good_class_usage_example(s)
+ *  @endcode
+ *
+ *  @lib ImageEditorUtils.lib
+ *  @since S60 v5.0
+ */
+class CPluginInfo :	public CBase
+{
+
+public:
+
+    /**
+     * Comparison method for CPluginInfo instances based on RID
+     *
+     * @since S60 v5.0
+     * @param aItem1 - first item to be compared
+     * @param aItem2 - second item to be compared
+     * @return -1      if aItem1 < aItem2
+     *	         1      if aItem1 > aItem2
+     *	         0      otherwise
+     */
+	   IMPORT_C static TInt ComparePluginInfo (
+        const CPluginInfo & aItem1,
+        const CPluginInfo & aItem2
+        );
+
+    /**
+     * Comparison method for CPluginInfo instances based on plug-in order
+     *
+     * @since S60 v5.0
+     * @param aItem1 - first item to be compared
+     * @param aItem2 - second item to be compared
+     * @return -1      if aItem1 < aItem2
+     *	         1      if aItem1 > aItem2
+     *	         0      otherwise
+     */
+	   IMPORT_C static TInt ComparePluginOrder (
+        const CPluginInfo & aItem1,
+        const CPluginInfo & aItem2
+        );
+
+
+    /**
+     * Two-phased constructor.
+     * @param -
+     * @return pointer to created CPluginInfo object
+     */
+     IMPORT_C static CPluginInfo * NewL ();
+
+    /** 
+     * Two-phased constructor.	
+	   * Leaves the object in cleanup stack.
+	   * @param -
+	   *	@return pointer to created CPluginInfo object
+	   */
+     IMPORT_C static CPluginInfo * NewLC ();
+
+    /**
+     * Destructor.
+     */
+     IMPORT_C ~CPluginInfo ();
+
+    /**
+     * Getter for plug-in DLL file name.
+     *
+     * @since S60 v5.0
+     * @param -
+     *	@return plug-in DLL name
+     */
+     IMPORT_C HBufC *& PluginDll ();
+
+    /**
+     * Getter for plug-in DLL file name, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     *	@return plug-in DLL name
+     */
+     IMPORT_C const TDesC & PluginDll () const;
+
+    /**
+     * Getter for plug-in DLL UID2, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return plug-in DLL UID2
+     */
+     IMPORT_C TUid & Uid2 ();
+
+    /**
+     * Getter for plug-in DLL UID2, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return plug-in DLL UID2
+     */
+	   IMPORT_C const TUid & Uid2 () const;
+
+    /**
+     * Getter for plug-in DLL UID3, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return plug-in DLL UID3
+     */
+	   IMPORT_C TUid & Uid3 ();
+
+    /**
+     * Getter for plug-in DLL UID3, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return plug-in DLL UID3
+     */
+     IMPORT_C const TUid & Uid3 () const;
+
+    /**
+     * Getter for plug-in UI type, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return plug-in UI type
+     */
+	   IMPORT_C TInt & PluginUiType();
+
+    /**
+     * Getter for plug-in UI type, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return plug-in UI type
+     */
+	   IMPORT_C const TInt & PluginUiType() const;
+
+    /**
+     * Getter for plug-in filter type, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return plug-in filter type
+     */
+	   IMPORT_C TInt & PluginFilterType();
+
+    /**
+     * Getter for plug-in filter type, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return plug-in filter type
+     */
+	   IMPORT_C const TInt & PluginFilterType() const;
+
+    /**
+     * Getter for plug-in scope, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return plug-in scope
+     */
+     IMPORT_C TInt & PluginScope();
+
+    /**
+     * Getter for plug-in scope, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return plug-in scope
+     */
+     IMPORT_C const TInt & PluginScope() const;
+
+    /**
+     * Getter for plug-in display order, non-const.
+     * Determines the order in which the plugins are 
+     * displayed in the user interface.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return plug-in order
+     */
+     IMPORT_C TInt & PluginDisplayOrder();
+
+    /**
+     * Getter for plug-in display order, const.
+     * Determines the order in which the plugins are 
+     * displayed in the user interface.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return plug-in order
+     */
+     IMPORT_C const TInt & PluginDisplayOrder() const;
+
+    /**
+     * Getter for plug-in RID, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return plug-in RID
+     */
+     IMPORT_C TInt & PluginRID();
+
+    /**
+     * Getter for plug-in RID, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return plug-in RID
+     */
+     IMPORT_C const TInt & PluginRID() const;
+
+    /** 
+     * Getter for plug-in name, non-const.
+     *
+     *	@param -
+     *	@return plug-in name
+     */
+	   IMPORT_C HBufC *& PluginName();
+
+    /** 
+     * Getter for plug-in name, const.
+     *
+     * @param -
+     * @return plug-in name
+     */
+     IMPORT_C const TDesC & PluginName() const;
+
+    /**
+     * Getter for plug-in group icon file name, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return icon file name
+     */
+     IMPORT_C HBufC *& IconFile();
+
+    /**
+     * Getter for plug-in group icon file name, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return icon file name
+     */
+     IMPORT_C const TDesC & IconFile() const;
+
+    /**
+     * Getter for plug-in group icon bitmap, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return icon bitmap
+     */
+     IMPORT_C CFbsBitmap *& Icon();
+
+    /**
+     * Getter for plug-in group icon bitmap, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return icon bitmap
+     */
+     IMPORT_C const CFbsBitmap * Icon() const;
+
+    /**
+     * Getter for plug-in mask bitmap, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return mask bitmap
+     */
+     IMPORT_C CFbsBitmap *& Mask();
+
+    /**
+     * Getter for plug-in mask bitmap, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return mask bitmap
+     */
+     IMPORT_C const CFbsBitmap * Mask() const;
+
+    /**
+     * Getter for parameter descriptor array, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return pointer to descriptor array
+     */
+     IMPORT_C CDesCArray & Parameters();
+
+    /**
+     * Getter for parameter descriptor array, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return pointer to descriptor array
+     */
+     IMPORT_C const CDesCArray & Parameters() const;
+
+    /**
+     * Getter for soft key 1 command ID, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return command ID for soft key 1
+     */
+     IMPORT_C CArrayFix<TInt> & Sk1Cmds();
+
+    /**
+     * Getter for soft key 1 command ID, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return command ID for soft key 1
+     */
+     IMPORT_C const CArrayFix<TInt> & Sk1Cmds() const;
+
+    /**
+     * Getter for soft key 1 texts, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return soft key texts
+     */
+     IMPORT_C CDesCArray &  Sk1Texts();
+
+    /**
+     * Getter for soft key 1 texts, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return soft key texts
+     */
+     IMPORT_C const CDesCArray & Sk1Texts() const;
+
+    /**
+     * Getter for soft key 2 command ID, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return command ID for soft key 2
+     */
+     IMPORT_C CArrayFix<TInt> & Sk2Cmds();
+
+    /**
+     * Getter for soft key 2 command ID, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return command ID for soft key 2
+     */
+     IMPORT_C const CArrayFix<TInt> & Sk2Cmds() const;
+
+    /**
+     * Getter for soft key 2 texts, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return soft key texts
+     */
+     IMPORT_C CDesCArray & Sk2Texts();
+
+    /**
+     * Getter for soft key 1 texts, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return soft key texts
+     */
+     IMPORT_C const CDesCArray & Sk2Texts() const;
+    
+    /**
+     * Getter for middle soft key command ID, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return command ID for soft key 2
+     */
+     IMPORT_C CArrayFix<TInt> & MSKCmds();
+
+    /**
+     * Getter for middle soft key command ID, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return command ID for soft key 2
+     */
+     IMPORT_C const CArrayFix<TInt> & MSKCmds() const;
+
+    /**
+     * Getter for middle soft key texts, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return soft key texts
+     */
+     IMPORT_C CDesCArray & MSKTexts();
+
+    /**
+     * Getter for middle soft key texts, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return soft key texts
+     */
+     IMPORT_C const CDesCArray & MSKTexts() const;
+    
+    /**
+     * Getter for menu items, non-const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return reference to menu item array
+     */
+     IMPORT_C CMenuItemArray & MenuItems();
+
+    /**
+     * Getter for menu items, const.
+     *
+     * @since S60 v5.0
+     * @param -
+     * @return reference to menu item array
+     */
+     IMPORT_C const CMenuItemArray & MenuItems() const;
+
+    /**
+     * Externalises the object.
+     * All the member variables are serialized into the stream, 
+     * except for the CFbsBitmap members iIcon and iMask. For those,
+     * only file path is stored, and the icons need to be created 
+     * from file when internalizing the object.
+     *
+     * @since S60 v5.0
+     * @param aStream - write stream
+     * @return -
+     */
+     IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+
+    /** InternalizeL
+     *
+     * Internalises the object.
+     * All the member variables are serialized into the stream, 
+     * except for the CFbsBitmap members iIcon and iMask. For those,
+     * only file path is stored, and the icons need to be created 
+     * from file when internalizing the object.
+     *	
+     * @since S60 v5.0	
+     * @param aStream - read stream
+     * @return -
+     */
+     IMPORT_C void InternalizeL(RReadStream& aStream);
+
+
+protected:
+private:
+
+     CPluginInfo ();
+
+     void ConstructL ();
+
+private: // data
+
+    /**
+     * Plug-in DLL name
+     */
+     HBufC *				    iPluginDllName;
+   
+    /**
+     * Plug-in DLL UID 2
+     */     
+     TUid				    iUID2;
+	
+    /**
+     * Plug-in DLL UID 3
+     */	
+     TUid				    iUID3;
+	
+    /**
+     * Plug-in UI type
+     */	
+     TInt				    iPluginUiType;
+	
+    /**
+     * Plug-in filter type
+     */		
+     TInt				    iPluginFilterType;
+	
+    /**
+     * Plug-in scope
+     */		
+     TInt				    iScope;
+	
+    /**
+     * Plug-in run-time ID (RID)
+     */		
+     TInt				    iPluginRID;
+	
+    /**
+     * Plug-in display order
+     */		
+     TInt				    iPluginDisplayOrder;
+	
+    /**
+     * Plug-in name
+     */		
+     HBufC *				    iPluginName;
+	
+    /**
+     * Icon name
+     */		
+     HBufC *				    iIconFileName;
+	
+    /**
+     * Icon bitmap
+     */		
+     CFbsBitmap *		    iIcon;
+	
+    /**
+     * Icon mask bitmap
+     */		
+     CFbsBitmap *		    iMask;
+	
+    /**
+     * Parameter array
+     */		
+     CDesCArray *	        iParams; 
+	
+    /**
+     * Soft key 1 command ID
+     */		
+     CArrayFix<TInt> *       iSk1Cmds;
+    
+    /**
+     * Soft key 1 text
+     */	    
+     CDesCArray *            iSk1Texts;
+    
+    /**
+     * Soft key 2 command ID
+     */	    
+     CArrayFix<TInt> *       iSk2Cmds;
+    
+    /**
+     * Soft key 2 text
+     */	    
+     CDesCArray *            iSk2Texts;
+    
+    /**
+     * Middle soft key command ID
+     */	    
+     CArrayFix<TInt> *       iMSKCmds;
+    
+    /**
+     * Middle soft key text
+     */	    
+     CDesCArray *            iMSKTexts;
+
+     
+    /**
+     * Menu items
+     */	    
+     CMenuItemArray *        iMenuItems;
+
+};
+
+
+#endif // PLUGININFO_H