diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2012-11-07 11:22:47 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-11-07 11:22:47 +0100 |
commit | cfd86b747d32ac22246a1aa908eaa720c63a88c1 (patch) | |
tree | 24d68c6f61c464ecba1e05670b80390ea3b0e50c /Source/WebKit/chromium/src/DateTimeChooserImpl.cpp | |
parent | 69d7c744c9de19d152dbe2d8e46eb7dfd4511d1a (diff) | |
download | qtwebkit-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.cpp | 32 |
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) |