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

Side by Side Diff: trunk/src/chrome/browser/ui/views/toolbar/wrench_toolbar_button.h

Issue 416903002: Revert 285142 "Open the WrenchMenu on mouseover when dragging a ..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 4 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 CHROME_BROWSER_UI_VIEWS_TOOLBAR_WRENCH_TOOLBAR_BUTTON_H_ 5 #ifndef CHROME_BROWSER_UI_VIEWS_TOOLBAR_WRENCH_TOOLBAR_BUTTON_H_
6 #define CHROME_BROWSER_UI_VIEWS_TOOLBAR_WRENCH_TOOLBAR_BUTTON_H_ 6 #define CHROME_BROWSER_UI_VIEWS_TOOLBAR_WRENCH_TOOLBAR_BUTTON_H_
7 7
8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "base/memory/weak_ptr.h"
11 #include "chrome/browser/ui/toolbar/wrench_icon_painter.h" 8 #include "chrome/browser/ui/toolbar/wrench_icon_painter.h"
12 #include "ui/views/controls/button/menu_button.h" 9 #include "ui/views/controls/button/menu_button.h"
13 10
14 class ToolbarView;
15
16 // TODO(gbillock): Rename this? No longer a wrench. 11 // TODO(gbillock): Rename this? No longer a wrench.
17 class WrenchToolbarButton : public views::MenuButton, 12 class WrenchToolbarButton : public views::MenuButton,
18 public WrenchIconPainter::Delegate { 13 public WrenchIconPainter::Delegate {
19 public: 14 public:
20 explicit WrenchToolbarButton(ToolbarView* toolbar_view); 15 explicit WrenchToolbarButton(views::MenuButtonListener* menu_button_listener);
21 virtual ~WrenchToolbarButton(); 16 virtual ~WrenchToolbarButton();
22 17
23 void SetSeverity(WrenchIconPainter::Severity severity, bool animate); 18 void SetSeverity(WrenchIconPainter::Severity severity, bool animate);
24 19
25 // views::MenuButton: 20 // views::MenuButton:
26 virtual gfx::Size GetPreferredSize() const OVERRIDE; 21 virtual gfx::Size GetPreferredSize() const OVERRIDE;
27 virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; 22 virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
28 23
29 // WrenchIconPainter::Delegate: 24 // WrenchIconPainter::Delegate:
30 virtual void ScheduleWrenchIconPaint() OVERRIDE; 25 virtual void ScheduleWrenchIconPaint() OVERRIDE;
31 26
32 // Opens the wrench menu immediately during a drag-and-drop operation.
33 // Used only in testing.
34 static bool g_open_wrench_immediately_for_testing;
35
36 private: 27 private:
37 // views::View:
38 virtual bool GetDropFormats(int* formats,
39 std::set<ui::OSExchangeData::CustomFormat>* custom_formats) OVERRIDE;
40 virtual bool AreDropTypesRequired() OVERRIDE;
41 virtual bool CanDrop(const ui::OSExchangeData& data) OVERRIDE;
42 virtual void OnDragEntered(const ui::DropTargetEvent& event) OVERRIDE;
43 virtual int OnDragUpdated(const ui::DropTargetEvent& event) OVERRIDE;
44 virtual void OnDragExited() OVERRIDE;
45 virtual int OnPerformDrop(const ui::DropTargetEvent& event) OVERRIDE;
46
47 // Show the extension action overflow menu (which is in the app menu).
48 void ShowOverflowMenu();
49
50 scoped_ptr<WrenchIconPainter> wrench_icon_painter_; 28 scoped_ptr<WrenchIconPainter> wrench_icon_painter_;
51 29
52 // Our owning toolbar view.
53 ToolbarView* toolbar_view_;
54
55 // Whether or not we should allow dragging extension icons onto this button
56 // (in order to open the overflow in the app/wrench menu).
57 bool allow_extension_dragging_;
58
59 // Used to spawn weak pointers for delayed tasks to open the overflow menu.
60 base::WeakPtrFactory<WrenchToolbarButton> weak_factory_;
61
62 DISALLOW_COPY_AND_ASSIGN(WrenchToolbarButton); 30 DISALLOW_COPY_AND_ASSIGN(WrenchToolbarButton);
63 }; 31 };
64 32
65 #endif // CHROME_BROWSER_UI_VIEWS_TOOLBAR_WRENCH_TOOLBAR_BUTTON_H_ 33 #endif // CHROME_BROWSER_UI_VIEWS_TOOLBAR_WRENCH_TOOLBAR_BUTTON_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698