| 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/views/bookmark_menu_button.h" | 5 #include "chrome/browser/views/bookmark_menu_button.h" |
| 6 | 6 |
| 7 #include "build/build_config.h" | 7 #include "build/build_config.h" |
| 8 | 8 |
| 9 #if defined(OS_GTK) | 9 #if defined(OS_GTK) |
| 10 #include <gtk/gtk.h> | 10 #include <gtk/gtk.h> |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 gfx::NativeWindow hwnd, | 126 gfx::NativeWindow hwnd, |
| 127 bool for_drop) { | 127 bool for_drop) { |
| 128 Profile* profile = browser_->profile(); | 128 Profile* profile = browser_->profile(); |
| 129 BookmarkMenuController* menu = new BookmarkMenuController( | 129 BookmarkMenuController* menu = new BookmarkMenuController( |
| 130 browser_, profile, browser_->GetSelectedTabContents(), hwnd, | 130 browser_, profile, browser_->GetSelectedTabContents(), hwnd, |
| 131 GetBookmarkModel()->GetBookmarkBarNode(), 0, true); | 131 GetBookmarkModel()->GetBookmarkBarNode(), 0, true); |
| 132 | 132 |
| 133 views::MenuItemView::AnchorPosition anchor = views::MenuItemView::TOPRIGHT; | 133 views::MenuItemView::AnchorPosition anchor = views::MenuItemView::TOPRIGHT; |
| 134 if (UILayoutIsRightToLeft()) | 134 if (UILayoutIsRightToLeft()) |
| 135 anchor = views::MenuItemView::TOPLEFT; | 135 anchor = views::MenuItemView::TOPLEFT; |
| 136 gfx::Point button_origin; | |
| 137 ConvertPointToScreen(this, &button_origin); | |
| 138 gfx::Rect menu_bounds(button_origin.x(), button_origin.y(), width(), | |
| 139 height()); | |
| 140 if (for_drop) { | 136 if (for_drop) { |
| 141 bookmark_drop_menu_ = menu; | 137 bookmark_drop_menu_ = menu; |
| 142 bookmark_drop_menu_->set_observer(this); | 138 bookmark_drop_menu_->set_observer(this); |
| 143 } | 139 } |
| 144 menu->RunMenuAt(menu_bounds, views::MenuItemView::TOPRIGHT, for_drop); | 140 menu->RunMenuAt(this, views::MenuItemView::TOPRIGHT, for_drop); |
| 145 } | 141 } |
| 146 | 142 |
| 147 BookmarkModel* BookmarkMenuButton::GetBookmarkModel() { | 143 BookmarkModel* BookmarkMenuButton::GetBookmarkModel() { |
| 148 return browser_->profile()->GetBookmarkModel(); | 144 return browser_->profile()->GetBookmarkModel(); |
| 149 } | 145 } |
| 150 | 146 |
| 151 void BookmarkMenuButton::StartShowFolderDropMenuTimer() { | 147 void BookmarkMenuButton::StartShowFolderDropMenuTimer() { |
| 152 if (show_drop_menu_timer_.IsRunning()) | 148 if (show_drop_menu_timer_.IsRunning()) |
| 153 return; | 149 return; |
| 154 | 150 |
| 155 #if defined(OS_WIN) | 151 #if defined(OS_WIN) |
| 156 static DWORD delay = 0; | 152 static DWORD delay = 0; |
| 157 if (!delay && !SystemParametersInfo(SPI_GETMENUSHOWDELAY, 0, &delay, 0)) | 153 if (!delay && !SystemParametersInfo(SPI_GETMENUSHOWDELAY, 0, &delay, 0)) |
| 158 delay = 400; | 154 delay = 400; |
| 159 #else | 155 #else |
| 160 static int delay = 400; | 156 static int delay = 400; |
| 161 #endif | 157 #endif |
| 162 show_drop_menu_timer_.Start(base::TimeDelta::FromMilliseconds(delay), | 158 show_drop_menu_timer_.Start(base::TimeDelta::FromMilliseconds(delay), |
| 163 this, &BookmarkMenuButton::ShowDropMenu); | 159 this, &BookmarkMenuButton::ShowDropMenu); |
| 164 } | 160 } |
| 165 | 161 |
| 166 void BookmarkMenuButton::StopShowFolderDropMenuTimer() { | 162 void BookmarkMenuButton::StopShowFolderDropMenuTimer() { |
| 167 show_drop_menu_timer_.Stop(); | 163 show_drop_menu_timer_.Stop(); |
| 168 } | 164 } |
| 169 | 165 |
| 170 void BookmarkMenuButton::ShowDropMenu() { | 166 void BookmarkMenuButton::ShowDropMenu() { |
| 171 RunMenu(NULL, gfx::Point(), GetWindow()->GetNativeWindow(), true); | 167 RunMenu(NULL, gfx::Point(), GetWindow()->GetNativeWindow(), true); |
| 172 } | 168 } |
| OLD | NEW |