Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: ui/views/controls/combobox/native_combobox_views.cc

Issue 9875001: views: Rename Combobox "selected getter/setter" accessors to something more accurate. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: combo box -> combobox Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/controls/combobox/native_combobox_views.h" 5 #include "ui/views/controls/combobox/native_combobox_views.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 // Define the id of the first item in the menu (since it needs to be > 0) 48 // Define the id of the first item in the menu (since it needs to be > 0)
49 const int kFirstMenuItemId = 1000; 49 const int kFirstMenuItemId = 1000;
50 50
51 } // namespace 51 } // namespace
52 52
53 namespace views { 53 namespace views {
54 54
55 const char NativeComboboxViews::kViewClassName[] = 55 const char NativeComboboxViews::kViewClassName[] =
56 "views/NativeComboboxViews"; 56 "views/NativeComboboxViews";
57 57
58 NativeComboboxViews::NativeComboboxViews(Combobox* parent) 58 NativeComboboxViews::NativeComboboxViews(Combobox* combo_box)
59 : combobox_(parent), 59 : combobox_(combo_box),
60 text_border_(new FocusableBorder()), 60 text_border_(new FocusableBorder()),
61 disclosure_arrow_(ui::ResourceBundle::GetSharedInstance().GetImageNamed( 61 disclosure_arrow_(ui::ResourceBundle::GetSharedInstance().GetImageNamed(
62 IDR_DISCLOSURE_ARROW).ToSkBitmap()), 62 IDR_DISCLOSURE_ARROW).ToSkBitmap()),
63 dropdown_open_(false), 63 dropdown_open_(false),
64 selected_item_(-1), 64 selected_index_(-1),
65 content_width_(0), 65 content_width_(0),
66 content_height_(0) { 66 content_height_(0) {
67 set_border(text_border_); 67 set_border(text_border_);
68 } 68 }
69 69
70 NativeComboboxViews::~NativeComboboxViews() { 70 NativeComboboxViews::~NativeComboboxViews() {
71 } 71 }
72 72
73 //////////////////////////////////////////////////////////////////////////////// 73 ////////////////////////////////////////////////////////////////////////////////
74 // NativeComboboxViews, View overrides: 74 // NativeComboboxViews, View overrides:
(...skipping 10 matching lines...) Expand all
85 85
86 bool NativeComboboxViews::OnMouseDragged(const views::MouseEvent& mouse_event) { 86 bool NativeComboboxViews::OnMouseDragged(const views::MouseEvent& mouse_event) {
87 return true; 87 return true;
88 } 88 }
89 89
90 bool NativeComboboxViews::OnKeyPressed(const views::KeyEvent& key_event) { 90 bool NativeComboboxViews::OnKeyPressed(const views::KeyEvent& key_event) {
91 // TODO(oshima): handle IME. 91 // TODO(oshima): handle IME.
92 DCHECK(key_event.type() == ui::ET_KEY_PRESSED); 92 DCHECK(key_event.type() == ui::ET_KEY_PRESSED);
93 93
94 // Check if we are in the default state (-1) and set to first item. 94 // Check if we are in the default state (-1) and set to first item.
95 if(selected_item_ == -1) 95 if(selected_index_ == -1)
96 selected_item_ = 0; 96 selected_index_ = 0;
97 97
98 int new_item = selected_item_; 98 int new_index = selected_index_;
99 switch(key_event.key_code()){ 99 switch (key_event.key_code()) {
100 100 // Move to the next element if any.
101 // move to the next element if any
102 case ui::VKEY_DOWN: 101 case ui::VKEY_DOWN:
103 if (new_item < (combobox_->model()->GetItemCount() - 1)) 102 if (new_index < (combobox_->model()->GetItemCount() - 1))
104 new_item++; 103 new_index++;
105 break; 104 break;
106 105
107 // move to the end of the list 106 // Move to the end of the list,
108 case ui::VKEY_END: 107 case ui::VKEY_END:
109 case ui::VKEY_NEXT: 108 case ui::VKEY_NEXT:
110 new_item = combobox_->model()->GetItemCount() - 1; 109 new_index = combobox_->model()->GetItemCount() - 1;
111 break; 110 break;
112 111
113 // move to the top of the list 112 // Move to the top of the list.
114 case ui::VKEY_HOME: 113 case ui::VKEY_HOME:
115 case ui::VKEY_PRIOR: 114 case ui::VKEY_PRIOR:
116 new_item = 0; 115 new_index = 0;
117 break; 116 break;
118 117
119 // move to the previous element if any 118 // move to the previous element if any
120 case ui::VKEY_UP: 119 case ui::VKEY_UP:
121 if (new_item > 0) 120 if (new_index > 0)
122 new_item--; 121 new_index--;
123 break; 122 break;
124 123
125 default: 124 default:
126 return false; 125 return false;
127
128 } 126 }
129 127
130 if(new_item != selected_item_) { 128 if (new_index != selected_index_) {
131 selected_item_ = new_item; 129 selected_index_ = new_index;
132 combobox_->SelectionChanged(); 130 combobox_->SelectionChanged();
133 SchedulePaint(); 131 SchedulePaint();
134 } 132 }
135 133
136 return true; 134 return true;
137 } 135 }
138 136
139 bool NativeComboboxViews::OnKeyReleased(const views::KeyEvent& key_event) { 137 bool NativeComboboxViews::OnKeyReleased(const views::KeyEvent& key_event) {
140 return true; 138 return true;
141 } 139 }
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 base::i18n::AdjustStringForLocaleDirection(&text); 173 base::i18n::AdjustStringForLocaleDirection(&text);
176 174
177 menu->AppendMenuItem(i + kFirstMenuItemId, text, MenuItemView::NORMAL); 175 menu->AppendMenuItem(i + kFirstMenuItemId, text, MenuItemView::NORMAL);
178 max_width = std::max(max_width, font.GetStringWidth(text)); 176 max_width = std::max(max_width, font.GetStringWidth(text));
179 } 177 }
180 178
181 content_width_ = max_width; 179 content_width_ = max_width;
182 content_height_ = font.GetFontSize(); 180 content_height_ = font.GetFontSize();
183 } 181 }
184 182
185 void NativeComboboxViews::UpdateSelectedItem() { 183 void NativeComboboxViews::UpdateSelectedIndex() {
186 selected_item_ = combobox_->selected_item(); 184 selected_index_ = combobox_->selected_index();
187 } 185 }
188 186
189 void NativeComboboxViews::UpdateEnabled() { 187 void NativeComboboxViews::UpdateEnabled() {
190 SetEnabled(combobox_->enabled()); 188 SetEnabled(combobox_->enabled());
191 } 189 }
192 190
193 int NativeComboboxViews::GetSelectedItem() const { 191 int NativeComboboxViews::GetSelectedIndex() const {
194 return selected_item_; 192 return selected_index_;
195 } 193 }
196 194
197 bool NativeComboboxViews::IsDropdownOpen() const { 195 bool NativeComboboxViews::IsDropdownOpen() const {
198 return dropdown_open_; 196 return dropdown_open_;
199 } 197 }
200 198
201 gfx::Size NativeComboboxViews::GetPreferredSize() { 199 gfx::Size NativeComboboxViews::GetPreferredSize() {
202 if (content_width_ == 0) 200 if (content_width_ == 0)
203 UpdateFromModel(); 201 UpdateFromModel();
204 202
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 244
247 bool NativeComboboxViews::IsItemChecked(int id) const { 245 bool NativeComboboxViews::IsItemChecked(int id) const {
248 return false; 246 return false;
249 } 247 }
250 248
251 bool NativeComboboxViews::IsCommandEnabled(int id) const { 249 bool NativeComboboxViews::IsCommandEnabled(int id) const {
252 return true; 250 return true;
253 } 251 }
254 252
255 void NativeComboboxViews::ExecuteCommand(int id) { 253 void NativeComboboxViews::ExecuteCommand(int id) {
256 // revert menu offset to map back to combobox model 254 // Revert menu offset to map back to combobox model.
257 id -= kFirstMenuItemId; 255 id -= kFirstMenuItemId;
258 DCHECK_LT(id, combobox_->model()->GetItemCount()); 256 DCHECK_LT(id, combobox_->model()->GetItemCount());
259 selected_item_ = id; 257 selected_index_ = id;
260 combobox_->SelectionChanged(); 258 combobox_->SelectionChanged();
261 SchedulePaint(); 259 SchedulePaint();
262 } 260 }
263 261
264 bool NativeComboboxViews::GetAccelerator(int id, ui::Accelerator* accel) { 262 bool NativeComboboxViews::GetAccelerator(int id, ui::Accelerator* accel) {
265 return false; 263 return false;
266 } 264 }
267 265
268 ///////////////////////////////////////////////////////////////// 266 /////////////////////////////////////////////////////////////////
269 // NativeComboboxViews private methods: 267 // NativeComboboxViews private methods:
270 268
271 void NativeComboboxViews::AdjustBoundsForRTLUI(gfx::Rect* rect) const { 269 void NativeComboboxViews::AdjustBoundsForRTLUI(gfx::Rect* rect) const {
272 rect->set_x(GetMirroredXForRect(*rect)); 270 rect->set_x(GetMirroredXForRect(*rect));
273 } 271 }
274 272
275 void NativeComboboxViews::PaintText(gfx::Canvas* canvas) { 273 void NativeComboboxViews::PaintText(gfx::Canvas* canvas) {
276 gfx::Insets insets = GetInsets(); 274 gfx::Insets insets = GetInsets();
277 275
278 canvas->Save(); 276 canvas->Save();
279 canvas->ClipRect(GetContentsBounds()); 277 canvas->ClipRect(GetContentsBounds());
280 278
281 int x = insets.left(); 279 int x = insets.left();
282 int y = insets.top(); 280 int y = insets.top();
283 int text_height = height() - insets.height(); 281 int text_height = height() - insets.height();
284 SkColor text_color = kTextColor; 282 SkColor text_color = kTextColor;
285 283
286 int index = GetSelectedItem(); 284 int index = GetSelectedIndex();
287 if (index < 0 || index > combobox_->model()->GetItemCount()) 285 if (index < 0 || index > combobox_->model()->GetItemCount())
288 index = 0; 286 index = 0;
289 string16 text = combobox_->model()->GetItemAt(index); 287 string16 text = combobox_->model()->GetItemAt(index);
290 288
291 int disclosure_arrow_offset = width() - disclosure_arrow_->width() 289 int disclosure_arrow_offset = width() - disclosure_arrow_->width()
292 - kDisclosureArrowLeftPadding - kDisclosureArrowRightPadding; 290 - kDisclosureArrowLeftPadding - kDisclosureArrowRightPadding;
293 291
294 const gfx::Font& font = Combobox::GetFont(); 292 const gfx::Font& font = Combobox::GetFont();
295 int text_width = font.GetStringWidth(text); 293 int text_width = font.GetStringWidth(text);
296 if ((text_width + insets.width()) > disclosure_arrow_offset) 294 if ((text_width + insets.width()) > disclosure_arrow_offset)
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 349
352 #if defined(USE_AURA) 350 #if defined(USE_AURA)
353 // static 351 // static
354 NativeComboboxWrapper* NativeComboboxWrapper::CreateWrapper( 352 NativeComboboxWrapper* NativeComboboxWrapper::CreateWrapper(
355 Combobox* combobox) { 353 Combobox* combobox) {
356 return new NativeComboboxViews(combobox); 354 return new NativeComboboxViews(combobox);
357 } 355 }
358 #endif 356 #endif
359 357
360 } // namespace views 358 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/controls/combobox/native_combobox_views.h ('k') | ui/views/controls/combobox/native_combobox_views_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698