app_list_view_controller.h revision f2477e01787aa58f445919b809d89e252beef54f
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 scoped_ptr<app_list::AppListViewDelegate> delegate_; 49 scoped_ptr<app_list::AppListModelObserverBridge> 50 app_list_model_observer_bridge_; 51 BOOL showingSearchResults_; 52} 53 54- (app_list::AppListViewDelegate*)delegate; 55- (void)setDelegate:(scoped_ptr<app_list::AppListViewDelegate>)newDelegate; 56- (void)onSigninStatusChanged; 57 58@end 59 60@interface AppListViewController (TestingAPI) 61 62- (AppsGridController*)appsGridController; 63- (NSSegmentedControl*)pagerControl; 64- (NSView*)backgroundView; 65 66@end 67 68#endif // UI_APP_LIST_COCOA_APP_LIST_VIEW_CONTROLLER_H_ 69