Title: [114113] trunk
Revision
114113
Author
[email protected]
Date
2012-04-13 04:44:22 -0700 (Fri, 13 Apr 2012)

Log Message

[EFL] Add API for color chooser
https://bugs.webkit.org/show_bug.cgi?id=83692

.:

Enables INPUT_TYPE_COLOR by default on the EFL port.

Patch by Thiago Marcos P. Santos <[email protected]> on 2012-04-13
Reviewed by Kenneth Rohde Christiansen.

* Source/cmake/OptionsEfl.cmake:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmakeconfig.h.cmake:

Source/WebCore:

Added new API to enable browsers to display a custom color picker
when an input field of type "color" is activated.

Patch by Thiago Marcos P. Santos <[email protected]> on 2012-04-13
Reviewed by Kenneth Rohde Christiansen.

* PlatformEfl.cmake:
* platform/efl/ColorChooserEfl.cpp: Added.
(WebCore):
(WebCore::ColorChooserEfl::ColorChooserEfl):
(WebCore::ColorChooserEfl::~ColorChooserEfl):
(WebCore::ColorChooserEfl::setSelectedColor):
(WebCore::ColorChooserEfl::endChooser):
* platform/efl/ColorChooserEfl.h: Added.
(WebCore):
(ColorChooserEfl):

Source/WebKit/efl:

Added new API to enable browsers to display a custom color picker
when an input field of type "color" is activated.

Patch by Thiago Marcos P. Santos <[email protected]> on 2012-04-13
Reviewed by Kenneth Rohde Christiansen.

* WebCoreSupport/ChromeClientEfl.cpp:
(WebCore):
(WebCore::ChromeClientEfl::createColorChooser):
(WebCore::ChromeClientEfl::removeColorChooser):
(WebCore::ChromeClientEfl::updateColorChooser):
* WebCoreSupport/ChromeClientEfl.h:
(ChromeClientEfl):
* ewk/ewk_private.h:
(WebCore):
* ewk/ewk_view.cpp:
(_Ewk_View_Private_Data):
(ewk_view_color_chooser_new):
(ewk_view_color_chooser_destroy):
(ewk_view_color_chooser_color_set):
(ewk_view_color_chooser_changed):
* ewk/ewk_view.h:

Tools:

Enables INPUT_TYPE_COLOR by default on the EFL port.

Patch by Thiago Marcos P. Santos <[email protected]> on 2012-04-13
Reviewed by Kenneth Rohde Christiansen.

* Scripts/build-webkit:

Modified Paths

Added Paths

Diff

Modified: trunk/ChangeLog (114112 => 114113)


--- trunk/ChangeLog	2012-04-13 11:25:31 UTC (rev 114112)
+++ trunk/ChangeLog	2012-04-13 11:44:22 UTC (rev 114113)
@@ -1,3 +1,16 @@
+2012-04-13  Thiago Marcos P. Santos  <[email protected]>
+
+        [EFL] Add API for color chooser
+        https://bugs.webkit.org/show_bug.cgi?id=83692
+
+        Enables INPUT_TYPE_COLOR by default on the EFL port.
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+        * Source/cmakeconfig.h.cmake:
+
 2012-04-12  Carlos Garcia Campos  <[email protected]>
 
         [GTK] Enable WebKit2 by default in configure

Modified: trunk/Source/WebCore/ChangeLog (114112 => 114113)


--- trunk/Source/WebCore/ChangeLog	2012-04-13 11:25:31 UTC (rev 114112)
+++ trunk/Source/WebCore/ChangeLog	2012-04-13 11:44:22 UTC (rev 114113)
@@ -1,3 +1,24 @@
+2012-04-13  Thiago Marcos P. Santos  <[email protected]>
+
+        [EFL] Add API for color chooser
+        https://bugs.webkit.org/show_bug.cgi?id=83692
+
+        Added new API to enable browsers to display a custom color picker
+        when an input field of type "color" is activated.
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * PlatformEfl.cmake:
+        * platform/efl/ColorChooserEfl.cpp: Added.
+        (WebCore):
+        (WebCore::ColorChooserEfl::ColorChooserEfl):
+        (WebCore::ColorChooserEfl::~ColorChooserEfl):
+        (WebCore::ColorChooserEfl::setSelectedColor):
+        (WebCore::ColorChooserEfl::endChooser):
+        * platform/efl/ColorChooserEfl.h: Added.
+        (WebCore):
+        (ColorChooserEfl):
+
 2012-04-13  Zalan Bujtas  <[email protected]>
 
         Enabling/disabling delegates scrolling when page has no composited content asserts on WK1.

Modified: trunk/Source/WebCore/PlatformEfl.cmake (114112 => 114113)


--- trunk/Source/WebCore/PlatformEfl.cmake	2012-04-13 11:25:31 UTC (rev 114112)
+++ trunk/Source/WebCore/PlatformEfl.cmake	2012-04-13 11:44:22 UTC (rev 114113)
@@ -23,6 +23,7 @@
   page/efl/EventHandlerEfl.cpp
   platform/Cursor.cpp
   platform/efl/ClipboardEfl.cpp
+  platform/efl/ColorChooserEfl.cpp
   platform/efl/ContextMenuEfl.cpp
   platform/efl/ContextMenuItemEfl.cpp
   platform/efl/CursorEfl.cpp

Added: trunk/Source/WebCore/platform/efl/ColorChooserEfl.cpp (0 => 114113)


--- trunk/Source/WebCore/platform/efl/ColorChooserEfl.cpp	                        (rev 0)
+++ trunk/Source/WebCore/platform/efl/ColorChooserEfl.cpp	2012-04-13 11:44:22 UTC (rev 114113)
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2012, Intel Corporation
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * * Neither the name of Intel Corporation nor the names of its contributors may
+ *   be used to endorse or promote products derived from this software without
+ *   specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if ENABLE(INPUT_TYPE_COLOR)
+
+#include "ColorChooserEfl.h"
+
+#include "ChromeClientEfl.h"
+
+namespace WebCore {
+
+ColorChooserEfl::ColorChooserEfl(ChromeClientEfl* chromeClient)
+    : m_chromeClient(chromeClient)
+{
+    ASSERT(m_chromeClient);
+}
+
+ColorChooserEfl::~ColorChooserEfl()
+{
+}
+
+void ColorChooserEfl::setSelectedColor(const Color& color)
+{
+    m_chromeClient->updateColorChooser(color);
+}
+
+void ColorChooserEfl::endChooser()
+{
+    m_chromeClient->removeColorChooser();
+}
+
+}
+
+#endif // ENABLE(INPUT_TYPE_COLOR)

Added: trunk/Source/WebCore/platform/efl/ColorChooserEfl.h (0 => 114113)


--- trunk/Source/WebCore/platform/efl/ColorChooserEfl.h	                        (rev 0)
+++ trunk/Source/WebCore/platform/efl/ColorChooserEfl.h	2012-04-13 11:44:22 UTC (rev 114113)
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2012, Intel Corporation
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * * Neither the name of Intel Corporation nor the names of its contributors may
+ *   be used to endorse or promote products derived from this software without
+ *   specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef ColorChooserEfl_h
+#define ColorChooserEfl_h
+
+#include "Color.h"
+#include "ColorChooser.h"
+
+#include <Evas.h>
+
+namespace WebCore {
+
+class ChromeClientEfl;
+
+class ColorChooserEfl : public ColorChooser {
+public:
+    ColorChooserEfl(ChromeClientEfl*);
+    ~ColorChooserEfl();
+
+    // ColorChooser implementation.
+    virtual void setSelectedColor(const Color&);
+    virtual void endChooser();
+
+private:
+    ChromeClientEfl* m_chromeClient;
+};
+
+}
+
+#endif // ColorChooserEfl_h

Modified: trunk/Source/WebKit/efl/ChangeLog (114112 => 114113)


--- trunk/Source/WebKit/efl/ChangeLog	2012-04-13 11:25:31 UTC (rev 114112)
+++ trunk/Source/WebKit/efl/ChangeLog	2012-04-13 11:44:22 UTC (rev 114113)
@@ -1,3 +1,30 @@
+2012-04-13  Thiago Marcos P. Santos  <[email protected]>
+
+        [EFL] Add API for color chooser
+        https://bugs.webkit.org/show_bug.cgi?id=83692
+
+        Added new API to enable browsers to display a custom color picker
+        when an input field of type "color" is activated.
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * WebCoreSupport/ChromeClientEfl.cpp:
+        (WebCore):
+        (WebCore::ChromeClientEfl::createColorChooser):
+        (WebCore::ChromeClientEfl::removeColorChooser):
+        (WebCore::ChromeClientEfl::updateColorChooser):
+        * WebCoreSupport/ChromeClientEfl.h:
+        (ChromeClientEfl):
+        * ewk/ewk_private.h:
+        (WebCore):
+        * ewk/ewk_view.cpp:
+        (_Ewk_View_Private_Data):
+        (ewk_view_color_chooser_new):
+        (ewk_view_color_chooser_destroy):
+        (ewk_view_color_chooser_color_set):
+        (ewk_view_color_chooser_changed):
+        * ewk/ewk_view.h:
+
 2012-04-11  Sudarsana Nagineni  <[email protected]>
 
         [EFL] LayoutTestController needs implementation of pageProperty

Modified: trunk/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp (114112 => 114113)


--- trunk/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp	2012-04-13 11:25:31 UTC (rev 114112)
+++ trunk/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp	2012-04-13 11:44:22 UTC (rev 114113)
@@ -64,6 +64,10 @@
 #include "DatabaseTracker.h"
 #endif
 
+#if ENABLE(INPUT_TYPE_COLOR)
+#include "ColorChooserEfl.h"
+#endif
+
 using namespace WebCore;
 
 static inline Evas_Object* kit(Frame* frame)
@@ -425,6 +429,25 @@
 }
 #endif
 
+#if ENABLE(INPUT_TYPE_COLOR)
+PassOwnPtr<ColorChooser> ChromeClientEfl::createColorChooser(ColorChooserClient* colorChooserClient, const Color& initialColor)
+{
+    ewk_view_color_chooser_new(m_view, colorChooserClient, initialColor);
+
+    return adoptPtr(new ColorChooserEfl(this));
+}
+
+void ChromeClientEfl::removeColorChooser()
+{
+    ewk_view_color_chooser_destroy(m_view);
+}
+
+void ChromeClientEfl::updateColorChooser(const Color& color)
+{
+    ewk_view_color_chooser_changed(m_view, color);
+}
+#endif
+
 void ChromeClientEfl::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> prpFileChooser)
 {
     RefPtr<FileChooser> chooser = prpFileChooser;

Modified: trunk/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h (114112 => 114113)


--- trunk/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h	2012-04-13 11:25:31 UTC (rev 114112)
+++ trunk/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h	2012-04-13 11:44:22 UTC (rev 114113)
@@ -28,6 +28,10 @@
 #include "KURL.h"
 #include "PopupMenu.h"
 
+#if ENABLE(INPUT_TYPE_COLOR)
+#include "ColorChooser.h"
+#endif
+
 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
 #include "NotificationClient.h"
 #endif
@@ -138,6 +142,12 @@
     virtual void exitFullScreenForElement(WebCore::Element*);
 #endif
 
+#if ENABLE(INPUT_TYPE_COLOR)
+    virtual PassOwnPtr<ColorChooser> createColorChooser(ColorChooserClient*, const Color&);
+    virtual void removeColorChooser();
+    virtual void updateColorChooser(const Color&);
+#endif
+
     virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>);
     virtual void loadIconForFiles(const Vector<String>&, FileIconLoader*);
     virtual void formStateDidChange(const Node*);

Modified: trunk/Source/WebKit/efl/ewk/ewk_private.h (114112 => 114113)


--- trunk/Source/WebKit/efl/ewk/ewk_private.h	2012-04-13 11:25:31 UTC (rev 114112)
+++ trunk/Source/WebKit/efl/ewk/ewk_private.h	2012-04-13 11:44:22 UTC (rev 114113)
@@ -77,6 +77,10 @@
 struct PopupMenuClient;
 struct ContextMenu;
 struct ContextMenuItem;
+#if ENABLE(INPUT_TYPE_COLOR)
+struct Color;
+struct ColorChooserClient;
+#endif
 #if USE(ACCELERATED_COMPOSITING)
 class GraphicsContext3D;
 class GraphicsLayer;
@@ -154,6 +158,11 @@
 
 WTF::PassRefPtr<WebCore::Widget> ewk_view_plugin_create(Evas_Object* ewkView, Evas_Object* frame, const WebCore::IntSize& pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL& url, const WTF::Vector<WTF::String>& paramNames, const WTF::Vector<WTF::String>& paramValues, const WTF::String& mimeType, bool loadManually);
 
+#if ENABLE(INPUT_TYPE_COLOR)
+void ewk_view_color_chooser_new(Evas_Object* ewkView, WebCore::ColorChooserClient* client, const WebCore::Color& initialColor);
+void ewk_view_color_chooser_changed(Evas_Object* ewkView, const WebCore::Color& newColor);
+#endif
+
 void ewk_view_popup_new(Evas_Object* ewkView, WebCore::PopupMenuClient* client, int selected, const WebCore::IntRect& rect);
 void ewk_view_viewport_attributes_set(Evas_Object* ewkView, const WebCore::ViewportArguments& arguments);
 

Modified: trunk/Source/WebKit/efl/ewk/ewk_view.cpp (114112 => 114113)


--- trunk/Source/WebKit/efl/ewk/ewk_view.cpp	2012-04-13 11:25:31 UTC (rev 114112)
+++ trunk/Source/WebKit/efl/ewk/ewk_view.cpp	2012-04-13 11:44:22 UTC (rev 114113)
@@ -1,6 +1,7 @@
 /*
     Copyright (C) 2009-2010 ProFUSION embedded systems
     Copyright (C) 2009-2012 Samsung Electronics
+    Copyright (C) 2012 Intel Corporation
 
     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Library General Public
@@ -87,6 +88,10 @@
 #include "NetworkInfoClientEfl.h"
 #endif
 
+#if ENABLE(INPUT_TYPE_COLOR)
+#include "ColorChooserClient.h"
+#endif
+
 static const float zoomMinimum = 0.05;
 static const float zoomMaximum = 4.0;
 
@@ -103,6 +108,9 @@
 static const size_t ewkViewScrollsSizeMaximumFree = 32;
 
 static const Evas_Smart_Cb_Description _ewk_view_callback_names[] = {
+    { "colorchooser,create", "(yyyy)" },
+    { "colorchooser,willdelete", "" },
+    { "colorchooser,color,changed", "(yyyy)" },
     { "download,request", "p" },
     { "editorclient,contents,changed", "" },
     { "editorclient,selection,changed", "" },
@@ -152,6 +160,9 @@
     WebCore::ViewportArguments viewportArguments;
     Ewk_History* history;
     OwnPtr<WebCore::PageClientEfl> pageClient;
+#if ENABLE(INPUT_TYPE_COLOR)
+    WebCore::ColorChooserClient* colorChooserClient;
+#endif
     struct {
         Ewk_Menu menu;
         WebCore::PopupMenuClient* menuClient;
@@ -3521,8 +3532,90 @@
     priv->popup.menuClient->valueChanged(index);
 }
 
+#if ENABLE(INPUT_TYPE_COLOR)
 /**
  * @internal
+ *
+ * Creates a new color chooser with an initial selected color.
+ *
+ * @param client ColorChooserClient instance that allows communication with webkit.
+ * @param initialColor The initial selected color.
+ *
+ */
+void ewk_view_color_chooser_new(Evas_Object* ewkView, WebCore::ColorChooserClient* client, const WebCore::Color& initialColor)
+{
+    INF("ewkView=%p", ewkView);
+    EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
+    EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv);
+
+    if (priv->colorChooserClient)
+        ewk_view_color_chooser_destroy(ewkView);
+
+    priv->colorChooserClient = client;
+
+    Ewk_Color color;
+    color.r = initialColor.red();
+    color.g = initialColor.green();
+    color.b = initialColor.blue();
+    color.a = initialColor.alpha();
+
+    evas_object_smart_callback_call(ewkView, "colorchooser,create", &color);
+}
+
+Eina_Bool ewk_view_color_chooser_destroy(Evas_Object* ewkView)
+{
+    INF("ewkView=%p", ewkView);
+    EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
+    EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
+
+    if (!priv->colorChooserClient)
+        return false;
+
+    evas_object_smart_callback_call(ewkView, "colorchooser,willdelete", 0);
+
+    priv->colorChooserClient->didEndChooser();
+    priv->colorChooserClient = 0;
+
+    return true;
+}
+
+void ewk_view_color_chooser_color_set(Evas_Object *ewkView, int r, int g, int b)
+{
+    INF("ewkView=%p", ewkView);
+    EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
+    EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv);
+    EINA_SAFETY_ON_NULL_RETURN(priv->colorChooserClient);
+
+    // Alpha channel is not allowed, see ColorInputType::sanitizeValue().
+    priv->colorChooserClient->didChooseColor(WebCore::Color(r, g, b));
+}
+
+/**
+ * @internal
+ *
+ * The selected color of the color input associated with the color chooser has
+ * changed. Usually the browser should updated the current selected value on the
+ * color picker if the user is not interacting.
+ *
+ * @param newColor The new selected color.
+ *
+ */
+void ewk_view_color_chooser_changed(Evas_Object* ewkView, const WebCore::Color& newColor)
+{
+    INF("ewkView=%p", ewkView);
+
+    Ewk_Color color;
+    color.r = newColor.red();
+    color.g = newColor.green();
+    color.b = newColor.blue();
+    color.a = newColor.alpha();
+
+    evas_object_smart_callback_call(ewkView, "colorchooser,color,changed", &color);
+}
+#endif
+
+/**
+ * @internal
  * Request a download to user.
  *
  * @param ewkView View.

Modified: trunk/Source/WebKit/efl/ewk/ewk_view.h (114112 => 114113)


--- trunk/Source/WebKit/efl/ewk/ewk_view.h	2012-04-13 11:25:31 UTC (rev 114112)
+++ trunk/Source/WebKit/efl/ewk/ewk_view.h	2012-04-13 11:44:22 UTC (rev 114113)
@@ -1,6 +1,7 @@
 /*
     Copyright (C) 2009-2010 ProFUSION embedded systems
     Copyright (C) 2009-2010 Samsung Electronics
+    Copyright (C) 2012 Intel Corporation
 
     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Library General Public
@@ -33,6 +34,11 @@
  *
  * The following signals (see evas_object_smart_callback_add()) are emitted:
  *
+ *  - "colorchooser,create", Ewk_Color: a new color chooser should be created.
+ *  - "colorchooser,willdelete", void: reports that a previously created color
+ *    chooser will be deleted.
+ *  - "colorchooser,color,changed", Ewk_Color: the value at the color input widget
+ *    corresponding to the color chooser has changed.
  *  - "download,request", Ewk_Download: reports a download is being requested
  *  - "editorclient,contents,changed", void: reports to the view that editor
  *    client's contents were changed
@@ -284,6 +290,16 @@
     Evas_Coord x, y, w, h, x2, y2;
 };
 
+/// Creates a type name for @a _Ewk_Color.
+typedef struct _Ewk_Color Ewk_Color;
+/// Represents a color using the RGBA format.
+struct _Ewk_Color {
+    unsigned char r; /**< Red channel. */
+    unsigned char g; /**< Green channel. */
+    unsigned char b; /**< Blue channel. */
+    unsigned char a; /**< Alpha channel. */
+};
+
 /**
  * @brief Contains an internal View data.
  *
@@ -750,6 +766,35 @@
 EAPI Eina_Bool    ewk_view_execute_editor_command(Evas_Object *o, const Ewk_Editor_Command command, const char *value);
 
 /**
+ * Destroys a previously created color chooser.
+ *
+ * Before destroying, it informs client that color chooser's data is ready to be
+ * destroyed by sending a "colorchooser,willdelete". Then it removes any reference
+ * to the color chooser inside webkit. It's safe to call this function either from
+ * inside webkit or from browser.
+ *
+ * @param o view object
+ *
+ * @return @c EINA_TRUE in case color chooser was successfully destroyed or @c EINA_TRUE in
+ * case there wasn't any color chooser to be destroyed
+ */
+EAPI Eina_Bool    ewk_view_color_chooser_destroy(Evas_Object* o);
+
+/**
+ * Changes the selected color.
+ *
+ * Changes the color selected in the color input widget. The browser should call
+ * this when the user chooses a new color. It's likely that ewk_view_color_chooser_destroy
+ * will be called afterwards.
+ *
+ * @param o view object
+ * @param r red color component
+ * @param g green color component
+ * @param b blue color component
+ */
+EAPI void         ewk_view_color_chooser_color_set(Evas_Object* o, int r, int g, int b);
+
+/**
  * Changes currently selected item.
  *
  * Changes the option selected in select widget. This is called by browser

Modified: trunk/Source/cmake/OptionsEfl.cmake (114112 => 114113)


--- trunk/Source/cmake/OptionsEfl.cmake	2012-04-13 11:25:31 UTC (rev 114112)
+++ trunk/Source/cmake/OptionsEfl.cmake	2012-04-13 11:44:22 UTC (rev 114113)
@@ -69,6 +69,7 @@
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FAST_MOBILE_SCROLLING ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILTERS ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GLIB_SUPPORT ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API OFF)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_INFO ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PAGE_VISIBILITY_API ON)

Modified: trunk/Source/cmake/WebKitFeatures.cmake (114112 => 114113)


--- trunk/Source/cmake/WebKitFeatures.cmake	2012-04-13 11:25:31 UTC (rev 114112)
+++ trunk/Source/cmake/WebKitFeatures.cmake	2012-04-13 11:44:22 UTC (rev 114113)
@@ -40,8 +40,8 @@
     WEBKIT_OPTION_DEFINE(ENABLE_ICONDATABASE "Toggle Icon database support" ON)
     WEBKIT_OPTION_DEFINE(ENABLE_IMAGE_DECODER_DOWN_SAMPLING "Toggle image decoder down sampling support" OFF)
     WEBKIT_OPTION_DEFINE(ENABLE_INDEXED_DATABASE "Toggle Indexed Database API support" OFF)
-    WEBKIT_OPTION_DEFINE(ENABLE_INPUT_COLOR "Toggle Color Input support" OFF)
     WEBKIT_OPTION_DEFINE(ENABLE_INPUT_SPEECH "Toggle Speech Input API support" OFF)
+    WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_COLOR "Toggle Color Input support" OFF)
     WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_DATE "Toggle date type <input> support" OFF)
     WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_DATETIME "Toggle datetime type <input> support" OFF)
     WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_DATETIMELOCAL "Toggle datetime-local type <input> support" OFF)

Modified: trunk/Source/cmakeconfig.h.cmake (114112 => 114113)


--- trunk/Source/cmakeconfig.h.cmake	2012-04-13 11:25:31 UTC (rev 114112)
+++ trunk/Source/cmakeconfig.h.cmake	2012-04-13 11:44:22 UTC (rev 114113)
@@ -31,7 +31,7 @@
 #cmakedefine01 ENABLE_ICONDATABASE
 #cmakedefine01 ENABLE_IMAGE_DECODER_DOWN_SAMPLING
 #cmakedefine01 ENABLE_INDEXED_DATABASE
-#cmakedefine01 ENABLE_INPUT_COLOR
+#cmakedefine01 ENABLE_INPUT_TYPE_COLOR
 #cmakedefine01 ENABLE_INPUT_TYPE_DATE
 #cmakedefine01 ENABLE_INPUT_TYPE_DATETIME
 #cmakedefine01 ENABLE_INPUT_TYPE_DATETIMELOCAL

Modified: trunk/Tools/ChangeLog (114112 => 114113)


--- trunk/Tools/ChangeLog	2012-04-13 11:25:31 UTC (rev 114112)
+++ trunk/Tools/ChangeLog	2012-04-13 11:44:22 UTC (rev 114113)
@@ -1,3 +1,14 @@
+2012-04-13  Thiago Marcos P. Santos  <[email protected]>
+
+        [EFL] Add API for color chooser
+        https://bugs.webkit.org/show_bug.cgi?id=83692
+
+        Enables INPUT_TYPE_COLOR by default on the EFL port.
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Scripts/build-webkit:
+
 2012-04-12  Ryosuke Niwa  <[email protected]>
 
         Extract PerfTest class from PerfTestRunner

Modified: trunk/Tools/Scripts/build-webkit (114112 => 114113)


--- trunk/Tools/Scripts/build-webkit	2012-04-13 11:25:31 UTC (rev 114112)
+++ trunk/Tools/Scripts/build-webkit	2012-04-13 11:44:22 UTC (rev 114113)
@@ -236,7 +236,7 @@
       define => "ENABLE_SCRIPTED_SPEECH", default => 0, value => \$scriptedSpeechSupport },
 
     { option => "input-type-color", desc => "Toggle color type <input> support",
-      define => "ENABLE_INPUT_TYPE_COLOR", default => isBlackBerry(), value => \$inputTypeColorSupport },
+      define => "ENABLE_INPUT_TYPE_COLOR", default => (isBlackBerry() || isEfl()), value => \$inputTypeColorSupport },
 
     { option => "input-type-date", desc => "Toggle date type <input> support",
       define => "ENABLE_INPUT_TYPE_DATE", default => 0, value => \$inputTypeDateSupport },
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to