reload_button.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2011 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_TOOLBAR_RELOAD_BUTTON_H_
6#define CHROME_BROWSER_UI_COCOA_TOOLBAR_RELOAD_BUTTON_H_
7
8#import <Cocoa/Cocoa.h>
9
10#import "chrome/browser/ui/cocoa/image_button_cell.h"
11#import "chrome/browser/ui/cocoa/toolbar/toolbar_button.h"
12
13// ToolbarButton subclass which defers certain state changes when the mouse
14// is hovering over it.
15
16@interface ReloadButton : ToolbarButton<ImageButton> {
17 @private
18  // Timer used when setting reload mode while the mouse is hovered.
19  NSTimer* pendingReloadTimer_;
20}
21
22// Update the tag, and the image and tooltip to match.  If |anInt|
23// matches the current tag, no action is taken.  |anInt| must be
24// either |IDC_STOP| or |IDC_RELOAD|.
25- (void)updateTag:(NSInteger)anInt;
26
27// Update the button to be a reload button or stop button depending on
28// |isLoading|.  If |force|, always sets the indicated mode.  If
29// |!force|, and the mouse is over the button, defer the transition
30// from stop button to reload button until the mouse has left the
31// button, or until |pendingReloadTimer_| fires.  This prevents an
32// inadvertent click _just_ as the state changes.
33- (void)setIsLoading:(BOOL)isLoading force:(BOOL)force;
34
35@end
36
37#endif  // CHROME_BROWSER_UI_COCOA_TOOLBAR_RELOAD_BUTTON_H_
38