text: // 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_
  