diff options
author | gene@chromium.org <gene@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-10 19:32:22 +0000 |
---|---|---|
committer | gene@chromium.org <gene@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-10 19:32:22 +0000 |
commit | 20db74f3cdfd2e52880ab4dad0f2104a4a2e7cc4 (patch) | |
tree | 237f2dcd32cd6e9c74cd326a147139702470f6c1 | |
parent | f5bf5ba29880002b7240bed7bba73f966295bf72 (diff) | |
download | chromium_src-20db74f3cdfd2e52880ab4dad0f2104a4a2e7cc4.zip chromium_src-20db74f3cdfd2e52880ab4dad0f2104a4a2e7cc4.tar.gz chromium_src-20db74f3cdfd2e52880ab4dad0f2104a4a2e7cc4.tar.bz2 |
Revert 263043 "Remove obsolete scale related APIs for cursor"
> Remove obsolete scale related APIs for cursor
> This has been replaced with SetDisplay a while ago.
>
> BUG=None
>
> Review URL: https://codereview.chromium.org/233053003
TBR=oshima@chromium.org
Review URL: https://codereview.chromium.org/233693002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263048 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ash/test/cursor_manager_test_api.cc | 4 | ||||
-rw-r--r-- | ash/test/cursor_manager_test_api.h | 1 | ||||
-rw-r--r-- | ash/wm/ash_native_cursor_manager.cc | 10 | ||||
-rw-r--r-- | ash/wm/ash_native_cursor_manager.h | 3 | ||||
-rw-r--r-- | ash/wm/ash_native_cursor_manager_unittest.cc | 23 | ||||
-rw-r--r-- | ui/aura/client/cursor_client.h | 6 | ||||
-rw-r--r-- | ui/aura/test/test_cursor_client.cc | 7 | ||||
-rw-r--r-- | ui/aura/test/test_cursor_client.h | 2 | ||||
-rw-r--r-- | ui/views/widget/desktop_aura/desktop_native_cursor_manager.cc | 6 | ||||
-rw-r--r-- | ui/views/widget/desktop_aura/desktop_native_cursor_manager.h | 3 | ||||
-rw-r--r-- | ui/wm/core/cursor_manager.cc | 21 | ||||
-rw-r--r-- | ui/wm/core/cursor_manager.h | 3 | ||||
-rw-r--r-- | ui/wm/core/native_cursor_manager.h | 7 | ||||
-rw-r--r-- | ui/wm/core/native_cursor_manager_delegate.h | 1 |
14 files changed, 96 insertions, 1 deletions
diff --git a/ash/test/cursor_manager_test_api.cc b/ash/test/cursor_manager_test_api.cc index 22aa261..0b7711b9 100644 --- a/ash/test/cursor_manager_test_api.cc +++ b/ash/test/cursor_manager_test_api.cc @@ -23,6 +23,10 @@ CursorManagerTestApi::~CursorManagerTestApi() { } // TODO(tdanderson): CursorManagerTestApi may no longer be needed. +float CursorManagerTestApi::GetCurrentScale() const { + return cursor_manager_->GetScale(); +} + ui::CursorSetType CursorManagerTestApi::GetCurrentCursorSet() const { return cursor_manager_->GetCursorSet(); } diff --git a/ash/test/cursor_manager_test_api.h b/ash/test/cursor_manager_test_api.h index 1b9c6b8..d368216 100644 --- a/ash/test/cursor_manager_test_api.h +++ b/ash/test/cursor_manager_test_api.h @@ -26,6 +26,7 @@ class CursorManagerTestApi { explicit CursorManagerTestApi(::wm::CursorManager* cursor_manager); ~CursorManagerTestApi(); + float GetCurrentScale() const; ui::CursorSetType GetCurrentCursorSet() const; gfx::NativeCursor GetCurrentCursor() const; gfx::Display GetDisplay() const; diff --git a/ash/wm/ash_native_cursor_manager.cc b/ash/wm/ash_native_cursor_manager.cc index 98078ac..d9f4b6a 100644 --- a/ash/wm/ash_native_cursor_manager.cc +++ b/ash/wm/ash_native_cursor_manager.cc @@ -120,6 +120,16 @@ void AshNativeCursorManager::SetCursorSet( #endif } +void AshNativeCursorManager::SetScale( + float scale, + ::wm::NativeCursorManagerDelegate* delegate) { + image_cursors_->SetScale(scale); + delegate->CommitScale(scale); + + // Sets the cursor to reflect the scale change immediately. + SetCursor(delegate->GetCursor(), delegate); +} + void AshNativeCursorManager::SetVisibility( bool visible, ::wm::NativeCursorManagerDelegate* delegate) { diff --git a/ash/wm/ash_native_cursor_manager.h b/ash/wm/ash_native_cursor_manager.h index 80ecc8e..7124bdc 100644 --- a/ash/wm/ash_native_cursor_manager.h +++ b/ash/wm/ash_native_cursor_manager.h @@ -52,6 +52,9 @@ class ASH_EXPORT AshNativeCursorManager virtual void SetVisibility( bool visible, ::wm::NativeCursorManagerDelegate* delegate) OVERRIDE; + virtual void SetScale( + float scale, + ::wm::NativeCursorManagerDelegate* delegate) OVERRIDE; virtual void SetCursorSet( ui::CursorSetType cursor_set, ::wm::NativeCursorManagerDelegate* delegate) OVERRIDE; diff --git a/ash/wm/ash_native_cursor_manager_unittest.cc b/ash/wm/ash_native_cursor_manager_unittest.cc index 812601f..141e8a8 100644 --- a/ash/wm/ash_native_cursor_manager_unittest.cc +++ b/ash/wm/ash_native_cursor_manager_unittest.cc @@ -62,7 +62,9 @@ TEST_F(AshNativeCursorManagerTest, LockCursor) { EXPECT_EQ(ui::kCursorCopy, test_api.GetCurrentCursor().native_type()); display.set_device_scale_factor(2.0f); display.set_rotation(gfx::Display::ROTATE_90); + cursor_manager->SetScale(2.5f); cursor_manager->SetDisplay(display); + EXPECT_EQ(2.5f, test_api.GetCurrentScale()); EXPECT_EQ(2.0f, test_api.GetDisplay().device_scale_factor()); EXPECT_EQ(ui::CURSOR_SET_NORMAL, test_api.GetCurrentCursorSet()); EXPECT_EQ(gfx::Display::ROTATE_90, test_api.GetDisplay().rotation()); @@ -80,6 +82,13 @@ TEST_F(AshNativeCursorManagerTest, LockCursor) { cursor_manager->SetCursorSet(ui::CURSOR_SET_NORMAL); EXPECT_EQ(ui::CURSOR_SET_NORMAL, test_api.GetCurrentCursorSet()); + // Cusror scale does change even while cursor is locked. + EXPECT_EQ(2.5f, test_api.GetCurrentScale()); + cursor_manager->SetScale(1.f); + EXPECT_EQ(1.f, test_api.GetCurrentScale()); + cursor_manager->SetScale(1.5f); + EXPECT_EQ(1.5f, test_api.GetCurrentScale()); + // Cursor type does not change while cursor is locked. cursor_manager->SetCursor(ui::kCursorPointer); EXPECT_EQ(ui::kCursorCopy, test_api.GetCurrentCursor().native_type()); @@ -95,6 +104,7 @@ TEST_F(AshNativeCursorManagerTest, LockCursor) { EXPECT_FALSE(cursor_manager->IsCursorLocked()); // Cursor type changes to the one specified while cursor is locked. + EXPECT_EQ(1.5f, test_api.GetCurrentScale()); EXPECT_EQ(ui::kCursorPointer, test_api.GetCurrentCursor().native_type()); EXPECT_EQ(1.0f, test_api.GetDisplay().device_scale_factor()); EXPECT_TRUE(test_api.GetCurrentCursor().platform()); @@ -130,6 +140,19 @@ TEST_F(AshNativeCursorManagerTest, SetCursorSet) { EXPECT_EQ(ui::CURSOR_SET_NORMAL, test_api.GetCurrentCursorSet()); } +TEST_F(AshNativeCursorManagerTest, SetScale) { + ::wm::CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager(); + CursorManagerTestApi test_api(cursor_manager); + + EXPECT_EQ(1.f, test_api.GetCurrentScale()); + + cursor_manager->SetScale(2.5f); + EXPECT_EQ(2.5f, test_api.GetCurrentScale()); + + cursor_manager->SetScale(1.f); + EXPECT_EQ(1.f, test_api.GetCurrentScale()); +} + TEST_F(AshNativeCursorManagerTest, SetDeviceScaleFactorAndRotation) { ::wm::CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager(); CursorManagerTestApi test_api(cursor_manager); diff --git a/ui/aura/client/cursor_client.h b/ui/aura/client/cursor_client.h index fc48e03..8f2872e 100644 --- a/ui/aura/client/cursor_client.h +++ b/ui/aura/client/cursor_client.h @@ -39,6 +39,12 @@ class AURA_EXPORT CursorClient { // invisible. virtual void HideCursor() = 0; + // Sets the scale of the mouse cursor icon. + virtual void SetScale(float scale) = 0; + + // Gets the current scale of the mouse cursor icon. + virtual float GetScale() const = 0; + // Sets the type of the mouse cursor icon. virtual void SetCursorSet(ui::CursorSetType cursor_set) = 0; diff --git a/ui/aura/test/test_cursor_client.cc b/ui/aura/test/test_cursor_client.cc index 21f77cc..5662555 100644 --- a/ui/aura/test/test_cursor_client.cc +++ b/ui/aura/test/test_cursor_client.cc @@ -49,6 +49,13 @@ ui::CursorSetType TestCursorClient::GetCursorSet() const { return ui::CURSOR_SET_NORMAL; } +void TestCursorClient::SetScale(float scale) { +} + +float TestCursorClient::GetScale() const { + return 1.f; +} + bool TestCursorClient::IsCursorVisible() const { return visible_; } diff --git a/ui/aura/test/test_cursor_client.h b/ui/aura/test/test_cursor_client.h index 089827d..10452f1 100644 --- a/ui/aura/test/test_cursor_client.h +++ b/ui/aura/test/test_cursor_client.h @@ -33,6 +33,8 @@ class TestCursorClient : public aura::client::CursorClient { virtual void HideCursor() OVERRIDE; virtual void SetCursorSet(ui::CursorSetType cursor_set) OVERRIDE; virtual ui::CursorSetType GetCursorSet() const OVERRIDE; + virtual void SetScale(float scale) OVERRIDE; + virtual float GetScale() const OVERRIDE; virtual bool IsCursorVisible() const OVERRIDE; virtual void EnableMouseEvents() OVERRIDE; virtual void DisableMouseEvents() OVERRIDE; diff --git a/ui/views/widget/desktop_aura/desktop_native_cursor_manager.cc b/ui/views/widget/desktop_aura/desktop_native_cursor_manager.cc index ec898fb..8225e00 100644 --- a/ui/views/widget/desktop_aura/desktop_native_cursor_manager.cc +++ b/ui/views/widget/desktop_aura/desktop_native_cursor_manager.cc @@ -85,6 +85,12 @@ void DesktopNativeCursorManager::SetCursorSet( NOTIMPLEMENTED(); } +void DesktopNativeCursorManager::SetScale( + float scale, + wm::NativeCursorManagerDelegate* delegate) { + NOTIMPLEMENTED(); +} + void DesktopNativeCursorManager::SetMouseEventsEnabled( bool enabled, wm::NativeCursorManagerDelegate* delegate) { diff --git a/ui/views/widget/desktop_aura/desktop_native_cursor_manager.h b/ui/views/widget/desktop_aura/desktop_native_cursor_manager.h index ee15634..d917af4 100644 --- a/ui/views/widget/desktop_aura/desktop_native_cursor_manager.h +++ b/ui/views/widget/desktop_aura/desktop_native_cursor_manager.h @@ -60,6 +60,9 @@ class VIEWS_EXPORT DesktopNativeCursorManager virtual void SetCursorSet( ui::CursorSetType cursor_set, wm::NativeCursorManagerDelegate* delegate) OVERRIDE; + virtual void SetScale( + float scale, + wm::NativeCursorManagerDelegate* delegate) OVERRIDE; virtual void SetMouseEventsEnabled( bool enabled, wm::NativeCursorManagerDelegate* delegate) OVERRIDE; diff --git a/ui/wm/core/cursor_manager.cc b/ui/wm/core/cursor_manager.cc index e9f9885..736ef6f 100644 --- a/ui/wm/core/cursor_manager.cc +++ b/ui/wm/core/cursor_manager.cc @@ -21,6 +21,7 @@ class CursorState { CursorState() : cursor_(ui::kCursorNone), visible_(true), + scale_(1.f), cursor_set_(ui::CURSOR_SET_NORMAL), mouse_events_enabled_(true), visible_on_mouse_events_enabled_(true) { @@ -36,6 +37,11 @@ class CursorState { // Ignores the call when mouse events disabled. } + float scale() const { return scale_; } + void set_scale(float scale) { + scale_ = scale; + } + ui::CursorSetType cursor_set() const { return cursor_set_; } void set_cursor_set(ui::CursorSetType cursor_set) { cursor_set_ = cursor_set; @@ -59,6 +65,7 @@ class CursorState { private: gfx::NativeCursor cursor_; bool visible_; + float scale_; ui::CursorSetType cursor_set_; bool mouse_events_enabled_; @@ -116,6 +123,16 @@ bool CursorManager::IsCursorVisible() const { return current_state_->visible(); } +void CursorManager::SetScale(float scale) { + state_on_unlock_->set_scale(scale); + if (GetScale() != state_on_unlock_->scale()) + delegate_->SetScale(state_on_unlock_->scale(), this); +} + +float CursorManager::GetScale() const { + return current_state_->scale(); +} + void CursorManager::SetCursorSet(ui::CursorSetType cursor_set) { state_on_unlock_->set_cursor_set(cursor_set); if (GetCursorSet() != state_on_unlock_->cursor_set()) @@ -206,6 +223,10 @@ void CursorManager::CommitVisibility(bool visible) { current_state_->SetVisible(visible); } +void CursorManager::CommitScale(float scale) { + current_state_->set_scale(scale); +} + void CursorManager::CommitCursorSet(ui::CursorSetType cursor_set) { current_state_->set_cursor_set(cursor_set); } diff --git a/ui/wm/core/cursor_manager.h b/ui/wm/core/cursor_manager.h index 0fe25f7..a6b226e 100644 --- a/ui/wm/core/cursor_manager.h +++ b/ui/wm/core/cursor_manager.h @@ -48,6 +48,8 @@ class WM_CORE_EXPORT CursorManager : public aura::client::CursorClient, virtual void ShowCursor() OVERRIDE; virtual void HideCursor() OVERRIDE; virtual bool IsCursorVisible() const OVERRIDE; + virtual void SetScale(float scale) OVERRIDE; + virtual float GetScale() const OVERRIDE; virtual void SetCursorSet(ui::CursorSetType cursor_set) OVERRIDE; virtual ui::CursorSetType GetCursorSet() const OVERRIDE; virtual void EnableMouseEvents() OVERRIDE; @@ -68,6 +70,7 @@ class WM_CORE_EXPORT CursorManager : public aura::client::CursorClient, // Overridden from NativeCursorManagerDelegate: virtual void CommitCursor(gfx::NativeCursor cursor) OVERRIDE; virtual void CommitVisibility(bool visible) OVERRIDE; + virtual void CommitScale(float scale) OVERRIDE; virtual void CommitCursorSet(ui::CursorSetType cursor_set) OVERRIDE; virtual void CommitMouseEventsEnabled(bool enabled) OVERRIDE; diff --git a/ui/wm/core/native_cursor_manager.h b/ui/wm/core/native_cursor_manager.h index 6697728..68c9d46 100644 --- a/ui/wm/core/native_cursor_manager.h +++ b/ui/wm/core/native_cursor_manager.h @@ -42,7 +42,12 @@ class WM_CORE_EXPORT NativeCursorManager { bool visible, wm::NativeCursorManagerDelegate* delegate) = 0; - // A request to set the cursor set. + // A request to set the scale of the cursor icon. + virtual void SetScale( + float scale, + wm::NativeCursorManagerDelegate* delegate) = 0; + + // A request to set the scale of the cursor icon. virtual void SetCursorSet( ui::CursorSetType cursor_set, wm::NativeCursorManagerDelegate* delegate) = 0; diff --git a/ui/wm/core/native_cursor_manager_delegate.h b/ui/wm/core/native_cursor_manager_delegate.h index aad9825..0571d57 100644 --- a/ui/wm/core/native_cursor_manager_delegate.h +++ b/ui/wm/core/native_cursor_manager_delegate.h @@ -24,6 +24,7 @@ class WM_CORE_EXPORT NativeCursorManagerDelegate { virtual void CommitCursor(gfx::NativeCursor cursor) = 0; virtual void CommitVisibility(bool visible) = 0; + virtual void CommitScale(float scale) = 0; virtual void CommitCursorSet(ui::CursorSetType cursor_set) = 0; virtual void CommitMouseEventsEnabled(bool enabled) = 0; }; |