// Copyright 2014 PDFium Authors. All rights reserved.
// 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 _FWL_ADAPTER_NATIVE_H
#define _FWL_ADAPTER_NATIVE_H

class IFWL_WidgetMgrDelegate;
class IFWL_AdapterWidgetMgr;
class IFWL_AdapterThreadMgr;
class IFWL_AdapterTimerMgr;

class IFWL_AdapterNative {
 public:
  virtual ~IFWL_AdapterNative() {}
  virtual IFWL_AdapterWidgetMgr* GetWidgetMgr(
      IFWL_WidgetMgrDelegate* pDelegate) = 0;
  virtual IFWL_AdapterThreadMgr* GetThreadMgr() = 0;
  virtual IFWL_AdapterTimerMgr* GetTimerMgr() = 0;
};
IFWL_AdapterNative* FWL_CreateFuelAdapterNative();
void FWL_ReleaseFuelAdapterNative(IFWL_AdapterNative* pAdapterNative);
#endif
