1// Copyright (c) 2009 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_ABOUT_WINDOW_CONTROLLER_H_ 6#define CHROME_BROWSER_UI_COCOA_ABOUT_WINDOW_CONTROLLER_H_ 7#pragma once 8 9#import <AppKit/AppKit.h> 10 11@class BackgroundTileView; 12class Profile; 13 14// This simple subclass of |NSTextView| just doesn't show the (text) cursor 15// (|NSTextView| displays the cursor with full keyboard accessibility enabled). 16@interface AboutLegalTextView : NSTextView 17@end 18 19// A window controller that handles the About box. 20@interface AboutWindowController : NSWindowController { 21 @private 22 IBOutlet NSTextField* version_; 23 IBOutlet BackgroundTileView* backgroundView_; 24 IBOutlet NSImageView* logoView_; 25 IBOutlet NSView* legalBlock_; 26 IBOutlet AboutLegalTextView* legalText_; 27 28 // updateBlock_ holds the update image or throbber, update text, and update 29 // button. 30 IBOutlet NSView* updateBlock_; 31 32 IBOutlet NSProgressIndicator* spinner_; 33 IBOutlet NSImageView* updateStatusIndicator_; 34 IBOutlet NSTextField* updateText_; 35 IBOutlet NSButton* updateNowButton_; 36 IBOutlet NSButton* promoteButton_; 37 38 Profile* profile_; // Weak, probably the default profile. 39 40 // The window frame height. During an animation, this will contain the 41 // height being animated to. 42 CGFloat windowHeight_; 43} 44 45// Initialize the controller with the given profile, but does not show it. 46// Callers still need to call showWindow: to put it on screen. 47- (id)initWithProfile:(Profile*)profile; 48 49// Trigger an update right now, as initiated by a button. 50- (IBAction)updateNow:(id)sender; 51 52// Install a system Keystone if necessary and promote the ticket to a system 53// ticket. 54- (IBAction)promoteUpdater:(id)sender; 55 56@end // @interface AboutWindowController 57 58@interface AboutWindowController(JustForTesting) 59 60- (NSTextView*)legalText; 61- (NSButton*)updateButton; 62- (NSTextField*)updateText; 63 64// Returns an NSAttributedString that contains locale-specific legal text. 65+ (NSAttributedString*)legalTextBlock; 66 67@end // @interface AboutWindowController(JustForTesting) 68 69#endif // CHROME_BROWSER_UI_COCOA_ABOUT_WINDOW_CONTROLLER_H_ 70