summaryrefslogtreecommitdiff
path: root/include/svx/svdedxv.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'include/svx/svdedxv.hxx')
-rw-r--r--include/svx/svdedxv.hxx67
1 files changed, 43 insertions, 24 deletions
diff --git a/include/svx/svdedxv.hxx b/include/svx/svdedxv.hxx
index aab4e216feb9..737da8ca4896 100644
--- a/include/svx/svdedxv.hxx
+++ b/include/svx/svdedxv.hxx
@@ -71,16 +71,16 @@ class SVX_DLLPUBLIC SdrObjEditView : public SdrGlueEditView, public EditViewCall
// The OverlayObjects used for visualizing active TextEdit (currently
// using TextEditOverlayObject, but not limited to it
- sdr::overlay::OverlayObjectList maTEOverlayGroup;
+ sdr::overlay::OverlayObjectList maTEOverlayGroup;
protected:
// TextEdit
- tools::WeakReference<SdrTextObj>
- mxTextEditObj; // current object in TextEdit
- SdrPageView* pTextEditPV;
- std::unique_ptr<SdrOutliner> pTextEditOutliner; // outliner for the TextEdit
- OutlinerView* pTextEditOutlinerView; // current view of the outliners
- VclPtr<vcl::Window> pTextEditWin; // matching window to pTextEditOutlinerView
+ tools::WeakReference<SdrTextObj> mxTextEditObj; // current object in TextEdit
+ SdrPageView* mpTextEditPV;
+ std::unique_ptr<SdrOutliner> mpTextEditOutliner; // outliner for the TextEdit
+ OutlinerView* mpTextEditOutlinerView; // current view of the outliners
+ VclPtr<vcl::Window> mpTextEditWin; // matching window to pTextEditOutlinerView
+
vcl::Cursor* pTextEditCursorBuffer; // to restore the cursor in each window
SdrObject* pMacroObj;
SdrPageView* pMacroPV;
@@ -93,31 +93,28 @@ protected:
sal_uInt16 nMacroTol;
- bool bTextEditDontDelete : 1; // do not delete outliner and view of SdrEndTextEdit (f. spellchecking)
- bool bTextEditOnlyOneView : 1; // a single OutlinerView (f. spellchecking)
- bool bTextEditNewObj : 1; // current edited object was just recreated
- bool bQuickTextEditMode : 1; // persistent(->CrtV). Default=TRUE
- bool bMacroDown : 1;
+ bool mbTextEditDontDelete : 1; // do not delete outliner and view of SdrEndTextEdit (f. spellchecking)
+ bool mbTextEditOnlyOneView : 1; // a single OutlinerView (f. spellchecking)
+ bool mbTextEditNewObj : 1; // current edited object was just recreated
+ bool mbQuickTextEditMode : 1; // persistent(->CrtV). Default=TRUE
+ bool mbMacroDown : 1;
rtl::Reference< sdr::SelectionController > mxSelectionController;
rtl::Reference< sdr::SelectionController > mxLastSelectionController;
private:
SfxUndoManager* mpOldTextEditUndoManager;
+ std::unique_ptr<SdrUndoManager> mpLocalTextEditUndoManager;
SVX_DLLPRIVATE void ImpClearVars();
protected:
- // central method to get an SdrUndoManager for enhanced TextEdit. Default will
- // try to return a dynamic_casted GetModel()->GetSdrUndoManager(). Applications
- // which want to use this feature will need to override this virtual method,
- // provide their document UndoManager and derive it from SdrUndoManager.
- virtual SdrUndoManager* getSdrUndoManagerForEnhancedTextEdit() const;
+ // Create a local UndoManager that is used for text editing.
+ virtual std::unique_ptr<SdrUndoManager> createLocalTextUndoManager();
void ImpMoveCursorAfterChainingEvent(TextChainCursorManager *pCursorManager);
TextChainCursorManager *ImpHandleMotionThroughBoxesKeyInput(const KeyEvent& rKEvt, bool *bOutHandled);
-
OutlinerView* ImpFindOutlinerView(vcl::Window const * pWin) const;
// Create a new OutlinerView at the heap and initialize all required parameters.
@@ -177,12 +174,22 @@ public:
virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint) override;
virtual void ModelHasChanged() override;
+ const std::unique_ptr<SdrUndoManager>& getViewLocalUndoManager() const
+ {
+ return mpLocalTextEditUndoManager;
+ }
// TextEdit over an outliner
// QuickTextEditMode = edit the text straight after selection. Default=TRUE. Persistent.
- void SetQuickTextEditMode(bool bOn) { bQuickTextEditMode=bOn; }
- bool IsQuickTextEditMode() const { return bQuickTextEditMode; }
+ void SetQuickTextEditMode(bool bOn)
+ {
+ mbQuickTextEditMode = bOn;
+ }
+ bool IsQuickTextEditMode() const
+ {
+ return mbQuickTextEditMode;
+ }
// Start the TextEditMode. If pWin==NULL, use the first window, which is logged at the View.
// The cursor of the currently edited window is stored with SdrBeginTextEdit()
@@ -230,10 +237,22 @@ public:
// Now at this outliner, events can be send, attributes can be set,
// call Cut/Copy/Paste, call Undo/Redo, and so on...
- const SdrOutliner* GetTextEditOutliner() const { return pTextEditOutliner.get(); }
- SdrOutliner* GetTextEditOutliner() { return pTextEditOutliner.get(); }
- const OutlinerView* GetTextEditOutlinerView() const { return pTextEditOutlinerView; }
- OutlinerView* GetTextEditOutlinerView() { return pTextEditOutlinerView; }
+ const SdrOutliner* GetTextEditOutliner() const
+ {
+ return mpTextEditOutliner.get();
+ }
+ SdrOutliner* GetTextEditOutliner()
+ {
+ return mpTextEditOutliner.get();
+ }
+ const OutlinerView* GetTextEditOutlinerView() const
+ {
+ return mpTextEditOutlinerView;
+ }
+ OutlinerView* GetTextEditOutlinerView()
+ {
+ return mpTextEditOutlinerView;
+ }
virtual bool KeyInput(const KeyEvent& rKEvt, vcl::Window* pWin) override;
virtual bool MouseButtonDown(const MouseEvent& rMEvt, OutputDevice* pWin) override;