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 <algorithm> | 5 #include <algorithm> |
6 #include <set> | 6 #include <set> |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 3380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3391 TEST_F(WidgetTest, AlwaysOnTop) { | 3391 TEST_F(WidgetTest, AlwaysOnTop) { |
3392 Widget* widget = CreateTopLevelNativeWidget(); | 3392 Widget* widget = CreateTopLevelNativeWidget(); |
3393 EXPECT_FALSE(widget->IsAlwaysOnTop()); | 3393 EXPECT_FALSE(widget->IsAlwaysOnTop()); |
3394 widget->SetAlwaysOnTop(true); | 3394 widget->SetAlwaysOnTop(true); |
3395 EXPECT_TRUE(widget->IsAlwaysOnTop()); | 3395 EXPECT_TRUE(widget->IsAlwaysOnTop()); |
3396 widget->SetAlwaysOnTop(false); | 3396 widget->SetAlwaysOnTop(false); |
3397 EXPECT_FALSE(widget->IsAlwaysOnTop()); | 3397 EXPECT_FALSE(widget->IsAlwaysOnTop()); |
3398 widget->CloseNow(); | 3398 widget->CloseNow(); |
3399 } | 3399 } |
3400 | 3400 |
3401 namespace { | |
3402 | |
3403 class ScaleFactorView : public View { | |
3404 public: | |
3405 ScaleFactorView() = default; | |
3406 | |
3407 // Overridden from ui::LayerDelegate: | |
3408 void OnDeviceScaleFactorChanged(float device_scale_factor) override { | |
3409 last_scale_factor_ = device_scale_factor; | |
3410 View::OnDeviceScaleFactorChanged(device_scale_factor); | |
3411 } | |
3412 | |
3413 float last_scale_factor() const { return last_scale_factor_; }; | |
3414 | |
3415 private: | |
3416 float last_scale_factor_ = 0.f; | |
3417 | |
3418 DISALLOW_COPY_AND_ASSIGN(ScaleFactorView); | |
3419 }; | |
3420 | |
3421 struct WidgetCloser { | |
3422 inline void operator()(Widget* widget) const { widget->CloseNow(); } | |
3423 }; | |
3424 | |
3425 } | |
3426 | |
3427 TEST_F(WidgetTest, OnDeviceScaleFactorChanged) { | |
tapted
2015/12/21 07:20:16
nit: comment describing the test like
// Ensure sc
Andrey Kraynov
2015/12/21 09:47:19
Done.
| |
3428 // Automatically close the widget, but not delete it. | |
3429 scoped_ptr<Widget, WidgetCloser> widget(CreateTopLevelPlatformWidget()); | |
tapted
2015/12/21 07:20:16
ooh neat. we should do this more. WidgetCloser pro
Andrey Kraynov
2015/12/21 09:47:19
IMHO, this line can be much better with implemente
tapted
2015/12/21 22:54:11
For this example, I think it's more useful if Crea
| |
3430 ScaleFactorView* view = new ScaleFactorView; | |
3431 widget->GetRootView()->AddChildView(view); | |
3432 float scale_factor = widget->GetLayer()->device_scale_factor(); | |
tapted
2015/12/21 07:23:49
heh, I guess we should check that this isn't 0 as
Andrey Kraynov
2015/12/21 09:47:19
Done.
| |
3433 | |
3434 // Adding the view should notify the view about the initial scale factor. | |
tapted
2015/12/21 07:20:16
I guess
// For views that are not layer-backed,
Andrey Kraynov
2015/12/21 09:47:19
Unfortunately, ui::Layer class compares scale fact
tapted
2015/12/21 22:54:11
yep - I think that's fine. Just takes "faking it"
| |
3435 EXPECT_EQ(scale_factor, view->last_scale_factor()); | |
3436 | |
3437 // Changes should be propagated. | |
3438 scale_factor *= 2.0f; | |
3439 widget->GetLayer()->OnDeviceScaleFactorChanged(scale_factor); | |
3440 EXPECT_EQ(scale_factor, view->last_scale_factor()); | |
3441 } | |
3442 | |
3401 } // namespace test | 3443 } // namespace test |
3402 } // namespace views | 3444 } // namespace views |
OLD | NEW |