--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_plat/extended_notes_api/inc/aknnoteattributes.h Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,157 @@
+/*
+* Copyright (c) 2002-2007 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: Stores attributes of note control. Since these attributes are
+* sometimes stored by the dialog before constructing the
+* control, this class is the interface for passing attributes
+* from the dialog to the control.
+*
+*/
+
+#ifndef __AKNNOTEATTRIBUTES__
+#define __AKNNOTEATTRIBUTES__
+
+#include <e32base.h>
+
+class CEikImage;
+class CEikLabel;
+
+class CEikProgressInfo;
+class CAknProgressTimer;
+
+class CAknNoteControl;
+class CAknTextControl;
+
+class CAknsFrameBackgroundControlContext;
+class CCoeBrushAndPenContex;
+class TAknsItemID;
+
+/**
+ * Indexes into iFlags.
+ * Can't use zero as this is the default behaviour (no flag indexes set).
+ */
+enum TNoteFlags
+ {
+ ENoteNoTextWrapping = 1, ///< EAknNoteNoTextWrapping
+ ENoteNeedLayoutControl = 2, ///< When this flag is on, the note control needs layout
+ ENoteNeedLayoutDialog = 3, ///< When this flag is on, the dialog needs layout
+ ENoteNoTextProcessing = 4, ///< When this flag is on, the note performs no text processing
+ ENoteDoNotAllocateMem = 5,
+ ENoteAnimationStarted = 6,
+ ENoteLeftSKWhenTapped = 7, ///< EAknNoteLeftSoftkeyWhenTapped
+ ENoteWithSkinnableGraphics = 8 ///< EAknNoteFlagWithSkinnableGraphics
+ };
+
+NONSHARABLE_CLASS(CAknNoteAttributes) : public CBase
+ {
+public:
+ enum { EMaxNumberOfLabels = 5 };
+
+public:
+ CAknNoteAttributes();
+ CAknNoteAttributes(CAknNoteControl* aNoteControl);
+ ~CAknNoteAttributes();
+
+public:
+ CAknNoteAttributes& operator=(CAknNoteAttributes& aAttributes);
+ void ConstructFromResourceL(TResourceReader& aRes);
+
+public:
+ void SetAnimationL(TInt aResourceId);
+ void SetImageL(CEikImage* aImage);
+ void SetIconL(CEikImage* aIcon);
+
+ void SetFinalProgressValue(TInt aValue);
+ TInt IncrementBarsAndDraw(TInt aIncrement);
+ void CreateProgressBarL();
+
+ void SetTextPluralityL(TBool aIsPlural);
+ void SetTextNumberL(TInt aNumber);
+
+ void SetTextL(const TDesC& aText);
+ void SetTextL(const TDesC& aText, TInt aLineNum,const CFont* aFont, CArrayFixFlat<TInt>* aLineWidths);
+
+ void AttemptOptimizedTextDrawingL(TInt aOldNumberOfLines);
+ void AllowOptimizedDrawing();
+
+public:
+ void StartAnimationL();
+ TInt CancelAnimation();
+
+public:
+ TPtrC Text() const;
+ void ParseTextL(const CFont* aFont, CArrayFixFlat<TInt>* aLineWidths);
+
+public:
+ ///Layout type
+ enum TLayoutType
+ {
+ EDialog = 0, ///Entire dialog needs layout.
+ EControl = 1 ///EControl: only control needs layout
+ };
+
+ TBool IsLayoutNeeded(const TLayoutType& aType = EDialog) const;
+ void SetLayoutDone(const TLayoutType& aType = EDialog);
+ void InvalidateLayout();
+
+private:
+ void TransferToControlL();
+ void TransferToControlL(CCoeControl* aControl);
+
+ static TInt StaticPictographCallBack( TAny* aPtr );
+ void PictographCallBack();
+
+private:
+ CAknNoteAttributes(const CAknNoteAttributes&); //not allowed
+
+public:
+ CAknTextControl* iNoteText; ///The note text
+
+ CEikImage* iImage; ///The note image at top right
+ CEikImage* iIcon; ///The small icon at bottom left (number type indic, etc)
+
+ CEikProgressInfo* iProgressBar; ///A progress bar for wait notes
+ CAknProgressTimer* iTimer; ///Time for progress bar
+
+ CAknBitmapAnimation* iAnimation; ///An animation replacing the image
+ TBitFlags iFlags; ///Flags that determine behavior
+ TBitFlags iClearFlags; ///Flags that inhibit behaviour, used in operator= only
+
+ TRect iBgRect; ///For nondialog controls
+
+private:
+ CAknNoteControl* iNoteControl; ///Not owned - The control that owns us or NULL
+
+public:
+ CAknsFrameBackgroundControlContext* iBgContext;
+ CCoeBrushAndPenContext* iBrushAndPenContext;
+
+public: // New skin utility functions
+ IMPORT_C static TAknsItemID GetSkinnedBitmapID(TInt aIcon);
+ void SetAnimationBackGroundFrameL();
+
+private: // new data
+ TInt iAnimationID;
+ TBool iAllowOptimizedDrawing;
+
+public:
+ void HandleSkinChangeL();
+
+private:
+ HBufC* iImageFile;
+ TInt iImageId;
+ TInt iImageMask;
+ TAknsItemID iSkinIdForImage;
+ };
+
+#endif