calendarui/views/inc/calenweeklistboxdata.h
changeset 0 f979ecb2b13e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarui/views/inc/calenweeklistboxdata.h	Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,167 @@
+/*
+* Copyright (c) 2002 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:   Drawing WeekView Listbox data.
+ *                Event bar and Event icon, event indicator
+ *
+*/
+
+
+
+#ifndef CALENWEEKLBDATA_H
+#define CALENWEEKLBDATA_H
+
+//  INCLUDES
+#include <eikfrlbd.h>
+
+// FORWARD DECLARATIONS
+class TCalenWeekHour;
+class MAknsSkinInstance;
+class MAknsControlContext;
+
+// CLASS DECLARATION
+
+/**
+ *  Drawing WeekView Listbox data.
+ *  Event bar and Event icon, event indicator
+ */
+NONSHARABLE_CLASS( CCalenWeekLBData )
+    : public CFormattedCellListBoxData
+    {
+public:  // Constructors and destructor
+    /**
+     * Destructor.
+     */
+    virtual ~CCalenWeekLBData();
+
+    /**
+     * Two-phased constructor.
+     */
+    static CCalenWeekLBData* NewL();
+
+public:     // New function
+    /**
+     * Set current sub cell position.
+     * @param aCurrentSubCellRect  Rect of the cell.
+     * @param aCurrentItemPos      Position of the cell.
+     */
+    void CurrentSubCellPos( TRect& aCurrentSubCellRect, const TPoint& aCurrentItemPos );
+
+    /**
+     * Set highlight of row.
+     * @param aHilightedSubCell cell to highlight
+     */
+    void SetHilightedSubCell(TInt aHilightedSubCell);
+    /**
+     * Return highlight of row.
+     * @return highlighted cell
+     */
+    TInt HilightedSubCell();
+
+    /**
+     * Set count of row
+     * @param aCount count of row
+     */
+    void SetCelCount(TInt aCount);
+    
+    /**
+     * Set layout variant index
+     * @param aLayout used layout
+     */
+    void SetVariantIndex(TInt aLayout);
+    
+    /**
+     * Return count of row
+     * @return count of row
+     */
+    TInt CellCount() const;
+
+    /**
+     * Drawing listbox item and highlight
+     * @param aProperties Item margin, etc...
+     * @param aGc Graphic context
+     * @param aText Drawing text
+     * @param aItemRect item rect
+     * @param aColors Drawing colors
+     */
+    void Draw(TListItemProperties aProperties, CWindowGc& aGc,
+              const TDesC* aText, const TRect& aRect, TBool aHighlight,
+              const TColors& aColors) const;
+
+private:    // Constructors and destructor
+    /**
+     * C++ Constructor.
+     */
+    CCalenWeekLBData();
+
+private:    // New function
+    /**
+     * Drawing listbox item
+     * @param aProperties Item margin, etc...
+     * @param aGc Graphic context
+     * @param aText Drawing text
+     * @param aItemRect item rect
+     * @param aColors Drawing colors
+     */
+    void DrawFormatted(TListItemProperties aProperties, CWindowGc& aGc,
+                       const TDesC* aText, const TRect& aItemRect,
+                       const TColors& aColors, TBool aHighlight) const;
+    /**
+     * Drawing cell text
+     * @param aProperties Item margin, etc...
+     * @param aSubCell Row index
+     * @param aGc Graphic context
+     * @param aText Drawing cell text
+     * @param aCellRect Cell rect
+     * @param aTextRect Text rect
+     */
+    void DrawCellText(TListItemProperties aProperties, TInt aSubCell,
+                      CWindowGc& aGc, const TPtrC aText, const TRect& aCellRect,
+                      const TRect& aTextRect, const TColors& aColors) const;
+    /**
+     * Drawing meeting note bar
+     * @param aGc Graphic context
+     * @param aHourData Hour schedule
+     * @param aCellRect Cell rect
+     */
+    void DrawDurationBar(CWindowGc& aGc,
+                         const TCalenWeekHour& aHourData,
+                         const TRect& aCellRect) const;
+
+    /**
+     * Drawing non-timed note type icon
+     * @param aGc Graphic context
+     * @param aHourData Hour schedule
+     * @param aCellRect Cell rect
+     */
+    void DrawIcon(CWindowGc& aGc,
+                  const TCalenWeekHour& aHourData, 
+                  const TRect& aCellRect) const;
+
+    TBool DrawHighlight(const TRect aItemRect, CWindowGc& aGc, const TBool aDrawSkinned) const;
+    
+    /**
+     *  Initialise Pattern at the construction period
+     */
+    void InitialisePatternL();
+private:    // data
+    TInt iLayoutVariant;
+    TInt iHilightedSubCell;
+    TInt iCellCount;
+    CFbsBitmap* iGradientBitmap;
+    };
+
+#endif // CALENWEEKLBDATA_H
+
+
+// End of File