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 |
11 // bookmark manager, we'd want to simply cancel the editor. | 11 // bookmark manager, we'd want to simply cancel the editor. |
12 // | 12 // |
13 // This class is conservative and may result in notifications which | 13 // This class is conservative and may result in notifications which |
14 // aren't strictly necessary. For example, node removal only needs to | 14 // aren't strictly necessary. For example, node removal only needs to |
15 // cancel an edit if the removed node is a folder (editors often have | 15 // cancel an edit if the removed node is a folder (editors often have |
16 // a list of "new parents"). But, just to be sure, notification | 16 // a list of "new parents"). But, just to be sure, notification |
17 // happens on any removal. | 17 // happens on any removal. |
18 | 18 |
19 #ifndef CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_MODEL_OBSERVER_FOR_COCOA_H | 19 #ifndef CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_MODEL_OBSERVER_FOR_COCOA_H |
20 #define CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_MODEL_OBSERVER_FOR_COCOA_H | 20 #define CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_MODEL_OBSERVER_FOR_COCOA_H |
21 | 21 |
22 #import <Cocoa/Cocoa.h> | 22 #import <Cocoa/Cocoa.h> |
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 "base/memory/scoped_nsobject.h" | 28 #include "base/mac/scoped_nsobject.h" |
29 #include "chrome/browser/bookmarks/bookmark_model.h" | 29 #include "chrome/browser/bookmarks/bookmark_model.h" |
30 #include "chrome/browser/bookmarks/bookmark_model_observer.h" | 30 #include "chrome/browser/bookmarks/bookmark_model_observer.h" |
31 | 31 |
32 class BookmarkModelObserverForCocoa : public BookmarkModelObserver { | 32 class BookmarkModelObserverForCocoa : public BookmarkModelObserver { |
33 public: | 33 public: |
34 // Callback called on a significant model change. |nodeWasDeleted| will | 34 // Callback called on a significant model change. |nodeWasDeleted| will |
35 // be YES if an observed node was deleted in the change. | 35 // be YES if an observed node was deleted in the change. |
36 typedef void(^ChangeCallback)(BOOL nodeWasDeleted); | 36 typedef void(^ChangeCallback)(BOOL nodeWasDeleted); |
37 | 37 |
38 // When a |model| changes, or an observed node within it does, call a | 38 // When a |model| changes, or an observed node within it does, call a |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 base::mac::ScopedBlock<ChangeCallback> callback_; | 85 base::mac::ScopedBlock<ChangeCallback> callback_; |
86 | 86 |
87 // Send a notification to the client; |deleted| is YES if an observed node was | 87 // Send a notification to the client; |deleted| is YES if an observed node was |
88 // deleted in the change. | 88 // deleted in the change. |
89 void Notify(BOOL deleted); | 89 void Notify(BOOL deleted); |
90 | 90 |
91 DISALLOW_COPY_AND_ASSIGN(BookmarkModelObserverForCocoa); | 91 DISALLOW_COPY_AND_ASSIGN(BookmarkModelObserverForCocoa); |
92 }; | 92 }; |
93 | 93 |
94 #endif // CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_MODEL_OBSERVER_FOR_COCOA_H | 94 #endif // CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_MODEL_OBSERVER_FOR_COCOA_H |
OLD | NEW |