| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2006-2008 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_BOOKMARKS_BOOKMARK_TABLE_MODEL_H_ | |
| 6 #define CHROME_BROWSER_BOOKMARKS_BOOKMARK_TABLE_MODEL_H_ | |
| 7 | |
| 8 #include "app/table_model.h" | |
| 9 #include "build/build_config.h" | |
| 10 #include "chrome/browser/bookmarks/bookmark_model_observer.h" | |
| 11 | |
| 12 // BookmarkTableModel provides a view of the BookmarkModel as a TableModel. | |
| 13 // Three variations are provided: | |
| 14 // . Recently created bookmarks. | |
| 15 // . The children of a particular folder. | |
| 16 // . All bookmarks matching the specified text. | |
| 17 class BookmarkTableModel : public TableModel, | |
| 18 public BookmarkModelObserver { | |
| 19 public: | |
| 20 // Methods for creating the various BookmarkTableModels. Ownership passes | |
| 21 // to the caller. | |
| 22 // |languages| is the kAcceptLanguages value of the user preference. It is | |
| 23 // used to decode IDN. | |
| 24 static BookmarkTableModel* CreateRecentlyBookmarkedModel( | |
| 25 BookmarkModel* model); | |
| 26 static BookmarkTableModel* CreateBookmarkTableModelForFolder( | |
| 27 BookmarkModel* model, const BookmarkNode* node); | |
| 28 static BookmarkTableModel* CreateSearchTableModel( | |
| 29 BookmarkModel* model, | |
| 30 const std::wstring& text, | |
| 31 const std::wstring& languages); | |
| 32 | |
| 33 explicit BookmarkTableModel(BookmarkModel* model); | |
| 34 virtual ~BookmarkTableModel(); | |
| 35 | |
| 36 // TableModel methods. | |
| 37 virtual std::wstring GetText(int row, int column_id); | |
| 38 virtual SkBitmap GetIcon(int row); | |
| 39 virtual void SetObserver(TableModelObserver* observer) { | |
| 40 observer_ = observer; | |
| 41 } | |
| 42 | |
| 43 // BookmarkModelObserver methods. | |
| 44 virtual void Loaded(BookmarkModel* model) {} | |
| 45 virtual void BookmarkModelBeingDeleted(BookmarkModel* model); | |
| 46 virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, | |
| 47 const BookmarkNode* node) {} | |
| 48 | |
| 49 | |
| 50 // Returns the index of the specified node, or -1 if the node isn't in the | |
| 51 // model. | |
| 52 virtual int IndexOfNode(const BookmarkNode* node); | |
| 53 | |
| 54 // Returns the BookmarkNode at the specified index. | |
| 55 virtual const BookmarkNode* GetNodeForRow(int row) = 0; | |
| 56 | |
| 57 // Returns the underlying BookmarkModel. | |
| 58 BookmarkModel* model() const { return model_; } | |
| 59 | |
| 60 protected: | |
| 61 TableModelObserver* observer() const { return observer_; } | |
| 62 | |
| 63 private: | |
| 64 // Builds the path shown in the path column for the specified node. | |
| 65 void BuildPath(const BookmarkNode* node, std::wstring* path); | |
| 66 | |
| 67 BookmarkModel* model_; | |
| 68 TableModelObserver* observer_; | |
| 69 | |
| 70 DISALLOW_COPY_AND_ASSIGN(BookmarkTableModel); | |
| 71 }; | |
| 72 | |
| 73 #endif // CHROME_BROWSER_BOOKMARKS_BOOKMARK_TABLE_MODEL_H_ | |
| OLD | NEW |