diff -r 514d98f21c43 -r 4ea6f81c838a mulwidgets/common/inc/mulvisualutility.h --- a/mulwidgets/common/inc/mulvisualutility.h Mon Jun 21 16:15:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,728 +0,0 @@ -/* -* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "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: -* -* Description: Utility class for widgets visualization in terms of LCT data -* -*/ - - -#ifndef MULVISUALUTILITY_H_ -#define MULVISUALUTILITY_H_ - -#include -#include - -// Avkon Includes -#include -#include -#include - -// OpenC Includes -#include -#include - -#include -using namespace osncore; - -namespace Alf - { - -enum TMulCurrentOrientation - { - EMulPortrait, - EMulLandScape - }; -/** - * Different visual types - */ -enum TMulLCTVisualType - { - EVisualImage = 0, - EVisualText - }; - -/** - * Different attribute types - */ -enum TMulCustomAttributeType - { - EAttributeNone, - EAttributeCategory, - EAttributeOpacity, - EAttributeStyle, - EAttributeFontthemecolor, - EAttributeHAlign, - EAttributeVAlign - }; - -/** - * Different Category types - */ -enum TMulAttributeCategoryType - { - ECategoryInvalid, - ECategoryData, - ECategoryStaticData - }; - -/** - * Co-ordinate data - */ -struct LCTData - { - int mPosX; - int mPosY; - int mWidth; - int mHeight; - int mFontId; - }; - -/** - * LCT Id and variety - */ -struct LCTPair - { - UString mLctId; - int mVariety; - }; - -// --------------------------------------------------------------------------- -// Class to hold attributes name and value -// --------------------------------------------------------------------------- -// -class CustomAttributeStructure - { -public: - - /** - * Constructor - * - * @param aName Name of the Attribute - * @param aTargetVal Value the Attribute - * @param aAttributeType Name of the Attribute - * @param aCategoryType Name of the Attribute - * - * - */ - CustomAttributeStructure(const UString& aName, const UString& aTargetVal, - TMulCustomAttributeType aAttributeType = EAttributeNone, - TMulAttributeCategoryType aCategoryType = ECategoryInvalid): - mName(aName), - mTargetVal(aTargetVal), - mAttributeType(aAttributeType), - mCategoryType(aCategoryType) - - { - mLctPair.mLctId = UString(""); - mLctPair.mVariety = -1; - } - - /** - * Constructor - * - * @param aName Name of the Attribute - * @param aLctInfo LCT information of the custom attribute - * @param aAttributeType Name of the Attribute - * @param aCategoryType Name of the Attribute - * - * - */ - CustomAttributeStructure(const UString& aName, const LCTPair& aLctInfo, - TMulCustomAttributeType aAttributeType = EAttributeNone, - TMulAttributeCategoryType aCategoryType = ECategoryInvalid): - mName(aName), - mTargetVal(""), - mAttributeType(aAttributeType), - mCategoryType(aCategoryType) - - { - mLctPair.mLctId = aLctInfo.mLctId; - mLctPair.mVariety = aLctInfo.mVariety; - } - - /** - * Sets the name of the custom attribute - * - * @param aName Name of the custom attribute - * @return nothing - * - */ - void SetName(const UString& aName) {mName = aName;} - - /** - * Sets the value the custom attribute - * - * @param aTarget Value of the custom attribute - * @return nothing - * - */ - void SetTargetValue(const UString& aTarget) {mTargetVal = aTarget; } - - /** - * Get the name of attribute - * - * - * @return Name of the attribute - * - */ - const UString GetName() const {return mName; } - - /** - * Get the value of the attribute - * - * - * @return Value of the attribute - * - */ - const UString GetTargetvalue() const {return mTargetVal;} - - /** - * Sets the attribute type the custom attribute - * - * @param aAttributeType Attribute type of the custom attribute - * @return nothing - * - */ - void SetAttributeType(TMulCustomAttributeType aAttributeType) {mAttributeType = aAttributeType;} - - /** - * Sets the Category type the custom attribute - * - * @param aCategoryType Category type of the custom attribute - * @return nothing - * - */ - void SetCategoryType(TMulAttributeCategoryType aCategoryType) {mCategoryType = aCategoryType;} - - /** - * Get the attribute type of the attribute - * - * - * @return TMulCustomAttributeType - * - */ - TMulCustomAttributeType AttributeType() const {return mAttributeType;} - - /** - * Get the category type of the attribute - * - * - * @return TMulAttributeCategoryType - * - */ - TMulAttributeCategoryType CategoryType()const {return mCategoryType;} - - /** - * Get the LCT information of attribute - * - * - * @return LCTPair - * - */ - const LCTPair& GetLctPair() - { - return mLctPair; - } - -private: - - /** - * Attribute name - */ - UString mName; - - /** - * Attribute value - */ - UString mTargetVal; - - /** - * Attribute type - */ - TMulCustomAttributeType mAttributeType; - - /** - * Attribute Category type - */ - TMulAttributeCategoryType mCategoryType; - - /** - * LCT Id and variety - */ - LCTPair mLctPair; - }; - - -// --------------------------------------------------------------------------- -// Class to hold a visual's attributes -// --------------------------------------------------------------------------- -// -class LCTVisualStructure - { -public: - - /** - * Default Constructor - * - */ - LCTVisualStructure() - { - - } - - /** - * Destructor - * - */ - ~LCTVisualStructure() - { - for(int i =0; i < mAttributeStructure.size(); i++) - { - delete mAttributeStructure[i]; - } - mAttributeStructure.clear(); - } - - /** - * Sets the LCT Id of the visual Structure (part of LCT information of Visual Structure) - * - * @param aId LCT Id of Visual Structure - * @return nothing - * - */ - void SetLCTId(const UString& aId) {mLctPair.mLctId = aId;} - - /** - * Sets the Variety Id of the visual Structure (part of LCT information of Visual Structure) - * - * @param aId Variety Id of Visual Structure - * @return nothing - * - */ - void SetVarietyId(int aId) {mLctPair.mVariety = aId;} - - /** - * Gets the LCT Id of the visual Structure (part of LCT information of Visual Structure) - * - * @return nothing - * - */ - const UString GetLCTId() const {return mLctPair.mLctId; } - - /** - * Gets the Variety Id of the visual Structure (part of LCT information of Visual Structure) - * - * @return nothing - * - */ - const int GetVarietyId() const {return mLctPair.mVariety;} - - /** - * Sets the type of visual this structure contains (can be either image/text) - * - * @param aVisualType EVisualImage/EVisualText - * @return nothing - * - */ - void SetVisualType(const TMulLCTVisualType aVisualType) {mVisualType = aVisualType; } - - /** - * Gets the visual type of the visual Structure - * - * @return TMulLCTVisualType - * - */ - TMulLCTVisualType VisualType()const { return mVisualType;} - - /** - * Adds a Custom attribute structure to this visual structure - * - * @param aAttr Custom Attribute structure to be added - * - * - */ - void AddAttribute(CustomAttributeStructure* aAttr) - { - if(aAttr) - mAttributeStructure.push_back(aAttr); - } - - /** - * Gets a Custom attribute structure at a specified index in this visual structure - * - * @param aIndex Index at which the attribute struct desired - * @return CustomAttributeStructure, NULL if no attribute is found - * - */ - const CustomAttributeStructure* GetAttribute(int aIndex) const - { - if(aIndex >=0 && aIndex < mAttributeStructure.size()) - return mAttributeStructure[aIndex]; - else - return NULL; - } - - /** - * Gets a Custom attribute structure by name in this visual structure - * - * @param aAttrName Name of the attribute struct desired - * @return CustomAttributeStructure, NULL if no attribute is found - * - * - */ - const CustomAttributeStructure* GetAttributeByName(const UString& aAttrName) const - { - for (vector::const_iterator it = mAttributeStructure.begin(); - it!=mAttributeStructure.end(); ++it) - { - if(!strcmp(((*it)->GetName()).getUtf8(),aAttrName.getUtf8())) - return *it; - } - return NULL; - } - - /** - * Gets the current attribute count - * - * @return total number of attributes - * - */ - int AttributeCount() const - { - return mAttributeStructure.size(); - } - - /** - * Sets the Id of the visual Structure - * - * @param aId Identifier of Visual Structure - * @return nothing - * - */ - void SetId(const UString& aId) {mId = aId;} - - /** - * Gets the Id of the visual Structure - * - * @return Identifier of the visual structure - * - */ - UString GetId() const { return mId; } - - void SetPositions(int x,int y) - { - mX = x; - mY = y; - } - void SetDimensions(int width,int height) - { - mW = width; - mH = height; - } - int PositionX() const {return mX;} - int PositionY() const {return mY;} - int Width() const {return mW;} - int Height() const {return mH;} - /** - * Gets the LCT Information of the visual Structure - * - * @return LCTPair - * - */ - const LCTPair& GetLctPair() - { - return mLctPair; - } - - -private: - - /** - * Class to hold attributes name and value - * - */ - UString mId; - - /** - * LCT Id and variety - */ - LCTPair mLctPair; - - /** - * Type of Visual - */ - TMulLCTVisualType mVisualType; - - /** - * Array of attribute structures (owned) - * - */ - std::vector mAttributeStructure; - int mX,mY,mW,mH; - }; - -// --------------------------------------------------------------------------- -// Custom data type to hold information about different visuals -// --------------------------------------------------------------------------- -// -class LCTElementStructure - { -public: - - /** - * Destructor - * - */ - ~LCTElementStructure() - { - for(int i =0; i < mVS.size(); ++i) - { - delete mVS[i]; - } - mVS.clear(); - } - - /** - * Adds a Visual structure to this Element structure - * - * @param aVStructure VisualStructure to be added - * @return nothing - * - */ - void AddVisualStructure(LCTVisualStructure* aVStructure) - { - if(aVStructure) - mVS.push_back(aVStructure); - } - - /** - * Gets a Visual structure at a specified index in this visual structure - * - * @param aIndex Index at which the attribute struct desired - * @return LCTVisualStructure, NULL if no structure is found - * - */ - const LCTVisualStructure* GetVisualStruture(int aIndex) - { - if(aIndex >=0 && aIndex < mVS.size()) - return mVS[aIndex]; - else - return NULL; - } - - /** - * Gets a Visual structure with specified name - * - * @param aVisualName name of the visual structure - * @return LCTVisualStructure, NULL if no structure is found - * - */ - const LCTVisualStructure* GetVisualStrutureByName(const UString& aVisualName) const - { - for (vector::const_iterator it = mVS.begin(); - it!=mVS.end(); ++it) - { - if(!strcmp(((*it)->GetId()).getUtf8(),aVisualName.getUtf8())) - return *it; - } - //if attribute by this name is not found - return NULL; - } - - /** - * Gets a Visual structure count - * - * @param nothing - * @return int visual structure count - * - */ - int VisualCount() - { - return mVS.size(); - } - - /** - * Sets the visual structure Id - * - * @param aId - * @return nothing - * - */ - void SetId(const UString& aId) {mId = aId;} - - /** - * Gets the visual structure Id - * - * @param nothing - * @return UString - * - */ - UString GetId() const { return mId; } - - void SetPositions(int x,int y) - { - mX = x; - mY = y; - } - void SetDimensions(int width,int height) - { - mW = width; - mH = height; - } - int PositionX() const {return mX;} - int PositionY() const {return mY;} - int Width() const {return mW;} - int Height() const {return mH;} - /** - * Sets the LCT Id - * - * @param aId - * @return nothing - * - */ - void SetLCTId(const UString& aId) {mLctPair.mLctId = aId;} - - /** - * Sets the Variety Id - * - * @param aId - * @return nothing - * - */ - void SetVarietyId(int aId) {mLctPair.mVariety = aId;} - - /** - * Returns the LCT Id - * - * @param nothing - * @return UString - * - */ - const UString GetLCTId() const {return mLctPair.mLctId; } - - /** - * Returns the Variety Id - * - * @param nothing - * @return int - * - */ - const int GetVarietyId() const {return mLctPair.mVariety;} - - /** - * Returns the LCT Pair structure - * - * @param nothing - * @return LCTPair - * - */ - const LCTPair& GetLctPair() - { - return mLctPair; - } - -private: - /** - * Identifier for the element structure - */ - UString mId; - - /** - * LCT information of element - */ - LCTPair mLctPair; - - /** - * Array of children visual structure (owned) - */ - vector mVS; - - int mX,mY,mW,mH; - }; - - - -class MulVisualUtility - { - public: - /** - * Default Constructor - */ - OSN_IMPORT MulVisualUtility(); - - /** - * Destructor - */ - OSN_IMPORT ~MulVisualUtility(); - - /** - * Accessor function for the LCT data - * - * @return LCTData internal data that contains the coordinate information - */ - OSN_IMPORT const LCTData& data() const ; - - /** - * Uses the passed LCTPair and populates the LCT related information - * as its internal Data. - * - * @param aPair LCTPair to be parsed - * @param aParentLayout ParentLayout wit respect to which the - * coordinate calculation has to be made - * @return nothing - */ - OSN_IMPORT void parseLCTInfo(const LCTPair& aPair, CAlfLayout* aParentLayout= NULL); - - /** - * Uses the passed LCTPair and populates the LCT related information - * as its internal Data. - * - * @ :: yet to implement - * @return nothing - */ - OSN_IMPORT void parseLCTTextInfo(); - - private: - /** - * Internal function to concert LCT IDs into absolute data - */ - void readLCTData(); - - /** - * Internal function to concert LCT IDs into absolute data for text - */ - void readLCTTextData(); - - bool isParentRelative(int aVal) const; - - private: - /** - * LCT data, Owned - */ - auto_ptr mData; - - /** - * LCT id - */ - UString mLCTId; - - /** - * Variety id - */ - int mVarietyId; - }; - - } - //namespace Alf - -#endif /*MULVISUALUTILITY_H_*/