diff -r 000000000000 -r 2f259fa3e83a classicui_plat/extended_dialogs_api/inc/EIKDPSEL.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/classicui_plat/extended_dialogs_api/inc/EIKDPSEL.H Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,179 @@ +/* +* Copyright (c) 1999 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: +* +*/ + + +#ifndef __EIKDPSEL_H__ +#define __EIKDPSEL_H__ + +#include +#include +#include +#include +#include + + +// +// Forward declarations. +// + +class CEikDialogPageContainer; +class CEikCaptionedControl; +class MEikDialogPageObserver; + + +class CAknTabGroup ; +class MAknNavigationContainerInterface ; +class CAknNavigationControlContainer; +class MAknNavigationDecoratorInterface ; +class CAknNavigationDecorator; +class CEikTabPreStore ; + +// This Class manages tool tips for the dialog. +// Tips are displayed in the NaviPane if there is nothing else there. +// Tips are only displayed for single page dialogs containing forms. +NONSHARABLE_CLASS(CEikDlgToolTipMgr) : public CBase + { + public: + CEikDlgToolTipMgr(CEikonEnv* aEikonEnv) ; + ~CEikDlgToolTipMgr() ; + + void DisplayTipL( const TDesC* aTipText ) ; + void HideTip() ; + void EnableTips( TBool aShowTips ) ; + + private: + MAknNavigationContainerInterface* iNaviContainer ; + MAknNavigationDecoratorInterface* iToolTip ; + + TBool iShowTips ; + TBool iIsTipShowing ; + + }; + + + +/** + * The CEikDialogPageSelector class manages a dialog's pages and tabs. + * + * @internal + * @since ER5U + */ +NONSHARABLE_CLASS(CEikDialogPageSelector) : public CCoeControl,public MCoeControlContext,public MCoeControlObserver, public MAknTabObserver + { +public: + ~CEikDialogPageSelector(); + static CEikDialogPageSelector* NewL(const CCoeControl& aParent,CEikDialog* aDialog); + static CEikDialogPageSelector* NewLC(const CCoeControl& aParent,CEikDialog* aDialog); + static CEikDialogPageSelector* NewL(const CCoeControl& aParent,TResourceReader& aReader,CEikDialog* aDialog); + static CEikDialogPageSelector* NewLC(const CCoeControl& aParent,TResourceReader& aReader,CEikDialog* aDialog); + TSize PreferredSize(const TSize& aMaxSize) const; + void SetActivePageByIdL(TInt aPageId); + void SetActivePageByIndexL(TInt aPageIndex); + void ActivateFirstPageL(); + void SetInitialFocus(); + void AddPageL(TResourceReader& aReader); + void AddPageL(TInt aPageId,const TDesC& aTabText); + void AddPageL(TInt aPageId,const TDesC& aTabText,TResourceReader& aReader); + CEikCaptionedControl* Line(TInt aControlId) const; + CEikCaptionedControl* LineOrNull(TInt aControlId) const; + CEikCaptionedControl* CurrentLine() const; + void SetPageDensePacked(TInt aPageId,TBool aDensePacked); + void SetAllPagesDensePacked(TBool aDensePacked); + void SetPageDimmed(TInt aPageId,TBool aDimmed,TDrawNow aDrawNow); + TInt LineId(const CCoeControl& aControl) const; + void DeleteLine(TInt aLineId,TBool aRedraw); + void InsertLineL(TInt aPosition,TInt aPageId,TInt aResourceId); + void AdjustAllIds(TInt aPageId,TInt aControlIdDelta); + CCoeControl* CreateLineByTypeL(const TDesC& aCaption,TInt aControlId,TInt aControlType,TAny* aReturnValue); + CCoeControl* CreateLineByTypeL(const TDesC& aCaption,TInt aPageId,TInt aControlId,TInt aControlType,TAny* aReturnValue); + void FocusLineL(TInt aLineId); + TInt FocusedLineId() const; + void GetAutoValues(); + TInt ActivePageId() const; + TInt ActivePageIndex() const; + void ResetLineMinimumSizes(); + TInt FindLineIndex(const CCoeControl& aControl) const; + TBool RotateFocusByL(TInt aDelta); + TKeyResponse OfferHotKeysKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); + TBool TakesEnterKey(); + void SetEditableL( TBool aEditable) ; // This should only be used for form resource + TInt NumPages() const ; + CEikDialogPageContainer* PageContainer(); + + +public: // from CCoeControl + virtual TSize MinimumSize(); + virtual TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); +public: // from MCoeControlContext + virtual void PrepareContext(CWindowGc& aGc) const; +public: // from MCoeControlObserver + virtual void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType); +public: + void SetDialg(CEikDialog* aDialg); + CEikDialog* Dialg() const; +public: + TBool IsForm() const; +protected: + void RegisterPageSelectorWithPageContainer(); + +protected: // from CCoeControl + virtual void SizeChanged(); + virtual TInt CountComponentControls() const; + virtual CCoeControl* ComponentControl(TInt aIndex) const; + virtual void WriteInternalStateL(RWriteStream& aWriteStream) const; +private: + virtual void Draw(const TRect& aRect) const; + void DrawBorder(const TRect& aRect) const; + void DrawBackground(const TRect& aRect) const; + virtual void Reserved_2(); +private: + CEikDialogPageSelector(); + void ConstructL(MEikDialogPageObserver* aPageObserver); + void ConstructFromResourceL(TResourceReader& aReader,MEikDialogPageObserver* aPageObserver); + void PrepareForFocusTransitionL(); + void HandleRequestFocusL(CCoeControl* aControl); + void HandleTabStateChangedL(CAknTabGroup* aTabContainer); + void PassOnEventL(CCoeControl* aControl,MCoeControlObserver::TCoeEvent aEvent); + + void AddFormToPageL( TInt aPageId,TResourceReader& aReader ) ; + + void CreatePreStoredTabL(); + void CreateTabContainerL(); + void DestroyTabContainer() ; + +public: + // From MAknTabObserver + void TabChangedL(TInt aIndex); + +private: + CEikDialogPageContainer* iPageContainer; + + CAknTabGroup* iTabContainer ; + CAknNavigationDecorator* iNaviDecorator ; + CAknNavigationControlContainer* iNaviContainer ; + TBool iEditable ; + TBool iTabsVisible ; + TBool iIsForm ; + TGulBorder iBorder; + CEikDialog* iDialg; + CEikTabPreStore* iTabPreStore; + TBool iFirstTabContainsText; + }; + + +#endif +