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 // C++ bridge class to send a selector to a Cocoa object when the | 5 // C++ bridge class to send a selector to a Cocoa object when the |
6 // bookmark model changes. Some Cocoa objects edit the bookmark model | 6 // bookmark model changes. Some Cocoa objects edit the bookmark model |
7 // and temporarily save a copy of the state (e.g. bookmark button | 7 // and temporarily save a copy of the state (e.g. bookmark button |
8 // editor). As a fail-safe, these objects want an easy cancel if the | 8 // editor). As a fail-safe, these objects want an easy cancel if the |
9 // model changes out from under them. For example, if you have the | 9 // model changes out from under them. For example, if you have the |
10 // bookmark button editor sheet open, then edit the bookmark in the | 10 // bookmark button editor sheet open, then edit the bookmark in the |
(...skipping 12 matching lines...) Expand all Loading... |
23 | 23 |
24 #include <set> | 24 #include <set> |
25 | 25 |
26 #include "base/basictypes.h" | 26 #include "base/basictypes.h" |
27 #include "base/mac/scoped_block.h" | 27 #include "base/mac/scoped_block.h" |
28 #include "components/bookmarks/browser/bookmark_model.h" | 28 #include "components/bookmarks/browser/bookmark_model.h" |
29 #include "components/bookmarks/browser/bookmark_model_observer.h" | 29 #include "components/bookmarks/browser/bookmark_model_observer.h" |
30 | 30 |
31 class BookmarkModelObserverForCocoa : public bookmarks::BookmarkModelObserver { | 31 class BookmarkModelObserverForCocoa : public bookmarks::BookmarkModelObserver { |
32 public: | 32 public: |
33 // Callback called on a significant model change. |nodeWasDeleted| will | 33 // Callback called on a significant model change. |
34 // be YES if an observed node was deleted in the change. | 34 typedef void (^ChangeCallback)(); |
35 typedef void(^ChangeCallback)(BOOL nodeWasDeleted); | |
36 | 35 |
37 // When a |model| changes, or an observed node within it does, call a | 36 // When a |model| changes, or an observed node within it does, call a |
38 // |callback|. | 37 // |callback|. |
39 BookmarkModelObserverForCocoa(bookmarks::BookmarkModel* model, | 38 BookmarkModelObserverForCocoa(bookmarks::BookmarkModel* model, |
40 ChangeCallback callback); | 39 ChangeCallback callback); |
41 ~BookmarkModelObserverForCocoa() override; | 40 ~BookmarkModelObserverForCocoa() override; |
42 | 41 |
43 // Starts and stops observing a specified |node|; the node must be contained | 42 // Starts and stops observing a specified |node|; the node must be contained |
44 // within the model. | 43 // within the model. |
45 void StartObservingNode(const bookmarks::BookmarkNode* node); | 44 void StartObservingNode(const bookmarks::BookmarkNode* node); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 | 81 |
83 void ExtensiveBookmarkChangesEnded(bookmarks::BookmarkModel* model) override { | 82 void ExtensiveBookmarkChangesEnded(bookmarks::BookmarkModel* model) override { |
84 } | 83 } |
85 | 84 |
86 private: | 85 private: |
87 bookmarks::BookmarkModel* model_; // Weak; it is owned by a Profile. | 86 bookmarks::BookmarkModel* model_; // Weak; it is owned by a Profile. |
88 std::set<const bookmarks::BookmarkNode*> | 87 std::set<const bookmarks::BookmarkNode*> |
89 nodes_; // Weak items owned by a BookmarkModel. | 88 nodes_; // Weak items owned by a BookmarkModel. |
90 base::mac::ScopedBlock<ChangeCallback> callback_; | 89 base::mac::ScopedBlock<ChangeCallback> callback_; |
91 | 90 |
92 // Send a notification to the client; |deleted| is YES if an observed node was | 91 // Send a notification to the client. |
93 // deleted in the change. | 92 void Notify(); |
94 void Notify(BOOL deleted); | |
95 | 93 |
96 DISALLOW_COPY_AND_ASSIGN(BookmarkModelObserverForCocoa); | 94 DISALLOW_COPY_AND_ASSIGN(BookmarkModelObserverForCocoa); |
97 }; | 95 }; |
98 | 96 |
99 #endif // CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_MODEL_OBSERVER_FOR_COCOA_H | 97 #endif // CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_MODEL_OBSERVER_FOR_COCOA_H |
OLD | NEW |