| Index: chrome/browser/gtk/bookmark_tree_model.cc | 
| =================================================================== | 
| --- chrome/browser/gtk/bookmark_tree_model.cc	(revision 17462) | 
| +++ chrome/browser/gtk/bookmark_tree_model.cc	(working copy) | 
| @@ -6,8 +6,12 @@ | 
|  | 
| #include <gtk/gtk.h> | 
|  | 
| +#include "app/resource_bundle.h" | 
| #include "base/string_util.h" | 
| #include "chrome/browser/bookmarks/bookmark_model.h" | 
| +#include "grit/app_resources.h" | 
| +#include "grit/generated_resources.h" | 
| +#include "grit/theme_resources.h" | 
|  | 
| namespace { | 
|  | 
| @@ -22,9 +26,13 @@ | 
| BookmarkNode* child = node->GetChild(i); | 
| if (child->is_folder()) { | 
| gtk_tree_store_append(store, &iter, parent); | 
| +      // TODO(estade): we should show the folder open when it's expanded. | 
| gtk_tree_store_set(store, &iter, | 
| -                         0, WideToUTF8(child->GetTitle()).c_str(), | 
| -                         1, child->id(), | 
| +                         bookmark_utils::FOLDER_ICON, | 
| +                         bookmark_utils::GetFolderIcon(), | 
| +                         bookmark_utils::FOLDER_NAME, | 
| +                         WideToUTF8(child->GetTitle()).c_str(), | 
| +                         bookmark_utils::ITEM_ID, child->id(), | 
| -1); | 
| if (selected_id && child->id() == selected_id) { | 
| // Save the iterator. Since we're using a GtkTreeStore, we're | 
| @@ -84,12 +92,16 @@ | 
|  | 
| namespace bookmark_utils { | 
|  | 
| -void BuildTreeStoreFrom(BookmarkModel* model, int selected_id, | 
| -                        GtkTreeStore** store, GtkTreeIter* selected_iter) { | 
| -  *store = gtk_tree_store_new(2, G_TYPE_STRING, G_TYPE_INT); | 
| -  RecursiveInsert(model->root_node(), selected_id, *store, selected_iter, NULL); | 
| +GtkTreeStore* MakeFolderTreeStore() { | 
| +  return gtk_tree_store_new(FOLDER_STORE_NUM_COLUMNS, GDK_TYPE_PIXBUF, | 
| +                            G_TYPE_STRING, G_TYPE_INT); | 
| } | 
|  | 
| +void AddToTreeStore(BookmarkModel* model, int selected_id, | 
| +                    GtkTreeStore* store, GtkTreeIter* selected_iter) { | 
| +  RecursiveInsert(model->root_node(), selected_id, store, selected_iter, NULL); | 
| +} | 
| + | 
| BookmarkNode* CommitTreeStoreDifferencesBetween( | 
| BookmarkModel* bb_model, GtkTreeStore* tree_store, GtkTreeIter* selected) { | 
| BookmarkNode* node_to_return = NULL; | 
| @@ -134,7 +146,7 @@ | 
| int GetIdFromTreeIter(GtkTreeModel* model, GtkTreeIter* iter) { | 
| GValue value = { 0, }; | 
| int ret_val = -1; | 
| -  gtk_tree_model_get_value(model, iter, 1, &value); | 
| +  gtk_tree_model_get_value(model, iter, ITEM_ID, &value); | 
| if (G_VALUE_HOLDS_INT(&value)) | 
| ret_val = g_value_get_int(&value); | 
| else | 
| @@ -146,7 +158,7 @@ | 
| std::wstring GetTitleFromTreeIter(GtkTreeModel* model, GtkTreeIter* iter) { | 
| GValue value = { 0, }; | 
| std::wstring ret_val; | 
| -  gtk_tree_model_get_value(model, iter, 0, &value); | 
| +  gtk_tree_model_get_value(model, iter, FOLDER_NAME, &value); | 
| if (G_VALUE_HOLDS_STRING(&value)) { | 
| const gchar* utf8str = g_value_get_string(&value); | 
| ret_val = UTF8ToWide(utf8str); | 
| @@ -158,4 +170,18 @@ | 
| return ret_val; | 
| } | 
|  | 
| +GdkPixbuf* GetFolderIcon() { | 
| +  ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 
| +  static GdkPixbuf* default_folder_icon = rb.GetPixbufNamed( | 
| +      IDR_BOOKMARK_BAR_FOLDER); | 
| +  return default_folder_icon; | 
| +} | 
| + | 
| +GdkPixbuf* GetDefaultFavicon() { | 
| +  ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 
| +  static GdkPixbuf* default_bookmark_icon = rb.GetPixbufNamed( | 
| +      IDR_DEFAULT_FAVICON); | 
| +  return default_bookmark_icon; | 
| +} | 
| + | 
| }  // namespace bookmark_utils | 
|  |