diff -r 000000000000 -r 307788aac0a8 sipplugins/sippsipsettingsui/inc/sipsettingscontainer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sipplugins/sippsipsettingsui/inc/sipsettingscontainer.h Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,226 @@ +/* +* Copyright (c) 2005 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: Container for SIPSettings view +* +*/ + + +#ifndef SIP_SETTINGS_CONTAINER_H +#define SIP_SETTINGS_CONTAINER_H + +// INCLUDES + +#include +#include "MGsFWMSKLabelObserver.h" + + +#include +#include +#include +#include "gssiptimer.h" +// FORWARD DECLARATIONS + +class CSIPSettingsModel; +class CSIPSettingsPlugin; +class UT_CSIPSettingsContainer; + +// CLASS DECLARATION + +/** +* CSIPSettingsContainer container class +* @since 3.1 +* container class for SIP Profiles view +*/ +class CSIPSettingsContainer : public CCoeControl, + public MAknLongTapDetectorCallBack, + public MEikMenuObserver + { + public: // Constructors and destructor + + /** + * SetEmphasis + */ + void SetEmphasis( CCoeControl* /*aMenuControl*/, TBool /*aEmphasis*/ ); + + /** + * Process command + */ + void ProcessCommandL( TInt aCommandId ); + + /** + * Handle long type event + */ + virtual void HandleLongTapEventL( const TPoint& aPenEventLocation, const TPoint& aPenEventScreenLocation ); + + /** + * Handle pointer event + */ + virtual void HandlePointerEventL( const TPointerEvent& aPointerEvent ); + + /** + * Judge whether it is a pointer event + */ + TBool IfPointerEvent(); + + /** + * Get PenEventLocation + */ + TPoint PenEventLocation(); + + /** + * C++ default constructor. + */ + CSIPSettingsContainer( CSIPSettingsPlugin* aObserver ); + + /** + * By default Symbian 2nd phase constructor is private. + * @param aRect Client rectangle + * @param aActiveIndex Active index on the list + * @param aModel Pointer to the (list box) model + */ + void ConstructL( + const TRect& aRect, + TInt aActiveIndex, + CSIPSettingsModel* aModel ); + + /** + * Destructor. + */ + virtual ~CSIPSettingsContainer(); + + public: // New functions + + /** + * Returns the currently selected list box item + * @return Index of the selected item + */ + TInt CurrentIndex(); + + /** + * Selects the existing index and redraws the view. + * Called after updating/adding a profile + * @param aIndex an index to the modified item + */ + void ListItemModifiedL( TInt aIndex ); + + /** + * Selects the next index and redraws the view. + * Called after deletion of a profile + */ + void ListItemDeletedL(); + + /** + * Retrieves the currently selected listbox feature id + * @return feature id. + */ + TInt CurrentFeatureId( ); + + /** + * Defines observer for the middle softkey label changes. + * Can only be set once. Further attempts are ignored. + */ + virtual void SetMiddleSoftkeyObserver( MGsFWMSKObserver* aObserver ); + + protected: // Functions from base classes + + /** + * From CoeControl returns the amount of controls + */ + TInt CountComponentControls() const; + + /** + * From CCoeControl returns controls for CONE actions + */ + CCoeControl* ComponentControl( TInt aIndex ) const; + + /** + * From CCoeControl changes the size of the list box + */ + void SizeChanged(); + + /** + * From CCoeControl, receives key events and passes them + * to list box + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aType ); + + /** + * From CCoeControl, responds to a change in focus + */ + void FocusChanged( TDrawNow aDrawNow ); + + /** + * From CoeControl, resource change handling + */ + void HandleResourceChange( TInt aType ); + + private: + class CItemDrawer; + class CListBox; + friend class CListBox; + + /** + * Required for help. + * + */ + void GetHelpContext( TCoeHelpContext& aContext ) const; + + /** + * For testing purposes + */ + friend class UT_CSIPSettingsContainer; + + public: // Data + // The list box for showing the profiles and the status of each profile + CListBox* iListBox; + + //Get long press status + TBool LongPressStatus(); + + // set long press + void SetLongPress( TBool aLongPress = ETrue ); + + CAknLongTapDetector* LongTapDetector(); + + TPointerEvent PointerEvent(); + + protected: // Data + TBool iLongPress; + CSIPSettingsModel* iModel;//not needed? + CSIPSettingsPlugin* iObs; + /** + * Middle softkey label observer. + * Own. + */ + MGsFWMSKObserver* iMSKObserver; + + // Long tap detector object for deciding whether showing stylus pop up menu. + CAknLongTapDetector* iLongTapDetector; + + // stylus popup menu object for showing popup menu + CAknStylusPopUpMenu* iStylusPopupMenu; + + //Timer + CGSSIPTimer* iTimer; + + //Get pen event location + TPoint iPoint; + + TPointerEvent iPointerEvent; + }; + +#endif // SIP_SETTINGS_CONTAINER_H + +// End of File