apps_search_box_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_BOX_CONTROLLER_H_
6#define UI_APP_LIST_COCOA_APPS_SEARCH_BOX_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
14namespace app_list {
15class AppListMenu;
16class AppListViewDelegate;
17class SearchBoxModel;
18class SearchBoxModelObserverBridge;
19}
20
21@class AppListMenuController;
22@class HoverImageMenuButton;
23@class SearchTextField;
24
25@protocol AppsSearchBoxDelegate<NSTextFieldDelegate>
26
27- (app_list::AppListViewDelegate*)appListDelegate;
28- (app_list::SearchBoxModel*)searchBoxModel;
29- (void)modelTextDidChange;
30- (NSString*)currentUserName;
31- (NSString*)currentUserEmail;
32
33@end
34
35// Controller for the search box in the topmost portion of the app list.
36APP_LIST_EXPORT
37@interface AppsSearchBoxController : NSViewController<NSTextFieldDelegate> {
38 @private
39  base::scoped_nsobject<SearchTextField> searchTextField_;
40  base::scoped_nsobject<NSImageView> searchImageView_;
41  base::scoped_nsobject<HoverImageMenuButton> menuButton_;
42  base::scoped_nsobject<AppListMenuController> menuController_;
43  scoped_ptr<app_list::SearchBoxModelObserverBridge> bridge_;
44  scoped_ptr<app_list::AppListMenu> appListMenu_;
45
46  id<AppsSearchBoxDelegate> delegate_;  // Weak. Owns us.
47}
48
49@property(assign, nonatomic) id<AppsSearchBoxDelegate> delegate;
50
51- (id)initWithFrame:(NSRect)frame;
52- (void)clearSearch;
53
54// Rebuild the menu due to changes from the AppListViewDelegate.
55- (void)rebuildMenu;
56
57@end
58
59@interface AppsSearchBoxController (TestingAPI)
60
61- (NSTextField*)searchTextField;
62- (NSPopUpButton*)menuControl;
63- (app_list::AppListMenu*)appListMenu;
64
65@end
66
67#endif  // UI_APP_LIST_COCOA_APPS_SEARCH_BOX_CONTROLLER_H_
68