diff -r 000000000000 -r 2f259fa3e83a uifw/AvKon/akncompamode/inc/akncompabutton.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uifw/AvKon/akncompamode/inc/akncompabutton.h Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,100 @@ +/* +* Copyright (c) 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: Compatibility mode keyboard button +* +*/ + + +#ifndef __AKNCOMPABUTTON_H__ +#define __AKNCOMPABUTTON_H__ + +#include // MCoeControlObserver +#include + +/** + * Compatibility mode keyboard button + * + * Single button of compa-keyboard + * + * @since S60 v5.0 + */ +NONSHARABLE_CLASS(CAknCompaButton) : public CAknButton, + public MCoeControlObserver + { +public: // types + enum TButtonState + { + EButtonUp, + EButtonDown, + ENumStates + }; + +public: // constructors + + static CAknCompaButton* NewLC(TResourceReader& aReader); + +public: // new functions + + void SetButtonUpL(); + TInt ScanCode(); + void UpdateColors(); + void LayoutIconAndText(); + TBool IsLockedDown(); + TBool IsPressed(); + TBool IsRocker(); + +protected: // from CAknButton + + void ConstructFromResourceL(TResourceReader& aReader); + + void ActivateL(); + + void HandlePointerEventL(const TPointerEvent& aPointerEvent); + +// void Draw( const TRect& aRect ) const; + +private: // functions + CAknCompaButton(TInt aFlags); + + void FeedEventToAknButtonL(TButtonState aState); + void TactileFeedback(); + CGulIcon* GetIconLC(TInt aBmpId, TInt aMaskId); + +private: // from MCoeControlObserver + + /** + * This function is called when a control for which this control is the + * observer calls CCoeControl::ReportEventL(). Button pointer events are + * handled here. + * @param aControl The control that sent the event. + * @param aEventType The event type. + */ + void HandleControlEventL(CCoeControl *aControl, TCoeEvent aEventType); + + void HandleResourceChange(TInt aType); + +private: // data + TInt iScanCode; + TSize iIconSize; + + struct + { + bool iHasIcon:1; + bool iHasText:1; + bool iLongTap:1; // long tap event received + bool iIsRocker:1; // button is a rocker button + } iFlags; + }; + +#endif // __AKNCOMPABUTTON_H__