| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef UI_APP_LIST_COCOA_APPS_SEARCH_BOX_CONTROLLER_H_ |
| #define UI_APP_LIST_COCOA_APPS_SEARCH_BOX_CONTROLLER_H_ |
| |
| #import <Cocoa/Cocoa.h> |
| |
| #include "base/mac/scoped_nsobject.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "ui/app_list/app_list_export.h" |
| |
| namespace app_list { |
| class AppListMenu; |
| class AppListViewDelegate; |
| class SearchBoxModel; |
| class SearchBoxModelObserverBridge; |
| } |
| |
| @class AppListMenuController; |
| @class HoverImageMenuButton; |
| @class SearchTextField; |
| |
| @protocol AppsSearchBoxDelegate<NSTextFieldDelegate> |
| |
| - (app_list::AppListViewDelegate*)appListDelegate; |
| - (app_list::SearchBoxModel*)searchBoxModel; |
| - (void)modelTextDidChange; |
| |
| @end |
| |
| // Controller for the search box in the topmost portion of the app list. |
| APP_LIST_EXPORT |
| @interface AppsSearchBoxController : NSViewController<NSTextFieldDelegate> { |
| @private |
| base::scoped_nsobject<SearchTextField> searchTextField_; |
| base::scoped_nsobject<NSImageView> searchImageView_; |
| base::scoped_nsobject<HoverImageMenuButton> menuButton_; |
| base::scoped_nsobject<AppListMenuController> menuController_; |
| scoped_ptr<app_list::SearchBoxModelObserverBridge> bridge_; |
| scoped_ptr<app_list::AppListMenu> appListMenu_; |
| |
| id<AppsSearchBoxDelegate> delegate_; // Weak. Owns us. |
| } |
| |
| @property(assign, nonatomic) id<AppsSearchBoxDelegate> delegate; |
| |
| - (id)initWithFrame:(NSRect)frame; |
| - (void)clearSearch; |
| |
| // Rebuild the menu due to changes from the AppListViewDelegate. |
| - (void)rebuildMenu; |
| |
| @end |
| |
| @interface AppsSearchBoxController (TestingAPI) |
| |
| - (NSTextField*)searchTextField; |
| - (NSPopUpButton*)menuControl; |
| - (app_list::AppListMenu*)appListMenu; |
| |
| @end |
| |
| #endif // UI_APP_LIST_COCOA_APPS_SEARCH_BOX_CONTROLLER_H_ |