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/translate_message_infobar.h" | 5 #include "chrome/browser/ui/views/infobars/translate_message_infobar.h" |
6 | 6 |
7 #include "chrome/browser/translate/translate_infobar_delegate.h" | 7 #include "chrome/browser/translate/translate_infobar_delegate.h" |
8 #include "views/controls/button/text_button.h" | 8 #include "views/controls/button/text_button.h" |
9 #include "views/controls/label.h" | 9 #include "views/controls/label.h" |
10 | 10 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 } | 50 } |
51 } | 51 } |
52 | 52 |
53 // This must happen after adding all other children so InfoBarView can ensure | 53 // This must happen after adding all other children so InfoBarView can ensure |
54 // the close button is the last child. | 54 // the close button is the last child. |
55 TranslateInfoBarBase::ViewHierarchyChanged(is_add, parent, child); | 55 TranslateInfoBarBase::ViewHierarchyChanged(is_add, parent, child); |
56 } | 56 } |
57 | 57 |
58 void TranslateMessageInfoBar::ButtonPressed(views::Button* sender, | 58 void TranslateMessageInfoBar::ButtonPressed(views::Button* sender, |
59 const views::Event& event) { | 59 const views::Event& event) { |
| 60 if (!owned()) |
| 61 return; // We're closing; don't call anything, it might access the owner. |
60 if (sender == button_) | 62 if (sender == button_) |
61 GetDelegate()->MessageInfoBarButtonPressed(); | 63 GetDelegate()->MessageInfoBarButtonPressed(); |
62 else | 64 else |
63 TranslateInfoBarBase::ButtonPressed(sender, event); | 65 TranslateInfoBarBase::ButtonPressed(sender, event); |
64 } | 66 } |
65 | 67 |
66 int TranslateMessageInfoBar::ContentMinimumWidth() const { | 68 int TranslateMessageInfoBar::ContentMinimumWidth() const { |
67 return (button_ != NULL) ? | 69 return (button_ != NULL) ? |
68 (button_->GetPreferredSize().width() + kButtonInLabelSpacing) : 0; | 70 (button_->GetPreferredSize().width() + kButtonInLabelSpacing) : 0; |
69 } | 71 } |
OLD | NEW |