1// Copyright 2014 PDFium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#ifndef XFA_FDE_CFDE_TXTEDTPARAG_H_
8#define XFA_FDE_CFDE_TXTEDTPARAG_H_
9
10#include <stdint.h>
11
12class CFDE_TxtEdtEngine;
13
14class CFDE_TxtEdtParag {
15 public:
16  explicit CFDE_TxtEdtParag(CFDE_TxtEdtEngine* pEngine);
17  ~CFDE_TxtEdtParag();
18
19  int32_t GetTextLength() const { return m_nCharCount; }
20  int32_t GetStartIndex() const { return m_nCharStart; }
21  int32_t GetLineCount() const { return m_nLineCount; }
22
23  void SetTextLength(int32_t len) { m_nCharCount = len; }
24  void IncrementTextLength(int32_t len) { m_nCharCount += len; }
25  void SetStartIndex(int32_t idx) { m_nCharStart = idx; }
26  void IncrementStartIndex(int32_t val) { m_nCharStart += val; }
27  void DecrementStartIndex(int32_t val) { m_nCharStart -= val; }
28  void SetLineCount(int32_t count) { m_nLineCount = count; }
29
30  void GetLineRange(int32_t nLineIndex, int32_t& nStart, int32_t& nCount) const;
31  void LoadParag();
32  void UnloadParag();
33  void CalcLines();
34
35 private:
36  int32_t m_nCharStart;
37  int32_t m_nCharCount;
38  int32_t m_nLineCount;
39  int32_t* m_lpData;
40  CFDE_TxtEdtEngine* m_pEngine;
41};
42
43#endif  // XFA_FDE_CFDE_TXTEDTPARAG_H_
44