recently_used_folders_combo_model.h revision 3345a6884c488ff3a535c2c9acdd33d74b37e311
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#ifndef CHROME_BROWSER_BOOKMARKS_RECENTLY_USED_FOLDERS_COMBO_MODEL_H_ 6#define CHROME_BROWSER_BOOKMARKS_RECENTLY_USED_FOLDERS_COMBO_MODEL_H_ 7#pragma once 8 9#include <vector> 10 11#include "app/combobox_model.h" 12#include "base/string16.h" 13#include "chrome/browser/bookmarks/bookmark_model.h" 14 15// Model for the combobox showing the list of folders to choose from. The 16// list always contains the bookmark bar, other node and parent. The list 17// also contains an extra item that shows the text 'Choose another folder...'. 18class RecentlyUsedFoldersComboModel : public ComboboxModel { 19 public: 20 RecentlyUsedFoldersComboModel(BookmarkModel* model, const BookmarkNode* node); 21 22 // Overridden from ComboboxModel: 23 virtual int GetItemCount(); 24 virtual string16 GetItemAt(int index); 25 26 // Returns the node at the specified |index|. 27 const BookmarkNode* GetNodeAt(int index); 28 29 // Returns the index of the original parent folder. 30 int node_parent_index() const { return node_parent_index_; } 31 32 private: 33 // Removes |node| from |nodes_|. Does nothing if |node| is not in |nodes_|. 34 void RemoveNode(const BookmarkNode* node); 35 36 std::vector<const BookmarkNode*> nodes_; 37 int node_parent_index_; 38 39 DISALLOW_COPY_AND_ASSIGN(RecentlyUsedFoldersComboModel); 40}; 41 42#endif // CHROME_BROWSER_BOOKMARKS_RECENTLY_USED_FOLDERS_COMBO_MODEL_H_ 43