--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuicontrol/inc/cphonenumberentrymanager.h Mon Jan 18 20:18:27 2010 +0200
@@ -0,0 +1,220 @@
+/*
+* Copyright (c) 2009 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: Manager number entry for state
+*
+*/
+
+
+#ifndef CPONENUMBERENTRYMANAGER_H
+#define CPONENUMBERENTRYMANAGER_H
+
+//INCLUDES
+#include <e32base.h>
+
+#include "cphonestate.h"
+#include "tphonecmdparamboolean.h"
+#include "tphonecmdparamkeyevent.h"
+
+class CPhoneCbaManager;
+class MPhoneViewCommandHandle;
+class MPhoneStateMachine;
+class MPhoneCustomization;
+class CPhoneState;
+class CEikonEnv;
+
+/**
+ * Class contains helper functions for NE content
+ *
+ * @lib phoneuicontrol
+ * @since S60 v9.1
+ */
+NONSHARABLE_CLASS( CPhoneNumberEntryManager ) : public CBase
+
+ {
+ public:
+
+ /**
+ * Creates new instance of CPhoneNumberEntryManager
+ * @param aState: Handle to cphonestate.
+ * @param aStateMachine: a state machine
+ * @param aViewCommandHandle: Handle to the PhoneUIView.
+ * @param aCustomization: Handle to customization.
+ * @param aCbaManager: Handle to cphonecbamanager.
+ * @return CPhoneNumberEntryManager* object
+ */
+ static CPhoneNumberEntryManager* CPhoneNumberEntryManager::NewL(
+ CPhoneState* aState,
+ MPhoneViewCommandHandle& aViewCommandHandle,
+ MPhoneStateMachine& aStateMachine,
+ MPhoneCustomization* aCustomization,
+ CPhoneCbaManager& aCbaManager );
+ /**
+ * Destructor.
+ */
+ virtual ~CPhoneNumberEntryManager();
+
+ public:
+
+ /**
+ * Stores the number entry content to the cache
+ */
+ void StoreNumberEntryContentL();
+
+ /**
+ * Restores the number entry content from the cache
+ */
+ void RestoreNumberEntryContentL();
+
+ /**
+ * Check if number entry content is stored
+ * @param None
+ * @return boolean value indicating that number entry content is stored
+ */
+ TBool IsNumberEntryContentStored();
+
+ /**
+ * Clears the number entry content cache
+ */
+ void ClearNumberEntryContentCache();
+
+ /**
+ * Creates number entry
+ */
+ void CreateNumberEntryL();
+
+ /**
+ * Set Number Entry visibility.
+ * @param aVisible ETrue if numberentry is wanted to be shown
+ * (Note ETrue will set NE CBA's)
+ * EFalse if numberentry isnt wanted to be shown
+ * (Note EFalse doesnt affect to CBA's)
+ */
+ void SetNumberEntryVisibilityL( TPhoneCmdParamBoolean aVisible );
+
+ /**
+ * Passes create number entry command forward if NE can be created.
+ */
+ void HandleCreateNumberEntryL();
+
+ /**
+ * Check if number entry is used
+ * @return boolean value indicating that number entry is used
+ */
+ TBool IsNumberEntryUsedL() const;
+
+ /**
+ * Check if number entry is visible
+ * @return boolean value indicating that number entry is visible
+ */
+ TBool IsNumberEntryVisibleL() const;
+
+ /**
+ * Returns phone number from the phone number entry.
+ * @return Phone number
+ */
+ HBufC* PhoneNumberFromEntryLC() const;
+
+ /**
+ * Informs phoneengine that phone number has been edited i.e. phonenumber parser is run
+ */
+ void HandleNumberEntryEdited();
+
+ /**
+ * Handles key events in situations when there exists a number entry.
+ * In this case number entry may be visible or hidden.
+ * @param aKeyEvent - key event
+ * @param aEventCode - event code
+ */
+ void KeyEventForExistingNumberEntryL(
+ const TKeyEvent& aKeyEvent,
+ TEventCode aEventCode );
+
+ /**
+ * Returns ETrue if alphanumeric characters are supported.
+ * @param aKeyEvent Key event.
+ * @return ETrue if alphanumeric chars are supported.
+ */
+ TBool IsAlphanumericSupportedAndCharInput(
+ const TKeyEvent& aKeyEvent ) const;
+
+ /**
+ * Handle state-specific behaviour when number entry is cleared
+ */
+ void HandleNumberEntryClearedL();
+
+ /**
+ * Internal number entry handling methods.
+ */
+ void NumberEntryClearL() const;
+
+ /**
+ * Returns ETrue if NumberEntry is in numeric mode.
+ */
+ TBool NumberEntryInNumericModeL();
+
+ /**
+ * Toggles alpha numeric mode.
+ */
+ TBool NumberEntryToggleAlphaNumericModeL();
+
+ private:
+
+ /**
+ * Checks is given key contains numeric charaters or if customization is used
+ * alphanumeir letters
+ */
+ TBool IsValidAlphaNumericKey( const TKeyEvent& aKeyEvent,
+ TEventCode aEventCode );
+
+ private:
+
+ /**
+ * C++ default constructor.
+ */
+ CPhoneNumberEntryManager(
+ CPhoneState* aState,
+ MPhoneViewCommandHandle& aViewCommandHandle,
+ MPhoneStateMachine& aStateMachine,
+ MPhoneCustomization* aCustomization,
+ CPhoneCbaManager& aCbaManager );
+
+ /**
+ * Symbian constructor
+ */
+ void ConstructL();
+
+ private:
+
+ CPhoneState* iState;
+ MPhoneViewCommandHandle& iViewCommandHandle;
+ MPhoneStateMachine& iStateMachine;
+ MPhoneCustomization* iCustomization;
+ CPhoneCbaManager& iCbaManager;
+
+
+ /**
+ * Cache for the number entry content
+ */
+ HBufC* iNumberEntryContent;
+
+ /**
+ * Internal variable for EikonEnv to avoid
+ * use of static system calls
+ */
+ CEikonEnv& iEnv;
+
+ };
+
+
+#endif // CPONENUMBERENTRYMANAGER_H