Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(609)

Unified Diff: chrome/browser/ui/panels/panel_browser_view.cc

Issue 7605009: Implement drag and drop testing in a platform independent way. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed a build error on mac only. Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/panels/panel_browser_view.cc
diff --git a/chrome/browser/ui/panels/panel_browser_view.cc b/chrome/browser/ui/panels/panel_browser_view.cc
index 748a4897c69915fe2417fe32322c4a6d91cc37f4..e8753e194e981294c66c62ef4f842666348afc5e 100644
--- a/chrome/browser/ui/panels/panel_browser_view.cc
+++ b/chrome/browser/ui/panels/panel_browser_view.cc
@@ -309,29 +309,23 @@ void PanelBrowserView::DestroyPanelBrowser() {
DestroyBrowser();
}
-NativePanelTesting* PanelBrowserView::GetNativePanelTesting() {
- return this;
-}
-
PanelBrowserFrameView* PanelBrowserView::GetFrameView() const {
return static_cast<PanelBrowserFrameView*>(frame()->GetFrameView());
}
-bool PanelBrowserView::OnTitleBarMousePressed(const views::MouseEvent& event) {
- if (!event.IsOnlyLeftMouseButton())
- return false;
+bool PanelBrowserView::OnTitleBarMousePressed(const gfx::Point& location) {
mouse_pressed_ = true;
- mouse_pressed_point_ = event.location();
+ mouse_pressed_point_ = location;
mouse_dragging_ = false;
return true;
}
-bool PanelBrowserView::OnTitleBarMouseDragged(const views::MouseEvent& event) {
+bool PanelBrowserView::OnTitleBarMouseDragged(const gfx::Point& location) {
if (!mouse_pressed_)
return false;
// We do not allow dragging vertically.
- int delta_x = event.location().x() - mouse_pressed_point_.x();
+ int delta_x = location.x() - mouse_pressed_point_.x();
if (!mouse_dragging_ && ExceededDragThreshold(delta_x, 0)) {
panel_->manager()->StartDragging(panel_.get());
mouse_dragging_ = true;
@@ -341,7 +335,7 @@ bool PanelBrowserView::OnTitleBarMouseDragged(const views::MouseEvent& event) {
return true;
}
-bool PanelBrowserView::OnTitleBarMouseReleased(const views::MouseEvent& event) {
+bool PanelBrowserView::OnTitleBarMouseReleased() {
if (mouse_dragging_)
return EndDragging(false);
@@ -377,3 +371,53 @@ bool PanelBrowserView::EndDragging(bool cancelled) {
panel_->manager()->EndDragging(cancelled);
return true;
}
+
+// NativePanelTesting implementation.
+class NativePanelTestingWin : public NativePanelTesting {
+ public:
+ explicit NativePanelTestingWin(PanelBrowserView* panel_browser_view);
+
+ private:
+ virtual void PressLeftMouseButtonTitlebar(
+ const gfx::Point& point) OVERRIDE;
+ virtual void ReleaseMouseButtonTitlebar() OVERRIDE;
+ virtual void DragTitlebar(int delta_x, int delta_y) OVERRIDE;
+ virtual void CancelDragTitlebar() OVERRIDE;
+ virtual void FinishDragTitlebar() OVERRIDE;
+
+ PanelBrowserView* panel_browser_view_;
+};
+
+// static
+NativePanelTesting* NativePanelTesting::Create(NativePanel* native_panel) {
+ return new NativePanelTestingWin(static_cast<PanelBrowserView*>(
+ native_panel));
+}
+
+NativePanelTestingWin::NativePanelTestingWin(
+ PanelBrowserView* panel_browser_view) :
+ panel_browser_view_(panel_browser_view) {
+}
+
+void NativePanelTestingWin::PressLeftMouseButtonTitlebar(
+ const gfx::Point& point) {
+ panel_browser_view_->OnTitleBarMousePressed(point);
+}
+
+void NativePanelTestingWin::ReleaseMouseButtonTitlebar() {
+ panel_browser_view_->OnTitleBarMouseReleased();
+}
+
+void NativePanelTestingWin::DragTitlebar(int delta_x, int delta_y) {
+ gfx::Rect current_bounds = panel_browser_view_->panel()->GetRestoredBounds();
+ panel_browser_view_->OnTitleBarMouseDragged(gfx::Point(
+ current_bounds.x() + delta_x, current_bounds.y() + delta_y));
+}
+
+void NativePanelTestingWin::CancelDragTitlebar() {
+ panel_browser_view_->OnTitleBarMouseCaptureLost();
+}
+
+void NativePanelTestingWin::FinishDragTitlebar() {
+ panel_browser_view_->OnTitleBarMouseReleased();
+}
« no previous file with comments | « chrome/browser/ui/panels/panel_browser_view.h ('k') | chrome/browser/ui/panels/panel_browser_view_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698