summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-06-25 15:21:40 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-06-25 21:10:12 +0200
commit2cebba0e4042ca2cab37cf38874c2576c2ac6a6f (patch)
tree6d48a4057e4e6ff8f349ddba11e5d0d3122324f2 /svx
parent2ec032e01f03ae22ead30be77b8e89b861504128 (diff)
use common WeldEditView
Change-Id: I873cb64a167027030c9eeef61344e6f6f885a924 Reviewed-on: https://gerrit.libreoffice.org/74705 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svx')
-rw-r--r--svx/source/dialog/ClassificationDialog.cxx23
-rw-r--r--svx/source/dialog/ClassificationEditView.cxx140
2 files changed, 21 insertions, 142 deletions
diff --git a/svx/source/dialog/ClassificationDialog.cxx b/svx/source/dialog/ClassificationDialog.cxx
index a2989cc9a19b..6dbe5dc41a54 100644
--- a/svx/source/dialog/ClassificationDialog.cxx
+++ b/svx/source/dialog/ClassificationDialog.cxx
@@ -427,7 +427,7 @@ void ClassificationDialog::readIn(std::vector<ClassificationResult> const & rInp
{
case svx::ClassificationType::TEXT:
{
- m_xEditWindow->pEdView->InsertText(rClassificationResult.msName);
+ m_xEditWindow->getEditView().InsertText(rClassificationResult.msName);
}
break;
@@ -469,13 +469,15 @@ void ClassificationDialog::readIn(std::vector<ClassificationResult> const & rInp
nParagraph++;
if (nParagraph != 0)
- m_xEditWindow->pEdView->InsertParaBreak();
+ m_xEditWindow->getEditView().InsertParaBreak();
// Set paragraph font weight
FontWeight eWeight = (rClassificationResult.msName == "BOLD") ? WEIGHT_BOLD : WEIGHT_NORMAL;
- std::unique_ptr<SfxItemSet> pSet(new SfxItemSet(m_xEditWindow->pEdEngine->GetParaAttribs(nParagraph)));
+
+ ClassificationEditEngine& rEdEngine = m_xEditWindow->getEditEngine();
+ std::unique_ptr<SfxItemSet> pSet(new SfxItemSet(rEdEngine.GetParaAttribs(nParagraph)));
pSet->Put(SvxWeightItem(eWeight, EE_CHAR_WEIGHT));
- m_xEditWindow->pEdEngine->SetParaAttribs(nParagraph, *pSet);
+ rEdEngine.SetParaAttribs(nParagraph, *pSet);
}
break;
@@ -518,7 +520,8 @@ std::vector<ClassificationResult> ClassificationDialog::getResult()
{
std::vector<ClassificationResult> aClassificationResults;
- std::unique_ptr<EditTextObject> pEditText(m_xEditWindow->pEdEngine->CreateTextObject());
+ ClassificationEditEngine& rEdEngine = m_xEditWindow->getEditEngine();
+ std::unique_ptr<EditTextObject> pEditText(rEdEngine.CreateTextObject());
sal_Int32 nCurrentParagraph = -1;
@@ -532,7 +535,7 @@ std::vector<ClassificationResult> ClassificationDialog::getResult()
// Get Weight of current paragraph
FontWeight eFontWeight = WEIGHT_NORMAL;
- SfxItemSet aItemSet(m_xEditWindow->pEdEngine->GetParaAttribs(nCurrentParagraph));
+ SfxItemSet aItemSet(rEdEngine.GetParaAttribs(nCurrentParagraph));
if (const SfxPoolItem* pItem = aItemSet.GetItem(EE_CHAR_WEIGHT, false))
{
const SvxWeightItem* pWeightItem = dynamic_cast<const SvxWeightItem*>(pItem);
@@ -551,7 +554,7 @@ std::vector<ClassificationResult> ClassificationDialog::getResult()
const SvxFieldItem* pFieldItem = findField(rSection);
ESelection aSelection(rSection.mnParagraph, rSection.mnStart, rSection.mnParagraph, rSection.mnEnd);
- const OUString sDisplayString = m_xEditWindow->pEdEngine->GetText(aSelection);
+ const OUString sDisplayString = rEdEngine.GetText(aSelection);
if (!sDisplayString.isEmpty())
{
const ClassificationField* pClassificationField = pFieldItem ? dynamic_cast<const ClassificationField*>(pFieldItem->GetField()) : nullptr;
@@ -577,7 +580,7 @@ IMPL_LINK(ClassificationDialog, SelectClassificationHdl, weld::ComboBox&, rBox,
if (nSelected < 0 || m_nCurrentSelectedCategory == nSelected)
return;
- std::unique_ptr<EditTextObject> pEditText(m_xEditWindow->pEdEngine->CreateTextObject());
+ std::unique_ptr<EditTextObject> pEditText(m_xEditWindow->getEditEngine().CreateTextObject());
std::vector<editeng::Section> aSections;
pEditText->GetAllSections(aSections);
@@ -602,7 +605,7 @@ IMPL_LINK(ClassificationDialog, SelectClassificationHdl, weld::ComboBox&, rBox,
}
if (bReplaceExisting)
- m_xEditWindow->pEdView->SetSelection(aExistingFieldSelection);
+ m_xEditWindow->getEditView().SetSelection(aExistingFieldSelection);
insertCategoryField(nSelected);
@@ -638,7 +641,7 @@ IMPL_LINK(ClassificationDialog, SelectRecentlyUsedHdl, weld::ComboBox&, rBox, vo
sal_Int32 nSelected = rBox.get_active();
if (nSelected >= 0)
{
- m_xEditWindow->pEdEngine->Clear();
+ m_xEditWindow->getEditEngine().Clear();
readIn(m_aRecentlyUsedValuesCollection[nSelected]);
}
}
diff --git a/svx/source/dialog/ClassificationEditView.cxx b/svx/source/dialog/ClassificationEditView.cxx
index 2972f1b227d9..bc2266626c35 100644
--- a/svx/source/dialog/ClassificationEditView.cxx
+++ b/svx/source/dialog/ClassificationEditView.cxx
@@ -45,74 +45,30 @@ ClassificationEditView::ClassificationEditView()
{
}
-void ClassificationEditView::SetDrawingArea(weld::DrawingArea* pDrawingArea)
+void ClassificationEditView::makeEditEngine()
{
- Size aSize(500, 100);
- pDrawingArea->set_size_request(aSize.Width(), aSize.Height());
- SetOutputSizePixel(aSize);
-
- weld::CustomWidgetController::SetDrawingArea(pDrawingArea);
-
- EnableRTL(false);
-
- const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
- Color aBgColor = rStyleSettings.GetWindowColor();
-
- OutputDevice& rDevice = pDrawingArea->get_ref_device();
-
- rDevice.SetMapMode(MapMode(MapUnit::MapTwip));
- rDevice.SetBackground(aBgColor);
-
- Size aOutputSize(rDevice.PixelToLogic(aSize));
- aSize = aOutputSize;
- aSize.setHeight( aSize.Height() * 4 );
-
- pEdEngine.reset(new ClassificationEditEngine(EditEngine::CreatePool()));
- pEdEngine->SetPaperSize( aSize );
- pEdEngine->SetRefDevice( &rDevice );
-
- pEdEngine->SetControlWord(pEdEngine->GetControlWord() | EEControlBits::MARKFIELDS);
-
- pEdView.reset(new EditView(pEdEngine.get(), nullptr));
- pEdView->setEditViewCallbacks(this);
- pEdView->SetOutputArea(tools::Rectangle(Point(0,0), aOutputSize));
-
- pEdView->SetBackgroundColor(aBgColor);
- pEdEngine->InsertView(pEdView.get());
-
- pDrawingArea->set_cursor(PointerStyle::Text);
+ m_xEditEngine.reset(new ClassificationEditEngine(EditEngine::CreatePool()));
}
ClassificationEditView::~ClassificationEditView()
{
}
-void ClassificationEditView::Resize()
-{
- OutputDevice& rDevice = GetDrawingArea()->get_ref_device();
- Size aOutputSize(rDevice.PixelToLogic(GetOutputSizePixel()));
- Size aSize(aOutputSize);
- aSize.setHeight( aSize.Height() * 4 );
- pEdEngine->SetPaperSize(aSize);
- pEdView->SetOutputArea(tools::Rectangle(Point(0,0), aOutputSize));
- weld::CustomWidgetController::Resize();
-}
-
void ClassificationEditView::InsertField(const SvxFieldItem& rFieldItem)
{
- pEdView->InsertField(rFieldItem);
- pEdView->Invalidate();
+ m_xEditView->InsertField(rFieldItem);
+ m_xEditView->Invalidate();
}
void ClassificationEditView::InvertSelectionWeight()
{
- ESelection aSelection = pEdView->GetSelection();
+ ESelection aSelection = m_xEditView->GetSelection();
for (sal_Int32 nParagraph = aSelection.nStartPara; nParagraph <= aSelection.nEndPara; ++nParagraph)
{
FontWeight eFontWeight = WEIGHT_BOLD;
- std::unique_ptr<SfxItemSet> pSet(new SfxItemSet(pEdEngine->GetParaAttribs(nParagraph)));
+ std::unique_ptr<SfxItemSet> pSet(new SfxItemSet(m_xEditEngine->GetParaAttribs(nParagraph)));
if (const SfxPoolItem* pItem = pSet->GetItem(EE_CHAR_WEIGHT, false))
{
const SvxWeightItem* pWeightItem = dynamic_cast<const SvxWeightItem*>(pItem);
@@ -121,90 +77,10 @@ void ClassificationEditView::InvertSelectionWeight()
}
SvxWeightItem aWeight(eFontWeight, EE_CHAR_WEIGHT);
pSet->Put(aWeight);
- pEdEngine->SetParaAttribs(nParagraph, *pSet);
+ m_xEditEngine->SetParaAttribs(nParagraph, *pSet);
}
- pEdView->Invalidate();
-}
-
-void ClassificationEditView::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect)
-{
- //note: ScEditWindow::Paint is similar
-
- rRenderContext.Push(PushFlags::ALL);
- rRenderContext.SetClipRegion();
-
- const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
- Color aBgColor = rStyleSettings.GetWindowColor();
-
- pEdView->SetBackgroundColor(aBgColor);
-
- rRenderContext.SetBackground(aBgColor);
-
- tools::Rectangle aLogicRect(rRenderContext.PixelToLogic(rRect));
- pEdView->Paint(aLogicRect, &rRenderContext);
-
- if (HasFocus())
- {
- pEdView->ShowCursor();
- vcl::Cursor* pCursor = pEdView->GetCursor();
- pCursor->DrawToDevice(rRenderContext);
- }
-
- std::vector<tools::Rectangle> aLogicRects;
-
- // get logic selection
- pEdView->GetSelectionRectangles(aLogicRects);
-
- rRenderContext.SetLineColor();
- rRenderContext.SetFillColor(COL_BLACK);
- rRenderContext.SetRasterOp(RasterOp::Invert);
-
- for (const auto &rSelectionRect : aLogicRects)
- rRenderContext.DrawRect(rSelectionRect);
-
- rRenderContext.Pop();
-}
-
-bool ClassificationEditView::MouseMove(const MouseEvent& rMEvt)
-{
- return pEdView->MouseMove(rMEvt);
-}
-
-bool ClassificationEditView::MouseButtonDown(const MouseEvent& rMEvt)
-{
- if (!HasFocus())
- GrabFocus();
-
- return pEdView->MouseButtonDown(rMEvt);
-}
-
-bool ClassificationEditView::MouseButtonUp(const MouseEvent& rMEvt)
-{
- return pEdView->MouseButtonUp(rMEvt);
-}
-
-bool ClassificationEditView::KeyInput(const KeyEvent& rKEvt)
-{
- sal_uInt16 nKey = rKEvt.GetKeyCode().GetModifier() + rKEvt.GetKeyCode().GetCode();
-
- if (nKey == KEY_TAB || nKey == KEY_TAB + KEY_SHIFT)
- {
- return false;
- }
- else if (!pEdView->PostKeyEvent(rKEvt))
- {
- return false;
- }
-
- return true;
-}
-
-void ClassificationEditView::GetFocus()
-{
- pEdView->ShowCursor();
-
- weld::CustomWidgetController::GetFocus();
+ m_xEditView->Invalidate();
}
} // end sfx2