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 |