| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/infobars/infobar_view.h" | 5 #include "chrome/browser/ui/views/infobars/infobar_view.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <shellapi.h> | 8 #include <shellapi.h> |
| 9 #endif | 9 #endif |
| 10 | 10 |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 | 87 |
| 88 views::Link* InfoBarView::CreateLink(const string16& text, | 88 views::Link* InfoBarView::CreateLink(const string16& text, |
| 89 views::LinkListener* listener) const { | 89 views::LinkListener* listener) const { |
| 90 views::Link* link = new views::Link; | 90 views::Link* link = new views::Link; |
| 91 link->SetText(text); | 91 link->SetText(text); |
| 92 link->SetFont( | 92 link->SetFont( |
| 93 ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::MediumFont)); | 93 ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::MediumFont)); |
| 94 link->SetHorizontalAlignment(views::Label::ALIGN_LEFT); | 94 link->SetHorizontalAlignment(views::Label::ALIGN_LEFT); |
| 95 link->set_listener(listener); | 95 link->set_listener(listener); |
| 96 link->SetBackgroundColor(background()->get_color()); | 96 link->SetBackgroundColor(background()->get_color()); |
| 97 link->set_focusable(true); |
| 97 return link; | 98 return link; |
| 98 } | 99 } |
| 99 | 100 |
| 100 // static | 101 // static |
| 101 views::MenuButton* InfoBarView::CreateMenuButton( | 102 views::MenuButton* InfoBarView::CreateMenuButton( |
| 102 const string16& text, | 103 const string16& text, |
| 103 views::ViewMenuDelegate* menu_delegate) { | 104 views::ViewMenuDelegate* menu_delegate) { |
| 104 views::MenuButton* menu_button = new views::MenuButton( | 105 views::MenuButton* menu_button = new views::MenuButton( |
| 105 NULL, text, menu_delegate, true); | 106 NULL, text, menu_delegate, true); |
| 106 menu_button->set_border(new InfoBarButtonBorder); | 107 menu_button->set_border(new InfoBarButtonBorder); |
| 107 menu_button->set_animate_on_state_change(false); | 108 menu_button->set_animate_on_state_change(false); |
| 108 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 109 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 109 menu_button->set_menu_marker( | 110 menu_button->set_menu_marker( |
| 110 rb.GetBitmapNamed(IDR_INFOBARBUTTON_MENU_DROPARROW)); | 111 rb.GetBitmapNamed(IDR_INFOBARBUTTON_MENU_DROPARROW)); |
| 111 menu_button->SetEnabledColor(SK_ColorBLACK); | 112 menu_button->SetEnabledColor(SK_ColorBLACK); |
| 112 menu_button->SetHighlightColor(SK_ColorBLACK); | 113 menu_button->SetHighlightColor(SK_ColorBLACK); |
| 113 menu_button->SetHoverColor(SK_ColorBLACK); | 114 menu_button->SetHoverColor(SK_ColorBLACK); |
| 114 menu_button->SetFont(rb.GetFont(ResourceBundle::MediumFont)); | 115 menu_button->SetFont(rb.GetFont(ResourceBundle::MediumFont)); |
| 116 menu_button->set_focusable(true); |
| 115 return menu_button; | 117 return menu_button; |
| 116 } | 118 } |
| 117 | 119 |
| 118 // static | 120 // static |
| 119 views::TextButton* InfoBarView::CreateTextButton( | 121 views::TextButton* InfoBarView::CreateTextButton( |
| 120 views::ButtonListener* listener, | 122 views::ButtonListener* listener, |
| 121 const string16& text, | 123 const string16& text, |
| 122 bool needs_elevation) { | 124 bool needs_elevation) { |
| 123 views::TextButton* text_button = new views::TextButton(listener, text); | 125 views::TextButton* text_button = new views::TextButton(listener, text); |
| 124 text_button->set_border(new InfoBarButtonBorder); | 126 text_button->set_border(new InfoBarButtonBorder); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 144 &icon_info))) { | 146 &icon_info))) { |
| 145 scoped_ptr<SkBitmap> icon(IconUtil::CreateSkBitmapFromHICON( | 147 scoped_ptr<SkBitmap> icon(IconUtil::CreateSkBitmapFromHICON( |
| 146 icon_info.hIcon, gfx::Size(GetSystemMetrics(SM_CXSMICON), | 148 icon_info.hIcon, gfx::Size(GetSystemMetrics(SM_CXSMICON), |
| 147 GetSystemMetrics(SM_CYSMICON)))); | 149 GetSystemMetrics(SM_CYSMICON)))); |
| 148 if (icon.get()) | 150 if (icon.get()) |
| 149 text_button->SetIcon(*icon); | 151 text_button->SetIcon(*icon); |
| 150 DestroyIcon(icon_info.hIcon); | 152 DestroyIcon(icon_info.hIcon); |
| 151 } | 153 } |
| 152 } | 154 } |
| 153 #endif | 155 #endif |
| 156 text_button->set_focusable(true); |
| 154 return text_button; | 157 return text_button; |
| 155 } | 158 } |
| 156 | 159 |
| 157 void InfoBarView::Layout() { | 160 void InfoBarView::Layout() { |
| 158 // Calculate the fill and stroke paths. We do this here, rather than in | 161 // Calculate the fill and stroke paths. We do this here, rather than in |
| 159 // PlatformSpecificRecalculateHeight(), because this is also reached when our | 162 // PlatformSpecificRecalculateHeight(), because this is also reached when our |
| 160 // width is changed, which affects both paths. | 163 // width is changed, which affects both paths. |
| 161 stroke_path_.rewind(); | 164 stroke_path_.rewind(); |
| 162 fill_path_.rewind(); | 165 fill_path_.rewind(); |
| 163 const InfoBarContainer::Delegate* delegate = container_delegate(); | 166 const InfoBarContainer::Delegate* delegate = container_delegate(); |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 374 | 377 |
| 375 void InfoBarView::FocusWillChange(View* focused_before, View* focused_now) { | 378 void InfoBarView::FocusWillChange(View* focused_before, View* focused_now) { |
| 376 // This will trigger some screen readers to read the entire contents of this | 379 // This will trigger some screen readers to read the entire contents of this |
| 377 // infobar. | 380 // infobar. |
| 378 if (focused_before && focused_now && !Contains(focused_before) && | 381 if (focused_before && focused_now && !Contains(focused_before) && |
| 379 Contains(focused_now) && GetWidget()) { | 382 Contains(focused_now) && GetWidget()) { |
| 380 GetWidget()->NotifyAccessibilityEvent( | 383 GetWidget()->NotifyAccessibilityEvent( |
| 381 this, ui::AccessibilityTypes::EVENT_ALERT, true); | 384 this, ui::AccessibilityTypes::EVENT_ALERT, true); |
| 382 } | 385 } |
| 383 } | 386 } |
| OLD | NEW |