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

Unified Diff: ui/views/controls/combobox/combobox.h

Issue 851853002: It is time. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Trying to reup because the last upload failed. Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/views/controls/button/radio_button.cc ('k') | ui/views/controls/combobox/combobox.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/controls/combobox/combobox.h
diff --git a/ui/views/controls/combobox/combobox.h b/ui/views/controls/combobox/combobox.h
deleted file mode 100644
index aabb476b676a4ffcff2f867d50e68f0f70087197..0000000000000000000000000000000000000000
--- a/ui/views/controls/combobox/combobox.h
+++ /dev/null
@@ -1,233 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef UI_VIEWS_CONTROLS_COMBOBOX_COMBOBOX_H_
-#define UI_VIEWS_CONTROLS_COMBOBOX_COMBOBOX_H_
-
-#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"
-#include "ui/gfx/native_widget_types.h"
-#include "ui/views/controls/button/button.h"
-#include "ui/views/controls/menu/menu_delegate.h"
-#include "ui/views/controls/prefix_delegate.h"
-
-namespace gfx {
-class FontList;
-class SlideAnimation;
-}
-
-namespace ui {
-class ComboboxModel;
-}
-
-namespace views {
-
-class ComboboxListener;
-class ComboboxMenuRunner;
-class CustomButton;
-class FocusableBorder;
-class MenuRunner;
-class MenuRunnerHandler;
-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. 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,
- public ButtonListener {
- public:
- // The style of the combobox.
- enum Style {
- STYLE_NORMAL,
- STYLE_ACTION,
- };
-
- // The combobox's class name.
- static const char kViewClassName[];
-
- // |model| is not owned by the combobox.
- explicit Combobox(ui::ComboboxModel* model);
- virtual ~Combobox();
-
- static const gfx::FontList& GetFontList();
-
- // Sets the listener which will be called when a selection has been made.
- void set_listener(ComboboxListener* listener) { listener_ = listener; }
-
- void SetStyle(Style style);
-
- // Informs the combobox that its model changed.
- void ModelChanged();
-
- // Gets/Sets the selected index.
- int selected_index() const { return selected_index_; }
- void SetSelectedIndex(int index);
-
- // Looks for the first occurrence of |value| in |model()|. If found, selects
- // the found index and returns true. Otherwise simply noops and returns false.
- bool SelectValue(const base::string16& value);
-
- ui::ComboboxModel* model() const { return model_; }
-
- // Set the accessible name of the combobox.
- void SetAccessibleName(const base::string16& name);
-
- // Visually marks the combobox as having an invalid value selected.
- // When invalid, it paints with white text on a red background.
- // Callers are responsible for restoring validity with selection changes.
- void SetInvalid(bool invalid);
- bool invalid() const { return invalid_; }
-
- // Overridden from View:
- virtual gfx::Size GetPreferredSize() const override;
- virtual const char* GetClassName() const override;
- virtual bool SkipDefaultKeyEventProcessing(const ui::KeyEvent& e) override;
- virtual bool OnKeyPressed(const ui::KeyEvent& e) override;
- virtual bool OnKeyReleased(const ui::KeyEvent& e) override;
- virtual void OnPaint(gfx::Canvas* canvas) override;
- virtual void OnFocus() override;
- virtual void OnBlur() override;
- virtual void GetAccessibleState(ui::AXViewState* state) override;
- virtual ui::TextInputClient* GetTextInputClient() override;
- virtual void Layout() override;
-
- // Overridden from MenuDelegate:
- virtual bool IsItemChecked(int id) const override;
- virtual bool IsCommandEnabled(int id) const override;
- virtual void ExecuteCommand(int id) override;
- virtual bool GetAccelerator(int id,
- ui::Accelerator* accelerator) const override;
-
- // Overridden from PrefixDelegate:
- virtual int GetRowCount() override;
- virtual int GetSelectedRow() override;
- virtual void SetSelectedRow(int row) override;
- virtual base::string16 GetTextForRow(int row) override;
-
- // Overriden from ComboboxModelObserver:
- virtual void OnComboboxModelChanged(ui::ComboboxModel* model) override;
-
- // Overriden from ButtonListener:
- virtual void ButtonPressed(Button* sender, const ui::Event& event) override;
-
- private:
- FRIEND_TEST_ALL_PREFIXES(ComboboxTest, Click);
- FRIEND_TEST_ALL_PREFIXES(ComboboxTest, ClickButDisabled);
- FRIEND_TEST_ALL_PREFIXES(ComboboxTest, NotifyOnClickWithMouse);
- FRIEND_TEST_ALL_PREFIXES(ComboboxTest, ContentWidth);
-
- // Updates the combobox's content from its model.
- void UpdateFromModel();
-
- // Updates the border according to the current state.
- void UpdateBorder();
-
- // Given bounds within our View, this helper mirrors the bounds if necessary.
- void AdjustBoundsForRTLUI(gfx::Rect* rect) const;
-
- // Draws the selected value of the drop down list
- void PaintText(gfx::Canvas* canvas);
-
- // Draws the button images.
- void PaintButtons(gfx::Canvas* canvas);
-
- // Show the drop down list
- void ShowDropDownMenu(ui::MenuSourceType source_type);
-
- // Called when the selection is changed by the user.
- void OnPerformAction();
- void NotifyPerformAction();
- void AfterPerformAction();
-
- // Converts a menu command ID to a menu item index.
- int MenuCommandToIndex(int menu_command_id) const;
-
- int GetDisclosureArrowLeftPadding() const;
- int GetDisclosureArrowRightPadding() const;
-
- // Returns the size of the disclosure arrow.
- gfx::Size ArrowSize() const;
-
- // Handles the clicking event.
- void HandleClickEvent();
-
- // Our model. Not owned.
- ui::ComboboxModel* model_;
-
- // The visual style of this combobox.
- Style style_;
-
- // Our listener. Not owned. Notified when the selected index change.
- ComboboxListener* listener_;
-
- // The current selected index; -1 and means no selection.
- int selected_index_;
-
- // True when the selection is visually denoted as invalid.
- bool invalid_;
-
- // The accessible name of this combobox.
- base::string16 accessible_name_;
-
- // A helper used to select entries by keyboard input.
- scoped_ptr<PrefixSelector> selector_;
-
- // Responsible for showing the context menu.
- scoped_ptr<MenuRunner> dropdown_list_menu_runner_;
-
- // Weak. Owned by dropdown_list_menu_runner_.
- MenuItemView* menu_;
-
- // Is the drop down list showing
- bool dropdown_open_;
-
- // Like MenuButton, we use a time object in order to keep track of when the
- // combobox was closed. The time is used for simulating menu behavior; that
- // is, if the menu is shown and the button is pressed, we need to close the
- // menu. There is no clean way to get the second click event because the
- // menu is displayed using a modal loop and, unlike regular menus in Windows,
- // the button is not part of the displayed menu.
- base::Time closed_time_;
-
- // The maximum dimensions of the content in the dropdown
- mutable gfx::Size content_size_;
-
- // The painters or images that are used when |style_| is STYLE_BUTTONS. The
- // first index means the state of unfocused or focused.
- // The images are owned by ResourceBundle.
- scoped_ptr<Painter> body_button_painters_[2][Button::STATE_COUNT];
- std::vector<const gfx::ImageSkia*>
- menu_button_images_[2][Button::STATE_COUNT];
-
- // The transparent buttons to handle events and render buttons. These are
- // placed on top of this combobox as child views, accept event and manage the
- // button states. These are not rendered but when |style_| is
- // STYLE_NOTIFY_ON_CLICK, a Combobox renders the button images according to
- // these button states.
- // The base View takes the ownerships of these as child views.
- CustomButton* text_button_;
- CustomButton* arrow_button_;
-
- // Used for making calbacks.
- base::WeakPtrFactory<Combobox> weak_ptr_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(Combobox);
-};
-
-} // namespace views
-
-#endif // UI_VIEWS_CONTROLS_COMBOBOX_COMBOBOX_H_
« no previous file with comments | « ui/views/controls/button/radio_button.cc ('k') | ui/views/controls/combobox/combobox.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698