app_list_view_controller.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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 3// found in the LICENSE file. 4 5#ifndef UI_APP_LIST_COCOA_APP_LIST_VIEW_CONTROLLER_H_ 6#define UI_APP_LIST_COCOA_APP_LIST_VIEW_CONTROLLER_H_ 7 8#import <Cocoa/Cocoa.h> 9 10#include "base/mac/scoped_nsobject.h" 11#include "base/memory/scoped_ptr.h" 12#include "ui/app_list/app_list_export.h" 13#import "ui/app_list/cocoa/apps_pagination_model_observer.h" 14#import "ui/app_list/cocoa/apps_search_box_controller.h" 15#import "ui/app_list/cocoa/apps_search_results_controller.h" 16 17namespace app_list { 18class AppListViewDelegate; 19class AppListModel; 20class AppListModelObserverBridge; 21} 22 23@class AppListPagerView; 24@class AppsGridController; 25@class SigninViewController; 26 27// Controller for the top-level view of the app list UI. It creates and hosts an 28// AppsGridController (displaying an AppListModel), pager control to navigate 29// between pages in the grid, and search entry box with a pop up menu. 30APP_LIST_EXPORT 31@interface AppListViewController : NSViewController<AppsPaginationModelObserver, 32 AppsSearchBoxDelegate, 33 AppsSearchResultsDelegate> { 34 @private 35 base::scoped_nsobject<AppsGridController> appsGridController_; 36 base::scoped_nsobject<AppListPagerView> pagerControl_; 37 base::scoped_nsobject<AppsSearchBoxController> appsSearchBoxController_; 38 base::scoped_nsobject<AppsSearchResultsController> 39 appsSearchResultsController_; 40 base::scoped_nsobject<SigninViewController> signinViewController_; 41 42 // Subview for drawing the background. Hidden when the signin view is visible. 43 base::scoped_nsobject<NSView> backgroundView_; 44 45 // Subview of |backgroundView_| that slides out when search results are shown. 46 base::scoped_nsobject<NSView> contentsView_; 47 48 // Progress indicator that is visible while the delegate is NULL. 49 base::scoped_nsobject<NSProgressIndicator> loadingIndicator_; 50 51 scoped_ptr<app_list::AppListViewDelegate> delegate_; 52 scoped_ptr<app_list::AppListModelObserverBridge> 53 app_list_model_observer_bridge_; 54 BOOL showingSearchResults_; 55} 56 57@property(readonly, nonatomic) AppsSearchBoxController* 58 searchBoxController; 59 60- (app_list::AppListViewDelegate*)delegate; 61- (void)setDelegate:(scoped_ptr<app_list::AppListViewDelegate>)newDelegate; 62- (void)onProfilesChanged; 63 64@end 65 66@interface AppListViewController (TestingAPI) 67 68@property(nonatomic, readonly) BOOL showingSearchResults; 69 70- (AppsGridController*)appsGridController; 71- (NSSegmentedControl*)pagerControl; 72- (NSView*)backgroundView; 73 74@end 75 76#endif // UI_APP_LIST_COCOA_APP_LIST_VIEW_CONTROLLER_H_ 77