summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dbaccess/source/ui/control/sqledit.cxx8
-rw-r--r--include/svx/weldeditview.hxx39
-rw-r--r--sc/source/ui/app/inputwin.cxx8
-rw-r--r--sc/source/ui/inc/inputwin.hxx8
-rw-r--r--sc/source/ui/inc/tphfedit.hxx4
-rw-r--r--svx/source/dialog/weldeditview.cxx104
6 files changed, 104 insertions, 67 deletions
diff --git a/dbaccess/source/ui/control/sqledit.cxx b/dbaccess/source/ui/control/sqledit.cxx
index dd0560daca8c..5caefbc517ba 100644
--- a/dbaccess/source/ui/control/sqledit.cxx
+++ b/dbaccess/source/ui/control/sqledit.cxx
@@ -75,7 +75,7 @@ SQLEditView::SQLEditView()
void SQLEditView::DisableInternalUndo()
{
- GetEditEngine().EnableUndo(false);
+ GetEditEngine()->EnableUndo(false);
m_bDisableInternalUndo = true;
}
@@ -122,7 +122,7 @@ void SQLEditView::SetDrawingArea(weld::DrawingArea* pDrawingArea)
{
WeldEditView::SetDrawingArea(pDrawingArea);
- EditEngine& rEditEngine = GetEditEngine();
+ EditEngine& rEditEngine = *GetEditEngine();
rEditEngine.SetDefaultHorizontalTextDirection(EEHorizontalTextDirection::L2R);
rEditEngine.SetModifyHdl(LINK(this, SQLEditView, ModifyHdl));
@@ -191,7 +191,7 @@ Color SQLEditView::GetColorValue(TokenType aToken)
void SQLEditView::UpdateData()
{
m_bInUpdate = true;
- EditEngine& rEditEngine = GetEditEngine();
+ EditEngine& rEditEngine = *GetEditEngine();
bool bUndoEnabled = rEditEngine.IsUndoEnabled();
rEditEngine.EnableUndo(false);
@@ -368,7 +368,7 @@ void SQLEditView::ImplSetFont()
// see SmEditWindow::DataChanged for a similar case
SetItemPoolFont(m_pItemPool); // change default font
// re-create with the new font
- EditEngine& rEditEngine = GetEditEngine();
+ EditEngine& rEditEngine = *GetEditEngine();
OUString aTxt(rEditEngine.GetText());
rEditEngine.Clear();
SetTextAndUpdate(aTxt);
diff --git a/include/svx/weldeditview.hxx b/include/svx/weldeditview.hxx
index 11f35c2e7164..1fca83df4c70 100644
--- a/include/svx/weldeditview.hxx
+++ b/include/svx/weldeditview.hxx
@@ -8,8 +8,7 @@
*
*/
-#ifndef INCLUDED_SVX_WELDEDITVIEW_HXX
-#define INCLUDED_SVX_WELDEDITVIEW_HXX
+#pragma once
#include <sal/config.h>
#include <svx/svxdllapi.h>
@@ -28,36 +27,22 @@ public:
virtual int GetSurroundingText(OUString& rSurrounding) override;
virtual bool DeleteSurroundingText(const Selection& rRange) override;
- void SetText(const OUString& rStr) { m_xEditEngine->SetText(rStr); }
+ void SetText(const OUString& rStr);
- OUString GetText() const { return m_xEditEngine->GetText(); }
+ OUString GetText() const;
virtual FactoryFunction GetUITestFactory() const override;
- void SetModifyHdl(const Link<LinkParamNone*, void>& rLink)
- {
- m_xEditEngine->SetModifyHdl(rLink);
- }
+ void SetModifyHdl(const Link<LinkParamNone*, void>& rLink);
- EditEngine& GetEditEngine() { return *m_xEditEngine; }
+ virtual EditView* GetEditView() const;
+ virtual EditEngine* GetEditEngine() const;
- bool HasSelection() const { return m_xEditView && m_xEditView->HasSelection(); }
+ bool HasSelection() const;
- void Cut()
- {
- if (m_xEditView)
- m_xEditView->Cut();
- }
- void Copy()
- {
- if (m_xEditView)
- m_xEditView->Copy();
- }
- void Paste()
- {
- if (m_xEditView)
- m_xEditView->Paste();
- }
+ void Cut();
+ void Copy();
+ void Paste();
virtual ~WeldEditView() override;
@@ -68,6 +53,8 @@ protected:
virtual void makeEditEngine();
+ void InitAccessible();
+
virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
virtual bool MouseMove(const MouseEvent& rMEvt) override;
virtual bool MouseButtonDown(const MouseEvent& rMEvt) override;
@@ -102,6 +89,4 @@ protected:
}
};
-#endif // INCLUDED_SVX_WELDEDITVIEW_HXX
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 17a7c8160285..6776662ac5a5 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -951,7 +951,7 @@ void ScInputBarGroup::MakeDialogEditView()
mxTextWndGroup->MakeDialogEditView();
}
-EditView* ScInputBarGroup::GetEditView()
+EditView* ScInputBarGroup::GetEditView() const
{
return mxTextWndGroup->GetEditView();
}
@@ -1150,7 +1150,7 @@ void ScTextWndGroup::InsertAccessibleTextData(ScAccessibleEditLineTextData& rTex
mxTextWnd->InsertAccessibleTextData(rTextData);
}
-EditView* ScTextWndGroup::GetEditView()
+EditView* ScTextWndGroup::GetEditView() const
{
return mxTextWnd->GetEditView();
}
@@ -1271,10 +1271,10 @@ void ScTextWnd::Paint( vcl::RenderContext& rRenderContext, const tools::Rectangl
WeldEditView::Paint(rRenderContext, rRect);
}
-EditView* ScTextWnd::GetEditView()
+EditView* ScTextWnd::GetEditView() const
{
if ( !m_xEditView )
- InitEditEngine();
+ const_cast<ScTextWnd&>(*this).InitEditEngine();
return m_xEditView.get();
}
diff --git a/sc/source/ui/inc/inputwin.hxx b/sc/source/ui/inc/inputwin.hxx
index 318c3986f521..32717bf17cba 100644
--- a/sc/source/ui/inc/inputwin.hxx
+++ b/sc/source/ui/inc/inputwin.hxx
@@ -54,7 +54,7 @@ public:
virtual const OUString& GetTextString() const = 0;
virtual void StartEditEngine() = 0;
virtual void StopEditEngine( bool bAll ) = 0;
- virtual EditView* GetEditView() = 0;
+ virtual EditView* GetEditView() const = 0;
virtual bool HasEditView() const = 0;
virtual void MakeDialogEditView() = 0;
virtual void SetFormulaMode( bool bSet ) = 0;
@@ -76,7 +76,7 @@ public:
virtual const OUString& GetTextString() const override;
bool IsInputActive() override;
- virtual EditView* GetEditView() override;
+ virtual EditView* GetEditView() const override;
virtual bool HasEditView() const override;
const OutputDevice& GetEditViewDevice() const;
@@ -205,7 +205,7 @@ public:
virtual ~ScTextWndGroup() override;
virtual void InsertAccessibleTextData(ScAccessibleEditLineTextData& rTextData) override;
- virtual EditView* GetEditView() override;
+ virtual EditView* GetEditView() const override;
const OutputDevice& GetEditViewDevice() const;
Point GetCursorScreenPixelPos(bool bBelowLine);
tools::Long GetLastNumExpandedLines() const;
@@ -247,7 +247,7 @@ public:
virtual void RemoveAccessibleTextData(ScAccessibleEditLineTextData& rTextData) override;
void SetTextString(const OUString& rString) override;
void StartEditEngine() override;
- virtual EditView* GetEditView() override;
+ virtual EditView* GetEditView() const override;
virtual bool HasEditView() const override;
Point GetCursorScreenPixelPos(bool bBelowLine);
virtual void Resize() override;
diff --git a/sc/source/ui/inc/tphfedit.hxx b/sc/source/ui/inc/tphfedit.hxx
index 7d5a9ca521a3..7d67a7500297 100644
--- a/sc/source/ui/inc/tphfedit.hxx
+++ b/sc/source/ui/inc/tphfedit.hxx
@@ -21,6 +21,7 @@
#define INCLUDED_SC_SOURCE_UI_INC_TPHFEDIT_HXX
#include <scdllapi.h>
+#include <editutil.hxx>
#include <cppuhelper/weakref.hxx>
#include <svx/weldeditview.hxx>
#include <editeng/svxenum.hxx>
@@ -29,7 +30,6 @@
namespace com::sun::star::accessibility { class XAccessible; }
-class ScHeaderEditEngine;
class ScPatternAttr;
class EditView;
class EditTextObject;
@@ -62,7 +62,7 @@ public:
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override;
- ScHeaderEditEngine* GetEditEngine() const;
+ ScHeaderEditEngine* GetEditEngine() const override;
void SetObjectSelectHdl( const Link<ScEditWindow&,void>& aLink) { aObjectSelectLink = aLink; }
void SetGetFocusHdl(const std::function<void (ScEditWindow&)>& rLink) { m_GetFocusLink = rLink; }
diff --git a/svx/source/dialog/weldeditview.cxx b/svx/source/dialog/weldeditview.cxx
index f62a3df178dc..61c258a3730a 100644
--- a/svx/source/dialog/weldeditview.cxx
+++ b/svx/source/dialog/weldeditview.cxx
@@ -45,6 +45,43 @@
#include <vcl/svapp.hxx>
#include <vcl/uitest/uiobject.hxx>
+void WeldEditView::SetText(const OUString& rStr) { GetEditEngine()->SetText(rStr); }
+
+OUString WeldEditView::GetText() const { return GetEditEngine()->GetText(); }
+
+void WeldEditView::SetModifyHdl(const Link<LinkParamNone*, void>& rLink)
+{
+ GetEditEngine()->SetModifyHdl(rLink);
+}
+
+EditView* WeldEditView::GetEditView() const { return m_xEditView.get(); }
+
+EditEngine* WeldEditView::GetEditEngine() const { return m_xEditEngine.get(); }
+
+bool WeldEditView::HasSelection() const
+{
+ EditView* pEditView = GetEditView();
+ return pEditView && pEditView->HasSelection();
+}
+
+void WeldEditView::Cut()
+{
+ if (EditView* pEditView = GetEditView())
+ pEditView->Cut();
+}
+
+void WeldEditView::Copy()
+{
+ if (EditView* pEditView = GetEditView())
+ pEditView->Copy();
+}
+
+void WeldEditView::Paste()
+{
+ if (EditView* pEditView = GetEditView())
+ pEditView->Paste();
+}
+
WeldEditView::WeldEditView() {}
// tdf#127033 want to use UI font so override makeEditEngine to enable that
@@ -76,13 +113,13 @@ void WeldEditView::makeEditEngine()
void WeldEditView::Resize()
{
- if (m_xEditView)
+ if (EditView* pEditView = GetEditView())
{
OutputDevice& rDevice = GetDrawingArea()->get_ref_device();
Size aOutputSize(rDevice.PixelToLogic(GetOutputSizePixel()));
Size aSize(aOutputSize);
- m_xEditEngine->SetPaperSize(aSize);
- m_xEditView->SetOutputArea(tools::Rectangle(Point(0, 0), aOutputSize));
+ GetEditEngine()->SetPaperSize(aSize);
+ pEditView->SetOutputArea(tools::Rectangle(Point(0, 0), aOutputSize));
}
weld::CustomWidgetController::Resize();
}
@@ -99,21 +136,21 @@ void WeldEditView::Paint(vcl::RenderContext& rRenderContext, const tools::Rectan
std::vector<tools::Rectangle> aLogicRects;
- if (m_xEditView)
+ if (EditView* pEditView = GetEditView())
{
- m_xEditView->SetBackgroundColor(aBgColor);
+ pEditView->SetBackgroundColor(aBgColor);
- m_xEditView->Paint(rRect, &rRenderContext);
+ pEditView->Paint(rRect, &rRenderContext);
if (HasFocus())
{
- m_xEditView->ShowCursor(false);
- vcl::Cursor* pCursor = m_xEditView->GetCursor();
+ pEditView->ShowCursor(false);
+ vcl::Cursor* pCursor = pEditView->GetCursor();
pCursor->DrawToDevice(rRenderContext);
}
// get logic selection
- m_xEditView->GetSelectionRectangles(aLogicRects);
+ pEditView->GetSelectionRectangles(aLogicRects);
}
rRenderContext.SetLineColor();
@@ -128,7 +165,8 @@ void WeldEditView::Paint(vcl::RenderContext& rRenderContext, const tools::Rectan
bool WeldEditView::MouseMove(const MouseEvent& rMEvt)
{
- return m_xEditView && m_xEditView->MouseMove(rMEvt);
+ EditView* pEditView = GetEditView();
+ return pEditView && pEditView->MouseMove(rMEvt);
}
bool WeldEditView::MouseButtonDown(const MouseEvent& rMEvt)
@@ -139,35 +177,40 @@ bool WeldEditView::MouseButtonDown(const MouseEvent& rMEvt)
if (!HasFocus())
GrabFocus();
- return m_xEditView && m_xEditView->MouseButtonDown(rMEvt);
+ EditView* pEditView = GetEditView();
+ return pEditView && pEditView->MouseButtonDown(rMEvt);
}
bool WeldEditView::MouseButtonUp(const MouseEvent& rMEvt)
{
if (IsMouseCaptured())
ReleaseMouse();
- return m_xEditView && m_xEditView->MouseButtonUp(rMEvt);
+ EditView* pEditView = GetEditView();
+ return pEditView && pEditView->MouseButtonUp(rMEvt);
}
bool WeldEditView::KeyInput(const KeyEvent& rKEvt)
{
+ EditView* pEditView = GetEditView();
+
sal_uInt16 nKey = rKEvt.GetKeyCode().GetCode();
if (nKey == KEY_TAB)
{
return false;
}
- else if (m_xEditView && !m_xEditView->PostKeyEvent(rKEvt))
+ else if (pEditView && !pEditView->PostKeyEvent(rKEvt))
{
if (rKEvt.GetKeyCode().IsMod1() && !rKEvt.GetKeyCode().IsMod2())
{
if (nKey == KEY_A)
{
- sal_Int32 nPar = m_xEditEngine->GetParagraphCount();
+ EditEngine* pEditEngine = GetEditEngine();
+ sal_Int32 nPar = pEditEngine->GetParagraphCount();
if (nPar)
{
- sal_Int32 nLen = m_xEditEngine->GetTextLen(nPar - 1);
- m_xEditView->SetSelection(ESelection(0, 0, nPar - 1, nLen));
+ sal_Int32 nLen = pEditEngine->GetTextLen(nPar - 1);
+ pEditView->SetSelection(ESelection(0, 0, nPar - 1, nLen));
}
return true;
}
@@ -181,9 +224,10 @@ bool WeldEditView::KeyInput(const KeyEvent& rKEvt)
bool WeldEditView::Command(const CommandEvent& rCEvt)
{
- if (!m_xEditView)
+ EditView* pEditView = GetEditView();
+ if (!pEditView)
return false;
- m_xEditView->Command(rCEvt);
+ pEditView->Command(rCEvt);
return true;
}
@@ -1434,29 +1478,37 @@ void WeldEditView::SetDrawingArea(weld::DrawingArea* pDrawingArea)
pDrawingArea->set_cursor(PointerStyle::Text);
+ InitAccessible();
+}
+
+void WeldEditView::InitAccessible()
+{
if (m_xAccessible.is())
- m_xAccessible->Init(m_xEditEngine.get(), m_xEditView.get());
+ m_xAccessible->Init(GetEditEngine(), GetEditView());
}
int WeldEditView::GetSurroundingText(OUString& rSurrounding)
{
- if (!m_xEditView)
+ EditView* pEditView = GetEditView();
+ if (!pEditView)
return -1;
- rSurrounding = m_xEditView->GetSurroundingText();
- return m_xEditView->GetSurroundingTextSelection().Min();
+ rSurrounding = pEditView->GetSurroundingText();
+ return pEditView->GetSurroundingTextSelection().Min();
}
bool WeldEditView::DeleteSurroundingText(const Selection& rRange)
{
- if (!m_xEditView)
+ EditView* pEditView = GetEditView();
+ if (!pEditView)
return false;
- return m_xEditView->DeleteSurroundingText(rRange);
+ return pEditView->DeleteSurroundingText(rRange);
}
void WeldEditView::GetFocus()
{
- if (m_xEditView)
- m_xEditView->ShowCursor(false);
+ EditView* pEditView = GetEditView();
+ if (pEditView)
+ pEditView->ShowCursor(false);
weld::CustomWidgetController::GetFocus();