// 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 XFA_SRC_FEE_INCLUDE_FX_WORDBREAK_H_
#define XFA_SRC_FEE_INCLUDE_FX_WORDBREAK_H_

#include "core/include/fxcrt/fx_string.h"
#include "core/include/fxcrt/fx_system.h"

class IFX_CharIter;

class IFX_WordBreak {
 public:
  virtual ~IFX_WordBreak() {}
  virtual void Release() = 0;
  virtual void Attach(IFX_CharIter* pIter) = 0;
  virtual void Attach(const CFX_WideString& wsText) = 0;
  virtual FX_BOOL Next(FX_BOOL bPrev) = 0;
  virtual void SetAt(int32_t nIndex) = 0;
  virtual int32_t GetWordPos() const = 0;
  virtual int32_t GetWordLength() const = 0;
  virtual void GetWord(CFX_WideString& wsWord) const = 0;
  virtual FX_BOOL IsEOF(FX_BOOL bTail = TRUE) const = 0;
};
IFX_WordBreak* FX_WordBreak_Create();

#endif  // XFA_SRC_FEE_INCLUDE_FX_WORDBREAK_H_
