OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #import "ui/app_list/cocoa/app_list_view_controller.h" | 5 #import "ui/app_list/cocoa/app_list_view_controller.h" |
6 | 6 |
7 #include "base/mac/foundation_util.h" | 7 #include "base/mac/foundation_util.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "base/strings/sys_string_conversions.h" | 9 #include "base/strings/sys_string_conversions.h" |
10 #include "skia/ext/skia_utils_mac.h" | 10 #include "skia/ext/skia_utils_mac.h" |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 - (NSView*)backgroundView { | 153 - (NSView*)backgroundView { |
154 return backgroundView_; | 154 return backgroundView_; |
155 } | 155 } |
156 | 156 |
157 - (app_list::AppListViewDelegate*)delegate { | 157 - (app_list::AppListViewDelegate*)delegate { |
158 return delegate_.get(); | 158 return delegate_.get(); |
159 } | 159 } |
160 | 160 |
161 - (void)setDelegate:(scoped_ptr<app_list::AppListViewDelegate>)newDelegate { | 161 - (void)setDelegate:(scoped_ptr<app_list::AppListViewDelegate>)newDelegate { |
162 if (delegate_) { | 162 if (delegate_) { |
| 163 // Ensure the search box is cleared when switching profiles. |
| 164 if ([self searchBoxModel]) |
| 165 [self searchBoxModel]->SetText(base::string16()); |
| 166 |
163 // First clean up, in reverse order. | 167 // First clean up, in reverse order. |
164 app_list_model_observer_bridge_.reset(); | 168 app_list_model_observer_bridge_.reset(); |
165 [appsSearchResultsController_ setDelegate:nil]; | 169 [appsSearchResultsController_ setDelegate:nil]; |
166 [appsSearchBoxController_ setDelegate:nil]; | 170 [appsSearchBoxController_ setDelegate:nil]; |
167 [appsGridController_ setDelegate:nil]; | 171 [appsGridController_ setDelegate:nil]; |
168 } | 172 } |
169 delegate_.reset(newDelegate.release()); | 173 delegate_.reset(newDelegate.release()); |
170 if (!delegate_) | 174 if (delegate_) { |
| 175 [loadingIndicator_ stopAnimation:self]; |
| 176 } else { |
| 177 [loadingIndicator_ startAnimation:self]; |
171 return; | 178 return; |
| 179 } |
| 180 |
172 [appsGridController_ setDelegate:delegate_.get()]; | 181 [appsGridController_ setDelegate:delegate_.get()]; |
173 [appsSearchBoxController_ setDelegate:self]; | 182 [appsSearchBoxController_ setDelegate:self]; |
174 [appsSearchResultsController_ setDelegate:self]; | 183 [appsSearchResultsController_ setDelegate:self]; |
175 app_list_model_observer_bridge_.reset( | 184 app_list_model_observer_bridge_.reset( |
176 new app_list::AppListModelObserverBridge(self)); | 185 new app_list::AppListModelObserverBridge(self)); |
177 [self onProfilesChanged]; | 186 [self onProfilesChanged]; |
178 } | 187 } |
179 | 188 |
180 -(void)loadAndSetView { | 189 -(void)loadAndSetView { |
181 pagerControl_.reset([[AppListPagerView alloc] init]); | 190 pagerControl_.reset([[AppListPagerView alloc] init]); |
(...skipping 11 matching lines...) Expand all Loading... |
193 NSMakeRect(0, 0, NSMaxX(contentsRect), NSMaxY(contentsRect))]); | 202 NSMakeRect(0, 0, NSMaxX(contentsRect), NSMaxY(contentsRect))]); |
194 appsSearchBoxController_.reset( | 203 appsSearchBoxController_.reset( |
195 [[AppsSearchBoxController alloc] initWithFrame: | 204 [[AppsSearchBoxController alloc] initWithFrame: |
196 NSMakeRect(0, 0, NSWidth(contentsRect), kSearchInputHeight)]); | 205 NSMakeRect(0, 0, NSWidth(contentsRect), kSearchInputHeight)]); |
197 appsSearchResultsController_.reset( | 206 appsSearchResultsController_.reset( |
198 [[AppsSearchResultsController alloc] initWithAppsSearchResultsFrameSize: | 207 [[AppsSearchResultsController alloc] initWithAppsSearchResultsFrameSize: |
199 [contentsView_ bounds].size]); | 208 [contentsView_ bounds].size]); |
200 base::scoped_nsobject<NSView> containerView( | 209 base::scoped_nsobject<NSView> containerView( |
201 [[NSView alloc] initWithFrame:[backgroundView_ frame]]); | 210 [[NSView alloc] initWithFrame:[backgroundView_ frame]]); |
202 | 211 |
| 212 loadingIndicator_.reset( |
| 213 [[NSProgressIndicator alloc] initWithFrame:NSZeroRect]); |
| 214 [loadingIndicator_ setStyle:NSProgressIndicatorSpinningStyle]; |
| 215 [loadingIndicator_ sizeToFit]; |
| 216 NSRect indicatorRect = [loadingIndicator_ frame]; |
| 217 indicatorRect.origin.x = NSWidth(contentsRect) / 2 - NSMidX(indicatorRect); |
| 218 indicatorRect.origin.y = NSHeight(contentsRect) / 2 - NSMidY(indicatorRect); |
| 219 [loadingIndicator_ setFrame:indicatorRect]; |
| 220 [loadingIndicator_ setDisplayedWhenStopped:NO]; |
| 221 [loadingIndicator_ startAnimation:self]; |
| 222 |
203 [contentsView_ addSubview:[appsGridController_ view]]; | 223 [contentsView_ addSubview:[appsGridController_ view]]; |
204 [contentsView_ addSubview:pagerControl_]; | 224 [contentsView_ addSubview:pagerControl_]; |
| 225 [contentsView_ addSubview:loadingIndicator_]; |
205 [backgroundView_ addSubview:contentsView_]; | 226 [backgroundView_ addSubview:contentsView_]; |
206 [backgroundView_ addSubview:[appsSearchResultsController_ view]]; | 227 [backgroundView_ addSubview:[appsSearchResultsController_ view]]; |
207 [backgroundView_ addSubview:[appsSearchBoxController_ view]]; | 228 [backgroundView_ addSubview:[appsSearchBoxController_ view]]; |
208 [containerView addSubview:backgroundView_]; | 229 [containerView addSubview:backgroundView_]; |
209 [self setView:containerView]; | 230 [self setView:containerView]; |
210 } | 231 } |
211 | 232 |
212 - (void)revealSearchResults:(BOOL)show { | 233 - (void)revealSearchResults:(BOOL)show { |
213 if (show == showingSearchResults_) | 234 if (show == showingSearchResults_) |
214 return; | 235 return; |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 | 366 |
346 [backgroundView_ setHidden:YES]; | 367 [backgroundView_ setHidden:YES]; |
347 signinViewController_.reset( | 368 signinViewController_.reset( |
348 [[SigninViewController alloc] initWithFrame:[backgroundView_ frame] | 369 [[SigninViewController alloc] initWithFrame:[backgroundView_ frame] |
349 cornerRadius:kBubbleCornerRadius | 370 cornerRadius:kBubbleCornerRadius |
350 delegate:signinDelegate]); | 371 delegate:signinDelegate]); |
351 [[self view] addSubview:[signinViewController_ view]]; | 372 [[self view] addSubview:[signinViewController_ view]]; |
352 } | 373 } |
353 | 374 |
354 @end | 375 @end |
OLD | NEW |