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 86d268ac91325988a177326ff7e604e700580f5a..0aec33cffd7fb951474241277ac7f1e5daddff4b 100644 |
--- a/content/renderer/renderer_date_time_picker.cc |
+++ b/content/renderer/renderer_date_time_picker.cc |
@@ -17,6 +17,32 @@ using WebKit::WebString; |
namespace content { |
+static ui::TextInputType toTextInputType(int type) { |
+ switch (type) { |
+ case WebKit::WebDateTimeInputTypeDate: |
+ return ui::TEXT_INPUT_TYPE_DATE; |
+ break; |
+ case WebKit::WebDateTimeInputTypeDateTime: |
+ return ui::TEXT_INPUT_TYPE_DATE_TIME; |
+ break; |
+ case WebKit::WebDateTimeInputTypeDateTimeLocal: |
+ return ui::TEXT_INPUT_TYPE_DATE_TIME_LOCAL; |
+ break; |
+ case WebKit::WebDateTimeInputTypeMonth: |
+ return ui::TEXT_INPUT_TYPE_MONTH; |
+ break; |
+ case WebKit::WebDateTimeInputTypeTime: |
+ return ui::TEXT_INPUT_TYPE_TIME; |
+ break; |
+ case WebKit::WebDateTimeInputTypeWeek: |
+ return ui::TEXT_INPUT_TYPE_WEEK; |
+ break; |
+ case WebKit::WebDateTimeInputTypeNone: |
+ default: |
+ return ui::TEXT_INPUT_TYPE_NONE; |
+ } |
+} |
+ |
RendererDateTimePicker::RendererDateTimePicker( |
RenderViewImpl* sender, |
const WebKit::WebDateTimeChooserParams& params, |
@@ -30,24 +56,16 @@ 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.current_value = chooser_params_.currentValue; |
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,23 +81,9 @@ 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); |
} |
void RendererDateTimePicker::OnCancel() { |