williamr@2: /* williamr@2: * Copyright (c) 2002 - 2005 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: A utility that provides services to both the Speeddial and williamr@2: * PhoneBook applications for getting and setting speeddial williamr@2: * number configuration. williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: #ifndef SPDIACONTROL_H williamr@2: #define SPDIACONTROL_H williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: // FORWARD DECLARATIONS williamr@2: class CAknGrid; williamr@2: class CGulIcon; williamr@2: class CEikonEnv; williamr@2: class TSpdiaIndexData; williamr@2: class CPbkContactEngine; williamr@2: class RPbkViewResourceFile; williamr@2: class CEikStatusPane; williamr@2: class CPAlbImageData; williamr@2: class CSpdiaGridDlg; williamr@2: class CPbkContactChangeNotifier; williamr@2: class CPbkSingleItemFetchDlg; williamr@2: class CAknQueryDialog; williamr@2: williamr@2: class CPAlbImageFactory; williamr@2: class CPbkThumbnailManager; williamr@2: williamr@2: class CAknsBasicBackgroundControlContext; williamr@2: #include williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: * A utility that provides services to both the Speeddial and PhoneBook williamr@2: * applications for getting and setting speeddial number configuration. williamr@2: * williamr@2: * @lib SpdCtrl.DLL williamr@2: * @deprecated williamr@2: * @since williamr@2: */ williamr@2: // one line code added for build ver 2.6 williamr@2: const TInt KArraySize =9; williamr@2: class CSpdiaControl : public CCoeControl, williamr@2: public MPbkContactDbObserver, williamr@2: private MPbkThumbnailGetObserver williamr@2: { williamr@2: public: // SpdiaControl APIs williamr@2: /** williamr@2: * Creates a new instace of this class. williamr@2: */ williamr@2: IMPORT_C static CSpdiaControl* NewL(); williamr@2: williamr@2: /** williamr@2: * Creates a new instace of this class. williamr@2: * williamr@2: * @param aPbkEngine reference of CPbkContactEngine. williamr@2: */ williamr@2: IMPORT_C static CSpdiaControl* NewL( williamr@2: CPbkContactEngine& aPbkEngine); williamr@2: williamr@2: /** williamr@2: * Puts a query on the screen asking for '...Assign it now'. williamr@2: * When the user goes through, it will assign speed dial. williamr@2: * williamr@2: * @param aLocation a location to assign speed dial. williamr@2: * @param aStatusPane not used. williamr@2: * @reutn ETrue if success. williamr@2: */ williamr@2: IMPORT_C TBool AssignDialNumberL(TInt aLocation, williamr@2: CEikStatusPane* aStatusPane = NULL); williamr@2: williamr@2: /** williamr@2: * Runs the Speed Dial Selection Grid Dialog. williamr@2: * If accepted sets speed dial key to aItem's aFieldId. williamr@2: * Note: Calls CPbkContactEngine::SetFieldAsSpeedDialL(). williamr@2: * If necessary, calls CPbkContactEngine::RemoveSpeedDialFieldL(). williamr@2: * williamr@2: * @param aId a contact item id. (Don't open) williamr@2: * @param aFieldId index to aItems field set. williamr@2: * @return nonzero if accepted, zero if canceled. williamr@2: */ williamr@2: IMPORT_C TInt ExecuteLD(TContactItemId aId, TInt aFieldIdx); williamr@2: williamr@2: /** williamr@2: * Cancels and dismisses this dialog. In other words makes williamr@2: * ExecuteLD return just like cancel was pressed. williamr@2: * Used when user switches a application and all modal williamr@2: * dialogs are closed. williamr@2: */ williamr@2: IMPORT_C void Cancel(); williamr@2: williamr@2: /** williamr@2: * The assigned number of the location is obtained. williamr@2: * Note: Voice mail number will be returned if the location williamr@2: * is the position of Voice mail. williamr@2: * Note: If the location is empty, required dialog williamr@2: * will be displayed and a location will be assigned. williamr@2: * williamr@2: * @param aLocation a location of speed dial. williamr@2: * @param aPhonenumber reference of phonenumber. williamr@2: * @param aStatusPane not used. williamr@2: * @return EFalse if user cancel or failed. williamr@2: */ williamr@2: IMPORT_C TBool DialNumberL(TInt aLocation, TDes& aPhoneNumber, williamr@2: CEikStatusPane* aStatusPane = NULL); williamr@2: williamr@2: private: // Constructors williamr@2: /** williamr@2: * C++ default constructor. williamr@2: */ williamr@2: CSpdiaControl(); williamr@2: williamr@2: /** williamr@2: * C++ constructor. williamr@2: */ williamr@2: CSpdiaControl(CPbkContactEngine* aPbkEngine); williamr@2: williamr@2: /** williamr@2: * Gets actual size of thumbnial to be drawn. williamr@2: * @return size of thumbnail. williamr@2: */ williamr@2: TSize GetThumbnailSize(); williamr@2: williamr@2: public: // Destructor williamr@2: williamr@2: /** williamr@2: * Destructor. williamr@2: */ williamr@2: IMPORT_C virtual ~CSpdiaControl(); williamr@2: williamr@2: public: // New function williamr@2: /** williamr@2: * The number of voice mail returned, if voice mail is assigned. williamr@2: * Note: If the location is empty, required dialog williamr@2: * will be displayed and voice mail will be defined. williamr@2: * williamr@2: * @param aNumber reference of phone number. williamr@2: * @retunr EFalse if user cancel or failed. williamr@2: */ williamr@2: IMPORT_C TBool VoiceMailL(TDes& aNumber); williamr@2: williamr@2: /** williamr@2: * Returns the owned Phone Book Engine. williamr@2: */ williamr@2: IMPORT_C CPbkContactEngine* PbkEngine() const; williamr@2: williamr@2: /** williamr@2: * The value converted into the index of an array from williamr@2: * the location of speeddial is returned. williamr@2: * williamr@2: * @param aDial a location of speed dial. williamr@2: * @return the index of a speeddial index data, if not found -1 williamr@2: */ williamr@2: IMPORT_C TInt Index(TInt aDial) const; williamr@2: williamr@2: /** williamr@2: * The value converted into the the location of speeddial williamr@2: * from index of an array is returned. williamr@2: * williamr@2: * @param aIndex a index of array. williamr@2: * @return location of speed dial(1-9), if not found -1 williamr@2: */ williamr@2: IMPORT_C TInt Number(TInt aIndex) const; williamr@2: williamr@2: /** williamr@2: * Returns the phone book contact item's id. williamr@2: * williamr@2: * @param aIndex a index of array. williamr@2: * @return a contact item's id, if not found -1 williamr@2: */ williamr@2: IMPORT_C TContactItemId ContactId(TInt aIndex) const; williamr@2: williamr@2: /** williamr@2: * Returns the phone number of a speed dial contact. williamr@2: * Note: A character invalid as a phone number is removed. williamr@2: * williamr@2: * @param aDial a location of speeddial. williamr@2: * @return phone number williamr@2: */ williamr@2: IMPORT_C const TDesC& PhoneDialNumber(TInt aDial) const; williamr@2: williamr@2: /** williamr@2: * Returns the phone number of a speed dial contact. williamr@2: * Note: left and right spaces are removed. williamr@2: * williamr@2: * @param aIndex a index of array. williamr@2: */ williamr@2: IMPORT_C const TDesC& PhoneNumber(TInt aIndex) const; williamr@2: williamr@2: public: // SpeedDial internal API williamr@2: /** williamr@2: * Gets a title text from contact item's id. williamr@2: * Note: calls CPbkContactItem::GetContactTitleOrNullL() williamr@2: * or CPbkContactEngine::UnnamedTitle() williamr@2: * williamr@2: * @param aCid contact item's id williamr@2: * @param aUnnamed if title is empty, unname or NULL. williamr@2: * @return a buffer containing the title. An unnametitle will williamr@2: * be set if a title is empty. williamr@2: */ williamr@2: IMPORT_C HBufC* ContactTitleL(TContactItemId aCid, TBool aUnnamed); williamr@2: williamr@2: /** williamr@2: * Returns the icon index of a grid array. williamr@2: * williamr@2: * @param aIndex a index of array. williamr@2: */ williamr@2: IMPORT_C TInt IconIndex(TInt aIndex) const; williamr@2: williamr@2: /** williamr@2: * Returns the thumbnail index of a grid array. williamr@2: * williamr@2: * @param aIndex a index of array. williamr@2: */ williamr@2: IMPORT_C TInt ThumbIndex(TInt aIndex) const; williamr@2: williamr@2: /** williamr@2: * Returns the array of icons williamr@2: */ williamr@2: IMPORT_C CArrayPtr* IconArray() const; williamr@2: williamr@2: /** williamr@2: * Icons, thumbnails and text array for the grid are created. williamr@2: * Note: If a aIndex parameter is set, only the data of the value williamr@2: * will be set up. williamr@2: * Note: CreateDataL() is used if App to be used is except SD. williamr@2: * williamr@2: * @param aGrid the grid to set up williamr@2: * @param aIndex (TInt) if <-1, All values are set up. williamr@2: */ williamr@2: IMPORT_C TBool CreateGridDataL(CAknGrid* aGrid, TBool aIndex); williamr@2: williamr@2: /** williamr@2: * Assigns the index data at the index in the phone book's contact entry. williamr@2: * williamr@2: * @param aIndex a index of array. williamr@2: */ williamr@2: IMPORT_C TBool AssignDialIndexL(TInt aIndex); williamr@2: williamr@2: /** williamr@2: * Removes a speed dial from the phone book's contact entry. williamr@2: * williamr@2: * @param aIndex a index of array. williamr@2: * @param aConfirmation when remove, confirm is displayed. williamr@2: * @reutn ETrue if success williamr@2: */ williamr@2: IMPORT_C TBool RemoveDialIndexL(TInt aIndex, williamr@2: TBool aConfirmation = ETrue); williamr@2: /** williamr@2: * deprecated - do not use williamr@2: */ williamr@2: IMPORT_C TBool AssignNumberL(TInt aIndex, williamr@2: CEikStatusPane* aStatusPane, williamr@2: CCoeControl* aContainer, williamr@2: TBool aConfirmation); williamr@2: IMPORT_C void ApplyCellSpdiaPaneStyleL(CAknGrid& aListBox, TSize& aSize); williamr@2: IMPORT_C void DrawShadow(CWindowGc& aGc, const TSize& aSize); williamr@2: williamr@2: /** williamr@2: * The position which a shadow draws is set up. williamr@2: * williamr@2: * @param aRect williamr@2: */ williamr@2: IMPORT_C void SetLayout(const TRect& aRect); williamr@2: williamr@2: /** williamr@2: * deprecated - do not use williamr@2: */ williamr@2: IMPORT_C TInt Size() const; williamr@2: williamr@2: /** williamr@2: * Returns the position of voice mail box williamr@2: */ williamr@2: IMPORT_C TInt VMBoxPosition() const; williamr@2: williamr@2: /** williamr@2: * Returns the icon index of grid array. williamr@2: */ williamr@2: IMPORT_C TInt SpdIconIndex(TInt aIndex) const; williamr@2: williamr@2: /** williamr@2: * Returns type of the phone number. williamr@2: */ williamr@2: IMPORT_C TInt NumberType(TInt aIndex) const; williamr@2: /** williamr@2: * Build ver 2.6 . Deletes the old icon array. williamr@2: */ williamr@2: IMPORT_C void DeleteIconArray(); williamr@2: /** williamr@2: * Build ver 2.6 . Reloads the new skin icons williamr@2: */ williamr@2: IMPORT_C void ReloadIconArray(); williamr@2: williamr@2: IMPORT_C TInt VoiceMailType(); williamr@2: /** williamr@2: * Returns last error. williamr@2: */ williamr@2: IMPORT_C TInt GetSpdCtrlLastError(); williamr@2: /** williamr@2: * Internal rutine to check if pop up has to be shown williamr@2: * to enable the One-Key-Dialling setting. williamr@2: * @return bool value of one key calling status on or off. williamr@2: */ williamr@2: IMPORT_C TBool CheckingIfPopUpNeeded(); williamr@2: williamr@2: private: williamr@2: /** williamr@2: * Internal rutine to check if pop up has to be shown williamr@2: * to enable the One-Key-Dialling setting. williamr@2: * @return bool value of one key calling status on or off. williamr@2: */ williamr@2: TBool CheckingIfPopUpNeededL(); williamr@2: williamr@2: /** williamr@2: * Build ver 2.6 . Reloads the new skin icons williamr@2: */ williamr@2: void ReloadIconArrayL(); williamr@2: williamr@2: public: williamr@2: /** williamr@2: * Creates a grid itemArray. williamr@2: * Note: It calls, when using a grid except SDM. williamr@2: * williamr@2: * @param aGrid the grid to set up williamr@2: * @param aUpdate updates in an event. williamr@2: */ williamr@2: TBool CreateDataL(const CAknGrid& aGrid); williamr@2: williamr@2: /** williamr@2: * Thumbnail's shadow is drawn. williamr@2: * williamr@2: * @param aGc window gc williamr@2: */ williamr@2: void DrawShadow(CWindowGc& aGc) const; williamr@2: williamr@2: private: // Functions from base classes williamr@2: // from MpblThumbnailOperation williamr@2: /** williamr@2: * Called when thumbnail loading is completed. williamr@2: * williamr@2: * @param aOperation the completed operation. williamr@2: * @param aBitmap The loaded bitmap. Callee is responsible of williamr@2: * the bitmap. williamr@2: */ williamr@2: void PbkThumbnailGetComplete(MPbkThumbnailOperation& aOperation, williamr@2: CFbsBitmap* aBitmap); williamr@2: williamr@2: /** williamr@2: * Called if the thumbnail loading fails. williamr@2: * williamr@2: * @param aOperation the failed operation. williamr@2: * @param aError error code of the failure. williamr@2: */ williamr@2: void PbkThumbnailGetFailed williamr@2: (MPbkThumbnailOperation& aOperation, TInt aError); williamr@2: williamr@2: /** williamr@2: * Passes skin information when needed. williamr@2: **/ williamr@2: TTypeUid::Ptr MopSupplyObject(TTypeUid aId); williamr@2: williamr@2: private: williamr@2: williamr@2: /** williamr@2: * Called when thumbnail loading is completed. williamr@2: * williamr@2: * @param aOperation the completed operation. williamr@2: * @param aBitmap The loaded bitmap. Callee is responsible of williamr@2: * the bitmap. williamr@2: */ williamr@2: void PbkThumbnailGetCompleteL(MPbkThumbnailOperation& aOperation, williamr@2: CFbsBitmap* aBitmap); williamr@2: williamr@2: private: // from CCoeControl williamr@2: /** williamr@2: * Draw this control williamr@2: */ williamr@2: void Draw(const TRect& aRect) const; williamr@2: williamr@2: /** williamr@2: * Set size for the skin background context. williamr@2: */ williamr@2: void SizeChanged(); williamr@2: williamr@2: private: williamr@2: /** williamr@2: * From MContactDbObserver, Handles an event of type aEventType. williamr@2: */ williamr@2: void HandleDatabaseEventL(TContactDbObserverEvent aEvent); williamr@2: williamr@2: private: // functions williamr@2: /** williamr@2: * Constructor williamr@2: */ williamr@2: void ConstructL(); williamr@2: williamr@2: /** williamr@2: * Index data are initialized. williamr@2: */ williamr@2: void InitIndexDataL(); williamr@2: williamr@2: /** williamr@2: * Updates data set to match index of the owned index data array. williamr@2: */ williamr@2: TBool UpdateIndexDataL(TInt aIndex); williamr@2: williamr@2: /** williamr@2: * Searches icon of grid array for a match. williamr@2: * williamr@2: * @param aId phone book icon id to match to. williamr@2: * @return the matching index, -1 if not found. williamr@2: */ williamr@2: TInt FindIconIndex(TInt aId) const; williamr@2: williamr@2: /** williamr@2: * Returns the thumbnail type. williamr@2: * williamr@2: * @param aIndex a index of array. williamr@2: */ williamr@2: TInt ThumbType(TInt aIndex) const; williamr@2: williamr@2: /** williamr@2: * Returns the thumbnail size. williamr@2: * williamr@2: * @param aIndex a index of array. williamr@2: */ williamr@2: TSize ThumbSize(TInt aIndex) const; williamr@2: williamr@2: /** williamr@2: * Set phonebook contact itmes'id. williamr@2: * williamr@2: * @param aIndex a index of array. williamr@2: * @param aCid phone book contact item's id. williamr@2: */ williamr@2: void SetContactId(TInt aIndex, TContactItemId aCid); // not referenced... williamr@2: williamr@2: /** williamr@2: * The position on the array that a grid uses from williamr@2: * an item and a phone number is returned. williamr@2: * williamr@2: * @param aItem contacd item williamr@2: * @param aDial phone number williamr@2: */ williamr@2: TInt IconPositionL(const CPbkContactItem& aItem, TInt aDial, TInt& aFieldId); williamr@2: williamr@2: /** williamr@2: * An icon array is created and set. williamr@2: * williamr@2: * @retunr if need loadthumbL ETrue williamr@2: */ williamr@2: TInt SetIconArrayL(CArrayPtrFlat* aArray); williamr@2: williamr@2: /** williamr@2: * Gets Item's descriptor for Grid. williamr@2: * williamr@2: * @param aIndex a index of array. williamr@2: * @param aSdmData reference to the data currently used. williamr@2: * @return a buffer containing the descriptor text. williamr@2: */ williamr@2: HBufC* ItemDescriptorLC(TInt aIndex, const TSpdiaIndexData& aSdmData); williamr@2: williamr@2: /** williamr@2: * Creates Item's descriptor for Grid. williamr@2: * williamr@2: * @param aSdmData reference to the data currently used. williamr@2: * @returen a buffer containing the descriptor text. williamr@2: */ williamr@2: HBufC* CreateItemDescriptorLC(const TSpdiaIndexData& aSdmData); williamr@2: williamr@2: /** williamr@2: * A descriptor is added to a text. williamr@2: * williamr@2: * @param aSdmData reference to the data currently used. williamr@2: * @param aText the text for storing williamr@2: */ williamr@2: void AppendTextL(const TSpdiaIndexData& aSdmData, TPtr& aText); williamr@2: williamr@2: /** williamr@2: * Searches contact item's fiels of this contact for a match. williamr@2: * williamr@2: * @param aItem contact item to search. williamr@2: * @param aFieldId field id to search. williamr@2: * @return first field matching aFieldId, NULL if none found. williamr@2: */ williamr@2: TPbkContactItemField* FindFieldL(CPbkContactItem& aItem, williamr@2: TPbkFieldId aFieldId); williamr@2: williamr@2: /** williamr@2: * The descriptor for thumbnail is added. williamr@2: * williamr@2: * @param aSdmData reference to the data currently used. williamr@2: * @param aText williamr@2: * @param aFixedLocation williamr@2: */ williamr@2: void AppendThumbnail(const TSpdiaIndexData& aSdmData, williamr@2: TPtr& aText, williamr@2: TBool aFixedLocation); williamr@2: williamr@2: /** williamr@2: * Returns the type from a size of thumbnail. williamr@2: * williamr@2: * @param aSize a thumbnail size williamr@2: */ williamr@2: TInt ConvThumbType(const TSize& aSize) const; williamr@2: williamr@2: /** williamr@2: * Operations to a CPbkThumbnailManager are set. williamr@2: * Note: call GetThumbnailAsyncL(). williamr@2: */ williamr@2: void SetOperationsL(); williamr@2: williamr@2: /** williamr@2: * The data of items are added to an array. williamr@2: * williamr@2: * @param aArray williamr@2: */ williamr@2: void SetItemDataL(CDesCArray& aArray); williamr@2: williamr@2: /** williamr@2: * Assigns the index data at aDial in the phone book's contact entry williamr@2: * williamr@2: * @param aId williamr@2: * @param aDial williamr@2: */ williamr@2: void AssignDialL(TContactItemId aId, TInt aFieldIdx, TInt aDial); williamr@2: williamr@2: /** williamr@2: * Checks if the Flash File System storage will fall below williamr@2: * Critical Level. Warning will be displayed if sotrage williamr@2: * is below Critical Level. williamr@2: * williamr@2: * @return ETrue Below critical level williamr@2: */ williamr@2: TBool CheckSpaceBelowCriticalLevelL(); williamr@2: williamr@2: /** williamr@2: * Does it have a thumbnail operation object to match? williamr@2: * williamr@2: * @param aOperation a thumbnail operation object to match to. williamr@2: * @return index of speeddial index data array. williamr@2: */ williamr@2: TInt HasOperation(const MPbkThumbnailOperation& aOperation); williamr@2: williamr@2: /** williamr@2: * A text array that a grid has is erased. williamr@2: */ williamr@2: void ResetArray(); williamr@2: williamr@2: /** williamr@2: * Speeddial index data is set by the data of parameters. williamr@2: * williamr@2: * @param aIndex a index of array. williamr@2: * @param aSdmData reference to the data currently used. williamr@2: */ williamr@2: void SetIndexDataL(TInt aIndex, TSpdiaIndexData& aSdmData); williamr@2: williamr@2: /** williamr@2: * Speeddial index data is changed by the data of parameters. williamr@2: * williamr@2: * @param aIndex a index of array. williamr@2: * @param aSdmData reference to the data currently used. williamr@2: */ williamr@2: void ChangeIndexDataL(TInt aIndex, const TSpdiaIndexData& aSdmData); williamr@2: williamr@2: /** williamr@2: * Creates icon data for SDM control data by the data of parameters. williamr@2: * williamr@2: * @param aIndex a index of array. williamr@2: * @param aSdmData reference to the data currently used. williamr@2: * @param aSetUpdateThumb thumbnail load start parameter set in index data williamr@2: */ williamr@2: TBool CreateIndexIconL(TInt aIndex, TSpdiaIndexData& aSdmData, williamr@2: TBool aSetUpdateThumb); williamr@2: williamr@2: williamr@2: private: williamr@2: //code added for build ver 2.6 williamr@2: void InitializeArray(); williamr@2: williamr@2: private: // Data williamr@2: // The type of the caller application. williamr@2: enum TGridUse williamr@2: { williamr@2: EGridUse, // SpeedDial williamr@2: EGridUseAndUpdate, // PhoneBook williamr@2: EGridNoUse // PhoneClient williamr@2: }; williamr@2: CPbkContactEngine* iEngine; // owned by this williamr@2: TBool iExEngine; // engine owned flags williamr@2: TGridUse iGridUsed; williamr@2: williamr@2: TInt iSdmCount; // Grid cell count(Row * col) williamr@2: williamr@2: CArrayFixFlat* iSdmArray; // owned by this williamr@2: CArrayFixFlat* iShadowLayout; // owned by this williamr@2: williamr@2: CPbkContactChangeNotifier* iPbkNotifier; // owned by this williamr@2: CPbkSingleItemFetchDlg* iPbkSingleItem; // owned by this williamr@2: CAknQueryDialog* iQueryDialog; // owned by this williamr@2: RPbkViewResourceFile* iPbkResourceFile; // owned by this williamr@2: CSpdiaGridDlg* iGridDlg; // owned by this williamr@2: williamr@2: /// Own: thumbnail manager williamr@2: CPbkThumbnailManager* iManager; williamr@2: /// Own: factory for scaling to Thumbnails williamr@2: CPAlbImageFactory* iThumbFactory; williamr@2: williamr@2: CAknGrid* iGrid; williamr@2: TInt iFileOffset; williamr@2: CArrayPtrFlat* iIconArray; williamr@2: williamr@2: CAknsBasicBackgroundControlContext* iBgContext; williamr@2: williamr@4: // Variable used to know if the popup dialog has to be shown williamr@4: // according to the release. williamr@4: TBool iBooleanVarForAddingDialogVariation; williamr@4: williamr@4: //Code added for build ver 2.6. williamr@4: RArray*iDialSkinBmp; williamr@4: RArray*iSkinIcons; williamr@4: RArray*iIcons; williamr@4: RArray*iIconsId; williamr@4: RArray*iIconsMask; williamr@4: TAknLayoutRect icellLayout[KArraySize]; williamr@4: TBuf<254> iBmpPath; williamr@4: TBuf<254> iRscPath; williamr@4: TInt iType; williamr@4: TInt iError; williamr@4: TBool iPopupDialog; williamr@4: CAknQueryDialog* iSaveChangesDialog; williamr@4: TBool iSaveDlg; williamr@4: williamr@4: // Record the current index before swtich to Speeddial if needed. williamr@4: TInt iFocusedGrid; williamr@4: williamr@4: TInt iIconsCount; williamr@4: TInt iIconsIdCount; williamr@4: TInt iIconsMaskCount; williamr@2: }; williamr@2: williamr@2: #endif // SPDIACONTROL_H williamr@2: williamr@2: // End of File williamr@2: