1dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/* 2dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2007 Holger Hans Peter Freyther 3dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2008 INdT - Instituto Nokia de Tecnologia 4dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2009-2010 ProFUSION embedded systems 5dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2009-2010 Samsung Electronics 6db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 7dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * 8dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * This library is free software; you can redistribute it and/or 9dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * modify it under the terms of the GNU Library General Public 10dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * License as published by the Free Software Foundation; either 11dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * version 2 of the License, or (at your option) any later version. 12dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * 13dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * This library is distributed in the hope that it will be useful, 14dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * but WITHOUT ANY WARRANTY; without even the implied warranty of 15dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Library General Public License for more details. 17dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * 18dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * You should have received a copy of the GNU Library General Public License 19dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * along with this library; see the file COPYING.LIB. If not, write to 20dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 21dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Boston, MA 02110-1301, USA. 22dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */ 23dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 24dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#ifndef ChromeClientEfl_h 25dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define ChromeClientEfl_h 26dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 27dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "ChromeClient.h" 28dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "KURL.h" 295af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke#include "PopupMenu.h" 3006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 3106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsentypedef struct _Evas_Object Evas_Object; 32dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 33dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocknamespace WebCore { 34dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 35dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockclass ChromeClientEfl : public ChromeClient { 36dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockpublic: 3721939df44de1705786c545cd1bf519d47250322dBen Murdoch explicit ChromeClientEfl(Evas_Object* view); 38dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual ~ChromeClientEfl(); 39dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 40dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void chromeDestroyed(); 41dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 42dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void setWindowRect(const FloatRect&); 43dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual FloatRect windowRect(); 44dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 45dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual FloatRect pageRect(); 46dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 47dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual float scaleFactor(); 48dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 49dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void focus(); 50dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void unfocus(); 51dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 52dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual bool canTakeFocus(FocusDirection); 53dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void takeFocus(FocusDirection); 54dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 5521939df44de1705786c545cd1bf519d47250322dBen Murdoch virtual void focusedNodeChanged(Node*); 5628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu virtual void focusedFrameChanged(Frame*); 57dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 58e14391e94c850b8bd03680c23b38978db68687a8John Reck virtual Page* createWindow(Frame*, const FrameLoadRequest&, const WindowFeatures&, const NavigationAction&); 59dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void show(); 60dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 61dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual bool canRunModal(); 62dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void runModal(); 63dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 64dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void setToolbarsVisible(bool); 65dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual bool toolbarsVisible(); 66dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 67dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void setStatusbarVisible(bool); 68dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual bool statusbarVisible(); 69dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 70dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void setScrollbarsVisible(bool); 71dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual bool scrollbarsVisible(); 72dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 73dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void setMenubarVisible(bool); 74dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual bool menubarVisible(); 75dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 765af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke virtual void createSelectPopup(PopupMenuClient*, int selected, const IntRect& rect); 775af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke virtual bool destroySelectPopup(); 785af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 79dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void setResizable(bool); 80dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 81dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void addMessageToConsole(MessageSource, MessageType, MessageLevel, const String& message, 82dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block unsigned int lineNumber, const String& sourceID); 83dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 84dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual bool canRunBeforeUnloadConfirmPanel(); 85dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual bool runBeforeUnloadConfirmPanel(const String& message, Frame* frame); 86dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 87dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void closeWindowSoon(); 88dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 89dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void runJavaScriptAlert(Frame*, const String&); 90dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual bool runJavaScriptConfirm(Frame*, const String&); 91dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual bool runJavaScriptPrompt(Frame*, const String& message, const String& defaultValue, String& result); 92dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void setStatusbarText(const String&); 93dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual bool shouldInterruptJavaScript(); 9481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual WebCore::KeyboardUIMode keyboardUIMode(); 95dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 96dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual IntRect windowResizerRect() const; 97dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 98dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void contentsSizeChanged(Frame*, const IntSize&) const; 99dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual IntPoint screenToWindow(const IntPoint&) const; 100dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual IntRect windowToScreen(const IntRect&) const; 101dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual PlatformPageClient platformPageClient() const; 102dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 103dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void scrollbarsModeDidChange() const; 104dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void mouseDidMoveOverElement(const HitTestResult&, unsigned modifierFlags); 105dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 106dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void setToolTip(const String&, TextDirection); 107dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 108dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void print(Frame*); 109dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 110dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if ENABLE(DATABASE) 111dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void exceededDatabaseQuota(Frame*, const String&); 112dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif 113dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 114dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if ENABLE(OFFLINE_WEB_APPLICATIONS) 115dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void reachedMaxAppCacheSize(int64_t spaceNeeded); 116db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block virtual void reachedApplicationCacheOriginQuota(SecurityOrigin*); 117dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif 118dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 11928040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#if ENABLE(CONTEXT_MENUS) 12028040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu virtual void showContextMenu() { } 12128040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#endif 12228040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu 123cad810f21b803229eb11403f9209855525a25d57Steve Block#if ENABLE(TOUCH_EVENTS) 1242bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual void needTouchEvents(bool); 125cad810f21b803229eb11403f9209855525a25d57Steve Block#endif 126cad810f21b803229eb11403f9209855525a25d57Steve Block 127dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>); 12821939df44de1705786c545cd1bf519d47250322dBen Murdoch virtual void chooseIconForFiles(const Vector<String>&, FileChooser*); 129dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void formStateDidChange(const Node*); 130dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 131967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch virtual void setCursor(const Cursor&); 132dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 133dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const {} 134dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 135dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void requestGeolocationPermissionForFrame(Frame*, Geolocation*); 13621939df44de1705786c545cd1bf519d47250322dBen Murdoch virtual void cancelGeolocationPermissionRequestForFrame(Frame*, Geolocation*); 13721939df44de1705786c545cd1bf519d47250322dBen Murdoch virtual void cancelGeolocationPermissionForFrame(Frame*, Geolocation*); 13821939df44de1705786c545cd1bf519d47250322dBen Murdoch 13921939df44de1705786c545cd1bf519d47250322dBen Murdoch virtual void invalidateContents(const IntRect&, bool); 14021939df44de1705786c545cd1bf519d47250322dBen Murdoch virtual void invalidateWindow(const IntRect&, bool); 14121939df44de1705786c545cd1bf519d47250322dBen Murdoch virtual void invalidateContentsAndWindow(const IntRect&, bool); 14221939df44de1705786c545cd1bf519d47250322dBen Murdoch virtual void invalidateContentsForSlowScroll(const IntRect&, bool); 14321939df44de1705786c545cd1bf519d47250322dBen Murdoch virtual void scroll(const IntSize&, const IntRect&, const IntRect&); 14421939df44de1705786c545cd1bf519d47250322dBen Murdoch virtual void cancelGeolocationPermissionRequestForFrame(Frame*); 14521939df44de1705786c545cd1bf519d47250322dBen Murdoch virtual void iconForFiles(const Vector<String, 0u>&, PassRefPtr<FileChooser>); 14621939df44de1705786c545cd1bf519d47250322dBen Murdoch 147a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch virtual void dispatchViewportDataDidChange(const ViewportArguments&) const; 148e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 149db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block virtual bool selectItemWritingDirectionIsNatural(); 1502fc2651226baac27029e38c9d6ef883fa32084dbSteve Block virtual bool selectItemAlignmentFollowsMenuWritingDirection(); 151db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block virtual PassRefPtr<PopupMenu> createPopupMenu(PopupMenuClient*) const; 152db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block virtual PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const; 153db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 15421939df44de1705786c545cd1bf519d47250322dBen Murdoch Evas_Object* m_view; 155dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block KURL m_hoveredLinkURL; 156dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}; 157dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block} 158dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 159dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif // ChromeClientEfl_h 160