| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ui/aura/window.h" | 5 #include "ui/aura/window.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 RootWindow* root = root_window(); | 346 RootWindow* root = root_window(); |
| 347 root->MoveCursorTo(gfx::Point(10, 10)); | 347 root->MoveCursorTo(gfx::Point(10, 10)); |
| 348 EXPECT_TRUE(w_test_api.ContainsMouse()); | 348 EXPECT_TRUE(w_test_api.ContainsMouse()); |
| 349 root->MoveCursorTo(gfx::Point(9, 10)); | 349 root->MoveCursorTo(gfx::Point(9, 10)); |
| 350 EXPECT_FALSE(w_test_api.ContainsMouse()); | 350 EXPECT_FALSE(w_test_api.ContainsMouse()); |
| 351 } | 351 } |
| 352 | 352 |
| 353 // Test Window::ConvertPointToWindow() with transform to root_window. | 353 // Test Window::ConvertPointToWindow() with transform to root_window. |
| 354 TEST_F(WindowTest, MoveCursorToWithTransformRootWindow) { | 354 TEST_F(WindowTest, MoveCursorToWithTransformRootWindow) { |
| 355 RootWindow* root = root_window(); | 355 RootWindow* root = root_window(); |
| 356 ui::Transform transform; | 356 gfx::Transform transform; |
| 357 transform.ConcatScale(2, 5); | 357 transform.ConcatScale(2, 5); |
| 358 transform.ConcatRotate(90.0f); | 358 transform.ConcatRotate(90.0f); |
| 359 transform.ConcatTranslate(100, 100); | 359 transform.ConcatTranslate(100, 100); |
| 360 root->SetTransform(transform); | 360 root->SetTransform(transform); |
| 361 root->MoveCursorTo(gfx::Point(10, 10)); | 361 root->MoveCursorTo(gfx::Point(10, 10)); |
| 362 #if !defined(OS_WIN) | 362 #if !defined(OS_WIN) |
| 363 // TODO(yoshiki): fix this to build on Windows. See crbug.com/133413.OD | 363 // TODO(yoshiki): fix this to build on Windows. See crbug.com/133413.OD |
| 364 EXPECT_EQ("50,120", root->QueryMouseLocationForTest().ToString()); | 364 EXPECT_EQ("50,120", root->QueryMouseLocationForTest().ToString()); |
| 365 #endif | 365 #endif |
| 366 EXPECT_EQ("10,10", gfx::Screen::GetCursorScreenPoint().ToString()); | 366 EXPECT_EQ("10,10", gfx::Screen::GetCursorScreenPoint().ToString()); |
| 367 } | 367 } |
| 368 | 368 |
| 369 // Tests Window::ConvertPointToWindow() with transform to non-root windows. | 369 // Tests Window::ConvertPointToWindow() with transform to non-root windows. |
| 370 TEST_F(WindowTest, MoveCursorToWithTransformWindow) { | 370 TEST_F(WindowTest, MoveCursorToWithTransformWindow) { |
| 371 scoped_ptr<Window> w1( | 371 scoped_ptr<Window> w1( |
| 372 CreateTestWindow(SK_ColorWHITE, 1, gfx::Rect(10, 10, 500, 500), NULL)); | 372 CreateTestWindow(SK_ColorWHITE, 1, gfx::Rect(10, 10, 500, 500), NULL)); |
| 373 | 373 |
| 374 ui::Transform transform1; | 374 gfx::Transform transform1; |
| 375 transform1.ConcatScale(2, 2); | 375 transform1.ConcatScale(2, 2); |
| 376 w1->SetTransform(transform1); | 376 w1->SetTransform(transform1); |
| 377 w1->MoveCursorTo(gfx::Point(10, 10)); | 377 w1->MoveCursorTo(gfx::Point(10, 10)); |
| 378 EXPECT_EQ("30,30", gfx::Screen::GetCursorScreenPoint().ToString()); | 378 EXPECT_EQ("30,30", gfx::Screen::GetCursorScreenPoint().ToString()); |
| 379 | 379 |
| 380 ui::Transform transform2; | 380 gfx::Transform transform2; |
| 381 transform2.ConcatTranslate(-10, 20); | 381 transform2.ConcatTranslate(-10, 20); |
| 382 w1->SetTransform(transform2); | 382 w1->SetTransform(transform2); |
| 383 w1->MoveCursorTo(gfx::Point(10, 10)); | 383 w1->MoveCursorTo(gfx::Point(10, 10)); |
| 384 EXPECT_EQ("10,40", gfx::Screen::GetCursorScreenPoint().ToString()); | 384 EXPECT_EQ("10,40", gfx::Screen::GetCursorScreenPoint().ToString()); |
| 385 | 385 |
| 386 ui::Transform transform3; | 386 gfx::Transform transform3; |
| 387 transform3.ConcatRotate(90.0f); | 387 transform3.ConcatRotate(90.0f); |
| 388 w1->SetTransform(transform3); | 388 w1->SetTransform(transform3); |
| 389 w1->MoveCursorTo(gfx::Point(5, 5)); | 389 w1->MoveCursorTo(gfx::Point(5, 5)); |
| 390 EXPECT_EQ("5,15", gfx::Screen::GetCursorScreenPoint().ToString()); | 390 EXPECT_EQ("5,15", gfx::Screen::GetCursorScreenPoint().ToString()); |
| 391 | 391 |
| 392 ui::Transform transform4; | 392 gfx::Transform transform4; |
| 393 transform4.ConcatScale(2, 5); | 393 transform4.ConcatScale(2, 5); |
| 394 transform4.ConcatRotate(90.0f); | 394 transform4.ConcatRotate(90.0f); |
| 395 transform4.ConcatTranslate(100, 100); | 395 transform4.ConcatTranslate(100, 100); |
| 396 w1->SetTransform(transform4); | 396 w1->SetTransform(transform4); |
| 397 w1->MoveCursorTo(gfx::Point(10, 10)); | 397 w1->MoveCursorTo(gfx::Point(10, 10)); |
| 398 EXPECT_EQ("60,130", gfx::Screen::GetCursorScreenPoint().ToString()); | 398 EXPECT_EQ("60,130", gfx::Screen::GetCursorScreenPoint().ToString()); |
| 399 } | 399 } |
| 400 | 400 |
| 401 // Test Window::ConvertPointToWindow() with complex transforms to both root and | 401 // Test Window::ConvertPointToWindow() with complex transforms to both root and |
| 402 // non-root windows. | 402 // non-root windows. |
| 403 TEST_F(WindowTest, MoveCursorToWithComplexTransform) { | 403 TEST_F(WindowTest, MoveCursorToWithComplexTransform) { |
| 404 scoped_ptr<Window> w1( | 404 scoped_ptr<Window> w1( |
| 405 CreateTestWindow(SK_ColorWHITE, 1, gfx::Rect(10, 10, 500, 500), NULL)); | 405 CreateTestWindow(SK_ColorWHITE, 1, gfx::Rect(10, 10, 500, 500), NULL)); |
| 406 scoped_ptr<Window> w11( | 406 scoped_ptr<Window> w11( |
| 407 CreateTestWindow(SK_ColorGREEN, 11, gfx::Rect(5, 5, 100, 100), w1.get())); | 407 CreateTestWindow(SK_ColorGREEN, 11, gfx::Rect(5, 5, 100, 100), w1.get())); |
| 408 scoped_ptr<Window> w111( | 408 scoped_ptr<Window> w111( |
| 409 CreateTestWindow(SK_ColorCYAN, 111, gfx::Rect(5, 5, 75, 75), w11.get())); | 409 CreateTestWindow(SK_ColorCYAN, 111, gfx::Rect(5, 5, 75, 75), w11.get())); |
| 410 scoped_ptr<Window> w1111( | 410 scoped_ptr<Window> w1111( |
| 411 CreateTestWindow(SK_ColorRED, 1111, gfx::Rect(5, 5, 50, 50), w111.get())); | 411 CreateTestWindow(SK_ColorRED, 1111, gfx::Rect(5, 5, 50, 50), w111.get())); |
| 412 | 412 |
| 413 RootWindow* root = root_window(); | 413 RootWindow* root = root_window(); |
| 414 ui::Transform transform; | 414 gfx::Transform transform; |
| 415 transform.ConcatScale(0.3f, 0.5f); | 415 transform.ConcatScale(0.3f, 0.5f); |
| 416 transform.ConcatRotate(10.0f); | 416 transform.ConcatRotate(10.0f); |
| 417 transform.ConcatTranslate(10, 20); | 417 transform.ConcatTranslate(10, 20); |
| 418 | 418 |
| 419 root->SetTransform(transform); | 419 root->SetTransform(transform); |
| 420 w1->SetTransform(transform); | 420 w1->SetTransform(transform); |
| 421 w11->SetTransform(transform); | 421 w11->SetTransform(transform); |
| 422 w111->SetTransform(transform); | 422 w111->SetTransform(transform); |
| 423 w1111->SetTransform(transform); | 423 w1111->SetTransform(transform); |
| 424 | 424 |
| (...skipping 894 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1319 EXPECT_EQ(w11.get(), w1->GetEventHandlerForPoint(gfx::Point(160, 160))); | 1319 EXPECT_EQ(w11.get(), w1->GetEventHandlerForPoint(gfx::Point(160, 160))); |
| 1320 } | 1320 } |
| 1321 | 1321 |
| 1322 // Tests transformation on the root window. | 1322 // Tests transformation on the root window. |
| 1323 TEST_F(WindowTest, Transform) { | 1323 TEST_F(WindowTest, Transform) { |
| 1324 gfx::Size size = root_window()->GetHostSize(); | 1324 gfx::Size size = root_window()->GetHostSize(); |
| 1325 EXPECT_EQ(gfx::Rect(size), | 1325 EXPECT_EQ(gfx::Rect(size), |
| 1326 gfx::Screen::GetDisplayNearestPoint(gfx::Point()).bounds()); | 1326 gfx::Screen::GetDisplayNearestPoint(gfx::Point()).bounds()); |
| 1327 | 1327 |
| 1328 // Rotate it clock-wise 90 degrees. | 1328 // Rotate it clock-wise 90 degrees. |
| 1329 ui::Transform transform; | 1329 gfx::Transform transform; |
| 1330 transform.SetRotate(90.0f); | 1330 transform.SetRotate(90.0f); |
| 1331 transform.ConcatTranslate(size.height(), 0); | 1331 transform.ConcatTranslate(size.height(), 0); |
| 1332 root_window()->SetTransform(transform); | 1332 root_window()->SetTransform(transform); |
| 1333 | 1333 |
| 1334 // The size should be the transformed size. | 1334 // The size should be the transformed size. |
| 1335 gfx::Size transformed_size(size.height(), size.width()); | 1335 gfx::Size transformed_size(size.height(), size.width()); |
| 1336 EXPECT_EQ(transformed_size.ToString(), | 1336 EXPECT_EQ(transformed_size.ToString(), |
| 1337 root_window()->bounds().size().ToString()); | 1337 root_window()->bounds().size().ToString()); |
| 1338 EXPECT_EQ( | 1338 EXPECT_EQ( |
| 1339 gfx::Rect(transformed_size).ToString(), | 1339 gfx::Rect(transformed_size).ToString(), |
| 1340 gfx::Screen::GetDisplayNearestPoint(gfx::Point()).bounds().ToString()); | 1340 gfx::Screen::GetDisplayNearestPoint(gfx::Point()).bounds().ToString()); |
| 1341 | 1341 |
| 1342 // Host size shouldn't change. | 1342 // Host size shouldn't change. |
| 1343 EXPECT_EQ(size.ToString(), | 1343 EXPECT_EQ(size.ToString(), |
| 1344 root_window()->GetHostSize().ToString()); | 1344 root_window()->GetHostSize().ToString()); |
| 1345 } | 1345 } |
| 1346 | 1346 |
| 1347 TEST_F(WindowTest, TransformGesture) { | 1347 TEST_F(WindowTest, TransformGesture) { |
| 1348 gfx::Size size = root_window()->GetHostSize(); | 1348 gfx::Size size = root_window()->GetHostSize(); |
| 1349 | 1349 |
| 1350 scoped_ptr<GestureTrackPositionDelegate> delegate( | 1350 scoped_ptr<GestureTrackPositionDelegate> delegate( |
| 1351 new GestureTrackPositionDelegate); | 1351 new GestureTrackPositionDelegate); |
| 1352 scoped_ptr<Window> window(CreateTestWindowWithDelegate(delegate.get(), -1234, | 1352 scoped_ptr<Window> window(CreateTestWindowWithDelegate(delegate.get(), -1234, |
| 1353 gfx::Rect(0, 0, 20, 20), NULL)); | 1353 gfx::Rect(0, 0, 20, 20), NULL)); |
| 1354 | 1354 |
| 1355 // Rotate the root-window clock-wise 90 degrees. | 1355 // Rotate the root-window clock-wise 90 degrees. |
| 1356 ui::Transform transform; | 1356 gfx::Transform transform; |
| 1357 transform.SetRotate(90.0f); | 1357 transform.SetRotate(90.0f); |
| 1358 transform.ConcatTranslate(size.height(), 0); | 1358 transform.ConcatTranslate(size.height(), 0); |
| 1359 root_window()->SetTransform(transform); | 1359 root_window()->SetTransform(transform); |
| 1360 | 1360 |
| 1361 ui::TouchEvent press( | 1361 ui::TouchEvent press( |
| 1362 ui::ET_TOUCH_PRESSED, gfx::Point(size.height() - 10, 10), 0, getTime()); | 1362 ui::ET_TOUCH_PRESSED, gfx::Point(size.height() - 10, 10), 0, getTime()); |
| 1363 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press); | 1363 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press); |
| 1364 EXPECT_EQ(gfx::Point(10, 10).ToString(), delegate->position().ToString()); | 1364 EXPECT_EQ(gfx::Point(10, 10).ToString(), delegate->position().ToString()); |
| 1365 } | 1365 } |
| 1366 | 1366 |
| (...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1977 RunAllPendingInMessageLoop(); | 1977 RunAllPendingInMessageLoop(); |
| 1978 EXPECT_EQ("1 1 0", d1.GetMouseMotionCountsAndReset()); | 1978 EXPECT_EQ("1 1 0", d1.GetMouseMotionCountsAndReset()); |
| 1979 EXPECT_EQ("0 0 0", d11.GetMouseMotionCountsAndReset()); | 1979 EXPECT_EQ("0 0 0", d11.GetMouseMotionCountsAndReset()); |
| 1980 | 1980 |
| 1981 w11->Show(); | 1981 w11->Show(); |
| 1982 RunAllPendingInMessageLoop(); | 1982 RunAllPendingInMessageLoop(); |
| 1983 EXPECT_EQ("0 0 1", d1.GetMouseMotionCountsAndReset()); | 1983 EXPECT_EQ("0 0 1", d1.GetMouseMotionCountsAndReset()); |
| 1984 EXPECT_EQ("1 1 0", d11.GetMouseMotionCountsAndReset()); | 1984 EXPECT_EQ("1 1 0", d11.GetMouseMotionCountsAndReset()); |
| 1985 | 1985 |
| 1986 // Transform: move d11 by 100 100. | 1986 // Transform: move d11 by 100 100. |
| 1987 ui::Transform transform; | 1987 gfx::Transform transform; |
| 1988 transform.ConcatTranslate(100, 100); | 1988 transform.ConcatTranslate(100, 100); |
| 1989 w11->SetTransform(transform); | 1989 w11->SetTransform(transform); |
| 1990 RunAllPendingInMessageLoop(); | 1990 RunAllPendingInMessageLoop(); |
| 1991 EXPECT_EQ("1 1 0", d1.GetMouseMotionCountsAndReset()); | 1991 EXPECT_EQ("1 1 0", d1.GetMouseMotionCountsAndReset()); |
| 1992 EXPECT_EQ("0 0 1", d11.GetMouseMotionCountsAndReset()); | 1992 EXPECT_EQ("0 0 1", d11.GetMouseMotionCountsAndReset()); |
| 1993 | 1993 |
| 1994 w11->SetTransform(ui::Transform()); | 1994 w11->SetTransform(gfx::Transform()); |
| 1995 RunAllPendingInMessageLoop(); | 1995 RunAllPendingInMessageLoop(); |
| 1996 EXPECT_EQ("0 0 1", d1.GetMouseMotionCountsAndReset()); | 1996 EXPECT_EQ("0 0 1", d1.GetMouseMotionCountsAndReset()); |
| 1997 EXPECT_EQ("1 1 0", d11.GetMouseMotionCountsAndReset()); | 1997 EXPECT_EQ("1 1 0", d11.GetMouseMotionCountsAndReset()); |
| 1998 | 1998 |
| 1999 // Closing a window. | 1999 // Closing a window. |
| 2000 w11.reset(); | 2000 w11.reset(); |
| 2001 RunAllPendingInMessageLoop(); | 2001 RunAllPendingInMessageLoop(); |
| 2002 EXPECT_EQ("1 1 0", d1.GetMouseMotionCountsAndReset()); | 2002 EXPECT_EQ("1 1 0", d1.GetMouseMotionCountsAndReset()); |
| 2003 } | 2003 } |
| 2004 #endif | 2004 #endif |
| (...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2538 // Move |w2| to be a child of |w1|. | 2538 // Move |w2| to be a child of |w1|. |
| 2539 w1->AddChild(w2.get()); | 2539 w1->AddChild(w2.get()); |
| 2540 // Sine we moved in the same root, observer shouldn't be notified. | 2540 // Sine we moved in the same root, observer shouldn't be notified. |
| 2541 EXPECT_EQ("0 0", observer.CountStringAndReset()); | 2541 EXPECT_EQ("0 0", observer.CountStringAndReset()); |
| 2542 // |w2| should still have focus after moving. | 2542 // |w2| should still have focus after moving. |
| 2543 EXPECT_TRUE(w2->HasFocus()); | 2543 EXPECT_TRUE(w2->HasFocus()); |
| 2544 } | 2544 } |
| 2545 | 2545 |
| 2546 } // namespace test | 2546 } // namespace test |
| 2547 } // namespace aura | 2547 } // namespace aura |
| OLD | NEW |