Chromium Code Reviews| 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/search/search_model.h" | 5 #include "chrome/browser/ui/search/search_model.h" |
| 6 | 6 |
| 7 #include "chrome/browser/instant/search.h" | 7 #include "chrome/browser/instant/search.h" |
| 8 #include "chrome/browser/ui/search/search_model_observer.h" | 8 #include "chrome/browser/ui/search/search_model_observer.h" |
| 9 | 9 |
| 10 namespace chrome { | 10 namespace chrome { |
| 11 namespace search { | 11 namespace search { |
| 12 | 12 |
| 13 SearchModel::SearchModel() { | 13 SearchModel::SearchModel() : top_bars_visible_(true) { |
| 14 } | 14 } |
| 15 | 15 |
| 16 SearchModel::~SearchModel() { | 16 SearchModel::~SearchModel() { |
| 17 } | 17 } |
| 18 | 18 |
| 19 void SearchModel::SetMode(const Mode& new_mode) { | 19 void SearchModel::SetMode(const Mode& new_mode) { |
| 20 DCHECK(IsInstantExtendedAPIEnabled()) | 20 DCHECK(IsInstantExtendedAPIEnabled()) |
| 21 << "Please do not try to set the SearchModel mode without first " | 21 << "Please do not try to set the SearchModel mode without first " |
| 22 << "checking if Search is enabled."; | 22 << "checking if Search is enabled."; |
| 23 | 23 |
| 24 if (mode_ == new_mode) | 24 if (mode_ == new_mode) |
| 25 return; | 25 return; |
| 26 | 26 |
| 27 const Mode old_mode = mode_; | 27 const Mode old_mode = mode_; |
| 28 mode_ = new_mode; | 28 mode_ = new_mode; |
| 29 | 29 |
| 30 // For |SEARCH_SUGGESTIONS| and |SEARCH_RESULTS| modes, SearchBox API will | |
| 31 // determine visibility of top bars via SetTopBarsVisible(); for other modes, | |
| 32 // top bars are always visible, if available. | |
| 33 if (!mode_.is_search()) | |
| 34 top_bars_visible_ = true; | |
| 35 | |
| 30 FOR_EACH_OBSERVER(SearchModelObserver, observers_, | 36 FOR_EACH_OBSERVER(SearchModelObserver, observers_, |
| 31 ModeChanged(old_mode, mode_)); | 37 ModelChanged(old_mode, mode_, top_bars_visible_)); |
| 38 } | |
| 39 | |
| 40 void SearchModel::SetTopBarsVisible(bool visible) { | |
| 41 DCHECK(IsInstantExtendedAPIEnabled()) | |
| 42 << "Please do not try to set the SearchModel mode without first " | |
| 43 << "checking if Search is enabled."; | |
| 44 | |
| 45 top_bars_visible_ = visible; | |
|
dhollowa
2013/03/13 17:21:55
Do an early return if there's no change to the vis
kuan
2013/03/13 22:21:07
Done.
| |
| 46 | |
|
dhollowa
2013/03/13 17:21:55
Save off old_state_ here so the receiver can dete
kuan
2013/03/13 22:21:07
Done.
| |
| 47 FOR_EACH_OBSERVER(SearchModelObserver, observers_, | |
| 48 ModelChanged(mode_, mode_, top_bars_visible_)); | |
| 32 } | 49 } |
| 33 | 50 |
| 34 void SearchModel::AddObserver(SearchModelObserver* observer) { | 51 void SearchModel::AddObserver(SearchModelObserver* observer) { |
| 35 observers_.AddObserver(observer); | 52 observers_.AddObserver(observer); |
| 36 } | 53 } |
| 37 | 54 |
| 38 void SearchModel::RemoveObserver(SearchModelObserver* observer) { | 55 void SearchModel::RemoveObserver(SearchModelObserver* observer) { |
| 39 observers_.RemoveObserver(observer); | 56 observers_.RemoveObserver(observer); |
| 40 } | 57 } |
| 41 | 58 |
| 42 } // namespace search | 59 } // namespace search |
| 43 } // namespace chrome | 60 } // namespace chrome |
| OLD | NEW |