summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/bookmark_bar_state.h
blob: 718f1117eea1de358d07f6bbef69caa02bce327f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// Copyright (c) 2009 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_COCOA_BOOKMARK_BAR_STATE_H_
#define CHROME_BROWSER_COCOA_BOOKMARK_BAR_STATE_H_
#pragma once

#import <Cocoa/Cocoa.h>

namespace bookmarks {

// States for the bookmark bar.
enum VisualState {
  kInvalidState  = 0,
  kHiddenState   = 1,
  kShowingState  = 2,
  kDetachedState = 3,
};

}  // namespace bookmarks

// The interface for controllers (etc.) which can give information about the
// bookmark bar's state.
@protocol BookmarkBarState

// Returns YES if the bookmark bar is currently visible (as a normal toolbar or
// as a detached bar on the NTP), NO otherwise.
- (BOOL)isVisible;

// Returns YES if an animation is currently running, NO otherwise.
- (BOOL)isAnimationRunning;

// Returns YES if the bookmark bar is in the given state and not in an
// animation, NO otherwise.
- (BOOL)isInState:(bookmarks::VisualState)state;

// Returns YES if the bookmark bar is animating from the given state (to any
// other state), NO otherwise.
- (BOOL)isAnimatingToState:(bookmarks::VisualState)state;

// Returns YES if the bookmark bar is animating to the given state (from any
// other state), NO otherwise.
- (BOOL)isAnimatingFromState:(bookmarks::VisualState)state;

// Returns YES if the bookmark bar is animating from the first given state to
// the second given state, NO otherwise.
- (BOOL)isAnimatingFromState:(bookmarks::VisualState)fromState
                     toState:(bookmarks::VisualState)toState;

// Returns YES if the bookmark bar is animating between the two given states (in
// either direction), NO otherwise.
- (BOOL)isAnimatingBetweenState:(bookmarks::VisualState)fromState
                       andState:(bookmarks::VisualState)toState;

// Returns how morphed into the detached bubble the bookmark bar should be (1 =
// completely detached, 0 = normal).
- (CGFloat)detachedMorphProgress;

@end

#endif  // CHROME_BROWSER_COCOA_BOOKMARK_BAR_STATE_H_