| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" | 5 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #import "base/mac/bundle_locations.h" | 9 #import "base/mac/bundle_locations.h" |
| 10 #import "base/mac/foundation_util.h" | 10 #import "base/mac/foundation_util.h" |
| (...skipping 1953 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1964 | 1964 |
| 1965 // Return an autoreleased NSCell suitable for a special button displayed on the | 1965 // Return an autoreleased NSCell suitable for a special button displayed on the |
| 1966 // bookmark bar that is not attached to any bookmark node. | 1966 // bookmark bar that is not attached to any bookmark node. |
| 1967 // TODO(jrg): move much of the cell config into the BookmarkButtonCell class. | 1967 // TODO(jrg): move much of the cell config into the BookmarkButtonCell class. |
| 1968 - (BookmarkButtonCell*)cellForCustomButtonWithText:(NSString*)text | 1968 - (BookmarkButtonCell*)cellForCustomButtonWithText:(NSString*)text |
| 1969 image:(NSImage*)image { | 1969 image:(NSImage*)image { |
| 1970 BookmarkButtonCell* cell = | 1970 BookmarkButtonCell* cell = |
| 1971 [BookmarkButtonCell buttonCellWithText:text | 1971 [BookmarkButtonCell buttonCellWithText:text |
| 1972 image:image | 1972 image:image |
| 1973 menuController:contextMenuController_]; | 1973 menuController:contextMenuController_]; |
| 1974 if (ui::MaterialDesignController::IsModeMaterial()) { | 1974 if (ui::MaterialDesignController::IsModeMaterial()) |
| 1975 [cell setTag:kMaterialStandardButtonTypeWithLimitedClickFeedback]; | 1975 [cell setTag:kMaterialStandardButtonTypeWithLimitedClickFeedback]; |
| 1976 [cell setHighlightsBy:NSNoCellMask]; | 1976 else |
| 1977 } else { | |
| 1978 [cell setTag:kStandardButtonTypeWithLimitedClickFeedback]; | 1977 [cell setTag:kStandardButtonTypeWithLimitedClickFeedback]; |
| 1979 } | |
| 1980 | 1978 |
| 1981 // Note: a quirk of setting a cell's text color is that it won't work | 1979 // Note: a quirk of setting a cell's text color is that it won't work |
| 1982 // until the cell is associated with a button, so we can't theme the cell yet. | 1980 // until the cell is associated with a button, so we can't theme the cell yet. |
| 1983 | 1981 |
| 1984 return cell; | 1982 return cell; |
| 1985 } | 1983 } |
| 1986 | 1984 |
| 1987 // Returns a frame appropriate for the given bookmark cell, suitable | 1985 // Returns a frame appropriate for the given bookmark cell, suitable |
| 1988 // for creating an NSButton that will contain it. |xOffset| is the X | 1986 // for creating an NSButton that will contain it. |xOffset| is the X |
| 1989 // offset for the frame; it is increased to be an appropriate X offset | 1987 // offset for the frame; it is increased to be an appropriate X offset |
| (...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2630 // http://crbug.com/35966 | 2628 // http://crbug.com/35966 |
| 2631 // If already opened, then we exited but re-entered the button, so do nothing. | 2629 // If already opened, then we exited but re-entered the button, so do nothing. |
| 2632 if ([folderController_ parentButton] == sender) | 2630 if ([folderController_ parentButton] == sender) |
| 2633 return; | 2631 return; |
| 2634 // Else open a new one if it makes sense to do so. | 2632 // Else open a new one if it makes sense to do so. |
| 2635 const BookmarkNode* node = [sender bookmarkNode]; | 2633 const BookmarkNode* node = [sender bookmarkNode]; |
| 2636 if (node && node->is_folder()) { | 2634 if (node && node->is_folder()) { |
| 2637 // Update |hoverButton_| so that it corresponds to the open folder. | 2635 // Update |hoverButton_| so that it corresponds to the open folder. |
| 2638 hoverButton_.reset([sender retain]); | 2636 hoverButton_.reset([sender retain]); |
| 2639 [folderTarget_ openBookmarkFolderFromButton:sender]; | 2637 [folderTarget_ openBookmarkFolderFromButton:sender]; |
| 2640 | |
| 2641 const BookmarkButtonCell* cell = [sender cell]; | |
| 2642 if ([cell tag] == kMaterialStandardButtonTypeWithLimitedClickFeedback) | |
| 2643 [cell setHighlighted:YES]; | |
| 2644 } else { | 2638 } else { |
| 2645 // We're over a non-folder bookmark so close any old folders. | 2639 // We're over a non-folder bookmark so close any old folders. |
| 2646 [folderController_ close]; | 2640 [folderController_ close]; |
| 2647 folderController_ = nil; | 2641 folderController_ = nil; |
| 2648 } | 2642 } |
| 2649 } | 2643 } |
| 2650 | 2644 |
| 2651 // BookmarkButtonDelegate protocol implementation. | 2645 // BookmarkButtonDelegate protocol implementation. |
| 2652 - (void)mouseExitedButton:(id)sender event:(NSEvent*)event { | 2646 - (void)mouseExitedButton:(id)sender event:(NSEvent*)event { |
| 2653 // Don't care; do nothing. | 2647 // Don't care; do nothing. |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2685 - (void)closeAllBookmarkFolders { | 2679 - (void)closeAllBookmarkFolders { |
| 2686 [self watchForExitEvent:NO]; | 2680 [self watchForExitEvent:NO]; |
| 2687 | 2681 |
| 2688 // Grab the parent button under Material Design to make sure that the | 2682 // Grab the parent button under Material Design to make sure that the |
| 2689 // highlighting that was applied while revealing the menu is turned off. | 2683 // highlighting that was applied while revealing the menu is turned off. |
| 2690 BookmarkButton* parentButton = nil; | 2684 BookmarkButton* parentButton = nil; |
| 2691 if (ui::MaterialDesignController::IsModeMaterial()) { | 2685 if (ui::MaterialDesignController::IsModeMaterial()) { |
| 2692 parentButton = [folderController_ parentButton]; | 2686 parentButton = [folderController_ parentButton]; |
| 2693 } | 2687 } |
| 2694 [folderController_ close]; | 2688 [folderController_ close]; |
| 2695 [[parentButton cell] setHighlighted:NO]; | |
| 2696 [parentButton setNeedsDisplay:YES]; | 2689 [parentButton setNeedsDisplay:YES]; |
| 2697 folderController_ = nil; | 2690 folderController_ = nil; |
| 2698 } | 2691 } |
| 2699 | 2692 |
| 2700 - (void)closeBookmarkFolder:(id)sender { | 2693 - (void)closeBookmarkFolder:(id)sender { |
| 2701 // We're the top level, so close one means close them all. | 2694 // We're the top level, so close one means close them all. |
| 2702 [self closeAllBookmarkFolders]; | 2695 [self closeAllBookmarkFolders]; |
| 2703 } | 2696 } |
| 2704 | 2697 |
| 2705 - (BookmarkModel*)bookmarkModel { | 2698 - (BookmarkModel*)bookmarkModel { |
| (...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3095 - (id<BookmarkButtonControllerProtocol>)controllerForNode: | 3088 - (id<BookmarkButtonControllerProtocol>)controllerForNode: |
| 3096 (const BookmarkNode*)node { | 3089 (const BookmarkNode*)node { |
| 3097 // See if it's in the bar, then if it is in the hierarchy of visible | 3090 // See if it's in the bar, then if it is in the hierarchy of visible |
| 3098 // folder menus. | 3091 // folder menus. |
| 3099 if (bookmarkModel_->bookmark_bar_node() == node) | 3092 if (bookmarkModel_->bookmark_bar_node() == node) |
| 3100 return self; | 3093 return self; |
| 3101 return [folderController_ controllerForNode:node]; | 3094 return [folderController_ controllerForNode:node]; |
| 3102 } | 3095 } |
| 3103 | 3096 |
| 3104 @end | 3097 @end |
| OLD | NEW |