summaryrefslogtreecommitdiff
path: root/Source/WebKit/chromium/src/DateTimeChooserImpl.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-11-07 11:22:47 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2012-11-07 11:22:47 +0100
commitcfd86b747d32ac22246a1aa908eaa720c63a88c1 (patch)
tree24d68c6f61c464ecba1e05670b80390ea3b0e50c /Source/WebKit/chromium/src/DateTimeChooserImpl.cpp
parent69d7c744c9de19d152dbe2d8e46eb7dfd4511d1a (diff)
downloadqtwebkit-cfd86b747d32ac22246a1aa908eaa720c63a88c1.tar.gz
Imported WebKit commit 20271caf2e2c016d5cef40184cddeefeac4f1876 (http://svn.webkit.org/repository/webkit/trunk@133733)
New snapshot that contains all previous fixes as well as build fix for latest QtMultimedia API changes.
Diffstat (limited to 'Source/WebKit/chromium/src/DateTimeChooserImpl.cpp')
-rw-r--r--Source/WebKit/chromium/src/DateTimeChooserImpl.cpp32
1 files changed, 21 insertions, 11 deletions
diff --git a/Source/WebKit/chromium/src/DateTimeChooserImpl.cpp b/Source/WebKit/chromium/src/DateTimeChooserImpl.cpp
index 20044add8..29d519966 100644
--- a/Source/WebKit/chromium/src/DateTimeChooserImpl.cpp
+++ b/Source/WebKit/chromium/src/DateTimeChooserImpl.cpp
@@ -29,10 +29,9 @@
*/
#include "config.h"
+#if ENABLE(INPUT_MULTIPLE_FIELDS_UI)
#include "DateTimeChooserImpl.h"
-#if ENABLE(CALENDAR_PICKER)
-
#include "CalendarPicker.h"
#include "ChromeClientImpl.h"
#include "DateComponents.h"
@@ -40,14 +39,18 @@
#include "FrameView.h"
#include "InputTypeNames.h"
#include "Language.h"
-#include "Localizer.h"
#include "NotImplemented.h"
#include "PickerCommon.h"
+#include "PlatformLocale.h"
#include "RenderTheme.h"
#include "WebViewImpl.h"
#include <public/Platform.h>
#include <public/WebLocalizedString.h>
+#if !ENABLE(CALENDAR_PICKER)
+#error "ENABLE_INPUT_MULTIPLE_FIELDS_UI requires ENABLE_CALENDAR_PICKER in Chromium."
+#endif
+
using namespace WebCore;
namespace WebKit {
@@ -57,13 +60,18 @@ DateTimeChooserImpl::DateTimeChooserImpl(ChromeClientImpl* chromeClient, WebCore
, m_client(client)
, m_popup(0)
, m_parameters(parameters)
- , m_localizer(WebCore::Localizer::createDefault())
+ , m_locale(WebCore::Locale::createDefault())
{
ASSERT(m_chromeClient);
ASSERT(m_client);
m_popup = m_chromeClient->openPagePopup(this, m_parameters.anchorRectInRootView);
}
+PassRefPtr<DateTimeChooserImpl> DateTimeChooserImpl::create(ChromeClientImpl* chromeClient, WebCore::DateTimeChooserClient* client, const WebCore::DateTimeChooserParameters& parameters)
+{
+ return adoptRef(new DateTimeChooserImpl(chromeClient, client, parameters));
+}
+
DateTimeChooserImpl::~DateTimeChooserImpl()
{
}
@@ -93,6 +101,7 @@ void DateTimeChooserImpl::writeDocument(WebCore::DocumentWriter& writer)
FrameView* view = static_cast<WebViewImpl*>(m_chromeClient->webView())->page()->mainFrame()->view();
IntRect rootViewVisibleContentRect = view->visibleContentRect(true /* include scrollbars */);
IntRect rootViewRectInScreen = m_chromeClient->rootViewToScreen(rootViewVisibleContentRect);
+ rootViewRectInScreen.move(-view->scrollX(), -view->scrollY());
addString("<!DOCTYPE html><head><meta charset='UTF-8'><style>\n", writer);
writer.addData(WebCore::pickerCommonCss, sizeof(WebCore::pickerCommonCss));
@@ -119,10 +128,10 @@ void DateTimeChooserImpl::writeDocument(WebCore::DocumentWriter& writer)
addProperty("locale", WebCore::defaultLanguage(), writer);
addProperty("todayLabel", Platform::current()->queryLocalizedString(WebLocalizedString::CalendarToday), writer);
addProperty("clearLabel", Platform::current()->queryLocalizedString(WebLocalizedString::CalendarClear), writer);
- addProperty("weekStartDay", m_localizer->firstDayOfWeek(), writer);
- addProperty("monthLabels", m_localizer->monthLabels(), writer);
- addProperty("dayLabels", m_localizer->weekDayShortLabels(), writer);
- addProperty("isCalendarRTL", m_localizer->isRTL(), writer);
+ addProperty("weekStartDay", m_locale->firstDayOfWeek(), writer);
+ addProperty("monthLabels", m_locale->monthLabels(), writer);
+ addProperty("dayLabels", m_locale->weekDayShortLabels(), writer);
+ addProperty("isCalendarRTL", m_locale->isRTL(), writer);
addProperty("isRTL", m_parameters.isAnchorElementRTL, writer);
if (m_parameters.suggestionValues.size()) {
addProperty("inputWidth", static_cast<unsigned>(m_parameters.anchorRectInRootView.width()), writer);
@@ -142,13 +151,14 @@ void DateTimeChooserImpl::writeDocument(WebCore::DocumentWriter& writer)
addString("</script></body>\n", writer);
}
-WebCore::Localizer& DateTimeChooserImpl::localizer()
+WebCore::Locale& DateTimeChooserImpl::locale()
{
- return *m_localizer;
+ return *m_locale;
}
void DateTimeChooserImpl::setValueAndClosePopup(int numValue, const String& stringValue)
{
+ RefPtr<DateTimeChooserImpl> protector(this);
if (numValue >= 0)
m_client->didChooseValue(stringValue);
endChooser();
@@ -163,4 +173,4 @@ void DateTimeChooserImpl::didClosePopup()
} // namespace WebKit
-#endif // ENABLE(CALENDAR_PICKER)
+#endif // ENABLE(INPUT_MULTIPLE_FIELDS_UI)