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 #include "chrome/browser/ui/views/network_profile_bubble_view.h" | 5 #include "chrome/browser/ui/views/network_profile_bubble_view.h" |
6 | 6 |
7 #include "chrome/browser/prefs/pref_service.h" | 7 #include "chrome/browser/prefs/pref_service.h" |
8 #include "chrome/browser/profiles/profile.h" | 8 #include "chrome/browser/profiles/profile.h" |
9 #include "chrome/browser/ui/browser.h" | 9 #include "chrome/browser/ui/browser.h" |
10 #include "chrome/browser/ui/network_profile_bubble.h" | 10 #include "chrome/browser/ui/network_profile_bubble.h" |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 //////////////////////////////////////////////////////////////////////////////// | 53 //////////////////////////////////////////////////////////////////////////////// |
54 // NetworkProfileBubbleView, public: | 54 // NetworkProfileBubbleView, public: |
55 | 55 |
56 NetworkProfileBubbleView::NetworkProfileBubbleView( | 56 NetworkProfileBubbleView::NetworkProfileBubbleView( |
57 views::View* anchor, | 57 views::View* anchor, |
58 content::PageNavigator* navigator, | 58 content::PageNavigator* navigator, |
59 Profile* profile) | 59 Profile* profile) |
60 : BubbleDelegateView(anchor, views::BubbleBorder::TOP_RIGHT), | 60 : BubbleDelegateView(anchor, views::BubbleBorder::TOP_RIGHT), |
61 navigator_(navigator), | 61 navigator_(navigator), |
62 profile_(profile) { | 62 profile_(profile) { |
| 63 // Compensate for built-in vertical padding in the anchor view's image. |
| 64 set_anchor_insets( |
| 65 gfx::Insets(kAnchorVerticalInset, 0, kAnchorVerticalInset, 0)); |
63 } | 66 } |
64 | 67 |
65 //////////////////////////////////////////////////////////////////////////////// | 68 //////////////////////////////////////////////////////////////////////////////// |
66 // NetworkProfileBubbleView, private: | 69 // NetworkProfileBubbleView, private: |
67 | 70 |
68 NetworkProfileBubbleView::~NetworkProfileBubbleView() { | 71 NetworkProfileBubbleView::~NetworkProfileBubbleView() { |
69 } | 72 } |
70 | 73 |
71 void NetworkProfileBubbleView::Init() { | 74 void NetworkProfileBubbleView::Init() { |
72 views::GridLayout* layout = views::GridLayout::CreatePanel(this); | 75 views::GridLayout* layout = views::GridLayout::CreatePanel(this); |
(...skipping 27 matching lines...) Expand all Loading... |
100 new views::Link(l10n_util::GetStringUTF16(IDS_LEARN_MORE)); | 103 new views::Link(l10n_util::GetStringUTF16(IDS_LEARN_MORE)); |
101 learn_more->set_listener(this); | 104 learn_more->set_listener(this); |
102 layout->AddView(learn_more); | 105 layout->AddView(learn_more); |
103 | 106 |
104 views::NativeTextButton* ok_button = new views::NativeTextButton( | 107 views::NativeTextButton* ok_button = new views::NativeTextButton( |
105 this, l10n_util::GetStringUTF16(IDS_OK)); | 108 this, l10n_util::GetStringUTF16(IDS_OK)); |
106 ok_button->SetIsDefault(true); | 109 ok_button->SetIsDefault(true); |
107 layout->AddView(ok_button); | 110 layout->AddView(ok_button); |
108 } | 111 } |
109 | 112 |
110 gfx::Rect NetworkProfileBubbleView::GetAnchorRect() { | |
111 // Compensate for padding in anchor. | |
112 gfx::Rect rect(BubbleDelegateView::GetAnchorRect()); | |
113 rect.Inset(0, anchor_view() ? kAnchorVerticalInset : 0); | |
114 return rect; | |
115 } | |
116 | |
117 void NetworkProfileBubbleView::ButtonPressed(views::Button* sender, | 113 void NetworkProfileBubbleView::ButtonPressed(views::Button* sender, |
118 const ui::Event& event) { | 114 const ui::Event& event) { |
119 NetworkProfileBubble::RecordUmaEvent( | 115 NetworkProfileBubble::RecordUmaEvent( |
120 NetworkProfileBubble::METRIC_ACKNOWLEDGED); | 116 NetworkProfileBubble::METRIC_ACKNOWLEDGED); |
121 | 117 |
122 GetWidget()->Close(); | 118 GetWidget()->Close(); |
123 } | 119 } |
124 | 120 |
125 void NetworkProfileBubbleView::LinkClicked(views::Link* source, | 121 void NetworkProfileBubbleView::LinkClicked(views::Link* source, |
126 int event_flags) { | 122 int event_flags) { |
127 NetworkProfileBubble::RecordUmaEvent( | 123 NetworkProfileBubble::RecordUmaEvent( |
128 NetworkProfileBubble::METRIC_LEARN_MORE_CLICKED); | 124 NetworkProfileBubble::METRIC_LEARN_MORE_CLICKED); |
129 WindowOpenDisposition disposition = | 125 WindowOpenDisposition disposition = |
130 chrome::DispositionFromEventFlags(event_flags); | 126 chrome::DispositionFromEventFlags(event_flags); |
131 content::OpenURLParams params( | 127 content::OpenURLParams params( |
132 GURL("https://sites.google.com/a/chromium.org/dev/administrators/" | 128 GURL("https://sites.google.com/a/chromium.org/dev/administrators/" |
133 "common-problems-and-solutions#network_profile"), | 129 "common-problems-and-solutions#network_profile"), |
134 content::Referrer(), | 130 content::Referrer(), |
135 disposition == CURRENT_TAB ? NEW_FOREGROUND_TAB : disposition, | 131 disposition == CURRENT_TAB ? NEW_FOREGROUND_TAB : disposition, |
136 content::PAGE_TRANSITION_LINK, false); | 132 content::PAGE_TRANSITION_LINK, false); |
137 navigator_->OpenURL(params); | 133 navigator_->OpenURL(params); |
138 | 134 |
139 // If the user interacted with the bubble we don't reduce the number of | 135 // If the user interacted with the bubble we don't reduce the number of |
140 // warnings left. | 136 // warnings left. |
141 PrefService* prefs = profile_->GetPrefs(); | 137 PrefService* prefs = profile_->GetPrefs(); |
142 int left_warnings = prefs->GetInteger(prefs::kNetworkProfileWarningsLeft); | 138 int left_warnings = prefs->GetInteger(prefs::kNetworkProfileWarningsLeft); |
143 prefs->SetInteger(prefs::kNetworkProfileWarningsLeft, ++left_warnings); | 139 prefs->SetInteger(prefs::kNetworkProfileWarningsLeft, ++left_warnings); |
144 GetWidget()->Close(); | 140 GetWidget()->Close(); |
145 } | 141 } |
OLD | NEW |