| Index: fpdfsdk/fxedit/fxet_edit.cpp
|
| diff --git a/fpdfsdk/fxedit/fxet_edit.cpp b/fpdfsdk/fxedit/fxet_edit.cpp
|
| index 589ac1bd4175e9b3fa998c32aecb89a2d55bebbf..1a3289b26d30b7324f2820a2bbc1f670858c32d8 100644
|
| --- a/fpdfsdk/fxedit/fxet_edit.cpp
|
| +++ b/fpdfsdk/fxedit/fxet_edit.cpp
|
| @@ -364,6 +364,30 @@ void CFX_Edit_Undo::Reset() {
|
| m_UndoItemStack.RemoveAll();
|
| }
|
|
|
| +CFX_Edit_UndoItem::CFX_Edit_UndoItem() : m_bFirst(TRUE), m_bLast(TRUE) {}
|
| +
|
| +CFX_Edit_UndoItem::~CFX_Edit_UndoItem() {}
|
| +
|
| +CFX_WideString CFX_Edit_UndoItem::GetUndoTitle() {
|
| + return L"";
|
| +}
|
| +
|
| +void CFX_Edit_UndoItem::SetFirst(FX_BOOL bFirst) {
|
| + m_bFirst = bFirst;
|
| +}
|
| +
|
| +FX_BOOL CFX_Edit_UndoItem::IsFirst() {
|
| + return m_bFirst;
|
| +}
|
| +
|
| +void CFX_Edit_UndoItem::SetLast(FX_BOOL bLast) {
|
| + m_bLast = bLast;
|
| +}
|
| +
|
| +FX_BOOL CFX_Edit_UndoItem::IsLast() {
|
| + return m_bLast;
|
| +}
|
| +
|
| CFX_Edit_GroupUndoItem::CFX_Edit_GroupUndoItem(const CFX_WideString& sTitle)
|
| : m_sTitle(sTitle) {}
|
|
|
| @@ -2979,3 +3003,121 @@ void CFX_Edit::AddUndoItem(IFX_Edit_UndoItem* pUndoItem) {
|
| if (m_bOprNotify && m_pOprNotify)
|
| m_pOprNotify->OnAddUndo(pUndoItem);
|
| }
|
| +
|
| +CFX_Edit_LineRectArray::CFX_Edit_LineRectArray() {}
|
| +
|
| +CFX_Edit_LineRectArray::~CFX_Edit_LineRectArray() {
|
| + Empty();
|
| +}
|
| +
|
| +void CFX_Edit_LineRectArray::Empty() {
|
| + for (int32_t i = 0, sz = m_LineRects.GetSize(); i < sz; i++)
|
| + delete m_LineRects.GetAt(i);
|
| +
|
| + m_LineRects.RemoveAll();
|
| +}
|
| +
|
| +void CFX_Edit_LineRectArray::RemoveAll() {
|
| + m_LineRects.RemoveAll();
|
| +}
|
| +
|
| +void CFX_Edit_LineRectArray::operator=(CFX_Edit_LineRectArray& rects) {
|
| + Empty();
|
| + for (int32_t i = 0, sz = rects.GetSize(); i < sz; i++)
|
| + m_LineRects.Add(rects.GetAt(i));
|
| +
|
| + rects.RemoveAll();
|
| +}
|
| +
|
| +void CFX_Edit_LineRectArray::Add(const CPVT_WordRange& wrLine,
|
| + const CFX_FloatRect& rcLine) {
|
| + m_LineRects.Add(new CFX_Edit_LineRect(wrLine, rcLine));
|
| +}
|
| +
|
| +int32_t CFX_Edit_LineRectArray::GetSize() const {
|
| + return m_LineRects.GetSize();
|
| +}
|
| +
|
| +CFX_Edit_LineRect* CFX_Edit_LineRectArray::GetAt(int32_t nIndex) const {
|
| + if (nIndex < 0 || nIndex >= m_LineRects.GetSize())
|
| + return nullptr;
|
| +
|
| + return m_LineRects.GetAt(nIndex);
|
| +}
|
| +
|
| +CFX_Edit_Select::CFX_Edit_Select() {}
|
| +
|
| +CFX_Edit_Select::CFX_Edit_Select(const CPVT_WordPlace& begin,
|
| + const CPVT_WordPlace& end) {
|
| + Set(begin, end);
|
| +}
|
| +
|
| +CFX_Edit_Select::CFX_Edit_Select(const CPVT_WordRange& range) {
|
| + Set(range.BeginPos, range.EndPos);
|
| +}
|
| +
|
| +CPVT_WordRange CFX_Edit_Select::ConvertToWordRange() const {
|
| + return CPVT_WordRange(BeginPos, EndPos);
|
| +}
|
| +
|
| +void CFX_Edit_Select::Default() {
|
| + BeginPos.Default();
|
| + EndPos.Default();
|
| +}
|
| +
|
| +void CFX_Edit_Select::Set(const CPVT_WordPlace& begin,
|
| + const CPVT_WordPlace& end) {
|
| + BeginPos = begin;
|
| + EndPos = end;
|
| +}
|
| +
|
| +void CFX_Edit_Select::SetBeginPos(const CPVT_WordPlace& begin) {
|
| + BeginPos = begin;
|
| +}
|
| +
|
| +void CFX_Edit_Select::SetEndPos(const CPVT_WordPlace& end) {
|
| + EndPos = end;
|
| +}
|
| +
|
| +FX_BOOL CFX_Edit_Select::IsExist() const {
|
| + return BeginPos != EndPos;
|
| +}
|
| +
|
| +FX_BOOL CFX_Edit_Select::operator!=(const CPVT_WordRange& wr) const {
|
| + return wr.BeginPos != BeginPos || wr.EndPos != EndPos;
|
| +}
|
| +
|
| +CFX_Edit_RectArray::CFX_Edit_RectArray() {}
|
| +
|
| +CFX_Edit_RectArray::~CFX_Edit_RectArray() {
|
| + Empty();
|
| +}
|
| +
|
| +void CFX_Edit_RectArray::Empty() {
|
| + for (int32_t i = 0, sz = m_Rects.GetSize(); i < sz; i++)
|
| + delete m_Rects.GetAt(i);
|
| +
|
| + m_Rects.RemoveAll();
|
| +}
|
| +
|
| +void CFX_Edit_RectArray::Add(const CFX_FloatRect& rect) {
|
| + // check for overlapped area
|
| + for (int32_t i = 0, sz = m_Rects.GetSize(); i < sz; i++) {
|
| + CFX_FloatRect* pRect = m_Rects.GetAt(i);
|
| + if (pRect && pRect->Contains(rect))
|
| + return;
|
| + }
|
| +
|
| + m_Rects.Add(new CFX_FloatRect(rect));
|
| +}
|
| +
|
| +int32_t CFX_Edit_RectArray::GetSize() const {
|
| + return m_Rects.GetSize();
|
| +}
|
| +
|
| +CFX_FloatRect* CFX_Edit_RectArray::GetAt(int32_t nIndex) const {
|
| + if (nIndex < 0 || nIndex >= m_Rects.GetSize())
|
| + return nullptr;
|
| +
|
| + return m_Rects.GetAt(nIndex);
|
| +}
|
|
|