--- /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 <gulbordr.h>
+#include <coeccntx.h>
+#include <coecobs.h>
+#include <coecntrl.h>
+#include <AknTabObserver.h>
+
+
+//
+// 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
+