| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/gtk/bookmark_tree_model.h" | 5 #include "chrome/browser/gtk/bookmark_tree_model.h" |
| 6 | 6 |
| 7 #include <gtk/gtk.h> | 7 #include <gtk/gtk.h> |
| 8 | 8 |
| 9 #include "app/resource_bundle.h" | 9 #include "app/resource_bundle.h" |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 | 79 |
| 80 void AddToTreeStore(BookmarkModel* model, int64 selected_id, | 80 void AddToTreeStore(BookmarkModel* model, int64 selected_id, |
| 81 GtkTreeStore* store, GtkTreeIter* selected_iter) { | 81 GtkTreeStore* store, GtkTreeIter* selected_iter) { |
| 82 const BookmarkNode* root_node = model->root_node(); | 82 const BookmarkNode* root_node = model->root_node(); |
| 83 for (int i = 0; i < root_node->GetChildCount(); ++i) { | 83 for (int i = 0; i < root_node->GetChildCount(); ++i) { |
| 84 AddToTreeStoreAt(root_node->GetChild(i), selected_id, store, | 84 AddToTreeStoreAt(root_node->GetChild(i), selected_id, store, |
| 85 selected_iter, NULL); | 85 selected_iter, NULL); |
| 86 } | 86 } |
| 87 } | 87 } |
| 88 | 88 |
| 89 GtkWidget* MakeTreeViewForStore(GtkTreeStore* store) { |
| 90 GtkTreeViewColumn* column = gtk_tree_view_column_new(); |
| 91 GtkCellRenderer* image_renderer = gtk_cell_renderer_pixbuf_new(); |
| 92 gtk_tree_view_column_pack_start(column, image_renderer, FALSE); |
| 93 gtk_tree_view_column_add_attribute(column, image_renderer, |
| 94 "pixbuf", FOLDER_ICON); |
| 95 GtkCellRenderer* text_renderer = gtk_cell_renderer_text_new(); |
| 96 g_object_set(text_renderer, "ellipsize", PANGO_ELLIPSIZE_END, NULL); |
| 97 gtk_tree_view_column_pack_start(column, text_renderer, TRUE); |
| 98 gtk_tree_view_column_add_attribute(column, text_renderer, |
| 99 "text", FOLDER_NAME); |
| 100 |
| 101 GtkWidget* tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); |
| 102 // Let |tree_view| own the store. |
| 103 g_object_unref(store); |
| 104 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_view), FALSE); |
| 105 gtk_tree_view_append_column(GTK_TREE_VIEW(tree_view), column); |
| 106 return tree_view; |
| 107 } |
| 108 |
| 89 void AddToTreeStoreAt(const BookmarkNode* node, int64 selected_id, | 109 void AddToTreeStoreAt(const BookmarkNode* node, int64 selected_id, |
| 90 GtkTreeStore* store, GtkTreeIter* selected_iter, | 110 GtkTreeStore* store, GtkTreeIter* selected_iter, |
| 91 GtkTreeIter* parent) { | 111 GtkTreeIter* parent) { |
| 92 if (!node->is_folder()) | 112 if (!node->is_folder()) |
| 93 return; | 113 return; |
| 94 | 114 |
| 95 GtkTreeIter iter; | 115 GtkTreeIter iter; |
| 96 AddSingleNodeToTreeStore(store, node, &iter, parent); | 116 AddSingleNodeToTreeStore(store, node, &iter, parent); |
| 97 if (selected_iter && node->id() == selected_id) { | 117 if (selected_iter && node->id() == selected_id) { |
| 98 // Save the iterator. Since we're using a GtkTreeStore, we're | 118 // Save the iterator. Since we're using a GtkTreeStore, we're |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 ret_val = UTF8ToWide(utf8str); | 189 ret_val = UTF8ToWide(utf8str); |
| 170 g_value_unset(&value); | 190 g_value_unset(&value); |
| 171 } else { | 191 } else { |
| 172 NOTREACHED() << "Impossible type mismatch"; | 192 NOTREACHED() << "Impossible type mismatch"; |
| 173 } | 193 } |
| 174 | 194 |
| 175 return ret_val; | 195 return ret_val; |
| 176 } | 196 } |
| 177 | 197 |
| 178 } // namespace bookmark_utils | 198 } // namespace bookmark_utils |
| OLD | NEW |