1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2017 The PDFium Authors 2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file. 4*3ac0a46fSAndroid Build Coastguard Worker 5*3ac0a46fSAndroid Build Coastguard Worker // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6*3ac0a46fSAndroid Build Coastguard Worker 7*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fgas/layout/cfgas_breakline.h" 8*3ac0a46fSAndroid Build Coastguard Worker 9*3ac0a46fSAndroid Build Coastguard Worker #include "core/fxcrt/stl_util.h" 10*3ac0a46fSAndroid Build Coastguard Worker #include "third_party/base/check.h" 11*3ac0a46fSAndroid Build Coastguard Worker 12*3ac0a46fSAndroid Build Coastguard Worker CFGAS_BreakLine::CFGAS_BreakLine() = default; 13*3ac0a46fSAndroid Build Coastguard Worker 14*3ac0a46fSAndroid Build Coastguard Worker CFGAS_BreakLine::~CFGAS_BreakLine() = default; 15*3ac0a46fSAndroid Build Coastguard Worker LastChar()16*3ac0a46fSAndroid Build Coastguard WorkerCFGAS_Char* CFGAS_BreakLine::LastChar() { 17*3ac0a46fSAndroid Build Coastguard Worker if (m_LineChars.empty()) 18*3ac0a46fSAndroid Build Coastguard Worker return nullptr; 19*3ac0a46fSAndroid Build Coastguard Worker 20*3ac0a46fSAndroid Build Coastguard Worker return &m_LineChars.back(); 21*3ac0a46fSAndroid Build Coastguard Worker } 22*3ac0a46fSAndroid Build Coastguard Worker GetLineEnd() const23*3ac0a46fSAndroid Build Coastguard Workerint32_t CFGAS_BreakLine::GetLineEnd() const { 24*3ac0a46fSAndroid Build Coastguard Worker return m_iStart + m_iWidth; 25*3ac0a46fSAndroid Build Coastguard Worker } 26*3ac0a46fSAndroid Build Coastguard Worker Clear()27*3ac0a46fSAndroid Build Coastguard Workervoid CFGAS_BreakLine::Clear() { 28*3ac0a46fSAndroid Build Coastguard Worker m_LineChars.clear(); 29*3ac0a46fSAndroid Build Coastguard Worker m_LinePieces.clear(); 30*3ac0a46fSAndroid Build Coastguard Worker m_iWidth = 0; 31*3ac0a46fSAndroid Build Coastguard Worker m_iArabicChars = 0; 32*3ac0a46fSAndroid Build Coastguard Worker } 33*3ac0a46fSAndroid Build Coastguard Worker IncrementArabicCharCount()34*3ac0a46fSAndroid Build Coastguard Workervoid CFGAS_BreakLine::IncrementArabicCharCount() { 35*3ac0a46fSAndroid Build Coastguard Worker ++m_iArabicChars; 36*3ac0a46fSAndroid Build Coastguard Worker } 37*3ac0a46fSAndroid Build Coastguard Worker DecrementArabicCharCount()38*3ac0a46fSAndroid Build Coastguard Workervoid CFGAS_BreakLine::DecrementArabicCharCount() { 39*3ac0a46fSAndroid Build Coastguard Worker DCHECK(m_iArabicChars > 0); 40*3ac0a46fSAndroid Build Coastguard Worker --m_iArabicChars; 41*3ac0a46fSAndroid Build Coastguard Worker } 42