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 <AppKit/AppKit.h> | 5 #import <AppKit/AppKit.h> |
6 | 6 |
7 #include "base/strings/sys_string_conversions.h" | 7 #include "base/strings/sys_string_conversions.h" |
8 #include "chrome/app/chrome_command_ids.h" | 8 #include "chrome/app/chrome_command_ids.h" |
9 #import "chrome/browser/app_controller_mac.h" | 9 #import "chrome/browser/app_controller_mac.h" |
10 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 10 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 return; | 66 return; |
67 | 67 |
68 if (!folder_image_) { | 68 if (!folder_image_) { |
69 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 69 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
70 folder_image_.reset( | 70 folder_image_.reset( |
71 rb.GetNativeImageNamed(IDR_BOOKMARK_BAR_FOLDER).CopyNSImage()); | 71 rb.GetNativeImageNamed(IDR_BOOKMARK_BAR_FOLDER).CopyNSImage()); |
72 } | 72 } |
73 | 73 |
74 ClearBookmarkMenu(bookmark_menu); | 74 ClearBookmarkMenu(bookmark_menu); |
75 | 75 |
76 // Add at most one separator for the bookmark bar and the managed bookmarks | 76 // Add at most one separator for the bookmark bar and the managed and |
77 // folder. | 77 // supervised bookmarks folders. |
78 ChromeBookmarkClient* client = | 78 ChromeBookmarkClient* client = |
79 ChromeBookmarkClientFactory::GetForProfile(profile_); | 79 ChromeBookmarkClientFactory::GetForProfile(profile_); |
80 const BookmarkNode* barNode = model->bookmark_bar_node(); | 80 const BookmarkNode* barNode = model->bookmark_bar_node(); |
81 const BookmarkNode* managedNode = client->managed_node(); | 81 const BookmarkNode* managedNode = client->managed_node(); |
82 if (!barNode->empty() || !managedNode->empty()) | 82 const BookmarkNode* supervisedNode = client->supervised_node(); |
| 83 if (!barNode->empty() || !managedNode->empty() || !supervisedNode->empty()) |
83 [bookmark_menu addItem:[NSMenuItem separatorItem]]; | 84 [bookmark_menu addItem:[NSMenuItem separatorItem]]; |
84 if (!managedNode->empty()) { | 85 if (!managedNode->empty()) { |
85 // Most users never see this node, so the image is only loaded if needed. | 86 // Most users never see this node, so the image is only loaded if needed. |
86 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 87 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
87 NSImage* image = | 88 NSImage* image = |
88 rb.GetNativeImageNamed(IDR_BOOKMARK_BAR_FOLDER_MANAGED).ToNSImage(); | 89 rb.GetNativeImageNamed(IDR_BOOKMARK_BAR_FOLDER_MANAGED).ToNSImage(); |
89 AddNodeAsSubmenu(bookmark_menu, managedNode, image, !is_submenu); | 90 AddNodeAsSubmenu(bookmark_menu, managedNode, image, !is_submenu); |
90 } | 91 } |
| 92 if (!supervisedNode->empty()) { |
| 93 // Most users never see this node, so the image is only loaded if needed. |
| 94 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 95 NSImage* image = |
| 96 rb.GetNativeImageNamed(IDR_BOOKMARK_BAR_FOLDER_SUPERVISED).ToNSImage(); |
| 97 AddNodeAsSubmenu(bookmark_menu, supervisedNode, image, !is_submenu); |
| 98 } |
91 if (!barNode->empty()) | 99 if (!barNode->empty()) |
92 AddNodeToMenu(barNode, bookmark_menu, !is_submenu); | 100 AddNodeToMenu(barNode, bookmark_menu, !is_submenu); |
93 | 101 |
94 // If the "Other Bookmarks" folder has any content, make a submenu for it and | 102 // If the "Other Bookmarks" folder has any content, make a submenu for it and |
95 // fill it in. | 103 // fill it in. |
96 if (!model->other_node()->empty()) { | 104 if (!model->other_node()->empty()) { |
97 [bookmark_menu addItem:[NSMenuItem separatorItem]]; | 105 [bookmark_menu addItem:[NSMenuItem separatorItem]]; |
98 AddNodeAsSubmenu(bookmark_menu, | 106 AddNodeAsSubmenu(bookmark_menu, |
99 model->other_node(), | 107 model->other_node(), |
100 folder_image_, | 108 folder_image_, |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 | 360 |
353 NSMenuItem* BookmarkMenuBridge::MenuItemForNode(const BookmarkNode* node) { | 361 NSMenuItem* BookmarkMenuBridge::MenuItemForNode(const BookmarkNode* node) { |
354 if (!node) | 362 if (!node) |
355 return nil; | 363 return nil; |
356 std::map<const BookmarkNode*, NSMenuItem*>::iterator it = | 364 std::map<const BookmarkNode*, NSMenuItem*>::iterator it = |
357 bookmark_nodes_.find(node); | 365 bookmark_nodes_.find(node); |
358 if (it == bookmark_nodes_.end()) | 366 if (it == bookmark_nodes_.end()) |
359 return nil; | 367 return nil; |
360 return it->second; | 368 return it->second; |
361 } | 369 } |
OLD | NEW |