--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mulwidgets/mulcoverflowwidget/inc/mulcoverflowtemplate.h Thu Dec 17 08:56:02 2009 +0200
@@ -0,0 +1,397 @@
+/*
+* 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: template header for CoverFlow
+*
+*/
+
+// This file defines the API for MulCoverFlowWidget.dll
+
+#ifndef __MULCOVERFLOWTEMPLATE_H__
+#define __MULCOVERFLOWTEMPLATE_H__
+
+// Avkon Includes
+#include <aknlayoutscalable_uiaccel.cdl.h>
+
+#include "mulbaseelement.h" // for TMulCoverflowItem
+
+namespace osncore
+ {
+// Forward declarations
+class UString;
+ }
+
+namespace Alf
+ {
+// Forward declarations
+class MulCoverFlowControl;
+
+struct TMulCoverFlowTemplateImpl
+ {
+
+ TMulCoverFlowTemplateImpl()
+ {
+ mEnhancedSupportFlag = false;
+ mSliderEnabled = false;
+ mUiOnOffFlag = false;
+ mOrientationChange = false;
+ mControl = NULL;
+ mBaseElement = NULL;
+ mMaxVisibleCount = 0;
+ mTitleFontMaxCharLength = 0;
+ mDetailFontMaxCharLength = 0;
+ mCounterFontMaxCharLength = 0;
+ }
+
+ //Structure used to store the position and sizes of the counter.
+ TMulCoverFlowItem mCounterDimensions;
+ TMulCoverFlowItem mSliderDimensions;
+ TMulCoverFlowItem mIndicatorDimensions;
+ bool mEnhancedSupportFlag;
+ bool mSliderEnabled;
+ bool mUiOnOffFlag ;
+ int mMaxVisibleCount;
+ MulBaseElement* mBaseElement;
+ bool mOrientationChange;
+ MulCoverFlowControl* mControl; // doesn't own it .
+ mulwidget::TLogicalTemplate mTemplateID; // to store the template name
+ TSize mTitleParentSize;
+ TSize mDetailParentSize;
+ int mTitleFontMaxCharLength;
+ int mDetailFontMaxCharLength;
+ int mCounterFontMaxCharLength;
+
+ ~TMulCoverFlowTemplateImpl()
+ {
+ }
+ };
+
+
+
+class MulCoverFlowTemplate
+ {
+
+public: // Constructor and Destructor
+
+ /**
+ * Constructor
+ */
+ MulCoverFlowTemplate(MulCoverFlowControl &aControl, MulBaseElement &aBaseElement);
+
+ /**
+ * Destructor
+ */
+ virtual ~MulCoverFlowTemplate();
+
+public: // New Methods
+
+ /**
+ * Returns the counter element structure.
+ *
+ * @return Returns a refrence to the counter element structure.
+ */
+ const TMulCoverFlowItem& CounterDimensions() const
+ {return mData->mCounterDimensions;}
+
+ /*
+ * Returns whether the current template and orientation supports enhanced mode or not.
+ *
+ * @Returns true/false depending on whether the template supports or not.
+ */
+ bool EnhancedTagParsed() const {return mData->mEnhancedSupportFlag;}
+
+ /*
+ * Returns whether the slider is enable or not for the current template and
+ * orientation.
+ *
+ * @Returns true/false depending on whether enabled or not.
+ */
+ bool IsSliderVisible() const {return mData->mSliderEnabled;}
+
+ /*
+ * Returns the maxvisible items to be in the respective template .
+ *
+ * @Returns int depending on the no of visble item count.
+ */
+ int MaxVisibleCount() const {return mData->mMaxVisibleCount;}
+
+ /**
+ * Returns whether the template is UI on/off or not .
+ * That is UI on/off flag is enabled in the template or not .
+ *
+ * @returns true if flag is enabled else false .
+ */
+ bool IsUiOnOffFlagEnabled() const {return mData->mUiOnOffFlag;}
+
+ /**
+ * Returns the slider dimensions .
+ *
+ * @Returns TMulCoverFlowItem dimension of the slider
+ */
+ const TMulCoverFlowItem& SliderDimension() {return mData->mSliderDimensions;}
+
+ /**
+ * Returns the video indicator dimension.
+ *
+ * @return Returns a refrence to the indicator dimension.
+ */
+ const TMulCoverFlowItem& IndicatorDimension() const {return mData->mIndicatorDimensions;}
+
+ /**
+ * Returnt the size of the title window size.
+ *
+ */
+ const TSize& TitleWindowSize() {return mData->mTitleParentSize;}
+
+ /**
+ * Return the size of the detail window size.
+ *
+ */
+ const TSize& DetailWindowSize() {return mData->mDetailParentSize; }
+
+ /**
+ * Return the title maximum character font Width
+ *
+ */
+ int TitleMaxCharWidth() {return mData->mTitleFontMaxCharLength;}
+
+ /**
+ * Return the detail maximum character font Width
+ */
+ int DetailMaxCharWidth() {return mData->mDetailFontMaxCharLength;}
+
+ /**
+ * Return the counter maximum character font Width
+ */
+ int CounterMaxCharWidth() {return mData->mCounterFontMaxCharLength;}
+
+
+ /**
+ * Virtual function must be overriden by derived class.
+ * Creates the visualisation based on the Orientation
+ * also updates the visualisation on orientation change
+ *
+ * @param aIsLandscape, current orientation
+ * @param aIsOrientationChange, based on flag decide to
+ * create or update the visualisation
+ */
+ virtual void CreateVisualisation(bool aIsLandscape,bool aIsOrientationChange = false);
+
+
+protected:
+
+ /**
+ * Get the window rect of the Imagevisual or layouts .
+ * @Param aLayout layout which gives all the LCT data of
+ * the visual(image or layout).
+ * @Param aParentRect rect of the parent to the visual.
+ */
+ TRect IconWindowRect(const TAknWindowLineLayout &aLayout, const TRect& aParentRect);
+
+ /**
+ * Get the window rect of the textvisual .
+ * @Param aLayout layout which gives all the LCT data of
+ * the textvisual.
+ * @Param aParentRect rect of the parent to the visual
+ */
+ TRect TextWindowRect(const TAknTextLineLayout& aLayout, const TRect& aParentRect);
+
+ /**
+ * Set the style to the textvisual
+ *
+ * @param aTextFontId the fontId to be set on textvisual.
+ * @param textVisual refernce to textvisual.
+ */
+ void SetTextStyle(int aTextFontId, CAlfTextVisual& textVisual);
+
+ /**
+ * Update the maximum character width of text font of textvisual
+ * @Param textVisual , alftextvisual
+ */
+ int UpdateMaxFontWidth(CAlfTextVisual* textVisual);
+
+ /**
+ * Applies brush on the specified visual .
+ * The colour of the brush is aBrushColour.
+ * @param aVisual visual on which brush has to be applied.
+ * @param aBrushColour The brush colour.
+ * @param aBrushOpacity The opacity to be applied on the brush.
+ */
+ void ApplyBrush( CAlfTextVisual& aVisual,const TRgb& aBrushColour,
+ float aBrushOpacity );
+
+private:
+
+ /**
+ * Returns a font id for the specified style.
+ *
+ * @Param aFontStyle font style.
+ * @Param aManager textstyle manager.
+ */
+ TInt GetFontId(const UString &aFontStyle, CAlfTextStyleManager& aManager)const;
+
+
+protected:
+ auto_ptr<TMulCoverFlowTemplateImpl> mData;
+
+ };
+
+
+// class Template 4
+class MulCoverFlowTemplate4 : public MulCoverFlowTemplate
+ {
+public:
+
+ /**
+ * Constructor
+ */
+ MulCoverFlowTemplate4(MulCoverFlowControl &aControl, MulBaseElement &aBaseElement);
+
+ /**
+ * destructor
+ */
+ ~MulCoverFlowTemplate4();
+
+// From MulCoverFlowTemplate
+
+ /**
+ * @See CreateVisualisation of MulCoverFlowTemplate
+ */
+ void CreateVisualisation(bool aIsLandscape,bool aIsOrientationChange=false);
+
+// new method
+
+ /**
+ * provides the dimension of the visual attribute (icon & video indicator)
+ * based on the orientation.
+ *
+ * @param aAttribute, type of visual attribue
+ * @param aIslandscape, current orientation
+ */
+ static void GetIconSize(mulvisualitem::TVisualAttribute aAttribute,bool aIslandscape,
+ int& aHeight, int& aWidth);
+
+private:
+
+ /**
+ * create visualisation for potrait orientation
+ *
+ */
+ void CreatePrtStructure();
+
+ /**
+ * create visualisation for landscape orientation
+ *
+ */
+ void CreateLscStructure();
+
+ /**
+ * create counter visual and apply attribute
+ *
+ * @param acounterPaneVerityId, lct verity of counter visual.
+ * @param aMainRect, parent rect for counter visual.
+ */
+ void ApplyCounterAttribute(int acounterPaneVerityId,const TRect& aMainRect);
+
+ };
+
+// class Template 1
+class MulCoverFlowTemplate1 : public MulCoverFlowTemplate
+ {
+public:
+
+ /**
+ * Constructor
+ */
+ MulCoverFlowTemplate1(MulCoverFlowControl &aControl, MulBaseElement &aBaseElement);
+
+ /**
+ * destructor
+ */
+ ~MulCoverFlowTemplate1();
+
+// From MulCoverFlowTemplate
+
+ /**
+ * @See CreateVisualisation of MulCoverFlowTemplate
+ */
+ void CreateVisualisation(bool aIsLandscape,bool aIsOrientationChange=false);
+
+// new method
+
+ /**
+ * provides the dimension of the visual attribute (icon & video indicator)
+ * based on the orientation.
+ *
+ * @param aAttribute, type of visual attribue
+ * @param aIslandscape, current orientation
+ */
+ static void GetIconSize(mulvisualitem::TVisualAttribute aAttribute,bool aIslandscape,
+ int& aHeight, int& aWidth);
+
+private:
+
+ /**
+ * create visualisation for potrait orientation
+ */
+ void CreatePrtStructure();
+
+ /**
+ * create visualisation for landscape orientation
+ */
+ void CreateLscStructure();
+
+ /**
+ * create counter visual and apply attribute
+ *
+ * @param acounterPaneVerityId, lct verity of counter visual.
+ * @param aMainRect, parent rect for counter visual.
+ */
+ void ApplyCounterAttribute(int acounterPaneVerityId,const TRect& aMainRect);
+
+ /**
+ * apply attribute on main text layout
+ *
+ * @param aMainRect, parent rect for main text layout
+ */
+ void ApplyTextAttribute(const TRect& aMainRect);
+
+ /**
+ * create title text visual and apply attribute
+ *
+ * @param aVerityId, lct verity of title text.
+ * @param aTextLayoutRect, parent rect for title text
+ */
+ void ApplyTitleTextAttribute(int aVerityId,const TRect& aTextLayoutRect);
+
+ /**
+ * create detail text visual and apply attribute
+ *
+ * @param aVerityId, lct verity of detail text.
+ * @param aTextLayoutRect, parent rect for detail text
+ */
+ void ApplyDetailTextAttribute(int aVerityId,const TRect& aTextLayoutRect);
+
+ /**
+ * parse and apply the slider attribute
+ *
+ * @param aMainRect, parent rect for slider
+ */
+ void ApplySliderAttribute(const TRect& aMainRect);
+ };
+
+
+ }//namespace Alf
+#endif //__MULCOVERFLOWTEMPLATE_H
+
+//End of file