1 // Copyright 2016 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 #include "core/fpdfdoc/cline.h"
8 
CLine(const CPVT_LineInfo & lineinfo)9 CLine::CLine(const CPVT_LineInfo& lineinfo) : m_LineInfo(lineinfo) {}
10 
11 CLine::~CLine() = default;
12 
GetBeginWordPlace() const13 CPVT_WordPlace CLine::GetBeginWordPlace() const {
14   return CPVT_WordPlace(LinePlace.nSecIndex, LinePlace.nLineIndex, -1);
15 }
16 
GetEndWordPlace() const17 CPVT_WordPlace CLine::GetEndWordPlace() const {
18   return CPVT_WordPlace(LinePlace.nSecIndex, LinePlace.nLineIndex,
19                         m_LineInfo.nEndWordIndex);
20 }
21 
GetPrevWordPlace(const CPVT_WordPlace & place) const22 CPVT_WordPlace CLine::GetPrevWordPlace(const CPVT_WordPlace& place) const {
23   if (place.nWordIndex > m_LineInfo.nEndWordIndex) {
24     return CPVT_WordPlace(place.nSecIndex, place.nLineIndex,
25                           m_LineInfo.nEndWordIndex);
26   }
27   return CPVT_WordPlace(place.nSecIndex, place.nLineIndex,
28                         place.nWordIndex - 1);
29 }
30 
GetNextWordPlace(const CPVT_WordPlace & place) const31 CPVT_WordPlace CLine::GetNextWordPlace(const CPVT_WordPlace& place) const {
32   if (place.nWordIndex < m_LineInfo.nBeginWordIndex) {
33     return CPVT_WordPlace(place.nSecIndex, place.nLineIndex,
34                           m_LineInfo.nBeginWordIndex);
35   }
36   return CPVT_WordPlace(place.nSecIndex, place.nLineIndex,
37                         place.nWordIndex + 1);
38 }
39