--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/extras/calcsoft/inc/CalcCmdBtn.h Mon Jan 18 20:20:33 2010 +0200
@@ -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 <coecntrl.h>
+#include <aknutils.h>
+
+// 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