Chromium Code Reviews| Index: content/renderer/renderer_date_time_picker_impl.cc |
| diff --git a/content/renderer/renderer_date_time_picker_impl.cc b/content/renderer/renderer_date_time_picker_impl.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..06a07a36514cb1dcd6b75cee56a5a74c4933763c |
| --- /dev/null |
| +++ b/content/renderer/renderer_date_time_picker_impl.cc |
| @@ -0,0 +1,79 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "content/renderer/renderer_date_time_picker_impl.h" |
| + |
| +#include "content/common/view_messages.h" |
| +#include "content/renderer/render_view_impl.h" |
| + |
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebDateTimeChooserCompletion.h" |
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebDateTimeChooserParams.h" |
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebDateTimeInputType.h" |
| + |
| +namespace content { |
| + |
| +using WebKit::WebString; |
| + |
| +RendererDateTimePickerImpl::RendererDateTimePickerImpl( |
| + RenderViewImpl* sender, |
| + const WebKit::WebDateTimeChooserParams& params, |
| + WebKit::WebDateTimeChooserCompletion* completion) |
| + : RenderViewObserver(sender), |
| + chooser_params_(params), |
| + chooser_completion_(completion) { |
| +} |
| + |
| +RendererDateTimePickerImpl::~RendererDateTimePickerImpl() { |
| +} |
| + |
| +bool RendererDateTimePickerImpl::Open() { |
| + ViewHostMsg_TextInputState_Params p; |
| + p.type = ExtractType(chooser_params_); |
| + p.value = chooser_params_.currentValue.utf8(); |
| + p.show_ime_if_needed = true; |
| + Send(new ViewHostMsg_TextInputStateChanged(routing_id(), p)); |
| + return true; |
| +} |
| + |
| +bool RendererDateTimePickerImpl::OnMessageReceived( |
| + const IPC::Message& message) { |
| + bool handled = true; |
| + IPC_BEGIN_MESSAGE_MAP(RendererDateTimePickerImpl, message) |
| + IPC_MESSAGE_HANDLER(ViewMsg_ReplaceAll, OnReplaceDateTime) |
| + IPC_MESSAGE_HANDLER(ViewMsg_ClearFocusedNode, OnClear) |
| + IPC_MESSAGE_UNHANDLED(handled = false) |
| + IPC_END_MESSAGE_MAP() |
| + return handled; |
| +} |
| + |
| +void RendererDateTimePickerImpl::OnReplaceDateTime(const string16& new_date) { |
| + if (chooser_completion_) |
| + chooser_completion_->didChooseValue(new_date); |
| +} |
| + |
| +void RendererDateTimePickerImpl::OnClear() { |
| + if (chooser_completion_) |
| + chooser_completion_->didCancelChooser(); |
| +} |
| + |
| +//static |
| +ui::TextInputType RendererDateTimePickerImpl::ExtractType( |
|
Peter Beverloo
2012/12/05 11:57:03
This isn't actually defined as static in the class
Miguel Garcia
2012/12/05 16:23:16
Done.
|
| + const WebKit::WebDateTimeChooserParams& source) { |
| + |
| + if (source.type == WebKit::WebDateTimeInputTypeDate) |
| + return ui::TEXT_INPUT_TYPE_DATE; |
| + if (source.type == WebKit::WebDateTimeInputTypeDateTime) |
| + return ui::TEXT_INPUT_TYPE_DATE_TIME; |
| + if (source.type == WebKit::WebDateTimeInputTypeDateTimeLocal) |
| + return ui::TEXT_INPUT_TYPE_DATE_TIME_LOCAL; |
| + if (source.type == WebKit::WebDateTimeInputTypeMonth) |
| + return ui::TEXT_INPUT_TYPE_MONTH; |
| + if (source.type == WebKit::WebDateTimeInputTypeTime) |
| + return ui::TEXT_INPUT_TYPE_TIME; |
| + if (source.type == WebKit::WebDateTimeInputTypeWeek) |
| + return ui::TEXT_INPUT_TYPE_WEEK; |
| + return ui::TEXT_INPUT_TYPE_NONE; |
| +} |
| + |
| +} // namespace content |