diff -r 000000000000 -r dd21522fd290 webengine/osswebengine/WebKit/s60/webview/WebFrameView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/osswebengine/WebKit/s60/webview/WebFrameView.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,130 @@ +/* +* Copyright (c) 2007 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: +* +*/ + +#ifndef __WEBFRAMEVIEW_H__ +#define __WEBFRAMEVIEW_H__ + +#include "Shared.h" +#include "WebCoreWidget.h" +#include "ScrollTypes.h" +#include "ScrollBar.h" +#include + +namespace WebCore { + class String; + class PlatformScrollbar; + class IntRect; +} + +class WebFrame; +class WebView; +class TRect; + +class WebFrameView : public MScrollView, public WebCore::Shared, public WebCore::ScrollbarClient +{ +public: + + // from MScrollView + void draw(WebCoreGraphicsContext&, const TRect&); + void invalidateRect(const TRect&, TBool); + void scrollTo(const TPoint&); + TRect visibleRect() const; + TSize contentSize() const; + void resizeContent(const TSize& /*aSize*/); + void setMayUseCopyScroll(TBool /*aCopy*/); + TPoint convertContentToView(const TPoint& /*aPoint*/); + TPoint convertViewToContent(const TPoint& /*aPoint*/); + TBool hasHorizontalScrollbar() const; + TBool hasVerticalScrollbar() const; + void setHorizontalScrollingMode(WebCore::ScrollbarMode /*aScrollMode*/); + void setVerticalScrollingMode(WebCore::ScrollbarMode /*aScrollMode*/); + void setScrollingMode(WebCore::ScrollbarMode /*aScrollMode*/); + WebCore::ScrollbarMode horizontalScrollingMode(); + WebCore::ScrollbarMode verticalScrollingMode(); + WebCore::PlatformScrollbar* vScrollbar() {return m_vScrollbar;} + WebCore::PlatformScrollbar* hScrollbar() {return m_hScrollbar;} + void setScrollbarsSuppressed(TBool /*aSuppressed*/, TBool /*aRepaintOnUnsuppress*/); + void addChild(MWebCoreWidget* /*aChild*/ ); + TInt scalingFactor() const; + TBool isVisible() const; + TRect rect() const; + TBool isFocused() const; + void makeVisible(TBool /*aVisible*/); + void setFocus(TBool aFocus); + void activate(); + void setParent(MScrollView* aParent); + void setNeedsDisplay(TBool); + void setCursor(CursorTypes); + void setRect(const TRect& aRect); + void ref() { ++m_refCount; } + void deref() { if( --m_refCount == 0 ) delete this; } + + // accessors + WebFrame* frame() const { return m_frame.get(); } + WebView* topView() const { return m_topView.get(); } + void setWebFrame(WebFrame*); + void setTopView(WebView*); + TPoint contentPos() { return m_contentPos; } + WebFrameView* initWithFrame(TRect frame); + void setAllowsScrolling(bool allowsScrolling); + void setMarginWidth(int marginWidth); + void setMarginHeight(int marginHeight); + int marginWidth() const; + int marginHeight() const; + void setContentPos(TPoint pt); + + WebFrameView(); + virtual ~WebFrameView(); + static WebFrameView* viewClassForMIMEType(const WebCore::String& MIMEType); + + void valueChanged(WebCore::Scrollbar*); + WebCore::IntRect windowClipRect() const; + + TPoint nearestPointInFrame(const TPoint &aPoint); + TPoint frameCoordsInViewCoords(const TPoint& aPoint); + TPoint viewCoordsInFrameCoords(const TPoint& aPoint); + TRect rectInGlobalCoords() const; + + void checkScrollbarVisibility(); + int getBidiWidth(); + bool needScroll(const TPoint& aPoint); +private: + WebFrameView(const WebFrameView&); // not implemented + WebFrameView& operator=(const WebFrameView&); // not implemented + + RefPtr m_frame; // the frame associated with this view + RefPtr m_topView; // the top drawable view + WebFrameView* m_parent; // the parent view + + TRect m_frameRect; // the location and size of this frame in its parent frame + TPoint m_contentPos; + TSize m_contentSize; + + WebCore::PlatformScrollbar* m_vScrollbar; // scrollbars + WebCore::PlatformScrollbar* m_hScrollbar; + WebCore::ScrollbarMode m_verticalScrollBarMode; + WebCore::ScrollbarMode m_horizontalScrollBarMode; + + bool m_hasBorder; + bool m_allowsScrolling; + bool m_mayUseCopyScroll; + + bool m_resizeByEngine; + int m_refCount; +}; + +#endif // END OF FILE