sw/inc/crsrsh.hxx | 8 +-- sw/source/core/crsr/BlockCursor.cxx | 29 ----------- sw/source/core/crsr/BlockCursor.hxx | 63 ++++++++++++++++++++++++- sw/source/core/crsr/IBlockCursor.hxx | 86 ----------------------------------- sw/source/core/crsr/crsrsh.cxx | 3 - 5 files changed, 66 insertions(+), 123 deletions(-)
New commits: commit 57e801ba568de9d1b43456e0fc3c11fd0be05fe6 Author: Noel Grandin <n...@peralex.com> Date: Mon May 25 15:04:08 2015 +0200 loplugin:unnecessarysuperclass, merge IBlockCursor into SwBlockCursor Change-Id: I3c6c0d620cf7ffb11a9ca5e1025d91e59ef66c80 Reviewed-on: https://gerrit.libreoffice.org/15898 Reviewed-by: Noel Grandin <noelgran...@gmail.com> Tested-by: Noel Grandin <noelgran...@gmail.com> diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx index 073a8df..b513fc1 100644 --- a/sw/inc/crsrsh.hxx +++ b/sw/inc/crsrsh.hxx @@ -61,7 +61,7 @@ class SwTextAttr; class SwTableBox; class SwTOXMark; class SwRangeRedline; -class IBlockCursor; +class SwBlockCursor; class SwContentNode; class SwPostItField; class SwTextField; @@ -177,7 +177,7 @@ private: SwShellCrsr* m_pCrsrStk; ///< stack for the cursor SwVisCrsr *m_pVisCrsr; ///< the visible cursor - IBlockCursor *m_pBlockCrsr; ///< interface of cursor for block (=rectangular) selection + SwBlockCursor *m_pBlockCrsr; ///< interface of cursor for block (=rectangular) selection SwShellTableCrsr* m_pTableCrsr; /**< table Crsr; only in tables when the selection lays over 2 columns */ @@ -640,8 +640,8 @@ public: { return (const_cast<SwCrsrShell*>(this))->getShellCrsr( bBlock ); } bool IsBlockMode() const { return 0 != m_pBlockCrsr; } - const IBlockCursor* GetBlockCrsr() const { return m_pBlockCrsr; } - IBlockCursor* GetBlockCrsr() { return m_pBlockCrsr; } + const SwBlockCursor* GetBlockCrsr() const { return m_pBlockCrsr; } + SwBlockCursor* GetBlockCrsr() { return m_pBlockCrsr; } // is the Crsr in a table and is the selection over 2 columns bool IsTableMode() const { return 0 != m_pTableCrsr; } diff --git a/sw/source/core/crsr/BlockCursor.cxx b/sw/source/core/crsr/BlockCursor.cxx index 992d29b..dea4bf8 100644 --- a/sw/source/core/crsr/BlockCursor.cxx +++ b/sw/source/core/crsr/BlockCursor.cxx @@ -17,33 +17,9 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include <IBlockCursor.hxx> #include <viscrs.hxx> #include "BlockCursor.hxx" -/** The implementation of the block cursor interface - - It's simply an aggregation of a SwShellCrsr and a rectangle defined by - a start and an end point. -*/ -class SwBlockCursor : public IBlockCursor -{ - SwShellCrsr aCursor; - Point *pStartPt; - Point *pEndPt; - -public: - SwBlockCursor( const SwCrsrShell& rCrsrSh, const SwPosition &rPos ) : - aCursor( rCrsrSh, rPos ), pStartPt(0), pEndPt(0) {} - virtual SwShellCrsr& getShellCrsr() SAL_OVERRIDE; - virtual void setStartPoint( const Point &rPt ) SAL_OVERRIDE; - virtual void setEndPoint( const Point &rPt ) SAL_OVERRIDE; - virtual const Point* getStartPoint() const SAL_OVERRIDE; - virtual const Point* getEndPoint() const SAL_OVERRIDE; - virtual void clearPoints() SAL_OVERRIDE; - virtual ~SwBlockCursor(); -}; - SwBlockCursor::~SwBlockCursor() { delete pStartPt; @@ -89,9 +65,4 @@ void SwBlockCursor::clearPoints() pEndPt = 0; } -IBlockCursor *createBlockCursor( const SwCrsrShell& rCrsrSh, const SwPosition &rPos ) -{ - return new SwBlockCursor( rCrsrSh, rPos ); -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/core/crsr/BlockCursor.hxx b/sw/source/core/crsr/BlockCursor.hxx index b7d6ec9..17c781b 100644 --- a/sw/source/core/crsr/BlockCursor.hxx +++ b/sw/source/core/crsr/BlockCursor.hxx @@ -19,11 +19,70 @@ #ifndef INCLUDED_SW_SOURCE_CORE_CRSR_BLOCKCURSOR_HXX #define INCLUDED_SW_SOURCE_CORE_CRSR_BLOCKCURSOR_HXX -class IBlockCursor; +#include <crsrsh.hxx> + class SwCrsrShell; struct SwPosition; +class Point; + + /** Access to the block cursor + + A block cursor contains a SwShellCrsr and additional information about + the rectangle which has been created by pressing the mouse button and + moving the mouse. + + It's simply an aggregation of a SwShellCrsr and a rectangle defined by + a start and an end point. +*/ +class SwBlockCursor +{ + SwShellCrsr aCursor; + Point *pStartPt; + Point *pEndPt; + +public: + SwBlockCursor( const SwCrsrShell& rCrsrSh, const SwPosition &rPos ) : + aCursor( rCrsrSh, rPos ), pStartPt(0), pEndPt(0) {} + /** Access to the shell cursor + + @return SwShellCrsr& which represents the start and end position of the + current block selection + */ + SwShellCrsr& getShellCrsr(); + /** Defines the starting vertex of the block selection + + @param rPt + rPt should contain the document coordinates of the mouse cursor when + the block selection starts (MouseButtonDown) + */ + void setStartPoint( const Point &rPt ); + /** Defines the ending vertex of the block selection + + @param rPt + rPt should contain the document coordinates of the mouse cursor when + the block selection has started and the mouse has been moved (MouseMove) + */ + void setEndPoint( const Point &rPt ); + /** The document coordinates where the block selection has been started + + @return 0, if no start point has been set + */ + const Point* getStartPoint() const; + /** The document coordinates where the block selection ends (at the moment) + + @return 0, if no end point has been set + */ + const Point* getEndPoint() const; + /** Deletion of the mouse created rectangle + + When start and end points exist, the block cursor depends on this. If the + cursor is moved by cursor keys (e.g. up/down, home/end) the mouse rectangle + is obsolete and has to be deleted. + */ + void clearPoints(); + ~SwBlockCursor(); +}; -IBlockCursor *createBlockCursor(const SwCrsrShell& rCrsrSh, const SwPosition &rPos); #endif diff --git a/sw/source/core/crsr/IBlockCursor.hxx b/sw/source/core/crsr/IBlockCursor.hxx deleted file mode 100644 index 38039ea..0000000 --- a/sw/source/core/crsr/IBlockCursor.hxx +++ /dev/null @@ -1,86 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_SW_SOURCE_CORE_CRSR_IBLOCKCURSOR_HXX -#define INCLUDED_SW_SOURCE_CORE_CRSR_IBLOCKCURSOR_HXX - -class SwShellCrsr; -class Point; - - /** Access to the block cursor - - A block cursor contains a SwShellCrsr and additional information about - the rectangle which has been created by pressing the mouse button and - moving the mouse. - This interface provides access to the SwShellCrsr and to start and end - point of the mouse movement. - */ - class IBlockCursor - { - public: - /** Access to the shell cursor - - @return SwShellCrsr& which represents the start and end position of the - current block selection - */ - virtual SwShellCrsr& getShellCrsr() = 0; - - /** Defines the starting vertex of the block selection - - @param rPt - rPt should contain the document coordinates of the mouse cursor when - the block selection starts (MouseButtonDown) - */ - virtual void setStartPoint( const Point &rPt ) = 0; - - /** Defines the ending vertex of the block selection - - @param rPt - rPt should contain the document coordinates of the mouse cursor when - the block selection has started and the mouse has been moved (MouseMove) - */ - virtual void setEndPoint( const Point &rPt ) = 0; - - /** The document coordinates where the block selection has been started - - @return 0, if no start point has been set - */ - virtual const Point* getStartPoint() const = 0; - - /** The document coordinates where the block selection ends (at the moment) - - @return 0, if no end point has been set - */ - virtual const Point* getEndPoint() const = 0; - - /** Deletion of the mouse created rectangle - - When start and end points exist, the block cursor depends on this. If the - cursor is moved by cursor keys (e.g. up/down, home/end) the mouse rectangle - is obsolete and has to be deleted. - */ - virtual void clearPoints() = 0; - - /** Destructor of the block cursor interface */ - virtual ~IBlockCursor() {}; - }; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx index 428aa40..702ec9d 100644 --- a/sw/source/core/crsr/crsrsh.cxx +++ b/sw/source/core/crsr/crsrsh.cxx @@ -31,7 +31,6 @@ #include <viewimp.hxx> #include <pam.hxx> #include <swselectionlist.hxx> -#include <IBlockCursor.hxx> #include "BlockCursor.hxx" #include <ndtxt.hxx> #include <flyfrm.hxx> @@ -890,7 +889,7 @@ void SwCrsrShell::CrsrToBlockCrsr() if( !m_pBlockCrsr ) { SwPosition aPos( *m_pCurCrsr->GetPoint() ); - m_pBlockCrsr = createBlockCursor( *this, aPos ); + m_pBlockCrsr = new SwBlockCursor( *this, aPos ); SwShellCrsr &rBlock = m_pBlockCrsr->getShellCrsr(); rBlock.GetPtPos() = m_pCurCrsr->GetPtPos(); if( m_pCurCrsr->HasMark() ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits