blob: 35b52a2aad33cf5d05d2cfd2fa2df25fd93f5dc8 [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_COCOA_DOCK_ICON_H_
#define CHROME_BROWSER_UI_COCOA_DOCK_ICON_H_
#import <Cocoa/Cocoa.h>
#include "base/time/time.h"
// A class representing the dock icon of the Chromium app. It's its own class
// since several parts of the app want to manipulate the display of the dock
// icon.
//
// Like all UI, it must only be messaged from the UI thread.
@interface DockIcon : NSObject {
@private
// The time that the icon was last updated.
base::TimeTicks lastUpdate_;
// If true, the state has changed in a significant way since the last icon
// update and throttling should not prevent icon redraw.
BOOL forceUpdate_;
}
+ (DockIcon*)sharedDockIcon;
// Updates the icon. Use the setters below to set the details first.
- (void)updateIcon;
// Download progress ///////////////////////////////////////////////////////////
// Indicates how many downloads are in progress.
- (void)setDownloads:(int)downloads;
// Indicates whether the progress indicator should be in an indeterminate state
// or not.
- (void)setIndeterminate:(BOOL)indeterminate;
// Indicates the amount of progress made of the download. Ranges from [0..1].
- (void)setProgress:(float)progress;
@end
#endif // CHROME_BROWSER_UI_COCOA_DOCK_ICON_H_