Chromium Code Reviews| Index: content/renderer/renderer_date_time_picker.cc |
| diff --git a/content/renderer/renderer_date_time_picker.cc b/content/renderer/renderer_date_time_picker.cc |
| index 074ebe5adaea622e11886289f912f89f7c7013e8..b198e2f00ebe7c312da747a334e4b2519a8c59b3 100644 |
| --- a/content/renderer/renderer_date_time_picker.cc |
| +++ b/content/renderer/renderer_date_time_picker.cc |
| @@ -6,48 +6,49 @@ |
| #include "base/strings/string_util.h" |
| #include "content/common/view_messages.h" |
| -#include "content/renderer/date_time_formatter.h" |
| #include "content/renderer/render_view_impl.h" |
| - |
| #include "third_party/WebKit/public/web/WebDateTimeChooserCompletion.h" |
| #include "third_party/WebKit/public/web/WebDateTimeChooserParams.h" |
| #include "third_party/WebKit/public/web/WebDateTimeInputType.h" |
| +#include "ui/base/ime/text_input_type.h" |
| using blink::WebString; |
| namespace content { |
| +static ui::TextInputType toTextInputType(int type) { |
|
jam
2013/12/02 17:27:22
nit: per style guide, this needs to be ToTextInput
keishi
2013/12/03 03:21:25
Done.
This chunk shouldn't be in this CL. I made
|
| + if (type >= blink::WebDateTimeInputTypeDate && |
| + type <= blink::WebDateTimeInputTypeWeek) { |
| + return static_cast<ui::TextInputType>(type - blink::WebDateTimeInputTypeDate |
| + + ui::TEXT_INPUT_TYPE_DATE); |
| + } |
| + NOTREACHED(); |
| + return ui::TEXT_INPUT_TYPE_NONE; |
| +} |
| + |
| RendererDateTimePicker::RendererDateTimePicker( |
| RenderViewImpl* sender, |
| const blink::WebDateTimeChooserParams& params, |
| blink::WebDateTimeChooserCompletion* completion) |
| : RenderViewObserver(sender), |
| chooser_params_(params), |
| - chooser_completion_(completion){ |
| + chooser_completion_(completion) { |
| } |
| RendererDateTimePicker::~RendererDateTimePicker() { |
| } |
| bool RendererDateTimePicker::Open() { |
| - DateTimeFormatter parser(chooser_params_); |
| ViewHostMsg_DateTimeDialogValue_Params message; |
| - message.dialog_type = parser.GetType(); |
| - if (message.dialog_type == ui::TEXT_INPUT_TYPE_WEEK) { |
| - message.year = parser.GetWeekYear(); |
| - message.week = parser.GetWeek(); |
| - } else { |
| - message.year = parser.GetYear(); |
| - message.month = parser.GetMonth(); |
| - message.day = parser.GetDay(); |
| - message.hour = parser.GetHour(); |
| - message.minute = parser.GetMinute(); |
| - message.second = parser.GetSecond(); |
| - message.milli = parser.GetMilli(); |
| - } |
| + message.dialog_type = toTextInputType(chooser_params_.type); |
| + message.dialog_value = chooser_params_.doubleValue; |
| message.minimum = chooser_params_.minimum; |
| message.maximum = chooser_params_.maximum; |
| message.step = chooser_params_.step; |
| + for (size_t i = 0; i < chooser_params_.suggestions.size(); i++) { |
| + DateTimeSuggestion suggestion(chooser_params_.suggestions[i]); |
| + message.suggestions.push_back(suggestion); |
| + } |
| Send(new ViewHostMsg_OpenDateTimeDialog(routing_id(), message)); |
| return true; |
| } |
| @@ -63,28 +64,16 @@ bool RendererDateTimePicker::OnMessageReceived( |
| return handled; |
| } |
| -void RendererDateTimePicker::OnReplaceDateTime( |
| - const ViewHostMsg_DateTimeDialogValue_Params& value) { |
| - |
| - DateTimeFormatter formatter(static_cast<ui::TextInputType>(value.dialog_type), |
| - value.year, |
| - value.month, |
| - value.day, |
| - value.hour, |
| - value.minute, |
| - value.second, |
| - value.milli, |
| - value.year, |
| - value.week); |
| - |
| +void RendererDateTimePicker::OnReplaceDateTime(double value) { |
| if (chooser_completion_) |
| - chooser_completion_->didChooseValue(WebString::fromUTF8( |
| - formatter.GetFormattedValue().c_str())); |
| + chooser_completion_->didChooseValue(value); |
| + static_cast<RenderViewImpl*>(render_view())->DismissDateTimeDialog(); |
| } |
| void RendererDateTimePicker::OnCancel() { |
| if (chooser_completion_) |
| chooser_completion_->didCancelChooser(); |
| + static_cast<RenderViewImpl*>(render_view())->DismissDateTimeDialog(); |
| } |
| } // namespace content |