| 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 #ifndef UI_VIEWS_CONTROLS_COMBOBOX_COMBOBOX_H_ | 5 #ifndef UI_VIEWS_CONTROLS_COMBOBOX_COMBOBOX_H_ |
| 6 #define UI_VIEWS_CONTROLS_COMBOBOX_COMBOBOX_H_ | 6 #define UI_VIEWS_CONTROLS_COMBOBOX_COMBOBOX_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 virtual void SetSelectedRow(int row) OVERRIDE; | 112 virtual void SetSelectedRow(int row) OVERRIDE; |
| 113 virtual base::string16 GetTextForRow(int row) OVERRIDE; | 113 virtual base::string16 GetTextForRow(int row) OVERRIDE; |
| 114 | 114 |
| 115 // Overriden from ComboboxModelObserver: | 115 // Overriden from ComboboxModelObserver: |
| 116 virtual void OnComboboxModelChanged(ui::ComboboxModel* model) OVERRIDE; | 116 virtual void OnComboboxModelChanged(ui::ComboboxModel* model) OVERRIDE; |
| 117 | 117 |
| 118 // Overriden from ButtonListener: | 118 // Overriden from ButtonListener: |
| 119 virtual void ButtonPressed(Button* sender, const ui::Event& event) OVERRIDE; | 119 virtual void ButtonPressed(Button* sender, const ui::Event& event) OVERRIDE; |
| 120 | 120 |
| 121 private: | 121 private: |
| 122 // The sources of the clicking event of the text button. |
| 123 enum ClickEventSource { |
| 124 CLICK_EVENT_SOURCE_MENU_ITEM, |
| 125 CLICK_EVENT_SOURCE_MOUSE, |
| 126 CLICK_EVENT_SOURCE_KEYBOARD, |
| 127 }; |
| 128 |
| 122 FRIEND_TEST_ALL_PREFIXES(ComboboxTest, Click); | 129 FRIEND_TEST_ALL_PREFIXES(ComboboxTest, Click); |
| 123 FRIEND_TEST_ALL_PREFIXES(ComboboxTest, NotifyOnClickWithMouse); | 130 FRIEND_TEST_ALL_PREFIXES(ComboboxTest, NotifyOnClickWithMouse); |
| 131 FRIEND_TEST_ALL_PREFIXES(ComboboxTest, ContentWidth); |
| 124 | 132 |
| 125 // Updates the combobox's content from its model. | 133 // Updates the combobox's content from its model. |
| 126 void UpdateFromModel(); | 134 void UpdateFromModel(); |
| 127 | 135 |
| 128 // Updates the border according to the current state. | 136 // Updates the border according to the current state. |
| 129 void UpdateBorder(); | 137 void UpdateBorder(); |
| 130 | 138 |
| 131 // Given bounds within our View, this helper mirrors the bounds if necessary. | 139 // Given bounds within our View, this helper mirrors the bounds if necessary. |
| 132 void AdjustBoundsForRTLUI(gfx::Rect* rect) const; | 140 void AdjustBoundsForRTLUI(gfx::Rect* rect) const; |
| 133 | 141 |
| 134 // Draws the selected value of the drop down list | 142 // Draws the selected value of the drop down list |
| 135 void PaintText(gfx::Canvas* canvas); | 143 void PaintText(gfx::Canvas* canvas); |
| 136 | 144 |
| 137 // Draws the button images. | 145 // Draws the button images. |
| 138 void PaintButtons(gfx::Canvas* canvas); | 146 void PaintButtons(gfx::Canvas* canvas); |
| 139 | 147 |
| 140 // Show the drop down list | 148 // Show the drop down list |
| 141 void ShowDropDownMenu(ui::MenuSourceType source_type); | 149 void ShowDropDownMenu(ui::MenuSourceType source_type); |
| 142 | 150 |
| 143 // Called when the selection is changed by the user. | 151 // Called when the selection is changed by the user. |
| 144 void OnSelectionChanged(); | 152 void OnSelectionChanged(); |
| 145 | 153 |
| 146 // Converts a menu command ID to a menu item index. | 154 // Converts a menu command ID to a menu item index. |
| 147 int MenuCommandToIndex(int menu_command_id) const; | 155 int MenuCommandToIndex(int menu_command_id) const; |
| 148 | 156 |
| 149 int GetDisclosureArrowLeftPadding() const; | 157 int GetDisclosureArrowLeftPadding() const; |
| 150 int GetDisclosureArrowRightPadding() const; | 158 int GetDisclosureArrowRightPadding() const; |
| 151 | 159 |
| 152 // Handles the clicking event. | 160 // Handles the clicking event. |
| 153 void HandleClickEvent(); | 161 void HandleClickEvent(ClickEventSource source); |
| 154 | 162 |
| 155 // Our model. Not owned. | 163 // Our model. Not owned. |
| 156 ui::ComboboxModel* model_; | 164 ui::ComboboxModel* model_; |
| 157 | 165 |
| 158 // The visual style of this combobox. | 166 // The visual style of this combobox. |
| 159 Style style_; | 167 Style style_; |
| 160 | 168 |
| 161 // Our listener. Not owned. Notified when the selected index change. | 169 // Our listener. Not owned. Notified when the selected index change. |
| 162 ComboboxListener* listener_; | 170 ComboboxListener* listener_; |
| 163 | 171 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 208 // The base View takes the ownerships of these as child views. | 216 // The base View takes the ownerships of these as child views. |
| 209 CustomButton* text_button_; | 217 CustomButton* text_button_; |
| 210 CustomButton* arrow_button_; | 218 CustomButton* arrow_button_; |
| 211 | 219 |
| 212 DISALLOW_COPY_AND_ASSIGN(Combobox); | 220 DISALLOW_COPY_AND_ASSIGN(Combobox); |
| 213 }; | 221 }; |
| 214 | 222 |
| 215 } // namespace views | 223 } // namespace views |
| 216 | 224 |
| 217 #endif // UI_VIEWS_CONTROLS_COMBOBOX_COMBOBOX_H_ | 225 #endif // UI_VIEWS_CONTROLS_COMBOBOX_COMBOBOX_H_ |
| OLD | NEW |