Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/ui/gtk/bookmarks/bookmark_bar_gtk.h" | 5 #include "chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 114 UMA_HISTOGRAM_ENUMERATION(extension_misc::kAppLaunchHistogram, | 114 UMA_HISTOGRAM_ENUMERATION(extension_misc::kAppLaunchHistogram, |
| 115 extension_misc::APP_LAUNCH_BOOKMARK_BAR, | 115 extension_misc::APP_LAUNCH_BOOKMARK_BAR, |
| 116 extension_misc::APP_LAUNCH_BUCKET_BOUNDARY); | 116 extension_misc::APP_LAUNCH_BUCKET_BOUNDARY); |
| 117 } | 117 } |
| 118 | 118 |
| 119 } // namespace | 119 } // namespace |
| 120 | 120 |
| 121 const int BookmarkBarGtk::kBookmarkBarNTPHeight = 57; | 121 const int BookmarkBarGtk::kBookmarkBarNTPHeight = 57; |
| 122 | 122 |
| 123 BookmarkBarGtk::BookmarkBarGtk(BrowserWindowGtk* window, | 123 BookmarkBarGtk::BookmarkBarGtk(BrowserWindowGtk* window, |
| 124 Profile* profile, Browser* browser, | 124 Browser* browser, |
| 125 TabstripOriginProvider* tabstrip_origin_provider) | 125 TabstripOriginProvider* tabstrip_origin_provider) |
| 126 : profile_(NULL), | 126 : page_navigator_(NULL), |
| 127 page_navigator_(NULL), | |
| 128 browser_(browser), | 127 browser_(browser), |
| 129 window_(window), | 128 window_(window), |
| 130 tabstrip_origin_provider_(tabstrip_origin_provider), | 129 tabstrip_origin_provider_(tabstrip_origin_provider), |
| 131 model_(NULL), | 130 model_(NULL), |
| 132 instructions_(NULL), | 131 instructions_(NULL), |
| 133 sync_service_(NULL), | 132 sync_service_(NULL), |
| 134 dragged_node_(NULL), | 133 dragged_node_(NULL), |
| 135 drag_icon_(NULL), | 134 drag_icon_(NULL), |
| 136 toolbar_drop_item_(NULL), | 135 toolbar_drop_item_(NULL), |
| 137 theme_service_(GtkThemeService::GetFrom(profile)), | 136 theme_service_(GtkThemeService::GetFrom(browser->profile())), |
| 138 show_instructions_(true), | 137 show_instructions_(true), |
| 139 menu_bar_helper_(this), | 138 menu_bar_helper_(this), |
| 140 slide_animation_(this), | 139 slide_animation_(this), |
| 141 last_allocation_width_(-1), | 140 last_allocation_width_(-1), |
| 142 throbbing_widget_(NULL), | 141 throbbing_widget_(NULL), |
| 143 method_factory_(this), | 142 method_factory_(this), |
| 144 bookmark_bar_state_(BookmarkBar::DETACHED) { | 143 bookmark_bar_state_(BookmarkBar::DETACHED) { |
| 144 Profile* profile = browser->profile(); | |
| 145 if (profile->GetProfileSyncService()) { | 145 if (profile->GetProfileSyncService()) { |
| 146 // Obtain a pointer to the profile sync service and add our instance as an | 146 // Obtain a pointer to the profile sync service and add our instance as an |
| 147 // observer. | 147 // observer. |
| 148 sync_service_ = profile->GetProfileSyncService(); | 148 sync_service_ = profile->GetProfileSyncService(); |
| 149 sync_service_->AddObserver(this); | 149 sync_service_->AddObserver(this); |
| 150 } | 150 } |
| 151 | 151 |
| 152 Init(profile); | 152 Init(); |
| 153 SetProfile(profile); | |
| 154 // Force an update by simulating being in the wrong state. | 153 // Force an update by simulating being in the wrong state. |
| 155 // BrowserWindowGtk sets our true state after we're created. | 154 // BrowserWindowGtk sets our true state after we're created. |
| 156 SetBookmarkBarState(BookmarkBar::SHOW, | 155 SetBookmarkBarState(BookmarkBar::SHOW, |
| 157 BookmarkBar::DONT_ANIMATE_STATE_CHANGE); | 156 BookmarkBar::DONT_ANIMATE_STATE_CHANGE); |
| 158 | 157 |
| 159 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED, | 158 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED, |
| 160 Source<ThemeService>(theme_service_)); | 159 Source<ThemeService>(theme_service_)); |
| 161 | 160 |
| 162 edit_bookmarks_enabled_.Init(prefs::kEditBookmarksEnabled, | 161 edit_bookmarks_enabled_.Init(prefs::kEditBookmarksEnabled, |
| 163 profile_->GetPrefs(), this); | 162 profile->GetPrefs(), this); |
| 164 OnEditBookmarksEnabledChanged(); | 163 OnEditBookmarksEnabledChanged(); |
| 165 } | 164 } |
| 166 | 165 |
| 167 BookmarkBarGtk::~BookmarkBarGtk() { | 166 BookmarkBarGtk::~BookmarkBarGtk() { |
| 168 RemoveAllBookmarkButtons(); | 167 RemoveAllBookmarkButtons(); |
| 169 bookmark_toolbar_.Destroy(); | 168 bookmark_toolbar_.Destroy(); |
| 170 event_box_.Destroy(); | 169 event_box_.Destroy(); |
| 171 } | 170 } |
| 172 | 171 |
| 173 void BookmarkBarGtk::SetProfile(Profile* profile) { | |
| 174 DCHECK(profile); | |
| 175 if (profile_ == profile) | |
| 176 return; | |
| 177 | |
| 178 RemoveAllBookmarkButtons(); | |
| 179 | |
| 180 profile_ = profile; | |
| 181 | |
| 182 if (model_) | |
| 183 model_->RemoveObserver(this); | |
| 184 | |
| 185 // TODO(erg): Handle extensions | |
| 186 | |
| 187 model_ = profile_->GetBookmarkModel(); | |
| 188 model_->AddObserver(this); | |
| 189 if (model_->IsLoaded()) | |
| 190 Loaded(model_, false); | |
| 191 | |
| 192 // else case: we'll receive notification back from the BookmarkModel when done | |
| 193 // loading, then we'll populate the bar. | |
| 194 } | |
| 195 | |
| 196 void BookmarkBarGtk::SetPageNavigator(PageNavigator* navigator) { | 172 void BookmarkBarGtk::SetPageNavigator(PageNavigator* navigator) { |
| 197 page_navigator_ = navigator; | 173 page_navigator_ = navigator; |
| 198 } | 174 } |
| 199 | 175 |
| 200 void BookmarkBarGtk::Init(Profile* profile) { | 176 void BookmarkBarGtk::Init() { |
| 201 event_box_.Own(gtk_event_box_new()); | 177 event_box_.Own(gtk_event_box_new()); |
| 202 g_signal_connect(event_box_.get(), "destroy", | 178 g_signal_connect(event_box_.get(), "destroy", |
| 203 G_CALLBACK(&OnEventBoxDestroyThunk), this); | 179 G_CALLBACK(&OnEventBoxDestroyThunk), this); |
| 204 g_signal_connect(event_box_.get(), "button-press-event", | 180 g_signal_connect(event_box_.get(), "button-press-event", |
| 205 G_CALLBACK(&OnButtonPressedThunk), this); | 181 G_CALLBACK(&OnButtonPressedThunk), this); |
| 206 | 182 |
| 207 ntp_padding_box_ = gtk_alignment_new(0, 0, 1, 1); | 183 ntp_padding_box_ = gtk_alignment_new(0, 0, 1, 1); |
| 208 gtk_container_add(GTK_CONTAINER(event_box_.get()), ntp_padding_box_); | 184 gtk_container_add(GTK_CONTAINER(event_box_.get()), ntp_padding_box_); |
| 209 | 185 |
| 210 paint_box_ = gtk_event_box_new(); | 186 paint_box_ = gtk_event_box_new(); |
| 211 gtk_container_add(GTK_CONTAINER(ntp_padding_box_), paint_box_); | 187 gtk_container_add(GTK_CONTAINER(ntp_padding_box_), paint_box_); |
| 212 GdkColor paint_box_color = | 188 GdkColor paint_box_color = |
| 213 theme_service_->GetGdkColor(ThemeService::COLOR_TOOLBAR); | 189 theme_service_->GetGdkColor(ThemeService::COLOR_TOOLBAR); |
| 214 gtk_widget_modify_bg(paint_box_, GTK_STATE_NORMAL, &paint_box_color); | 190 gtk_widget_modify_bg(paint_box_, GTK_STATE_NORMAL, &paint_box_color); |
| 215 gtk_widget_add_events(paint_box_, GDK_POINTER_MOTION_MASK | | 191 gtk_widget_add_events(paint_box_, GDK_POINTER_MOTION_MASK | |
| 216 GDK_BUTTON_PRESS_MASK); | 192 GDK_BUTTON_PRESS_MASK); |
| 217 | 193 |
| 218 bookmark_hbox_ = gtk_hbox_new(FALSE, 0); | 194 bookmark_hbox_ = gtk_hbox_new(FALSE, 0); |
| 219 gtk_container_add(GTK_CONTAINER(paint_box_), bookmark_hbox_); | 195 gtk_container_add(GTK_CONTAINER(paint_box_), bookmark_hbox_); |
| 220 | 196 |
| 221 instructions_ = gtk_alignment_new(0, 0, 1, 1); | 197 instructions_ = gtk_alignment_new(0, 0, 1, 1); |
| 222 gtk_alignment_set_padding(GTK_ALIGNMENT(instructions_), 0, 0, | 198 gtk_alignment_set_padding(GTK_ALIGNMENT(instructions_), 0, 0, |
| 223 kInstructionsPadding, 0); | 199 kInstructionsPadding, 0); |
| 200 Profile* profile = browser_->profile(); | |
| 224 instructions_gtk_.reset(new BookmarkBarInstructionsGtk(this, profile)); | 201 instructions_gtk_.reset(new BookmarkBarInstructionsGtk(this, profile)); |
| 225 gtk_container_add(GTK_CONTAINER(instructions_), instructions_gtk_->widget()); | 202 gtk_container_add(GTK_CONTAINER(instructions_), instructions_gtk_->widget()); |
| 226 gtk_box_pack_start(GTK_BOX(bookmark_hbox_), instructions_, | 203 gtk_box_pack_start(GTK_BOX(bookmark_hbox_), instructions_, |
| 227 TRUE, TRUE, 0); | 204 TRUE, TRUE, 0); |
| 228 | 205 |
| 229 gtk_drag_dest_set(instructions_, | 206 gtk_drag_dest_set(instructions_, |
| 230 GtkDestDefaults(GTK_DEST_DEFAULT_DROP | GTK_DEST_DEFAULT_MOTION), | 207 GtkDestDefaults(GTK_DEST_DEFAULT_DROP | GTK_DEST_DEFAULT_MOTION), |
| 231 NULL, 0, kDragAction); | 208 NULL, 0, kDragAction); |
| 232 ui::SetDestTargetList(instructions_, kDestTargetList); | 209 ui::SetDestTargetList(instructions_, kDestTargetList); |
| 233 g_signal_connect(instructions_, "drag-data-received", | 210 g_signal_connect(instructions_, "drag-data-received", |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 303 gtk_box_pack_start(GTK_BOX(bookmark_hbox_), sync_error_button_, | 280 gtk_box_pack_start(GTK_BOX(bookmark_hbox_), sync_error_button_, |
| 304 FALSE, FALSE, 0); | 281 FALSE, FALSE, 0); |
| 305 | 282 |
| 306 gtk_widget_set_size_request(event_box_.get(), -1, kBookmarkBarMinimumHeight); | 283 gtk_widget_set_size_request(event_box_.get(), -1, kBookmarkBarMinimumHeight); |
| 307 | 284 |
| 308 ViewIDUtil::SetID(other_bookmarks_button_, VIEW_ID_OTHER_BOOKMARKS); | 285 ViewIDUtil::SetID(other_bookmarks_button_, VIEW_ID_OTHER_BOOKMARKS); |
| 309 ViewIDUtil::SetID(widget(), VIEW_ID_BOOKMARK_BAR); | 286 ViewIDUtil::SetID(widget(), VIEW_ID_BOOKMARK_BAR); |
| 310 | 287 |
| 311 gtk_widget_show_all(widget()); | 288 gtk_widget_show_all(widget()); |
| 312 gtk_widget_hide(widget()); | 289 gtk_widget_hide(widget()); |
| 290 | |
| 291 RemoveAllBookmarkButtons(); | |
|
sky
2011/08/08 16:02:29
I don't think you need this anymore. It made sense
Peter Kasting
2011/08/08 17:52:07
Unfortunately this function does more than removin
| |
| 292 // TODO(erg): Handle extensions | |
| 293 model_ = profile->GetBookmarkModel(); | |
| 294 model_->AddObserver(this); | |
| 295 if (model_->IsLoaded()) | |
| 296 Loaded(model_, false); | |
| 297 // else case: we'll receive notification back from the BookmarkModel when done | |
| 298 // loading, then we'll populate the bar. | |
| 313 } | 299 } |
| 314 | 300 |
| 315 void BookmarkBarGtk::SetBookmarkBarState( | 301 void BookmarkBarGtk::SetBookmarkBarState( |
| 316 BookmarkBar::State state, | 302 BookmarkBar::State state, |
| 317 BookmarkBar::AnimateChangeType animate_type) { | 303 BookmarkBar::AnimateChangeType animate_type) { |
| 318 if (animate_type == BookmarkBar::ANIMATE_STATE_CHANGE && | 304 if (animate_type == BookmarkBar::ANIMATE_STATE_CHANGE && |
| 319 (state == BookmarkBar::DETACHED || | 305 (state == BookmarkBar::DETACHED || |
| 320 bookmark_bar_state_ == BookmarkBar::DETACHED)) { | 306 bookmark_bar_state_ == BookmarkBar::DETACHED)) { |
| 321 // TODO(estade): animate the transition between detached and non or remove | 307 // TODO(estade): animate the transition between detached and non or remove |
| 322 // detached entirely. | 308 // detached entirely. |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 391 return; | 377 return; |
| 392 } else { | 378 } else { |
| 393 // Overflow exists: don't show anything for an overflowed folder button. | 379 // Overflow exists: don't show anything for an overflowed folder button. |
| 394 if (button != overflow_button_ && button != other_bookmarks_button_ && | 380 if (button != overflow_button_ && button != other_bookmarks_button_ && |
| 395 node->parent()->GetIndexOf(node) >= first_hidden) { | 381 node->parent()->GetIndexOf(node) >= first_hidden) { |
| 396 return; | 382 return; |
| 397 } | 383 } |
| 398 } | 384 } |
| 399 | 385 |
| 400 current_menu_.reset( | 386 current_menu_.reset( |
| 401 new BookmarkMenuController(browser_, profile_, page_navigator_, | 387 new BookmarkMenuController(browser_, browser_->profile(), page_navigator_, |
| 402 GTK_WINDOW(gtk_widget_get_toplevel(button)), | 388 GTK_WINDOW(gtk_widget_get_toplevel(button)), |
| 403 node, | 389 node, |
| 404 button == overflow_button_ ? | 390 button == overflow_button_ ? |
| 405 first_hidden : 0)); | 391 first_hidden : 0)); |
| 406 menu_bar_helper_.MenuStartedShowing(button, current_menu_->widget()); | 392 menu_bar_helper_.MenuStartedShowing(button, current_menu_->widget()); |
| 407 GdkEvent* event = gtk_get_current_event(); | 393 GdkEvent* event = gtk_get_current_event(); |
| 408 current_menu_->Popup(button, event->button.button, event->button.time); | 394 current_menu_->Popup(button, event->button.button, event->button.time); |
| 409 gdk_event_free(event); | 395 gdk_event_free(event); |
| 410 } | 396 } |
| 411 | 397 |
| (...skipping 700 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1112 nodes.push_back(node); | 1098 nodes.push_back(node); |
| 1113 parent = node->parent(); | 1099 parent = node->parent(); |
| 1114 } else { | 1100 } else { |
| 1115 parent = model_->bookmark_bar_node(); | 1101 parent = model_->bookmark_bar_node(); |
| 1116 nodes.push_back(parent); | 1102 nodes.push_back(parent); |
| 1117 } | 1103 } |
| 1118 | 1104 |
| 1119 GtkWindow* window = GTK_WINDOW(gtk_widget_get_toplevel(sender)); | 1105 GtkWindow* window = GTK_WINDOW(gtk_widget_get_toplevel(sender)); |
| 1120 current_context_menu_controller_.reset( | 1106 current_context_menu_controller_.reset( |
| 1121 new BookmarkContextMenuController( | 1107 new BookmarkContextMenuController( |
| 1122 window, this, profile_, page_navigator_, parent, nodes)); | 1108 window, this, browser_->profile(), page_navigator_, parent, nodes)); |
| 1123 current_context_menu_.reset( | 1109 current_context_menu_.reset( |
| 1124 new MenuGtk(NULL, current_context_menu_controller_->menu_model())); | 1110 new MenuGtk(NULL, current_context_menu_controller_->menu_model())); |
| 1125 current_context_menu_->PopupAsContext( | 1111 current_context_menu_->PopupAsContext( |
| 1126 gfx::Point(event->x_root, event->y_root), | 1112 gfx::Point(event->x_root, event->y_root), |
| 1127 event->time); | 1113 event->time); |
| 1128 } | 1114 } |
| 1129 | 1115 |
| 1130 gboolean BookmarkBarGtk::OnButtonPressed(GtkWidget* sender, | 1116 gboolean BookmarkBarGtk::OnButtonPressed(GtkWidget* sender, |
| 1131 GdkEventButton* event) { | 1117 GdkEventButton* event) { |
| 1132 last_pressed_coordinates_ = gfx::Point(event->x, event->y); | 1118 last_pressed_coordinates_ = gfx::Point(event->x, event->y); |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 1150 | 1136 |
| 1151 return FALSE; | 1137 return FALSE; |
| 1152 } | 1138 } |
| 1153 | 1139 |
| 1154 void BookmarkBarGtk::OnClicked(GtkWidget* sender) { | 1140 void BookmarkBarGtk::OnClicked(GtkWidget* sender) { |
| 1155 const BookmarkNode* node = GetNodeForToolButton(sender); | 1141 const BookmarkNode* node = GetNodeForToolButton(sender); |
| 1156 DCHECK(node); | 1142 DCHECK(node); |
| 1157 DCHECK(node->is_url()); | 1143 DCHECK(node->is_url()); |
| 1158 DCHECK(page_navigator_); | 1144 DCHECK(page_navigator_); |
| 1159 | 1145 |
| 1160 RecordAppLaunch(profile_, node->url()); | 1146 Profile* profile = browser_->profile(); |
| 1161 bookmark_utils::OpenAll(window_->GetNativeHandle(), | 1147 RecordAppLaunch(profile, node->url()); |
| 1162 profile_, page_navigator_, node, | 1148 bookmark_utils::OpenAll(window_->GetNativeHandle(), profile, page_navigator_, |
| 1163 gtk_util::DispositionForCurrentButtonPressEvent()); | 1149 node, gtk_util::DispositionForCurrentButtonPressEvent()); |
| 1164 | 1150 |
| 1165 UserMetrics::RecordAction(UserMetricsAction("ClickedBookmarkBarURLButton")); | 1151 UserMetrics::RecordAction(UserMetricsAction("ClickedBookmarkBarURLButton")); |
| 1166 } | 1152 } |
| 1167 | 1153 |
| 1168 void BookmarkBarGtk::OnButtonDragBegin(GtkWidget* button, | 1154 void BookmarkBarGtk::OnButtonDragBegin(GtkWidget* button, |
| 1169 GdkDragContext* drag_context) { | 1155 GdkDragContext* drag_context) { |
| 1170 // The parent tool item might be removed during the drag. Ref it so |button| | 1156 // The parent tool item might be removed during the drag. Ref it so |button| |
| 1171 // won't get destroyed. | 1157 // won't get destroyed. |
| 1172 g_object_ref(button->parent); | 1158 g_object_ref(button->parent); |
| 1173 | 1159 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1213 DCHECK(dragged_node_); | 1199 DCHECK(dragged_node_); |
| 1214 dragged_node_ = NULL; | 1200 dragged_node_ = NULL; |
| 1215 | 1201 |
| 1216 DCHECK(drag_icon_); | 1202 DCHECK(drag_icon_); |
| 1217 gtk_widget_destroy(drag_icon_); | 1203 gtk_widget_destroy(drag_icon_); |
| 1218 drag_icon_ = NULL; | 1204 drag_icon_ = NULL; |
| 1219 | 1205 |
| 1220 g_object_unref(button->parent); | 1206 g_object_unref(button->parent); |
| 1221 } | 1207 } |
| 1222 | 1208 |
| 1223 void BookmarkBarGtk::OnButtonDragGet(GtkWidget* widget, GdkDragContext* context, | 1209 void BookmarkBarGtk::OnButtonDragGet(GtkWidget* widget, |
| 1210 GdkDragContext* context, | |
| 1224 GtkSelectionData* selection_data, | 1211 GtkSelectionData* selection_data, |
| 1225 guint target_type, guint time) { | 1212 guint target_type, |
| 1213 guint time) { | |
| 1226 const BookmarkNode* node = bookmark_utils::BookmarkNodeForWidget(widget); | 1214 const BookmarkNode* node = bookmark_utils::BookmarkNodeForWidget(widget); |
| 1227 bookmark_utils::WriteBookmarkToSelection(node, selection_data, target_type, | 1215 bookmark_utils::WriteBookmarkToSelection(node, selection_data, target_type, |
| 1228 profile_); | 1216 browser_->profile()); |
| 1229 } | 1217 } |
| 1230 | 1218 |
| 1231 void BookmarkBarGtk::OnFolderClicked(GtkWidget* sender) { | 1219 void BookmarkBarGtk::OnFolderClicked(GtkWidget* sender) { |
| 1232 // Stop its throbbing, if any. | 1220 // Stop its throbbing, if any. |
| 1233 HoverControllerGtk* hover_controller = | 1221 HoverControllerGtk* hover_controller = |
| 1234 HoverControllerGtk::GetHoverControllerGtk(sender); | 1222 HoverControllerGtk::GetHoverControllerGtk(sender); |
| 1235 if (hover_controller) | 1223 if (hover_controller) |
| 1236 hover_controller->StartThrobbing(0); | 1224 hover_controller->StartThrobbing(0); |
| 1237 | 1225 |
| 1238 GdkEvent* event = gtk_get_current_event(); | 1226 GdkEvent* event = gtk_get_current_event(); |
| 1239 if (event->button.button == 1) { | 1227 if (event->button.button == 1) { |
| 1240 PopupForButton(sender); | 1228 PopupForButton(sender); |
| 1241 } else if (event->button.button == 2) { | 1229 } else if (event->button.button == 2) { |
| 1242 const BookmarkNode* node = GetNodeForToolButton(sender); | 1230 const BookmarkNode* node = GetNodeForToolButton(sender); |
| 1243 bookmark_utils::OpenAll(window_->GetNativeHandle(), | 1231 bookmark_utils::OpenAll(window_->GetNativeHandle(), browser_->profile(), |
| 1244 profile_, page_navigator_, | 1232 page_navigator_, node, NEW_BACKGROUND_TAB); |
| 1245 node, NEW_BACKGROUND_TAB); | |
| 1246 } | 1233 } |
| 1247 } | 1234 } |
| 1248 | 1235 |
| 1249 gboolean BookmarkBarGtk::OnToolbarDragMotion(GtkWidget* toolbar, | 1236 gboolean BookmarkBarGtk::OnToolbarDragMotion(GtkWidget* toolbar, |
| 1250 GdkDragContext* context, | 1237 GdkDragContext* context, |
| 1251 gint x, | 1238 gint x, |
| 1252 gint y, | 1239 gint y, |
| 1253 guint time) { | 1240 guint time) { |
| 1254 gint index = gtk_toolbar_get_drop_index(GTK_TOOLBAR(toolbar), x, y); | 1241 gint index = gtk_toolbar_get_drop_index(GTK_TOOLBAR(toolbar), x, y); |
| 1255 return ItemDraggedOverToolbar(context, index, time); | 1242 return ItemDraggedOverToolbar(context, index, time); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1297 dest_node = GetNodeForToolButton(widget); | 1284 dest_node = GetNodeForToolButton(widget); |
| 1298 index = dest_node->child_count(); | 1285 index = dest_node->child_count(); |
| 1299 } | 1286 } |
| 1300 } | 1287 } |
| 1301 | 1288 |
| 1302 switch (target_type) { | 1289 switch (target_type) { |
| 1303 case ui::CHROME_BOOKMARK_ITEM: { | 1290 case ui::CHROME_BOOKMARK_ITEM: { |
| 1304 std::vector<const BookmarkNode*> nodes = | 1291 std::vector<const BookmarkNode*> nodes = |
| 1305 bookmark_utils::GetNodesFromSelection(context, selection_data, | 1292 bookmark_utils::GetNodesFromSelection(context, selection_data, |
| 1306 target_type, | 1293 target_type, |
| 1307 profile_, | 1294 browser_->profile(), |
| 1308 &delete_selection_data, | 1295 &delete_selection_data, |
| 1309 &dnd_success); | 1296 &dnd_success); |
| 1310 DCHECK(!nodes.empty()); | 1297 DCHECK(!nodes.empty()); |
| 1311 for (std::vector<const BookmarkNode*>::iterator it = nodes.begin(); | 1298 for (std::vector<const BookmarkNode*>::iterator it = nodes.begin(); |
| 1312 it != nodes.end(); ++it) { | 1299 it != nodes.end(); ++it) { |
| 1313 model_->Move(*it, dest_node, index); | 1300 model_->Move(*it, dest_node, index); |
| 1314 index = dest_node->GetIndexOf(*it) + 1; | 1301 index = dest_node->GetIndexOf(*it) + 1; |
| 1315 } | 1302 } |
| 1316 break; | 1303 break; |
| 1317 } | 1304 } |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1471 void BookmarkBarGtk::OnEditBookmarksEnabledChanged() { | 1458 void BookmarkBarGtk::OnEditBookmarksEnabledChanged() { |
| 1472 GtkDestDefaults dest_defaults = | 1459 GtkDestDefaults dest_defaults = |
| 1473 *edit_bookmarks_enabled_ ? GTK_DEST_DEFAULT_ALL : | 1460 *edit_bookmarks_enabled_ ? GTK_DEST_DEFAULT_ALL : |
| 1474 GTK_DEST_DEFAULT_DROP; | 1461 GTK_DEST_DEFAULT_DROP; |
| 1475 gtk_drag_dest_set(overflow_button_, dest_defaults, NULL, 0, kDragAction); | 1462 gtk_drag_dest_set(overflow_button_, dest_defaults, NULL, 0, kDragAction); |
| 1476 gtk_drag_dest_set(other_bookmarks_button_, dest_defaults, | 1463 gtk_drag_dest_set(other_bookmarks_button_, dest_defaults, |
| 1477 NULL, 0, kDragAction); | 1464 NULL, 0, kDragAction); |
| 1478 ui::SetDestTargetList(overflow_button_, kDestTargetList); | 1465 ui::SetDestTargetList(overflow_button_, kDestTargetList); |
| 1479 ui::SetDestTargetList(other_bookmarks_button_, kDestTargetList); | 1466 ui::SetDestTargetList(other_bookmarks_button_, kDestTargetList); |
| 1480 } | 1467 } |
| OLD | NEW |