2 * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
3 * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
15 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
16 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
19 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
23 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 #include "ResourceLoaderClient.h"
39 class FrameGdkClient {
41 virtual void openURL(const DeprecatedString&) = 0;
44 class FrameGdk : public Frame, ResourceLoaderClient {
46 FrameGdk(Page*, Element*);
47 FrameGdk(GdkDrawable*);
50 void handleGdkEvent(GdkEvent*);
51 virtual bool openURL(const KURL&);
52 virtual void openURLRequest(const ResourceRequest&);
53 virtual void submitForm(const ResourceRequest&);
54 virtual void urlSelected(const ResourceRequest&);
56 virtual void setTitle(const String&);
58 virtual ObjectContentType objectContentType(const KURL&, const String& mimeType);
59 virtual Plugin* createPlugin(Element*, const KURL&, const Vector<String>&, const Vector<String>&, const String&);
61 virtual void scheduleClose();
63 virtual void unfocusWindow();
65 virtual void focusWindow();
67 virtual void saveDocumentState();
68 virtual void restoreDocumentState();
70 virtual void addMessageToConsole(const String& message, unsigned lineNumber, const String& sourceID);
72 virtual void runJavaScriptAlert(const String& message);
73 virtual bool runJavaScriptConfirm(const String& message);
74 virtual bool runJavaScriptPrompt(const String& message, const String& defaultValue, String& result);
75 virtual bool locationbarVisible();
76 virtual bool menubarVisible();
77 virtual bool personalbarVisible();
78 virtual bool statusbarVisible();
79 virtual bool toolbarVisible();
81 virtual void createEmptyDocument();
82 virtual Range* markedTextRange() const;
84 virtual String incomingReferrer() const;
85 virtual String userAgent() const;
87 virtual String mimeTypeForFileName(const String&) const;
89 virtual void markMisspellingsInAdjacentWords(const VisiblePosition&);
90 virtual void markMisspellings(const Selection&);
92 virtual bool lastEventIsMouseUp() const;
94 virtual bool passSubframeEventToSubframe(MouseEventWithHitTestResults &, Frame* subframe = 0);
95 virtual bool passWheelEventToChildWidget(Node*);
97 virtual String overrideMediaType() const;
99 virtual KJS::Bindings::Instance* getEmbedInstanceForWidget(Widget*);
100 virtual KJS::Bindings::Instance* getObjectInstanceForWidget(Widget*);
101 virtual KJS::Bindings::Instance* getAppletInstanceForWidget(Widget*);
102 virtual KJS::Bindings::RootObject* bindingRootObject();
104 virtual void registerCommandForUndo(PassRefPtr<EditCommand>);
105 virtual void registerCommandForRedo(PassRefPtr<EditCommand>);
106 virtual void clearUndoRedoOperations();
107 virtual void issueUndoCommand();
108 virtual void issueRedoCommand();
109 virtual void issueCutCommand();
110 virtual void issueCopyCommand();
111 virtual void issuePasteCommand();
112 virtual void issuePasteAndMatchStyleCommand();
113 virtual void issueTransposeCommand();
114 virtual void respondToChangedSelection(const Selection& oldSelection, bool closeTyping);
115 virtual void respondToChangedContents(const Selection& endingSelection);
116 virtual bool shouldChangeSelection(const Selection& oldSelection, const Selection& newSelection, EAffinity affinity, bool stillSelecting) const;
117 bool shouldChangeSelection(const Selection&) const;
118 virtual void partClearedInBegin();
120 virtual bool canGoBackOrForward(int distance) const;
121 virtual void handledOnloadEvents();
123 virtual bool canPaste() const;
124 virtual bool canRedo() const;
125 virtual bool canUndo() const;
126 virtual void print();
127 virtual bool shouldInterruptJavaScript();
129 bool keyPress(const PlatformKeyboardEvent&);
131 virtual void receivedData(ResourceLoader*, const char*, int);
132 virtual void receivedAllData(ResourceLoader*,PlatformData);
134 IntRect frameGeometry() const;
135 void setFrameGeometry(const IntRect&);
136 virtual Frame* createFrame(const KURL&, const String& name, Element* ownerElement, const String& referrer);
139 virtual bool passMouseDownEventToWidget(Widget*);
140 FrameGdkClient* m_client;
141 GdkDrawable* m_drawable;
144 inline FrameGdk* Win(Frame* frame) { return static_cast<FrameGdk*>(frame); }
145 inline const FrameGdk* Win(const Frame* frame) { return static_cast<const FrameGdk*>(frame); }