blob: 03d2296df48266c81ebb9eaa0f7e9868b00d686a [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_DISPLAY_TEST_SCOPED_SCREEN_OVERRIDE_H_
#define UI_DISPLAY_TEST_SCOPED_SCREEN_OVERRIDE_H_
#include "base/memory/raw_ptr.h"
namespace display {
class Screen;
namespace test {
// [Deprecated] Do not use this in new code.
//
// This class represents a RAII wrapper for global screen overriding. An object
// of this class restores original display::Screen instance when it goes out of
// scope. Prefer to use it instead of directly call of
// display::Screen::SetScreenInstance().
class ScopedScreenOverride {
public:
explicit ScopedScreenOverride(Screen* screen);
ScopedScreenOverride(const ScopedScreenOverride&) = delete;
ScopedScreenOverride& operator=(const ScopedScreenOverride&) = delete;
~ScopedScreenOverride();
private:
raw_ptr<Screen> original_screen_;
};
} // namespace test
} // namespace display
#endif // UI_DISPLAY_TEST_SCOPED_SCREEN_OVERRIDE_H_