epoc32/include/mw/aknnavilabel.h
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
child 4 837f303aceeb
--- a/epoc32/include/mw/aknnavilabel.h	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/mw/aknnavilabel.h	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,136 @@
-aknnavilabel.h
+/*
+* 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 the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*   Label control to the status pane's navigation pane.
+*
+*
+*/
+
+
+#ifndef AKNNAVILABEL_H
+#define AKNNAVILABEL_H
+
+#include <AknControl.h>
+
+class CAknNaviLabelExtension;
+class TAknLayoutText;
+
+/**
+ * Label control to the status pane's navigation pane.
+ */
+class CAknNaviLabel : public CAknControl
+	{
+public:
+    enum TNaviLabelType
+        {
+        ENavigationLabel,
+        EAdditionalInfoLabel,
+        EHintText
+        };
+
+public:  // new functions
+
+    /**
+    * Constructor.
+    */
+    IMPORT_C CAknNaviLabel();
+
+    /**
+    * Destructor.
+    */
+    IMPORT_C ~CAknNaviLabel();
+
+    /**
+     * Set type of the label.
+     * @param aNaviLabelType navigation label type.
+     */
+    IMPORT_C void SetNaviLabelType(TNaviLabelType aNaviLabelType);
+
+    /**
+     * Returns type of the label.
+     * @return navigation label type.
+     */
+    IMPORT_C TNaviLabelType NaviLabelType();
+
+    /**
+     * Sets navigation label text.
+     * @param aText reference to the navigation text.
+     */
+    IMPORT_C void SetTextL(const TDesC& aText);
+
+    /**
+     * Returns the current label text.
+     * @return label text. Ownership of the text is not transfered.
+     */
+    inline const TDesC* Text() const;
+
+public: 
+
+    /**
+    * From CCoeControl. Handles pointer event.
+    * @param aPointerEvent Pointer event to be handled.
+    */
+	IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
+
+protected: // from CCoeControl
+
+    /**
+    * From CCoeControl. Handle the size change events.
+    */
+    IMPORT_C virtual void SizeChanged();
+
+    /**
+    * From CCoeControl.  Draw a control.  
+    *
+    * @param aRect The region of the control to be redrawn.   
+    */
+    IMPORT_C void Draw(const TRect& aRect) const;
+private:
+    /**
+    * From CAknControl
+    */
+    IMPORT_C void* ExtensionInterface( TUid aInterface );
+
+private:
+    /**
+     * Calculates width using margins.
+     * @return width.
+     */
+    TInt WidthInsideMargins() const;
+
+    /**
+     * Reads the text layout from Aknlayout system.
+     * @return Text layout.
+     */
+    TAknLayoutText LayoutText() const;    
+
+private:
+	HBufC* iText;
+	CAknNaviLabelExtension* iExtension;
+    const CFont* iFont;
+    TInt iLeftMargin;
+    TInt iRightMargin;
+    TInt iSpare;
+    TInt iRightOffset;
+    TRgb iColor; 
+
+    TNaviLabelType iLabelType;
+	};
+
+
+inline const TDesC* CAknNaviLabel::Text() const
+	{ return(iText); }
+
+
+#endif // AKNNAVILABEL_H