textinput/peninputarc/inc/pensrvcliinc/penuiwndctrl.h
changeset 0 eb1f2e154e89
child 9 e6a39382bb9c
--- /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 <coecntrl.h>
+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