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 |