diff -r 41b775cdc0c8 -r 10c6e6d6e4d9 extras/calcsoft/inc/CalcCmdBtn.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extras/calcsoft/inc/CalcCmdBtn.h Wed Sep 01 12:29:54 2010 +0100 @@ -0,0 +1,146 @@ +/* +* 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: The Function-Map's button class, CCalcCommandButton +* Derived from CEikCommandButtonBase +* The CCalcCommandButton is flat button. +* In making disable, it calls SetDimmed() function. +* +*/ + + +#ifndef CALCCMDBTN_H +#define CALCCMDBTN_H + + +#include +#include + +// CLASS DEFINITIONS +class CCalcFuncmapSubPane; + +/** +CCalcCommandButton : The button class for FunctionMap of a calculator +*/ + +class CCalcCommandButton + : public CCoeControl + { + public: + enum TState // Button state for bitmap. + { + ENormal, // Button is normal. + EPressed, // Button is pushed. + EDimmed // Button is dimmed. + }; + + public: // Constructors and destructor + /** + * Two-phased constructor. + * @param aFuncmapSubPane : CCalcFuncmapSubPane pointer + * @param aUnpressedBmp : Bitmap for unpressed button + * @param aPressedBmp : Bitmap for pressed button + * @param aInactiveBmp : Bitmap for inactive button + */ + static CCalcCommandButton* NewL( + CCalcFuncmapSubPane* aFuncmapSubPane, + const CGulIcon* aUnpressedBmp, + const CGulIcon* aPressedBmp, + const CGulIcon* aInactiveBmp); + + /** + * Destructor. + */ + virtual ~CCalcCommandButton(); + + + public: // New functions + /** + * Button state is set and re-draw. + * @param aState : State of a button (ENormal || EPressed || ESelected) + */ + void SetStateAndRedraw(const TState& aState); + + /** + * Set flag which button is selected or not, and redraw. + * @param aIsSelected : Button is selected or not. + */ + void SetIsSelectedAndRedraw(TBool aIsSelected); + + /** + * Return Current state of a button. + * @return Current state of a button (ENormal || EPressed || ESelected) + */ + TState State() const; + + /** + *Sets iUnpressedButton, iPressedButton, iInactiveButton bitmap arrays to the current bitmaps. + * @param aUnpressedButtonIcon: Icon for Unpressed button + * @param aPressedButtonIcon : Icon for pressed button + * @param aInactiveButtonIcon : Icon for Inactive button + */ + void SetBitmapIcons(CGulIcon* aUnpressedButtonIcon, + CGulIcon* aPressedButtonIcon, + CGulIcon* aInactiveButtonIcon); + /** + * Gets the button layout + * Used for touch support. + */ + TRect ButtonLayout(); + + private: // New functions + /** + * C++ default constructor. + */ + CCalcCommandButton(); + + /** + * Second-phase constructor. + * @param aFuncmapSubPane : CCalcFuncmapSubPane pointer + * @param aUnpressedBmp : Bitmap for unpressed button + * @param aPressedBmp : Bitmap for pressed button + * @param aInactiveBmp : Bitmap for inactive button + */ + void ConstructL( + CCalcFuncmapSubPane* aFuncmapSubPane, + const CGulIcon* aUnpressedBmp, + const CGulIcon* aPressedBmp, + const CGulIcon* aInactiveBmp); + + + private: // Functions from base classes + /** + * From CCoeControl : Data of control is set. + */ + void SizeChanged(); + + /** + * From CCoeControl : Draw a button + * @param aRect : Size of a button + */ + void Draw(const TRect& aRect) const; + + + private: // Data + TState iState; // Current state of a button + TBool iIsSelected; // If Button selected TRUE + const CGulIcon* iUnpressedButton; // Unpressed button bitmap + const CGulIcon* iPressedButton; // Pressed button bitmap + const CGulIcon* iInactiveButton; // Inactive button bitmap + TAknLayoutRect iLayoutRect; // rectangle of button + }; + + +#endif // CALCCMDBTN_H + +// End of File