Changeset 143275 in webkit
- Timestamp:
- Feb 18, 2013 4:40:44 PM (11 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 10 added
- 16 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r143273 r143275 1 2013-02-18 Christophe Dumez <ch.dumez@sisa.samsung.com> 2 3 [EFL][WK2] Add C API for popup menu and popup item 4 https://bugs.webkit.org/show_bug.cgi?id=109083 5 6 Reviewed by Anders Carlsson. 7 8 WK2 EFL delegates display of the popup menu to the browser which causes 9 us to have a strong interdependency between internal C++ classes 10 (WebPopupMenuProxyEfl, WebPopupItem) and our EFL API implementation 11 (EwkView, EwkPopupMenu, EwkPopupMenuItem). 12 13 Since we want to remove this interdependency, this patch introduces a 14 for WebPopupMenuProxyEfl (WKPopupMenuListener) and for WebPopupItem 15 (WKPopupItem). It also introduces a WKPage client with callbacks for 16 showPopupMenu and hidePopupMenu. 17 18 Note that the popup menu functionality is covered by ewk_popup_menu API 19 tests and no functionality is lost. 20 21 * PlatformEfl.cmake: Add new files to EFL CMake config. 22 * Shared/API/c/efl/WKBaseEfl.h: Add typedefs for WKPopupItemRef and 23 WKPopupMenuListenerRef. 24 * Shared/APIObject.h: Add new TypePopupMenuItem APIObject type for EFL 25 platform. 26 * UIProcess/API/C/efl/WKAPICastEfl.h: Add mapping for WKPopupItemRef 27 and WKPopupMenuListenerRef API types. 28 (WebKit): 29 (WebKit::toAPI): 30 * UIProcess/API/C/efl/WKPageEfl.cpp: Added. 31 (WKPageSetUIPopupMenuClient): Add new C API to set the UI Popup Menu 32 client on the page. 33 * UIProcess/API/C/efl/WKPageEfl.h: Added. 34 * UIProcess/API/C/efl/WKPopupItem.cpp: Added. Add C API for WebPopupItem. 35 (WKPopupItemGetType): 36 (WKPopupItemGetTextDirection): 37 (WKPopupItemHasTextDirectionOverride): 38 (WKPopupItemCopyText): 39 (WKPopupItemCopyToolTipText): 40 (WKPopupItemCopyAccessibilityText): 41 (WKPopupItemIsEnabled): 42 (WKPopupItemIsLabel): 43 (WKPopupItemIsSelected): 44 * UIProcess/API/C/efl/WKPopupItem.h: Added. 45 * UIProcess/API/C/efl/WKPopupMenuListener.cpp: Added. Add C API for 46 WebPopupMenuListenerEfl (formerly WebPopupMenuProxyEfl) so that the 47 client can report which popup menu item was selected. 48 (WKPopupMenuListenerSetSelection): 49 * UIProcess/API/C/efl/WKPopupMenuListener.h: Added. 50 * UIProcess/API/efl/EwkView.cpp: Remove dependency on internal C++ types 51 (WebPopupMenuProxyEfl and WebPopupItem) and use C API types instead. 52 (EwkView::requestPopupMenu): 53 * UIProcess/API/efl/EwkView.h: 54 (WebKit): 55 (EwkView): 56 * UIProcess/API/efl/ewk_popup_menu.cpp: Use C API for Popup menu. 57 (EwkPopupMenu::EwkPopupMenu): 58 (EwkPopupMenu::setSelectedIndex): 59 * UIProcess/API/efl/ewk_popup_menu_private.h: 60 (EwkPopupMenu::create): 61 (EwkPopupMenu): 62 * UIProcess/WebPageProxy.cpp: Use WKPageUIPopupMenuClient to show / hide 63 the popup menu on EFL port instead of asking the WebPopupMenuProxy. 64 (WebKit::WebPageProxy::close): 65 (WebKit::WebPageProxy::showPopupMenu): 66 (WebKit::WebPageProxy::hidePopupMenu): 67 * UIProcess/WebPageProxy.h: Add new WKPageUIPopupMenuClient member and 68 corresponding initialization method. 69 (WebPageProxy): 70 * UIProcess/WebPopupMenuProxy.h: Disable showPopupMenu / hidePopupMenu 71 virtual methods on EFL port since we go via WKPageUIPopupMenuClient 72 for this now. 73 (WebPopupMenuProxy): 74 * UIProcess/efl/PageUIClientEfl.cpp: 75 (WebKit::PageUIClientEfl::PageUIClientEfl): Handle WKPageUIPopupMenuClient 76 callbacks and call corresponding EwkView methods. Previously, the EwkView 77 methods were called by the internal WebPageProxyEfl class which is no 78 longer needed. 79 (WebKit::PageUIClientEfl::showPopupMenu): 80 (WebKit): 81 (WebKit::PageUIClientEfl::hidePopupMenu): 82 * UIProcess/efl/PageUIClientEfl.h: 83 (PageUIClientEfl): 84 * UIProcess/efl/WebPageProxyEfl.cpp: 85 (WebKit::WebPageProxy::initializeUIPopupMenuClient): 86 (WebKit): 87 * UIProcess/efl/WebPopupItemEfl.cpp: Added. Add APIObject wrapper for 88 WebPopupItem so that we can use it in WKPageUIPopupMenuClient. 89 (WebKit): 90 (WebKit::WebPopupItemEfl::WebPopupItemEfl): 91 (WebKit::WebPopupItemEfl::~WebPopupItemEfl): 92 * UIProcess/efl/WebPopupItemEfl.h: Added. 93 (WebKit): 94 (WebPopupItemEfl): 95 (WebKit::WebPopupItemEfl::create): 96 (WebKit::WebPopupItemEfl::data): 97 (WebKit::WebPopupItemEfl::itemType): 98 (WebKit::WebPopupItemEfl::text): 99 (WebKit::WebPopupItemEfl::textDirection): 100 (WebKit::WebPopupItemEfl::hasTextDirectionOverride): 101 (WebKit::WebPopupItemEfl::toolTipText): 102 (WebKit::WebPopupItemEfl::accessibilityText): 103 (WebKit::WebPopupItemEfl::isEnabled): 104 (WebKit::WebPopupItemEfl::isLabel): 105 (WebKit::WebPopupItemEfl::isSelected): 106 (WebKit::WebPopupItemEfl::type): 107 * UIProcess/efl/WebPopupMenuListenerEfl.cpp: Renamed from Source/WebKit2/UIProcess/efl/WebPopupMenuProxyEfl.cpp. 108 Use WebPopupMenuListenerEfl name instead of WebPopupMenuProxyEfl since 109 it more accurately represents its functionality now. 110 (WebKit): 111 (WebKit::WebPopupMenuListenerEfl::WebPopupMenuListenerEfl): 112 (WebKit::WebPopupMenuListenerEfl::valueChanged): 113 * UIProcess/efl/WebPopupMenuListenerEfl.h: Renamed from Source/WebKit2/UIProcess/efl/WebPopupMenuProxyEfl.h. 114 (WebKit): 115 (WebPopupMenuListenerEfl): 116 (WebKit::WebPopupMenuListenerEfl::create): 117 * UIProcess/efl/WebUIPopupMenuClient.cpp: Added. 118 (WebUIPopupMenuClient::showPopupMenu): 119 (WebUIPopupMenuClient::hidePopupMenu): 120 * UIProcess/efl/WebUIPopupMenuClient.h: Added. 121 (WebKit): 122 (WebUIPopupMenuClient): 123 * UIProcess/efl/WebView.cpp: 124 (WebKit::WebView::createPopupMenuProxy): 125 1 126 2013-02-18 Anders Carlsson <andersca@apple.com> 2 127 -
trunk/Source/WebKit2/PlatformEfl.cmake
r143004 r143275 38 38 UIProcess/API/C/cairo/WKIconDatabaseCairo.cpp 39 39 40 UIProcess/API/C/efl/WKPageEfl.cpp 41 UIProcess/API/C/efl/WKPopupItem.cpp 42 UIProcess/API/C/efl/WKPopupMenuListener.cpp 40 43 UIProcess/API/C/efl/WKView.cpp 41 44 … … 103 106 UIProcess/efl/WebInspectorProxyEfl.cpp 104 107 UIProcess/efl/WebPageProxyEfl.cpp 105 UIProcess/efl/WebPopupMenuProxyEfl.cpp 108 UIProcess/efl/WebPopupItemEfl.cpp 109 UIProcess/efl/WebPopupMenuListenerEfl.cpp 106 110 UIProcess/efl/WebPreferencesEfl.cpp 107 111 UIProcess/efl/WebProcessProxyEfl.cpp 112 UIProcess/efl/WebUIPopupMenuClient.cpp 108 113 UIProcess/efl/WebView.cpp 109 114 UIProcess/efl/WebViewClient.cpp -
trunk/Source/WebKit2/Shared/API/c/efl/WKBaseEfl.h
r120925 r143275 26 26 27 27 typedef const struct OpaqueWKView* WKViewRef; 28 typedef const struct OpaqueWKPopupItem* WKPopupItemRef; 29 typedef const struct OpaqueWKPopupMenuListener* WKPopupMenuListenerRef; 28 30 29 31 #endif /* WKBaseEfl_h */ -
trunk/Source/WebKit2/Shared/APIObject.h
r141473 r143275 134 134 TypeSoupRequestManager, 135 135 #endif 136 #if PLATFORM(EFL) 137 TypePopupMenuItem, 138 #endif 136 139 }; 137 140 -
trunk/Source/WebKit2/UIProcess/API/C/efl/WKAPICastEfl.h
r141836 r143275 25 25 #endif 26 26 27 #include <WebCore/TextDirection.h> 28 #include <WebKit2/WKPopupItem.h> 29 27 30 namespace WebKit { 28 31 29 32 class WebView; 33 class WebPopupItemEfl; 34 class WebPopupMenuListenerEfl; 30 35 31 36 WK_ADD_API_MAPPING(WKViewRef, WebView) 37 WK_ADD_API_MAPPING(WKPopupItemRef, WebPopupItemEfl) 38 WK_ADD_API_MAPPING(WKPopupMenuListenerRef, WebPopupMenuListenerEfl) 39 40 // Enum conversions. 41 inline WKPopupItemTextDirection toAPI(WebCore::TextDirection direction) 42 { 43 WKPopupItemTextDirection wkDirection = kWKPopupItemTextDirectionLTR; 44 45 switch (direction) { 46 case WebCore::RTL: 47 wkDirection = kWKPopupItemTextDirectionRTL; 48 break; 49 case WebCore::LTR: 50 wkDirection = kWKPopupItemTextDirectionLTR; 51 break; 52 } 53 54 return wkDirection; 55 } 32 56 33 57 } -
trunk/Source/WebKit2/UIProcess/API/efl/EwkView.cpp
r143258 r143275 40 40 #include "WKNumber.h" 41 41 #include "WKPageGroup.h" 42 #include "WKPopupItem.h" 42 43 #include "WKString.h" 43 44 #include "WKView.h" … … 46 47 #include "WebPageGroup.h" 47 48 #include "WebPageProxy.h" 48 #include "WebPopupMenuProxyEfl.h"49 49 #include "WebPreferences.h" 50 50 #include "ewk_back_forward_list_private.h" … … 915 915 } 916 916 917 void EwkView::requestPopupMenu(WebPopupMenuProxyEfl* popupMenuProxy, const IntRect& rect, TextDirection textDirection, double pageScaleFactor, const Vector<WebPopupItem>& items, int32_t selectedIndex) 917 COMPILE_ASSERT_MATCHING_ENUM(EWK_TEXT_DIRECTION_RIGHT_TO_LEFT, kWKPopupItemTextDirectionRTL); 918 COMPILE_ASSERT_MATCHING_ENUM(EWK_TEXT_DIRECTION_LEFT_TO_RIGHT, kWKPopupItemTextDirectionLTR); 919 920 void EwkView::requestPopupMenu(WKPopupMenuListenerRef popupMenuListener, const WKRect& rect, WKPopupItemTextDirection textDirection, double pageScaleFactor, WKArrayRef items, int32_t selectedIndex) 918 921 { 919 922 Ewk_View_Smart_Data* sd = smartData(); 920 923 ASSERT(sd->api); 921 924 922 ASSERT(popupMenu Proxy);925 ASSERT(popupMenuListener); 923 926 924 927 if (!sd->api->popup_menu_show) … … 928 931 closePopupMenu(); 929 932 930 m_popupMenu = EwkPopupMenu::create(this, popupMenuProxy, items, selectedIndex); 931 932 sd->api->popup_menu_show(sd, rect, static_cast<Ewk_Text_Direction>(textDirection), pageScaleFactor, m_popupMenu.get()); 933 m_popupMenu = EwkPopupMenu::create(this, popupMenuListener, items, selectedIndex); 934 935 Eina_Rectangle einaRect; 936 EINA_RECTANGLE_SET(&einaRect, rect.origin.x, rect.origin.y, rect.size.width, rect.size.height); 937 938 sd->api->popup_menu_show(sd, einaRect, static_cast<Ewk_Text_Direction>(textDirection), pageScaleFactor, m_popupMenu.get()); 933 939 } 934 940 -
trunk/Source/WebKit2/UIProcess/API/efl/EwkView.h
r143190 r143275 68 68 class WebPageGroup; 69 69 class WebPageProxy; 70 class WebPopupItem;71 class WebPopupMenuProxyEfl;72 70 73 71 #if ENABLE(VIBRATION) … … 189 187 void close(); 190 188 191 void requestPopupMenu(W ebKit::WebPopupMenuProxyEfl*, const WebCore::IntRect&, WebCore::TextDirection, double pageScaleFactor, const Vector<WebKit::WebPopupItem>&items, int32_t selectedIndex);189 void requestPopupMenu(WKPopupMenuListenerRef, const WKRect&, WKPopupItemTextDirection, double pageScaleFactor, WKArrayRef items, int32_t selectedIndex); 192 190 void closePopupMenu(); 193 191 -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_popup_menu.cpp
r140686 r143275 29 29 30 30 #include "EwkView.h" 31 #include "WebPopupMenuProxyEfl.h" 31 #include "WKAPICast.h" 32 #include "WKArray.h" 33 #include "WKPopupMenuListener.h" 34 #include "WebPopupItemEfl.h" 32 35 #include "ewk_popup_menu_item_private.h" 33 36 #include "ewk_popup_menu_private.h" … … 35 38 using namespace WebKit; 36 39 37 EwkPopupMenu::EwkPopupMenu(EwkView* view, W ebPopupMenuProxyEfl* popupMenuProxy, const Vector<WebKit::WebPopupItem>&items, unsigned selectedIndex)40 EwkPopupMenu::EwkPopupMenu(EwkView* view, WKPopupMenuListenerRef popupMenuListener, WKArrayRef items, unsigned selectedIndex) 38 41 : m_view(view) 39 , m_popupMenu Proxy(popupMenuProxy)42 , m_popupMenuListener(popupMenuListener) 40 43 , m_popupMenuItems(0) 41 44 , m_selectedIndex(selectedIndex) 42 45 { 43 const size_t size = items.size(); 44 for (size_t i = 0; i < size; ++i) 45 m_popupMenuItems = eina_list_append(m_popupMenuItems, EwkPopupMenuItem::create(items[i]).leakPtr()); 46 size_t size = WKArrayGetSize(items); 47 for (size_t i = 0; i < size; ++i) { 48 WKPopupItemRef wkItem = static_cast<WKPopupItemRef>(WKArrayGetItemAtIndex(items, i)); 49 // FIXME: Remove EwkPopupMenuItem dependency on WebPopupItem. 50 m_popupMenuItems = eina_list_append(m_popupMenuItems, EwkPopupMenuItem::create(toImpl(wkItem)->data()).leakPtr()); 51 } 46 52 } 47 53 … … 70 76 bool EwkPopupMenu::setSelectedIndex(unsigned selectedIndex) 71 77 { 72 if (!m_popupMenu Proxy)78 if (!m_popupMenuListener) 73 79 return false; 74 80 … … 80 86 81 87 m_selectedIndex = selectedIndex; 82 m_popupMenuProxy->valueChanged(selectedIndex);88 WKPopupMenuListenerSetSelection(m_popupMenuListener.get(), selectedIndex); 83 89 84 90 return true; -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_popup_menu_private.h
r140686 r143275 29 29 30 30 #include <Eina.h> 31 #include <WebKit2/WKBase.h> 31 32 #include <wtf/PassOwnPtr.h> 32 #include <wtf/Vector.h>33 34 namespace WebKit {35 class WebPopupItem;36 class WebPopupMenuProxyEfl;37 }38 33 39 34 class EwkView; … … 41 36 class EwkPopupMenu { 42 37 public: 43 static PassOwnPtr<EwkPopupMenu> create(EwkView* view, W ebKit::WebPopupMenuProxyEfl* popupMenuProxy, const Vector<WebKit::WebPopupItem>&items, unsigned selectedIndex)38 static PassOwnPtr<EwkPopupMenu> create(EwkView* view, WKPopupMenuListenerRef popupMenuListener, WKArrayRef items, unsigned selectedIndex) 44 39 { 45 return adoptPtr(new EwkPopupMenu(view, popupMenu Proxy, items, selectedIndex));40 return adoptPtr(new EwkPopupMenu(view, popupMenuListener, items, selectedIndex)); 46 41 } 47 42 ~EwkPopupMenu(); … … 55 50 56 51 private: 57 EwkPopupMenu(EwkView* viewImpl, W ebKit::WebPopupMenuProxyEfl*, const Vector<WebKit::WebPopupItem>&items, unsigned selectedIndex);52 EwkPopupMenu(EwkView* viewImpl, WKPopupMenuListenerRef, WKArrayRef items, unsigned selectedIndex); 58 53 59 54 EwkView* m_view; 60 W ebKit::WebPopupMenuProxyEfl* m_popupMenuProxy;55 WKRetainPtr<WKPopupMenuListenerRef> m_popupMenuListener; 61 56 Eina_List* m_popupMenuItems; 62 57 unsigned m_selectedIndex; -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r143273 r143275 539 539 m_policyClient.initialize(0); 540 540 m_uiClient.initialize(0); 541 #if PLATFORM(EFL) 542 m_uiPopupMenuClient.initialize(0); 543 #endif 541 544 542 545 m_drawingArea = nullptr; … … 2977 2980 { 2978 2981 if (m_activePopupMenu) { 2982 #if PLATFORM(EFL) 2983 m_uiPopupMenuClient.hidePopupMenu(this); 2984 #else 2979 2985 m_activePopupMenu->hidePopupMenu(); 2986 #endif 2980 2987 m_activePopupMenu->invalidate(); 2981 2988 m_activePopupMenu = 0; … … 2990 2997 m_process->responsivenessTimer()->stop(); 2991 2998 2999 #if PLATFORM(EFL) 3000 UNUSED_PARAM(data); 3001 m_uiPopupMenuClient.showPopupMenu(this, m_activePopupMenu.get(), rect, static_cast<TextDirection>(textDirection), m_pageScaleFactor, items, selectedIndex); 3002 #else 2992 3003 RefPtr<WebPopupMenuProxy> protectedActivePopupMenu = m_activePopupMenu; 2993 3004 … … 2995 3006 2996 3007 // Since Qt and Efl doesn't use a nested mainloop to show the popup and get the answer, we need to keep the client pointer valid. 2997 #if !PLATFORM(QT) && !PLATFORM(EFL)3008 #if !PLATFORM(QT) 2998 3009 protectedActivePopupMenu->invalidate(); 2999 3010 #endif 3000 3011 protectedActivePopupMenu = 0; 3012 #endif 3001 3013 } 3002 3014 … … 3006 3018 return; 3007 3019 3020 #if PLATFORM(EFL) 3021 m_uiPopupMenuClient.hidePopupMenu(this); 3022 #else 3008 3023 m_activePopupMenu->hidePopupMenu(); 3024 #endif 3009 3025 m_activePopupMenu->invalidate(); 3010 3026 m_activePopupMenu = 0; -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r142839 r143275 81 81 82 82 #if PLATFORM(EFL) 83 #include "WKPageEfl.h" 84 #include "WebUIPopupMenuClient.h" 83 85 #include <Evas.h> 84 86 #endif … … 272 274 void initializePolicyClient(const WKPagePolicyClient*); 273 275 void initializeUIClient(const WKPageUIClient*); 276 #if PLATFORM(EFL) 277 void initializeUIPopupMenuClient(const WKPageUIPopupMenuClient*); 278 #endif 274 279 275 280 void initializeWebPage(); … … 1025 1030 WebFormClient m_formClient; 1026 1031 WebUIClient m_uiClient; 1032 #if PLATFORM(EFL) 1033 WebUIPopupMenuClient m_uiPopupMenuClient; 1034 #endif 1027 1035 WebFindClient m_findClient; 1028 1036 WebFindMatchesClient m_findMatchesClient; -
trunk/Source/WebKit2/UIProcess/WebPopupMenuProxy.h
r128683 r143275 67 67 } 68 68 69 #if !PLATFORM(EFL) 69 70 virtual void showPopupMenu(const WebCore::IntRect& rect, WebCore::TextDirection, double pageScaleFactor, const Vector<WebPopupItem>& items, const PlatformPopupMenuData&, int32_t selectedIndex) = 0; 70 71 virtual void hidePopupMenu() = 0; 72 #endif 71 73 72 74 void invalidate() { m_client = 0; } -
trunk/Source/WebKit2/UIProcess/efl/PageUIClientEfl.cpp
r141978 r143275 31 31 #include "WKAPICast.h" 32 32 #include "WKEvent.h" 33 #include "WKPageEfl.h" 33 34 #include "WKString.h" 34 35 #include "ewk_file_chooser_request_private.h" … … 85 86 86 87 WKPageSetPageUIClient(pageRef, &uiClient); 88 89 // Popup Menu UI client. 90 WKPageUIPopupMenuClient uiPopupMenuClient; 91 memset(&uiPopupMenuClient, 0, sizeof(WKPageUIPopupMenuClient)); 92 uiPopupMenuClient.version = kWKPageUIPopupMenuClientCurrentVersion; 93 uiPopupMenuClient.clientInfo = this; 94 uiPopupMenuClient.showPopupMenu = showPopupMenu; 95 uiPopupMenuClient.hidePopupMenu = hidePopupMenu; 96 WKPageSetUIPopupMenuClient(pageRef, &uiPopupMenuClient); 87 97 } 88 98 … … 232 242 #endif 233 243 244 void PageUIClientEfl::showPopupMenu(WKPageRef, WKPopupMenuListenerRef menuListenerRef, WKRect rect, WKPopupItemTextDirection textDirection, double pageScaleFactor, WKArrayRef itemsRef, int32_t selectedIndex, const void* clientInfo) 245 { 246 return toPageUIClientEfl(clientInfo)->m_view->requestPopupMenu(menuListenerRef, rect, textDirection, pageScaleFactor, itemsRef, selectedIndex); 247 } 248 249 void PageUIClientEfl::hidePopupMenu(WKPageRef, const void* clientInfo) 250 { 251 return toPageUIClientEfl(clientInfo)->m_view->closePopupMenu(); 252 } 253 234 254 } // namespace WebKit -
trunk/Source/WebKit2/UIProcess/efl/PageUIClientEfl.h
r141848 r143275 29 29 30 30 #include "WKPage.h" 31 #include "WKPopupItem.h" 31 32 #include <WebKit2/WKBase.h> 32 33 #include <wtf/PassOwnPtr.h> … … 74 75 #endif 75 76 77 static void showPopupMenu(WKPageRef, WKPopupMenuListenerRef, WKRect, WKPopupItemTextDirection, double pageScaleFactor, WKArrayRef itemsRef, int32_t selectedIndex, const void* clientInfo); 78 static void hidePopupMenu(WKPageRef, const void* clientInfo); 79 76 80 EwkView* m_view; 77 81 }; -
trunk/Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp
r143004 r143275 125 125 } 126 126 127 void WebPageProxy::initializeUIPopupMenuClient(const WKPageUIPopupMenuClient* client) 128 { 129 m_uiPopupMenuClient.initialize(client); 130 } 131 127 132 } // namespace WebKit -
trunk/Source/WebKit2/UIProcess/efl/WebPopupMenuListenerEfl.cpp
r143274 r143275 25 25 26 26 #include "config.h" 27 #include "WebPopupMenuProxyEfl.h" 28 29 #include "EwkView.h" 30 #include "NativeWebMouseEvent.h" 31 #include "WebPopupItem.h" 32 #include "ewk_view.h" 33 #include <wtf/text/CString.h> 34 35 using namespace WebCore; 27 #include "WebPopupMenuListenerEfl.h" 36 28 37 29 namespace WebKit { 38 30 39 WebPopupMenu ProxyEfl::WebPopupMenuProxyEfl(EwkView* view,WebPopupMenuProxy::Client* client)31 WebPopupMenuListenerEfl::WebPopupMenuListenerEfl(WebPopupMenuProxy::Client* client) 40 32 : WebPopupMenuProxy(client) 41 , m_view(view)42 33 { 43 34 } 44 35 45 void WebPopupMenu ProxyEfl::showPopupMenu(const IntRect& rect, TextDirection textDirection, double pageScaleFactor, const Vector<WebPopupItem>& items, const PlatformPopupMenuData&, int32_t selectedIndex)36 void WebPopupMenuListenerEfl::valueChanged(int newSelectedIndex) 46 37 { 47 m_view->requestPopupMenu(this, rect, textDirection, pageScaleFactor, items, selectedIndex);48 } 38 if (!m_client) 39 return; 49 40 50 void WebPopupMenuProxyEfl::hidePopupMenu()51 {52 m_view->closePopupMenu();53 }54 55 void WebPopupMenuProxyEfl::valueChanged(int newSelectedIndex)56 {57 41 m_client->valueChangedForPopupMenu(this, newSelectedIndex); 42 invalidate(); 58 43 } 59 44 -
trunk/Source/WebKit2/UIProcess/efl/WebPopupMenuListenerEfl.h
r143274 r143275 24 24 */ 25 25 26 #ifndef WebPopupMenu ProxyEfl_h27 #define WebPopupMenu ProxyEfl_h26 #ifndef WebPopupMenuListenerEfl_h 27 #define WebPopupMenuListenerEfl_h 28 28 29 29 #include "WebPopupMenuProxy.h" 30 30 31 namespace WebCore {32 class IntRect;33 }34 35 class EwkView;36 37 31 namespace WebKit { 38 32 39 class WebPageProxy; 40 41 class WebPopupMenuProxyEfl : public WebPopupMenuProxy { 33 class WebPopupMenuListenerEfl : public WebPopupMenuProxy { 42 34 public: 43 static PassRefPtr<WebPopupMenu ProxyEfl> create(EwkView* viewImpl,WebPopupMenuProxy::Client* client)35 static PassRefPtr<WebPopupMenuListenerEfl> create(WebPopupMenuProxy::Client* client) 44 36 { 45 return adoptRef(new WebPopupMenu ProxyEfl(viewImpl,client));37 return adoptRef(new WebPopupMenuListenerEfl(client)); 46 38 } 47 48 void showPopupMenu(const WebCore::IntRect&, WebCore::TextDirection, double pageScaleFactor, const Vector<WebPopupItem>&, const PlatformPopupMenuData&, int32_t selectedIndex);49 void hidePopupMenu();50 39 51 40 void valueChanged(int newSelectedIndex); 52 41 53 42 private: 54 WebPopupMenuProxyEfl(EwkView*, WebPopupMenuProxy::Client*); 55 56 EwkView* m_view; 43 WebPopupMenuListenerEfl(WebPopupMenuProxy::Client*); 57 44 }; 58 45 59 46 } // namespace WebKit 60 47 61 #endif // WebPopupMenu ProxyEfl_h48 #endif // WebPopupMenuListenerEfl_h -
trunk/Source/WebKit2/UIProcess/efl/WebView.cpp
r143004 r143275 37 37 #include "WebContextMenuProxyEfl.h" 38 38 #include "WebPageProxy.h" 39 #include "WebPopupMenu ProxyEfl.h"39 #include "WebPopupMenuListenerEfl.h" 40 40 #include "ewk_context_private.h" 41 41 … … 303 303 PassRefPtr<WebPopupMenuProxy> WebView::createPopupMenuProxy(WebPageProxy* page) 304 304 { 305 return WebPopupMenu ProxyEfl::create(m_ewkView,page);305 return WebPopupMenuListenerEfl::create(page); 306 306 } 307 307
Note: See TracChangeset
for help on using the changeset viewer.