Changeset 143444 in webkit


Ignore:
Timestamp:
Feb 20, 2013 3:08:29 AM (11 years ago)
Author:
Christophe Dumez
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):

Location:
trunk/Source/WebKit2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r143428 r143444  
     12013-02-20  Christophe Dumez  <ch.dumez@sisa.samsung.com>
     2
     3        [EFL][WK2] Port EwkPopupMenuItem to the C API
     4        https://bugs.webkit.org/show_bug.cgi?id=108798
     5
     6        Reviewed by Kenneth Rohde Christiansen.
     7
     8        Make use of the new WKPopupItem C API inside EwkPopupMenuItem to remove
     9        dependency on internal WebPopupItem type. Eina shared string members
     10        are now lazily initialized to make the object cheaper to construct.
     11
     12        * UIProcess/API/efl/ewk_popup_menu.cpp:
     13        (EwkPopupMenu::EwkPopupMenu):
     14        * UIProcess/API/efl/ewk_popup_menu_item.cpp:
     15        (EwkPopupMenuItem::EwkPopupMenuItem):
     16        (EwkPopupMenuItem::type):
     17        (EwkPopupMenuItem::textDirection):
     18        (EwkPopupMenuItem::text):
     19        (EwkPopupMenuItem::tooltipText):
     20        (EwkPopupMenuItem::accessibilityText):
     21        (EwkPopupMenuItem::hasTextDirectionOverride):
     22        (EwkPopupMenuItem::isEnabled):
     23        (EwkPopupMenuItem::isLabel):
     24        (EwkPopupMenuItem::isSelected):
     25        * UIProcess/API/efl/ewk_popup_menu_item_private.h:
     26        (EwkPopupMenuItem::create):
     27        (EwkPopupMenuItem):
     28
    1292013-02-19  Tim Horton  <timothy_horton@apple.com>
    230
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_popup_menu.cpp

    r143275 r143444  
    3232#include "WKArray.h"
    3333#include "WKPopupMenuListener.h"
    34 #include "WebPopupItemEfl.h"
    3534#include "ewk_popup_menu_item_private.h"
    3635#include "ewk_popup_menu_private.h"
    37 
    38 using namespace WebKit;
    3936
    4037EwkPopupMenu::EwkPopupMenu(EwkView* view, WKPopupMenuListenerRef popupMenuListener, WKArrayRef items, unsigned selectedIndex)
     
    4744    for (size_t i = 0; i < size; ++i) {
    4845        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());
     46        m_popupMenuItems = eina_list_append(m_popupMenuItems, EwkPopupMenuItem::create(wkItem).leakPtr());
    5147    }
    5248}
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_popup_menu_item.cpp

    r135117 r143444  
    2727#include "ewk_popup_menu_item.h"
    2828
     29#include "WKPopupItem.h"
    2930#include "ewk_popup_menu_item_private.h"
    3031#include "ewk_private.h"
    31 #include <wtf/text/CString.h>
    3232
    33 using namespace WebKit;
     33EwkPopupMenuItem::EwkPopupMenuItem(WKPopupItemRef item)
     34    : m_wkItem(item)
     35{ }
    3436
    35 EwkPopupMenuItem::EwkPopupMenuItem(const WebKit::WebPopupItem& item)
    36     : m_type(static_cast<Ewk_Popup_Menu_Item_Type>(item.m_type))
    37     , m_textDirection(static_cast<Ewk_Text_Direction>(item.m_textDirection))
    38     , m_hasTextDirectionOverride(item.m_hasTextDirectionOverride)
    39     , m_isEnabled(item.m_isEnabled)
    40     , m_isLabel(item.m_isLabel)
    41     , m_isSelected(item.m_isSelected)
    42     , m_text(item.m_text.utf8().data())
    43     , m_tooltipText(item.m_toolTip.utf8().data())
    44     , m_accessibilityText(item.m_accessibilityText.utf8().data())
    45 { }
     37COMPILE_ASSERT_MATCHING_ENUM(EWK_POPUP_MENU_SEPARATOR, kWKPopupItemTypeSeparator);
     38COMPILE_ASSERT_MATCHING_ENUM(EWK_POPUP_MENU_ITEM, kWKPopupItemTypeItem);
    4639
    4740Ewk_Popup_Menu_Item_Type EwkPopupMenuItem::type() const
    4841{
    49     return m_type;
     42    return static_cast<Ewk_Popup_Menu_Item_Type>(WKPopupItemGetType(m_wkItem.get()));
    5043}
    5144
    5245Ewk_Text_Direction EwkPopupMenuItem::textDirection() const
    5346{
    54     return m_textDirection;
     47    return static_cast<Ewk_Text_Direction>(WKPopupItemGetTextDirection(m_wkItem.get()));
    5548}
    5649
    5750const char* EwkPopupMenuItem::text() const
    5851{
     52    if (!m_text)
     53        m_text = WKEinaSharedString(AdoptWK, WKPopupItemCopyText(m_wkItem.get()));
     54
    5955    return m_text;
    6056}
     
    6258const char* EwkPopupMenuItem::tooltipText() const
    6359{
     60    if (!m_tooltipText)
     61        m_tooltipText = WKEinaSharedString(AdoptWK, WKPopupItemCopyToolTipText(m_wkItem.get()));
     62
    6463    return m_tooltipText;
    6564}
     
    6766const char* EwkPopupMenuItem::accessibilityText() const
    6867{
     68    if (!m_accessibilityText)
     69        m_accessibilityText = WKEinaSharedString(AdoptWK, WKPopupItemCopyAccessibilityText(m_wkItem.get()));
     70
    6971    return m_accessibilityText;
    7072}
     
    7274bool EwkPopupMenuItem::hasTextDirectionOverride() const
    7375{
    74     return m_hasTextDirectionOverride;
     76    return WKPopupItemHasTextDirectionOverride(m_wkItem.get());
    7577}
    7678
    7779bool EwkPopupMenuItem::isEnabled() const
    7880{
    79     return m_isEnabled;
     81    return WKPopupItemIsEnabled(m_wkItem.get());
    8082}
    8183
    8284bool EwkPopupMenuItem::isLabel() const
    8385{
    84     return m_isLabel;
     86    return WKPopupItemIsLabel(m_wkItem.get());
    8587}
    8688
    8789bool EwkPopupMenuItem::isSelected() const
    8890{
    89     return m_isSelected;
     91    return WKPopupItemIsSelected(m_wkItem.get());
    9092}
    91 
    92 COMPILE_ASSERT_MATCHING_ENUM(EWK_POPUP_MENU_SEPARATOR, WebPopupItem::Separator);
    93 COMPILE_ASSERT_MATCHING_ENUM(EWK_POPUP_MENU_ITEM, WebPopupItem::Item);
    9493
    9594Ewk_Popup_Menu_Item_Type ewk_popup_menu_item_type_get(const Ewk_Popup_Menu_Item* item)
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_popup_menu_item_private.h

    r135117 r143444  
    2828
    2929#include "WKEinaSharedString.h"
    30 #include "WebPopupItem.h"
     30#include "WKRetainPtr.h"
    3131#include "ewk_popup_menu_item.h"
     32#include <WebKit2/WKBase.h>
    3233#include <wtf/PassOwnPtr.h>
    3334
     
    3839class EwkPopupMenuItem {
    3940public:
    40     static PassOwnPtr<EwkPopupMenuItem> create(const WebKit::WebPopupItem& item)
     41    static PassOwnPtr<EwkPopupMenuItem> create(WKPopupItemRef item)
    4142    {
    4243        return adoptPtr(new EwkPopupMenuItem(item));
     
    5657
    5758private:
    58     explicit EwkPopupMenuItem(const WebKit::WebPopupItem& item);
     59    explicit EwkPopupMenuItem(WKPopupItemRef item);
    5960
    60     Ewk_Popup_Menu_Item_Type m_type;
    61     Ewk_Text_Direction m_textDirection;
     61    WKRetainPtr<WKPopupItemRef> m_wkItem;
    6262
    63     bool m_hasTextDirectionOverride;
    64     bool m_isEnabled;
    65     bool m_isLabel;
    66     bool m_isSelected;
    67 
    68     WKEinaSharedString m_text;
    69     WKEinaSharedString m_tooltipText;
    70     WKEinaSharedString m_accessibilityText;
     63    // Lazily initialized.
     64    mutable WKEinaSharedString m_text;
     65    mutable WKEinaSharedString m_tooltipText;
     66    mutable WKEinaSharedString m_accessibilityText;
    7167};
    7268
Note: See TracChangeset for help on using the changeset viewer.