| Index: chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.h
|
| ===================================================================
|
| --- chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.h (revision 70424)
|
| +++ chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.h (working copy)
|
| @@ -2,6 +2,10 @@
|
| // 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_BOOKMARKS_BOOKMARK_BAR_FOLDER_CONTROLLER_H_
|
| +#define CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_BAR_FOLDER_CONTROLLER_H_
|
| +#pragma once
|
| +
|
| #import <Cocoa/Cocoa.h>
|
|
|
| #include "base/scoped_nsobject.h"
|
| @@ -11,6 +15,8 @@
|
| @class BookmarkBarFolderView;
|
| @class BookmarkFolderTarget;
|
| @class BookmarkBarFolderHoverState;
|
| +@class BookmarkBarFolderWindow;
|
| +@class BookmarkBarFolderWindowContentView;
|
|
|
| // A controller for the pop-up windows from bookmark folder buttons
|
| // which look sort of like menus.
|
| @@ -60,20 +66,33 @@
|
| // The scroll view that contains our main button view (below).
|
| IBOutlet NSScrollView* scrollView_;
|
|
|
| - // Are we scrollable? If no, the full contents of the folder are
|
| - // always visible.
|
| - BOOL scrollable_;
|
| + // The view defining the visible area in which we draw our content.
|
| + IBOutlet BookmarkBarFolderWindowContentView* visibleView_;
|
|
|
| - BOOL scrollUpArrowShown_;
|
| - BOOL scrollDownArrowShown_;
|
| + // The main view of this window (where the buttons go) within the scroller.
|
| + IBOutlet BookmarkBarFolderView* folderView_;
|
|
|
| + // A window used to show the shadow behind the main window when it is
|
| + // scrollable. (A 'shadow' window is needed because the main window, when
|
| + // scrollable in either or both directions, will reach completely to the
|
| + // top and/or bottom edge of the screen in order to support mouse tracking
|
| + // during scrolling operations. In that case, though, the 'visible'
|
| + // window must be inset a bit from the edge of the screen for aesthetics;
|
| + // it will also be inset much more from the bottom of the screen when the
|
| + // Dock is showing. When scrollable, the main window would show a shadow
|
| + // incorrectly positioned, hence the 'shadow' window.)
|
| + IBOutlet BookmarkBarFolderWindow* shadowWindow_;
|
| +
|
| + // The up and down scroll arrow views. These arrows are hidden and shown
|
| + // as necessary (when scrolling is possible) and are contained in the nib
|
| + // as siblings to the scroll view.
|
| + IBOutlet NSView* scrollDownArrowView_; // Positioned at the top.
|
| + IBOutlet NSView* scrollUpArrowView_; // Positioned at the bottom.
|
| +
|
| // YES if subfolders should grow to the right (the default).
|
| // Direction switches if we'd grow off the screen.
|
| BOOL subFolderGrowthToRight_;
|
|
|
| - // The main view of this window (where the buttons go).
|
| - IBOutlet BookmarkBarFolderView* mainView_;
|
| -
|
| // Weak; we keep track to work around a
|
| // setShowsBorderOnlyWhileMouseInside bug.
|
| BookmarkButton* buttonThatMouseIsIn_;
|
| @@ -105,6 +124,11 @@
|
| // don't release it when done (we invalidate it).
|
| NSTimer* scrollTimer_;
|
|
|
| + // Precalculated sum of left and right edge padding of buttons in a
|
| + // folder menu window. This is calculated from the widths of the main
|
| + // folder menu window and the scroll view within.
|
| + CGFloat padding_;
|
| +
|
| // Amount to scroll by on each timer fire. Can be + or -.
|
| CGFloat verticalScrollDelta_;
|
|
|
| @@ -161,7 +185,6 @@
|
| @end
|
|
|
| @interface BookmarkBarFolderController(TestingAPI)
|
| -- (NSView*)mainView;
|
| - (NSPoint)windowTopLeftForWidth:(int)windowWidth;
|
| - (NSArray*)buttons;
|
| - (BookmarkBarFolderController*)folderController;
|
| @@ -172,11 +195,15 @@
|
| // Set to YES in order to prevent animations.
|
| - (void)setIgnoreAnimations:(BOOL)ignore;
|
|
|
| -// Return YES if we can scroll up or down.
|
| +// Return YES if the scroll-up or scroll-down arrows are showing.
|
| - (BOOL)canScrollUp;
|
| - (BOOL)canScrollDown;
|
| -// Return YES if the scrollable_ flag has been set.
|
| -- (BOOL)scrollable;
|
| +- (CGFloat)verticalScrollArrowHeight;
|
| +- (NSView*)visibleView;
|
| +- (NSView*)scrollView;
|
| +- (NSView*)folderView;
|
|
|
| - (BookmarkButton*)buttonForDroppingOnAtPoint:(NSPoint)point;
|
| @end
|
| +
|
| +#endif // CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_BAR_FOLDER_CONTROLLER_H_
|
|
|