apps_search_results_controller.h revision 3551c9c881056c480085172ff9840cab31610854
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_APPS_SEARCH_RESULTS_CONTROLLER_H_ 6#define UI_APP_LIST_COCOA_APPS_SEARCH_RESULTS_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#include "ui/app_list/app_list_model.h" 14#import "ui/base/cocoa/tracking_area.h" 15 16namespace app_list { 17class AppsSearchResultsModelBridge; 18class SearchResult; 19} 20 21@class AppsSearchResultsCell; 22 23@protocol AppsSearchResultsDelegate<NSObject> 24 25- (app_list::AppListModel*)appListModel; 26- (void)openResult:(app_list::SearchResult*)result; 27- (void)redoSearch; 28 29@end 30 31// Controller for the search results displayed when a user types in the app list 32// search box. Results display in an NSTableView with a single column. Each row 33// has an icon on the left, and one or two lines of formatted text describing 34// the result. 35APP_LIST_EXPORT 36@interface AppsSearchResultsController 37 : NSViewController<NSTableViewDelegate, NSTableViewDataSource> { 38 @private 39 base::scoped_nsobject<NSTableView> tableView_; 40 ui::ScopedCrTrackingArea trackingArea_; 41 NSPoint lastMouseDownInView_; 42 NSInteger hoveredRowIndex_; 43 scoped_ptr<app_list::AppsSearchResultsModelBridge> bridge_; 44 NSObject<AppsSearchResultsDelegate>* delegate_; // Weak. Owns us. 45} 46 47@property(assign, nonatomic) NSObject<AppsSearchResultsDelegate>* delegate; 48@property(readonly, nonatomic) app_list::AppListModel::SearchResults* results; 49@property(readonly, nonatomic) NSTableView* tableView; 50 51- (id)initWithAppsSearchResultsFrameSize:(NSSize)size; 52 53// Returns true when handling Enter, to activate the highlighted search result, 54// or up/down to navigate results. 55- (BOOL)handleCommandBySelector:(SEL)command; 56 57@end 58 59#endif // UI_APP_LIST_COCOA_APPS_SEARCH_RESULTS_CONTROLLER_H_ 60