Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ui/views/examples/label_example.h" | 5 #include "ui/views/examples/label_example.h" |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "ui/gfx/geometry/vector2d.h" | 10 #include "ui/gfx/geometry/vector2d.h" |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 125 void LabelExample::ButtonPressed(Button* button, const ui::Event& event) { | 125 void LabelExample::ButtonPressed(Button* button, const ui::Event& event) { |
| 126 if (button == multiline_) { | 126 if (button == multiline_) { |
| 127 custom_label_->SetMultiLine(multiline_->checked()); | 127 custom_label_->SetMultiLine(multiline_->checked()); |
| 128 } else if (button == shadows_) { | 128 } else if (button == shadows_) { |
| 129 gfx::ShadowValues shadows; | 129 gfx::ShadowValues shadows; |
| 130 if (shadows_->checked()) { | 130 if (shadows_->checked()) { |
| 131 shadows.push_back(gfx::ShadowValue(gfx::Vector2d(), 1, SK_ColorRED)); | 131 shadows.push_back(gfx::ShadowValue(gfx::Vector2d(), 1, SK_ColorRED)); |
| 132 shadows.push_back(gfx::ShadowValue(gfx::Vector2d(2, 2), 0, SK_ColorGRAY)); | 132 shadows.push_back(gfx::ShadowValue(gfx::Vector2d(2, 2), 0, SK_ColorGRAY)); |
| 133 } | 133 } |
| 134 custom_label_->SetShadows(shadows); | 134 custom_label_->SetShadows(shadows); |
| 135 } else if (button == text_selection_) { | |
| 136 custom_label_->SetSelectable(text_selection_->checked()); | |
| 135 } | 137 } |
| 136 custom_label_->parent()->parent()->Layout(); | 138 custom_label_->parent()->parent()->Layout(); |
| 137 custom_label_->SchedulePaint(); | 139 custom_label_->SchedulePaint(); |
| 138 } | 140 } |
| 139 | 141 |
| 140 void LabelExample::OnPerformAction(Combobox* combobox) { | 142 void LabelExample::OnPerformAction(Combobox* combobox) { |
| 141 if (combobox == alignment_) { | 143 if (combobox == alignment_) { |
| 142 custom_label_->SetHorizontalAlignment( | 144 custom_label_->SetHorizontalAlignment( |
| 143 static_cast<gfx::HorizontalAlignment>(combobox->selected_index())); | 145 static_cast<gfx::HorizontalAlignment>(combobox->selected_index())); |
| 144 } else if (combobox == elide_behavior_) { | 146 } else if (combobox == elide_behavior_) { |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 179 alignment_ = AddCombobox(layout, "Alignment: ", kAlignments, | 181 alignment_ = AddCombobox(layout, "Alignment: ", kAlignments, |
| 180 arraysize(kAlignments)); | 182 arraysize(kAlignments)); |
| 181 elide_behavior_ = AddCombobox(layout, "Elide Behavior: ", kElideBehaviors, | 183 elide_behavior_ = AddCombobox(layout, "Elide Behavior: ", kElideBehaviors, |
| 182 arraysize(kElideBehaviors)); | 184 arraysize(kElideBehaviors)); |
| 183 | 185 |
| 184 column_set = layout->AddColumnSet(1); | 186 column_set = layout->AddColumnSet(1); |
| 185 column_set->AddColumn(GridLayout::LEADING, GridLayout::LEADING, | 187 column_set->AddColumn(GridLayout::LEADING, GridLayout::LEADING, |
| 186 0, GridLayout::USE_PREF, 0, 0); | 188 0, GridLayout::USE_PREF, 0, 0); |
| 187 column_set->AddColumn(GridLayout::LEADING, GridLayout::LEADING, | 189 column_set->AddColumn(GridLayout::LEADING, GridLayout::LEADING, |
| 188 0, GridLayout::USE_PREF, 0, 0); | 190 0, GridLayout::USE_PREF, 0, 0); |
| 191 column_set->AddColumn(GridLayout::LEADING, GridLayout::LEADING, 0, | |
| 192 GridLayout::USE_PREF, 0, 0); | |
| 189 layout->StartRow(0, 1); | 193 layout->StartRow(0, 1); |
| 190 multiline_ = new Checkbox(base::ASCIIToUTF16("Multiline")); | 194 multiline_ = new Checkbox(base::ASCIIToUTF16("Multiline")); |
| 191 multiline_->set_listener(this); | 195 multiline_->set_listener(this); |
| 192 layout->AddView(multiline_); | 196 layout->AddView(multiline_); |
| 193 shadows_ = new Checkbox(base::ASCIIToUTF16("Shadows")); | 197 shadows_ = new Checkbox(base::ASCIIToUTF16("Shadows")); |
| 194 shadows_->set_listener(this); | 198 shadows_->set_listener(this); |
| 195 layout->AddView(shadows_); | 199 layout->AddView(shadows_); |
| 200 text_selection_ = new Checkbox(base::ASCIIToUTF16("Text selection")); | |
|
msw
2016/12/07 20:20:35
nit: rename the identifier |selectable_| and chang
karandeepb
2016/12/12 10:36:19
Done.
| |
| 201 text_selection_->set_listener(this); | |
| 202 layout->AddView(text_selection_); | |
| 196 layout->AddPaddingRow(0, 8); | 203 layout->AddPaddingRow(0, 8); |
| 197 | 204 |
| 198 column_set = layout->AddColumnSet(2); | 205 column_set = layout->AddColumnSet(2); |
| 199 column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, | 206 column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, |
| 200 1, GridLayout::USE_PREF, 0, 0); | 207 1, GridLayout::USE_PREF, 0, 0); |
| 201 layout->StartRow(0, 2); | 208 layout->StartRow(0, 2); |
| 202 custom_label_ = new PreferredSizeLabel(); | 209 custom_label_ = new PreferredSizeLabel(); |
| 203 custom_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 210 custom_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
| 204 custom_label_->SetElideBehavior(gfx::NO_ELIDE); | 211 custom_label_->SetElideBehavior(gfx::NO_ELIDE); |
| 205 custom_label_->SetText(textfield_->text()); | 212 custom_label_->SetText(textfield_->text()); |
| 206 layout->AddView(custom_label_); | 213 layout->AddView(custom_label_); |
| 207 | 214 |
| 215 // Disable the text selection checkbox if |custom_label_| does not support | |
| 216 // text selection. | |
| 217 if (custom_label_->SetSelectable(true)) | |
| 218 text_selection_->SetChecked(true); | |
|
msw
2016/12/07 20:20:35
Don't set selectable and check by default, just di
karandeepb
2016/12/12 10:36:19
Done. This required making Label::IsSelectionSuppo
| |
| 219 else | |
| 220 text_selection_->SetEnabled(false); | |
| 221 | |
| 208 container->AddChildView(control_container); | 222 container->AddChildView(control_container); |
| 209 } | 223 } |
| 210 | 224 |
| 211 Combobox* LabelExample::AddCombobox(GridLayout* layout, | 225 Combobox* LabelExample::AddCombobox(GridLayout* layout, |
| 212 const char* name, | 226 const char* name, |
| 213 const char** strings, | 227 const char** strings, |
| 214 int count) { | 228 int count) { |
| 215 layout->StartRow(0, 0); | 229 layout->StartRow(0, 0); |
| 216 layout->AddView(new Label(base::ASCIIToUTF16(name))); | 230 layout->AddView(new Label(base::ASCIIToUTF16(name))); |
| 217 ExampleComboboxModel* model = new ExampleComboboxModel(strings, count); | 231 ExampleComboboxModel* model = new ExampleComboboxModel(strings, count); |
| 218 example_combobox_models_.push_back(base::WrapUnique(model)); | 232 example_combobox_models_.push_back(base::WrapUnique(model)); |
| 219 Combobox* combobox = new Combobox(model); | 233 Combobox* combobox = new Combobox(model); |
| 220 combobox->SetSelectedIndex(0); | 234 combobox->SetSelectedIndex(0); |
| 221 combobox->set_listener(this); | 235 combobox->set_listener(this); |
| 222 layout->AddView(combobox); | 236 layout->AddView(combobox); |
| 223 return combobox; | 237 return combobox; |
| 224 } | 238 } |
| 225 | 239 |
| 226 } // namespace examples | 240 } // namespace examples |
| 227 } // namespace views | 241 } // namespace views |
| OLD | NEW |