OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2013 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 #ifndef CHROME_BROWSER_UI_COCOA_CONTENT_SETTINGS_COOKIES_TREE_CONTROLLER_BRIDGE_
H_ |
| 6 #define CHROME_BROWSER_UI_COCOA_CONTENT_SETTINGS_COOKIES_TREE_CONTROLLER_BRIDGE_
H_ |
| 7 |
| 8 #import <Cocoa/Cocoa.h> |
| 9 |
| 10 #import "base/mac/scoped_nsobject.h" |
| 11 #include "chrome/browser/browsing_data/cookies_tree_model.h" |
| 12 #import "chrome/browser/ui/cocoa/content_settings/cookie_tree_node.h" |
| 13 |
| 14 class CookiesTreeControllerBridge : public ui::TreeModelObserver { |
| 15 public: |
| 16 explicit CookiesTreeControllerBridge(CookiesTreeModel* model); |
| 17 virtual ~CookiesTreeControllerBridge(); |
| 18 |
| 19 // TreeModelObserver: |
| 20 virtual void TreeNodesAdded(ui::TreeModel* model, |
| 21 ui::TreeModelNode* parent, |
| 22 int start, |
| 23 int count) OVERRIDE; |
| 24 virtual void TreeNodesRemoved(ui::TreeModel* model, |
| 25 ui::TreeModelNode* parent, |
| 26 int start, |
| 27 int count) OVERRIDE; |
| 28 virtual void TreeNodeChanged(ui::TreeModel* model, |
| 29 ui::TreeModelNode* node) OVERRIDE; |
| 30 |
| 31 CocoaCookieTreeNode* cocoa_model() const { return cocoa_model_.get(); } |
| 32 |
| 33 private: |
| 34 // Creates a CocoaCookieTreeNode from a platform-independent one. |
| 35 // Return value is autoreleased. This creates child nodes recusively. |
| 36 CocoaCookieTreeNode* CocoaNodeFromTreeNode(ui::TreeModelNode* node); |
| 37 |
| 38 // Finds the Cocoa model node based on a platform-independent one. This is |
| 39 // done by comparing the treeNode pointers. |start| is the node to start |
| 40 // searching at. If |start| is nil, the root is used. |
| 41 CocoaCookieTreeNode* FindCocoaNode(ui::TreeModelNode* node, |
| 42 CocoaCookieTreeNode* start); |
| 43 |
| 44 // The C++ model that this observes. |
| 45 CookiesTreeModel* model_; // weak |
| 46 |
| 47 // A copy of the model using Cocoa objects instead of C++ ones. |
| 48 base::scoped_nsobject<CocoaCookieTreeNode> cocoa_model_; |
| 49 }; |
| 50 |
| 51 #endif // CHROME_BROWSER_UI_COCOA_CONTENT_SETTINGS_COOKIES_TREE_CONTROLLER_BRID
GE_H_ |
OLD | NEW |