chromium/ui/qt/qt_interface.h

// Copyright 2022 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_QT_INTERFACE_H_
#define UI_QT_QT_INTERFACE_H_

// This file shouldn't include any standard C++ headers (directly or indirectly)

#if defined(__has_attribute) && __has_attribute(no_sanitize)
#define DISABLE_CFI_VCALL
#else
#define DISABLE_CFI_VCALL
#endif

#include <stdint.h>
#include <stdlib.h>

SkColor;

namespace qt {

// std::string cannot be passed over the library boundary, so this class acts
// as an interface between QT and Chrome.
class String {};

// A generic bag of bytes.
class Buffer {};

enum class FontHinting {};

enum class ColorType {};

enum class ColorState {};

struct FontRenderParams {};

struct FontDescription {};

struct Image {};

struct MonitorScale {};

class QtInterface {};

}  // namespace qt

// This should be the only thing exported from qt_shim.
extern "C" __attribute__((visibility("default"))) qt::QtInterface*
CreateQtInterface(qt::QtInterface::Delegate* delegate, int* argc, char** argv);

#endif  // UI_QT_QT_INTERFACE_H_