| 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 582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 593 | 593 |
| 594 void BookmarkManagerGtk::ResetOrganizeMenu(bool left) { | 594 void BookmarkManagerGtk::ResetOrganizeMenu(bool left) { |
| 595 organize_is_for_left_ = left; | 595 organize_is_for_left_ = left; |
| 596 const BookmarkNode* parent = GetFolder(); | 596 const BookmarkNode* parent = GetFolder(); |
| 597 std::vector<const BookmarkNode*> nodes; | 597 std::vector<const BookmarkNode*> nodes; |
| 598 if (!left) | 598 if (!left) |
| 599 nodes = GetRightSelection(); | 599 nodes = GetRightSelection(); |
| 600 else if (parent) | 600 else if (parent) |
| 601 nodes.push_back(parent); | 601 nodes.push_back(parent); |
| 602 | 602 |
| 603 #if defined(TOOLKIT_GTK) | |
| 604 // We DeleteSoon on the old one to give any reference holders (e.g. | 603 // We DeleteSoon on the old one to give any reference holders (e.g. |
| 605 // the event that caused this reset) a chance to release their refs. | 604 // the event that caused this reset) a chance to release their refs. |
| 606 BookmarkContextMenu* old_menu = organize_menu_.release(); | 605 BookmarkContextMenuGtk* old_menu = organize_menu_.release(); |
| 607 if (old_menu) | 606 if (old_menu) |
| 608 MessageLoop::current()->DeleteSoon(FROM_HERE, old_menu); | 607 MessageLoop::current()->DeleteSoon(FROM_HERE, old_menu); |
| 609 | 608 |
| 610 organize_menu_.reset(new BookmarkContextMenu(window_, profile_, NULL, NULL, | 609 organize_menu_.reset(new BookmarkContextMenuGtk(window_, profile_, NULL, NULL, |
| 611 parent, nodes, BookmarkContextMenu::BOOKMARK_MANAGER_ORGANIZE_MENU, | 610 parent, nodes, BookmarkContextMenuGtk::BOOKMARK_MANAGER_ORGANIZE_MENU, |
| 612 NULL)); | 611 NULL)); |
| 613 gtk_menu_item_set_submenu(GTK_MENU_ITEM(organize_), organize_menu_->menu()); | 612 gtk_menu_item_set_submenu(GTK_MENU_ITEM(organize_), organize_menu_->menu()); |
| 614 #else | |
| 615 // GTK+Views should implement this somehow. | |
| 616 NOTIMPLEMENTED(); | |
| 617 #endif | |
| 618 } | 613 } |
| 619 | 614 |
| 620 void BookmarkManagerGtk::BuildLeftStore() { | 615 void BookmarkManagerGtk::BuildLeftStore() { |
| 621 GtkTreeIter select_iter; | 616 GtkTreeIter select_iter; |
| 622 bookmark_utils::AddToTreeStore(model_, | 617 bookmark_utils::AddToTreeStore(model_, |
| 623 model_->GetBookmarkBarNode()->id(), left_store_, &select_iter); | 618 model_->GetBookmarkBarNode()->id(), left_store_, &select_iter); |
| 624 gtk_tree_selection_select_iter(left_selection(), &select_iter); | 619 gtk_tree_selection_select_iter(left_selection(), &select_iter); |
| 625 | 620 |
| 626 // TODO(estade): is there a decent stock icon we can use here? | 621 // TODO(estade): is there a decent stock icon we can use here? |
| 627 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 622 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| (...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1235 | 1230 |
| 1236 return FALSE; | 1231 return FALSE; |
| 1237 } | 1232 } |
| 1238 | 1233 |
| 1239 // static | 1234 // static |
| 1240 gboolean BookmarkManagerGtk::OnTreeViewButtonPress( | 1235 gboolean BookmarkManagerGtk::OnTreeViewButtonPress( |
| 1241 GtkWidget* tree_view, GdkEventButton* button, BookmarkManagerGtk* bm) { | 1236 GtkWidget* tree_view, GdkEventButton* button, BookmarkManagerGtk* bm) { |
| 1242 if (button->button != 3) | 1237 if (button->button != 3) |
| 1243 return FALSE; | 1238 return FALSE; |
| 1244 | 1239 |
| 1245 #if defined(TOOLKIT_GTK) | |
| 1246 if (bm->ignore_rightclicks_) | 1240 if (bm->ignore_rightclicks_) |
| 1247 return FALSE; | 1241 return FALSE; |
| 1248 | 1242 |
| 1249 // If the cursor is not hovering over a selected row, let it propagate | 1243 // If the cursor is not hovering over a selected row, let it propagate |
| 1250 // to the default handler so that a selection change may occur. | 1244 // to the default handler so that a selection change may occur. |
| 1251 if (!CursorIsOverSelection(GTK_TREE_VIEW(tree_view))) { | 1245 if (!CursorIsOverSelection(GTK_TREE_VIEW(tree_view))) { |
| 1252 bm->ignore_rightclicks_ = true; | 1246 bm->ignore_rightclicks_ = true; |
| 1253 gtk_propagate_event(tree_view, reinterpret_cast<GdkEvent*>(button)); | 1247 gtk_propagate_event(tree_view, reinterpret_cast<GdkEvent*>(button)); |
| 1254 bm->ignore_rightclicks_ = false; | 1248 bm->ignore_rightclicks_ = false; |
| 1255 } | 1249 } |
| 1256 | 1250 |
| 1257 bm->organize_menu_->PopupAsContext(button->time); | 1251 bm->organize_menu_->PopupAsContext(button->time); |
| 1258 return TRUE; | 1252 return TRUE; |
| 1259 #else | |
| 1260 // Implement on GTK+views. | |
| 1261 NOTIMPLEMENTED(); | |
| 1262 return FALSE; | |
| 1263 #endif | |
| 1264 } | 1253 } |
| 1265 | 1254 |
| 1266 // static | 1255 // static |
| 1267 gboolean BookmarkManagerGtk::OnTreeViewButtonRelease( | 1256 gboolean BookmarkManagerGtk::OnTreeViewButtonRelease( |
| 1268 GtkWidget* tree_view, GdkEventButton* button, BookmarkManagerGtk* bm) { | 1257 GtkWidget* tree_view, GdkEventButton* button, BookmarkManagerGtk* bm) { |
| 1269 if (bm->delaying_mousedown_ && (tree_view == bm->right_tree_view_)) | 1258 if (bm->delaying_mousedown_ && (tree_view == bm->right_tree_view_)) |
| 1270 bm->SendDelayedMousedown(); | 1259 bm->SendDelayedMousedown(); |
| 1271 | 1260 |
| 1272 return FALSE; | 1261 return FALSE; |
| 1273 } | 1262 } |
| (...skipping 25 matching lines...) Expand all Loading... |
| 1299 default: | 1288 default: |
| 1300 break; | 1289 break; |
| 1301 } | 1290 } |
| 1302 } else if (key->keyval == GDK_Delete) { | 1291 } else if (key->keyval == GDK_Delete) { |
| 1303 command = IDS_BOOKMARK_BAR_REMOVE; | 1292 command = IDS_BOOKMARK_BAR_REMOVE; |
| 1304 } | 1293 } |
| 1305 | 1294 |
| 1306 if (command == -1) | 1295 if (command == -1) |
| 1307 return FALSE; | 1296 return FALSE; |
| 1308 | 1297 |
| 1309 #if defined(TOOLKIT_GTK) | |
| 1310 if (bm->organize_menu_.get() && | 1298 if (bm->organize_menu_.get() && |
| 1311 bm->organize_menu_->IsCommandEnabled(command)) { | 1299 bm->organize_menu_->IsCommandEnabled(command)) { |
| 1312 bm->organize_menu_->ExecuteCommand(command); | 1300 bm->organize_menu_->ExecuteCommand(command); |
| 1313 return TRUE; | 1301 return TRUE; |
| 1314 } | 1302 } |
| 1315 #else | |
| 1316 NOTIMPLEMENTED(); | |
| 1317 #endif | |
| 1318 | 1303 |
| 1319 return FALSE; | 1304 return FALSE; |
| 1320 } | 1305 } |
| 1321 | 1306 |
| 1322 // static | 1307 // static |
| 1323 void BookmarkManagerGtk::OnFolderNameEdited(GtkCellRendererText* render, | 1308 void BookmarkManagerGtk::OnFolderNameEdited(GtkCellRendererText* render, |
| 1324 gchar* path, gchar* new_folder_name, BookmarkManagerGtk* bm) { | 1309 gchar* path, gchar* new_folder_name, BookmarkManagerGtk* bm) { |
| 1325 // A folder named was edited in place. Sync the change to the bookmark | 1310 // A folder named was edited in place. Sync the change to the bookmark |
| 1326 // model. | 1311 // model. |
| 1327 GtkTreeIter iter; | 1312 GtkTreeIter iter; |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1443 modifier & gtk_accelerator_get_default_mod_mask()); | 1428 modifier & gtk_accelerator_get_default_mod_mask()); |
| 1444 // The only accelerator we have registered is ctrl+w, so any other value is a | 1429 // The only accelerator we have registered is ctrl+w, so any other value is a |
| 1445 // non-fatal error. | 1430 // non-fatal error. |
| 1446 DCHECK_EQ(keyval, static_cast<guint>(GDK_w)); | 1431 DCHECK_EQ(keyval, static_cast<guint>(GDK_w)); |
| 1447 DCHECK_EQ(modifier, GDK_CONTROL_MASK); | 1432 DCHECK_EQ(modifier, GDK_CONTROL_MASK); |
| 1448 | 1433 |
| 1449 gtk_widget_destroy(bookmark_manager->window_); | 1434 gtk_widget_destroy(bookmark_manager->window_); |
| 1450 | 1435 |
| 1451 return TRUE; | 1436 return TRUE; |
| 1452 } | 1437 } |
| OLD | NEW |