1// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/ui/toolbar/bookmark_sub_menu_model.h" 6 7#include "chrome/app/chrome_command_ids.h" 8#include "grit/generated_resources.h" 9 10// For views and cocoa, we have complex delegate systems to handle 11// injecting the bookmarks to the bookmark submenu. This is done to support 12// advanced interactions with the menu contents, like right click context menus. 13// For the time being on GTK systems, we have a dedicated bookmark menu model in 14// chrome/browser/ui/gtk/bookmarks/bookmark_sub_menu_model_gtk.cc instead. 15 16// Note that although this file's header is included on GTK systems, this 17// source file is not compiled there. (The header just includes the GTK one.) 18 19BookmarkSubMenuModel::BookmarkSubMenuModel( 20 ui::SimpleMenuModel::Delegate* delegate, Browser* browser) 21 : SimpleMenuModel(delegate) { 22 Build(browser); 23} 24 25BookmarkSubMenuModel::~BookmarkSubMenuModel() {} 26 27void BookmarkSubMenuModel::Build(Browser* browser) { 28 AddCheckItemWithStringId(IDC_SHOW_BOOKMARK_BAR, IDS_SHOW_BOOKMARK_BAR); 29 AddItemWithStringId(IDC_SHOW_BOOKMARK_MANAGER, IDS_BOOKMARK_MANAGER); 30#if !defined(OS_CHROMEOS) 31 AddItemWithStringId(IDC_IMPORT_SETTINGS, IDS_IMPORT_SETTINGS_MENU_LABEL); 32#endif 33 if (delegate()->IsCommandIdVisible(IDC_BOOKMARK_PAGE) || 34 delegate()->IsCommandIdVisible(IDC_BOOKMARK_ALL_TABS) || 35 delegate()->IsCommandIdVisible(IDC_PIN_TO_START_SCREEN)) { 36 AddSeparator(ui::NORMAL_SEPARATOR); 37 38 AddItemWithStringId(IDC_BOOKMARK_PAGE, IDS_BOOKMARK_THIS_PAGE); 39 AddItemWithStringId(IDC_BOOKMARK_ALL_TABS, IDS_BOOKMARK_OPEN_PAGES); 40 41 AddItemWithStringId(IDC_PIN_TO_START_SCREEN, IDS_PIN_TO_START_SCREEN); 42 } 43#if defined(OS_MACOSX) 44 AddSeparator(ui::NORMAL_SEPARATOR); 45#endif 46} 47