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