⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webcorebridge.h

📁 khtml在gtk上的移植版本
💻 H
字号:
#ifndef WebCoreBridge_h#define WebCoreBridge_h    #include <glib.h>#include <gdk/gdk.h> // Gdk Events#include "WebCoreKeyboardAccess.h"class KWQKHTMLPart;class KHTMLView;class RenderArena;class QPainter;class CGContext;typedef CGContext* CGContextRef;namespace khtml {    class RenderPart;    class RenderObject;}typedef khtml::RenderPart KHTMLRenderPart;typedef enum {    WebCoreDeviceScreen,    WebCoreDevicePrinter} WebCoreDeviceType;typedef enum {    WebSelectByMoving,    WebSelectByExtending} WebSelectionAlteration;typedef enum {    WebSelectForward,    WebSelectBackward,    WebSelectRight,    WebSelectLeft} WebSelectionDirection;typedef enum {    WebSelectByCharacter,    WebSelectByWord,    WebSelectByLine,    WebSelectByParagraph} WebSelectionGranularity;class WebCoreSettings;class WebCoreResourceHandle;class WebCoreResourceLoader;class KWIQResponse;class KWIQPageCache;class KWIQPageState;class WebCoreElementInfo;namespace NRCit {class DOMCSSStyleDeclaration;class DOMDocument;class DOMDocumentFragment;class DOMElement;class DOMHTMLElement;class DOMNode;class DOMRange;} class WebCoreSettings;class WebScriptObject;class NSEvent;class NSView;// REMOVEUSclass QMouseEvent;class QKeyEvent;typedef struct _GtkWidget GtkWidget;extern gchar* WebCoreElementFrameKey;extern gchar* WebCoreElementImageAltStringKey;extern gchar* WebCoreElementImageKey;extern gchar* WebCoreElementImageRectKey;extern gchar* WebCoreElementImageURLKey;extern gchar* WebCoreElementIsSelectedKey;extern gchar* WebCoreElementLinkURLKey;extern gchar* WebCoreElementLinkTargetFrameKey;extern gchar* WebCoreElementLinkLabelKey;extern gchar* WebCoreElementLinkTitleKey;extern gchar* WebCoreElementTitleKey;// WebCoreBridge objects are used by WebCore to abstract away operations that need// to be implemented by library clients, for example WebKit. The objects are also// used in the opposite direction, for simple access to WebCore functions without dealing// directly with the KHTML C++ classes.// A WebCoreBridge creates and holds a reference to a KHTMLPart.// The WebCoreBridge interface contains methods for use by the non-WebCore side of the bridge.class WebCoreBridge{        // @interface -- the core side of the bridge    private:    KWQKHTMLPart* _part;    KHTMLRenderPart* _renderPart;    RenderArena *_renderPartArena;    bool _drawSelectionOnly;    bool _shouldCreateRenderers;    // const gchar wrappers;    gchar * _url;    gchar * _name;    gchar * _referrer;    gchar * _renderTree;    gchar * _jsEvalString;    gchar * _encoding;    void _setupRootForPrinting(bool onOrOff);    void drawRect(GdkRectangle* rect, QPainter *p);public:    WebCoreBridge();    virtual ~WebCoreBridge();    void init();    void initializeSettings(WebCoreSettings *settings);        void setRenderPart(KHTMLRenderPart *renderPart);    KHTMLRenderPart* renderPart();    void setName(const gchar* name);    const gchar* name();    KWQKHTMLPart* part();        void setParent(WebCoreBridge* parent);    void provisionalLoadStarted();    void openURL(const gchar* URL, 		 bool reload, 		 const gchar* contentType, 		 const gchar* refresh, 		 GTime lastModified, 		 KWIQPageCache *pageCache);    void setEncoding(const gchar* encoding, bool userChosen);    void addData(const char* data, int length);    void closeURL();    void didNotOpenURL(const gchar* URL);    void saveDocumentState();    void restoreDocumentState();    bool canCachePage();    bool saveDocumentToPageCache();    void end();    const gchar* URL();    const gchar* referrer();        void installInFrame(GtkWidget* widget);    void removeFromFrame() ;    void scrollToAnchor(const gchar* a);    void scrollToAnchorWithURL(const gchar* a);    void createKHTMLViewWithGtkWidget(GtkWidget* widget, int marginWidth, int marginHeight);    bool isFrameSet();    void reapplyStylesForDeviceType(WebCoreDeviceType deviceType);    void forceLayoutAdjustingViewSize(bool adjustSizeFlag);    void forceLayoutWithMinimumPageWidth(float minPageWidth, float maximumPageWidth, float maxPageWidth, bool flag);    void sendResizeEvent();    bool needsLayout();    void setNeedsLayout();    void drawRect(GdkRectangle *rect, CGContextRef gc);    void adjustPageHeightNew(float *newBottom,float oldTop, float oldBottom, float bottomLimit);#if 0    NSArray* computePageRectsWithPrintWidth(float printWidth, float printHeight);#endif    void setUsesInactiveTextBackgroundColor(bool uses);    bool usesInactiveTextBackgroundColor();    void mouseDown(GdkEvent * event);    void mouseUp(GdkEvent * event);    void mouseMoved(GdkEventMotion * event);        void mouseDragged(GdkEventMotion * event);    GtkWidget* nextKeyView();    GtkWidget* previousKeyView();    GtkWidget* nextKeyViewInsideWebFrameViews();    GtkWidget* previousKeyViewInsideWebFrameViews();#if 0    NSObject* copyDOMTree(WebCoreDOMTreeCopier& copier);    NSObject* copyRenderTree(WebCoreRenderTreeCopier copier);#endif    const gchar* renderTreeAsExternalRepresentation();        void elementAtPoint(int x, int y, WebCoreElementInfo* info);    bool searchFor(const gchar* string, bool forward, bool caseSensitive, bool wrap);    void jumpToSelection();    void setTextSizeMultiplier(float multiplier);    const gchar* textEncoding();    const gchar* stringByEvaluatingJavaScriptFromString(const gchar* string);#if 0        WebDOMDocument* DOMDocument();#endif    bool interceptKeyEvent(GdkEventKey *event, bool autoRepeat);    void setShouldCreateRenderers(bool f);    bool shouldCreateRenderers();    int numPendingOrLoadingRequests();    void bodyBackgroundColor(GdkColor* outColor);    void adjustViewSize();    void updateAllViews();    // KWIQ    bool hasStaticBackground();        // @protocol --  the client side of the bridge     public:    // returns WebCoreBridge objects     virtual GList* childFrames()=0;         virtual WebCoreBridge* mainFrame()=0;        virtual WebCoreBridge* findFrameNamed(const gchar* name)=0;    // Creates a name for an frame unnamed in the HTML. It should produce repeatable results for loads of the same frameset.      virtual const gchar* generateFrameName()=0;     virtual void frameDetached()=0;    virtual GtkWidget* documentView()=0;        virtual void loadURL(const gchar* URL, const gchar* referrer, bool reload, bool onLoadEvent, const gchar* target, NSEvent *event, NRCit::DOMElement* form, GHashTable* formValues)=0;    virtual void postWithURL(const gchar* URL, const gchar* referrer, const gchar* target, GByteArray* data, const gchar* contentType, NSEvent *event, NRCit::DOMElement *form, GHashTable *formValues)=0;    virtual WebCoreBridge* createWindowWithURL(const gchar* URL, const gchar* name)=0;    virtual void showWindow()=0;    virtual const gchar* userAgentForURL(const gchar* URL)=0;    virtual void setTitle(const gchar* title)=0;    virtual void setStatusText(const gchar* status)=0;    virtual void setIconURL(const gchar* URL)=0;    virtual void setIconURL(const gchar* URL, const gchar* string)=0;    virtual WebCoreBridge* createChildFrameNamed(const gchar* frameName, 				      const gchar* URL,				      KHTMLRenderPart *renderPart,				      bool allowsScrolling, 				      int marginWidth, 				      int marginHeight)=0;    virtual bool areToolbarsVisible()=0;    virtual void setToolbarsVisible(bool visible)=0;    virtual bool isStatusBarVisible()=0;    virtual void setStatusBarVisible(bool visible)=0;    virtual bool areScrollbarsVisible()=0;    virtual void setScrollbarsVisible(bool visible)=0;    virtual void setWindowFrame(GdkRectangle* rect)=0;    virtual void windowFrame(GdkRectangle* outRect)=0;    virtual void setWindowContentRect(GdkRectangle* rect)=0;    virtual void windowContentRect(GdkRectangle* outRect)=0;    virtual void setWindowIsResizable(bool resizable)=0;    virtual bool windowIsResizable()=0;        virtual GtkWidget *firstResponder()=0;    virtual void makeFirstResponder(GtkWidget *view)=0;    virtual void closeWindowSoon()=0;    virtual void runJavaScriptAlertPanelWithMessage(const gchar* message)=0;    virtual bool runJavaScriptConfirmPanelWithMessage(const gchar* message)=0;    virtual bool runJavaScriptTextInputPanelWithPrompt(const gchar* prompt, 						       const gchar* defaultText, 						       gchar** result)=0;    virtual void addMessageToConsole(const gchar* message, unsigned lineNumber, const gchar* sourceURL)=0;    virtual WebCoreResourceHandle* startLoadingResource(WebCoreResourceLoader *loader, 						    const gchar* URL,                                                     GHashTable* headers, 						    GByteArray* requestBody)=0;    virtual WebCoreResourceHandle* startLoadingResource(WebCoreResourceLoader *loader,						    const gchar* URL, 						    GHashTable* headers)=0;    virtual void objectLoadedFromCacheWithURL(const gchar* URL, KWIQResponse* response, unsigned bytes)=0;#if 0    virtual NSData* syncLoadResourceWithURL(NSURL *URL,					    NSDictionary *requestHeaders, 					    NSData *postData, 					    NSURL **finalNSURL, 					    NSDictionary **responseHeaderDict, 					    int *statusCode)=0;#endif    virtual bool isReloading()=0;    virtual void reportClientRedirectToURL(const gchar* URL, 					   double seconds, 					   GTime date, 					   bool lockHistory, 					   bool isJavaScriptFormAction)=0;    virtual void reportClientRedirectCancelled(bool cancelWithLoadInProgress)=0;    virtual void focusWindow()=0;    virtual void unfocusWindow()=0;    virtual GtkWidget* nextKeyViewOutsideWebFrameViews()=0;    virtual GtkWidget* previousKeyViewOutsideWebFrameViews()=0;    virtual bool defersLoading()=0;    virtual void setDefersLoading(bool loading)=0;    virtual void saveDocumentState(GList* documentState)=0; // ownership of documentState is transferred     virtual GList* documentState()=0;  // ownership of documentState is transferred  (again)    virtual void setNeedsReapplyStyles()=0;    virtual const gchar* requestedURLString()=0;    virtual const gchar* incomingReferrer()=0;    virtual GtkWidget* widgetForPluginWithURL(const gchar* URL,					    GList* attributesArray,					    const gchar* baseURLString,					    const gchar* MIMEType) = 0;    virtual bool saveDocumentToPageCache(KWIQPageState *documentInfo)=0;    virtual int getObjectCacheSize()=0;    virtual bool frameRequiredForMIMEType(const gchar* mimeType, const gchar* URL)=0;    virtual void loadEmptyDocumentSynchronously()=0;    virtual const gchar* MIMETypeForPath(const gchar* path)=0;    virtual void handleMouseDragged(NSEvent *event)=0;    virtual void handleAutoscrollForMouseDragged(NSEvent *event)=0;    virtual bool mayStartDragWithMouseDragged(NSEvent *event)=0;    virtual int historyLength()=0;    virtual void goBackOrForward(int distance)=0;    virtual void setHasBorder(bool hasBorder)=0;    virtual WebCoreKeyboardUIMode keyboardUIMode()=0;     virtual void didSetName(const gchar* name) =0;    virtual void print()=0;#if 0    virtual jobject pollForAppletInView(NSView *view)=0;    NSUndoManager *undoManager;#endif        virtual void issueCutCommand()=0;    virtual void issueCopyCommand()=0;    virtual void issuePasteCommand()=0;    virtual void respondToChangedSelection()=0;    virtual void respondToChangedContents()=0;#if 0    virtual bool interceptEditingKeyEvent(NSEvent *event)=0;    virtual void setIsSelected(bool isSelected, NSView *view)=0;    virtual bool isEditable()=0;    virtual bool shouldBeginEditing(DOMRange *range)=0;    virtual bool shouldEndEditing(DOMRange *range)=0;#endif    virtual const gchar* overrideMediaType()=0;    virtual void windowObjectCleared()=0;    };/* POD struct (for now) * strings must be freed */ struct WebCoreElementInfo{    gboolean isSelected;    gchar* linkTitle;    gchar* linkLabel;    gchar* linkURL;    gchar* linkTarget;    // x = y = w = h= -1 if there's no image */    GdkRectangle imageRect;    gchar* imageURL;    gchar* imageAltText;    WebCoreElementInfo();};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -