webengine/wmlengine/src/MVC/include/MVCView.h
changeset 74 91031d3aab7d
parent 68 92a765b5b3e7
child 85 e358f2276d3f
--- a/webengine/wmlengine/src/MVC/include/MVCView.h	Mon May 03 13:32:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,515 +0,0 @@
-/*
-* Copyright (c) 2002-2003 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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:  The CView class is responsible for displaying the box tree,
-*                handling user input events such as scrolling and navigating links.
-*
-*/
-
-
-#ifndef __MVCVIEW_H
-#define __MVCVIEW_H
-
-//  INCLUDES
-#include <eikbctrl.h>
-#include <eikscrlb.h>
-
-#include <cenrepnotifyhandler.h>
-
-#include <e32std.h>
-#include <e32def.h>
-#include <f32file.h>
-#include <AknPictographInterface.h>
-#include <AknPictographDrawerInterface.h>
-
-#include <BrCtlDefs.h>
-#include <BrCtlDialogsProvider.h>
-#include "BrsrStatusCodes.h"
-#include "ImageUtils.h"
-#include "LMgrBoxTreeListener.h"
-#include "BrsrTypes.h"
-#include "nw_gdi_types.h"
-#include "nw_evt_scrollevent.h"
-#include "CBrowserSettings.h"
-
-#include "BrCtl.h"
-#include "MemoryManager.h"
-#include "pagescaler.h"
-
-
-#include "WmlControl.h"
-template <class T> class CArrayPtrFlat;
-
-// CONSTANTS
-const TInt KPanicKmViewPanicBase = -9000;
-const TInt KPanicKmViewTlsNotInitialized = KPanicKmViewPanicBase - 1;
-const TInt KPanicKmViewSingletonAlreadyCreated = KPanicKmViewPanicBase - 2;
-const TInt KPanicKmViewTlsViewPointerIsNull = KPanicKmViewPanicBase - 3;
-
-
-// MACROS
-
-// DATA TYPES
-
-typedef enum
-{
-  EKmEvAddToPhoneBook,
-  EKmEvMakeCall,
-  EKmEvRemoveFileName,
-  EKmEvOpenToExternalApp,
-  EKmEvDownloadObject
-} TKimonoEventType;
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-class CEikScrollBarFrame;
-class CAknNavigationDecorator;
-class CPtrC8Array;
-class CViewAsyncInit;
-class MViewListener;
-class CShell;
-//class CBrCtl;
-class TBrCtlImageCarrier;
-class MViewFocusObserver;
-
-// CLASS DECLARATIONS
-class MBrCtlStateChangeObserver;
-
-
-/**
-*  CView
-*  The CView class is responsible for displaying the box tree, and
-*  handling user input events such as scrolling and navigating links.
-*
-*  @lib browserengine.dll
-*  @since 2.x
-*/
-
-
-NONSHARABLE_CLASS(CView) : public CEikBorderedControl, public MCenRepNotifyHandlerCallback,
-              public MAknPictographAnimatorCallBack, public MBoxTreeListener, private MPageScalerCallback
-{
-public:
-        static CView* NewL(CCoeControl* aParent, CBrCtl* aBrCtl, TRect& aRect, CWmlControl* aWmlControl );
-
-        ~CView();
-
-        TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
-
-        TBrCtlDefs::TBrCtlElementType GetFocusedElementType();
-
-        NW_Bool InputElementEditComplete(TBool aInputConfirmed);
-
-        void HandleActivationEvent();
-
-        void GenerateAndProcessEvent(const TKimonoEventType& aEvent);
-
-    /**
-    * SetBrowserSettingL
-    * Set the setting's value.
-    * @since 2.x
-    * @param TUint setting - the number of the setting you wish to set.
-    *   This corresponds to a value in the TBrowserSettings enum
-    * @param TUint value - the value you wish to set for the setting
-    *   If the value is true/false use 1/0 otherwise the value must correspond
-    *   to a value in either one of the following enumerated types:
-    *   TBrowserFontSizeLevel or TBrowserFullScreenValue
-    * @return void
-    */
-        void SetBrowserSettingL(TUint aSetting, TUint aValue);
-
-    /**
-    * GetBrowserSettingL
-    * Get the setting's value.
-    * @since 2.x
-    * @param TUint setting - the setting whose value you wish to retrieve
-    * @return TUint - value of the setting (as an integer). For true/false
-    *    1/0 will be returned. For other settings, the return value will correspond
-    *    with one of the following enumerated types: TBrowserFontSizeLevel or
-    *    TBrowserFullScreenValue
-    */
-        TUint GetBrowserSettingL(TUint aSetting) const;
-
-        CArrayFixFlat<TBrCtlImageCarrier>* GetPageImagesL();
-
-    void SwitchVerticalLayout ();
-
-
-	void DrawPictographsInText(CBitmapContext& aGc, const CFont& aFont, const TDesC& aText, const TPoint& aPosition);
-
-     /**
-     * Check to see if we are in image map view
-     *
-     * @param None
-     * @return TBool ETrue if we are in image map view, EFalse otherwise
-     */
-     inline TBool IsImageMapView() { return iIsImageMapView; };
-
-     /**
-     * This method is called if we are in image map view to create an image list
-     * that just contains the one image shown in the image map view.
-     *
-     * @param None
-     * @return TBool ETrue if we are in image map view, EFalse otherwise
-     */
-        void GetViewImageList(void* aDynamicVector);
-
-    // Return the number of active elements in the page
-        TUint GetActiveElements();
-
-	/**
-     *
-     * @param box
-     * @return  NW_Bool NW_TRUE, if vox is just placeholder (0,0;0x0)
-	 * NW_FALSE otherwise;
-     */
-	 NW_Bool
-    IsZeroBox (const NW_LMgr_Box_t* box) const;
-    // Redraw the positioned box on top every time that something was redrawn
-    TBrowserStatusCode DrawPositionedBoxes();
-
-    // Any slow browser initialization can happen here
-    void AsyncInit();
-
-    TBrowserStatusCode Draw (const NW_Bool);
-
-public: // from MBrowserSettingsObserver
-    void BrowserSettingChanged( enum TBrowserSetting aBrowserSetting );
-
-protected: // From CCoeControl
-    void HandlePointerEventL(const TPointerEvent& aPointerEvent);
-
-    void FocusChanged(TDrawNow aDrawNow);
-
-    void SizeChanged();
-
-    void Draw(const TRect& aRect) const;
-
-    TInt CountComponentControls() const;
-
-    CCoeControl* ComponentControl(TInt aIndex) const;
-
-protected:
-	  void HandleResourceChange(TInt aType);
-
-private: // from MSharedDataNotifyHandler
-
-    void HandleNotifyString(TUint32 aKeyId, const TDesC16& aValue);
-
-private: // from MAknPictographDrawerCallBack
-    void DrawPictographArea();
-
-protected:
-    TKeyResponse DoHandleControlKeysL(const TKeyEvent& aKeyEvent);
-
-private:    // from MPageScalerCallback
-
-    void DrawDocumentPart( CFbsBitGc& aGc, CFbsBitmap* /*aBitmap*/, const TRect& aDocumentAreaToDraw );
-
-    TRect DocumentViewport() ;
-
-	void ScaledPageChanged( const TRect& aRect, TBool aFullScreen, TBool aScroll );
-
-	TSize DocumentSize();
-
-    TBool TouchScrolling() { return EFalse; }
-    
-    CCoeControl& PageControlView() { return *(iBrCtl->CCoeControlParent());}
-
-
-private:
-    CView(CBrCtl* aBrCtl);
-
-    void ConstructL(CCoeControl* aParent, TRect& aRect, CWmlControl* aWmlControl );
-
-    TBrowserStatusCode Cancel ();
-
-    void CreateOffscreenBitmapL( const TRect& aRect );
-
-    // Any slow browser initialization can happen here
-    void AsyncInitL();
-
-    // Delete entries in a given directory
-    void DeleteDirectoryEntriesL(RFs& aRfs, TPtrC16& aFilePath);
-
-    NW_Bool DispatchEvent (const NW_Evt_Event_t* event);
-
-    TBrowserStatusCode FormatPartial ();
-
-    NW_LMgr_Box_t* GetNextSiblingBox (const NW_LMgr_Box_t* box);
-
-    TBrowserStatusCode InitializeTree (NW_LMgr_RootBox_t *rootBox, TBool isFormatingBoxTree);
-
-	//
-    void InitializePageScalerL();
-
-public: // but not exported. For Kimono internal use ("C" side)
-
-    void SetFormattingPriority( CActive::TPriority aPriority );
-
-    TInt AppendFocusObserver(MViewFocusObserver* aViewFocusObserver);
-
-    TInt AddStateChangeObserver(MBrCtlStateChangeObserver* aBrCtlStateChangeObserver);
-
-    void BoxTreeDestroyed ();
-
-    TBool ValidateAddedIndex(NW_LMgr_Box_t* aBox, NW_LMgr_Box_t* aMasterBox);
-
-    TBrowserStatusCode BoxTreeListenerAppendTabItem (NW_LMgr_Box_t* box);
-
-    TBrowserStatusCode BoxTreeListenerRelayout (NW_Bool createTabList);
-
-    TBrowserStatusCode Collapse (NW_LMgr_FlowBox_t* containingFlow, NW_Bool collapseAnonymous);
-
-    TBrowserStatusCode CreateTabIndexList ();
-
-    void DoScrollL(const TInt16 aScrollDirection, const TUint32 aScrollDelta);
-
-    void EnableSuppressDupReformats (NW_Int16 state);
-
-    void EpocDrawNow (NW_Bool drawNow);
-
-    NW_Bool EpocProcessEvent (const NW_Evt_Event_t* event);
-
-    void ExternalLayoutSwitch ();
-
-    TBrowserStatusCode ForceCurrentBox (NW_LMgr_Box_t* newbox, NW_Bool isNewPage, NW_Bool isRefreshNeeded);
-
-    TBrowserStatusCode FormatBoxTree (NW_Bool createTabList);
-
-    void FormattingComplete ();
-
-    NW_ADT_Vector_Metric_t GetActiveBoxId ();
-
-    NW_LMgr_Box_t* GetInFocusBox () const;
-
-    NW_LMgr_Box_t* GetLastVisibleBox () const;
-
-    NW_LMgr_Box_t* GetNextEventListener (NW_LMgr_BoxVisitor_t* boxVisitor);
-
-    const NW_GDI_Point2D_t* GetOrigin ();
-
-    void* GetScroll () const;
-
-    TBrowserStatusCode GetScrollRange (NW_GDI_Point2D_t* scrollRange);
-
-    NW_LMgr_Box_t* GetVisibleBox () const;
-
-    NW_LMgr_Box_t* GetVisibleBoxReverse () const;
-
-    NW_Bool GetXScrollAmt (const NW_LMgr_Box_t* box, NW_Int32* scrollDelta, NW_Evt_ScrollEvent_Direction_t* scrollDir, NW_Bool scrollMaxAmt) const;
-
-    NW_Bool GetYScrollAmt (const NW_LMgr_Box_t* box, NW_Int32* scrollDelta, NW_Evt_ScrollEvent_Direction_t* scrollDir, NW_Bool scrollMaxAmt) const;
-
-    TBrowserStatusCode GotoActiveBox (NW_ADT_Vector_Metric_t activeBoxId);
-
-    TBrowserStatusCode GotoBox (NW_LMgr_Box_t* box);
-
-    void HandleError (TBrowserStatusCode status);
-
-    NW_Bool HandleGNavigation (NW_Uint32 tabIndex);
-
-    static TBrowserStatusCode InputInvalid(void* aCEpoc32View, TInt aMin);
-
-    static TBrowserStatusCode InputInvalidL(void* aCEpoc32View, TInt aMin);
-
-    NW_Bool IsBoxVisible (const NW_LMgr_Box_t* box, NW_GDI_Rectangle_t *bounds) const;
-
-    TBrowserStatusCode JumpToLink (const NW_LMgr_Box_t* box, NW_Bool scrollMaxAmt);
-
-    NW_Bool ProcessAccessKey (const NW_Evt_KeyEvent_t* event);
-
-    NW_Bool ProcessEvent (const NW_Evt_Event_t* event);
-
-    TBrowserStatusCode RedrawDisplay (NW_Bool drawNow);
-
-    TBrowserStatusCode ReformatBox (NW_LMgr_Box_t* box);
-
-    TBrowserStatusCode Refresh (NW_LMgr_Box_t* box);
-
-    TBrowserStatusCode Relayout (NW_Bool createTabList);
-
-    void RemoveFocusObserver(MViewFocusObserver* aViewFocusObserver);
-
-    void RemoveStateChangeObserver(MBrCtlStateChangeObserver* aBrCtlStateChangeObserver);
-
-    NW_Bool ScrollAfterCurrentBox (const NW_LMgr_Box_t* box, NW_Bool scrollMaxAmt);
-
-    void SetAppServices(void *appServices); // appservices are of type NW_HED_AppServices
-
-    TInt SetBoxTree(const NW_LMgr_Box_t* boxTree); // return value is TBrowserStatusCode
-
-    TBrowserStatusCode SetCurrentMasterBox ();
-
-    TBrowserStatusCode SetDeviceContext (CGDIDeviceContext* deviceContext);
-
-    TBrowserStatusCode SetDisplayExtents (NW_GDI_Rectangle_t* displayExtents);
-
-    void SetShell(CShell* shell);
-
-    TBrowserStatusCode SetListener (MViewListener* viewListener);
-
-    TBrowserStatusCode SetOrigin (NW_GDI_Point2D_t* origin);
-
-    void StartCSSApply ();
-
-    void DisableAnimation();
-
-    void EnableAnimation();
-
-    TBrowserStatusCode SwitchFromImageMapView ();
-
-    TBrowserStatusCode SwitchToImageMapView ();
-
-    TBrowserStatusCode SwitchVerticalLayout (NW_Bool aFormatBoxTree, NW_Bool aSwitchBox);
-
-    void UpdateCBAs () const;
-
-    void UpdateScrollBarsL(CEikScrollBar::TOrientation aOrientation,const TInt aThumbPos ,const TInt aScrollSpan);
-
-    TBrowserStatusCode UpdateHScrollBar () const;
-
-    TBrowserStatusCode UpdateVScrollBar () const;
-
-    inline NW_LMgr_Box_t* GetCurrentBox () { return iCurrentBox; };
-
-    inline CGDIDeviceContext* GetDeviceContext () { return iDeviceContext; };
-
-    inline void* GetParentWindow () { return this; };
-
-    inline NW_GDI_Dimension2D_t GetScrollAmt () {return iScrollAmt;};
-
-    inline NW_ADT_DynamicVector_t* GetTabList () {return iTabList;};
-
-    inline NW_LMgr_RootBox_t* GetRootBox () { return iRootBox; };
-
-    inline NW_GDI_Dimension2D_t GetVisibleAmt () {return iVisibleAmt;} ;
-
-    inline NW_Bool IsForcedReformatNeeded () { return iForceReformatNeeded; };
-
-    inline void ForcedReformatNeeded () { iForceReformatNeeded = NW_TRUE; };
-
-    inline void SetCurrentBox (NW_LMgr_Box_t* aCurrentBox) { iCurrentBox = aCurrentBox; };
-
-    inline void SetInitialActiveBoxId (NW_ADT_Vector_Metric_t aInitialActiveBoxId) {iInitialActiveBoxId = aInitialActiveBoxId; };
-
-    inline void SetInitialDocPosition (NW_GDI_Metric_t aX, NW_GDI_Metric_t aY) { iInitialDocPosition.x = aX; iInitialDocPosition.y = aY; };
-
-    inline CPageScaler* PageScaler() { return iPageScaler; }
-
-	TBrowserStatusCode SetAnchorName (NW_Text_t *anchorName);
-
-    void ContentSize(TSize& aContentSize) ;
-    NW_Bool FormatPositionedBoxes ();
-    void ScrollTo(TPoint aPoint);
-
-public:
-    CBrCtl* BrCtl() {return iBrCtl;}
-    void DrawHistory( CFbsBitGc& aGc, const TRect& aDocumentAreaToDraw ) const;
-
-private:
-    TBrowserStatusCode AppendTabItem (NW_LMgr_Box_t* box);
-
-    void DeleteOptionItems ();
-
-    NW_GDI_Rectangle_t GetBoxDisplayBounds (NW_LMgr_Box_t* aBox);
-
-    TBrowserStatusCode GetBoxTabIndex (NW_LMgr_Box_t* box, NW_ADT_Vector_Metric_t* index);
-
-    TBrowserStatusCode HandleFormattingComplete ();
-
-    NW_Bool ProcessFontSizeChangeEvent ();
-
-    NW_Bool ProcessScrollEvent (const NW_Evt_ScrollEvent_t* scrollEvent);
-
-    NW_Bool ProcessTabEvent (const NW_Evt_TabEvent_t* tabEvent);
-
-    void SetBoxFormatBounds (NW_LMgr_Box_t* aBox, NW_GDI_Rectangle_t aBoxBounds);
-
-    TBrowserStatusCode SetupTableFormat (NW_Bool /*relayoutEvent*/);
-
-    TBrowserStatusCode UpdateScrollBars () const;
-
-	void GetParentBox(NW_LMgr_Box_t* parentBox, NW_LMgr_Box_t** pReturnedParentBox);
-private:
-    CBitmapContext* iBitmapContext;
-    CBitmapDevice* iBitmapDevice;
-    TInt    iLastRepeats;		// To signify long keypresses
-    RPointerArray<MViewListener> iListeners;
-    CFbsBitmap* iOffscreenBitmap;
-    CShell* iShell;
-    CBrCtl* iBrCtl;
-	CAknPictographInterface* iPictographInterface;
-
-    CPageScaler*    iPageScaler;
-
-
-
-    CRepository* iRepository;
-    CCenRepNotifyHandler* iNotifyHandler;
-
-    RPointerArray <MViewFocusObserver> iViewFocusObserver;
-    RPointerArray <MBrCtlStateChangeObserver> iStateChangeObserver;
-    CViewAsyncInit* iViewAsyncInit;
-    TInt    iVScrollPosition;
-
-  /* The layout manager context */
-  CArrayPtrFlat<NW_LMgr_RootBox_t>*	iRootBoxArray;
-
-  void* iBoxFormatHandler;
-  NW_Bool iCreateTabList;
-  NW_LMgr_Box_t* iCurrentBox;
-  CGDIDeviceContext* iDeviceContext;
-  NW_Bool iExternalLayoutSwitch;
-  NW_Bool iIsImageMapView;
-  NW_ADT_DynamicVector_t* iOptionItemList; /* for clean up purpose */
-  NW_ADT_DynamicVector_t* iTabList;
-  NW_LMgr_RootBox_t* iRootBox;
-
-  /* Scroll data */
-  void* iScroll;
-  NW_GDI_Dimension2D_t iMaxScrollAmt;
-  NW_GDI_Dimension2D_t iScrollAmt;
-  NW_GDI_Dimension2D_t iVisibleAmt;
-  TPoint iLastPosition;
-
-  NW_Bool iDrawNow;
-
-  TBool           iDocumentFinished;
-
-
-  /*the initial box id and initial docposition , is used after
-    the formatting is complete */
-  NW_ADT_Vector_Metric_t iInitialActiveBoxId;
-  NW_GDI_Point2D_t iInitialDocPosition;
-
-  /*
-  ** Used to suppress duplicate reformats when a single image is repeated
-  ** several times within the same page.
-  */
-  NW_Int16 iSuppressDupReformats;
-  NW_LMgr_Box_t* iPendingReformatBox;
-  NW_Bool iForceReformatNeeded;
-  NW_Text_t *iAnchorName;
-  CActive::TPriority iFormatPriority;
-  CWmlControl*           iWmlControl;
-  TBool iShouldActivate;
-  TBool iDrag;
-};
-
-#endif  // EPOC32VIEW_H
-
-// End of File
-
-