Index: fpdfsdk/fxedit/fxet_edit.cpp |
diff --git a/fpdfsdk/fxedit/fxet_edit.cpp b/fpdfsdk/fxedit/fxet_edit.cpp |
index 1a3289b26d30b7324f2820a2bbc1f670858c32d8..550dd1d78fd0e621dd07cc4af4975dba417d80ed 100644 |
--- a/fpdfsdk/fxedit/fxet_edit.cpp |
+++ b/fpdfsdk/fxedit/fxet_edit.cpp |
@@ -606,49 +606,6 @@ void CFXEU_Clear::Undo() { |
} |
} |
-CFXEU_ClearRich::CFXEU_ClearRich(CFX_Edit* pEdit, |
- const CPVT_WordPlace& wpOldPlace, |
- const CPVT_WordPlace& wpNewPlace, |
- const CPVT_WordRange& wrSel, |
- uint16_t word, |
- int32_t charset, |
- const CPVT_SecProps& SecProps, |
- const CPVT_WordProps& WordProps) |
- : m_pEdit(pEdit), |
- m_wpOld(wpOldPlace), |
- m_wpNew(wpNewPlace), |
- m_wrSel(wrSel), |
- m_Word(word), |
- m_nCharset(charset), |
- m_SecProps(SecProps), |
- m_WordProps(WordProps) {} |
- |
-CFXEU_ClearRich::~CFXEU_ClearRich() {} |
- |
-void CFXEU_ClearRich::Redo() { |
- if (m_pEdit && IsLast()) { |
- m_pEdit->SelectNone(); |
- m_pEdit->SetSel(m_wrSel.BeginPos, m_wrSel.EndPos); |
- m_pEdit->Clear(FALSE, TRUE); |
- } |
-} |
- |
-void CFXEU_ClearRich::Undo() { |
- if (m_pEdit) { |
- m_pEdit->SelectNone(); |
- m_pEdit->SetCaret(m_wpOld); |
- if (m_wpNew.SecCmp(m_wpOld) != 0) { |
- m_pEdit->InsertReturn(&m_SecProps, &m_WordProps, FALSE, FALSE); |
- } else { |
- m_pEdit->InsertWord(m_Word, m_nCharset, &m_WordProps, FALSE, FALSE); |
- } |
- |
- if (IsFirst()) { |
- m_pEdit->PaintInsertText(m_wrSel.BeginPos, m_wrSel.EndPos); |
- m_pEdit->SetSel(m_wrSel.BeginPos, m_wrSel.EndPos); |
- } |
- } |
-} |
CFXEU_InsertText::CFXEU_InsertText(CFX_Edit* pEdit, |
const CPVT_WordPlace& wpOldPlace, |
const CPVT_WordPlace& wpNewPlace, |
@@ -688,88 +645,6 @@ void CFXEU_InsertText::Undo() { |
} |
} |
-CFXEU_SetSecProps::CFXEU_SetSecProps(CFX_Edit* pEdit, |
- const CPVT_WordPlace& place, |
- EDIT_PROPS_E ep, |
- const CPVT_SecProps& oldsecprops, |
- const CPVT_WordProps& oldwordprops, |
- const CPVT_SecProps& newsecprops, |
- const CPVT_WordProps& newwordprops, |
- const CPVT_WordRange& range) |
- : m_pEdit(pEdit), |
- m_wpPlace(place), |
- m_wrPlace(range), |
- m_eProps(ep), |
- m_OldSecProps(oldsecprops), |
- m_NewSecProps(newsecprops), |
- m_OldWordProps(oldwordprops), |
- m_NewWordProps(newwordprops) {} |
- |
-CFXEU_SetSecProps::~CFXEU_SetSecProps() {} |
- |
-void CFXEU_SetSecProps::Redo() { |
- if (m_pEdit) { |
- m_pEdit->SetSecProps(m_eProps, m_wpPlace, &m_NewSecProps, &m_NewWordProps, |
- m_wrPlace, FALSE); |
- if (IsLast()) { |
- m_pEdit->SelectNone(); |
- m_pEdit->PaintSetProps(m_eProps, m_wrPlace); |
- m_pEdit->SetSel(m_wrPlace.BeginPos, m_wrPlace.EndPos); |
- } |
- } |
-} |
- |
-void CFXEU_SetSecProps::Undo() { |
- if (m_pEdit) { |
- m_pEdit->SetSecProps(m_eProps, m_wpPlace, &m_OldSecProps, &m_OldWordProps, |
- m_wrPlace, FALSE); |
- if (IsFirst()) { |
- m_pEdit->SelectNone(); |
- m_pEdit->PaintSetProps(m_eProps, m_wrPlace); |
- m_pEdit->SetSel(m_wrPlace.BeginPos, m_wrPlace.EndPos); |
- } |
- } |
-} |
- |
-CFXEU_SetWordProps::CFXEU_SetWordProps(CFX_Edit* pEdit, |
- const CPVT_WordPlace& place, |
- EDIT_PROPS_E ep, |
- const CPVT_WordProps& oldprops, |
- const CPVT_WordProps& newprops, |
- const CPVT_WordRange& range) |
- : m_pEdit(pEdit), |
- m_wpPlace(place), |
- m_wrPlace(range), |
- m_eProps(ep), |
- m_OldWordProps(oldprops), |
- m_NewWordProps(newprops) {} |
- |
-CFXEU_SetWordProps::~CFXEU_SetWordProps() {} |
- |
-void CFXEU_SetWordProps::Redo() { |
- if (m_pEdit) { |
- m_pEdit->SetWordProps(m_eProps, m_wpPlace, &m_NewWordProps, m_wrPlace, |
- FALSE); |
- if (IsLast()) { |
- m_pEdit->SelectNone(); |
- m_pEdit->PaintSetProps(m_eProps, m_wrPlace); |
- m_pEdit->SetSel(m_wrPlace.BeginPos, m_wrPlace.EndPos); |
- } |
- } |
-} |
- |
-void CFXEU_SetWordProps::Undo() { |
- if (m_pEdit) { |
- m_pEdit->SetWordProps(m_eProps, m_wpPlace, &m_OldWordProps, m_wrPlace, |
- FALSE); |
- if (IsFirst()) { |
- m_pEdit->SelectNone(); |
- m_pEdit->PaintSetProps(m_eProps, m_wrPlace); |
- m_pEdit->SetSel(m_wrPlace.BeginPos, m_wrPlace.EndPos); |
- } |
- } |
-} |
- |
CFX_Edit::CFX_Edit(CPDF_VariableText* pVT) |
: m_pVT(pVT), |
m_pNotify(nullptr), |
@@ -788,7 +663,6 @@ CFX_Edit::CFX_Edit(CPDF_VariableText* pVT) |
m_bEnableRefresh(TRUE), |
m_rcOldContent(0.0f, 0.0f, 0.0f, 0.0f), |
m_bEnableUndo(TRUE), |
- m_bNotify(TRUE), |
m_bOprNotify(FALSE), |
m_pGroupUndoItem(nullptr) { |
ASSERT(pVT); |
@@ -1090,481 +964,6 @@ CPVT_WordRange CFX_Edit::CombineWordRange(const CPVT_WordRange& wr1, |
return wrRet; |
} |
-FX_BOOL CFX_Edit::IsRichText() const { |
- return m_pVT->IsRichText(); |
-} |
- |
-void CFX_Edit::SetRichText(FX_BOOL bRichText, FX_BOOL bPaint) { |
- m_pVT->SetRichText(bRichText); |
- if (bPaint) |
- Paint(); |
-} |
- |
-FX_BOOL CFX_Edit::SetRichFontIndex(int32_t nFontIndex) { |
- CPVT_WordProps WordProps; |
- WordProps.nFontIndex = nFontIndex; |
- return SetRichTextProps(EP_FONTINDEX, nullptr, &WordProps); |
-} |
- |
-FX_BOOL CFX_Edit::SetRichFontSize(FX_FLOAT fFontSize) { |
- CPVT_WordProps WordProps; |
- WordProps.fFontSize = fFontSize; |
- return SetRichTextProps(EP_FONTSIZE, nullptr, &WordProps); |
-} |
- |
-FX_BOOL CFX_Edit::SetRichTextColor(FX_COLORREF dwColor) { |
- CPVT_WordProps WordProps; |
- WordProps.dwWordColor = dwColor; |
- return SetRichTextProps(EP_WORDCOLOR, nullptr, &WordProps); |
-} |
- |
-FX_BOOL CFX_Edit::SetRichTextScript(CPDF_VariableText::ScriptType nScriptType) { |
- CPVT_WordProps WordProps; |
- WordProps.nScriptType = nScriptType; |
- return SetRichTextProps(EP_SCRIPTTYPE, nullptr, &WordProps); |
-} |
- |
-FX_BOOL CFX_Edit::SetRichTextBold(FX_BOOL bBold) { |
- CPVT_WordProps WordProps; |
- if (bBold) |
- WordProps.nWordStyle |= PVTWORD_STYLE_BOLD; |
- return SetRichTextProps(EP_BOLD, nullptr, &WordProps); |
-} |
- |
-FX_BOOL CFX_Edit::SetRichTextItalic(FX_BOOL bItalic) { |
- CPVT_WordProps WordProps; |
- if (bItalic) |
- WordProps.nWordStyle |= PVTWORD_STYLE_ITALIC; |
- return SetRichTextProps(EP_ITALIC, nullptr, &WordProps); |
-} |
- |
-FX_BOOL CFX_Edit::SetRichTextUnderline(FX_BOOL bUnderline) { |
- CPVT_WordProps WordProps; |
- if (bUnderline) |
- WordProps.nWordStyle |= PVTWORD_STYLE_UNDERLINE; |
- return SetRichTextProps(EP_UNDERLINE, nullptr, &WordProps); |
-} |
- |
-FX_BOOL CFX_Edit::SetRichTextCrossout(FX_BOOL bCrossout) { |
- CPVT_WordProps WordProps; |
- if (bCrossout) |
- WordProps.nWordStyle |= PVTWORD_STYLE_CROSSOUT; |
- return SetRichTextProps(EP_CROSSOUT, nullptr, &WordProps); |
-} |
- |
-FX_BOOL CFX_Edit::SetRichTextCharSpace(FX_FLOAT fCharSpace) { |
- CPVT_WordProps WordProps; |
- WordProps.fCharSpace = fCharSpace; |
- return SetRichTextProps(EP_CHARSPACE, nullptr, &WordProps); |
-} |
- |
-FX_BOOL CFX_Edit::SetRichTextHorzScale(int32_t nHorzScale) { |
- CPVT_WordProps WordProps; |
- WordProps.nHorzScale = nHorzScale; |
- return SetRichTextProps(EP_HORZSCALE, nullptr, &WordProps); |
-} |
- |
-FX_BOOL CFX_Edit::SetRichTextLineLeading(FX_FLOAT fLineLeading) { |
- CPVT_SecProps SecProps; |
- SecProps.fLineLeading = fLineLeading; |
- return SetRichTextProps(EP_LINELEADING, &SecProps, nullptr); |
-} |
- |
-FX_BOOL CFX_Edit::SetRichTextLineIndent(FX_FLOAT fLineIndent) { |
- CPVT_SecProps SecProps; |
- SecProps.fLineIndent = fLineIndent; |
- return SetRichTextProps(EP_LINEINDENT, &SecProps, nullptr); |
-} |
- |
-FX_BOOL CFX_Edit::SetRichTextAlignment(int32_t nAlignment) { |
- CPVT_SecProps SecProps; |
- SecProps.nAlignment = nAlignment; |
- return SetRichTextProps(EP_ALIGNMENT, &SecProps, nullptr); |
-} |
- |
-FX_BOOL CFX_Edit::SetRichTextProps(EDIT_PROPS_E eProps, |
- const CPVT_SecProps* pSecProps, |
- const CPVT_WordProps* pWordProps) { |
- if (!m_pVT->IsValid() || !m_pVT->IsRichText()) |
- return FALSE; |
- |
- CPDF_VariableText::Iterator* pIterator = m_pVT->GetIterator(); |
- CPVT_WordRange wrTemp = m_SelState.ConvertToWordRange(); |
- |
- m_pVT->UpdateWordPlace(wrTemp.BeginPos); |
- m_pVT->UpdateWordPlace(wrTemp.EndPos); |
- pIterator->SetAt(wrTemp.BeginPos); |
- |
- BeginGroupUndo(L""); |
- FX_BOOL bSet = |
- SetSecProps(eProps, wrTemp.BeginPos, pSecProps, pWordProps, wrTemp, TRUE); |
- |
- while (pIterator->NextWord()) { |
- CPVT_WordPlace place = pIterator->GetAt(); |
- if (place.WordCmp(wrTemp.EndPos) > 0) |
- break; |
- FX_BOOL bSet1 = |
- SetSecProps(eProps, place, pSecProps, pWordProps, wrTemp, TRUE); |
- FX_BOOL bSet2 = SetWordProps(eProps, place, pWordProps, wrTemp, TRUE); |
- |
- if (!bSet) |
- bSet = (bSet1 || bSet2); |
- } |
- |
- EndGroupUndo(); |
- |
- if (bSet) |
- PaintSetProps(eProps, wrTemp); |
- |
- return bSet; |
-} |
- |
-void CFX_Edit::PaintSetProps(EDIT_PROPS_E eProps, const CPVT_WordRange& wr) { |
- switch (eProps) { |
- case EP_LINELEADING: |
- case EP_LINEINDENT: |
- case EP_ALIGNMENT: |
- RearrangePart(wr); |
- ScrollToCaret(); |
- Refresh(RP_ANALYSE); |
- SetCaretOrigin(); |
- SetCaretInfo(); |
- break; |
- case EP_WORDCOLOR: |
- case EP_UNDERLINE: |
- case EP_CROSSOUT: |
- Refresh(RP_OPTIONAL, &wr); |
- break; |
- case EP_FONTINDEX: |
- case EP_FONTSIZE: |
- case EP_SCRIPTTYPE: |
- case EP_CHARSPACE: |
- case EP_HORZSCALE: |
- case EP_BOLD: |
- case EP_ITALIC: |
- RearrangePart(wr); |
- ScrollToCaret(); |
- |
- CPVT_WordRange wrRefresh(m_pVT->GetSectionBeginPlace(wr.BeginPos), |
- m_pVT->GetSectionEndPlace(wr.EndPos)); |
- Refresh(RP_ANALYSE, &wrRefresh); |
- |
- SetCaretOrigin(); |
- SetCaretInfo(); |
- break; |
- } |
-} |
- |
-FX_BOOL CFX_Edit::SetSecProps(EDIT_PROPS_E eProps, |
- const CPVT_WordPlace& place, |
- const CPVT_SecProps* pSecProps, |
- const CPVT_WordProps* pWordProps, |
- const CPVT_WordRange& wr, |
- FX_BOOL bAddUndo) { |
- if (!m_pVT->IsValid() || !m_pVT->IsRichText()) |
- return FALSE; |
- |
- CPDF_VariableText::Iterator* pIterator = m_pVT->GetIterator(); |
- FX_BOOL bSet = FALSE; |
- CPVT_Section secinfo; |
- CPVT_Section OldSecinfo; |
- |
- CPVT_WordPlace oldplace = pIterator->GetAt(); |
- |
- if (eProps == EP_LINELEADING || eProps == EP_LINEINDENT || |
- eProps == EP_ALIGNMENT) { |
- if (pSecProps) { |
- pIterator->SetAt(place); |
- if (pIterator->GetSection(secinfo)) { |
- if (bAddUndo) |
- OldSecinfo = secinfo; |
- |
- switch (eProps) { |
- case EP_LINELEADING: |
- if (!FX_EDIT_IsFloatEqual(secinfo.SecProps.fLineLeading, |
- pSecProps->fLineLeading)) { |
- secinfo.SecProps.fLineLeading = pSecProps->fLineLeading; |
- bSet = TRUE; |
- } |
- break; |
- case EP_LINEINDENT: |
- if (!FX_EDIT_IsFloatEqual(secinfo.SecProps.fLineIndent, |
- pSecProps->fLineIndent)) { |
- secinfo.SecProps.fLineIndent = pSecProps->fLineIndent; |
- bSet = TRUE; |
- } |
- break; |
- case EP_ALIGNMENT: |
- if (secinfo.SecProps.nAlignment != pSecProps->nAlignment) { |
- secinfo.SecProps.nAlignment = pSecProps->nAlignment; |
- bSet = TRUE; |
- } |
- break; |
- default: |
- break; |
- } |
- } |
- } |
- } else { |
- if (pWordProps && place == m_pVT->GetSectionBeginPlace(place)) { |
- pIterator->SetAt(place); |
- if (pIterator->GetSection(secinfo)) { |
- if (bAddUndo) |
- OldSecinfo = secinfo; |
- |
- switch (eProps) { |
- case EP_FONTINDEX: |
- if (secinfo.WordProps.nFontIndex != pWordProps->nFontIndex) { |
- secinfo.WordProps.nFontIndex = pWordProps->nFontIndex; |
- bSet = TRUE; |
- } |
- break; |
- case EP_FONTSIZE: |
- if (!FX_EDIT_IsFloatEqual(secinfo.WordProps.fFontSize, |
- pWordProps->fFontSize)) { |
- secinfo.WordProps.fFontSize = pWordProps->fFontSize; |
- bSet = TRUE; |
- } |
- break; |
- case EP_WORDCOLOR: |
- if (secinfo.WordProps.dwWordColor != pWordProps->dwWordColor) { |
- secinfo.WordProps.dwWordColor = pWordProps->dwWordColor; |
- bSet = TRUE; |
- } |
- break; |
- case EP_SCRIPTTYPE: |
- if (secinfo.WordProps.nScriptType != pWordProps->nScriptType) { |
- secinfo.WordProps.nScriptType = pWordProps->nScriptType; |
- bSet = TRUE; |
- } |
- break; |
- case EP_CHARSPACE: |
- if (!FX_EDIT_IsFloatEqual(secinfo.WordProps.fCharSpace, |
- pWordProps->fCharSpace)) { |
- secinfo.WordProps.fCharSpace = pWordProps->fCharSpace; |
- bSet = TRUE; |
- } |
- break; |
- case EP_HORZSCALE: |
- if (secinfo.WordProps.nHorzScale != pWordProps->nHorzScale) { |
- secinfo.WordProps.nHorzScale = pWordProps->nHorzScale; |
- bSet = TRUE; |
- } |
- break; |
- case EP_UNDERLINE: |
- if (pWordProps->nWordStyle & PVTWORD_STYLE_UNDERLINE) { |
- if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_UNDERLINE) == |
- 0) { |
- secinfo.WordProps.nWordStyle |= PVTWORD_STYLE_UNDERLINE; |
- bSet = TRUE; |
- } |
- } else { |
- if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_UNDERLINE) != |
- 0) { |
- secinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_UNDERLINE; |
- bSet = TRUE; |
- } |
- } |
- break; |
- case EP_CROSSOUT: |
- if (pWordProps->nWordStyle & PVTWORD_STYLE_CROSSOUT) { |
- if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) == |
- 0) { |
- secinfo.WordProps.nWordStyle |= PVTWORD_STYLE_CROSSOUT; |
- bSet = TRUE; |
- } |
- } else { |
- if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) != |
- 0) { |
- secinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_CROSSOUT; |
- bSet = TRUE; |
- } |
- } |
- break; |
- case EP_BOLD: |
- if (pWordProps->nWordStyle & PVTWORD_STYLE_BOLD) { |
- if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_BOLD) == 0) { |
- secinfo.WordProps.nWordStyle |= PVTWORD_STYLE_BOLD; |
- bSet = TRUE; |
- } |
- } else { |
- if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_BOLD) != 0) { |
- secinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_BOLD; |
- bSet = TRUE; |
- } |
- } |
- break; |
- case EP_ITALIC: |
- if (pWordProps->nWordStyle & PVTWORD_STYLE_ITALIC) { |
- if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_ITALIC) == 0) { |
- secinfo.WordProps.nWordStyle |= PVTWORD_STYLE_ITALIC; |
- bSet = TRUE; |
- } |
- } else { |
- if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_ITALIC) != 0) { |
- secinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_ITALIC; |
- bSet = TRUE; |
- } |
- } |
- break; |
- default: |
- break; |
- } |
- } |
- } |
- } |
- |
- if (bSet) { |
- pIterator->SetSection(secinfo); |
- |
- if (bAddUndo && m_bEnableUndo) { |
- AddEditUndoItem(new CFXEU_SetSecProps( |
- this, place, eProps, OldSecinfo.SecProps, OldSecinfo.WordProps, |
- secinfo.SecProps, secinfo.WordProps, wr)); |
- } |
- } |
- |
- pIterator->SetAt(oldplace); |
- |
- return bSet; |
-} |
- |
-FX_BOOL CFX_Edit::SetWordProps(EDIT_PROPS_E eProps, |
- const CPVT_WordPlace& place, |
- const CPVT_WordProps* pWordProps, |
- const CPVT_WordRange& wr, |
- FX_BOOL bAddUndo) { |
- if (!m_pVT->IsValid() || !m_pVT->IsRichText()) |
- return FALSE; |
- |
- CPDF_VariableText::Iterator* pIterator = m_pVT->GetIterator(); |
- FX_BOOL bSet = FALSE; |
- CPVT_Word wordinfo; |
- CPVT_Word OldWordinfo; |
- |
- CPVT_WordPlace oldplace = pIterator->GetAt(); |
- |
- if (pWordProps) { |
- pIterator->SetAt(place); |
- if (pIterator->GetWord(wordinfo)) { |
- if (bAddUndo) |
- OldWordinfo = wordinfo; |
- |
- switch (eProps) { |
- case EP_FONTINDEX: |
- if (wordinfo.WordProps.nFontIndex != pWordProps->nFontIndex) { |
- if (IPVT_FontMap* pFontMap = GetFontMap()) { |
- wordinfo.WordProps.nFontIndex = pFontMap->GetWordFontIndex( |
- wordinfo.Word, wordinfo.nCharset, pWordProps->nFontIndex); |
- } |
- bSet = TRUE; |
- } |
- break; |
- case EP_FONTSIZE: |
- if (!FX_EDIT_IsFloatEqual(wordinfo.WordProps.fFontSize, |
- pWordProps->fFontSize)) { |
- wordinfo.WordProps.fFontSize = pWordProps->fFontSize; |
- bSet = TRUE; |
- } |
- break; |
- case EP_WORDCOLOR: |
- if (wordinfo.WordProps.dwWordColor != pWordProps->dwWordColor) { |
- wordinfo.WordProps.dwWordColor = pWordProps->dwWordColor; |
- bSet = TRUE; |
- } |
- break; |
- case EP_SCRIPTTYPE: |
- if (wordinfo.WordProps.nScriptType != pWordProps->nScriptType) { |
- wordinfo.WordProps.nScriptType = pWordProps->nScriptType; |
- bSet = TRUE; |
- } |
- break; |
- case EP_CHARSPACE: |
- if (!FX_EDIT_IsFloatEqual(wordinfo.WordProps.fCharSpace, |
- pWordProps->fCharSpace)) { |
- wordinfo.WordProps.fCharSpace = pWordProps->fCharSpace; |
- bSet = TRUE; |
- } |
- break; |
- case EP_HORZSCALE: |
- if (wordinfo.WordProps.nHorzScale != pWordProps->nHorzScale) { |
- wordinfo.WordProps.nHorzScale = pWordProps->nHorzScale; |
- bSet = TRUE; |
- } |
- break; |
- case EP_UNDERLINE: |
- if (pWordProps->nWordStyle & PVTWORD_STYLE_UNDERLINE) { |
- if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_UNDERLINE) == |
- 0) { |
- wordinfo.WordProps.nWordStyle |= PVTWORD_STYLE_UNDERLINE; |
- bSet = TRUE; |
- } |
- } else { |
- if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_UNDERLINE) != |
- 0) { |
- wordinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_UNDERLINE; |
- bSet = TRUE; |
- } |
- } |
- break; |
- case EP_CROSSOUT: |
- if (pWordProps->nWordStyle & PVTWORD_STYLE_CROSSOUT) { |
- if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) == 0) { |
- wordinfo.WordProps.nWordStyle |= PVTWORD_STYLE_CROSSOUT; |
- bSet = TRUE; |
- } |
- } else { |
- if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) != 0) { |
- wordinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_CROSSOUT; |
- bSet = TRUE; |
- } |
- } |
- break; |
- case EP_BOLD: |
- if (pWordProps->nWordStyle & PVTWORD_STYLE_BOLD) { |
- if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_BOLD) == 0) { |
- wordinfo.WordProps.nWordStyle |= PVTWORD_STYLE_BOLD; |
- bSet = TRUE; |
- } |
- } else { |
- if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_BOLD) != 0) { |
- wordinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_BOLD; |
- bSet = TRUE; |
- } |
- } |
- break; |
- case EP_ITALIC: |
- if (pWordProps->nWordStyle & PVTWORD_STYLE_ITALIC) { |
- if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_ITALIC) == 0) { |
- wordinfo.WordProps.nWordStyle |= PVTWORD_STYLE_ITALIC; |
- bSet = TRUE; |
- } |
- } else { |
- if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_ITALIC) != 0) { |
- wordinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_ITALIC; |
- bSet = TRUE; |
- } |
- } |
- break; |
- default: |
- break; |
- } |
- } |
- } |
- |
- if (bSet) { |
- pIterator->SetWord(wordinfo); |
- |
- if (bAddUndo && m_bEnableUndo) { |
- AddEditUndoItem(new CFXEU_SetWordProps( |
- this, place, eProps, OldWordinfo.WordProps, wordinfo.WordProps, wr)); |
- } |
- } |
- |
- pIterator->SetAt(oldplace); |
- return bSet; |
-} |
- |
void CFX_Edit::SetText(const FX_WCHAR* text, |
int32_t charset, |
const CPVT_SecProps* pSecProps, |
@@ -1694,7 +1093,7 @@ void CFX_Edit::RearrangePart(const CPVT_WordRange& range) { |
} |
void CFX_Edit::SetContentChanged() { |
- if (m_bNotify && m_pNotify) { |
+ if (m_pNotify) { |
CFX_FloatRect rcContent = m_pVT->GetContentRect(); |
if (rcContent.Width() != m_rcOldContent.Width() || |
rcContent.Height() != m_rcOldContent.Height()) { |
@@ -1797,7 +1196,7 @@ CFX_FloatRect CFX_Edit::EditToVT(const CFX_FloatRect& rect) const { |
} |
void CFX_Edit::SetScrollInfo() { |
- if (m_bNotify && m_pNotify) { |
+ if (m_pNotify) { |
CFX_FloatRect rcPlate = m_pVT->GetPlateRect(); |
CFX_FloatRect rcContent = m_pVT->GetContentRect(); |
@@ -1824,7 +1223,7 @@ void CFX_Edit::SetScrollPosX(FX_FLOAT fx) { |
m_ptScrollPos.x = fx; |
Refresh(RP_NOANALYSE); |
- if (m_bNotify && m_pNotify) { |
+ if (m_pNotify) { |
if (!m_bNotifyFlag) { |
m_bNotifyFlag = TRUE; |
m_pNotify->IOnSetScrollPosX(fx); |
@@ -1844,7 +1243,7 @@ void CFX_Edit::SetScrollPosY(FX_FLOAT fy) { |
m_ptScrollPos.y = fy; |
Refresh(RP_NOANALYSE); |
- if (m_bNotify && m_pNotify) { |
+ if (m_pNotify) { |
if (!m_bNotifyFlag) { |
m_bNotifyFlag = TRUE; |
m_pNotify->IOnSetScrollPosY(fy); |
@@ -1959,7 +1358,7 @@ void CFX_Edit::Refresh(REFRESH_PLAN_E ePlan, |
m_Refresh.NoAnalyse(); |
m_ptRefreshScrollPos = m_ptScrollPos; |
- if (m_bNotify && m_pNotify) { |
+ if (m_pNotify) { |
if (!m_bNotifyFlag) { |
m_bNotifyFlag = TRUE; |
if (const CFX_Edit_RectArray* pRects = m_Refresh.GetRefreshRects()) { |
@@ -2073,7 +1472,7 @@ void CFX_Edit::RefreshWordRange(const CPVT_WordRange& wr) { |
wordinfo.ptWord.x + wordinfo.fWidth, |
lineinfo.ptLine.y + lineinfo.fLineAscent); |
- if (m_bNotify && m_pNotify) { |
+ if (m_pNotify) { |
if (!m_bNotifyFlag) { |
m_bNotifyFlag = TRUE; |
CFX_FloatRect rcRefresh = VTToEdit(rcWord); |
@@ -2087,7 +1486,7 @@ void CFX_Edit::RefreshWordRange(const CPVT_WordRange& wr) { |
lineinfo.ptLine.x + lineinfo.fLineWidth, |
lineinfo.ptLine.y + lineinfo.fLineAscent); |
- if (m_bNotify && m_pNotify) { |
+ if (m_pNotify) { |
if (!m_bNotifyFlag) { |
m_bNotifyFlag = TRUE; |
CFX_FloatRect rcRefresh = VTToEdit(rcLine); |
@@ -2107,7 +1506,7 @@ void CFX_Edit::SetCaret(const CPVT_WordPlace& place) { |
} |
void CFX_Edit::SetCaretInfo() { |
- if (m_bNotify && m_pNotify) { |
+ if (m_pNotify) { |
if (!m_bNotifyFlag) { |
CFX_FloatPoint ptHead(0.0f, 0.0f), ptFoot(0.0f, 0.0f); |
@@ -2133,38 +1532,6 @@ void CFX_Edit::SetCaretInfo() { |
m_bNotifyFlag = FALSE; |
} |
} |
- |
- SetCaretChange(); |
-} |
- |
-void CFX_Edit::SetCaretChange() { |
- if (m_wpCaret == m_wpOldCaret) |
- return; |
- |
- if (!m_bNotify || !m_pVT->IsRichText() || !m_pNotify) |
- return; |
- |
- CPVT_SecProps SecProps; |
- CPVT_WordProps WordProps; |
- |
- CPDF_VariableText::Iterator* pIterator = m_pVT->GetIterator(); |
- pIterator->SetAt(m_wpCaret); |
- CPVT_Word word; |
- CPVT_Section section; |
- |
- if (pIterator->GetSection(section)) { |
- SecProps = section.SecProps; |
- WordProps = section.WordProps; |
- } |
- |
- if (pIterator->GetWord(word)) |
- WordProps = word.WordProps; |
- |
- if (!m_bNotifyFlag) { |
- m_bNotifyFlag = TRUE; |
- m_pNotify->IOnCaretChange(SecProps, WordProps); |
- m_bNotifyFlag = FALSE; |
- } |
} |
void CFX_Edit::SetCaret(int32_t nPos) { |
@@ -2662,44 +2029,8 @@ FX_BOOL CFX_Edit::Clear(FX_BOOL bAddUndo, FX_BOOL bPaint) { |
CPVT_WordRange range = m_SelState.ConvertToWordRange(); |
- if (bAddUndo && m_bEnableUndo) { |
- if (m_pVT->IsRichText()) { |
- BeginGroupUndo(L""); |
- |
- CPDF_VariableText::Iterator* pIterator = m_pVT->GetIterator(); |
- pIterator->SetAt(range.EndPos); |
- |
- CPVT_Word wordinfo; |
- CPVT_Section secinfo; |
- do { |
- CPVT_WordPlace place = pIterator->GetAt(); |
- if (place.WordCmp(range.BeginPos) <= 0) |
- break; |
- |
- CPVT_WordPlace oldplace = m_pVT->GetPrevWordPlace(place); |
- |
- if (oldplace.SecCmp(place) != 0) { |
- if (pIterator->GetSection(secinfo)) { |
- AddEditUndoItem(new CFXEU_ClearRich( |
- this, oldplace, place, range, wordinfo.Word, wordinfo.nCharset, |
- secinfo.SecProps, secinfo.WordProps)); |
- } |
- } else { |
- if (pIterator->GetWord(wordinfo)) { |
- oldplace = m_pVT->AdjustLineHeader(oldplace, TRUE); |
- place = m_pVT->AdjustLineHeader(place, TRUE); |
- |
- AddEditUndoItem(new CFXEU_ClearRich( |
- this, oldplace, place, range, wordinfo.Word, wordinfo.nCharset, |
- secinfo.SecProps, wordinfo.WordProps)); |
- } |
- } |
- } while (pIterator->PrevWord()); |
- EndGroupUndo(); |
- } else { |
- AddEditUndoItem(new CFXEU_Clear(this, range, GetSelText())); |
- } |
- } |
+ if (bAddUndo && m_bEnableUndo) |
+ AddEditUndoItem(new CFXEU_Clear(this, range, GetSelText())); |
SelectNone(); |
SetCaret(m_pVT->DeleteWords(range)); |
@@ -2898,10 +2229,6 @@ void CFX_Edit::EnableUndo(FX_BOOL bUndo) { |
m_bEnableUndo = bUndo; |
} |
-void CFX_Edit::EnableNotify(FX_BOOL bNotify) { |
- m_bNotify = bNotify; |
-} |
- |
void CFX_Edit::EnableOprNotify(FX_BOOL bNotify) { |
m_bOprNotify = bNotify; |
} |