| 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_manager_gtk.h" | 5 #include "chrome/browser/gtk/bookmark_manager_gtk.h" |
| 6 | 6 |
| 7 #include <gdk/gdkkeysyms.h> | 7 #include <gdk/gdkkeysyms.h> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "app/gtk_dnd_util.h" | 10 #include "app/gtk_dnd_util.h" |
| (...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 G_CALLBACK(OnLeftTreeViewRowCollapsed), this); | 439 G_CALLBACK(OnLeftTreeViewRowCollapsed), this); |
| 440 g_signal_connect(left_tree_view_, "focus-in-event", | 440 g_signal_connect(left_tree_view_, "focus-in-event", |
| 441 G_CALLBACK(OnLeftTreeViewFocusIn), this); | 441 G_CALLBACK(OnLeftTreeViewFocusIn), this); |
| 442 g_signal_connect(left_tree_view_, "button-press-event", | 442 g_signal_connect(left_tree_view_, "button-press-event", |
| 443 G_CALLBACK(OnTreeViewButtonPress), this); | 443 G_CALLBACK(OnTreeViewButtonPress), this); |
| 444 g_signal_connect(left_tree_view_, "button-release-event", | 444 g_signal_connect(left_tree_view_, "button-release-event", |
| 445 G_CALLBACK(OnTreeViewButtonRelease), this); | 445 G_CALLBACK(OnTreeViewButtonRelease), this); |
| 446 g_signal_connect(left_tree_view_, "key-press-event", | 446 g_signal_connect(left_tree_view_, "key-press-event", |
| 447 G_CALLBACK(OnTreeViewKeyPress), this); | 447 G_CALLBACK(OnTreeViewKeyPress), this); |
| 448 | 448 |
| 449 GtkCellRenderer* cell_renderer_text = bookmark_utils::GetCellRendererText( |
| 450 GTK_TREE_VIEW(left_tree_view_)); |
| 451 g_signal_connect(cell_renderer_text, "edited", |
| 452 G_CALLBACK(OnFolderNameEdited), this); |
| 453 |
| 449 // The left side is only a drag destination (not a source). | 454 // The left side is only a drag destination (not a source). |
| 450 gtk_drag_dest_set(left_tree_view_, GTK_DEST_DEFAULT_DROP, | 455 gtk_drag_dest_set(left_tree_view_, GTK_DEST_DEFAULT_DROP, |
| 451 NULL, 0, GDK_ACTION_MOVE); | 456 NULL, 0, GDK_ACTION_MOVE); |
| 452 GtkDndUtil::SetDestTargetList(left_tree_view_, kDestTargetList); | 457 GtkDndUtil::SetDestTargetList(left_tree_view_, kDestTargetList); |
| 453 | 458 |
| 454 g_signal_connect(left_tree_view_, "drag-data-received", | 459 g_signal_connect(left_tree_view_, "drag-data-received", |
| 455 G_CALLBACK(&OnLeftTreeViewDragReceived), this); | 460 G_CALLBACK(&OnLeftTreeViewDragReceived), this); |
| 456 g_signal_connect(left_tree_view_, "drag-motion", | 461 g_signal_connect(left_tree_view_, "drag-motion", |
| 457 G_CALLBACK(&OnLeftTreeViewDragMotion), this); | 462 G_CALLBACK(&OnLeftTreeViewDragMotion), this); |
| 458 | 463 |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 620 // TODO(estade): is there a decent stock icon we can use here? | 625 // TODO(estade): is there a decent stock icon we can use here? |
| 621 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 626 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 622 gtk_tree_store_append(left_store_, &select_iter, NULL); | 627 gtk_tree_store_append(left_store_, &select_iter, NULL); |
| 623 gtk_tree_store_set(left_store_, &select_iter, | 628 gtk_tree_store_set(left_store_, &select_iter, |
| 624 bookmark_utils::FOLDER_ICON, | 629 bookmark_utils::FOLDER_ICON, |
| 625 rb.GetPixbufNamed(IDR_BOOKMARK_MANAGER_RECENT_ICON), | 630 rb.GetPixbufNamed(IDR_BOOKMARK_MANAGER_RECENT_ICON), |
| 626 bookmark_utils::FOLDER_NAME, | 631 bookmark_utils::FOLDER_NAME, |
| 627 l10n_util::GetStringUTF8( | 632 l10n_util::GetStringUTF8( |
| 628 IDS_BOOKMARK_TREE_RECENTLY_BOOKMARKED_NODE_TITLE).c_str(), | 633 IDS_BOOKMARK_TREE_RECENTLY_BOOKMARKED_NODE_TITLE).c_str(), |
| 629 bookmark_utils::ITEM_ID, kRecentID, | 634 bookmark_utils::ITEM_ID, kRecentID, |
| 635 bookmark_utils::IS_EDITABLE, FALSE, |
| 630 -1); | 636 -1); |
| 631 | 637 |
| 632 GdkPixbuf* search_icon = gtk_widget_render_icon( | 638 GdkPixbuf* search_icon = gtk_widget_render_icon( |
| 633 window_, GTK_STOCK_FIND, GTK_ICON_SIZE_MENU, NULL); | 639 window_, GTK_STOCK_FIND, GTK_ICON_SIZE_MENU, NULL); |
| 634 gtk_tree_store_append(left_store_, &select_iter, NULL); | 640 gtk_tree_store_append(left_store_, &select_iter, NULL); |
| 635 gtk_tree_store_set(left_store_, &select_iter, | 641 gtk_tree_store_set(left_store_, &select_iter, |
| 636 bookmark_utils::FOLDER_ICON, | 642 bookmark_utils::FOLDER_ICON, |
| 637 search_icon, | 643 search_icon, |
| 638 bookmark_utils::FOLDER_NAME, | 644 bookmark_utils::FOLDER_NAME, |
| 639 l10n_util::GetStringUTF8( | 645 l10n_util::GetStringUTF8( |
| 640 IDS_BOOKMARK_TREE_SEARCH_NODE_TITLE).c_str(), | 646 IDS_BOOKMARK_TREE_SEARCH_NODE_TITLE).c_str(), |
| 641 bookmark_utils::ITEM_ID, kSearchID, | 647 bookmark_utils::ITEM_ID, kSearchID, |
| 648 bookmark_utils::IS_EDITABLE, FALSE, |
| 642 -1); | 649 -1); |
| 643 g_object_unref(search_icon); | 650 g_object_unref(search_icon); |
| 644 } | 651 } |
| 645 | 652 |
| 646 void BookmarkManagerGtk::BuildRightStore() { | 653 void BookmarkManagerGtk::BuildRightStore() { |
| 647 right_tree_adapter_->OnModelChanged(); | 654 right_tree_adapter_->OnModelChanged(); |
| 648 } | 655 } |
| 649 | 656 |
| 650 void BookmarkManagerGtk::ResetRightStoreModel() { | 657 void BookmarkManagerGtk::ResetRightStoreModel() { |
| 651 const BookmarkNode* node = GetFolder(); | 658 const BookmarkNode* node = GetFolder(); |
| (...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1301 if (bm->organize_menu_.get() && | 1308 if (bm->organize_menu_.get() && |
| 1302 bm->organize_menu_->IsCommandEnabled(command)) { | 1309 bm->organize_menu_->IsCommandEnabled(command)) { |
| 1303 bm->organize_menu_->ExecuteCommand(command); | 1310 bm->organize_menu_->ExecuteCommand(command); |
| 1304 return TRUE; | 1311 return TRUE; |
| 1305 } | 1312 } |
| 1306 | 1313 |
| 1307 return FALSE; | 1314 return FALSE; |
| 1308 } | 1315 } |
| 1309 | 1316 |
| 1310 // static | 1317 // static |
| 1318 void BookmarkManagerGtk::OnFolderNameEdited(GtkCellRendererText* render, |
| 1319 gchar* path, gchar* new_folder_name, BookmarkManagerGtk* bm) { |
| 1320 // A folder named was edited in place. Sync the change to the bookmark |
| 1321 // model. |
| 1322 GtkTreeIter iter; |
| 1323 GtkTreePath* tree_path = gtk_tree_path_new_from_string(path); |
| 1324 gboolean rv = gtk_tree_model_get_iter(GTK_TREE_MODEL(bm->left_store_), |
| 1325 &iter, tree_path); |
| 1326 DCHECK(rv); |
| 1327 bm->model_->SetTitle(bm->GetNodeAt(GTK_TREE_MODEL(bm->left_store_), &iter), |
| 1328 UTF8ToWide(new_folder_name)); |
| 1329 } |
| 1330 |
| 1331 // static |
| 1311 void BookmarkManagerGtk::OnImportItemActivated( | 1332 void BookmarkManagerGtk::OnImportItemActivated( |
| 1312 GtkMenuItem* menuitem, BookmarkManagerGtk* bm) { | 1333 GtkMenuItem* menuitem, BookmarkManagerGtk* bm) { |
| 1313 SelectFileDialog::FileTypeInfo file_type_info; | 1334 SelectFileDialog::FileTypeInfo file_type_info; |
| 1314 file_type_info.extensions.resize(1); | 1335 file_type_info.extensions.resize(1); |
| 1315 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("html")); | 1336 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("html")); |
| 1316 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("htm")); | 1337 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("htm")); |
| 1317 file_type_info.include_all_files = true; | 1338 file_type_info.include_all_files = true; |
| 1318 bm->select_file_dialog_->SelectFile( | 1339 bm->select_file_dialog_->SelectFile( |
| 1319 SelectFileDialog::SELECT_OPEN_FILE, string16(), | 1340 SelectFileDialog::SELECT_OPEN_FILE, string16(), |
| 1320 FilePath(""), &file_type_info, 0, | 1341 FilePath(""), &file_type_info, 0, |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1418 modifier & gtk_accelerator_get_default_mod_mask()); | 1439 modifier & gtk_accelerator_get_default_mod_mask()); |
| 1419 // The only accelerator we have registered is ctrl+w, so any other value is a | 1440 // The only accelerator we have registered is ctrl+w, so any other value is a |
| 1420 // non-fatal error. | 1441 // non-fatal error. |
| 1421 DCHECK_EQ(keyval, static_cast<guint>(GDK_w)); | 1442 DCHECK_EQ(keyval, static_cast<guint>(GDK_w)); |
| 1422 DCHECK_EQ(modifier, GDK_CONTROL_MASK); | 1443 DCHECK_EQ(modifier, GDK_CONTROL_MASK); |
| 1423 | 1444 |
| 1424 gtk_widget_destroy(bookmark_manager->window_); | 1445 gtk_widget_destroy(bookmark_manager->window_); |
| 1425 | 1446 |
| 1426 return TRUE; | 1447 return TRUE; |
| 1427 } | 1448 } |
| OLD | NEW |