WebColorChooser.cpp [plain text]
#include "config.h"
#include "WebColorChooser.h"
#if ENABLE(INPUT_TYPE_COLOR)
#include "WebCoreArgumentCoders.h"
#include "WebPage.h"
#include "WebPageProxyMessages.h"
#include "WebProcess.h"
#include <WebCore/ColorChooserClient.h>
using namespace WebCore;
namespace WebKit {
WebColorChooser::WebColorChooser(WebPage* page, ColorChooserClient* client, const Color& initialColor)
: m_colorChooserClient(client)
, m_page(page)
{
m_page->setActiveColorChooser(this);
WebProcess::shared().parentProcessConnection()->send(Messages::WebPageProxy::ShowColorPicker(initialColor, client->elementRectRelativeToRootView()), m_page->pageID());
}
WebColorChooser::~WebColorChooser()
{
if (!m_page)
return;
m_page->setActiveColorChooser(0);
}
void WebColorChooser::didChooseColor(const Color& color)
{
m_colorChooserClient->didChooseColor(color);
}
void WebColorChooser::didEndChooser()
{
m_colorChooserClient->didEndChooser();
}
void WebColorChooser::disconnectFromPage()
{
m_page = 0;
}
void WebColorChooser::reattachColorChooser(const Color& color)
{
ASSERT(m_page);
m_page->setActiveColorChooser(this);
ASSERT(m_colorChooserClient);
WebProcess::shared().parentProcessConnection()->send(Messages::WebPageProxy::ShowColorPicker(color, m_colorChooserClient->elementRectRelativeToRootView()), m_page->pageID());
}
void WebColorChooser::setSelectedColor(const Color& color)
{
if (!m_page)
return;
if (m_page->activeColorChooser() != this)
return;
WebProcess::shared().parentProcessConnection()->send(Messages::WebPageProxy::SetColorPickerColor(color), m_page->pageID());
}
void WebColorChooser::endChooser()
{
if (!m_page)
return;
WebProcess::shared().parentProcessConnection()->send(Messages::WebPageProxy::EndColorPicker(), m_page->pageID());
}
}
#endif // ENABLE(INPUT_TYPE_COLOR)