LCOV - code coverage report
Current view: top level - sd/source/ui/func - fuconrec.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 278 0.0 %
Date: 2012-08-25 Functions: 0 18 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 972 0.0 %

           Branch data     Line data    Source code
       1                 :            : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2                 :            : /*************************************************************************
       3                 :            :  *
       4                 :            :  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       5                 :            :  *
       6                 :            :  * Copyright 2000, 2010 Oracle and/or its affiliates.
       7                 :            :  *
       8                 :            :  * OpenOffice.org - a multi-platform office productivity suite
       9                 :            :  *
      10                 :            :  * This file is part of OpenOffice.org.
      11                 :            :  *
      12                 :            :  * OpenOffice.org is free software: you can redistribute it and/or modify
      13                 :            :  * it under the terms of the GNU Lesser General Public License version 3
      14                 :            :  * only, as published by the Free Software Foundation.
      15                 :            :  *
      16                 :            :  * OpenOffice.org is distributed in the hope that it will be useful,
      17                 :            :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      18                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      19                 :            :  * GNU Lesser General Public License version 3 for more details
      20                 :            :  * (a copy is included in the LICENSE file that accompanied this code).
      21                 :            :  *
      22                 :            :  * You should have received a copy of the GNU Lesser General Public License
      23                 :            :  * version 3 along with OpenOffice.org.  If not, see
      24                 :            :  * <http://www.openoffice.org/license.html>
      25                 :            :  * for a copy of the LGPLv3 License.
      26                 :            :  *
      27                 :            :  ************************************************************************/
      28                 :            : 
      29                 :            : 
      30                 :            : #include "fuconrec.hxx"
      31                 :            : #include <svx/svdpagv.hxx>
      32                 :            : 
      33                 :            : 
      34                 :            : #include <svx/svxids.hrc>
      35                 :            : #include <svx/dialogs.hrc>
      36                 :            : #include <svx/dialmgr.hxx>
      37                 :            : 
      38                 :            : #include "app.hrc"
      39                 :            : #include <svl/aeitem.hxx>
      40                 :            : #include <svx/xlnstwit.hxx>
      41                 :            : #include <svx/xlnedwit.hxx>
      42                 :            : #include <svx/xlnedit.hxx>
      43                 :            : #include <svx/xlnstit.hxx>
      44                 :            : #include <svx/xlnwtit.hxx>
      45                 :            : #include <sfx2/viewfrm.hxx>
      46                 :            : #include <svx/sdtmfitm.hxx>
      47                 :            : #include <svx/sxekitm.hxx>
      48                 :            : #include <svx/sderitm.hxx>
      49                 :            : #include <sfx2/dispatch.hxx>
      50                 :            : #include <svx/svdopath.hxx>
      51                 :            : #include <svx/svdocirc.hxx>
      52                 :            : #include <svl/intitem.hxx>
      53                 :            : #include <sfx2/request.hxx>
      54                 :            : #include <editeng/adjitem.hxx>
      55                 :            : #include <svx/xtable.hxx>
      56                 :            : 
      57                 :            : #include <svx/svdocapt.hxx>
      58                 :            : 
      59                 :            : #include <svx/svdomeas.hxx>
      60                 :            : #include "ViewShell.hxx"
      61                 :            : #include "ViewShellBase.hxx"
      62                 :            : #include "ToolBarManager.hxx"
      63                 :            : #include <editeng/writingmodeitem.hxx>
      64                 :            : #include <basegfx/polygon/b2dpolygontools.hxx>
      65                 :            : #include <basegfx/polygon/b2dpolygon.hxx>
      66                 :            : 
      67                 :            : #include "sdresid.hxx"
      68                 :            : #include "View.hxx"
      69                 :            : #include "sdpage.hxx"
      70                 :            : #include "Window.hxx"
      71                 :            : #include "stlpool.hxx"
      72                 :            : #include "drawdoc.hxx"
      73                 :            : #include "res_bmp.hrc"
      74                 :            : #include "glob.hrc"
      75                 :            : 
      76                 :            : namespace sd {
      77                 :            : 
      78 [ #  # ][ #  # ]:          0 : TYPEINIT1( FuConstructRectangle, FuConstruct );
      79                 :            : 
      80                 :            : /*************************************************************************
      81                 :            : |*
      82                 :            : |* Konstruktor
      83                 :            : |*
      84                 :            : \************************************************************************/
      85                 :            : 
      86                 :          0 : FuConstructRectangle::FuConstructRectangle (
      87                 :            :     ViewShell*  pViewSh,
      88                 :            :     ::sd::Window*       pWin,
      89                 :            :     ::sd::View*         pView,
      90                 :            :     SdDrawDocument* pDoc,
      91                 :            :     SfxRequest&     rReq)
      92                 :          0 :     : FuConstruct(pViewSh, pWin, pView, pDoc, rReq)
      93                 :            : {
      94                 :          0 : }
      95                 :            : 
      96                 :          0 : FunctionReference FuConstructRectangle::Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq, bool bPermanent )
      97                 :            : {
      98                 :            :     FuConstructRectangle* pFunc;
      99 [ #  # ][ #  # ]:          0 :     FunctionReference xFunc( pFunc = new FuConstructRectangle( pViewSh, pWin, pView, pDoc, rReq ) );
     100         [ #  # ]:          0 :     xFunc->DoExecute(rReq);
     101                 :          0 :     pFunc->SetPermanent(bPermanent);
     102                 :          0 :     return xFunc;
     103                 :            : }
     104                 :            : 
     105                 :          0 : void FuConstructRectangle::DoExecute( SfxRequest& rReq )
     106                 :            : {
     107                 :          0 :     FuConstruct::DoExecute( rReq );
     108                 :            : 
     109                 :          0 :     mpViewShell->GetViewShellBase().GetToolBarManager()->SetToolBar(
     110                 :            :         ToolBarManager::TBG_FUNCTION,
     111         [ #  # ]:          0 :         ToolBarManager::msDrawingObjectToolBar);
     112                 :            : 
     113                 :          0 :     const SfxItemSet *pArgs = rReq.GetArgs ();
     114                 :            : 
     115         [ #  # ]:          0 :     if (pArgs)
     116                 :            :     {
     117      [ #  #  # ]:          0 :         switch (nSlotId)
     118                 :            :         {
     119                 :            :             case SID_DRAW_ELLIPSE :
     120                 :            :             {
     121 [ #  # ][ #  # ]:          0 :                 SFX_REQUEST_ARG (rReq, pCenterX, SfxUInt32Item, ID_VAL_CENTER_X, sal_False);
     122 [ #  # ][ #  # ]:          0 :                 SFX_REQUEST_ARG (rReq, pCenterY, SfxUInt32Item, ID_VAL_CENTER_Y, sal_False);
     123 [ #  # ][ #  # ]:          0 :                 SFX_REQUEST_ARG (rReq, pAxisX, SfxUInt32Item, ID_VAL_AXIS_X, sal_False);
     124 [ #  # ][ #  # ]:          0 :                 SFX_REQUEST_ARG (rReq, pAxisY, SfxUInt32Item, ID_VAL_AXIS_Y, sal_False);
     125                 :            : 
     126                 :          0 :                 Rectangle   aNewRectangle (pCenterX->GetValue () - pAxisX->GetValue () / 2,
     127                 :          0 :                                            pCenterY->GetValue () - pAxisY->GetValue () / 2,
     128                 :          0 :                                            pCenterX->GetValue () + pAxisX->GetValue () / 2,
     129         [ #  # ]:          0 :                                            pCenterY->GetValue () + pAxisY->GetValue () / 2);
     130 [ #  # ][ #  # ]:          0 :                 SdrCircObj  *pNewCircle = new SdrCircObj (OBJ_CIRC, aNewRectangle);
     131                 :          0 :                 SdrPageView *pPV = mpView->GetSdrPageView();
     132                 :            : 
     133         [ #  # ]:          0 :                 mpView->InsertObjectAtView(pNewCircle, *pPV, SDRINSERT_SETDEFLAYER | SDRINSERT_SETDEFATTR);
     134                 :            :             }
     135                 :          0 :             break;
     136                 :            : 
     137                 :            :             case SID_DRAW_RECT :
     138                 :            :             {
     139 [ #  # ][ #  # ]:          0 :                 SFX_REQUEST_ARG (rReq, pMouseStartX, SfxUInt32Item, ID_VAL_MOUSESTART_X, sal_False);
     140 [ #  # ][ #  # ]:          0 :                 SFX_REQUEST_ARG (rReq, pMouseStartY, SfxUInt32Item, ID_VAL_MOUSESTART_Y, sal_False);
     141 [ #  # ][ #  # ]:          0 :                 SFX_REQUEST_ARG (rReq, pMouseEndX, SfxUInt32Item, ID_VAL_MOUSEEND_X, sal_False);
     142 [ #  # ][ #  # ]:          0 :                 SFX_REQUEST_ARG (rReq, pMouseEndY, SfxUInt32Item, ID_VAL_MOUSEEND_Y, sal_False);
     143                 :            : 
     144                 :          0 :                 Rectangle   aNewRectangle (pMouseStartX->GetValue (),
     145                 :          0 :                                            pMouseStartY->GetValue (),
     146                 :          0 :                                            pMouseEndX->GetValue (),
     147         [ #  # ]:          0 :                                            pMouseEndY->GetValue ());
     148 [ #  # ][ #  # ]:          0 :                 SdrRectObj  *pNewRect = new SdrRectObj (aNewRectangle);
     149                 :          0 :                 SdrPageView *pPV = mpView->GetSdrPageView();
     150                 :            : 
     151         [ #  # ]:          0 :                 mpView->InsertObjectAtView(pNewRect, *pPV, SDRINSERT_SETDEFLAYER | SDRINSERT_SETDEFATTR);
     152                 :            :             }
     153                 :          0 :             break;
     154                 :            :         }
     155                 :            :     }
     156                 :            : 
     157 [ #  # ][ #  # ]:          0 :     if (nSlotId == SID_TOOL_CONNECTOR               ||
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     158                 :            :         nSlotId == SID_CONNECTOR_ARROW_START        ||
     159                 :            :         nSlotId == SID_CONNECTOR_ARROW_END          ||
     160                 :            :         nSlotId == SID_CONNECTOR_ARROWS             ||
     161                 :            :         nSlotId == SID_CONNECTOR_CIRCLE_START       ||
     162                 :            :         nSlotId == SID_CONNECTOR_CIRCLE_END         ||
     163                 :            :         nSlotId == SID_CONNECTOR_CIRCLES            ||
     164                 :            :         nSlotId == SID_CONNECTOR_LINE               ||
     165                 :            :         nSlotId == SID_CONNECTOR_LINE_ARROW_START   ||
     166                 :            :         nSlotId == SID_CONNECTOR_LINE_ARROW_END     ||
     167                 :            :         nSlotId == SID_CONNECTOR_LINE_ARROWS        ||
     168                 :            :         nSlotId == SID_CONNECTOR_LINE_CIRCLE_START  ||
     169                 :            :         nSlotId == SID_CONNECTOR_LINE_CIRCLE_END    ||
     170                 :            :         nSlotId == SID_CONNECTOR_LINE_CIRCLES       ||
     171                 :            :         nSlotId == SID_CONNECTOR_CURVE              ||
     172                 :            :         nSlotId == SID_CONNECTOR_CURVE_ARROW_START  ||
     173                 :            :         nSlotId == SID_CONNECTOR_CURVE_ARROW_END    ||
     174                 :            :         nSlotId == SID_CONNECTOR_CURVE_ARROWS       ||
     175                 :            :         nSlotId == SID_CONNECTOR_CURVE_CIRCLE_START ||
     176                 :            :         nSlotId == SID_CONNECTOR_CURVE_CIRCLE_END   ||
     177                 :            :         nSlotId == SID_CONNECTOR_CURVE_CIRCLES      ||
     178                 :            :         nSlotId == SID_CONNECTOR_LINES              ||
     179                 :            :         nSlotId == SID_CONNECTOR_LINES_ARROW_START  ||
     180                 :            :         nSlotId == SID_CONNECTOR_LINES_ARROW_END    ||
     181                 :            :         nSlotId == SID_CONNECTOR_LINES_ARROWS       ||
     182                 :            :         nSlotId == SID_CONNECTOR_LINES_CIRCLE_START ||
     183                 :            :         nSlotId == SID_CONNECTOR_LINES_CIRCLE_END   ||
     184                 :            :         nSlotId == SID_CONNECTOR_LINES_CIRCLES      ||
     185                 :            :         nSlotId == SID_LINE_ARROW_START             ||
     186                 :            :         nSlotId == SID_LINE_ARROW_END               ||
     187                 :            :         nSlotId == SID_LINE_ARROWS                  ||
     188                 :            :         nSlotId == SID_LINE_ARROW_CIRCLE            ||
     189                 :            :         nSlotId == SID_LINE_CIRCLE_ARROW            ||
     190                 :            :         nSlotId == SID_LINE_ARROW_SQUARE            ||
     191                 :            :         nSlotId == SID_LINE_SQUARE_ARROW )
     192                 :            :     {
     193                 :          0 :         mpView->UnmarkAll();
     194                 :            :     }
     195                 :          0 : }
     196                 :            : 
     197                 :            : /*************************************************************************
     198                 :            : |*
     199                 :            : |* MouseButtonDown-event
     200                 :            : |*
     201                 :            : \************************************************************************/
     202                 :            : 
     203                 :          0 : sal_Bool FuConstructRectangle::MouseButtonDown(const MouseEvent& rMEvt)
     204                 :            : {
     205                 :          0 :     sal_Bool bReturn = FuConstruct::MouseButtonDown(rMEvt);
     206                 :            : 
     207 [ #  # ][ #  # ]:          0 :     if ( rMEvt.IsLeft() && !mpView->IsAction() )
                 [ #  # ]
     208                 :            :     {
     209         [ #  # ]:          0 :         Point aPnt( mpWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
     210                 :            : 
     211         [ #  # ]:          0 :         mpWindow->CaptureMouse();
     212         [ #  # ]:          0 :         sal_uInt16 nDrgLog = sal_uInt16 ( mpWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
     213                 :            : 
     214         [ #  # ]:          0 :         if (mpView->GetCurrentObjIdentifier() == OBJ_CAPTION)
     215                 :            :         {
     216                 :          0 :             Size aCaptionSize(846, 846);    // (4x2)cm
     217                 :            :             bReturn = mpView->BegCreateCaptionObj(aPnt, aCaptionSize,
     218         [ #  # ]:          0 :                                                 (OutputDevice*) NULL, nDrgLog);
     219                 :            :         }
     220                 :            :         else
     221                 :            :         {
     222         [ #  # ]:          0 :             mpView->BegCreateObj(aPnt, (OutputDevice*) NULL, nDrgLog);
     223                 :            :         }
     224                 :            : 
     225                 :          0 :         SdrObject* pObj = mpView->GetCreateObj();
     226                 :            : 
     227         [ #  # ]:          0 :         if (pObj)
     228                 :            :         {
     229         [ #  # ]:          0 :             SfxItemSet aAttr(mpDoc->GetPool());
     230         [ #  # ]:          0 :             SetStyleSheet(aAttr, pObj);
     231         [ #  # ]:          0 :             SetAttributes(aAttr, pObj);
     232         [ #  # ]:          0 :             SetLineEnds(aAttr, pObj);
     233         [ #  # ]:          0 :             pObj->SetMergedItemSet(aAttr);
     234                 :            : 
     235         [ #  # ]:          0 :             if( nSlotId == SID_DRAW_CAPTION_VERTICAL )
     236 [ #  # ][ #  # ]:          0 :                 ( (SdrTextObj*) pObj)->SetVerticalWriting( sal_True );
     237                 :            :         }
     238                 :            :     }
     239                 :          0 :     return bReturn;
     240                 :            : }
     241                 :            : 
     242                 :            : /*************************************************************************
     243                 :            : |*
     244                 :            : |* MouseMove-event
     245                 :            : |*
     246                 :            : \************************************************************************/
     247                 :            : 
     248                 :          0 : sal_Bool FuConstructRectangle::MouseMove(const MouseEvent& rMEvt)
     249                 :            : {
     250                 :          0 :     return FuConstruct::MouseMove(rMEvt);
     251                 :            : }
     252                 :            : 
     253                 :            : /*************************************************************************
     254                 :            : |*
     255                 :            : |* MouseButtonUp-event
     256                 :            : |*
     257                 :            : \************************************************************************/
     258                 :            : 
     259                 :          0 : sal_Bool FuConstructRectangle::MouseButtonUp(const MouseEvent& rMEvt)
     260                 :            : {
     261                 :          0 :     sal_Bool bReturn(sal_False);
     262                 :            : 
     263 [ #  # ][ #  # ]:          0 :     if(mpView->IsCreateObj() && rMEvt.IsLeft())
                 [ #  # ]
     264                 :            :     {
     265                 :          0 :         SdrObject* pObj = mpView->GetCreateObj();
     266                 :            : 
     267 [ #  # ][ #  # ]:          0 :         if(pObj && mpView->EndCreateObj(SDRCREATE_FORCEEND))
                 [ #  # ]
     268                 :            :         {
     269         [ #  # ]:          0 :             if(SID_DRAW_MEASURELINE == nSlotId)
     270                 :            :             {
     271                 :          0 :                 SdrLayerAdmin& rAdmin = mpDoc->GetLayerAdmin();
     272 [ #  # ][ #  # ]:          0 :                 String aStr(SdResId(STR_LAYER_MEASURELINES));
     273 [ #  # ][ #  # ]:          0 :                 pObj->SetLayer(rAdmin.GetLayerID(aStr, sal_False));
                 [ #  # ]
     274                 :            :             }
     275                 :            : 
     276                 :            :             // init text position when vertica caption object is created
     277 [ #  # ][ #  # ]:          0 :             if(pObj->ISA(SdrCaptionObj) && SID_DRAW_CAPTION_VERTICAL == nSlotId)
                 [ #  # ]
     278                 :            :             {
     279                 :            :                 // draw text object, needs to be initialized when vertical text is used
     280 [ #  # ][ #  # ]:          0 :                 SfxItemSet aSet(pObj->GetMergedItemSet());
     281                 :            : 
     282 [ #  # ][ #  # ]:          0 :                 aSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_CENTER));
                 [ #  # ]
     283 [ #  # ][ #  # ]:          0 :                 aSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_RIGHT));
                 [ #  # ]
     284                 :            : 
     285                 :            :                 // Correct the value of SDRATTR_TEXTDIRECTION to avoid SetItemSet
     286                 :            :                 // calling SetVerticalWriting() again since this item may not yet
     287                 :            :                 // be set at the object and thus may differ from verical state of
     288                 :            :                 // the object.
     289 [ #  # ][ #  # ]:          0 :                 aSet.Put(SvxWritingModeItem(com::sun::star::text::WritingMode_TB_RL, SDRATTR_TEXTDIRECTION));
                 [ #  # ]
     290 [ #  # ][ #  # ]:          0 :                 pObj->SetMergedItemSet(aSet);
     291                 :            :             }
     292                 :            : 
     293                 :          0 :             bReturn = sal_True;
     294                 :            :         }
     295                 :            :     }
     296                 :            : 
     297 [ #  # ][ #  # ]:          0 :     bReturn = FuConstruct::MouseButtonUp (rMEvt) || bReturn;
     298                 :            : 
     299         [ #  # ]:          0 :     if (!bPermanent)
     300                 :          0 :         mpViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
     301                 :            : 
     302                 :          0 :     return bReturn;
     303                 :            : }
     304                 :            : 
     305                 :            : /*************************************************************************
     306                 :            : |*
     307                 :            : |* Tastaturereignisse bearbeiten
     308                 :            : |*
     309                 :            : |* Wird ein KeyEvent bearbeitet, so ist der Return-Wert sal_True, andernfalls
     310                 :            : |* sal_False.
     311                 :            : |*
     312                 :            : \************************************************************************/
     313                 :            : 
     314                 :          0 : sal_Bool FuConstructRectangle::KeyInput(const KeyEvent& rKEvt)
     315                 :            : {
     316                 :          0 :     sal_Bool bReturn = FuConstruct::KeyInput(rKEvt);
     317                 :          0 :     return(bReturn);
     318                 :            : }
     319                 :            : 
     320                 :            : /*************************************************************************
     321                 :            : |*
     322                 :            : |* Function aktivieren
     323                 :            : |*
     324                 :            : \************************************************************************/
     325                 :            : 
     326                 :          0 : void FuConstructRectangle::Activate()
     327                 :            : {
     328                 :            :     SdrObjKind aObjKind;
     329                 :            : 
     330   [ #  #  #  #  :          0 :     switch (nSlotId)
             #  #  #  # ]
     331                 :            :     {
     332                 :            :         case SID_LINE_ARROW_START:
     333                 :            :         case SID_LINE_ARROW_END:
     334                 :            :         case SID_LINE_ARROWS:
     335                 :            :         case SID_LINE_ARROW_CIRCLE:
     336                 :            :         case SID_LINE_CIRCLE_ARROW:
     337                 :            :         case SID_LINE_ARROW_SQUARE:
     338                 :            :         case SID_LINE_SQUARE_ARROW:
     339                 :          0 :             mpView->SetGlueVisible();
     340                 :            :             // keine break !
     341                 :            :         case SID_DRAW_LINE :
     342                 :            :         case SID_DRAW_XLINE:
     343                 :          0 :             aObjKind = OBJ_LINE;
     344                 :          0 :             break;
     345                 :            : 
     346                 :            :         case SID_DRAW_MEASURELINE:
     347                 :            :         {
     348                 :          0 :             aObjKind = OBJ_MEASURE;
     349                 :            :         }
     350                 :          0 :         break;
     351                 :            : 
     352                 :            :         case SID_DRAW_RECT             :
     353                 :            :         case SID_DRAW_RECT_NOFILL      :
     354                 :            :         case SID_DRAW_RECT_ROUND       :
     355                 :            :         case SID_DRAW_RECT_ROUND_NOFILL:
     356                 :            :         case SID_DRAW_SQUARE           :
     357                 :            :         case SID_DRAW_SQUARE_NOFILL    :
     358                 :            :         case SID_DRAW_SQUARE_ROUND     :
     359                 :            :         case SID_DRAW_SQUARE_ROUND_NOFILL:
     360                 :            :         {
     361                 :          0 :             aObjKind = OBJ_RECT;
     362                 :            :         }
     363                 :          0 :         break;
     364                 :            : 
     365                 :            :         case SID_DRAW_ELLIPSE       :
     366                 :            :         case SID_DRAW_ELLIPSE_NOFILL:
     367                 :            :         case SID_DRAW_CIRCLE        :
     368                 :            :         case SID_DRAW_CIRCLE_NOFILL :
     369                 :            :         {
     370                 :          0 :             aObjKind = OBJ_CIRC;
     371                 :            :         }
     372                 :          0 :         break;
     373                 :            : 
     374                 :            :         case SID_DRAW_CAPTION:
     375                 :            :         case SID_DRAW_CAPTION_VERTICAL:
     376                 :            :         {
     377                 :          0 :             aObjKind = OBJ_CAPTION;
     378                 :            :         }
     379                 :          0 :         break;
     380                 :            : 
     381                 :            :         case SID_TOOL_CONNECTOR:
     382                 :            :         case SID_CONNECTOR_ARROW_START:
     383                 :            :         case SID_CONNECTOR_ARROW_END:
     384                 :            :         case SID_CONNECTOR_ARROWS:
     385                 :            :         case SID_CONNECTOR_CIRCLE_START:
     386                 :            :         case SID_CONNECTOR_CIRCLE_END:
     387                 :            :         case SID_CONNECTOR_CIRCLES:
     388                 :            :         case SID_CONNECTOR_LINE:
     389                 :            :         case SID_CONNECTOR_LINE_ARROW_START:
     390                 :            :         case SID_CONNECTOR_LINE_ARROW_END:
     391                 :            :         case SID_CONNECTOR_LINE_ARROWS:
     392                 :            :         case SID_CONNECTOR_LINE_CIRCLE_START:
     393                 :            :         case SID_CONNECTOR_LINE_CIRCLE_END:
     394                 :            :         case SID_CONNECTOR_LINE_CIRCLES:
     395                 :            :         case SID_CONNECTOR_CURVE:
     396                 :            :         case SID_CONNECTOR_CURVE_ARROW_START:
     397                 :            :         case SID_CONNECTOR_CURVE_ARROW_END:
     398                 :            :         case SID_CONNECTOR_CURVE_ARROWS:
     399                 :            :         case SID_CONNECTOR_CURVE_CIRCLE_START:
     400                 :            :         case SID_CONNECTOR_CURVE_CIRCLE_END:
     401                 :            :         case SID_CONNECTOR_CURVE_CIRCLES:
     402                 :            :         case SID_CONNECTOR_LINES:
     403                 :            :         case SID_CONNECTOR_LINES_ARROW_START:
     404                 :            :         case SID_CONNECTOR_LINES_ARROW_END:
     405                 :            :         case SID_CONNECTOR_LINES_ARROWS:
     406                 :            :         case SID_CONNECTOR_LINES_CIRCLE_START:
     407                 :            :         case SID_CONNECTOR_LINES_CIRCLE_END:
     408                 :            :         case SID_CONNECTOR_LINES_CIRCLES:
     409                 :            :         {
     410                 :          0 :             aObjKind = OBJ_EDGE;
     411                 :          0 :             mpView->SetGlueVisible();
     412                 :            :         }
     413                 :          0 :         break;
     414                 :            : 
     415                 :            :         default:
     416                 :            :         {
     417                 :          0 :             aObjKind = OBJ_RECT;
     418                 :            :         }
     419                 :          0 :         break;
     420                 :            :     }
     421                 :            : 
     422                 :          0 :     mpView->SetCurrentObj((sal_uInt16)aObjKind);
     423                 :            : 
     424                 :          0 :     FuConstruct::Activate();
     425                 :          0 : }
     426                 :            : 
     427                 :            : /*************************************************************************
     428                 :            : |*
     429                 :            : |* Function deaktivieren
     430                 :            : |*
     431                 :            : \************************************************************************/
     432                 :            : 
     433                 :          0 : void FuConstructRectangle::Deactivate()
     434                 :            : {
     435 [ #  # ][ #  # ]:          0 :     if( nSlotId == SID_TOOL_CONNECTOR               ||
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     436                 :            :         nSlotId == SID_CONNECTOR_ARROW_START        ||
     437                 :            :         nSlotId == SID_CONNECTOR_ARROW_END          ||
     438                 :            :         nSlotId == SID_CONNECTOR_ARROWS             ||
     439                 :            :         nSlotId == SID_CONNECTOR_CIRCLE_START       ||
     440                 :            :         nSlotId == SID_CONNECTOR_CIRCLE_END         ||
     441                 :            :         nSlotId == SID_CONNECTOR_CIRCLES            ||
     442                 :            :         nSlotId == SID_CONNECTOR_LINE               ||
     443                 :            :         nSlotId == SID_CONNECTOR_LINE_ARROW_START   ||
     444                 :            :         nSlotId == SID_CONNECTOR_LINE_ARROW_END     ||
     445                 :            :         nSlotId == SID_CONNECTOR_LINE_ARROWS        ||
     446                 :            :         nSlotId == SID_CONNECTOR_LINE_CIRCLE_START  ||
     447                 :            :         nSlotId == SID_CONNECTOR_LINE_CIRCLE_END    ||
     448                 :            :         nSlotId == SID_CONNECTOR_LINE_CIRCLES       ||
     449                 :            :         nSlotId == SID_CONNECTOR_CURVE              ||
     450                 :            :         nSlotId == SID_CONNECTOR_CURVE_ARROW_START  ||
     451                 :            :         nSlotId == SID_CONNECTOR_CURVE_ARROW_END    ||
     452                 :            :         nSlotId == SID_CONNECTOR_CURVE_ARROWS       ||
     453                 :            :         nSlotId == SID_CONNECTOR_CURVE_CIRCLE_START ||
     454                 :            :         nSlotId == SID_CONNECTOR_CURVE_CIRCLE_END   ||
     455                 :            :         nSlotId == SID_CONNECTOR_CURVE_CIRCLES      ||
     456                 :            :         nSlotId == SID_CONNECTOR_LINES              ||
     457                 :            :         nSlotId == SID_CONNECTOR_LINES_ARROW_START  ||
     458                 :            :         nSlotId == SID_CONNECTOR_LINES_ARROW_END    ||
     459                 :            :         nSlotId == SID_CONNECTOR_LINES_ARROWS       ||
     460                 :            :         nSlotId == SID_CONNECTOR_LINES_CIRCLE_START ||
     461                 :            :         nSlotId == SID_CONNECTOR_LINES_CIRCLE_END   ||
     462                 :            :         nSlotId == SID_CONNECTOR_LINES_CIRCLES      ||
     463                 :            :         nSlotId == SID_LINE_ARROW_START             ||
     464                 :            :         nSlotId == SID_LINE_ARROW_END               ||
     465                 :            :         nSlotId == SID_LINE_ARROWS                  ||
     466                 :            :         nSlotId == SID_LINE_ARROW_CIRCLE            ||
     467                 :            :         nSlotId == SID_LINE_CIRCLE_ARROW            ||
     468                 :            :         nSlotId == SID_LINE_ARROW_SQUARE            ||
     469                 :            :         nSlotId == SID_LINE_SQUARE_ARROW )
     470                 :            :     {
     471                 :          0 :         mpView->SetGlueVisible( sal_False );
     472                 :            :     }
     473                 :          0 :     FuConstruct::Deactivate();
     474                 :          0 : }
     475                 :            : 
     476                 :            : 
     477                 :            : /*************************************************************************
     478                 :            : |*
     479                 :            : |* Attribute fuer das zu erzeugende Objekt setzen
     480                 :            : |*
     481                 :            : \************************************************************************/
     482                 :            : 
     483                 :          0 : void FuConstructRectangle::SetAttributes(SfxItemSet& rAttr, SdrObject* pObj)
     484                 :            : {
     485 [ #  # ][ #  # ]:          0 :     if (nSlotId == SID_DRAW_RECT_ROUND        ||
         [ #  # ][ #  # ]
     486                 :            :         nSlotId == SID_DRAW_RECT_ROUND_NOFILL ||
     487                 :            :         nSlotId == SID_DRAW_SQUARE_ROUND      ||
     488                 :            :         nSlotId == SID_DRAW_SQUARE_ROUND_NOFILL)
     489                 :            :     {
     490                 :            :         /**********************************************************************
     491                 :            :         * Abgerundete Ecken
     492                 :            :         **********************************************************************/
     493         [ #  # ]:          0 :         rAttr.Put(SdrEckenradiusItem(500));
     494                 :            :     }
     495 [ #  # ][ #  # ]:          0 :     else if (nSlotId == SID_CONNECTOR_LINE              ||
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     496                 :            :              nSlotId == SID_CONNECTOR_LINE_ARROW_START  ||
     497                 :            :              nSlotId == SID_CONNECTOR_LINE_ARROW_END    ||
     498                 :            :              nSlotId == SID_CONNECTOR_LINE_ARROWS       ||
     499                 :            :              nSlotId == SID_CONNECTOR_LINE_CIRCLE_START ||
     500                 :            :              nSlotId == SID_CONNECTOR_LINE_CIRCLE_END   ||
     501                 :            :              nSlotId == SID_CONNECTOR_LINE_CIRCLES)
     502                 :            :     {
     503                 :            :         /**********************************************************************
     504                 :            :         * Direkt-Verbinder
     505                 :            :         **********************************************************************/
     506         [ #  # ]:          0 :         rAttr.Put(SdrEdgeKindItem(SDREDGE_ONELINE));
     507                 :            :     }
     508 [ #  # ][ #  # ]:          0 :     else if (nSlotId == SID_CONNECTOR_LINES              ||
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     509                 :            :              nSlotId == SID_CONNECTOR_LINES_ARROW_START  ||
     510                 :            :              nSlotId == SID_CONNECTOR_LINES_ARROW_END    ||
     511                 :            :              nSlotId == SID_CONNECTOR_LINES_ARROWS       ||
     512                 :            :              nSlotId == SID_CONNECTOR_LINES_CIRCLE_START ||
     513                 :            :              nSlotId == SID_CONNECTOR_LINES_CIRCLE_END   ||
     514                 :            :              nSlotId == SID_CONNECTOR_LINES_CIRCLES)
     515                 :            :     {
     516                 :            :         /**********************************************************************
     517                 :            :         * Linien-Verbinder
     518                 :            :         **********************************************************************/
     519         [ #  # ]:          0 :         rAttr.Put(SdrEdgeKindItem(SDREDGE_THREELINES));
     520                 :            :     }
     521 [ #  # ][ #  # ]:          0 :     else if (nSlotId == SID_CONNECTOR_CURVE              ||
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     522                 :            :              nSlotId == SID_CONNECTOR_CURVE_ARROW_START  ||
     523                 :            :              nSlotId == SID_CONNECTOR_CURVE_ARROW_END    ||
     524                 :            :              nSlotId == SID_CONNECTOR_CURVE_ARROWS       ||
     525                 :            :              nSlotId == SID_CONNECTOR_CURVE_CIRCLE_START ||
     526                 :            :              nSlotId == SID_CONNECTOR_CURVE_CIRCLE_END   ||
     527                 :            :              nSlotId == SID_CONNECTOR_CURVE_CIRCLES)
     528                 :            :     {
     529                 :            :         /**********************************************************************
     530                 :            :         * Kurven-Verbinder
     531                 :            :         **********************************************************************/
     532         [ #  # ]:          0 :         rAttr.Put(SdrEdgeKindItem(SDREDGE_BEZIER));
     533                 :            :     }
     534 [ #  # ][ #  # ]:          0 :     else if ( nSlotId == SID_DRAW_CAPTION || nSlotId == SID_DRAW_CAPTION_VERTICAL )
     535                 :            :     {
     536                 :            :         /**********************************************************************
     537                 :            :         * Legendenobjekt
     538                 :            :         **********************************************************************/
     539 [ #  # ][ #  # ]:          0 :         Size aSize(pObj->GetLogicRect().GetSize());
     540 [ #  # ][ #  # ]:          0 :         rAttr.Put( SdrTextMinFrameHeightItem( aSize.Height() ) );
                 [ #  # ]
     541 [ #  # ][ #  # ]:          0 :         rAttr.Put( SdrTextMinFrameWidthItem( aSize.Width() ) );
                 [ #  # ]
     542 [ #  # ][ #  # ]:          0 :         rAttr.Put( SdrTextAutoGrowHeightItem( sal_True ) );
                 [ #  # ]
     543 [ #  # ][ #  # ]:          0 :         rAttr.Put( SdrTextAutoGrowWidthItem( sal_True ) );
                 [ #  # ]
     544                 :            : 
     545                 :            :         // Support full with for vertical caption objects, too
     546         [ #  # ]:          0 :         if(SID_DRAW_CAPTION == nSlotId)
     547 [ #  # ][ #  # ]:          0 :             rAttr.Put( SdrTextHorzAdjustItem( SDRTEXTHORZADJUST_BLOCK ) );
                 [ #  # ]
     548                 :            :         else
     549 [ #  # ][ #  # ]:          0 :             rAttr.Put( SdrTextVertAdjustItem( SDRTEXTVERTADJUST_BLOCK ) );
                 [ #  # ]
     550                 :            : 
     551 [ #  # ][ #  # ]:          0 :         rAttr.Put( SvxAdjustItem( SVX_ADJUST_CENTER, EE_PARA_JUST ) );
                 [ #  # ]
     552 [ #  # ][ #  # ]:          0 :         rAttr.Put( SdrTextLeftDistItem( 100 ) );
                 [ #  # ]
     553 [ #  # ][ #  # ]:          0 :         rAttr.Put( SdrTextRightDistItem( 100 ) );
                 [ #  # ]
     554 [ #  # ][ #  # ]:          0 :         rAttr.Put( SdrTextUpperDistItem( 100 ) );
                 [ #  # ]
     555 [ #  # ][ #  # ]:          0 :         rAttr.Put( SdrTextLowerDistItem( 100 ) );
                 [ #  # ]
     556                 :            :     }
     557         [ #  # ]:          0 :     else if (nSlotId == SID_DRAW_MEASURELINE)
     558                 :            :     {
     559                 :            :         /**********************************************************************
     560                 :            :         * Masslinie
     561                 :            :         **********************************************************************/
     562                 :          0 :         SdPage* pPage = (SdPage*) mpView->GetSdrPageView()->GetPage();
     563 [ #  # ][ #  # ]:          0 :         String aName(SdResId(STR_POOLSHEET_MEASURE));
     564                 :          0 :         SfxStyleSheet* pSheet = (SfxStyleSheet*) pPage->GetModel()->
     565 [ #  # ][ #  # ]:          0 :                                      GetStyleSheetPool()->
     566         [ #  # ]:          0 :                                      Find(aName, SD_STYLE_FAMILY_GRAPHICS);
     567                 :            :         DBG_ASSERT(pSheet, "Objektvorlage nicht gefunden");
     568                 :            : 
     569         [ #  # ]:          0 :         if (pSheet)
     570                 :            :         {
     571         [ #  # ]:          0 :             pObj->SetStyleSheet(pSheet, sal_False);
     572                 :            :         }
     573                 :            : 
     574                 :          0 :         SdrLayerAdmin& rAdmin = mpDoc->GetLayerAdmin();
     575 [ #  # ][ #  # ]:          0 :         String aStr(SdResId(STR_LAYER_MEASURELINES));
     576 [ #  # ][ #  # ]:          0 :         pObj->SetLayer(rAdmin.GetLayerID(aStr, sal_False));
         [ #  # ][ #  # ]
     577                 :            :     }
     578                 :          0 :     else if (nSlotId == OBJ_CUSTOMSHAPE )
     579                 :            :     {
     580                 :            :     }
     581                 :          0 : }
     582                 :            : 
     583                 :            : 
     584                 :            : /*************************************************************************
     585                 :            : |*
     586                 :            : |* Linienanfaenge und -enden fuer das zu erzeugende Objekt setzen
     587                 :            : |*
     588                 :            : \************************************************************************/
     589                 :            : 
     590                 :          0 : ::basegfx::B2DPolyPolygon getPolygon( sal_uInt16 nResId, SdrModel* pDoc )
     591                 :            : {
     592         [ #  # ]:          0 :     ::basegfx::B2DPolyPolygon aRetval;
     593         [ #  # ]:          0 :     XLineEndListRef pLineEndList = pDoc->GetLineEndList();
     594                 :            : 
     595         [ #  # ]:          0 :     if( pLineEndList.is() )
     596                 :            :     {
     597 [ #  # ][ #  # ]:          0 :         String aArrowName( SVX_RES(nResId) );
     598         [ #  # ]:          0 :         long nCount = pLineEndList->Count();
     599                 :            :         long nIndex;
     600         [ #  # ]:          0 :         for( nIndex = 0L; nIndex < nCount; nIndex++ )
     601                 :            :         {
     602         [ #  # ]:          0 :             XLineEndEntry* pEntry = pLineEndList->GetLineEnd(nIndex);
     603 [ #  # ][ #  # ]:          0 :             if( pEntry->GetName() == aArrowName )
     604                 :            :             {
     605         [ #  # ]:          0 :                 aRetval = pEntry->GetLineEnd();
     606                 :          0 :                 break;
     607                 :            :             }
     608         [ #  # ]:          0 :         }
     609                 :            :     }
     610                 :            : 
     611                 :          0 :     return aRetval;
     612                 :            : }
     613                 :            : 
     614                 :          0 : void FuConstructRectangle::SetLineEnds(SfxItemSet& rAttr, SdrObject* pObj)
     615                 :            : {
     616 [ #  # ][ #  # ]:          0 :     if ( (pObj->GetObjIdentifier() == OBJ_EDGE &&
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     617                 :            :           nSlotId != SID_TOOL_CONNECTOR        &&
     618                 :            :           nSlotId != SID_CONNECTOR_LINE        &&
     619                 :            :           nSlotId != SID_CONNECTOR_LINES       &&
     620                 :            :           nSlotId != SID_CONNECTOR_CURVE)      ||
     621                 :            :           nSlotId == SID_LINE_ARROW_START      ||
     622                 :            :           nSlotId == SID_LINE_ARROW_END        ||
     623                 :            :           nSlotId == SID_LINE_ARROWS           ||
     624                 :            :           nSlotId == SID_LINE_ARROW_CIRCLE     ||
     625                 :            :           nSlotId == SID_LINE_CIRCLE_ARROW     ||
     626                 :            :           nSlotId == SID_LINE_ARROW_SQUARE     ||
     627                 :            :           nSlotId == SID_LINE_SQUARE_ARROW )
     628                 :            :     {
     629                 :            :         /**************************************************************
     630                 :            :         * Linienanfaenge und -enden attributieren
     631                 :            :         **************************************************************/
     632                 :            : 
     633                 :            :         // Pfeilspitze
     634         [ #  # ]:          0 :         ::basegfx::B2DPolyPolygon aArrow( getPolygon( RID_SVXSTR_ARROW, mpDoc ) );
     635 [ #  # ][ #  # ]:          0 :         if( !aArrow.count() )
     636                 :            :         {
     637         [ #  # ]:          0 :             ::basegfx::B2DPolygon aNewArrow;
     638         [ #  # ]:          0 :             aNewArrow.append(::basegfx::B2DPoint(10.0, 0.0));
     639         [ #  # ]:          0 :             aNewArrow.append(::basegfx::B2DPoint(0.0, 30.0));
     640         [ #  # ]:          0 :             aNewArrow.append(::basegfx::B2DPoint(20.0, 30.0));
     641         [ #  # ]:          0 :             aNewArrow.setClosed(true);
     642 [ #  # ][ #  # ]:          0 :             aArrow.append(aNewArrow);
     643                 :            :         }
     644                 :            : 
     645                 :            :         // Kreis
     646         [ #  # ]:          0 :         ::basegfx::B2DPolyPolygon aCircle( getPolygon( RID_SVXSTR_CIRCLE, mpDoc ) );
     647 [ #  # ][ #  # ]:          0 :         if( !aCircle.count() )
     648                 :            :         {
     649         [ #  # ]:          0 :             ::basegfx::B2DPolygon aNewCircle;
     650 [ #  # ][ #  # ]:          0 :             aNewCircle = ::basegfx::tools::createPolygonFromEllipse(::basegfx::B2DPoint(0.0, 0.0), 250.0, 250.0);
                 [ #  # ]
     651         [ #  # ]:          0 :             aNewCircle.setClosed(true);
     652 [ #  # ][ #  # ]:          0 :             aCircle.append(aNewCircle);
     653                 :            :         }
     654                 :            : 
     655                 :            :         // Quadrat
     656         [ #  # ]:          0 :         ::basegfx::B2DPolyPolygon aSquare( getPolygon( RID_SVXSTR_SQUARE, mpDoc ) );
     657 [ #  # ][ #  # ]:          0 :         if( !aSquare.count() )
     658                 :            :         {
     659         [ #  # ]:          0 :             ::basegfx::B2DPolygon aNewSquare;
     660         [ #  # ]:          0 :             aNewSquare.append(::basegfx::B2DPoint(0.0, 0.0));
     661         [ #  # ]:          0 :             aNewSquare.append(::basegfx::B2DPoint(10.0, 0.0));
     662         [ #  # ]:          0 :             aNewSquare.append(::basegfx::B2DPoint(10.0, 10.0));
     663         [ #  # ]:          0 :             aNewSquare.append(::basegfx::B2DPoint(0.0, 10.0));
     664         [ #  # ]:          0 :             aNewSquare.setClosed(true);
     665 [ #  # ][ #  # ]:          0 :             aSquare.append(aNewSquare);
     666                 :            :         }
     667                 :            : 
     668         [ #  # ]:          0 :         SfxItemSet aSet( mpDoc->GetPool() );
     669         [ #  # ]:          0 :         mpView->GetAttributes( aSet );
     670                 :            : 
     671                 :            :         // #i3908# Here, the default Line Start/End width for arrow construction is
     672                 :            :         // set. To have the same value in all situations (construction) in i3908
     673                 :            :         // it was decided to change the default to 0.03 cm for all situations.
     674                 :          0 :         long nWidth = 300; // (1/100th mm)
     675                 :            : 
     676                 :            :         // Linienstaerke ermitteln und daraus die Linienendenstaerke berechnen
     677 [ #  # ][ #  # ]:          0 :         if( aSet.GetItemState( XATTR_LINEWIDTH ) != SFX_ITEM_DONTCARE )
     678                 :            :         {
     679         [ #  # ]:          0 :             long nValue = ( ( const XLineWidthItem& ) aSet.Get( XATTR_LINEWIDTH ) ).GetValue();
     680         [ #  # ]:          0 :             if( nValue > 0 )
     681                 :          0 :                 nWidth = nValue * 3;
     682                 :            :         }
     683                 :            : 
     684   [ #  #  #  #  :          0 :         switch (nSlotId)
                #  #  # ]
     685                 :            :         {
     686                 :            :             case SID_CONNECTOR_ARROWS:
     687                 :            :             case SID_CONNECTOR_LINE_ARROWS:
     688                 :            :             case SID_CONNECTOR_LINES_ARROWS:
     689                 :            :             case SID_CONNECTOR_CURVE_ARROWS:
     690                 :            :             case SID_LINE_ARROWS:
     691                 :            :             {
     692                 :            :                 // Verbinder mit Pfeil-Enden
     693 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineStartItem(SVX_RESSTR(RID_SVXSTR_ARROW), aArrow));
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     694 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineStartWidthItem(nWidth));
                 [ #  # ]
     695 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineEndItem(SVX_RESSTR(RID_SVXSTR_ARROW), aArrow));
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     696 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineEndWidthItem(nWidth));
                 [ #  # ]
     697                 :            :             }
     698                 :          0 :             break;
     699                 :            : 
     700                 :            :             case SID_CONNECTOR_ARROW_START:
     701                 :            :             case SID_CONNECTOR_LINE_ARROW_START:
     702                 :            :             case SID_CONNECTOR_LINES_ARROW_START:
     703                 :            :             case SID_CONNECTOR_CURVE_ARROW_START:
     704                 :            :             case SID_LINE_ARROW_START:
     705                 :            :             case SID_LINE_ARROW_CIRCLE:
     706                 :            :             case SID_LINE_ARROW_SQUARE:
     707                 :            :             {
     708                 :            :                 // Verbinder mit Pfeil-Anfang
     709 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineStartItem(SVX_RESSTR(RID_SVXSTR_ARROW), aArrow));
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     710 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineStartWidthItem(nWidth));
                 [ #  # ]
     711                 :            :             }
     712                 :          0 :             break;
     713                 :            : 
     714                 :            :             case SID_CONNECTOR_ARROW_END:
     715                 :            :             case SID_CONNECTOR_LINE_ARROW_END:
     716                 :            :             case SID_CONNECTOR_LINES_ARROW_END:
     717                 :            :             case SID_CONNECTOR_CURVE_ARROW_END:
     718                 :            :             case SID_LINE_ARROW_END:
     719                 :            :             case SID_LINE_CIRCLE_ARROW:
     720                 :            :             case SID_LINE_SQUARE_ARROW:
     721                 :            :             {
     722                 :            :                 // Verbinder mit Pfeil-Ende
     723 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineEndItem(SVX_RESSTR(RID_SVXSTR_ARROW), aArrow));
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     724 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineEndWidthItem(nWidth));
                 [ #  # ]
     725                 :            :             }
     726                 :          0 :             break;
     727                 :            : 
     728                 :            :             case SID_CONNECTOR_CIRCLES:
     729                 :            :             case SID_CONNECTOR_LINE_CIRCLES:
     730                 :            :             case SID_CONNECTOR_LINES_CIRCLES:
     731                 :            :             case SID_CONNECTOR_CURVE_CIRCLES:
     732                 :            :             {
     733                 :            :                 // Verbinder mit Kreis-Enden
     734 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineStartItem(SVX_RESSTR(RID_SVXSTR_CIRCLE), aCircle));
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     735 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineStartWidthItem(nWidth));
                 [ #  # ]
     736 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineEndItem(SVX_RESSTR(RID_SVXSTR_CIRCLE), aCircle));
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     737 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineEndWidthItem(nWidth));
                 [ #  # ]
     738                 :            :             }
     739                 :          0 :             break;
     740                 :            : 
     741                 :            :             case SID_CONNECTOR_CIRCLE_START:
     742                 :            :             case SID_CONNECTOR_LINE_CIRCLE_START:
     743                 :            :             case SID_CONNECTOR_LINES_CIRCLE_START:
     744                 :            :             case SID_CONNECTOR_CURVE_CIRCLE_START:
     745                 :            :             {
     746                 :            :                 // Verbinder mit Kreis-Anfang
     747 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineStartItem(SVX_RESSTR(RID_SVXSTR_CIRCLE), aCircle));
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     748 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineStartWidthItem(nWidth));
                 [ #  # ]
     749                 :            :             }
     750                 :          0 :             break;
     751                 :            : 
     752                 :            :             case SID_CONNECTOR_CIRCLE_END:
     753                 :            :             case SID_CONNECTOR_LINE_CIRCLE_END:
     754                 :            :             case SID_CONNECTOR_LINES_CIRCLE_END:
     755                 :            :             case SID_CONNECTOR_CURVE_CIRCLE_END:
     756                 :            :             {
     757                 :            :                 // Verbinder mit Kreis-Ende
     758 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineEndItem(SVX_RESSTR(RID_SVXSTR_CIRCLE), aCircle));
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     759 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineEndWidthItem(nWidth));
                 [ #  # ]
     760                 :            :             }
     761                 :          0 :             break;
     762                 :            :         };
     763                 :            : 
     764                 :            :         // Und nochmal fuer die noch fehlenden Enden
     765   [ #  #  #  #  :          0 :         switch (nSlotId)
                      # ]
     766                 :            :         {
     767                 :            :             case SID_LINE_ARROW_CIRCLE:
     768                 :            :             {
     769                 :            :                 // Kreis-Ende
     770 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineEndItem(SVX_RESSTR(RID_SVXSTR_CIRCLE), aCircle));
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     771 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineEndWidthItem(nWidth));
                 [ #  # ]
     772                 :            :             }
     773                 :          0 :             break;
     774                 :            : 
     775                 :            :             case SID_LINE_CIRCLE_ARROW:
     776                 :            :             {
     777                 :            :                 // Kreis-Anfang
     778 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineStartItem(SVX_RESSTR(RID_SVXSTR_CIRCLE), aCircle));
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     779 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineStartWidthItem(nWidth));
                 [ #  # ]
     780                 :            :             }
     781                 :          0 :             break;
     782                 :            : 
     783                 :            :             case SID_LINE_ARROW_SQUARE:
     784                 :            :             {
     785                 :            :                 // Quadrat-Ende
     786 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineEndItem(SVX_RESSTR(RID_SVXSTR_SQUARE), aSquare));
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     787 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineEndWidthItem(nWidth));
                 [ #  # ]
     788                 :            :             }
     789                 :          0 :             break;
     790                 :            : 
     791                 :            :             case SID_LINE_SQUARE_ARROW:
     792                 :            :             {
     793                 :            :                 // Quadrat-Anfang
     794 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineStartItem(SVX_RESSTR(RID_SVXSTR_SQUARE), aSquare));
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     795 [ #  # ][ #  # ]:          0 :                 rAttr.Put(XLineStartWidthItem(nWidth));
                 [ #  # ]
     796                 :            :             }
     797                 :          0 :             break;
     798 [ #  # ][ #  # ]:          0 :         }
         [ #  # ][ #  # ]
     799                 :            :     }
     800                 :          0 : }
     801                 :            : 
     802                 :          0 : SdrObject* FuConstructRectangle::CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle)
     803                 :            : {
     804                 :            :     DBG_ASSERT( (nID != SID_DRAW_FONTWORK) && (nID != SID_DRAW_FONTWORK_VERTICAL ), "FuConstRectangle::CreateDefaultObject can not create Fontwork shapes!" );
     805                 :            : 
     806                 :            :     // case SID_DRAW_LINE:
     807                 :            :     // case SID_DRAW_XLINE:
     808                 :            :     // case SID_DRAW_MEASURELINE:
     809                 :            :     // case SID_LINE_ARROW_START:
     810                 :            :     // case SID_LINE_ARROW_END:
     811                 :            :     // case SID_LINE_ARROWS:
     812                 :            :     // case SID_LINE_ARROW_CIRCLE:
     813                 :            :     // case SID_LINE_CIRCLE_ARROW:
     814                 :            :     // case SID_LINE_ARROW_SQUARE:
     815                 :            :     // case SID_LINE_SQUARE_ARROW:
     816                 :            :     // case SID_DRAW_RECT:
     817                 :            :     // case SID_DRAW_RECT_NOFILL:
     818                 :            :     // case SID_DRAW_RECT_ROUND:
     819                 :            :     // case SID_DRAW_RECT_ROUND_NOFILL:
     820                 :            :     // case SID_DRAW_SQUARE:
     821                 :            :     // case SID_DRAW_SQUARE_NOFILL:
     822                 :            :     // case SID_DRAW_SQUARE_ROUND:
     823                 :            :     // case SID_DRAW_SQUARE_ROUND_NOFILL:
     824                 :            :     // case SID_DRAW_ELLIPSE:
     825                 :            :     // case SID_DRAW_ELLIPSE_NOFILL:
     826                 :            :     // case SID_DRAW_CIRCLE:
     827                 :            :     // case SID_DRAW_CIRCLE_NOFILL:
     828                 :            :     // case SID_DRAW_CAPTION:
     829                 :            :     // case SID_DRAW_CAPTION_VERTICAL:
     830                 :            :     // case SID_TOOL_CONNECTOR:
     831                 :            :     // case SID_CONNECTOR_ARROW_START:
     832                 :            :     // case SID_CONNECTOR_ARROW_END:
     833                 :            :     // case SID_CONNECTOR_ARROWS:
     834                 :            :     // case SID_CONNECTOR_CIRCLE_START:
     835                 :            :     // case SID_CONNECTOR_CIRCLE_END:
     836                 :            :     // case SID_CONNECTOR_CIRCLES:
     837                 :            :     // case SID_CONNECTOR_LINE:
     838                 :            :     // case SID_CONNECTOR_LINE_ARROW_START:
     839                 :            :     // case SID_CONNECTOR_LINE_ARROW_END:
     840                 :            :     // case SID_CONNECTOR_LINE_ARROWS:
     841                 :            :     // case SID_CONNECTOR_LINE_CIRCLE_START:
     842                 :            :     // case SID_CONNECTOR_LINE_CIRCLE_END:
     843                 :            :     // case SID_CONNECTOR_LINE_CIRCLES:
     844                 :            :     // case SID_CONNECTOR_CURVE:
     845                 :            :     // case SID_CONNECTOR_CURVE_ARROW_START:
     846                 :            :     // case SID_CONNECTOR_CURVE_ARROW_END:
     847                 :            :     // case SID_CONNECTOR_CURVE_ARROWS:
     848                 :            :     // case SID_CONNECTOR_CURVE_CIRCLE_START:
     849                 :            :     // case SID_CONNECTOR_CURVE_CIRCLE_END:
     850                 :            :     // case SID_CONNECTOR_CURVE_CIRCLES:
     851                 :            :     // case SID_CONNECTOR_LINES:
     852                 :            :     // case SID_CONNECTOR_LINES_ARROW_START:
     853                 :            :     // case SID_CONNECTOR_LINES_ARROW_END:
     854                 :            :     // case SID_CONNECTOR_LINES_ARROWS:
     855                 :            :     // case SID_CONNECTOR_LINES_CIRCLE_START:
     856                 :            :     // case SID_CONNECTOR_LINES_CIRCLE_END:
     857                 :            :     // case SID_CONNECTOR_LINES_CIRCLES:
     858                 :            : 
     859                 :            :     SdrObject* pObj = SdrObjFactory::MakeNewObject(
     860                 :          0 :         mpView->GetCurrentObjInventor(), mpView->GetCurrentObjIdentifier(),
     861                 :          0 :         0L, mpDoc);
     862                 :            : 
     863         [ #  # ]:          0 :     if(pObj)
     864                 :            :     {
     865                 :          0 :         Rectangle aRect(rRectangle);
     866                 :            : 
     867 [ #  # ][ #  # ]:          0 :         if(SID_DRAW_SQUARE == nID ||
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
     868                 :            :             SID_DRAW_SQUARE_NOFILL == nID ||
     869                 :            :             SID_DRAW_SQUARE_ROUND == nID ||
     870                 :            :             SID_DRAW_SQUARE_ROUND_NOFILL == nID ||
     871                 :            :             SID_DRAW_CIRCLE == nID ||
     872                 :            :             SID_DRAW_CIRCLE_NOFILL == nID)
     873                 :            :         {
     874                 :            :             // force quadratic
     875         [ #  # ]:          0 :             ImpForceQuadratic(aRect);
     876                 :            :         }
     877                 :            : 
     878                 :          0 :         Point aStart = aRect.TopLeft();
     879         [ #  # ]:          0 :         Point aEnd = aRect.BottomRight();
     880                 :            : 
     881   [ #  #  #  #  :          0 :         switch(nID)
                      # ]
     882                 :            :         {
     883                 :            :             case SID_DRAW_LINE:
     884                 :            :             case SID_DRAW_XLINE:
     885                 :            :             case SID_LINE_ARROW_START:
     886                 :            :             case SID_LINE_ARROW_END:
     887                 :            :             case SID_LINE_ARROWS:
     888                 :            :             case SID_LINE_ARROW_CIRCLE:
     889                 :            :             case SID_LINE_CIRCLE_ARROW:
     890                 :            :             case SID_LINE_ARROW_SQUARE:
     891                 :            :             case SID_LINE_SQUARE_ARROW:
     892                 :            :             {
     893 [ #  # ][ #  # ]:          0 :                 if(pObj->ISA(SdrPathObj))
                 [ #  # ]
     894                 :            :                 {
     895                 :          0 :                     sal_Int32 nYMiddle((aRect.Top() + aRect.Bottom()) / 2);
     896                 :            : 
     897         [ #  # ]:          0 :                     ::basegfx::B2DPolygon aB2DPolygon;
     898         [ #  # ]:          0 :                     aB2DPolygon.append(::basegfx::B2DPoint(aStart.X(), nYMiddle));
     899         [ #  # ]:          0 :                     aB2DPolygon.append(::basegfx::B2DPoint(aEnd.X(), nYMiddle));
     900 [ #  # ][ #  # ]:          0 :                     ((SdrPathObj*)pObj)->SetPathPoly(::basegfx::B2DPolyPolygon(aB2DPolygon));
         [ #  # ][ #  # ]
     901                 :            :                 }
     902                 :            :                 else
     903                 :            :                 {
     904                 :            :                     OSL_FAIL("Object is NO line object");
     905                 :            :                 }
     906                 :            : 
     907                 :          0 :                 break;
     908                 :            :             }
     909                 :            : 
     910                 :            :             case SID_DRAW_MEASURELINE:
     911                 :            :             {
     912 [ #  # ][ #  # ]:          0 :                 if(pObj->ISA(SdrMeasureObj))
                 [ #  # ]
     913                 :            :                 {
     914                 :          0 :                     sal_Int32 nYMiddle((aRect.Top() + aRect.Bottom()) / 2);
     915         [ #  # ]:          0 :                     ((SdrMeasureObj*)pObj)->SetPoint(Point(aStart.X(), nYMiddle), 0);
     916         [ #  # ]:          0 :                     ((SdrMeasureObj*)pObj)->SetPoint(Point(aEnd.X(), nYMiddle), 1);
     917                 :            :                 }
     918                 :            :                 else
     919                 :            :                 {
     920                 :            :                     OSL_FAIL("Object is NO measure object");
     921                 :            :                 }
     922                 :            : 
     923                 :          0 :                 break;
     924                 :            :             }
     925                 :            : 
     926                 :            :             case SID_TOOL_CONNECTOR:
     927                 :            :             case SID_CONNECTOR_ARROW_START:
     928                 :            :             case SID_CONNECTOR_ARROW_END:
     929                 :            :             case SID_CONNECTOR_ARROWS:
     930                 :            :             case SID_CONNECTOR_CIRCLE_START:
     931                 :            :             case SID_CONNECTOR_CIRCLE_END:
     932                 :            :             case SID_CONNECTOR_CIRCLES:
     933                 :            :             case SID_CONNECTOR_LINE:
     934                 :            :             case SID_CONNECTOR_LINE_ARROW_START:
     935                 :            :             case SID_CONNECTOR_LINE_ARROW_END:
     936                 :            :             case SID_CONNECTOR_LINE_ARROWS:
     937                 :            :             case SID_CONNECTOR_LINE_CIRCLE_START:
     938                 :            :             case SID_CONNECTOR_LINE_CIRCLE_END:
     939                 :            :             case SID_CONNECTOR_LINE_CIRCLES:
     940                 :            :             case SID_CONNECTOR_CURVE:
     941                 :            :             case SID_CONNECTOR_CURVE_ARROW_START:
     942                 :            :             case SID_CONNECTOR_CURVE_ARROW_END:
     943                 :            :             case SID_CONNECTOR_CURVE_ARROWS:
     944                 :            :             case SID_CONNECTOR_CURVE_CIRCLE_START:
     945                 :            :             case SID_CONNECTOR_CURVE_CIRCLE_END:
     946                 :            :             case SID_CONNECTOR_CURVE_CIRCLES:
     947                 :            :             case SID_CONNECTOR_LINES:
     948                 :            :             case SID_CONNECTOR_LINES_ARROW_START:
     949                 :            :             case SID_CONNECTOR_LINES_ARROW_END:
     950                 :            :             case SID_CONNECTOR_LINES_ARROWS:
     951                 :            :             case SID_CONNECTOR_LINES_CIRCLE_START:
     952                 :            :             case SID_CONNECTOR_LINES_CIRCLE_END:
     953                 :            :             case SID_CONNECTOR_LINES_CIRCLES:
     954                 :            :             {
     955 [ #  # ][ #  # ]:          0 :                 if(pObj->ISA(SdrEdgeObj))
                 [ #  # ]
     956                 :            :                 {
     957         [ #  # ]:          0 :                     ((SdrEdgeObj*)pObj)->SetTailPoint(sal_False, aStart);
     958         [ #  # ]:          0 :                     ((SdrEdgeObj*)pObj)->SetTailPoint(sal_True, aEnd);
     959                 :            :                 }
     960                 :            :                 else
     961                 :            :                 {
     962                 :            :                     OSL_FAIL("Object is NO connector object");
     963                 :            :                 }
     964                 :            : 
     965                 :          0 :                 break;
     966                 :            :             }
     967                 :            :             case SID_DRAW_CAPTION:
     968                 :            :             case SID_DRAW_CAPTION_VERTICAL:
     969                 :            :             {
     970 [ #  # ][ #  # ]:          0 :                 if(pObj->ISA(SdrCaptionObj))
                 [ #  # ]
     971                 :            :                 {
     972                 :          0 :                     sal_Bool bIsVertical(SID_DRAW_CAPTION_VERTICAL == nID);
     973                 :            : 
     974         [ #  # ]:          0 :                     ((SdrTextObj*)pObj)->SetVerticalWriting(bIsVertical);
     975                 :            : 
     976         [ #  # ]:          0 :                     if(bIsVertical)
     977                 :            :                     {
     978 [ #  # ][ #  # ]:          0 :                         SfxItemSet aSet(pObj->GetMergedItemSet());
     979 [ #  # ][ #  # ]:          0 :                         aSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_CENTER));
                 [ #  # ]
     980 [ #  # ][ #  # ]:          0 :                         aSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_RIGHT));
                 [ #  # ]
     981 [ #  # ][ #  # ]:          0 :                         pObj->SetMergedItemSet(aSet);
     982                 :            :                     }
     983                 :            : 
     984                 :            :                     // The default text is not inserted anymore.
     985                 :            :                     //  String aText(SdResId(STR_POOLSHEET_TEXT));
     986                 :            :                     //  ((SdrCaptionObj*)pObj)->SetText(aText);
     987                 :            : 
     988         [ #  # ]:          0 :                     ((SdrCaptionObj*)pObj)->SetLogicRect(aRect);
     989                 :            :                     ((SdrCaptionObj*)pObj)->SetTailPos(
     990 [ #  # ][ #  # ]:          0 :                         aRect.TopLeft() - Point(aRect.GetWidth() / 2, aRect.GetHeight() / 2));
                 [ #  # ]
     991                 :            :                 }
     992                 :            :                 else
     993                 :            :                 {
     994                 :            :                     OSL_FAIL("Object is NO caption object");
     995                 :            :                 }
     996                 :            : 
     997                 :          0 :                 break;
     998                 :            :             }
     999                 :            : 
    1000                 :            :             default:
    1001                 :            :             {
    1002         [ #  # ]:          0 :                 pObj->SetLogicRect(aRect);
    1003                 :            : 
    1004                 :          0 :                 break;
    1005                 :            :             }
    1006                 :            :         }
    1007                 :            : 
    1008         [ #  # ]:          0 :         SfxItemSet aAttr(mpDoc->GetPool());
    1009         [ #  # ]:          0 :         SetStyleSheet(aAttr, pObj);
    1010         [ #  # ]:          0 :         SetAttributes(aAttr, pObj);
    1011         [ #  # ]:          0 :         SetLineEnds(aAttr, pObj);
    1012 [ #  # ][ #  # ]:          0 :         pObj->SetMergedItemSet(aAttr);
    1013                 :            :     }
    1014                 :            : 
    1015                 :          0 :     return pObj;
    1016                 :            : }
    1017                 :            : 
    1018                 :            : } // end of namespace sd
    1019                 :            : 
    1020                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10