| 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 #include "components/infobars/core/infobar_container.h" | 5 #include "components/infobars/core/infobar_container.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 // As when we removed the infobars above, we prevent callbacks to | 51 // As when we removed the infobars above, we prevent callbacks to |
| 52 // OnInfoBarStateChanged() for each infobar. | 52 // OnInfoBarStateChanged() for each infobar. |
| 53 AddInfoBar(infobar_manager_->infobar_at(i), i, false, NO_CALLBACK); | 53 AddInfoBar(infobar_manager_->infobar_at(i), i, false, NO_CALLBACK); |
| 54 } | 54 } |
| 55 } | 55 } |
| 56 | 56 |
| 57 // Now that everything is up to date, signal the delegate to re-layout. | 57 // Now that everything is up to date, signal the delegate to re-layout. |
| 58 OnInfoBarStateChanged(false); | 58 OnInfoBarStateChanged(false); |
| 59 } | 59 } |
| 60 | 60 |
| 61 int InfoBarContainer::GetVerticalOverlap(int* total_height) { | 61 int InfoBarContainer::GetVerticalOverlap(int* total_height) const { |
| 62 // Our |total_height| is the sum of the preferred heights of the InfoBars | 62 // Our |total_height| is the sum of the preferred heights of the InfoBars |
| 63 // contained within us plus the |vertical_overlap|. | 63 // contained within us plus the |vertical_overlap|. |
| 64 int vertical_overlap = 0; | 64 int vertical_overlap = 0; |
| 65 int next_infobar_y = 0; | 65 int next_infobar_y = 0; |
| 66 | 66 |
| 67 for (InfoBars::iterator i(infobars_.begin()); i != infobars_.end(); ++i) { | 67 for (InfoBars::const_iterator i(infobars_.begin()); i != infobars_.end(); |
| 68 ++i) { |
| 68 InfoBar* infobar = *i; | 69 InfoBar* infobar = *i; |
| 69 next_infobar_y -= infobar->arrow_height(); | 70 next_infobar_y -= infobar->arrow_height(); |
| 70 vertical_overlap = std::max(vertical_overlap, -next_infobar_y); | 71 vertical_overlap = std::max(vertical_overlap, -next_infobar_y); |
| 71 next_infobar_y += infobar->total_height(); | 72 next_infobar_y += infobar->total_height(); |
| 72 } | 73 } |
| 73 | 74 |
| 74 if (total_height) | 75 if (total_height) |
| 75 *total_height = next_infobar_y + vertical_overlap; | 76 *total_height = next_infobar_y + vertical_overlap; |
| 76 return vertical_overlap; | 77 return vertical_overlap; |
| 77 } | 78 } |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 return InfoBar::kDefaultArrowTargetHeight; | 170 return InfoBar::kDefaultArrowTargetHeight; |
| 170 // When the first infobar is animating closed, we animate the second infobar's | 171 // When the first infobar is animating closed, we animate the second infobar's |
| 171 // arrow target height from the default to the top target height. Note that | 172 // arrow target height from the default to the top target height. Note that |
| 172 // the animation values here are going from 1.0 -> 0.0 as the top bar closes. | 173 // the animation values here are going from 1.0 -> 0.0 as the top bar closes. |
| 173 return top_arrow_target_height_ + static_cast<int>( | 174 return top_arrow_target_height_ + static_cast<int>( |
| 174 (InfoBar::kDefaultArrowTargetHeight - top_arrow_target_height_) * | 175 (InfoBar::kDefaultArrowTargetHeight - top_arrow_target_height_) * |
| 175 first_infobar_animation.GetCurrentValue()); | 176 first_infobar_animation.GetCurrentValue()); |
| 176 } | 177 } |
| 177 | 178 |
| 178 } // namespace infobars | 179 } // namespace infobars |
| OLD | NEW |