--- /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