910e62b5创建于 1月15日历史提交
// Copyright 2025 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_QT_OS_SETTINGS_PROVIDER_QT_H_
#define UI_QT_OS_SETTINGS_PROVIDER_QT_H_

#include "base/memory/raw_ptr.h"
#include "ui/native_theme/os_settings_provider.h"
#include "ui/qt/qt_interface.h"

namespace qt {

class OsSettingsProviderQt : public ui::OsSettingsProvider {
 public:
  explicit OsSettingsProviderQt(QtInterface* shim);
  OsSettingsProviderQt(const OsSettingsProviderQt&) = delete;
  OsSettingsProviderQt& operator=(const OsSettingsProviderQt&) = delete;
  ~OsSettingsProviderQt() override;

  // ui::OsSettingsProvider:
  ui::NativeTheme::PreferredColorScheme PreferredColorScheme() const override;
  base::TimeDelta CaretBlinkInterval() const override;

 private:
  // IMPORTANT NOTE: All members that use `shim_` must be decorated with
  // `DISABLE_CFI_VCALL`.
  raw_ptr<QtInterface> shim_;
};

}  // namespace qt

#endif  // UI_QT_OS_SETTINGS_PROVIDER_QT_H_