williamr@2: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __APGICNFL_H__ williamr@2: #define __APGICNFL_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: class CFbsBitmap; williamr@2: class CPersistentStore; williamr@2: class RReadStream; williamr@2: class RWriteStream; williamr@2: williamr@2: class CApaMaskedBitmap : public CFbsBitmap williamr@2: /** An application icon. williamr@2: williamr@2: This is a bitmap and a mask, managed by the Font and Bitmap server. williamr@2: williamr@2: An object of this type is passed to RApaLsSession::GetAppIcon() to fetch a williamr@2: suitable application icon. williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: @see RApaLsSession::GetAppIcon() */ williamr@2: { williamr@2: public: williamr@2: IMPORT_C static CApaMaskedBitmap* NewLC(); williamr@2: IMPORT_C static CApaMaskedBitmap* NewL(const CApaMaskedBitmap* aSourceIcon); williamr@2: // williamr@2: IMPORT_C CFbsBitmap* Mask() const; williamr@2: IMPORT_C void InternalizeL(RReadStream& aStream); //lint !e1511 Member hides non-virtual member - CFbsBitmap not primary intended for derivation williamr@2: IMPORT_C void ExternalizeL(RWriteStream& aStream) const;//lint !e1511 Member hides non-virtual member - CFbsBitmap not primary intended for derivation williamr@2: // williamr@2: IMPORT_C ~CApaMaskedBitmap(); williamr@2: void SetRomBitmapL(TUint8* aRomPointer); //lint !e1511 Member hides non-virtual member - CFbsBitmap not primary intended for derivation williamr@2: IMPORT_C void SetMaskBitmap(CFbsBitmap* aMask); williamr@2: private: williamr@2: CApaMaskedBitmap(); williamr@2: void ConstructL(); williamr@2: private: williamr@2: CFbsBitmap* iMask; williamr@2: }; williamr@2: williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: class CApaResourceFileWriterBase : public CBase williamr@2: { williamr@2: protected: williamr@2: class RBufferSink; williamr@2: class MDataSink williamr@2: { williamr@2: public: williamr@2: void WriteBufferL(const TDesC8& aBuffer); williamr@2: void WriteCompressedUnicodeRunL(TInt aNumberOfBytesWhenUncompressed, const TDesC8& aTextAsCompressedUnicode); williamr@2: void WriteInCompressedUnicodeFormatL(TInt aNumberOfBytesWhenUncompressed, const TDesC8& aData, TBool aInCompressedUnicodeRun); williamr@2: TInt NumberOfBytesWhenUncompressed() const; williamr@2: inline TBool CompressedUnicodeFormat() const {return (iBufferSinkForCompressedUnicodeFormat!=NULL);} williamr@2: protected: williamr@2: MDataSink(RBufferSink* aBufferSinkForCompressedUnicodeFormat); williamr@2: void FlushL(TBool aFinalFlush); williamr@2: void Reset(TInt& aNumberOfBytesWhenUncompressed); williamr@2: private: williamr@2: void WriteRunLengthL(TInt aRunLength); williamr@2: private: williamr@2: enum williamr@2: { williamr@2: EFlag_InCompressedUnicodeRun =0x00000001 williamr@2: }; williamr@2: private: williamr@2: // new virtual functions williamr@2: virtual void DoWriteBufferL(const TDesC8& aBuffer)=0; williamr@2: private: williamr@2: TInt iNumberOfBytesWhenUncompressed; williamr@2: TUint iFlags; williamr@2: RBufferSink* iBufferSinkForCompressedUnicodeFormat; // does not own what it points to williamr@2: }; williamr@2: class RBufferSink : public MDataSink williamr@2: { williamr@2: public: williamr@2: RBufferSink(RBufferSink* aBufferSinkForCompressedUnicodeFormat); williamr@2: void ConstructLC(); williamr@2: void Close(); williamr@2: void FlushAndGetAndResetL(TInt& aNumberOfBytesWhenUncompressed, RBuf8& aBuffer); williamr@2: private: williamr@2: // from MDataSink williamr@2: virtual void DoWriteBufferL(const TDesC8& aBuffer); williamr@2: private: williamr@2: RBuf8 iBuffer; williamr@2: }; williamr@2: protected: williamr@2: CApaResourceFileWriterBase(); williamr@2: void DoGenerateFileContentsL(RBuf8& aBuffer, TUid aUid2, TUid aUid3) const; williamr@2: void WriteUidTypeL(MDataSink& aDataSink, TUid aUid2, TUid aUid3) const; williamr@2: void WriteTextL(MDataSink& aDataSink, const TDesC& aText) const; williamr@2: void WriteText8L(MDataSink& aDataSink, const TDesC8& aText8) const; williamr@2: void WriteUint8L(MDataSink& aDataSink, TUint aUint8) const; williamr@2: void WriteLittleEndianUint16L(MDataSink& aDataSink, TUint aUint16) const; williamr@2: void WriteLittleEndianUint32L(MDataSink& aDataSink, TUint aUint32) const; williamr@2: void WriteBufferL(MDataSink& aDataSink, const TDesC8& aBuffer) const; williamr@2: private: williamr@2: static HBufC8* AsCompressedUnicodeLC(const TDesC& aUncompressedUnicode); williamr@2: void MainResourceInCompiledFormatLC(TInt& aMainResourceSizeInBytesWhenUncompressed, RBuf8& aBuffer, TBool aCompressedUnicodeFormat) const; williamr@2: private: williamr@2: // new virtual functions williamr@2: virtual void MainResourceInCompiledFormatL(MDataSink& aDataSink) const=0; williamr@2: virtual const TDesC8* SecondResourceL(TBool& aSecondResourceInCompressedUnicodeFormat) const=0; williamr@2: }; williamr@2: williamr@2: /** williamr@2: Used to support the registration of non-native applications. williamr@2: williamr@2: The task of this class is to generate the resource files expected by the Apparc server. Applications williamr@2: that register other applications can use functions of this class to customise the generated resource files. williamr@2: williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: class CApaRegistrationResourceFileWriter : public CApaResourceFileWriterBase williamr@2: { williamr@2: public: williamr@2: IMPORT_C static CApaRegistrationResourceFileWriter* NewL(TUid aAppUid, const TDesC& aAppFile, TUint aAttributes); williamr@2: IMPORT_C virtual ~CApaRegistrationResourceFileWriter(); williamr@2: TUid AppUid() const; williamr@2: void GenerateFileContentsL(RBuf8& aBuffer) const; williamr@2: void SetLocalisableResourceFileL(const TDesC& aLocalisableResourceFile); williamr@2: IMPORT_C void SetAppIsHiddenL(TBool aAppIsHidden); williamr@2: IMPORT_C void SetEmbeddabilityL(TApaAppCapability::TEmbeddability aEmbeddability); williamr@2: IMPORT_C void SetSupportsNewFileL(TBool aSupportsNewFile); williamr@2: IMPORT_C void SetLaunchInBackgroundL(TBool aLaunchInBackground); williamr@2: IMPORT_C void SetGroupNameL(const TDesC& aGroupName); williamr@2: IMPORT_C void SetDefaultScreenNumberL(TInt aDefaultScreenNumber); williamr@2: IMPORT_C void SetOpaqueDataL(const TDesC8& aOpaqueData); williamr@2: IMPORT_C void AddDataTypeL(TInt aPriority, const TDesC8& aType); williamr@2: IMPORT_C void AddFileOwnershipInfoL(const TDesC& aFileName); williamr@2: // Not needing to be supported for the foreseeable future: williamr@2: // IMPORT_C void AddServiceInfoL(TUid aServiceUid, const TDesC8* aOpaqueData); williamr@2: // IMPORT_C void AddServiceInfoDataTypeL(TUid aServiceUid, TInt aPriority, const TDesC8& aType); williamr@2: private: williamr@2: struct SDataType // DATATYPE williamr@2: { williamr@2: TInt iPriority; williamr@2: HBufC8* iType; williamr@2: }; williamr@2: struct SFileOwnershipInfo // FILE_OWNERSHIP_INFO williamr@2: { williamr@2: HBufC* iFileName; williamr@2: }; williamr@2: private: williamr@2: CApaRegistrationResourceFileWriter(TUid aAppUid, TUint aAttributes); williamr@2: void ConstructL(const TDesC& aAppFile); williamr@2: void WriteDataTypeL(MDataSink& aDataSink, const SDataType& aDataType) const; williamr@2: void WriteFileOwnershipInfoL(MDataSink& aDataSink, const SFileOwnershipInfo& aFileOwnershipInfo) const; williamr@2: // from CApaResourceFileWriterBase williamr@2: virtual void MainResourceInCompiledFormatL(MDataSink& aDataSink) const; williamr@2: virtual const TDesC8* SecondResourceL(TBool& aSecondResourceInCompressedUnicodeFormat) const; williamr@2: private: williamr@2: TUid iAppUid; williamr@2: HBufC* iAppFile; williamr@2: TUint iAttributes; williamr@2: HBufC* iLocalisableResourceFile; williamr@2: TBool iAppIsHidden; williamr@2: TApaAppCapability::TEmbeddability iEmbeddability; williamr@2: TBool iSupportsNewFile; williamr@2: TBool iLaunchInBackground; williamr@2: HBufC* iGroupName; williamr@2: TInt iDefaultScreenNumber; williamr@2: HBufC8* iOpaqueData; williamr@2: RArray iDataTypeList; williamr@2: RArray iFileOwnershipList; williamr@2: }; williamr@2: williamr@2: /** williamr@2: @internalAll williamr@2: */ williamr@2: class CApaLocalisableResourceFileWriter : public CApaResourceFileWriterBase williamr@2: { williamr@2: public: williamr@2: IMPORT_C static CApaLocalisableResourceFileWriter* NewL(const TDesC& aShortCaption, const TDesC& aCaption, TInt aNumberOfIcons, const TDesC& aGroupName); williamr@2: IMPORT_C virtual ~CApaLocalisableResourceFileWriter(); williamr@2: void GenerateFileContentsL(RBuf8& aBuffer) const; williamr@2: void SetIconFileL(const TDesC& aIconFile); williamr@2: // Not needing to be supported for the foreseeable future: williamr@2: // IMPORT_C void AddViewDataL(TUid aViewUid, TInt aScreenMode, const TDesC& aCaption, TInt aNumberOfIcons, const TDesC& aIconFile); williamr@2: private: williamr@2: struct SCaptionAndIconInfo // CAPTION_AND_ICON_INFO williamr@2: { williamr@2: HBufC* iCaption; williamr@2: TInt iNumberOfIcons; williamr@2: HBufC* iIconFile; williamr@2: }; williamr@2: private: williamr@2: CApaLocalisableResourceFileWriter(TInt aNumberOfIcons); williamr@2: void ConstructL(const TDesC& aShortCaption, const TDesC& aCaption, const TDesC& aGroupName); williamr@2: void WriteCaptionAndIconInfoL(MDataSink& aDataSink, const SCaptionAndIconInfo& aCaptionAndIcon) const; williamr@2: // from CApaResourceFileWriterBase williamr@2: virtual void MainResourceInCompiledFormatL(MDataSink& aDataSink) const; williamr@2: virtual const TDesC8* SecondResourceL(TBool& aSecondResourceInCompressedUnicodeFormat) const; williamr@2: private: williamr@2: HBufC* iShortCaption; williamr@2: SCaptionAndIconInfo iCaptionAndIcon; williamr@2: HBufC* iGroupName; williamr@2: }; williamr@2: williamr@2: #if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER) williamr@2: williamr@2: class CApaAppInfoFileWriter; williamr@2: williamr@2: /** williamr@2: @internalAll williamr@2: */ williamr@2: const TUid KUidInterimFormatFileForJavaMIDletInstaller={0x10208182}; williamr@2: williamr@2: /** williamr@2: @internalAll williamr@2: */ williamr@2: class ForJavaMIDletInstaller williamr@2: { williamr@2: public: williamr@2: IMPORT_C static void CheckInterimFormatFileNotCorruptL(RFile& aInterimFormatFile); williamr@2: IMPORT_C static void GetJavaMIDletInfoL(RFs& aFs, const TDesC& aFileName,TUint32& aJavaMIDletInfo_AmsAuthId,TUint32& aJavaMIDletInfo_MIDlet); williamr@2: IMPORT_C static CApaAppInfoFileWriter* NewInterimFormatFileWriterLC(RFs& aFs,const TDesC& aFileName,TUid aApplicationUid,TUint32 aJavaMIDletInfo_AmsAuthId,TInt aJavaMIDletInfo_MIDlet); williamr@2: }; williamr@2: williamr@2: #endif // UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER williamr@2: williamr@2: #if (((defined(SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1) || !defined(SYMBIAN_HIDE_UI_FRAMEWORKS_V1)) && !defined(SYMBIAN_REMOVE_UI_FRAMEWORKS_V1)) || defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)) williamr@2: williamr@2: #if !defined(IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER) williamr@2: // we're compiling a source file that doesn't define IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER, so give it it's default "value" of "IMPORT_C" williamr@2: #define IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER IMPORT_C williamr@2: #endif williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: */ williamr@2: #ifdef _UNICODE williamr@2: #define KUidAppInfoFile KUidAppInfoFile16 williamr@2: #else williamr@2: #define KUidAppInfoFile KUidAppInfoFile8 williamr@2: #endif williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: */ williamr@2: const TUid KUidAppInfoFile8={268435562}; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: */ williamr@2: const TUid KUidAppInfoFile16={0x10003A38}; williamr@2: williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: const TUid KUidAppInfoFileVersion2={0x101fb032}; williamr@2: williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: enum TAifVersion williamr@2: // The order here is important, only ever APPEND to the list williamr@2: { williamr@2: EAifVersionOriginal, williamr@2: EAifVersionAddsDataType, williamr@2: EAifVersionAddsViewData, williamr@2: EAifVersionAddsFileOwnershipInfo williamr@2: #if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER) williamr@2: ,EAifVersionAddsJavaMIDletInfo williamr@2: #endif williamr@2: }; williamr@2: williamr@2: class CApaAIFCaption : public CBase williamr@2: // williamr@2: // Represents a caption in an AIF during reading and writing of the file. williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: { williamr@2: public: williamr@2: ~CApaAIFCaption(); williamr@2: CApaAIFCaption(); williamr@2: void ConstructL(TLanguage aLanguage,const TDesC& aCaption); williamr@2: static CApaAIFCaption* NewLC(TLanguage aLanguage,const TDesC& aCaption); williamr@2: void InternalizeL(RReadStream& aStream); williamr@2: void ExternalizeL(RWriteStream& aStream) const; williamr@2: TLanguage Language() const; williamr@2: TApaAppCaption Caption() const; williamr@2: public: williamr@2: HBufC* iCaption; williamr@2: TLanguage iLanguage; williamr@2: }; williamr@2: williamr@2: class CApaAIFViewData : public CBase williamr@2: // williamr@2: // Represents the data associated with an application view described in an AIF williamr@2: // during reading and writing of the file. williamr@2: // implementation class williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: { williamr@2: public: williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TApaAppCaption CaptionL(TLanguage aLanguage) const; williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER CApaMaskedBitmap* IconByIndexL(TInt aIndex) const; williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TInt NumberOfIcons() const; williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TUid ViewUid() const; williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TInt ScreenMode() const; williamr@2: public: williamr@2: ~CApaAIFViewData(); williamr@2: static CApaAIFViewData* NewLC(); williamr@2: static CApaAIFViewData* NewLC(const CApaAIFViewData& aSourceData); williamr@2: void InternalizeL(RReadStream& aStream); williamr@2: void ExternalizeL(RWriteStream& aStream) const; williamr@2: void SetScreenMode(TInt aScreenMode); williamr@2: void AddCaptionL(TLanguage aLanguage,const TDesC& aCaption); williamr@2: void AddIconL(CApaMaskedBitmap& aIcon); williamr@2: void AddIconIndexL(TInt aIndex); williamr@2: void SetViewUid(TUid aUid); williamr@2: void LoadIconsL(const TDesC& aFileName, TUint aMbmOffset); williamr@2: private: williamr@2: CApaAIFViewData(); williamr@2: void ConstructL(); williamr@2: void ConstructL(const CApaAIFViewData& aSourceData); williamr@2: private: williamr@2: TInt iScreenMode; williamr@2: CArrayPtr* iIconArray; williamr@2: CArrayPtr* iCaptionArray; williamr@2: TUid iViewUid; williamr@2: CArrayFixFlat* iIconIndexArray; // used for AIF version 2 format williamr@2: }; williamr@2: williamr@2: class CApaAppInfoFile : public CBase williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: { williamr@2: #if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER) williamr@2: friend class ForJavaMIDletInstaller; williamr@2: #endif williamr@2: public: williamr@2: ~CApaAppInfoFile(); williamr@2: // williamr@2: protected: williamr@2: CApaAppInfoFile(RFs& aFs); williamr@2: void ConstructL(); williamr@2: protected: williamr@2: williamr@2: class TCaptionHeader williamr@2: { williamr@2: public: williamr@2: void InternalizeL(RReadStream& aStream); // internalizes the header info only williamr@2: void ExternalizeL(RWriteStream& aStream) const; // externalizes the header info only williamr@2: public: williamr@2: TSwizzle iCaption; williamr@2: TLanguage iLanguage; williamr@2: }; williamr@2: class TIconHeader williamr@2: { williamr@2: public: williamr@2: void InternalizeL(RReadStream& aStream); // internalizes the header info only williamr@2: void ExternalizeL(RWriteStream& aStream) const; // externalizes the header info only williamr@2: public: williamr@2: TSwizzle iIcon; // Used for old AIF format Internalize williamr@2: TInt iIconSideInPixels; williamr@2: TSwizzle iIconMain; // Used for new AIF format williamr@2: TSwizzle iIconMask; // Used for new AIF format williamr@2: }; williamr@2: class TDataTypeHeader williamr@2: { williamr@2: public: williamr@2: // header info only williamr@2: void InternalizeL(RReadStream& aStream); // internalizes the header info only williamr@2: void ExternalizeL(RWriteStream& aStream) const; // externalizes the header info only williamr@2: public: williamr@2: TSwizzle iDataType; williamr@2: TDataTypePriority iPriority; williamr@2: }; williamr@2: class TViewDataHeader williamr@2: { williamr@2: public: williamr@2: void InternalizeL(RReadStream& aStream); // internalizes the header info only williamr@2: void ExternalizeL(RWriteStream& aStream) const; // externalizes the header info only williamr@2: public: williamr@2: TSwizzle iViewData; williamr@2: }; williamr@2: class TFileOwnershipInfoHeader williamr@2: { williamr@2: public: williamr@2: void InternalizeL(RReadStream& aStream); // internalizes the header info only williamr@2: void ExternalizeL(RWriteStream& aStream) const; // externalizes the header info only williamr@2: public: williamr@2: TSwizzle iOwnedFileName; williamr@2: }; williamr@2: protected: williamr@2: RFs& iFs; williamr@2: CPersistentStore* iStore; williamr@2: CArrayFix* iCaptionHeaderArray; williamr@2: CArrayFix* iIconHeaderArray; williamr@2: CArrayFix* iDataTypeHeaderArray; williamr@2: CArrayFix* iViewDataHeaderArray; williamr@2: CArrayFix* iFileOwnershipInfoHeaderArray; williamr@2: TApaAppCapability iCapability; williamr@2: }; williamr@2: williamr@2: class CApaAppInfoFileReader : public CApaAppInfoFile williamr@2: /** Aif file reader. williamr@2: williamr@2: Aif files contain information about an application, including its icons and williamr@2: captions. williamr@2: williamr@2: An application can get a reader for its own aif file by calling CEikApplication::OpenAppInfoFileLC(). williamr@2: williamr@2: @publishedAll williamr@2: @deprecated */ williamr@2: { williamr@2: #if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER) williamr@2: friend class ForJavaMIDletInstaller; williamr@2: #endif williamr@2: public: williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER static CApaAppInfoFileReader* NewLC(RFs& aFs, const TDesC& aFileName,TUid aApplicationUid=KNullUid); williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER static CApaAppInfoFileReader* NewL(RFs& aFs, const TDesC& aFileName,TUid aApplicationUid=KNullUid); williamr@2: // williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void Capability(TDes8& aInfo) const; williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TApaAppCaption CaptionL(TLanguage aLanguage); williamr@2: williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER CApaMaskedBitmap* CreateMaskedBitmapL(TInt aIconSideInPixels); // If there are no bitmaps in the file this method leaves with KErrNotFound williamr@2: // Not available until ER6 williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER CApaMaskedBitmap* CreateMaskedBitmapByIndexLC(TInt aIndex); // If there are no bitmaps in the file this method leaves with KErrNotFound williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TInt NumberOfBitmaps() const; williamr@2: williamr@2: // Not available till ER5 williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void DataTypesSupportedL(CArrayFix& aTypeList) const; williamr@2: // williamr@2: williamr@2: // Not available till ER6.1 williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void GetViewsL(CArrayPtr& aViewList) const; williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void GetOwnedFilesL(CDesCArray& aOwnedFilesList) const; williamr@2: // williamr@2: williamr@2: // utility function williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER static void StretchDrawL(CFbsBitmap* aSource,CFbsBitmap* aTarget,TSize aSizeInPixels); williamr@2: // williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER ~CApaAppInfoFileReader(); williamr@2: public: williamr@2: static void GetAifFileNameL(const TDesC& aFullName,TDes& aAifName); williamr@2: private: williamr@2: CApaAppInfoFileReader(RFs& aFs); williamr@2: void InternalizeL(RReadStream& aStream); williamr@2: void ConstructL(const TDesC& aFileName,TUid aUid); williamr@2: void LoadAifFileVersionTwoL(const TDesC& aFileName, TUid aMostDerivedUid); williamr@2: void AddIconHeadersL(const TDesC& aFileName, TInt32 aFileOffset, TInt aNumIcons); williamr@2: private: williamr@2: HBufC* iDefaultCaption; williamr@2: TUint8* iRomPointer; williamr@2: TInt iMbmOffset; williamr@2: HBufC* iAifFileName; williamr@2: #if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER) williamr@2: TUint32 iJavaMIDletInfo_AmsAuthId; williamr@2: TInt iJavaMIDletInfo_MIDlet; williamr@2: #endif williamr@2: }; williamr@2: williamr@2: class CApaAppInfoFileWriter : public CApaAppInfoFile williamr@2: /** williamr@2: Aif file writer. williamr@2: williamr@2: This class writes application information, including icons and captions into the aif file. williamr@2: williamr@2: @publishedAll williamr@2: @deprecated */ williamr@2: { williamr@2: #if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER) williamr@2: friend class ForJavaMIDletInstaller; williamr@2: #endif williamr@2: public: williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER static CApaAppInfoFileWriter* NewLC(RFs& aFs, const TDesC& aFileName,TUid aApplicationUid); williamr@2: // williamr@2: IMPORT_C TInt SetCapability(const TDesC8& aInfo); williamr@2: IMPORT_C void AddCaptionL(TLanguage aLanguage,const TDesC& aCaption); williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void AddIconL(const TDesC& aIconFileName); williamr@2: IMPORT_C void AddIconL(CApaMaskedBitmap& aIcon); williamr@2: williamr@2: // Not available till ER5 williamr@2: IMPORT_C void AddDataTypeL(const TDataTypeWithPriority& aTypePriority); williamr@2: // williamr@2: williamr@2: // Not available till ER6.1 williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void AddViewL(TUid aViewUid); williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void AddViewL(TUid aViewUid,TInt aScreenMode); williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void AddViewCaptionL(TLanguage aLanguage,const TDesC& aCaption,TUid aViewUid); williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void AddViewIconL(CApaMaskedBitmap& aIcon,TUid aViewUid); williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void StoreViewL(TUid aViewId); williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void AddOwnedFileL(const TDesC& aOwnedFileName); williamr@2: // williamr@2: williamr@2: IMPORT_C void StoreL(); williamr@2: // williamr@2: IMPORT_C ~CApaAppInfoFileWriter(); williamr@2: private: williamr@2: CApaAppInfoFileWriter(RFs& aFs); williamr@2: void ExternalizeL(RWriteStream& aStream) const; williamr@2: void ConstructL(const TDesC& aFileName,TUid aUid williamr@2: #if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER) williamr@2: ,TUid aMiddleUid=KUidAppInfoFile,TUint32 aJavaMIDletInfo_AmsAuthId=0,TInt aJavaMIDletInfo_MIDlet=0 williamr@2: #endif williamr@2: ); williamr@2: private: williamr@2: CStoreMap* iMap; williamr@2: #if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER) williamr@2: TUint32 iJavaMIDletInfo_AmsAuthId; williamr@2: TInt iJavaMIDletInfo_MIDlet; williamr@2: #endif williamr@2: }; williamr@2: williamr@2: class CApaAppCaptionFileReader : public CBase williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: { williamr@2: public: williamr@2: CApaAppCaptionFileReader(RFs& aFs,const TDesC& iAppFileName); williamr@2: void GetCaptionsL(TApaAppCaption& aCaption,TApaAppCaption& aShortCaption); williamr@2: private: williamr@2: RFs& iFs; williamr@2: TFileName iCaptionFileName; williamr@2: }; williamr@2: williamr@2: class AppInfoFileUtils williamr@2: // Internal utilities providing helper functions for non-ROM localisation williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: { williamr@2: public: // For internal use only williamr@2: IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER static void GetAifFileName(const RFs& aFs,TDes& aAifName); williamr@2: public: williamr@2: static void GetAifFileNameL(const RFs& aFs,const TDesC& aFullName,TDes& aAifName); williamr@2: }; williamr@2: #endif // #if (defined(SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1) || !defined(SYMBIAN_HIDE_UI_FRAMEWORKS_V1)) && !defined(SYMBIAN_REMOVE_UI_FRAMEWORKS_V1) williamr@2: williamr@2: #endif