| Index: ui/views/controls/combobox/combobox.h
|
| diff --git a/ui/views/controls/combobox/combobox.h b/ui/views/controls/combobox/combobox.h
|
| index 20b65e0a4c06b9a9ca095aef60c123bfdd2acab2..bfdc433cfc9ff978cad8af024b9afe40a024ffcb 100644
|
| --- a/ui/views/controls/combobox/combobox.h
|
| +++ b/ui/views/controls/combobox/combobox.h
|
| @@ -7,6 +7,7 @@
|
|
|
| #include <string>
|
|
|
| +#include "base/memory/weak_ptr.h"
|
| #include "base/time/time.h"
|
| #include "ui/base/models/combobox_model_observer.h"
|
| #include "ui/gfx/animation/animation_delegate.h"
|
| @@ -36,10 +37,14 @@ class Painter;
|
| class PrefixSelector;
|
|
|
| // A non-editable combobox (aka a drop-down list or selector).
|
| -// Combobox has two distinct parts, the drop down arrow and the text. When the
|
| -// user clicks on the text the drop down is either shown
|
| -// (STYLE_SHOW_DROP_DOWN_ON_CLICK) or the listener is notified
|
| -// (STYLE_NOTIFY_ON_CLICK).
|
| +// Combobox has two distinct parts, the drop down arrow and the text. Combobox
|
| +// offers two distinct behaviors:
|
| +// * STYLE_NORMAL: typical combobox, clicking on the text and/or button shows
|
| +// the drop down, arrow keys change selection, selected index can be changed by
|
| +// the user to something other than the first item.
|
| +// * STYLE_ACTION: clicking on the text notifies the listener. The menu can be
|
| +// shown only by clicking on the arrow. The selected index is always reverted to
|
| +// 0 after the listener is notified.
|
| class VIEWS_EXPORT Combobox : public MenuDelegate,
|
| public PrefixDelegate,
|
| public ui::ComboboxModelObserver,
|
| @@ -47,8 +52,8 @@ class VIEWS_EXPORT Combobox : public MenuDelegate,
|
| public:
|
| // The style of the combobox.
|
| enum Style {
|
| - STYLE_SHOW_DROP_DOWN_ON_CLICK,
|
| - STYLE_NOTIFY_ON_CLICK,
|
| + STYLE_NORMAL,
|
| + STYLE_ACTION,
|
| };
|
|
|
| // The combobox's class name.
|
| @@ -121,6 +126,7 @@ class VIEWS_EXPORT Combobox : public MenuDelegate,
|
| private:
|
| FRIEND_TEST_ALL_PREFIXES(ComboboxTest, Click);
|
| FRIEND_TEST_ALL_PREFIXES(ComboboxTest, NotifyOnClickWithMouse);
|
| + FRIEND_TEST_ALL_PREFIXES(ComboboxTest, ContentWidth);
|
|
|
| // Updates the combobox's content from its model.
|
| void UpdateFromModel();
|
| @@ -141,7 +147,9 @@ class VIEWS_EXPORT Combobox : public MenuDelegate,
|
| void ShowDropDownMenu(ui::MenuSourceType source_type);
|
|
|
| // Called when the selection is changed by the user.
|
| - void OnSelectionChanged();
|
| + void OnPerformAction();
|
| + void NotifyPerformAction();
|
| + void AfterPerformAction();
|
|
|
| // Converts a menu command ID to a menu item index.
|
| int MenuCommandToIndex(int menu_command_id) const;
|
| @@ -209,6 +217,9 @@ class VIEWS_EXPORT Combobox : public MenuDelegate,
|
| CustomButton* text_button_;
|
| CustomButton* arrow_button_;
|
|
|
| + // Used for making calbacks.
|
| + base::WeakPtrFactory<Combobox> weak_ptr_factory_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(Combobox);
|
| };
|
|
|
|
|