// Copyright 2021 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_BASE_CURSOR_PLATFORM_CURSOR_H_ #define UI_BASE_CURSOR_PLATFORM_CURSOR_H_ #include "base/component_export.h" #include "base/memory/ref_counted.h" namespace ui { // Ref-counted base class for platform-specific cursors. // // Sub-classes of PlatformCursor are expected to wrap platform-specific cursor // resources (e.g. HCURSOR on Windows). Those resources also have // platform-specific deletion methods that must only be called once the last // cursor is destroyed, thus requiring a ref-counted type. // While default cursors (all other than kCustom in // ui/base/cursor/cursor_type.mojom) are used often during any Chrome session // and could perhaps be kept alive for the duration of the program, custom // cursors might incur in high memory usage. Because of this, all types of // cursors are expected to be ref-counted. class COMPONENT_EXPORT(UI_BASE_CURSOR) PlatformCursor : public base::RefCounted<PlatformCursor> { … }; } // namespace ui #endif // UI_BASE_CURSOR_PLATFORM_CURSOR_H_