OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_COCOA_LOCATION_BAR_MANAGE_PASSWORDS_DECORATION_H_ | 5 #ifndef CHROME_BROWSER_UI_COCOA_LOCATION_BAR_MANAGE_PASSWORDS_DECORATION_H_ |
6 #define CHROME_BROWSER_UI_COCOA_LOCATION_BAR_MANAGE_PASSWORDS_DECORATION_H_ | 6 #define CHROME_BROWSER_UI_COCOA_LOCATION_BAR_MANAGE_PASSWORDS_DECORATION_H_ |
7 | 7 |
8 #import <Cocoa/Cocoa.h> | 8 #import <Cocoa/Cocoa.h> |
9 | 9 |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
12 #include "chrome/browser/ui/cocoa/location_bar/image_decoration.h" | 12 #include "chrome/browser/ui/cocoa/location_bar/image_decoration.h" |
13 #include "chrome/browser/ui/passwords/manage_passwords_icon.h" | 13 #include "chrome/browser/ui/passwords/manage_passwords_icon.h" |
14 | 14 |
15 class CommandUpdater; | 15 class CommandUpdater; |
16 class LocationBarViewMac; | 16 class LocationBarViewMac; |
17 class ManagePasswordsDecoration; | 17 class ManagePasswordsDecoration; |
18 | 18 |
19 // Cocoa implementation of ManagePasswordsIcon that delegates to | 19 // Cocoa implementation of ManagePasswordsIcon that delegates to |
20 // ManagePasswordsDecoration. | 20 // ManagePasswordsDecoration. |
21 class ManagePasswordsIconCocoa : public ManagePasswordsIcon { | 21 class ManagePasswordsIconCocoa : public ManagePasswordsIcon { |
22 public: | 22 public: |
23 ManagePasswordsIconCocoa(ManagePasswordsDecoration* decoration); | 23 ManagePasswordsIconCocoa(ManagePasswordsDecoration* decoration); |
24 virtual ~ManagePasswordsIconCocoa(); | 24 virtual ~ManagePasswordsIconCocoa(); |
25 virtual void UpdateVisibleUI() override; | 25 void UpdateVisibleUI() override; |
26 | 26 |
27 int icon_id() { return icon_id_; } | 27 int icon_id() { return icon_id_; } |
28 int tooltip_text_id() { return tooltip_text_id_; } | 28 int tooltip_text_id() { return tooltip_text_id_; } |
29 | 29 |
30 private: | 30 private: |
31 ManagePasswordsDecoration* decoration_; // weak, owns us | 31 ManagePasswordsDecoration* decoration_; // weak, owns us |
32 }; | 32 }; |
33 | 33 |
34 // Manage passwords icon on the right side of the field. This appears when | 34 // Manage passwords icon on the right side of the field. This appears when |
35 // password management is available on the current page. | 35 // password management is available on the current page. |
36 class ManagePasswordsDecoration : public ImageDecoration { | 36 class ManagePasswordsDecoration : public ImageDecoration { |
37 public: | 37 public: |
38 explicit ManagePasswordsDecoration(CommandUpdater* command_updater, | 38 explicit ManagePasswordsDecoration(CommandUpdater* command_updater, |
39 LocationBarViewMac* location_bar); | 39 LocationBarViewMac* location_bar); |
40 virtual ~ManagePasswordsDecoration(); | 40 ~ManagePasswordsDecoration() override; |
41 | 41 |
42 // Implement |LocationBarDecoration| | 42 // Implement |LocationBarDecoration| |
43 virtual bool AcceptsMousePress() override; | 43 bool AcceptsMousePress() override; |
44 virtual bool OnMousePressed(NSRect frame, NSPoint location) override; | 44 bool OnMousePressed(NSRect frame, NSPoint location) override; |
45 virtual NSString* GetToolTip() override; | 45 NSString* GetToolTip() override; |
46 virtual NSPoint GetBubblePointInFrame(NSRect frame) override; | 46 NSPoint GetBubblePointInFrame(NSRect frame) override; |
47 | 47 |
48 // Updates the decoration according to icon state changes. | 48 // Updates the decoration according to icon state changes. |
49 void UpdateVisibleUI(); | 49 void UpdateVisibleUI(); |
50 | 50 |
51 // Accessor for the platform-independent interface. | 51 // Accessor for the platform-independent interface. |
52 ManagePasswordsIconCocoa* icon() { return icon_.get(); } | 52 ManagePasswordsIconCocoa* icon() { return icon_.get(); } |
53 | 53 |
54 private: | 54 private: |
55 // Triggers a redraw after a state change. | 55 // Triggers a redraw after a state change. |
56 void OnChange(); | 56 void OnChange(); |
57 | 57 |
58 // Updates child view states. | 58 // Updates child view states. |
59 void UpdateUIState(); | 59 void UpdateUIState(); |
60 | 60 |
61 // Shows the manage passwords bubble. | 61 // Shows the manage passwords bubble. |
62 CommandUpdater* command_updater_; // Weak, owned by Browser. | 62 CommandUpdater* command_updater_; // Weak, owned by Browser. |
63 | 63 |
64 // Displays all the decorations. | 64 // Displays all the decorations. |
65 LocationBarViewMac* location_bar_; // Weak, owns us. | 65 LocationBarViewMac* location_bar_; // Weak, owns us. |
66 | 66 |
67 // The platform-independent interface. | 67 // The platform-independent interface. |
68 scoped_ptr<ManagePasswordsIconCocoa> icon_; | 68 scoped_ptr<ManagePasswordsIconCocoa> icon_; |
69 | 69 |
70 DISALLOW_COPY_AND_ASSIGN(ManagePasswordsDecoration); | 70 DISALLOW_COPY_AND_ASSIGN(ManagePasswordsDecoration); |
71 }; | 71 }; |
72 | 72 |
73 #endif // CHROME_BROWSER_UI_COCOA_LOCATION_BAR_MANAGE_PASSWORDS_DECORATION_H_ | 73 #endif // CHROME_BROWSER_UI_COCOA_LOCATION_BAR_MANAGE_PASSWORDS_DECORATION_H_ |
OLD | NEW |