1// Copyright 2014 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 CHROME_BROWSER_UI_COCOA_PASSWORDS_MANAGE_PASSWORDS_BUBBLE_CONTROLLER_H_
6#define CHROME_BROWSER_UI_COCOA_PASSWORDS_MANAGE_PASSWORDS_BUBBLE_CONTROLLER_H_
7
8#import <Cocoa/Cocoa.h>
9
10#include "base/mac/scoped_nsobject.h"
11#import "chrome/browser/ui/cocoa/base_bubble_controller.h"
12#import "chrome/browser/ui/cocoa/passwords/manage_passwords_bubble_content_view_controller.h"
13#import "chrome/browser/ui/cocoa/passwords/manage_passwords_bubble_never_save_view_controller.h"
14#import "chrome/browser/ui/cocoa/passwords/manage_passwords_bubble_pending_view_controller.h"
15#include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
16
17// Controller for the Cocoa manage passwords bubble. Transitions through several
18// views according to user interaction and updates the password management state
19// accordingly.
20@interface ManagePasswordsBubbleController
21    : BaseBubbleController<ManagePasswordsBubbleContentViewDelegate,
22                           ManagePasswordsBubbleNeverSaveViewDelegate,
23                           ManagePasswordsBubblePendingViewDelegate> {
24 @private
25  ManagePasswordsBubbleModel* model_;
26  base::scoped_nsobject<ManagePasswordsBubbleContentViewController>
27      currentController_;
28}
29- (id)initWithParentWindow:(NSWindow*)parentWindow
30                     model:(ManagePasswordsBubbleModel*)model;
31@end
32
33@interface ManagePasswordsBubbleController (Testing)
34@property(readonly) NSViewController* currentController;
35@end
36
37#endif  // CHROME_BROWSER_UI_COCOA_PASSWORDS_MANAGE_PASSWORDS_BUBBLE_CONTROLLER_H_
38