webengine/osswebengine/WebKit/s60/webview/WebFrame.h
changeset 0 dd21522fd290
child 16 a359256acfc6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/WebKit/s60/webview/WebFrame.h	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,131 @@
+/*
+* 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:   Implemetation of CWebFrame
+*
+*/
+
+
+#ifndef __WEBFRAME_H__
+#define __WEBFRAME_H__
+
+#include <e32base.h>
+#include <wtf/RefPtr.h>
+#include <wtf/Vector.h>
+#include "Shared.h"
+
+namespace WebCore
+{
+    class Frame;
+    class FrameLoader;
+    class DocumentLoader;
+    class DOMDocument;
+    class Page;
+    struct ResourceRequest;
+    class SubstituteData;
+    class RenderObject;
+    class RenderObject;
+    class Node;
+    class String;
+}
+
+class WebView;
+class WebFrameView;
+class WebFrameLoaderClient;
+class WebFrameBridge;
+class WebCoreFrameBridge;
+class WebCoreGraphicsContext;
+class TBrCtlImageCarrier;
+class TBrCtlSubscribeTo;
+class CBrCtl;
+class PluginSkin;
+class MWebCoreObjectWidget;
+
+class WebFrame : public WebCore::Shared<WebFrame>
+{
+public:
+
+    WebFrame();
+    virtual ~WebFrame();
+
+    void initWithWebFrameView(WebFrameView* view, WebView* topView, WebFrameBridge* bridge);
+    void loadURL(const TPtrC8 url, const TPtrC referrer, WebFrame* child);
+    void loadRequest(const WebCore::ResourceRequest& request,const WebCore::String* windowType = NULL);
+    void loadURL(const TDesC8& url, TInt cachemode, const WebCore::String& referrer,const WebCore::String* windowType = NULL);
+    void loadData(const WebCore::ResourceRequest& request, WebCore::SubstituteData& substituteData);
+
+    // accessors
+    WebFrameBridge* bridge() const { return m_bridge; }
+    void setBridge(WebFrameBridge*);
+    bool isMainFrame() const;
+    WebFrameView* frameView() const {return m_view;}
+    void setFrameView(WebFrameView*);
+
+    // selection
+    bool hasSelection();
+    void clearSelection();
+    WebFrame* findFrameWithSelection();
+
+    WebCore::FrameLoader* frameLoader();
+
+    void stopLoading();
+    void reload();
+
+    WebFrame* findFrameNamed(const TPtr& name);
+    WebFrame* parentFrame();
+    WTF::Vector<WebFrame*> childFrames();
+    void addChild(WebFrame* child);
+    WebCore::DocumentLoader* documentLoader();
+    WebCore::DOMDocument* DOMDocument();
+
+    bool isIframe() const;
+    bool isFrameSet() const;
+
+    void paintRect(WebCoreGraphicsContext& gc, const TRect& r);
+
+    void notifyPluginsOfScrolling();
+    void notifyPluginOfScrolling(WebCore::RenderObject* renderer);
+    PluginSkin* focusedPlugin();
+    WebFrame* frameAtPoint(const TPoint& pt_);
+    
+    // utility functions
+    int imageCount(bool visibleOnly_);
+    CArrayFixFlat<TBrCtlImageCarrier>* imageData(bool visibleOnly_);
+    CArrayFixFlat<TBrCtlSubscribeTo>* findSubscribeTo();
+
+    void scalingFactorChanged(int factor);
+    void makeVisiblePlugins(TBool visible);
+    bool executeScript(const WebCore::String& script);
+    WebCore::Node* getClosestAnchorElement(const TPoint& pt, TPoint& newPos);
+    
+private:
+    WebFrame(const WebFrame&);                    // not implemented
+    WebFrame& operator=(const WebFrame&);         // not implemented    
+
+    WebFrameView*                   m_view;              // the frame view
+    RefPtr<WebFrameLoaderClient>    m_loaderClient;      // the loader client
+    WebFrameBridge*                 m_bridge;        // the bridge
+};
+
+// utility functions
+WebCore::Frame* core(const WebFrame*);
+WebFrame* kit(WebCore::Frame*);
+WebView* kit(WebCore::Page* page);
+WebFrame* mainFrame(WebFrame*);
+CBrCtl* control(WebCore::Frame*);
+CBrCtl* control(const WebFrame*);
+MWebCoreObjectWidget* widget(WebCore::Node*);
+MWebCoreObjectWidget* widget(WebCore::RenderObject*);
+
+#endif
+// END OF FILE