diff -r 000000000000 -r 2f259fa3e83a classicui_pub/navigation_pane_api/inc/aknnavilabel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/classicui_pub/navigation_pane_api/inc/aknnavilabel.h Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,136 @@ +/* +* 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: +* Label control to the status pane's navigation pane. +* +* +*/ + + +#ifndef AKNNAVILABEL_H +#define AKNNAVILABEL_H + +#include + +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