chromium/third_party/pdfium/xfa/fwl/cfwl_widget.h

// Copyright 2014 The PDFium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#ifndef XFA_FWL_CFWL_WIDGET_H_
#define XFA_FWL_CFWL_WIDGET_H_

#include <stdint.h>

#include "core/fxcrt/fx_coordinates.h"
#include "core/fxcrt/unowned_ptr.h"
#include "core/fxcrt/widestring.h"
#include "core/fxge/dib/fx_dib.h"
#include "fxjs/gc/heap.h"
#include "v8/include/cppgc/garbage-collected.h"
#include "v8/include/cppgc/macros.h"
#include "v8/include/cppgc/member.h"
#include "v8/include/cppgc/prefinalizer.h"
#include "xfa/fde/cfde_data.h"
#include "xfa/fwl/cfwl_themepart.h"
#include "xfa/fwl/cfwl_widgetmgr.h"
#include "xfa/fwl/fwl_widgethit.h"
#include "xfa/fwl/ifwl_widgetdelegate.h"

namespace pdfium {

class CFWL_App;
class CFWL_Event;
class CFWL_Widget;
class IFWL_ThemeProvider;

#define FWL_STYLE_WGT_OverLapper
#define FWL_STYLE_WGT_Popup
#define FWL_STYLE_WGT_Child
#define FWL_STYLE_WGT_WindowTypeMask
#define FWL_STYLE_WGT_Border
#define FWL_STYLE_WGT_VScroll
#define FWL_STYLE_WGT_Group
#define FWL_STYLE_WGT_NoBackground

#define FWL_STATE_WGT_Disabled
#define FWL_STATE_WGT_Focused
#define FWL_STATE_WGT_Invisible
#define FWL_STATE_WGT_MAX

enum class FWL_Type {};

// NOTE: CFWL_Widget serves as its own delegate until replaced at runtime.
class CFWL_Widget : public cppgc::GarbageCollected<CFWL_Widget>,
                    public IFWL_WidgetDelegate {};

}  // namespace pdfium

// TODO(crbug.com/42271761): Remove.
CFWL_Widget;
FWL_Type;

#endif  // XFA_FWL_CFWL_WIDGET_H_