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.
5 #ifndef UI_APP_LIST_COCOA_APPS_SEARCH_BOX_CONTROLLER_H_
6 #define UI_APP_LIST_COCOA_APPS_SEARCH_BOX_CONTROLLER_H_
8 #import <Cocoa/Cocoa.h>
10 #include "base/mac/scoped_nsobject.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "ui/app_list/app_list_export.h"
17 class AppListViewDelegate
;
19 class SearchBoxModelObserverBridge
;
22 @
class AppListMenuController
;
23 @
class HoverImageMenuButton
;
24 @
class SearchTextField
;
26 @protocol AppsSearchBoxDelegate
<NSTextFieldDelegate
>
28 - (app_list::AppListViewDelegate
*)appListDelegate
;
29 - (app_list::SearchBoxModel
*)searchBoxModel
;
30 - (app_list::AppListModel
*)appListModel
;
31 - (void)modelTextDidChange
;
35 // Controller for the search box in the topmost portion of the app list.
37 @interface AppsSearchBoxController
: NSViewController
<NSTextFieldDelegate
> {
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_
;
46 id
<AppsSearchBoxDelegate
> delegate_
; // Weak. Owns us.
49 @
property(assign
, nonatomic
) id
<AppsSearchBoxDelegate
> delegate
;
51 - (id
)initWithFrame
:(NSRect
)frame
;
54 // Rebuild the menu due to changes from the AppListViewDelegate.
59 @interface
AppsSearchBoxController (TestingAPI
)
61 - (NSTextField
*)searchTextField
;
62 - (NSPopUpButton
*)menuControl
;
63 - (app_list::AppListMenu
*)appListMenu
;
67 #endif // UI_APP_LIST_COCOA_APPS_SEARCH_BOX_CONTROLLER_H_