1731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#ifndef CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_BAR_STATE_H_
621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#define CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_BAR_STATE_H_
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#import <Cocoa/Cocoa.h>
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace bookmarks {
12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// States for the bookmark bar.
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochenum VisualState {
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  kInvalidState  = 0,
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  kHiddenState   = 1,
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  kShowingState  = 2,
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  kDetachedState = 3,
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}  // namespace bookmarks
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// The interface for controllers (etc.) which can give information about the
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// bookmark bar's state.
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@protocol BookmarkBarState
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Returns YES if the bookmark bar is currently visible (as a normal toolbar or
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// as a detached bar on the NTP), NO otherwise.
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch- (BOOL)isVisible;
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Returns YES if an animation is currently running, NO otherwise.
32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch- (BOOL)isAnimationRunning;
33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Returns YES if the bookmark bar is in the given state and not in an
35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// animation, NO otherwise.
36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch- (BOOL)isInState:(bookmarks::VisualState)state;
37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Returns YES if the bookmark bar is animating from the given state (to any
39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// other state), NO otherwise.
40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch- (BOOL)isAnimatingToState:(bookmarks::VisualState)state;
41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Returns YES if the bookmark bar is animating to the given state (from any
43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// other state), NO otherwise.
44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch- (BOOL)isAnimatingFromState:(bookmarks::VisualState)state;
45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Returns YES if the bookmark bar is animating from the first given state to
47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// the second given state, NO otherwise.
48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch- (BOOL)isAnimatingFromState:(bookmarks::VisualState)fromState
49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                     toState:(bookmarks::VisualState)toState;
50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Returns YES if the bookmark bar is animating between the two given states (in
52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// either direction), NO otherwise.
53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch- (BOOL)isAnimatingBetweenState:(bookmarks::VisualState)fromState
54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                       andState:(bookmarks::VisualState)toState;
55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
56c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Returns how morphed into the detached bubble the bookmark bar should be (1 =
57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// completely detached, 0 = normal).
58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch- (CGFloat)detachedMorphProgress;
59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
60c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@end
61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
6221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#endif  // CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_BAR_STATE_H_
63