Title: [143444] trunk/Source/WebKit2
Revision
143444
Author
[email protected]
Date
2013-02-20 03:08:29 -0800 (Wed, 20 Feb 2013)

Log Message

[EFL][WK2] Port EwkPopupMenuItem to the C API
https://bugs.webkit.org/show_bug.cgi?id=108798

Reviewed by Kenneth Rohde Christiansen.

Make use of the new WKPopupItem C API inside EwkPopupMenuItem to remove
dependency on internal WebPopupItem type. Eina shared string members
are now lazily initialized to make the object cheaper to construct.

* UIProcess/API/efl/ewk_popup_menu.cpp:
(EwkPopupMenu::EwkPopupMenu):
* UIProcess/API/efl/ewk_popup_menu_item.cpp:
(EwkPopupMenuItem::EwkPopupMenuItem):
(EwkPopupMenuItem::type):
(EwkPopupMenuItem::textDirection):
(EwkPopupMenuItem::text):
(EwkPopupMenuItem::tooltipText):
(EwkPopupMenuItem::accessibilityText):
(EwkPopupMenuItem::hasTextDirectionOverride):
(EwkPopupMenuItem::isEnabled):
(EwkPopupMenuItem::isLabel):
(EwkPopupMenuItem::isSelected):
* UIProcess/API/efl/ewk_popup_menu_item_private.h:
(EwkPopupMenuItem::create):
(EwkPopupMenuItem):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (143443 => 143444)


--- trunk/Source/WebKit2/ChangeLog	2013-02-20 11:01:27 UTC (rev 143443)
+++ trunk/Source/WebKit2/ChangeLog	2013-02-20 11:08:29 UTC (rev 143444)
@@ -1,3 +1,31 @@
+2013-02-20  Christophe Dumez  <[email protected]>
+
+        [EFL][WK2] Port EwkPopupMenuItem to the C API
+        https://bugs.webkit.org/show_bug.cgi?id=108798
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Make use of the new WKPopupItem C API inside EwkPopupMenuItem to remove
+        dependency on internal WebPopupItem type. Eina shared string members
+        are now lazily initialized to make the object cheaper to construct.
+
+        * UIProcess/API/efl/ewk_popup_menu.cpp:
+        (EwkPopupMenu::EwkPopupMenu):
+        * UIProcess/API/efl/ewk_popup_menu_item.cpp:
+        (EwkPopupMenuItem::EwkPopupMenuItem):
+        (EwkPopupMenuItem::type):
+        (EwkPopupMenuItem::textDirection):
+        (EwkPopupMenuItem::text):
+        (EwkPopupMenuItem::tooltipText):
+        (EwkPopupMenuItem::accessibilityText):
+        (EwkPopupMenuItem::hasTextDirectionOverride):
+        (EwkPopupMenuItem::isEnabled):
+        (EwkPopupMenuItem::isLabel):
+        (EwkPopupMenuItem::isSelected):
+        * UIProcess/API/efl/ewk_popup_menu_item_private.h:
+        (EwkPopupMenuItem::create):
+        (EwkPopupMenuItem):
+
 2013-02-19  Tim Horton  <[email protected]>
 
         Clarify isInWindow vs. isVisible path through to RenderLayerCompositor

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_popup_menu.cpp (143443 => 143444)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_popup_menu.cpp	2013-02-20 11:01:27 UTC (rev 143443)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_popup_menu.cpp	2013-02-20 11:08:29 UTC (rev 143444)
@@ -31,12 +31,9 @@
 #include "WKAPICast.h"
 #include "WKArray.h"
 #include "WKPopupMenuListener.h"
-#include "WebPopupItemEfl.h"
 #include "ewk_popup_menu_item_private.h"
 #include "ewk_popup_menu_private.h"
 
-using namespace WebKit;
-
 EwkPopupMenu::EwkPopupMenu(EwkView* view, WKPopupMenuListenerRef popupMenuListener, WKArrayRef items, unsigned selectedIndex)
     : m_view(view)
     , m_popupMenuListener(popupMenuListener)
@@ -46,8 +43,7 @@
     size_t size = WKArrayGetSize(items);
     for (size_t i = 0; i < size; ++i) {
         WKPopupItemRef wkItem = static_cast<WKPopupItemRef>(WKArrayGetItemAtIndex(items, i));
-        // FIXME: Remove EwkPopupMenuItem dependency on WebPopupItem.
-        m_popupMenuItems = eina_list_append(m_popupMenuItems, EwkPopupMenuItem::create(toImpl(wkItem)->data()).leakPtr());
+        m_popupMenuItems = eina_list_append(m_popupMenuItems, EwkPopupMenuItem::create(wkItem).leakPtr());
     }
 }
 

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_popup_menu_item.cpp (143443 => 143444)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_popup_menu_item.cpp	2013-02-20 11:01:27 UTC (rev 143443)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_popup_menu_item.cpp	2013-02-20 11:08:29 UTC (rev 143444)
@@ -26,72 +26,71 @@
 #include "config.h"
 #include "ewk_popup_menu_item.h"
 
+#include "WKPopupItem.h"
 #include "ewk_popup_menu_item_private.h"
 #include "ewk_private.h"
-#include <wtf/text/CString.h>
 
-using namespace WebKit;
-
-EwkPopupMenuItem::EwkPopupMenuItem(const WebKit::WebPopupItem& item)
-    : m_type(static_cast<Ewk_Popup_Menu_Item_Type>(item.m_type))
-    , m_textDirection(static_cast<Ewk_Text_Direction>(item.m_textDirection))
-    , m_hasTextDirectionOverride(item.m_hasTextDirectionOverride)
-    , m_isEnabled(item.m_isEnabled)
-    , m_isLabel(item.m_isLabel)
-    , m_isSelected(item.m_isSelected)
-    , m_text(item.m_text.utf8().data())
-    , m_tooltipText(item.m_toolTip.utf8().data())
-    , m_accessibilityText(item.m_accessibilityText.utf8().data())
+EwkPopupMenuItem::EwkPopupMenuItem(WKPopupItemRef item)
+    : m_wkItem(item)
 { }
 
+COMPILE_ASSERT_MATCHING_ENUM(EWK_POPUP_MENU_SEPARATOR, kWKPopupItemTypeSeparator);
+COMPILE_ASSERT_MATCHING_ENUM(EWK_POPUP_MENU_ITEM, kWKPopupItemTypeItem);
+
 Ewk_Popup_Menu_Item_Type EwkPopupMenuItem::type() const
 {
-    return m_type;
+    return static_cast<Ewk_Popup_Menu_Item_Type>(WKPopupItemGetType(m_wkItem.get()));
 }
 
 Ewk_Text_Direction EwkPopupMenuItem::textDirection() const
 {
-    return m_textDirection;
+    return static_cast<Ewk_Text_Direction>(WKPopupItemGetTextDirection(m_wkItem.get()));
 }
 
 const char* EwkPopupMenuItem::text() const
 {
+    if (!m_text)
+        m_text = WKEinaSharedString(AdoptWK, WKPopupItemCopyText(m_wkItem.get()));
+
     return m_text;
 }
 
 const char* EwkPopupMenuItem::tooltipText() const
 {
+    if (!m_tooltipText)
+        m_tooltipText = WKEinaSharedString(AdoptWK, WKPopupItemCopyToolTipText(m_wkItem.get()));
+
     return m_tooltipText;
 }
 
 const char* EwkPopupMenuItem::accessibilityText() const
 {
+    if (!m_accessibilityText)
+        m_accessibilityText = WKEinaSharedString(AdoptWK, WKPopupItemCopyAccessibilityText(m_wkItem.get()));
+
     return m_accessibilityText;
 }
 
 bool EwkPopupMenuItem::hasTextDirectionOverride() const
 {
-    return m_hasTextDirectionOverride;
+    return WKPopupItemHasTextDirectionOverride(m_wkItem.get());
 }
 
 bool EwkPopupMenuItem::isEnabled() const
 {
-    return m_isEnabled;
+    return WKPopupItemIsEnabled(m_wkItem.get());
 }
 
 bool EwkPopupMenuItem::isLabel() const
 {
-    return m_isLabel;
+    return WKPopupItemIsLabel(m_wkItem.get());
 }
 
 bool EwkPopupMenuItem::isSelected() const
 {
-    return m_isSelected;
+    return WKPopupItemIsSelected(m_wkItem.get());
 }
 
-COMPILE_ASSERT_MATCHING_ENUM(EWK_POPUP_MENU_SEPARATOR, WebPopupItem::Separator);
-COMPILE_ASSERT_MATCHING_ENUM(EWK_POPUP_MENU_ITEM, WebPopupItem::Item);
-
 Ewk_Popup_Menu_Item_Type ewk_popup_menu_item_type_get(const Ewk_Popup_Menu_Item* item)
 {
     EINA_SAFETY_ON_NULL_RETURN_VAL(item, EWK_POPUP_MENU_UNKNOWN);

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_popup_menu_item_private.h (143443 => 143444)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_popup_menu_item_private.h	2013-02-20 11:01:27 UTC (rev 143443)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_popup_menu_item_private.h	2013-02-20 11:08:29 UTC (rev 143444)
@@ -27,8 +27,9 @@
 #define ewk_popup_menu_item_private_h
 
 #include "WKEinaSharedString.h"
-#include "WebPopupItem.h"
+#include "WKRetainPtr.h"
 #include "ewk_popup_menu_item.h"
+#include <WebKit2/WKBase.h>
 #include <wtf/PassOwnPtr.h>
 
 /**
@@ -37,7 +38,7 @@
  */
 class EwkPopupMenuItem {
 public:
-    static PassOwnPtr<EwkPopupMenuItem> create(const WebKit::WebPopupItem& item)
+    static PassOwnPtr<EwkPopupMenuItem> create(WKPopupItemRef item)
     {
         return adoptPtr(new EwkPopupMenuItem(item));
     }
@@ -55,19 +56,14 @@
     const char* accessibilityText() const;
 
 private:
-    explicit EwkPopupMenuItem(const WebKit::WebPopupItem& item);
+    explicit EwkPopupMenuItem(WKPopupItemRef item);
 
-    Ewk_Popup_Menu_Item_Type m_type;
-    Ewk_Text_Direction m_textDirection;
+    WKRetainPtr<WKPopupItemRef> m_wkItem;
 
-    bool m_hasTextDirectionOverride;
-    bool m_isEnabled;
-    bool m_isLabel;
-    bool m_isSelected;
-
-    WKEinaSharedString m_text;
-    WKEinaSharedString m_tooltipText;
-    WKEinaSharedString m_accessibilityText;
+    // Lazily initialized.
+    mutable WKEinaSharedString m_text;
+    mutable WKEinaSharedString m_tooltipText;
+    mutable WKEinaSharedString m_accessibilityText;
 };
 
 #endif // ewk_popup_menu_item_private_h
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to