diff -r 000000000000 -r eb1f2e154e89 textinput/peninputarc/inc/pensrvcliinc/penuiwndctrl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputarc/inc/pensrvcliinc/penuiwndctrl.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,264 @@ +/* +* 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: +* +*/ +#ifndef __PEN_UI_WINDOW_CONTROL__ +#define __PEN_UI_WINDOW_CONTROL__ + +#include +class RAknUiServer; +class CPenUiWndCtrl; +class CPenUiPopWnd : public CCoeControl + { +public: // Constructors and destructor + static CPenUiPopWnd* NewL(RWindowGroup& aWndGroup,CFbsBitmap * aBitmap, + CPenUiWndCtrl* aCtrl); + /** + * Destructor. + */ + ~CPenUiPopWnd(); + + /** + * show popup window + * @param aRectInScreen the rect of popup in screen coord-sys + * @param aRectInLayout the rect of popup in layout(extended) coord-sys + * @return none + */ + void PopUp(const TRect& aRectInScreen, const TRect aRectInLayout ); + + void PopUp(TInt aPriority); + void Invalidate(const TRect& aRect); + void Close(); +public: // Functions from base classes. + + /** + * From CCoeControl + * Function where control's drawing is done. + * + * @param aRect Control's area. + */ + void Draw( const TRect &aRect ) const; +private: + /** + * C++ default constructor. + * @param aAppUi AppUi of Eikon server. + */ + CPenUiPopWnd(RWindowGroup& aWndGroup,CFbsBitmap * aBitmap, + CPenUiWndCtrl* aCtrl); + + /** + * Two-phased constructor. + */ + void ConstructL(); + + +private: // Data + RWindowGroup& iWndGroup; + CFbsBitmap * iBitmap; + //RWindowTreeNode& iBackgroundWnd; + RAknUiServer* iAknUiSrv; + CPenUiWndCtrl* iBackgroundCtrl; + + /** + * the position and size of image in extended layout coord-sys + */ + TRect iRectInLayout; + }; + +class CAknIncallBubble; +class CPenUiWndCtrl : public CCoeControl + { +public: + + enum EditorType + { + ENoremalEditor, + EGlobleNotes, + EGlobleNotesWithEditor + }; + +public: // Constructors and destructor + /** + * C++ default constructor. + * @param aAppUi AppUi of Eikon server. + */ + CPenUiWndCtrl(RWindowGroup& aWndGroup,CFbsBitmap * aBitmap); + + /** + * Two-phased constructor. + */ + void ConstructL(); + + /** + * Destructor. + */ + ~CPenUiWndCtrl(); + +public: // New functions + /** + * Called from akncapserver appui to run fastswap. + */ + + /** + * Show pen UI with priority. + */ + void ShowPenUiL(TBool aDimmed = EFalse); + + /** + * Show popup window + * @param aRectInScreen the rect of popup, in screen coord-sys + * @param aRectInLayout the rect of popup, in layout(extended) coord-sys + * @param aLayoutTrimRect the rect of old layout, in layout(extended) coord-sys + * @return none + */ + void ShowPopup( const TRect& aRectInScreen, const TRect& aRectInLayout, + const TRect& aLayoutTrimRect ); + + /** + * Close the pop up window. + */ + void ClosePopup(); + + /** + * Called from akncapserver appui to close fastswap. + */ + void ClosePenUi(TBool aResChanging = EFalse); + + void Invalidate(const TRect& aRect,TBool aFullUpdate); + void OnDeactivate(); + void OnActivate(EditorType aType); + + + void Fade(); + + + TBool IsDimmed(); + + TInt WndPriority(); + + void DimPenUiForMenu(TInt aPriority); + void DimInternalPenUiForMenu(TInt aPriority); + void DimPenUiForMenu(); + TInt GetWndPriority(); + void SetResourceChange(TBool aResourceChange); +public: // Functions from base classes. + + /** + * From CCoeControl + * Function where control's drawing is done. + * + * @param aRect Control's area. + */ + void Draw( const TRect &aRect ) const; + +private: + + /** + * when pen ui is activated, e.g. after screen saver, restore system fading status + * and set non-fading for pen ui + */ + void RestoreSystemFadeStatus(); + + /** + * set non-fading feature for pen ui window when pen ui is open to be shown + */ + void ChangeSysteFadeStatus(); + + + /** + * From CCoeControl. + * Key event handling + * + * @return TKeyResponse Indicates whether or not the key event was used by this control. + * @param aKeyEvent Key event. + * @param aType Type of key event. + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); + + + /** + * Get the AppUid of WinsowGroupName + * + * @return TUid Indicate the Id of WindowGroupNameApp + * @param aWS Indicate RWsSession. + * @param aWGId Id of focus window group. + */ + TUid WindowGroupNameAppUidL( RWsSession& aWS,TInt aWGId ); + + +private: // Data + RWindowGroup& iWndGroup; + CFbsBitmap * iBitmap; + + // whether system fading status has been changed? + TBool iChangeSystemFadeStatus; + + RAknUiServer* iAknUiSrv; + + TInt iFocusWndGrpPriority; + TInt iFocusWndGrpPos; + TInt iFocusWgHandle; + + TInt iPriority; + TInt iPreEditorPriority; + CAknIncallBubble* iIncallBubble; + CPenUiPopWnd* iPopupWnd; + + TBool iShowPopup; + TRect iInvalidateRect; + TBool iResourceChange; + //TBool iUiLayoutChange; + TBool iInGlobalEditorState; + TRect iLayoutClipRect; + }; +class CInternalBkCtrl : public CCoeControl + { +public: // Constructors and destructor + /** + * C++ default constructor. + * @param aAppUi AppUi of Eikon server. + */ + CInternalBkCtrl(RWindowGroup& aWndGroup); + + /** + * Two-phased constructor. + */ + void ConstructL(); + + /** + * Destructor. + */ + + +public: // New functions + +// void Invalidate(const TRect& aRect,TBool aFullUpdate); +public: // Functions from base classes. + + /** + * From CCoeControl + * Function where control's drawing is done. + * + * @param aRect Control's area. + */ + // void Draw( const TRect &aRect ) const; + +// void SizeChanged(); +// void CreateListBox(); +private: // Data + RWindowGroup& iWndGroup; + CFbsBitmap * iBitmap; + }; +#endif \ No newline at end of file