Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/views/payments/editor_view_controller.h" | 5 #include "chrome/browser/ui/views/payments/editor_view_controller.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 126 | 126 |
| 127 // An editor can optionally have a header view specific to it. | 127 // An editor can optionally have a header view specific to it. |
| 128 std::unique_ptr<views::View> header_view = CreateHeaderView(); | 128 std::unique_ptr<views::View> header_view = CreateHeaderView(); |
| 129 if (header_view.get()) | 129 if (header_view.get()) |
| 130 content_view->AddChildView(header_view.release()); | 130 content_view->AddChildView(header_view.release()); |
| 131 | 131 |
| 132 // The heart of the editor dialog: all the input fields with their labels. | 132 // The heart of the editor dialog: all the input fields with their labels. |
| 133 content_view->AddChildView(CreateEditorView().release()); | 133 content_view->AddChildView(CreateEditorView().release()); |
| 134 } | 134 } |
| 135 | 135 |
| 136 // Adds the "required fields" label in disabled text, to obtain this result. | 136 base::string16 EditorViewController::GetSecondaryButtonLabel() { |
| 137 // +---------------------------------------------------------+ | 137 return l10n_util::GetStringUTF16(IDS_PAYMENTS_CANCEL_PAYMENT); |
| 138 // | "* indicates required fields" | CANCEL | DONE | | |
| 139 // +---------------------------------------------------------+ | |
| 140 std::unique_ptr<views::View> EditorViewController::CreateExtraFooterView() { | |
| 141 std::unique_ptr<views::View> content_view = base::MakeUnique<views::View>(); | |
| 142 | |
| 143 views::BoxLayout* layout = | |
| 144 new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0); | |
| 145 layout->set_main_axis_alignment(views::BoxLayout::MAIN_AXIS_ALIGNMENT_START); | |
| 146 layout->set_cross_axis_alignment( | |
| 147 views::BoxLayout::CROSS_AXIS_ALIGNMENT_START); | |
| 148 content_view->SetLayoutManager(layout); | |
| 149 | |
| 150 // Adds the "* indicates a required field" label in "disabled" grey text. | |
| 151 std::unique_ptr<views::Label> label = base::MakeUnique<views::Label>( | |
| 152 l10n_util::GetStringUTF16(IDS_PAYMENTS_REQUIRED_FIELD_MESSAGE)); | |
| 153 label->SetDisabledColor(label->GetNativeTheme()->GetSystemColor( | |
| 154 ui::NativeTheme::kColorId_LabelDisabledColor)); | |
| 155 label->SetEnabled(false); | |
| 156 content_view->AddChildView(label.release()); | |
| 157 return content_view; | |
| 158 } | 138 } |
| 159 | 139 |
| 160 void EditorViewController::UpdateEditorView() { | 140 void EditorViewController::UpdateEditorView() { |
| 161 UpdateContentView(); | 141 UpdateContentView(); |
| 162 // TODO(crbug.com/704254): Find how to update the parent view bounds so that | 142 // TODO(crbug.com/704254): Find how to update the parent view bounds so that |
| 163 // the vertical scrollbar size gets updated. | 143 // the vertical scrollbar size gets updated. |
| 164 dialog()->EditorViewUpdated(); | 144 dialog()->EditorViewUpdated(); |
| 165 } | 145 } |
| 166 | 146 |
| 167 void EditorViewController::ButtonPressed(views::Button* sender, | 147 void EditorViewController::ButtonPressed(views::Button* sender, |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 217 columns->AddColumn(views::GridLayout::LEADING, views::GridLayout::CENTER, 0, | 197 columns->AddColumn(views::GridLayout::LEADING, views::GridLayout::CENTER, 0, |
| 218 views::GridLayout::USE_PREF, 0, 0); | 198 views::GridLayout::USE_PREF, 0, 0); |
| 219 | 199 |
| 220 // This is the horizontal padding between the label and the input field. | 200 // This is the horizontal padding between the label and the input field. |
| 221 constexpr int kLabelInputFieldHorizontalPadding = 16; | 201 constexpr int kLabelInputFieldHorizontalPadding = 16; |
| 222 columns->AddPaddingColumn(0, kLabelInputFieldHorizontalPadding); | 202 columns->AddPaddingColumn(0, kLabelInputFieldHorizontalPadding); |
| 223 | 203 |
| 224 columns->AddColumn(views::GridLayout::LEADING, views::GridLayout::CENTER, 0, | 204 columns->AddColumn(views::GridLayout::LEADING, views::GridLayout::CENTER, 0, |
| 225 views::GridLayout::USE_PREF, 0, 0); | 205 views::GridLayout::USE_PREF, 0, 0); |
| 226 | 206 |
| 227 editor_view->SetLayoutManager(editor_layout.release()); | |
| 228 std::vector<EditorField> fields = GetFieldDefinitions(); | 207 std::vector<EditorField> fields = GetFieldDefinitions(); |
| 229 for (const auto& field : fields) { | 208 for (const auto& field : fields) { |
|
Mathieu
2017/05/11 18:15:14
no curlz
anthonyvd
2017/05/11 21:21:50
Done.
| |
| 230 CreateInputField( | 209 CreateInputField(editor_layout.get(), field); |
| 231 static_cast<views::GridLayout*>(editor_view->GetLayoutManager()), | |
| 232 field); | |
| 233 } | 210 } |
| 234 | 211 |
| 212 // Adds the "* indicates a required field" label in "disabled" grey text. | |
| 213 std::unique_ptr<views::Label> required_field = base::MakeUnique<views::Label>( | |
| 214 l10n_util::GetStringUTF16(IDS_PAYMENTS_REQUIRED_FIELD_MESSAGE)); | |
| 215 required_field->SetDisabledColor( | |
| 216 required_field->GetNativeTheme()->GetSystemColor( | |
| 217 ui::NativeTheme::kColorId_LabelDisabledColor)); | |
| 218 required_field->SetEnabled(false); | |
| 219 | |
| 220 views::ColumnSet* required_field_columns = editor_layout->AddColumnSet(1); | |
|
Mathieu
2017/05/11 18:15:14
I think you'll need a big rebase
anthonyvd
2017/05/11 21:21:50
Done.
| |
| 221 required_field_columns->AddColumn(views::GridLayout::LEADING, | |
| 222 views::GridLayout::CENTER, 1, | |
| 223 views::GridLayout::USE_PREF, 0, 0); | |
| 224 editor_layout->StartRow(0, 1); | |
| 225 editor_layout->AddView(required_field.release()); | |
| 226 | |
| 227 editor_view->SetLayoutManager(editor_layout.release()); | |
| 228 | |
| 235 return editor_view; | 229 return editor_view; |
| 236 } | 230 } |
| 237 | 231 |
| 238 // Each input field is a 4-quadrant grid. | 232 // Each input field is a 4-quadrant grid. |
| 239 // +----------------------------------------------------------+ | 233 // +----------------------------------------------------------+ |
| 240 // | Field Label | Input field (textfield/combobox) | | 234 // | Field Label | Input field (textfield/combobox) | |
| 241 // |_______________________|__________________________________| | 235 // |_______________________|__________________________________| |
| 242 // | (empty) | Error label | | 236 // | (empty) | Error label | |
| 243 // +----------------------------------------------------------+ | 237 // +----------------------------------------------------------+ |
| 244 void EditorViewController::CreateInputField(views::GridLayout* layout, | 238 void EditorViewController::CreateInputField(views::GridLayout* layout, |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 299 base::MakeUnique<views::View>(); | 293 base::MakeUnique<views::View>(); |
| 300 error_label_view->SetLayoutManager(new views::FillLayout); | 294 error_label_view->SetLayoutManager(new views::FillLayout); |
| 301 error_labels_[field] = error_label_view.get(); | 295 error_labels_[field] = error_label_view.get(); |
| 302 layout->AddView(error_label_view.release()); | 296 layout->AddView(error_label_view.release()); |
| 303 | 297 |
| 304 // Bottom padding for the row. | 298 // Bottom padding for the row. |
| 305 layout->AddPaddingRow(0, kInputRowSpacing); | 299 layout->AddPaddingRow(0, kInputRowSpacing); |
| 306 } | 300 } |
| 307 | 301 |
| 308 } // namespace payments | 302 } // namespace payments |
| OLD | NEW |