• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (c) 2010 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/cocoa/bookmarks/bookmark_bar_bridge.h"
6
7#include "chrome/browser/bookmarks/bookmark_model.h"
8#include "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h"
9
10BookmarkBarBridge::BookmarkBarBridge(BookmarkBarController* controller,
11                                     BookmarkModel* model)
12    : controller_(controller),
13      model_(model),
14      batch_mode_(false) {
15  model_->AddObserver(this);
16
17  // Bookmark loading is async; it may may not have happened yet.
18  // We will be notified when that happens with the AddObserver() call.
19  if (model->IsLoaded())
20    Loaded(model);
21}
22
23BookmarkBarBridge::~BookmarkBarBridge() {
24  model_->RemoveObserver(this);
25}
26
27void BookmarkBarBridge::Loaded(BookmarkModel* model) {
28  [controller_ loaded:model];
29}
30
31void BookmarkBarBridge::BookmarkModelBeingDeleted(BookmarkModel* model) {
32  [controller_ beingDeleted:model];
33}
34
35void BookmarkBarBridge::BookmarkNodeMoved(BookmarkModel* model,
36                                          const BookmarkNode* old_parent,
37                                          int old_index,
38                                          const BookmarkNode* new_parent,
39                                          int new_index) {
40  [controller_ nodeMoved:model
41               oldParent:old_parent oldIndex:old_index
42               newParent:new_parent newIndex:new_index];
43}
44
45void BookmarkBarBridge::BookmarkNodeAdded(BookmarkModel* model,
46                                          const BookmarkNode* parent,
47                                          int index) {
48  if (!batch_mode_) {
49    [controller_ nodeAdded:model parent:parent index:index];
50  }
51}
52
53void BookmarkBarBridge::BookmarkNodeRemoved(BookmarkModel* model,
54                                            const BookmarkNode* parent,
55                                            int old_index,
56                                            const BookmarkNode* node) {
57  [controller_ nodeRemoved:model parent:parent index:old_index];
58}
59
60void BookmarkBarBridge::BookmarkNodeChanged(BookmarkModel* model,
61                                            const BookmarkNode* node) {
62  [controller_ nodeChanged:model node:node];
63}
64
65void BookmarkBarBridge::BookmarkNodeFaviconLoaded(BookmarkModel* model,
66                                                  const BookmarkNode* node) {
67  [controller_ nodeFaviconLoaded:model node:node];
68}
69
70void BookmarkBarBridge::BookmarkNodeChildrenReordered(
71    BookmarkModel* model, const BookmarkNode* node) {
72  [controller_ nodeChildrenReordered:model node:node];
73}
74
75void BookmarkBarBridge::BookmarkImportBeginning(BookmarkModel* model) {
76  batch_mode_ = true;
77}
78
79void BookmarkBarBridge::BookmarkImportEnding(BookmarkModel* model) {
80  batch_mode_ = false;
81  [controller_ loaded:model];
82}
83