--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/extras/calcsoft/inc/CalcEditline.h Mon Jan 18 20:20:33 2010 +0200
@@ -0,0 +1,193 @@
+/*
+* 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: Helper class used by CalcDocument,CCalcContainer etc.,
+* TCalcEditLine.
+* The numerical value and the character sequence of the real
+* number are held. Addition of a numerical character sequence
+* and which clear operation are performed.
+*
+*/
+
+
+#ifndef CALCEDITLINE_H
+#define CALCEDITLINE_H
+
+
+// INCLUDES
+#include <e32std.h>
+
+
+// Define maximum charactor number per line
+const TInt KCalcMaxDigits(8);
+const TInt KCalcMaxNumberWidth(11);
+const TInt KCalcMaxEditNumberWidth( 10 );
+
+// CLASS DEFINITIONS
+
+/**
+TCalcEditLine is Calculation data class.
+A line data for 'Editor Sub-Pane'
+*/
+class TCalcEditLine
+ {
+ public:
+ enum TCalcOperatorType
+ {
+ ECalcAdd,
+ ECalcSubtract,
+ ECalcMultiply,
+ ECalcDivide,
+ ECalcEqual,
+ ECalcSqrt,
+ ECalcPercent,
+ ECalcOperatorNone
+ };
+
+ public: // Constructors and destructor
+ /**
+ * C++ default constructor.
+ */
+ TCalcEditLine();
+
+ /**
+ * Destructor.
+ */
+ virtual ~TCalcEditLine();
+
+ /**
+ * Copy constructor.
+ */
+ TCalcEditLine(const TCalcEditLine& aEditLine);
+
+ /**
+ * Assignment operator
+ */
+ const TCalcEditLine& operator=(const TCalcEditLine& aEditLine);
+
+ public: // New functions
+ /**
+ * Return string of number
+ * @return String of number.
+ */
+ inline const TPtrC NumberString() const;
+
+ /**
+ * Clear a line
+ */
+ void AllClear();
+
+ /**
+ * Delete last 1 digit from a line
+ */
+ void ClearL();
+
+ /**
+ * Clear number from a line
+ */
+ void ClearOperand();
+
+ /**
+ * Return number of a line
+ * @return TReal64 : Operand of a line
+ */
+ TReal64 NumberL() const;
+
+ /**
+ * Parameter aNumber is set to a line
+ * @param aNumber
+ */
+ void SetNumber(TReal64 aNumber);
+
+ /**
+ * Append a charactor to number.
+ * Leave may occur, KCalcErrEditorSpaceFull.
+ * @param aInput : A input which is Appended
+ */
+ void AppendL(TChar aInput);
+
+ /**
+ * Append any character to number before it is
+ * displayed inthe output sheet.
+ * Leave may occur, KCalcErrEditorSpaceFull.
+ * @param aInput : A char which is Appended
+ */
+ void AppendNumberStringL(TChar aChar);
+
+ /**
+ * Change sign of number
+ */
+ void ChangeSignL();
+
+ /**
+ * If number of editor is "iii.ddd000...", set number "iii.ddd".
+ * Example:
+ * Number of editor is "12", number editor is set "12".
+ * Number of editor is "12." or "12.000...", number editor is set "12".
+ * Number of editor is "12.27", number editor is set "12.27".
+ * Number of editor is "12.27000...", number editor is set "12.27".
+ * @param aLine : current editor
+ */
+ void TrimZeroL();
+
+ /**
+ * Return operator type of a line.
+ * @return TCalcOperatorType : ECalcAdd || ECalcSubtract ||
+ ECalcMultiply || ECalcDivide ||
+ ECalcEqual || ECalcOperatorNone
+ */
+ inline TCalcOperatorType Operator() const;
+
+
+ /**
+ * Set operator to a line
+ * @param aType : operator enum
+ */
+ inline void SetOperator(const TCalcOperatorType& aType);
+
+ /**
+ * Check whether buffer of editline is "0" or not.
+ * @return ETrue :buffer of editline is "0".
+ * EFalse:buffer of editline is not "0".
+ * (Ex) If buffer is "0", return ETrue.
+ * If buffer is "0.0" or "2", return EFalse.
+ */
+ TBool CheckZeroL() const;
+
+ /**
+ * Changing decimal separator.
+ * @param aOld : Old decimal separator
+ * @param aNew : New decimal separator
+ */
+ void ChangeDecimal(TChar aOld, TChar aNew);
+
+
+ private: // New functions
+ /**
+ * Return count of digits.
+ * @param aNumber : String of number
+ * @return Count of digits.
+ * E.g argument aNumber is "-226.89", return value is 5.
+ */
+ TInt NumberDigits() const;
+
+ private: // Data
+ TBuf<KCalcMaxNumberWidth> iNumber; // Operand of a line
+ TCalcOperatorType iOperator; // Operator of a line
+ };
+
+#include "CalcEditLine.inl"
+
+#endif // __CALCEDITLINE_H__
+
+// End of File