extras/calcsoft/inc/CalcFunc.h
changeset 13 83b3f7c09925
parent 2 c4c2ac0facfd
--- a/extras/calcsoft/inc/CalcFunc.h	Tue Feb 02 00:11:26 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,414 +0,0 @@
-/*
-* 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 subpane class, CCalcFuncmapSubPane
-*                Derived from CCoeControl.
-*                CCalcFuncmapSubPane is container class of CCalcCommandButton.
-*
-*/
-
-
-#ifndef     CALCFUNC_H
-#define     CALCFUNC_H
-
-
-//  INCLUDES
-#include <coecntrl.h>
-#include <e32property.h> 
-#include <PtiDefs.h> 
-
-#include <centralrepository.h>
-#include <cenrepnotifyhandler.h>
-//  CONSTANTS  
-const   TInt   KCountOfButtons(10);     // Number of buttons
-const   TInt   KCountOfButtonsTouch(20);     // Number of buttons for touch UI layout
-_LIT(KAllowedNumericChars, "0123456789.,");
-_LIT(KAllowedOperatorPlus, "+");
-_LIT(KAllowedOperatorMinus, "-");
-_LIT(KAllowedOperatorStar, "*");
-_LIT(KAllowedOperatorDivide, "/");
-_LIT(KAllowedOperatorEquals, "=");
-_LIT(KAllowedOperatorPercent, "%");
-_LIT(KAllowedOperatorDecimal, ".");
-const TInt KMaxNumCharsPerCase = 50;
-
-//  FORWARD DECLARATIONS
-//class   CCalcCommandButton;
-//Use of new AknButtons
-class 	CAknButton;
-class   CCalcContainer;
-class   CCalcAppEnv;
-class   CPtiEngine;
-class   CPtiQwertyKeyMappings;
-class 	CPtiCoreLanguage;
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-class   CPtiHalfQwertyKeyMappings;
-#endif
-
-//  CLASS DEFINITIONS 
-
-/**
-CCalcFuncmapSubPane : 'FunctionMap Sub-Pane' class
-										: Class also derived from MCoeControlObserver to get events
-										  from Avkon buttons
-*/
-class   CCalcFuncmapSubPane
-        :public CCoeControl , public MCoeControlObserver
-    {
-   public:
-   
-   enum  TButtonTID// ButtonIDs for Touch Layout
-            {
-               ECmdTCancel = 0,   
-               ECmdTSeven,        
-               ECmdTFour,         
-               ECmdTOne,          
-			   ECmdTZero,         
-			   ECmdTSqrt, 		 
-               ECmdTEight,        
-               ECmdTFive,         
-               ECmdTTwo,          
-			   ECmdTSeparator,    
-			   ECmdTPercent,		 
-			   ECmdTNine,         
-               ECmdTSix,          
-               ECmdTThree,        
-               ECmdTChangeSign,   
-               ECmdTDivide,       
-               ECmdTMultiply,     
-               ECmdTSubtract,     
-               ECmdTAdd,          
-               ECmdTResult,       
-               ECmdTScrollUp,
-               ECmdTScrollDown
-            };
-
-  
-
-    enum TButtonID // ButtonID for non touch Layout
-            {
-            EPlusButton,            // +
-            EMinusButton,           // -
-            EMultiplyButton,        // *
-            EDivideButton,          // /
-			EChangeSignButton,      // +/-
-            EEqualButton,           // =
-			ESqrtButton,			// sqrt
-			EPercentButton,			// %
-			EScrollUp,              // << 
-            EScrollDown             // >> 
-            };
-   public:  // Constructors and destructor
-        /**
-        * Two-phased constructor.
-        * @param aContainer : Pointer of CCalcContainer class 
-        */
-        static CCalcFuncmapSubPane* NewL(CCalcContainer* aContainer); 
-       
-        /**
-        * Destructor.
-        */
-        virtual ~CCalcFuncmapSubPane();
-       
-
-    public:  // New functions
-        /**
-        * Redraw scroll up and down button on scrolling enable.
-        */
-        void RedrawScrollButtons();
-
-        /**
-        * Redraw ChangeSign button on ChangeSign enable.
-        * @param aEnable : Flag of ChangeSign enable
-        */
-        void SetChangeSignEnable(TBool aEnable);
-		
-		/**
-        * Redraw Sqrt button on Sqrt enable.
-        * @param aEnable : Flag of SqrtEnable enable
-        */
-		void SetSqrtEnable (TBool aEnable);
-
-        /**
-        * Redraw Clear button on Clear enable.
-        * @param aEnable : Flag of ClearEnable enable
-        */
-        void SetClearKeyEnable( TBool aEnable );
-		
-		/**
-        * Redraw Sqrt button on Percent enable.
-        * @param aEnable : Flag of PercentEnable enable
-        */
-		void SetPercentEnable(TBool aEnable);
-
-		/**
-        * If no key is pressed until timeout of *-key,
-        * this function is called.
-        */
-        void NotifyTimeoutL();
-
-        /**
-        * Notify any key is released. If pressed button exists.
-        * command which is releated is executed.
-        */
-        void NotifyReleaseKeyL();
-
-        /**
-        * If key other than OK-key is pressed this function is called.
-        */
-        void NotifyOtherThanOkKeyPressed();
-
-        /**
-        * Called if language is changed.
-        * Change layout according to the language.
-        */
-        void NotifyLangChange();
-        
-        
-        /**
-        * Called to find key pad is Active.
-        * 
-        */
-        TInt IsQwertyKeypadActive();
-        
-        /**
-        * Called to find Key is long Pressed.
-        * 
-        */
-        TBool IsKeyLongPressed();
-
-        
-    public:   // Functions from base classes
-    
-        /**
-        * From MCoeControlObserver.
-        * Handles events from Avkon Buttons
-        */
-        void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
-        /**
-        * From CCoeControl ?member_description.
-        * @param aKeyEvent : Key event details
-        * @param aType     : EEventKeyDown || EEventKey || EEventKeyUp
-        * @return EKeyWasConsumed    : Key event was used
-        *         EKeyWasNotConsumed : Key event was not used
-        */
-        TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
-
-		/**
-		*Refresh with latest button Icons when the skin change event has occured.
-	    */
-		void RefreshButtonIcons();
-		
-		 /**
-        * CCalcFuncmapSubPane::GetButtonBitmapControl
-		* This function is called when the size changes.
-        * 
-        */
-		    CAknButton* GetButtonBitmapControl(TInt aIndex); //Return iButtons
-		
-		 /**
-        * From CCoeControl : Handling pointer event
-        * Handles all pen input events on function pane.
-        * 
-        */
-        void HandlePointerEventL
-                ( const TPointerEvent& aKeyEvent );
-        /**
-        * FunctionPaneRect
-        * Gets the layout of function pane.
-        */
-        TRect FunctionPaneRect();
-
-        /**
-        * HandleMiddleSoftKeyOREKeyOK
-        * Called to handle MSK or EKeyOk
-        */
-        void HandleMiddleSoftKeyOREKeyOKL();             
-
-				/**
-        * GetChangeSignButtonState
-        * Gets the state of the Sign Button
-        */
-        TBool GetChangeSignButtonState();
-        
-        
-				/**
-        * GetSqrtButtonState
-        * Gets the state of the Squareroot Button
-        */
-        TBool GetSqrtButtonState();
-        
-        
-        /**
-        * GetSqrtButtonState
-        * Gets the state of the Percent Button
-        */
-        TBool GetPercentButtonState();
-        
-        /**
-        * GetClearButtonState
-        * Gets the state of the Clear Button
-        */        
-        TBool GetClearButtonState();
-        
-        /**
-        * GetSelectedButtonId
-        * returns the id of current button
-        */
-        TInt GetSelectedButtonId();
- 
-        /**
-        * SetHighlightButton
-        * set highlight button
-        */
-        void SetHighlightButton( TUint aOldId, TUint aNewId );  
-        
-        /**
-        * GetKeyboardType
-        * returns the type of keyboard
-        */
-        TInt GetKeyboardType();
-
-    private:    // New functions
-        /**
-        * C++ default constructor.
-        */
-        CCalcFuncmapSubPane();
-
-        /**
-        * Second-phase constructor
-        * @param aContainer : Pointer of CCalcContainer class
-        */
-        void ConstructL(CCalcContainer* aContainer);
-
-        /**
-        * Redraw scroll-up button on scrolling enable.
-        * @param aEnable : Flag of scroll-up  enable 
-        */
-        void SetScrollupEnable(TBool aEnable);
-        
-        /**
-        * Redraw scroll-down button on scrolling enable.
-        * @param aEnable : Flag of scroll-down  enable
-        */
-        void SetScrolldownEnable(TBool aEnable);
-
-        /**
-        * Set next cursor position whwn pressing uparrow key.
-        */
-        void SetNextCursorPosForUpArrow(TInt aOldPos);
-
-        /**
-        * Set next cursor position whwn pressing downarrow key.
-        */
-        void SetNextCursorPosForDownArrow(TInt aOldPos);
-                
-        /**
-        * An old highlight rectangle and 
-        * a new highlight rectangle are redrawn.
-        * @param aOldId : The button chosen before
-        * @param aNewId : The button chosen newly
-        */
-        void RedrawHighlight(TUint aOldId, TUint aNewId) const;
-        
-        /**
-        * Set functionmap button layout. 
-        */
-        void SetLayout();
-        /**
-        * MapNumericChar. 
-        */
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        TBool MapNumericCharL( TKeyEvent aKeyEvent );
-        TBool MapNumerics( TKeyEvent aKeyEvent );
-#else 
-        TBool MapNumericCharL(TPtiKey aKey, TPtiTextCase aCase);
-        TBool MapNumerics(TPtiKey aKey, TPtiTextCase aCase);
-#endif
-
-        /**
-        * MapDataForChrShiftKey. 
-        */  
-        void MapDataForChrShiftKey( TDes& aOperators, TInt& aFirstOperator, TInt& aSecondOperator);
-        
-        /**
-        * MapOperators. 
-        */         
-        TBool MapOperators( TUint16 aOperator, TInt& aResult);
-
-      
-    private:    // Functions from base classes
-        /**
-        * From CCoeControl : Return count of controls contained 
-        * in a compound control.
-        * @return Count of buttons in FunctionMap Subpane 
-        */
-        TInt CountComponentControls() const;
-        
-        /**
-        * From CCoeControl : Get the components of a compound control
-        * @param aIndex
-        * @return Control of argument aIndex  
-        */
-        CCoeControl* ComponentControl(TInt aIndex) const;
-        
-        /**
-        * From CCoeControl : This is called when control size is changed.
-        */
-        void SizeChanged();
-
-        /**
-        * From CCoeControl : This is called when control size is changed.
-        */
-        TInt CalculatingCorrectButton(const TPointerEvent& aPointerEvent);
-        
-    private:     // Data
-        CAknButton* iButtons[KCountOfButtonsTouch];  // Array of buttons
-        TInt iSelected;                 // Index of the selected button
-
-        TBool    iDecimalPoint;
-
-        TUint iLastKeyCode;             // The key code inputted at the last.
-        CCalcContainer* iContainer;    // Pointer of CCalcContainer class 
-        CCalcAppEnv*    iCalcAppEnv;   // Not own
-        RProperty       iQwertyModeStatusProperty; // To check the Qwerty keypad active 
-        
-        TPtiTextCase	  iShiftKeyPressed;
-        CPtiEngine*     iEngine;
-        CRepository* 	  iCRKey;
-        CPtiCoreLanguage* iCoreLanguage;
-        CPtiQwertyKeyMappings* iQwertyKeyMappings;
-#ifdef RD_INTELLIGENT_TEXT_INPUT       
-        CPtiHalfQwertyKeyMappings* iHalfQwertyKeyMappings;
-#endif
-
-        TInt 			      iLanguage;
-        TInt                  iUiLanguage;
-        TInt 			      iShiftKey;
-        TBool 			    iValue;
-        TInt            iCountOfButtons;	//keeps track of the count of buttons
-        TInt            iButtonsInRow;   //Number of buttons in the row
-        TInt            iButtonsInColumn; //Number of buttons in the Column
-        TBool           iIsSqrtDimmed;  //Holds the state of the squareroot button
-        TBool           iIsPercentDimmed;  //Holds the state of the percent button 
-        TBool           iIsChangeSignDimmed; //Checks if the change sign button is dimmed or not
-        TBool           iIsOfferKeyEvent; //checks if the event on select is from Offer key or pointer
-        TBool           iIsClearKeyEnabled;  //Checks if the Clear button is Enabled or not      
-        TBool           iIsKeyLongPress;     //Checks if the button is Long Pressed or not
-        TInt            iKeyboardType;
-        TBool           iIsShiftKeyPressed;
-    };
-
-#endif      //  CALCFUNC_H
-            
-// End of File