summaryrefslogtreecommitdiff
path: root/sd/source/ui/view/drviews9.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/view/drviews9.cxx')
-rw-r--r--sd/source/ui/view/drviews9.cxx880
1 files changed, 0 insertions, 880 deletions
diff --git a/sd/source/ui/view/drviews9.cxx b/sd/source/ui/view/drviews9.cxx
deleted file mode 100644
index ced5235cb..000000000
--- a/sd/source/ui/view/drviews9.cxx
+++ /dev/null
@@ -1,880 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sd.hxx"
-
-#include "DrawViewShell.hxx"
-#include <vcl/wrkwin.hxx>
-#include <svx/xgrad.hxx>
-#include <svx/svdpagv.hxx>
-#include <svx/xlnwtit.hxx>
-#include <svx/xlndsit.hxx>
-#include <svx/xflhtit.hxx>
-#include <svx/xflgrit.hxx>
-#include <svx/xlnclit.hxx>
-#include <svx/xflclit.hxx>
-#include <svx/xlnwtit.hxx>
-#include <sfx2/bindings.hxx>
-
-#include <sfx2/dispatch.hxx>
-#include <svl/intitem.hxx>
-#include <sfx2/app.hxx>
-#include <sfx2/request.hxx>
-#include <svl/stritem.hxx>
-#include <svx/svxids.hrc>
-#include <svx/xtable.hxx>
-#include <svx/gallery.hxx>
-#include <vcl/graph.hxx>
-#include <svx/svdograf.hxx>
-#include <svx/svdoole2.hxx>
-#include <sot/storage.hxx>
-#include <svl/whiter.hxx>
-#include <basic/sbstar.hxx>
-
-#include <sfx2/viewfrm.hxx>
-
-
-#include "app.hrc"
-#include "strings.hrc"
-#include "Window.hxx"
-#include "drawdoc.hxx"
-#include "drawview.hxx"
-#include "DrawDocShell.hxx"
-#include "sdresid.hxx"
-#include "fupoor.hxx"
-
-namespace sd {
-
-#ifndef SO2_DECL_SVINPLACEOBJECT_DEFINED
-#define SO2_DECL_SVINPLACEOBJECT_DEFINED
-SO2_DECL_REF(SvInPlaceObject)
-#endif
-#ifndef SO2_DECL_SVSTORAGE_DEFINED
-#define SO2_DECL_SVSTORAGE_DEFINED
-SO2_DECL_REF(SvStorage)
-#endif
-
-
-/*************************************************************************
-|*
-|* SfxRequests fuer Gallery bearbeiten
-|*
-\************************************************************************/
-
-void DrawViewShell::ExecGallery(SfxRequest& rReq)
-{
- // waehrend einer Diashow wird nichts ausgefuehrt!
- if(HasCurrentFunction(SID_PRESENTATION))
- return;
-
- const SfxItemSet* pArgs = rReq.GetArgs();
-
- if ( pArgs )
- {
- const sal_uInt32 nFormats = ( (SfxUInt32Item&) pArgs->Get( SID_GALLERY_FORMATS ) ).GetValue();
- GalleryExplorer* pGal = SVX_GALLERY();
-
- if ( pGal )
- {
- GetDocSh()->SetWaitCursor( sal_True );
-
- // Graphik einfuegen
- if (nFormats & SGA_FORMAT_GRAPHIC)
- {
- Graphic aGraphic = pGal->GetGraphic();
-
- // Ggf. Groesse reduzieren
- Window aWindow (GetActiveWindow());
- aWindow.SetMapMode(aGraphic.GetPrefMapMode());
- Size aSizePix = aWindow.LogicToPixel(aGraphic.GetPrefSize());
- aWindow.SetMapMode( MapMode(MAP_100TH_MM) );
- Size aSize = aWindow.PixelToLogic(aSizePix);
-
- // Groesse ggf. auf Seitengroesse begrenzen
- SdrPage* pPage = mpDrawView->GetSdrPageView()->GetPage();
- Size aPageSize = pPage->GetSize();
- aPageSize.Width() -= pPage->GetLftBorder() + pPage->GetRgtBorder();
- aPageSize.Height() -= pPage->GetUppBorder() + pPage->GetLwrBorder();
-
-
- // Falls Grafik zu gross, wird die Grafik
- // in die Seite eingepasst
- if ( ( ( aSize.Height() > aPageSize.Height() ) || ( aSize.Width() > aPageSize.Width() ) ) &&
- aSize.Height() && aPageSize.Height() )
- {
- float fGrfWH = (float)aSize.Width() /
- (float)aSize.Height();
- float fWinWH = (float)aPageSize.Width() /
- (float)aPageSize.Height();
-
- // Grafik an Pagesize anpassen (skaliert)
- if ((fGrfWH != 0.F) && (fGrfWH < fWinWH))
- {
- aSize.Width() = (long)(aPageSize.Height() * fGrfWH);
- aSize.Height()= aPageSize.Height();
- }
- else
- {
- aSize.Width() = aPageSize.Width();
- aSize.Height()= (long)(aPageSize.Width() / fGrfWH);
- }
- }
-
-
- // Ausgaberechteck fuer Grafik setzen
- Point aPnt ((aPageSize.Width() - aSize.Width()) / 2,
- (aPageSize.Height() - aSize.Height()) / 2);
- aPnt += Point(pPage->GetLftBorder(), pPage->GetUppBorder());
- Rectangle aRect (aPnt, aSize);
-
- SdrGrafObj* pGrafObj = NULL;
-
- sal_Bool bInsertNewObject = sal_True;
-
- if ( mpDrawView->AreObjectsMarked() )
- {
- /******************************************************
- * Ist ein leeres Graphik-Objekt vorhanden?
- ******************************************************/
- const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
-
- if (rMarkList.GetMarkCount() == 1)
- {
- SdrMark* pMark = rMarkList.GetMark(0);
- SdrObject* pObj = pMark->GetMarkedSdrObj();
-
- if (pObj->GetObjInventor() == SdrInventor && pObj->GetObjIdentifier() == OBJ_GRAF)
- {
- pGrafObj = (SdrGrafObj*) pObj;
-
- if( pGrafObj->IsEmptyPresObj() )
- {
- /******************************************
- * Das leere Graphik-Objekt bekommt eine neue
- * Graphik
- ******************************************/
- bInsertNewObject = sal_False;
-
- SdrGrafObj* pNewGrafObj = (SdrGrafObj*) pGrafObj->Clone();
- pNewGrafObj->SetEmptyPresObj(sal_False);
- pNewGrafObj->SetOutlinerParaObject(NULL);
- pNewGrafObj->SetGraphic(aGraphic);
-
- String aStr(mpDrawView->GetDescriptionOfMarkedObjects());
- aStr += sal_Unicode(' ');
- aStr += String(SdResId(STR_UNDO_REPLACE));
- mpDrawView->BegUndo(aStr);
- SdrPageView* pPV = mpDrawView->GetSdrPageView();
- mpDrawView->ReplaceObjectAtView(pGrafObj, *pPV, pNewGrafObj);
- mpDrawView->EndUndo();
- }
- }
- }
- }
-
-
- if( bInsertNewObject )
- {
- pGrafObj = new SdrGrafObj(aGraphic, aRect);
- SdrPageView* pPV = mpDrawView->GetSdrPageView();
- mpDrawView->InsertObjectAtView(pGrafObj, *pPV, SDRINSERT_SETDEFLAYER);
- }
-
- // Soll nur ein Link benutzt werden?
- if( pGrafObj && pGal->IsLinkage() )
- pGrafObj->SetGraphicLink( pGal->GetURL().GetMainURL( INetURLObject::NO_DECODE ), pGal->GetFilterName() );
- }
- // insert sound
- else if( nFormats & SGA_FORMAT_SOUND )
- {
- const SfxStringItem aMediaURLItem( SID_INSERT_AVMEDIA, pGal->GetURL().GetMainURL( INetURLObject::NO_DECODE ) );
- GetViewFrame()->GetDispatcher()->Execute( SID_INSERT_AVMEDIA, SFX_CALLMODE_SYNCHRON, &aMediaURLItem, 0L );
- }
-
- GetDocSh()->SetWaitCursor( sal_False );
- }
- }
-}
-
-
-/*************************************************************************
-|*
-|* Statuswerte fuer Gallery zurueckgeben
-|*
-\************************************************************************/
-
-void DrawViewShell::GetGalleryState(SfxItemSet& )
-{
-}
-
-/*************************************************************************
-|*
-|* Makros fuer die Attributeinstellungen bearbeiten
-|*
-\************************************************************************/
-
-//
-// die vorgehensweise fuer die attributaenderung ist praktisch ueberall identisch
-// 1. bisherige attribute auslesen
-// 2. parameter aus dem basic-set auslesen
-// 3. gewaehltes item aus dem attribut-set loeschen
-// 4. neues attribut-item erzeugen
-// 5. item in den set eintragen
-//
-void DrawViewShell::AttrExec (SfxRequest &rReq)
-{
- // waehrend einer Diashow wird nichts ausgefuehrt!
- if(HasCurrentFunction(SID_PRESENTATION))
- return;
-
- CheckLineTo (rReq);
-
- SfxBindings& rBindings = GetViewFrame()->GetBindings();
- SfxItemSet* pAttr = new SfxItemSet ( GetDoc()->GetPool() );
-
- GetView()->GetAttributes( *pAttr );
- const SfxItemSet* pArgs = rReq.GetArgs();
-
- switch (rReq.GetSlot ())
- {
- // neuen fuellstil setzen
- case SID_SETFILLSTYLE :
- if (pArgs)
- if (pArgs->Count () == 1)
- {
- SFX_REQUEST_ARG (rReq, pFillStyle, SfxUInt32Item, ID_VAL_STYLE, sal_False);
- if (CHECK_RANGE (XFILL_NONE, (sal_Int32)pFillStyle->GetValue (), XFILL_BITMAP))
- {
- pAttr->ClearItem (XATTR_FILLSTYLE);
- pAttr->Put (XFillStyleItem ((XFillStyle) pFillStyle->GetValue ()), XATTR_FILLSTYLE);
- rBindings.Invalidate (SID_ATTR_FILL_STYLE);
- }
- else StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
-
- break;
- }
-
- StarBASIC::FatalError (SbERR_WRONG_ARGS);
- break;
-
- // linienstil neu bestimmen
- case SID_SETLINESTYLE :
- if (pArgs)
- if (pArgs->Count () == 1)
- {
- SFX_REQUEST_ARG (rReq, pLineStyle, SfxUInt32Item, ID_VAL_STYLE, sal_False);
- if (CHECK_RANGE (XLINE_NONE, (sal_Int32)pLineStyle->GetValue (), XLINE_DASH))
- {
- pAttr->ClearItem (XATTR_LINESTYLE);
- pAttr->Put (XLineStyleItem ((XLineStyle) pLineStyle->GetValue ()), XATTR_LINESTYLE);
- rBindings.Invalidate (SID_ATTR_LINE_STYLE);
- }
- else StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
-
- break;
- }
-
- StarBASIC::FatalError (SbERR_WRONG_ARGS);
- break;
-
- // linienbreite setzen
- case SID_SETLINEWIDTH :
- if (pArgs)
- if (pArgs->Count () == 1)
- {
- SFX_REQUEST_ARG (rReq, pLineWidth, SfxUInt32Item, ID_VAL_WIDTH, sal_False);
- pAttr->ClearItem (XATTR_LINEWIDTH);
- pAttr->Put (XLineWidthItem (pLineWidth->GetValue ()), XATTR_LINEWIDTH);
- rBindings.Invalidate (SID_ATTR_LINE_WIDTH);
- break;
- }
-
- StarBASIC::FatalError (SbERR_WRONG_ARGS);
- break;
-
- case SID_SETFILLCOLOR :
- if (pArgs)
- if (pArgs->Count () == 3)
- {
- SFX_REQUEST_ARG (rReq, pRed, SfxUInt32Item, ID_VAL_RED, sal_False);
- SFX_REQUEST_ARG (rReq, pGreen, SfxUInt32Item, ID_VAL_GREEN, sal_False);
- SFX_REQUEST_ARG (rReq, pBlue, SfxUInt32Item, ID_VAL_BLUE, sal_False);
-
- pAttr->ClearItem (XATTR_FILLCOLOR);
- pAttr->ClearItem (XATTR_FILLSTYLE);
- pAttr->Put (XFillColorItem (-1, Color ((sal_uInt8) pRed->GetValue (),
- (sal_uInt8) pGreen->GetValue (),
- (sal_uInt8) pBlue->GetValue ())),
- XATTR_FILLCOLOR);
- pAttr->Put (XFillStyleItem (XFILL_SOLID), XATTR_FILLSTYLE);
- rBindings.Invalidate (SID_ATTR_FILL_COLOR);
- rBindings.Invalidate (SID_ATTR_FILL_STYLE);
- break;
- }
-
- StarBASIC::FatalError (SbERR_WRONG_ARGS);
- break;
-
- case SID_SETLINECOLOR :
- if (pArgs)
- if (pArgs->Count () == 3)
- {
- SFX_REQUEST_ARG (rReq, pRed, SfxUInt32Item, ID_VAL_RED, sal_False);
- SFX_REQUEST_ARG (rReq, pGreen, SfxUInt32Item, ID_VAL_GREEN, sal_False);
- SFX_REQUEST_ARG (rReq, pBlue, SfxUInt32Item, ID_VAL_BLUE, sal_False);
-
- pAttr->ClearItem (XATTR_LINECOLOR);
- pAttr->Put (XLineColorItem (-1, Color ((sal_uInt8) pRed->GetValue (),
- (sal_uInt8) pGreen->GetValue (),
- (sal_uInt8) pBlue->GetValue ())),
- XATTR_LINECOLOR);
- rBindings.Invalidate (SID_ATTR_LINE_COLOR);
- break;
- }
-
- StarBASIC::FatalError (SbERR_WRONG_ARGS);
- break;
-
- case SID_SETGRADSTARTCOLOR :
- case SID_SETGRADENDCOLOR :
- if (pArgs)
- if (pArgs->Count () == 4)
- {
- SFX_REQUEST_ARG (rReq, pName, SfxStringItem, ID_VAL_INDEX, sal_False);
- SFX_REQUEST_ARG (rReq, pRed, SfxUInt32Item, ID_VAL_RED, sal_False);
- SFX_REQUEST_ARG (rReq, pGreen, SfxUInt32Item, ID_VAL_GREEN, sal_False);
- SFX_REQUEST_ARG (rReq, pBlue, SfxUInt32Item, ID_VAL_BLUE, sal_False);
-
- XGradientList *pGradientList = GetDoc()->GetGradientList ();
- long nCounts = pGradientList->Count ();
- Color aColor ((sal_uInt8) pRed->GetValue (),
- (sal_uInt8) pGreen->GetValue (),
- (sal_uInt8) pBlue->GetValue ());
- long i;
-
- pAttr->ClearItem (XATTR_FILLGRADIENT);
- pAttr->ClearItem (XATTR_FILLSTYLE);
-
- for ( i = 0; i < nCounts; i ++)
- {
- XGradientEntry *pEntry = pGradientList->GetGradient (i);
-
- if (pEntry->GetName () == pName->GetValue ())
- {
- XGradient &rGradient = pEntry->GetGradient ();
-
- if (rReq.GetSlot () == SID_SETGRADSTARTCOLOR) rGradient.SetStartColor (aColor);
- else rGradient.SetEndColor (aColor);
-
- pAttr->Put (XFillStyleItem (XFILL_GRADIENT), XATTR_FILLSTYLE);
- pAttr->Put (XFillGradientItem (pName->GetValue (), rGradient), XATTR_FILLGRADIENT);
- break;
- }
- }
-
- if (i >= nCounts)
- {
- Color aBlack (0, 0, 0);
- XGradient aGradient ((rReq.GetSlot () == SID_SETGRADSTARTCOLOR)
- ? aColor
- : aBlack,
- (rReq.GetSlot () == SID_SETGRADENDCOLOR)
- ? aColor
- : aBlack);
-
- GetDoc()->GetGradientList ()->Insert (new XGradientEntry (aGradient, pName->GetValue ()));
-
- pAttr->Put (XFillStyleItem (XFILL_GRADIENT), XATTR_FILLSTYLE);
- pAttr->Put (XFillGradientItem (pName->GetValue (), aGradient), XATTR_FILLGRADIENT);
- }
-
- rBindings.Invalidate (SID_ATTR_FILL_STYLE);
- rBindings.Invalidate (SID_ATTR_FILL_GRADIENT);
- break;
- }
-
- StarBASIC::FatalError (SbERR_WRONG_ARGS);
- break;
-
- case SID_SETHATCHCOLOR :
- if (pArgs)
- if (pArgs->Count () == 4)
- {
- SFX_REQUEST_ARG (rReq, pName, SfxStringItem, ID_VAL_INDEX, sal_False);
- SFX_REQUEST_ARG (rReq, pRed, SfxUInt32Item, ID_VAL_RED, sal_False);
- SFX_REQUEST_ARG (rReq, pGreen, SfxUInt32Item, ID_VAL_GREEN, sal_False);
- SFX_REQUEST_ARG (rReq, pBlue, SfxUInt32Item, ID_VAL_BLUE, sal_False);
-
- XHatchList *pHatchList = GetDoc()->GetHatchList ();
- long nCounts = pHatchList->Count ();
- Color aColor ((sal_uInt8) pRed->GetValue (),
- (sal_uInt8) pGreen->GetValue (),
- (sal_uInt8) pBlue->GetValue ());
- long i;
-
- pAttr->ClearItem (XATTR_FILLHATCH);
- pAttr->ClearItem (XATTR_FILLSTYLE);
-
- for ( i = 0; i < nCounts; i ++)
- {
- XHatchEntry *pEntry = pHatchList->GetHatch (i);
-
- if (pEntry->GetName () == pName->GetValue ())
- {
- XHatch &rHatch = pEntry->GetHatch ();
-
- rHatch.SetColor (aColor);
-
- pAttr->Put (XFillStyleItem (XFILL_HATCH), XATTR_FILLSTYLE);
- pAttr->Put (XFillHatchItem (pName->GetValue (), rHatch), XATTR_FILLHATCH);
- break;
- }
- }
-
- if (i >= nCounts)
- {
- XHatch aHatch (aColor);
-
- GetDoc()->GetHatchList ()->Insert (new XHatchEntry (aHatch, pName->GetValue ()));
-
- pAttr->Put (XFillStyleItem (XFILL_HATCH), XATTR_FILLSTYLE);
- pAttr->Put (XFillHatchItem (pName->GetValue (), aHatch), XATTR_FILLHATCH);
- }
-
- rBindings.Invalidate (SID_ATTR_FILL_HATCH);
- rBindings.Invalidate (SID_ATTR_FILL_STYLE);
- break;
- }
-
- StarBASIC::FatalError (SbERR_WRONG_ARGS);
- break;
-
- // einstellungen fuer liniendash
- case SID_DASH :
- if (pArgs)
- if (pArgs->Count () == 7)
- {
- SFX_REQUEST_ARG (rReq, pName, SfxStringItem, ID_VAL_INDEX, sal_False);
- SFX_REQUEST_ARG (rReq, pStyle, SfxUInt32Item, ID_VAL_STYLE, sal_False);
- SFX_REQUEST_ARG (rReq, pDots, SfxUInt32Item, ID_VAL_DOTS, sal_False);
- SFX_REQUEST_ARG (rReq, pDotLen, SfxUInt32Item, ID_VAL_DOTLEN, sal_False);
- SFX_REQUEST_ARG (rReq, pDashes, SfxUInt32Item, ID_VAL_DASHES, sal_False);
- SFX_REQUEST_ARG (rReq, pDashLen, SfxUInt32Item, ID_VAL_DASHLEN, sal_False);
- SFX_REQUEST_ARG (rReq, pDistance, SfxUInt32Item, ID_VAL_DISTANCE, sal_False);
-
- if (CHECK_RANGE (XDASH_RECT, (sal_Int32)pStyle->GetValue (), XDASH_ROUNDRELATIVE))
- {
- XDash aNewDash ((XDashStyle) pStyle->GetValue (), (short) pDots->GetValue (), pDotLen->GetValue (),
- (short) pDashes->GetValue (), pDashLen->GetValue (), pDistance->GetValue ());
-
- pAttr->ClearItem (XATTR_LINEDASH);
- pAttr->ClearItem (XATTR_LINESTYLE);
-
- XDashList *pDashList = GetDoc()->GetDashList ();
- long nCounts = pDashList->Count ();
- XDashEntry *pEntry = new XDashEntry (aNewDash, pName->GetValue ());
- long i;
-
- for ( i = 0; i < nCounts; i++ )
- if (pDashList->GetDash (i)->GetName () == pName->GetValue ())
- break;
-
- if (i < nCounts)
- pDashList->Replace (pEntry, i);
- else
- pDashList->Insert (pEntry);
-
- pAttr->Put (XLineDashItem (pName->GetValue (), aNewDash), XATTR_LINEDASH);
- pAttr->Put (XLineStyleItem (XLINE_DASH), XATTR_LINESTYLE);
- rBindings.Invalidate (SID_ATTR_LINE_DASH);
- rBindings.Invalidate (SID_ATTR_FILL_STYLE);
- }
- else StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
-
- break;
- }
-
- StarBASIC::FatalError (SbERR_WRONG_ARGS);
- break;
-
- // einstellungen fuer farbverlauf
- case SID_GRADIENT :
- if (pArgs)
- if (pArgs->Count () == 8)
- {
- SFX_REQUEST_ARG (rReq, pName, SfxStringItem, ID_VAL_INDEX, sal_False);
- SFX_REQUEST_ARG (rReq, pStyle, SfxUInt32Item, ID_VAL_STYLE, sal_False);
- SFX_REQUEST_ARG (rReq, pAngle, SfxUInt32Item, ID_VAL_ANGLE, sal_False);
- SFX_REQUEST_ARG (rReq, pBorder, SfxUInt32Item, ID_VAL_BORDER, sal_False);
- SFX_REQUEST_ARG (rReq, pCenterX, SfxUInt32Item, ID_VAL_CENTER_X, sal_False);
- SFX_REQUEST_ARG (rReq, pCenterY, SfxUInt32Item, ID_VAL_CENTER_Y, sal_False);
- SFX_REQUEST_ARG (rReq, pStart, SfxUInt32Item, ID_VAL_STARTINTENS, sal_False);
- SFX_REQUEST_ARG (rReq, pEnd, SfxUInt32Item, ID_VAL_ENDINTENS, sal_False);
-
- if (CHECK_RANGE (XGRAD_LINEAR, (sal_Int32)pStyle->GetValue (), XGRAD_RECT) &&
- CHECK_RANGE (0, (sal_Int32)pAngle->GetValue (), 360) &&
- CHECK_RANGE (0, (sal_Int32)pBorder->GetValue (), 100) &&
- CHECK_RANGE (0, (sal_Int32)pCenterX->GetValue (), 100) &&
- CHECK_RANGE (0, (sal_Int32)pCenterY->GetValue (), 100) &&
- CHECK_RANGE (0, (sal_Int32)pStart->GetValue (), 100) &&
- CHECK_RANGE (0, (sal_Int32)pEnd->GetValue (), 100))
- {
- pAttr->ClearItem (XATTR_FILLGRADIENT);
- pAttr->ClearItem (XATTR_FILLSTYLE);
-
- XGradientList *pGradientList = GetDoc()->GetGradientList ();
- long nCounts = pGradientList->Count ();
- long i;
-
- for ( i = 0; i < nCounts; i++ )
- {
- XGradientEntry *pEntry = pGradientList->GetGradient (i);
-
- if (pEntry->GetName () == pName->GetValue ())
- {
- XGradient &rGradient = pEntry->GetGradient ();
-
- rGradient.SetGradientStyle ((XGradientStyle) pStyle->GetValue ());
- rGradient.SetAngle (pAngle->GetValue () * 10);
- rGradient.SetBorder ((short) pBorder->GetValue ());
- rGradient.SetXOffset ((short) pCenterX->GetValue ());
- rGradient.SetYOffset ((short) pCenterY->GetValue ());
- rGradient.SetStartIntens ((short) pStart->GetValue ());
- rGradient.SetEndIntens ((short) pEnd->GetValue ());
-
- pAttr->Put (XFillStyleItem (XFILL_GRADIENT), XATTR_FILLSTYLE);
- pAttr->Put (XFillGradientItem (pName->GetValue (), rGradient), XATTR_FILLGRADIENT);
- break;
- }
- }
-
- if (i >= nCounts)
- {
- Color aBlack (0, 0, 0);
- XGradient aGradient (aBlack, aBlack, (XGradientStyle) pStyle->GetValue (),
- pAngle->GetValue () * 10, (short) pCenterX->GetValue (),
- (short) pCenterY->GetValue (), (short) pBorder->GetValue (),
- (short) pStart->GetValue (), (short) pEnd->GetValue ());
-
- pGradientList->Insert (new XGradientEntry (aGradient, pName->GetValue ()));
- pAttr->Put (XFillStyleItem (XFILL_GRADIENT), XATTR_FILLSTYLE);
- pAttr->Put (XFillGradientItem (pName->GetValue (), aGradient), XATTR_FILLGRADIENT);
- }
-
- rBindings.Invalidate (SID_ATTR_FILL_GRADIENT);
- rBindings.Invalidate (SID_ATTR_FILL_STYLE);
- }
- else StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
-
- break;
- }
-
- StarBASIC::FatalError (SbERR_WRONG_ARGS);
- break;
-
- // einstellungen fuer schraffur
- case SID_HATCH :
- if (pArgs)
- if (pArgs->Count () == 4)
- {
- SFX_REQUEST_ARG (rReq, pName, SfxStringItem, ID_VAL_INDEX, sal_False);
- SFX_REQUEST_ARG (rReq, pStyle, SfxUInt32Item, ID_VAL_STYLE, sal_False);
- SFX_REQUEST_ARG (rReq, pDistance, SfxUInt32Item, ID_VAL_DISTANCE, sal_False);
- SFX_REQUEST_ARG (rReq, pAngle, SfxUInt32Item, ID_VAL_ANGLE, sal_False);
-
- if (CHECK_RANGE (XHATCH_SINGLE, (sal_Int32)pStyle->GetValue (), XHATCH_TRIPLE) &&
- CHECK_RANGE (0, (sal_Int32)pAngle->GetValue (), 360))
- {
- pAttr->ClearItem (XATTR_FILLHATCH);
- pAttr->ClearItem (XATTR_FILLSTYLE);
-
- XHatchList *pHatchList = GetDoc()->GetHatchList ();
- long nCounts = pHatchList->Count ();
- long i;
-
- for ( i = 0; i < nCounts; i++ )
- {
- XHatchEntry *pEntry = pHatchList->GetHatch (i);
-
- if (pEntry->GetName () == pName->GetValue ())
- {
- XHatch &rHatch = pEntry->GetHatch ();
-
- rHatch.SetHatchStyle ((XHatchStyle) pStyle->GetValue ());
- rHatch.SetDistance (pDistance->GetValue ());
- rHatch.SetAngle (pAngle->GetValue () * 10);
-
- pAttr->Put (XFillStyleItem (XFILL_HATCH), XATTR_FILLSTYLE);
- pAttr->Put (XFillHatchItem (pName->GetValue (), rHatch), XATTR_FILLHATCH);
- break;
- }
- }
-
- if (i >= nCounts)
- {
- Color aBlack (0, 0, 0);
- XHatch aHatch (aBlack, (XHatchStyle) pStyle->GetValue (), pDistance->GetValue (),
- pAngle->GetValue () * 10);
-
- pHatchList->Insert (new XHatchEntry (aHatch, pName->GetValue ()));
- pAttr->Put (XFillStyleItem (XFILL_HATCH), XATTR_FILLSTYLE);
- pAttr->Put (XFillHatchItem (pName->GetValue (), aHatch), XATTR_FILLHATCH);
- }
-
- rBindings.Invalidate (SID_ATTR_FILL_HATCH);
- rBindings.Invalidate (SID_ATTR_FILL_STYLE);
- }
- else StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
-
- break;
- }
-
- StarBASIC::FatalError (SbERR_WRONG_ARGS);
- break;
-
- case SID_SELECTGRADIENT :
- if (pArgs)
- if (pArgs->Count () == 1)
- {
- SFX_REQUEST_ARG (rReq, pName, SfxStringItem, ID_VAL_INDEX, sal_False);
-
- XGradientList *pGradientList = GetDoc()->GetGradientList ();
- long nCounts = pGradientList->Count ();
-
- for (long i = 0;
- i < nCounts;
- i ++)
- {
- XGradientEntry *pEntry = pGradientList->GetGradient (i);
-
- if (pEntry->GetName () == pName->GetValue ())
- {
- pAttr->ClearItem (XATTR_FILLGRADIENT);
- pAttr->ClearItem (XATTR_FILLSTYLE);
- pAttr->Put (XFillStyleItem (XFILL_GRADIENT), XATTR_FILLSTYLE);
- pAttr->Put (XFillGradientItem (pName->GetValue (), pEntry->GetGradient ()), XATTR_FILLGRADIENT);
-
- rBindings.Invalidate (SID_ATTR_FILL_GRADIENT);
- rBindings.Invalidate (SID_ATTR_FILL_STYLE);
- break;
- }
- }
-
- break;
- }
-
- StarBASIC::FatalError (SbERR_WRONG_ARGS);
- break;
-
- case SID_SELECTHATCH :
- if (pArgs)
- if (pArgs->Count () == 1)
- {
- SFX_REQUEST_ARG (rReq, pName, SfxStringItem, ID_VAL_INDEX, sal_False);
-
- XHatchList *pHatchList = GetDoc()->GetHatchList ();
- long nCounts = pHatchList->Count ();
-
- for (long i = 0;
- i < nCounts;
- i ++)
- {
- XHatchEntry *pEntry = pHatchList->GetHatch (i);
-
- if (pEntry->GetName () == pName->GetValue ())
- {
- pAttr->ClearItem (XATTR_FILLHATCH);
- pAttr->ClearItem (XATTR_FILLSTYLE);
- pAttr->Put (XFillStyleItem (XFILL_HATCH), XATTR_FILLSTYLE);
- pAttr->Put (XFillHatchItem (pName->GetValue (), pEntry->GetHatch ()), XATTR_FILLHATCH);
-
- rBindings.Invalidate (SID_ATTR_FILL_HATCH);
- rBindings.Invalidate (SID_ATTR_FILL_STYLE);
- break;
- }
- }
-
- break;
- }
-
- StarBASIC::FatalError (SbERR_WRONG_ARGS);
- break;
-
- case SID_UNSELECT :
- mpDrawView->UnmarkAll ();
- break;
-
- case SID_GETRED :
- if (pArgs)
- if (pArgs->Count () == 1)
- {
- break;
- }
-
- StarBASIC::FatalError (SbERR_WRONG_ARGS);
- break;
-
-/* case SID_SETFONTFAMILYNAME :
- case SID_SETFONTSTYLENAME :
- case SID_SETFONTFAMILY :
- case SID_SETFONTPITCH :
- case SID_SETFONTCHARSET :
- case SID_SETFONTPOSTURE :
- case SID_SETFONTWEIGHT :
- case SID_SETFONTUNDERLINE :
- case SID_SETFONTCROSSEDOUT :
- case SID_SETFONTSHADOWED :
- case SID_SETFONTCONTOUR :
- case SID_SETFONTCOLOR :
- case SID_SETFONTLANGUAGE :
- case SID_SETFONTWORDLINE :
- case SID_SETFONTCASEMAP :
- case SID_SETFONTESCAPE :
- case SID_SETFONTKERNING :
- break;*/
-
- default :
- ;
- }
-
- mpDrawView->SetAttributes (*(const SfxItemSet *) pAttr);
- rReq.Ignore ();
- delete pAttr;
-}
-
-/*************************************************************************
-|*
-|* Makros fuer die Attributeinstellungen bearbeiten
-|*
-\************************************************************************/
-
-void DrawViewShell::AttrState (SfxItemSet& rSet)
-{
- SfxWhichIter aIter (rSet);
- sal_uInt16 nWhich = aIter.FirstWhich ();
- SfxItemSet aAttr( GetDoc()->GetPool() );
- mpDrawView->GetAttributes( aAttr );
-
- while (nWhich)
- {
- switch (nWhich)
- {
- case SID_GETFILLSTYLE :
- {
- const XFillStyleItem &rFillStyleItem = (const XFillStyleItem &) aAttr.Get (XATTR_FILLSTYLE);
-
- rSet.Put (SfxUInt32Item (nWhich, (long) rFillStyleItem.GetValue ()));
- break;
- }
-
- case SID_GETLINESTYLE :
- {
- const XLineStyleItem &rLineStyleItem = (const XLineStyleItem &) aAttr.Get (XATTR_LINESTYLE);
-
- rSet.Put (SfxUInt32Item (nWhich, (long) rLineStyleItem.GetValue ()));
- break;
- }
-
- case SID_GETLINEWIDTH :
- {
- const XLineWidthItem &rLineWidthItem = (const XLineWidthItem &) aAttr.Get (XATTR_LINEWIDTH);
-
- rSet.Put (SfxUInt32Item (nWhich, (long) rLineWidthItem.GetValue ()));
- break;
- }
-
- case SID_GETGREEN :
- case SID_GETRED :
- case SID_GETBLUE :
- {
- const SfxUInt32Item &rWhatKind = (const SfxUInt32Item &) rSet.Get (ID_VAL_WHATKIND);
- Color aColor;
-
- switch (rWhatKind.GetValue ())
- {
- case 1 :
- {
- const XLineColorItem &rLineColorItem = (const XLineColorItem &) aAttr.Get (XATTR_LINECOLOR);
-
- aColor = rLineColorItem.GetColorValue ();
- break;
- }
-
- case 2 :
- {
- const XFillColorItem &rFillColorItem = (const XFillColorItem &) aAttr.Get (XATTR_FILLCOLOR);
-
- aColor = rFillColorItem.GetColorValue ();
- break;
- }
-
- case 3 :
- case 4 :
- {
- const XFillGradientItem &rFillGradientItem = (const XFillGradientItem &) aAttr.Get (XATTR_FILLGRADIENT);
- const XGradient &rGradient = rFillGradientItem.GetGradientValue ();
-
- aColor = (rWhatKind.GetValue () == 3)
- ? rGradient.GetStartColor ()
- : rGradient.GetEndColor ();
- break;
- }
-
- case 5:
- {
- const XFillHatchItem &rFillHatchItem = (const XFillHatchItem &) aAttr.Get (XATTR_FILLHATCH);
- const XHatch &rHatch = rFillHatchItem.GetHatchValue ();
-
- aColor = rHatch.GetColor ();
- break;
- }
-
- default :
- ;
- }
-
- rSet.Put (SfxUInt32Item (nWhich, (long) ((nWhich == SID_GETRED)
- ? aColor.GetRed ()
- : (nWhich == SID_GETGREEN)
- ? aColor.GetGreen ()
- : aColor.GetBlue ())));
- break;
- }
-
- default :
- ;
- }
-
- nWhich = aIter.NextWhich ();
- }
-}
-
-} // end of namespace sd
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */