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_PROFILES_PROFILE_SIGNIN_CONFIRMATION_VIEW_CONTROLLER_ 6#define CHROME_BROWSER_UI_COCOA_PROFILES_PROFILE_SIGNIN_CONFIRMATION_VIEW_CONTROLLER_ 7 8#import <Cocoa/Cocoa.h> 9#include <string> 10 11#include "base/callback.h" 12#include "base/mac/scoped_nsobject.h" 13#include "chrome/browser/ui/cocoa/constrained_window/constrained_window_button.h" 14 15@class HyperlinkTextView; 16class Browser; 17class Profile; 18 19namespace ui { 20class ProfileSigninConfirmationDelegate; 21} 22 23@interface ProfileSigninConfirmationViewController 24 : NSViewController<NSTextViewDelegate> { 25 @private 26 // The browser object for the sign-in tab. 27 Browser* browser_; 28 29 // The GAIA username being signed in. 30 std::string username_; 31 32 // Indicates whether the user should be given the option to 33 // create a new profile before completing sign-in. 34 bool offerProfileCreation_; 35 36 // Dialog button callbacks. 37 ui::ProfileSigninConfirmationDelegate* delegate_; 38 base::Closure closeDialogCallback_; 39 40 // UI elements. 41 base::scoped_nsobject<NSBox> promptBox_; 42 base::scoped_nsobject<NSButton> closeButton_; 43 base::scoped_nsobject<NSTextField> titleField_; 44 base::scoped_nsobject<NSTextField> promptField_; 45 base::scoped_nsobject<NSTextView> explanationField_; 46 base::scoped_nsobject<ConstrainedWindowButton> createProfileButton_; 47 base::scoped_nsobject<ConstrainedWindowButton> cancelButton_; 48 base::scoped_nsobject<ConstrainedWindowButton> okButton_; 49} 50 51- (id)initWithBrowser:(Browser*)browser 52 username:(const std::string&)username 53 delegate:(ui::ProfileSigninConfirmationDelegate*)delegate 54 closeDialogCallback:(const base::Closure&)closeDialogCallback 55 offerProfileCreation:(bool)offer; 56- (IBAction)cancel:(id)sender; 57- (IBAction)ok:(id)sender; 58- (IBAction)close:(id)sender; 59- (IBAction)createProfile:(id)sender; 60 61@end 62 63@interface ProfileSigninConfirmationViewController (TestingAPI) 64 65@property(readonly, nonatomic) ui::ProfileSigninConfirmationDelegate* delegate; 66@property(readonly, nonatomic) NSButton* createProfileButton; 67@property(readonly, nonatomic) NSTextView* explanationField; 68 69@end 70 71#endif // CHROME_BROWSER_UI_COCOA_PROFILES_PROFILE_SIGNIN_CONFIRMATION_VIEW_CONTROLLER_ 72