diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-01-28 20:53:39 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-01-28 20:53:39 +0100 |
commit | 428df2c52fba1dfd728bff7bc981e00b983704dd (patch) | |
tree | 9e9f67205cd5b72f1031721273e1534a3a1e5b0f /binfilter/bf_sch | |
parent | e4df1fafdafe23f6c36ecd3993bb30e71948e6dc (diff) |
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'binfilter/bf_sch')
120 files changed, 0 insertions, 42809 deletions
diff --git a/binfilter/bf_sch/source/core/makefile.mk b/binfilter/bf_sch/source/core/makefile.mk deleted file mode 100644 index 9abe998a0..000000000 --- a/binfilter/bf_sch/source/core/makefile.mk +++ /dev/null @@ -1,100 +0,0 @@ -#************************************************************************* -# -# 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. -# -#************************************************************************* - -PRJ=..$/..$/.. -BFPRJ=..$/.. - -PROJECTPCH=sch -PROJECTPCHSOURCE=$(BFPRJ)$/util$/sch_sch - -PRJNAME=binfilter -TARGET=sch_core - -NO_HIDS=TRUE - -# --- Settings ----------------------------------------------------- -.INCLUDE : settings.mk -alllangiso=en-US -INC+= -I$(PRJ)$/inc$/bf_sch -# --- Files -------------------------------------------------------- - -SRS1NAME=$(TARGET) -SRC1FILES = sch_glob.src - -SLOFILES = \ - $(SLO)$/sch_chtscene.obj \ - $(SLO)$/sch_globfunc.obj \ - $(SLO)$/sch_chtmodel.obj \ - $(SLO)$/sch_chtmode1.obj \ - $(SLO)$/sch_chtmode2.obj \ - $(SLO)$/sch_chtmode3.obj \ - $(SLO)$/sch_chtmode4.obj \ - $(SLO)$/sch_chtmode5.obj \ - $(SLO)$/sch_chtmode6.obj \ - $(SLO)$/sch_chtmode7.obj \ - $(SLO)$/sch_chtmode8.obj \ - $(SLO)$/sch_charttyp.obj \ - $(SLO)$/sch_chtmode9.obj \ - $(SLO)$/sch_chartbar.obj \ - $(SLO)$/sch_chtmod2a.obj \ - $(SLO)$/sch_chtmod3d.obj \ - $(SLO)$/sch_chtm3d2.obj \ - $(SLO)$/sch_chartdoc.obj \ - $(SLO)$/sch_stlsheet.obj \ - $(SLO)$/sch_schgroup.obj \ - $(SLO)$/sch_stlpool.obj \ - $(SLO)$/sch_objfac.obj \ - $(SLO)$/sch_axisid.obj \ - $(SLO)$/sch_objid.obj \ - $(SLO)$/sch_objadj.obj \ - $(SLO)$/sch_datarow.obj \ - $(SLO)$/sch_datapoin.obj \ - $(SLO)$/sch_schiocmp.obj \ - $(SLO)$/sch_itempool.obj \ - $(SLO)$/sch_datalog.obj \ - $(SLO)$/sch_memchrt.obj \ - $(SLO)$/sch_chdescr.obj \ - $(SLO)$/sch_chaxis.obj \ - $(SLO)$/sch_calculat.obj \ - $(SLO)$/sch_axisobj.obj \ - $(SLO)$/sch_SchAddInCollection.obj \ - $(SLO)$/sch_ReBuildHint.obj - -.IF "$(GUI)" == "WIN" -NOOPTFILES=\ - $(OBJ)$/sch_chtmode5.obj -.ENDIF - -EXCEPTIONSFILES= \ - $(SLO)$/sch_chtmode4.obj \ - $(SLO)$/sch_chtmodel.obj \ - $(SLO)$/sch_SchAddInCollection.obj - -# --- Targets ------------------------------------------------------- - -.INCLUDE : target.mk - diff --git a/binfilter/bf_sch/source/core/sch_ReBuildHint.cxx b/binfilter/bf_sch/source/core/sch_ReBuildHint.cxx deleted file mode 100644 index e6c239a7c..000000000 --- a/binfilter/bf_sch/source/core/sch_ReBuildHint.cxx +++ /dev/null @@ -1,37 +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. - * - ************************************************************************/ -#include "ReBuildHint.hxx" -namespace binfilter { - -/*N*/ TYPEINIT0( SchReBuildHint ); - -/*N*/ SchReBuildHint::SchReBuildHint() -/*N*/ {} -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_SchAddInCollection.cxx b/binfilter/bf_sch/source/core/sch_SchAddInCollection.cxx deleted file mode 100644 index ead6dc8f0..000000000 --- a/binfilter/bf_sch/source/core/sch_SchAddInCollection.cxx +++ /dev/null @@ -1,132 +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. - * - ************************************************************************/ - -#include "SchAddInCollection.hxx" - -#include <com/sun/star/uno/Reference.h> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/lang/XSingleServiceFactory.hpp> -#include <com/sun/star/container/XContentEnumerationAccess.hpp> -#include <com/sun/star/lang/XServiceName.hpp> -#include <comphelper/processfactory.hxx> -#include<tools/debug.hxx> -#include <legacysmgr/legacy_binfilters_smgr.hxx> -namespace binfilter { -using namespace ::com::sun::star; - -/*N*/ SchAddInCollection::SchAddInCollection() : -/*N*/ mbInitialized( sal_False ) -/*N*/ { -/*N*/ } - -/*N*/ SchAddInCollection::~SchAddInCollection() -/*N*/ {} - -/*N*/ void SchAddInCollection::Initialize() -/*N*/ { -/*N*/ // collect all service names of available AddIns -/*N*/ -/*N*/ try -/*N*/ { -/*N*/ uno::Reference< lang::XMultiServiceFactory > xFactory = ::legacy_binfilters::getLegacyProcessServiceFactory(); -/*N*/ uno::Reference< container::XContentEnumerationAccess > xEnumAcc( xFactory, uno::UNO_QUERY ); -/*N*/ if( xEnumAcc.is()) -/*N*/ { -/*N*/ uno::Reference< container::XEnumeration > xEnum = -/*N*/ xEnumAcc->createContentEnumeration( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.Diagram" ))); -/*N*/ if( xEnum.is()) -/*N*/ { -/*N*/ // clear possibly existing list -/*N*/ if( mbInitialized ) -/*N*/ maServiceNames.realloc( 0 ); -/*N*/ -/*N*/ while( xEnum->hasMoreElements()) -/*N*/ { -/*N*/ // create Instance to collect the service name of the addin -/*N*/ uno::Any aFactoryAny = xEnum->nextElement(); -/*N*/ uno::Reference< uno::XInterface > xFactoryIntf; -/*N*/ aFactoryAny >>= xFactoryIntf; -/*N*/ if( xFactoryIntf.is()) -/*N*/ { -/*N*/ uno::Reference< lang::XSingleServiceFactory > xAddInFactory( xFactoryIntf, uno::UNO_QUERY ); -/*N*/ if( xAddInFactory.is()) -/*N*/ { -/*N*/ uno::Reference< lang::XServiceName > xServicName( -/*N*/ xAddInFactory->createInstance(), uno::UNO_QUERY ); -/*N*/ if( xServicName.is()) -/*N*/ { -/*N*/ sal_Int32 nIndex = maServiceNames.getLength(); -/*N*/ maServiceNames.realloc( nIndex + 1 ); -/*N*/ maServiceNames[ nIndex ] = xServicName->getServiceName(); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ mbInitialized = sal_True; -/*N*/ } -/*N*/ catch( const uno::Exception& aEx ) -/*N*/ { -/*N*/ OSL_FAIL( ::rtl::OUStringToOString( -/*N*/ ::rtl::OUString( -/*N*/ RTL_CONSTASCII_USTRINGPARAM( -/*N*/ "Couldn't initialize add-in collection: " )) + -/*N*/ aEx.Message, -/*N*/ RTL_TEXTENCODING_ASCII_US ).getStr() ); -/*N*/ } -/*N*/ } - -/*N*/ uno::Reference< util::XRefreshable > SchAddInCollection::GetAddInByName( const ::rtl::OUString& rName ) -/*N*/ { -/*N*/ if( ! mbInitialized ) -/*?*/ {DBG_BF_ASSERT(0, "STRIP");} -/*N*/ -/*N*/ const sal_Int32 nSize = maServiceNames.getLength(); -/*N*/ for( sal_Int32 i = 0; i < nSize; i++ ) -/*N*/ { -/*N*/ if( rName.equalsIgnoreAsciiCase( maServiceNames[ i ] )) -/*N*/ { -/*N*/ uno::Reference< lang::XMultiServiceFactory > xFactory = ::legacy_binfilters::getLegacyProcessServiceFactory(); -/*N*/ return uno::Reference< util::XRefreshable >( xFactory->createInstance( rName ), uno::UNO_QUERY ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ return uno::Reference< util::XRefreshable >(); -/*N*/ } - -/*N*/ uno::Sequence< ::rtl::OUString > SchAddInCollection::GetAddInNames() -/*N*/ { -/*N*/ if( ! mbInitialized ) -/*N*/ Initialize(); -/*N*/ -/*N*/ return maServiceNames; -/*N*/ } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_axisid.cxx b/binfilter/bf_sch/source/core/sch_axisid.cxx deleted file mode 100644 index 6d11f85a4..000000000 --- a/binfilter/bf_sch/source/core/sch_axisid.cxx +++ /dev/null @@ -1,97 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma hdrstop -#endif - -#include "axisid.hxx" -#include "glob.hxx" -#include <tools/debug.hxx> -namespace binfilter { -/************************************************************************* -|* -|* Objekt-Id ermitteln; -|* Liefert -1, wenn das Objekt keine Id hat -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchAxisId::SchAxisId () : -/*N*/ SdrObjUserData (SchInventor, SCH_AXIS_ID, 0), -/*N*/ nAxisId (0) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchAxisId::SchAxisId (long nId) : -/*N*/ SdrObjUserData (SchInventor, SCH_AXIS_ID, 0), -/*N*/ nAxisId (nId) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Kopie erzeugen -|* -\************************************************************************/ - -/*N*/ SdrObjUserData* SchAxisId::Clone(SdrObject *) const -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); return NULL; -/*N*/ } - -/************************************************************************* -|* -|* Daten aus Stream lesen -|* -\************************************************************************/ - -/*N*/ void SchAxisId::ReadData(SvStream& rIn) -/*N*/ { -/*N*/ SdrObjUserData::ReadData(rIn); -/*N*/ -/*N*/ rIn >> nAxisId; -/*N*/ } - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_axisobj.cxx b/binfilter/bf_sch/source/core/sch_axisobj.cxx deleted file mode 100644 index ad7d8fc6e..000000000 --- a/binfilter/bf_sch/source/core/sch_axisobj.cxx +++ /dev/null @@ -1,59 +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. - * - ************************************************************************/ - -// header for SdrObjListIter -// header for SdrHdlList - -#include "axisobj.hxx" -namespace binfilter { - -// ==================== SchAxisObj ==================== - -/*N*/ TYPEINIT1( SchAxisObj, SchObjGroup ); - -/*N*/ SchAxisObj::SchAxisObj( ChartModel *pInModel ) : -/*N*/ SchObjGroup( pInModel ) -/*N*/ { -/*N*/ } - - - - -// ==================== Sch3dAxisObj ==================== - -/*N*/ TYPEINIT1( Sch3dAxisObj, SchE3dObject ); - -/*N*/ Sch3dAxisObj::Sch3dAxisObj() -/*N*/ : SchE3dObject() -/*N*/ { -/*N*/ } - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_calculat.cxx b/binfilter/bf_sch/source/core/sch_calculat.cxx deleted file mode 100644 index 398b1b78c..000000000 --- a/binfilter/bf_sch/source/core/sch_calculat.cxx +++ /dev/null @@ -1,206 +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. - * - ************************************************************************/ - -// header for Point, Rectangle -// header for Polygon -// header for DBG_ASSERT -// header for XPolygon, XPolyPolygon -#include <bf_svx/xpoly.hxx> -// header for Line -#include <tools/line.hxx> -// for performance measurement -#include <rtl/logfile.hxx> - -// Note: Enable the following to skip points in the resulting spline -// poly-polygon, if they have equal x-values rather than identical points. -// Unitl now, I think there are situations where the output might differ, if you -// do so, so it's not enabled by default. - -// #define SPLINE_OPTIMIZE_POINTS - -#include "calculat.hxx" - -#include <algorithm> -#include <functional> -namespace binfilter { - -using namespace ::std; - - -/*N*/ void SchCalculationHelper::IntersectPolygonWithRectangle( const XPolygon& rPolygon, const Rectangle& rRectangle, XPolyPolygon& aResult ) -/*N*/ { -/*N*/ RTL_LOGFILE_CONTEXT_AUTHOR( context, "sch", "bm93744", "SchCalculationHelper::IntersectPolygonWithRectangle"); -/*N*/ -/*N*/ aResult.Clear(); -/*N*/ -/*N*/ if( rRectangle.IsInside( rPolygon.GetBoundRect() ) ) -/*N*/ { -/*N*/ aResult.Insert( rPolygon ); -/*N*/ OSL_TRACE( "IntersectPolygonWithRectangle: result has %d polygons", aResult.Count() ); -/*N*/ return; -/*N*/ } -/*N*/ -/*N*/ Point aFrom; -/*N*/ Point aTo; -/*N*/ USHORT nCount = rPolygon.GetPointCount(); -/*N*/ -/*N*/ // set last point to a position outside the rectangle, such that the first -/*N*/ // time clip2d returns true, the comparison to last will always yield false -/*N*/ Point aLast (rRectangle.TopLeft()); -/*N*/ aLast.Move (-1, -1); -/*N*/ XPolygon aCurrentPoly; -/*N*/ USHORT nIdx = 0; -/*N*/ -/*N*/ for (USHORT i=1; i<nCount; i++) -/*N*/ { -/*N*/ aFrom = rPolygon[i-1]; -/*N*/ aTo = rPolygon[i]; -/*N*/ if (clip2d (aFrom, aTo, rRectangle)) -/*N*/ { -/*N*/ // compose an XPolygon of as many consecutive points as possible -/*N*/ if (aFrom == aLast) -/*N*/ { -/*N*/ if (aTo != aFrom) -/*N*/ aCurrentPoly.Insert (nIdx++, aTo, XPOLY_NORMAL); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // create an XPolygon and put it into the XPolyPolygon -/*N*/ if (aCurrentPoly.GetPointCount() > 0) -/*N*/ aResult.Insert (aCurrentPoly, XPOLYPOLY_APPEND); -/*N*/ -/*N*/ // start new sequence -/*N*/ aCurrentPoly.SetPointCount (0); -/*N*/ aCurrentPoly.Insert (0, aFrom, XPOLY_NORMAL); -/*N*/ nIdx = 1; -/*N*/ if (aTo != aFrom) -/*N*/ aCurrentPoly.Insert (nIdx++, aTo, XPOLY_NORMAL); -/*N*/ } -/*N*/ -/*N*/ aLast = aTo; -/*N*/ } -/*N*/ } -/*N*/ if (aCurrentPoly.GetPointCount() > 0) -/*N*/ aResult.Insert (aCurrentPoly, XPOLYPOLY_APPEND); -/*N*/ -/*N*/ OSL_TRACE( "IntersectPolygonWithRectangle: result has %d polygons", aResult.Count() ); -/*N*/ } - - - - - -/*N*/ BOOL SchCalculationHelper::clip2d (Point & rPoint0, -/*N*/ Point & rPoint1, -/*N*/ const Rectangle & rRectangle) -/*N*/ { -/*N*/ // Direction vector of the line. -/*N*/ Point aD = rPoint1 - rPoint0; -/*N*/ -/*N*/ if (aD.X()==0 && aD.Y()==0 && rRectangle.IsInside (rPoint0)) -/*N*/ { -/*N*/ // Degenerate case of a zero length line. -/*N*/ return TRUE; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // Values of the line parameter where the line enters resp. leaves the rectangle. -/*N*/ double fTE = 0, -/*N*/ fTL = 1; -/*N*/ -/*N*/ // Test wether at least a part lies in the four half-planes with respect to -/*N*/ // the rectangles four edges. -/*N*/ if (CLIPt (aD.X(), rRectangle.Left() - rPoint0.X(), fTE, fTL)) -/*N*/ if (CLIPt (-aD.X(), rPoint0.X() - rRectangle.Right(), fTE, fTL)) -/*N*/ if (CLIPt (aD.Y(), rRectangle.Top() - rPoint0.Y(), fTE, fTL)) -/*N*/ if (CLIPt (-aD.Y(), rPoint0.Y() - rRectangle.Bottom(), fTE, fTL)) -/*N*/ { -/*N*/ // At least a part is visible. -/*N*/ if (fTL < 1) -/*N*/ { -/*N*/ // ::com::pute the new end point. -/*N*/ rPoint1.X() = (long)(rPoint0.X() + fTL * aD.X() + 0.5); -/*N*/ rPoint1.Y() = (long)(rPoint0.Y() + fTL * aD.Y() + 0.5); -/*N*/ } -/*N*/ if (fTE > 0) -/*N*/ { -/*N*/ // ::com::pute the new starting point. -/*N*/ rPoint0.X() = (long)(rPoint0.X() + fTE * aD.X() + 0.5); -/*N*/ rPoint0.Y() = (long)(rPoint0.Y() + fTE * aD.Y() + 0.5); -/*N*/ } -/*N*/ return TRUE; -/*N*/ } -/*N*/ -/*N*/ // Line is not visible. -/*N*/ return FALSE; -/*N*/ } -/*N*/ } - - - - -/*N*/ BOOL SchCalculationHelper::CLIPt (double fDenom, -/*N*/ double fNum, -/*N*/ double & fTE, -/*N*/ double & fTL) -/*N*/ { -/*N*/ double fT; -/*N*/ -/*N*/ if (fDenom > 0) // Intersection enters: PE -/*N*/ { -/*N*/ fT = fNum / fDenom; // Parametric value at the intersection. -/*N*/ if (fT > fTL) // fTE and fTL crossover -/*N*/ return FALSE; // therefore reject the line. -/*N*/ else if (fT > fTE) // A new fTE has been found. -/*N*/ fTE = fT; -/*N*/ } -/*N*/ else if (fDenom < 0) // Intersection leaves: PL -/*N*/ { -/*N*/ fT = fNum / fDenom; // Parametric Value at the intersection. -/*N*/ if (fT < fTE) // fTE and fTL crossover -/*N*/ return FALSE; // therefore reject the line. -/*N*/ else if (fT < fTL) // A new fTL has been found. -/*N*/ fTL = fT; -/*N*/ } -/*N*/ else if (fNum > 0) -/*N*/ return FALSE; // Line lies on the outside of the edge. -/*N*/ -/*N*/ return TRUE; -/*N*/ } - - -// -------------------------------------------------------------------------------- - -// Calculation of Splines - - -// ---------------------------------------- - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chartbar.cxx b/binfilter/bf_sch/source/core/sch_chartbar.cxx deleted file mode 100644 index f8198acb9..000000000 --- a/binfilter/bf_sch/source/core/sch_chartbar.cxx +++ /dev/null @@ -1,177 +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. - * - ************************************************************************/ - -#include "chtmodel.hxx" -#include "chaxis.hxx" -namespace binfilter { - - -/*N*/ void ChartBarDescriptor::SetGap(long nPercent) -/*N*/ { -/*N*/ nGapPercent=nPercent; -/*N*/ if(mpAxis && mpModel) -/*N*/ { -/*N*/ SfxItemSet aSet(mpModel->GetPool(),SCHATTR_BAR_GAPWIDTH,SCHATTR_BAR_GAPWIDTH); -/*N*/ aSet.Put(SfxInt32Item(SCHATTR_BAR_GAPWIDTH,nPercent)); -/*N*/ mpAxis->GetItemSet()->Put(aSet); -/*N*/ } -/*N*/ } - -/*N*/ void ChartBarDescriptor::SetOverlap(long nPercent) -/*N*/ { -/*N*/ nOverlapPercent=nPercent; -/*N*/ if(mpAxis && mpModel) -/*N*/ { -/*N*/ SfxItemSet aSet(mpModel->GetPool(),SCHATTR_BAR_OVERLAP,SCHATTR_BAR_OVERLAP); -/*N*/ aSet.Put(SfxInt32Item(SCHATTR_BAR_OVERLAP,nPercent)); -/*N*/ mpAxis->GetItemSet()->Put(aSet); -/*N*/ } -/*N*/ } - -/*N*/ long ChartBarDescriptor::GetOverlap() const -/*N*/ { -/*N*/ if(mpAxis) -/*N*/ { -/*N*/ SfxItemSet* pSet=mpAxis->GetItemSet(); -/*N*/ const SfxPoolItem *pPoolItem = NULL; -/*N*/ if (pSet->GetItemState(SCHATTR_BAR_OVERLAP, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ ((ChartBarDescriptor*)this)->nOverlapPercent=((const SfxInt32Item*) pPoolItem)->GetValue(); -/*N*/ } -/*N*/ return nOverlapPercent; -/*N*/ } - -/*N*/ long ChartBarDescriptor::GetGap() const -/*N*/ { -/*N*/ if(mpAxis) -/*N*/ { -/*N*/ SfxItemSet* pSet=mpAxis->GetItemSet(); -/*N*/ const SfxPoolItem *pPoolItem = NULL; -/*N*/ if (pSet->GetItemState(SCHATTR_BAR_GAPWIDTH, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ ((ChartBarDescriptor*)this)->nGapPercent=((const SfxInt32Item*) pPoolItem)->GetValue(); -/*N*/ } -/*N*/ return nGapPercent; -/*N*/ } - -/*N*/ void ChartBarDescriptor::Create(const Rectangle& aRect,long nColCnt,long nRowCnt) -/*N*/ { -/*N*/ nPartWidth=0; -/*N*/ nBarWidth=0; -/*N*/ nGap=nOver=nBarWidth=nPartWidth=nLeft=nCurrent=0; -/*N*/ -/*N*/ nOverlapPercent=GetOverlap(); -/*N*/ nGapPercent=GetGap(); -/*N*/ -/*N*/ if(!nColCnt||!nRowCnt) -/*N*/ { -/*?*/ OSL_TRACE("Chart :: Keine Daten!"); -/*?*/ return; -/*N*/ } -/*N*/ -/*N*/ -/*N*/ //gestapelt => alles übereinander, das entspricht im Prinzip dem Fall mit nur -/*N*/ //einer Datenreihe (interpretiere nRowCnt als Anzahl NEBENEINANDERSTEHENDER Balken) -/*N*/ if(mpModel->IsStacked()) -/*N*/ nRowCnt = 1; -/*N*/ -/*N*/ //Dieser Platz steht uns zur Verfügung: -/*N*/ BOOL bVerticalX = mpModel->IsXVertikal(); -/*N*/ nPartWidth = (bVerticalX ? aRect.GetHeight() : aRect.GetWidth()) / nColCnt; -/*N*/ -/*N*/ //Es gilt (bei MS-Excel97, empirisch ermittelt) : -/*N*/ //Barwidth = (Partwidth - Gapwidth) / (Rows - Overlap * (Rows -1) ) -/*N*/ //Gapwidth = Partwidth - GapPercent/100 * Barwidth -/*N*/ // => Barwidth = Partwidth / (Rowfak + GapPercent/100) -/*N*/ -/*N*/ double fGap = (double)nGapPercent/100.0; -/*N*/ double fOverlap = (double)nOverlapPercent/100.0; -/*N*/ -/*N*/ //sicher ist sicher.... sollte aber nie negativ eingegeben werden können -/*N*/ if(fGap<0.0) -/*N*/ fGap=0.0; -/*N*/ -/*N*/ //Datenreihenüberlappfaktor, Range = [1,(2*nRow-1)] -/*N*/ double fRowFak = (double)nRowCnt - fOverlap * (double)(nRowCnt - 1); -/*N*/ -/*N*/ //jetzt kann die Balkendicke ermittelt werden: -/*N*/ nBarWidth = (long) ((double)nPartWidth / (fRowFak + fGap)); -/*N*/ nGap = (long) (fGap * (double)nBarWidth); -/*N*/ -/*N*/ //Position des jeweils folgenden Balkens einer Spalte -/*N*/ nOver=(long)( (double)nBarWidth - fOverlap*(double)nBarWidth ); -/*N*/ -/*N*/ //jetzt nochmal nachsehen, ob die Berechnungen vernünftige Diagramme liefern: -/*N*/ const long nMinBarWidth = 40;//hat mal irgendwer festgelegt, gab auch mal nen Max... -/*N*/ if(nBarWidth < nMinBarWidth) -/*N*/ { -/*?*/ if(nRowCnt>1 && fOverlap < 0.0) -/*?*/ { -/*?*/ //dann erstmal den Überlapp vergrößern auf maximal kein Überlapp ;) -/*?*/ double fMinlap = ( -((double)nPartWidth/(double)nMinBarWidth) + fGap + (double)nRowCnt ) -/*?*/ //-------------------------------------------------------------------------- -/*?*/ / (double)(nRowCnt-1); -/*?*/ if(fMinlap < 0.0) //sollte noch negativ (= Lücke) sein -/*?*/ { -/*?*/ fOverlap=fMinlap; -/*?*/ fRowFak = (double)nRowCnt - fOverlap * (double)(nRowCnt - 1); -/*?*/ nBarWidth = (long) ((double)nPartWidth / (fRowFak + fGap)); -/*?*/ nGap = (long) (fGap * (double)nBarWidth); -/*?*/ nOver=(long)( (double)nBarWidth - fOverlap*(double)nBarWidth ); -/*?*/ } -/*?*/ else //hilft alles nix => erstmal ganz weg mit den Überlapp-Lücken -/*?*/ { //bei negativem Überlapp -/*?*/ nOver=0; -/*?*/ nBarWidth = (long) ((double)nPartWidth / ((double)nRowCnt + fGap)); -/*?*/ nGap = (long) (fGap * (double)nBarWidth); -/*?*/ } -/*?*/ } -/*?*/ if(nBarWidth < nMinBarWidth)//immer noch zu klein, dann reguläre Lücke verkleinern -/*?*/ { -/*?*/ double fMingap = (double)nPartWidth/(double)nMinBarWidth - fRowFak; -/*?*/ if(fMingap > 0.0 ) //noch kleiner sollte es besser nicht werden .... -/*?*/ { -/*?*/ fGap=fMingap; -/*?*/ fRowFak = (double)nRowCnt - fOverlap * (double)(nRowCnt - 1); -/*?*/ nBarWidth = (long) ((double)nPartWidth / (fRowFak + fGap)); -/*?*/ nGap = (long) (fGap * (double)nBarWidth); -/*?*/ nOver=(long)( (double)nBarWidth - fOverlap*(double)nBarWidth ); -/*?*/ } -/*?*/ else -/*?*/ { //mehr geht eh nicht, ausser vielleicht Überlapp -> 1.0 -/*?*/ nGap=0; -/*?*/ nBarWidth=nPartWidth / nRowCnt; -/*?*/ } -/*?*/ } -/*?*/ if( nBarWidth <= 0 ) -/*?*/ DBG_WARNING( "ChartBarDescriptor: cannot create bars with zero width" ); -/*N*/ } -/*N*/ -/*N*/ nLeft = nCurrent = (bVerticalX ? aRect.Top() : aRect.Left()) + nGap/2; -/*N*/ } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chartdoc.cxx b/binfilter/bf_sch/source/core/sch_chartdoc.cxx deleted file mode 100644 index 7e009f080..000000000 --- a/binfilter/bf_sch/source/core/sch_chartdoc.cxx +++ /dev/null @@ -1,455 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma hdrstop -#endif - - -#include <bf_svx/eeitem.hxx> - -#ifndef _ZFORLIST_HXX -#ifndef _ZFORLIST_DECLARE_TABLE -#define _ZFORLIST_DECLARE_TABLE -#endif -#include <bf_svtools/zforlist.hxx> -#endif - - - -#include <bf_sfx2/printer.hxx> - -#include "schattr.hxx" -#ifndef _SVX_CHRTITEM_HXX //autogen -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR - -#include <bf_svtools/eitem.hxx> - -#endif -#include <bf_svx/svxids.hrc> -#include "stlpool.hxx" -#include "schiocmp.hxx" -#include "schresid.hxx" -#include "docshell.hxx" - -#ifdef ITEMID_FONT -#undef ITEMID_FONT -#endif -#define ITEMID_FONT EE_CHAR_FONTINFO - -#ifdef ITEMID_COLOR -#undef ITEMID_COLOR -#endif -#define ITEMID_COLOR EE_CHAR_COLOR - -#ifdef ITEMID_FONTHEIGHT -#undef ITEMID_FONTHEIGHT -#endif -#define ITEMID_FONTHEIGHT EE_CHAR_FONTHEIGHT - -#include "glob.hrc" -#include "globfunc.hxx" - -#include <bf_svx/fontitem.hxx> -#include <bf_svx/fhgtitem.hxx> - - -#include "chaxis.hxx" - -#include "memchrt.hxx" - -#include <bf_svtools/itempool.hxx> - -namespace binfilter { - -/************************************************************************* -|* -|* Diese Methode erzeugt ein neues Dokument (ChartModel) und gibt einen -|* Zeiger darauf zurueck. Die Drawing Engine benutzt diese Methode um das -|* Dokument oder Teile davon ins Clipboard/DragServer stellen zu koennen. -|* -|* this method works like a copy constructor. So make sure to copy all -|* members inside this method !!! -|* -\************************************************************************/ -/*N*/ SdrModel* ChartModel::AllocModel() const -/*N*/ {DBG_BF_ASSERT(0, "STRIP"); return NULL; -/*N*/ } - -/************************************************************************* -|* -|* Diese Methode erzeugt eine neue Seite (SchPage) und gibt einen Zeiger -|* darauf zurueck. Die Drawing Engine benutzt diese Methode beim Laden -|* zur Erzeugung von Seiten (deren Typ sie ja nicht kennt, da es ABLEITUNGEN -|* der SdrPage sind). -|* -\************************************************************************/ - -/*N*/ SdrPage* ChartModel::AllocPage(bool bMasterPage) -/*N*/ { -/*N*/ return new SdrPage(*this, bMasterPage); -/*N*/ } -/************************************************************************* -|* -|* Inserter fuer SvStream zum Speichern -|* -\************************************************************************/ -/*N*/ SvStream& operator << (SvStream& rOut, const ChartModel& rDoc) -/*N*/ { -/*N*/ // die daemlichen blockklammern muessen erhalten bleiben, damit -/*N*/ // im destruktor ~SchIOCompat dei korrekte blockgröße geschrieben -/*N*/ // wird. ansonsten gibt es beim einlesen mit der 304 jede menge -/*N*/ // aerger -/*N*/ { -/*N*/ SchIOCompat aIO(rOut, STREAM_WRITE, 1); -/*N*/ -/*N*/ // AF: Don't write VCItemPool any longer (01/2001) -/*N*/ rOut << (sal_uInt32)0L; -/*N*/ - /************************************************************************** - * Frueher (StarChart Version 3.0, File-Format Version 1) wurde hier das - * JobSetup geschrieben, nun der Printer (binaer-kompatibel, daher wurde - * die Version des File-Formats nicht geaendert) - **************************************************************************/ -/*N*/ if (rDoc.pDocShell) -/*N*/ { -/*N*/ SfxPrinter* pPrinter = -/*N*/ ((SchChartDocShell*)rDoc.pDocShell)->GetPrinter(); -/*N*/ -/*N*/ -/*N*/ if (pPrinter) -/*N*/ { -/*N*/ pPrinter->Store(rOut); -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ // Es ist kein Printer vorhanden -> muss erzeugt werden -/*?*/ SfxBoolItem aItem(SID_PRINTER_NOTFOUND_WARN, TRUE); -/*?*/ SfxItemSet* pSet = new SfxItemSet(((ChartModel&) rDoc).GetPool(), -/*?*/ SID_PRINTER_NOTFOUND_WARN, -/*?*/ SID_PRINTER_NOTFOUND_WARN, 0); -/*?*/ pSet->Put(aItem); -/*?*/ SfxPrinter* pLclPrinter = new SfxPrinter(pSet); -/*?*/ -/*?*/ MapMode aMapMode = pLclPrinter->GetMapMode(); -/*?*/ aMapMode.SetMapUnit(MAP_100TH_MM); -/*?*/ pLclPrinter->SetMapMode(aMapMode); -/*?*/ -/*?*/ pLclPrinter->Store(rOut); -/*?*/ delete pLclPrinter; -/*?*/ //delete pSet; bloss nicht! Killt der Printer gleich mit! -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ // Keine DocShell, daher wird ein JobSetup geschrieben -/*?*/ JobSetup aJobSetup; -/*?*/ rOut << aJobSetup; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ -/*N*/ rOut << (SdrModel&) rDoc; -/*N*/ -/*N*/ SchIOCompat aIO(rOut, STREAM_WRITE, 0); -/*N*/ -/*N*/ rDoc.StoreAttributes(rOut); -/*N*/ //<- ehemals Basisklasse -/*N*/ -/*N*/ -/*N*/ -/*N*/ return rOut; -/*N*/ } - -/************************************************************************* -|* -|* Extractor fuer SvStream zum Laden -|* -\************************************************************************/ - -/*N*/ SvStream& operator >> (SvStream& rIn, ChartModel& rDoc) -/*N*/ { -/*N*/ // auch hier muessen die blockklammern erhalten bleiben, -/*N*/ // um 304-er dokumente sauber lesen zu koennen. -/*N*/ { -/*N*/ SchIOCompat aIO(rIn, STREAM_READ); -/*N*/ -/*N*/ sal_uInt32 n; -/*N*/ rIn >> n; -/*N*/ // must be 0 or 1. Otherwise we have an error -/*N*/ // most probably a wrong password -/*N*/ if( n == 1L ) -/*N*/ { -/*N*/ // AF: Skip VCItemPool. -/*N*/ rIn.SeekRel (74); -/*N*/ } -/*N*/ else if( n != 0L ) -/*N*/ { -/*?*/ rIn.SetError( ERRCODE_IO_GENERAL ); -/*?*/ return rIn; -/*N*/ } -/*N*/ -/*N*/ if (aIO.GetVersion() >= 1) -/*N*/ { - - /****************************************************************** - * Frueher (StarChart Version 3.0, File-Format Version 1) wurde hier - * das JobSetup eingelesen, nun wird der Printer erzeugt - * (binaer-kompatibel) - *******************************************************************/ - // ItemSet mit speziellem Poolbereich anlegen -/*N*/ SfxItemSet* pSet = -/*N*/ new SfxItemSet(rDoc.GetPool(), -/*N*/ SID_PRINTER_NOTFOUND_WARN, -/*N*/ SID_PRINTER_NOTFOUND_WARN, 0); -/*N*/ pSet->Put(SfxBoolItem(SID_PRINTER_NOTFOUND_WARN, TRUE)); -/*N*/ -/*N*/ SfxPrinter* pPrinter = SfxPrinter::Create(rIn, pSet); -/*N*/ -/*N*/ MapMode aMM(pPrinter->GetMapMode()); -/*N*/ aMM.SetMapUnit(MAP_100TH_MM); -/*N*/ pPrinter->SetMapMode(aMM); -/*N*/ -/*N*/ if (rDoc.pDocShell->GetCreateMode() != SFX_CREATE_MODE_EMBEDDED) -/*N*/ { -/*N*/ ((SchChartDocShell*)rDoc.pDocShell)->SetPrinter( pPrinter, TRUE ); // will be deleted by DocShell -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ delete pPrinter; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ // statt Basisklassenaufruf [ rIn >> (ChartModel&)rDoc;] direkt: -/*N*/ rIn >> (SdrModel&)rDoc; -/*N*/ -/*N*/ if (rIn.GetError() != SVSTREAM_FILEFORMAT_ERROR) -/*N*/ { -/*N*/ SchIOCompat aIO(rIn, STREAM_READ); -/*N*/ -/*N*/ rDoc.LoadAttributes(rIn); -/*N*/ } -/*N*/ // <- Basisaufruf -/*N*/ -/*N*/ rDoc.GetItemPool().LoadCompleted(); -/*N*/ -/*N*/ rDoc.ReadError () = FALSE; -/*N*/ -/*N*/ // alle 3D-Objekte werden bei einem Paint erstmailg sortiert, damit wird auch -/*N*/ // das Dokument als geaendert gekennzeichnet. Diese Variable wird in der -/*N*/ // CHVIEWSH-Paint-Methode abgefragt und bei Bedarf wird der Modified-Status -/*N*/ // des Dokuments zurueckgesetzt. -/*N*/ -/*N*/ // no longer needed -/*N*/ //- rDoc.FreshLoaded () = TRUE; -/*N*/ -/*N*/ return rIn; -/*N*/ } - -/************************************************************************* -|* -|* SetChanged(), das Model wurde geaendert -|* -\************************************************************************/ - -/*N*/ void ChartModel::SetChanged(bool bFlag) -/*N*/ { -/*N*/ if (pDocShell) -/*N*/ { -/*N*/ if (bNewOrLoadCompleted && pDocShell->IsEnableSetModified()) -/*N*/ { -/*N*/ // weitergeben an Basisklasse -/*N*/ //ChartModel -/*N*/ SdrModel::SetChanged(bFlag); -/*N*/ -/*N*/ // an ObjectShell weiterleiten -/*N*/ pDocShell->SetModified(bFlag); -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ // weitergeben an Basisklasse -/*?*/ //ChartModel -/*?*/ SdrModel::SetChanged(bFlag); -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* NewOrLoadCompleted -|* -|* Wird gerufen, wenn das Dokument geladen wurde bzw. feststeht, dass es -|* nicht mehr geladen wird. -|* -\************************************************************************/ - -/*N*/ void ChartModel::NewOrLoadCompleted(USHORT eMode) -/*N*/ { -/*N*/ if (eMode == NEW_DOC) -/*N*/ { -/*N*/ // StyleSheets generieren -/*N*/ Font aFont( OutputDevice::GetDefaultFont( DEFAULTFONT_SANS, GetLanguage( EE_CHAR_LANGUAGE ), DEFAULTFONT_FLAGS_ONLYONE ) ); -/*N*/ SvxFontItem aFontItem( aFont.GetFamily(), aFont.GetName(), aFont.GetStyleName(), aFont.GetPitch(), -/*N*/ aFont.GetCharSet(), EE_CHAR_FONTINFO ); -/*N*/ -/*N*/ SfxStyleSheetBase* pSheet = -/*N*/ &pStyleSheetPool->Make(String(SchResId(STR_STLSHEET_TITLE_MAIN)), -/*N*/ SFX_STYLE_FAMILY_PARA); -/*N*/ pSheet->GetItemSet().Put(aFontItem); -/*N*/ pSheet->GetItemSet().Put(SvxColorItem( Color( COL_AUTO ) )); -/*N*/ pSheet->GetItemSet().Put(SvxFontHeightItem(493)); -/*N*/ -/*N*/ pSheet = &pStyleSheetPool-> -/*N*/ Make(String(SchResId(STR_STLSHEET_TITLE_SUB)), -/*N*/ SFX_STYLE_FAMILY_PARA); -/*N*/ pSheet->GetItemSet().Put(aFontItem); -/*N*/ pSheet->GetItemSet().Put(SvxColorItem( Color( COL_AUTO ) )); -/*N*/ pSheet->GetItemSet().Put(SvxFontHeightItem(423)); -/*N*/ -/*N*/ pSheet = &pStyleSheetPool-> -/*N*/ Make(String(SchResId(STR_STLSHEET_TITLE_X_AXIS)), -/*N*/ SFX_STYLE_FAMILY_PARA); -/*N*/ pSheet->GetItemSet().Put(aFontItem); -/*N*/ pSheet->GetItemSet().Put(SvxColorItem( Color( COL_AUTO ) )); -/*N*/ pSheet->GetItemSet().Put(SvxFontHeightItem(352)); -/*N*/ -/*N*/ pSheet = &pStyleSheetPool-> -/*N*/ Make(String(SchResId(STR_STLSHEET_TITLE_Y_AXIS)), -/*N*/ SFX_STYLE_FAMILY_PARA); -/*N*/ pSheet->GetItemSet().Put(aFontItem); -/*N*/ pSheet->GetItemSet().Put(SvxColorItem( Color( COL_AUTO ) )); -/*N*/ pSheet->GetItemSet().Put(SvxFontHeightItem(352)); -/*N*/ -/*N*/ pSheet = &pStyleSheetPool-> -/*N*/ Make(String(SchResId(STR_STLSHEET_TITLE_Z_AXIS)), -/*N*/ SFX_STYLE_FAMILY_PARA); -/*N*/ pSheet->GetItemSet().Put(aFontItem); -/*N*/ pSheet->GetItemSet().Put(SvxColorItem( Color( COL_AUTO ) )); -/*N*/ pSheet->GetItemSet().Put(SvxFontHeightItem(352)); -/*N*/ -/*N*/ pSheet = &pStyleSheetPool-> -/*N*/ Make(String(SchResId(STR_STLSHEET_DATAROWS)), -/*N*/ SFX_STYLE_FAMILY_PARA); -/*N*/ pSheet->GetItemSet().Put(aFontItem); -/*N*/ pSheet->GetItemSet().Put(SvxColorItem( Color( COL_AUTO ) )); -/*N*/ pSheet->GetItemSet().Put(SvxFontHeightItem(282)); -/*N*/ -/*N*/ pSheet = &pStyleSheetPool-> -/*N*/ Make(String(SchResId(STR_STLSHEET_DATACOLS)), -/*N*/ SFX_STYLE_FAMILY_PARA); -/*N*/ pSheet->GetItemSet().Put(aFontItem); -/*N*/ pSheet->GetItemSet().Put(SvxColorItem( Color( COL_AUTO ) )); -/*N*/ pSheet->GetItemSet().Put(SvxFontHeightItem(282)); -/*N*/ -/*N*/ pSheet = &pStyleSheetPool-> -/*N*/ Make(String(SchResId(STR_STLSHEET_DATAVALUES)), -/*N*/ SFX_STYLE_FAMILY_PARA); -/*N*/ pSheet->GetItemSet().Put(aFontItem); -/*N*/ pSheet->GetItemSet().Put(SvxColorItem( Color( COL_AUTO ) )); -/*N*/ pSheet->GetItemSet().Put(SvxFontHeightItem(282)); -/*N*/ -/*N*/ pSheet = &pStyleSheetPool-> -/*N*/ Make(String(SchResId(STR_STLSHEET_DATADESCR)), -/*N*/ SFX_STYLE_FAMILY_PARA); -/*N*/ pSheet->GetItemSet().Put(aFontItem); -/*N*/ pSheet->GetItemSet().Put(SvxColorItem( Color( COL_AUTO ) )); -/*N*/ pSheet->GetItemSet().Put(SvxFontHeightItem(282)); -/*N*/ -/*N*/ pSheet = &pStyleSheetPool-> -/*N*/ Make(String(SchResId(STR_STLSHEET_LEGEND)), -/*N*/ SFX_STYLE_FAMILY_PARA); -/*N*/ pSheet->GetItemSet().Put(aFontItem); -/*N*/ pSheet->GetItemSet().Put(SvxColorItem( Color( COL_AUTO ))); -/*N*/ pSheet->GetItemSet().Put(SvxFontHeightItem(282)); -/*N*/ -/*N*/ pAxisAttr->ClearItem( SCHATTR_AXIS_SHOWDESCR ); -/*N*/ } -/*N*/ else if (eMode == DOC_LOADED) -/*N*/ { -/*N*/ // set intersection of all axis attributes used as axis -/*N*/ // 'style' (that is an itemset for the 'all axes' dialog) -/*N*/ GetFullAxisAttr( NULL, true ).ClearInvalidItems(); -/*N*/ pAxisAttr->ClearItem( SCHATTR_AXIS_SHOWDESCR ); -/*N*/ -/*N*/ // set 'all axis' attributes on all axes that are currently -/*N*/ // disabled -/*N*/ if( ! HasAxis( CHOBJID_DIAGRAM_X_AXIS )) -/*?*/ pChartXAxis->SetAttributes( pAxisAttr ); -/*N*/ if( ! HasAxis( CHOBJID_DIAGRAM_Y_AXIS )) -/*?*/ pChartYAxis->SetAttributes( pAxisAttr ); -/*N*/ if( ! HasAxis( CHOBJID_DIAGRAM_Z_AXIS )) -/*N*/ pChartZAxis->SetAttributes( pAxisAttr ); -/*N*/ if( ! HasAxis( CHOBJID_DIAGRAM_A_AXIS )) -/*N*/ pChartAAxis->SetAttributes( pAxisAttr ); -/*N*/ if( ! HasAxis( CHOBJID_DIAGRAM_B_AXIS )) -/*N*/ pChartBAxis->SetAttributes( pAxisAttr ); -/*N*/ // #99528# change auto-font color according to diagram area -/*N*/ PageColorChanged( *pDiagramAreaAttr ); -/*N*/ -/*N*/ // #101591# set precision of own number-formatter to 2 if we reside in a -/*N*/ // calc or writer, which is assumed by checking the cell-range in the -/*N*/ // MemChart. -/*N*/ OSL_ASSERT( pChartData ); -/*N*/ const SchChartRange & rRange = pChartData->GetChartRange(); -/*N*/ if( rRange.maRanges.size() > 0 ) -/*N*/ { -/*?*/ pOwnNumFormatter->ChangeStandardPrec( 2 ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ bNewOrLoadCompleted = TRUE; -/*N*/ #ifdef DBG_UTIL -/*N*/ if(pChartData && GetRowCount() && GetColCount()) -/*N*/ { -/*N*/ CHART_TRACE1( "ChartModel::NewOrLoadCompleted debugging ChartItems Model %s ", -/*N*/ (eMode==DOC_LOADED)? "was loaded": ((eMode==NEW_DOC)? "is new" : "don't know") ); -/*N*/ DBG_ITEMS((SfxItemSet&)GetDataRowAttr(0),this); -/*N*/ DBG_ITEMS((SfxItemSet&)GetDataPointAttr(0,0),this); -/*N*/ } -/*N*/ #endif -/*N*/ } - -/************************************************************************* -|* -|* Setze den Modified-Status zurueck, wenn ein Dokument mit -|* 3D-Objekten geladen und ausgegeben wurde -|* -\************************************************************************/ - -// void ChartModel::ResetFreshLoaded () -// { -// bFreshLoaded = FALSE; -// SetChanged (FALSE); -// } - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_charttyp.cxx b/binfilter/bf_sch/source/core/sch_charttyp.cxx deleted file mode 100644 index ef4abe348..000000000 --- a/binfilter/bf_sch/source/core/sch_charttyp.cxx +++ /dev/null @@ -1,807 +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. - * - ************************************************************************/ - -#include "charttyp.hxx" - -#include "schattr.hxx" -namespace binfilter { - -/*------------------------------------------------------------------------ - - Prioritätenliste: - ----------------- - - - 3D > 2D - > - Symbols,Splines > no Symbols,no Splines - > - Lines > no Lines - > - Percent > Stacked > Normal - - - Kompatiblitätsklassen: - - 1 XY-Chart Hat X-Werte-Spalte - 2 Pie-Chart keine Achse - 3 Line,Area,Bar Achse, Symbol,Linie,Splines, ... (fast alles!) - 4 NetChart ??? - - 3D Line Spline Symbols Stacked Percent Deep3D vertikal Errors --------------------------------------------------------------------------- - 1 x X X X - (x?) - - x X - 2 X - - - ? F - - - - 3 x X ? x X X x x x - 4 - F - X X X - - -? - - - X = schaltbar,vorhanden - x = schaltbar, nicht (vollst.) vrhanden - F = immer - ? = weiss noch nicht - - = gibts nicht -------------------------------------------------------------------------*/ - -/*N*/ void ChartType::Init() -/*N*/ { -/*N*/ bHasLines = FALSE; -/*N*/ bIsDonut = FALSE; -/*N*/ bIsPercent = FALSE; -/*N*/ bIs3D = FALSE; -/*N*/ bIsDeep3D = FALSE; -/*N*/ bIsVertical = FALSE; -/*N*/ bIsStacked = FALSE; -/*N*/ bHasVolume = FALSE; -/*N*/ bHasUpDown = FALSE; -/*N*/ -/*N*/ nSymbolType = -2; -/*N*/ nShapeType = -1; -/*N*/ -/*N*/ nSplineType = SPLINE_NONE; -/*N*/ nSpecialType = 0; -/*N*/ -/*N*/ nBaseType = CHSTYLE_2D_COLUMN; -/*N*/ } - -/* ************************************************************************ -|* -|* SetType initialisiert die ganze Klasse aus einem SvxChartStyle-enum -|* ( = Konvertierung SvxChartStyle -> ChartType ) -|* -\*********************************************************************** */ -/*N*/ void ChartType::SetType(const ChartModel* pModel) -/*N*/ { -/*N*/ SetType(pModel->ChartStyle()); -/*N*/ } -/*N*/ void ChartType::SetType(const SfxItemSet *pAttr) -/*N*/ { -/*N*/ -/*N*/ const SfxPoolItem *pPoolItem = NULL; -/*N*/ -/*N*/ if (pAttr->GetItemState(SCHATTR_STYLE_3D, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ bIs3D=((const SfxBoolItem*) pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (pAttr->GetItemState(SCHATTR_STYLE_DEEP, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ bIsDeep3D=((const SfxBoolItem*) pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (pAttr->GetItemState(SCHATTR_STYLE_VERTICAL, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ bIsVertical=((const SfxBoolItem*) pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (pAttr->GetItemState(SCHATTR_STYLE_LINES, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ bHasLines=((const SfxBoolItem*) pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (pAttr->GetItemState(SCHATTR_STYLE_PERCENT, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ bIsPercent=((const SfxBoolItem*) pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (pAttr->GetItemState(SCHATTR_STYLE_STACKED, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ bIsStacked=((const SfxBoolItem*) pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (pAttr->GetItemState(SCHATTR_STYLE_SPLINES, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ nSplineType=((const SfxInt32Item*) pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (pAttr->GetItemState(SCHATTR_STYLE_SYMBOL, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ nSymbolType=((const SfxInt32Item*) pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (pAttr->GetItemState(SCHATTR_STYLE_SHAPE, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ nShapeType=((const SfxInt32Item*) pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (pAttr->GetItemState(SCHATTR_STOCK_VOLUME, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ bHasVolume=((const SfxBoolItem*) pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (pAttr->GetItemState(SCHATTR_STOCK_UPDOWN, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ bHasUpDown=((const SfxBoolItem*) pPoolItem)->GetValue(); -/*N*/ -/*N*/ // handle special types -/*N*/ // 4 : CHSTYLE_2D_LINE_COLUMN -/*N*/ // 5 : CHSTYLE_2D_LINE_STACKEDCOLUMN -/*N*/ -/*N*/ if( 4 == nSpecialType ) -/*N*/ { -/*N*/ // CHSTYLE_2D_LINE_COLUMN -/*N*/ if( bIsStacked ) -/*N*/ { -/*N*/ // set to CHSTYLE_2D_LINE_STACKEDCOLUMN -/*N*/ nSpecialType = 5; -/*N*/ } -/*N*/ } -/*N*/ else if( 5 == nSpecialType ) -/*N*/ { -/*N*/ // CHSTYLE_2D_LINE_STACKEDCOLUMN -/*N*/ if( ! bIsStacked ) -/*N*/ { -/*N*/ // set to CHSTYLE_2D_LINE_COLUMN -/*N*/ nSpecialType = 4; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ //Todo: extend list (?) -/*N*/ } - -/*N*/ void ChartType::GetAttrSet(SfxItemSet *pAttr) -/*N*/ { -/*N*/ pAttr->Put(SfxBoolItem(SCHATTR_STOCK_VOLUME ,bHasVolume)); -/*N*/ pAttr->Put(SfxBoolItem(SCHATTR_STOCK_UPDOWN ,bHasUpDown)); -/*N*/ pAttr->Put(SfxBoolItem(SCHATTR_STYLE_3D ,bIs3D)); -/*N*/ pAttr->Put(SfxBoolItem(SCHATTR_STYLE_DEEP ,bIsDeep3D)); -/*N*/ pAttr->Put(SfxBoolItem(SCHATTR_STYLE_VERTICAL ,bIsVertical)); -/*N*/ pAttr->Put(SfxBoolItem(SCHATTR_STYLE_LINES ,bHasLines)); -/*N*/ pAttr->Put(SfxBoolItem(SCHATTR_STYLE_PERCENT ,bIsPercent)); -/*N*/ pAttr->Put(SfxBoolItem(SCHATTR_STYLE_STACKED ,bIsStacked)); -/*N*/ pAttr->Put(SfxInt32Item(SCHATTR_STYLE_SPLINES ,nSplineType)); -/*N*/ pAttr->Put(SfxInt32Item(SCHATTR_STYLE_SYMBOL ,nSymbolType)); -/*N*/ if(nShapeType!=-1) -/*N*/ pAttr->Put(SfxInt32Item(SCHATTR_STYLE_SHAPE ,nShapeType)); -/*N*/ //Todo: erweitern! -/*N*/ } -/*N*/ void ChartType::SetType(const SvxChartStyle eStyle) -/*N*/ { -/*N*/ nSymbolType = HasSymbols(eStyle) ? SVX_SYMBOLTYPE_AUTO : SVX_SYMBOLTYPE_NONE; -/*N*/ bIs3D = Is3D(eStyle); -/*N*/ bIsStacked = IsStacked(eStyle); -/*N*/ bIsPercent = IsPercent(eStyle); -/*N*/ nBaseType = GetBaseType(eStyle); -/*N*/ bIsDeep3D = IsDeep3D(eStyle); -/*N*/ bIsVertical = IsVertical(eStyle); -/*N*/ nSplineType = GetSplineType(eStyle); -/*N*/ bIsDonut = IsDonut(eStyle); -/*N*/ bHasLines = HasLines(eStyle); -/*N*/ -/*N*/ -/*N*/ -/*N*/ switch(eStyle) -/*N*/ { -/*N*/ case CHSTYLE_2D_PIE_SEGOF1: -/*N*/ nSpecialType=1; -/*N*/ break; -/*N*/ case CHSTYLE_2D_PIE_SEGOFALL: -/*N*/ nSpecialType=2; -/*N*/ break; -/*N*/ case CHSTYLE_2D_DONUT2: -/*N*/ nSpecialType=3; -/*N*/ break; -/*N*/ case CHSTYLE_2D_LINE_COLUMN: -/*N*/ nSpecialType=4; -/*N*/ break; -/*N*/ case CHSTYLE_2D_LINE_STACKEDCOLUMN: -/*N*/ nSpecialType=5; -/*N*/ break; -/*N*/ case CHSTYLE_2D_STOCK_1: -/*N*/ bHasVolume=FALSE; -/*N*/ bHasUpDown=FALSE; -/*N*/ break; -/*N*/ case CHSTYLE_2D_STOCK_2: -/*N*/ bHasVolume=FALSE; -/*N*/ bHasUpDown=TRUE; -/*N*/ break; -/*N*/ case CHSTYLE_2D_STOCK_3: -/*N*/ bHasVolume=TRUE; -/*N*/ bHasUpDown=FALSE; -/*N*/ break; -/*N*/ case CHSTYLE_2D_STOCK_4: -/*N*/ bHasVolume=TRUE; -/*N*/ bHasUpDown=TRUE; -/*N*/ break; -/*N*/ default: -/*N*/ nSpecialType=0; -/*N*/ break; -/*N*/ } -/*N*/ } -/************************************************************************* -|* -|* Konvertierung ChartType -> SvxChartStyle -|* -\************************************************************************/ -/*N*/ SvxChartStyle ChartType::GetChartStyle() const -/*N*/ { -/*N*/ SvxChartStyle aResult = CHSTYLE_2D_COLUMN; // in case of error return default -/*N*/ -/*N*/ switch(nSpecialType) -/*N*/ { -/*N*/ case 1: -/*N*/ return CHSTYLE_2D_PIE_SEGOF1; -/*N*/ case 2: -/*N*/ return CHSTYLE_2D_PIE_SEGOFALL; -/*N*/ case 3: -/*N*/ return CHSTYLE_2D_DONUT2; -/*N*/ case 4: -/*N*/ return CHSTYLE_2D_LINE_COLUMN; -/*N*/ case 5 : -/*N*/ return CHSTYLE_2D_LINE_STACKEDCOLUMN; -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ switch(nBaseType) -/*N*/ { -/*N*/ case CHTYPE_DONUT: -/*N*/ return CHSTYLE_2D_DONUT1; -/*N*/ -/*N*/ case CHTYPE_LINE: -/*N*/ { -/*N*/ -/*N*/ if(bIs3D) -/*N*/ return CHSTYLE_3D_STRIPE; //default 3d -/*N*/ -/*N*/ if (nSymbolType!=SVX_SYMBOLTYPE_NONE) -/*N*/ { -/*N*/ -/*N*/ if(nSplineType==SPLINE_CUBIC) -/*N*/ return CHSTYLE_2D_CUBIC_SPLINE_SYMBOL; -/*N*/ -/*N*/ if(nSplineType==SPLINE_B) -/*N*/ return CHSTYLE_2D_B_SPLINE_SYMBOL; //default spline&symbol&line: -/*N*/ -/*N*/ if(bIsPercent) //MUSS vor stacked, da percent auch stacked -/*N*/ return CHSTYLE_2D_PERCENTLINESYM; -/*N*/ -/*N*/ if(bIsStacked) -/*N*/ return CHSTYLE_2D_STACKEDLINESYM; -/*N*/ -/*N*/ return CHSTYLE_2D_LINESYMBOLS; //default Line&Symbols -/*N*/ -/*N*/ -/*N*/ } -/*N*/ -/*N*/ if(nSplineType==SPLINE_CUBIC) -/*N*/ return CHSTYLE_2D_CUBIC_SPLINE; -/*N*/ -/*N*/ if(nSplineType==SPLINE_B) -/*N*/ return CHSTYLE_2D_B_SPLINE; -/*N*/ -/*N*/ if(bIsPercent) //MUSS vor stacked, da percent auch stacked -/*N*/ return CHSTYLE_2D_PERCENTLINE; -/*N*/ -/*N*/ if(bIsStacked) -/*N*/ return CHSTYLE_2D_STACKEDLINE; -/*N*/ -/*N*/ return CHSTYLE_2D_LINE; //default Line -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case CHTYPE_AREA: -/*N*/ { -/*N*/ if(bIs3D) -/*N*/ { -/*N*/ if(bIsPercent) -/*N*/ return CHSTYLE_3D_PERCENTAREA; -/*N*/ if(bIsStacked) -/*N*/ return CHSTYLE_3D_STACKEDAREA; -/*N*/ -/*N*/ return CHSTYLE_3D_AREA; -/*N*/ } -/*N*/ -/*N*/ if(bIsPercent) -/*N*/ return CHSTYLE_2D_PERCENTAREA; -/*N*/ -/*N*/ if(bIsStacked) -/*N*/ return CHSTYLE_2D_STACKEDAREA; -/*N*/ -/*N*/ return CHSTYLE_2D_AREA; -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case CHTYPE_CIRCLE: -/*N*/ { -/*N*/ if(bIs3D) -/*N*/ return CHSTYLE_3D_PIE; -/*N*/ -/*N*/ if(bIsDonut || bIsStacked) -/*N*/ return CHSTYLE_2D_DONUT1; -/*N*/ //case CHSTYLE_2D_PIE_SEGOF1: -/*N*/ //case CHSTYLE_2D_PIE_SEGOFALL: -/*N*/ //case CHSTYLE_2D_DONUT2: -/*N*/ return CHSTYLE_2D_PIE; -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case CHTYPE_XY: -/*N*/ { -/*N*/ if(nSymbolType!=SVX_SYMBOLTYPE_NONE) -/*N*/ { -/*N*/ if(nSplineType==SPLINE_CUBIC) -/*N*/ return CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY; -/*N*/ -/*N*/ if(nSplineType==SPLINE_B) -/*N*/ return CHSTYLE_2D_B_SPLINE_SYMBOL_XY; -/*N*/ } -/*N*/ -/*N*/ if(nSplineType==SPLINE_CUBIC) -/*N*/ return CHSTYLE_2D_CUBIC_SPLINE_XY; -/*N*/ -/*N*/ if(nSplineType==SPLINE_B) -/*N*/ return CHSTYLE_2D_B_SPLINE_XY; -/*N*/ -/*N*/ if(bHasLines && (nSymbolType!=SVX_SYMBOLTYPE_NONE))//fehlte! XY=Symbol+Line -/*N*/ return CHSTYLE_2D_XY; -/*N*/ -/*N*/ if(bHasLines) -/*N*/ return CHSTYLE_2D_XY_LINE; -/*N*/ -/*N*/ if(nSymbolType!=SVX_SYMBOLTYPE_NONE) -/*N*/ return CHSTYLE_2D_XYSYMBOLS; -/*N*/ -/*N*/ OSL_FAIL( "Unknown chart type" ); -/*N*/ -/*N*/ return CHSTYLE_2D_XY; -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case CHTYPE_NET: -/*N*/ { -/*N*/ if(nSymbolType!=SVX_SYMBOLTYPE_NONE) -/*N*/ { -/*N*/ if(bIsPercent) -/*N*/ return CHSTYLE_2D_NET_SYMBOLS_PERCENT; -/*N*/ -/*N*/ if(bIsStacked) -/*N*/ return CHSTYLE_2D_NET_SYMBOLS_STACK; -/*N*/ -/*N*/ return CHSTYLE_2D_NET_SYMBOLS; -/*N*/ } -/*N*/ -/*N*/ if(bIsPercent) -/*N*/ return CHSTYLE_2D_NET_PERCENT; -/*N*/ -/*N*/ if(bIsStacked) -/*N*/ return CHSTYLE_2D_NET_STACK; -/*N*/ -/*N*/ return CHSTYLE_2D_NET; -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case CHTYPE_COLUMN: //==BAR -/*N*/ case CHTYPE_BAR: -/*N*/ { -/*N*/ if(bIsVertical) //Bar = vertical Column -/*N*/ { -/*N*/ if(bIs3D) -/*N*/ { -/*N*/ if(bIsPercent) -/*N*/ return CHSTYLE_3D_PERCENTFLATBAR; -/*N*/ if(bIsStacked) -/*N*/ return CHSTYLE_3D_STACKEDFLATBAR; -/*N*/ if(bIsDeep3D) -/*N*/ return CHSTYLE_3D_BAR; -/*N*/ return CHSTYLE_3D_FLATBAR; -/*N*/ } -/*N*/ if(bIsPercent) -/*N*/ return CHSTYLE_2D_PERCENTBAR; -/*N*/ if(bIsStacked) -/*N*/ return CHSTYLE_2D_STACKEDBAR; -/*N*/ -/*N*/ return CHSTYLE_2D_BAR; -/*N*/ } -/*N*/ if(bIs3D) -/*N*/ { -/*N*/ if(bIsPercent) -/*N*/ return CHSTYLE_3D_PERCENTFLATCOLUMN; -/*N*/ if(bIsStacked) -/*N*/ return CHSTYLE_3D_STACKEDFLATCOLUMN; -/*N*/ if(bIsDeep3D) -/*N*/ return CHSTYLE_3D_COLUMN; -/*N*/ return CHSTYLE_3D_FLATCOLUMN; -/*N*/ } -/*N*/ -/*N*/ if(bIsPercent) -/*N*/ return CHSTYLE_2D_PERCENTCOLUMN; -/*N*/ if(bIsStacked) -/*N*/ return CHSTYLE_2D_STACKEDCOLUMN; -/*N*/ -/*N*/ //case CHSTYLE_2D_LINE_COLUMN: -/*N*/ //case CHSTYLE_2D_LINE_STACKEDCOLUMN: -/*N*/ -/*N*/ return CHSTYLE_2D_COLUMN; -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case CHTYPE_STOCK: -/*N*/ if( bHasVolume ) -/*N*/ aResult = bHasUpDown -/*N*/ ? CHSTYLE_2D_STOCK_4 -/*N*/ : CHSTYLE_2D_STOCK_3; -/*N*/ else -/*N*/ aResult = bHasUpDown -/*N*/ ? CHSTYLE_2D_STOCK_2 -/*N*/ : CHSTYLE_2D_STOCK_1; -/*N*/ break; -/*N*/ -/*N*/ case CHTYPE_ADDIN: -/*N*/ aResult = CHSTYLE_ADDIN; -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ OSL_FAIL( "ChartModel::GetBaseType: invalid type!" ); -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ return aResult; -/*N*/ } - -/*N*/ BOOL ChartType::HasLines(const SvxChartStyle eChartStyle) const -/*N*/ { -/*N*/ return -/*N*/ ( GetBaseType( eChartStyle ) == CHTYPE_LINE ) || -/*N*/ ( ( GetBaseType( eChartStyle ) == CHTYPE_XY ) && -/*N*/ eChartStyle != CHSTYLE_2D_XYSYMBOLS ); -/*N*/ } -/************************************************************************* -|* -|* Chart-Typ mit Symbolen -|* -\************************************************************************/ -/*N*/ BOOL ChartType::IsDeep3D(const SvxChartStyle eChartStyle) const -/*N*/ { -/*N*/ switch(eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_3D_COLUMN: -/*N*/ case CHSTYLE_3D_BAR: -/*?*/ return TRUE; -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ return FALSE; -/*N*/ } -/************************************************************************* -|* -|* Chart-Typ mit Splines -|* -\************************************************************************/ -/*N*/ long ChartType::GetSplineType(const SvxChartStyle eChartStyle) const -/*N*/ { -/*N*/ switch (eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_XY : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY : -/*N*/ return SPLINE_CUBIC; -/*N*/ -/*N*/ case CHSTYLE_2D_B_SPLINE : -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL : -/*N*/ case CHSTYLE_2D_B_SPLINE_XY : -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL_XY : -/*N*/ return SPLINE_B; -/*N*/ -/*N*/ default : -/*N*/ return SPLINE_NONE; -/*N*/ } -/*N*/ } -/************************************************************************* -|* -|* Chart-Typ mit Symbolen -|* -\************************************************************************/ -/*N*/ BOOL ChartType::HasSymbols(const SvxChartStyle eChartStyle) const -/*N*/ { -/*N*/ switch(eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_2D_LINESYMBOLS: -/*N*/ case CHSTYLE_2D_STACKEDLINESYM: -/*N*/ case CHSTYLE_2D_PERCENTLINESYM: -/*N*/ case CHSTYLE_2D_XYSYMBOLS: -/*N*/ case CHSTYLE_2D_XY://fehlte! XY=Symbol+Line -/*N*/ case CHSTYLE_3D_XYZSYMBOLS: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_STACK: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_PERCENT: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL: -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY: -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL_XY: -/*N*/ -/*N*/ return TRUE; -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ return FALSE; -/*N*/ } -/************************************************************************* -|* -|* 3D-Chart-Typ -|* -\************************************************************************/ -/*N*/ BOOL ChartType::Is3D(const SvxChartStyle eChartStyle) const -/*N*/ { -/*N*/ switch (eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_3D_STRIPE: -/*N*/ case CHSTYLE_3D_COLUMN: -/*N*/ case CHSTYLE_3D_BAR: -/*N*/ case CHSTYLE_3D_FLATCOLUMN: -/*N*/ case CHSTYLE_3D_FLATBAR: -/*N*/ case CHSTYLE_3D_STACKEDFLATCOLUMN: -/*N*/ case CHSTYLE_3D_STACKEDFLATBAR: -/*N*/ case CHSTYLE_3D_PERCENTFLATCOLUMN: -/*N*/ case CHSTYLE_3D_PERCENTFLATBAR: -/*N*/ case CHSTYLE_3D_AREA: -/*N*/ case CHSTYLE_3D_STACKEDAREA: -/*N*/ case CHSTYLE_3D_PERCENTAREA: -/*N*/ case CHSTYLE_3D_SURFACE: -/*N*/ case CHSTYLE_3D_PIE: -/*N*/ //neu (aber bisher (380 Build 1502) nicht benutzt): -/*N*/ case CHSTYLE_3D_XYZ: -/*N*/ case CHSTYLE_3D_XYZSYMBOLS: -/*N*/ return TRUE; -/*N*/ -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Stacked-Chart-Typ (vollstaendig, d.h. percent => stacked -|* -\************************************************************************/ -/*N*/ BOOL ChartType::IsStacked(const SvxChartStyle eChartStyle) const -/*N*/ { -/*N*/ if(IsPercent(eChartStyle)) //Percent ist immer Stacked!!! -/*N*/ return TRUE; -/*N*/ -/*N*/ switch(eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_2D_STACKEDCOLUMN: -/*N*/ case CHSTYLE_2D_STACKEDBAR: -/*N*/ case CHSTYLE_2D_STACKEDLINE: -/*N*/ case CHSTYLE_2D_STACKEDAREA: -/*N*/ case CHSTYLE_3D_STACKEDFLATCOLUMN: -/*N*/ case CHSTYLE_3D_STACKEDFLATBAR: -/*N*/ case CHSTYLE_3D_STACKEDAREA: -/*N*/ //neu, (siehe auch IsPercent()): -/*N*/ case CHSTYLE_2D_STACKEDLINESYM: -/*N*/ case CHSTYLE_2D_NET_STACK: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_STACK: -/*N*/ case CHSTYLE_2D_LINE_STACKEDCOLUMN: -/*N*/ -/*N*/ return TRUE; -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ return FALSE; -/*N*/ } -/************************************************************************* -|* -|* Percent-Chart-Typ -|* -\************************************************************************/ -/*N*/ BOOL ChartType::IsPercent(const SvxChartStyle eChartStyle) const -/*N*/ { -/*N*/ switch(eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_2D_PERCENTCOLUMN: -/*N*/ case CHSTYLE_2D_PERCENTBAR: -/*N*/ case CHSTYLE_2D_PERCENTLINE: -/*N*/ case CHSTYLE_2D_PERCENTAREA: -/*N*/ case CHSTYLE_3D_PERCENTFLATCOLUMN: -/*N*/ case CHSTYLE_3D_PERCENTAREA: -/*N*/ // Neu: -/*N*/ case CHSTYLE_2D_NET_PERCENT: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_PERCENT: -/*N*/ case CHSTYLE_2D_PERCENTLINESYM: -/*N*/ case CHSTYLE_3D_PERCENTFLATBAR: -/*N*/ -/*N*/ return TRUE; -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ return FALSE; -/*N*/ } - -/************************************************************************* -|* -|* Basistyp ermitteln -|* -\************************************************************************/ - -/*N*/ long ChartType::GetBaseType(const SvxChartStyle eChartStyle) const -/*N*/ { -/*N*/ long nResult = CHTYPE_INVALID; -/*N*/ -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_B_SPLINE: -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL: -/*N*/ case CHSTYLE_2D_LINE: -/*N*/ case CHSTYLE_2D_STACKEDLINE: -/*N*/ case CHSTYLE_2D_PERCENTLINE: -/*N*/ case CHSTYLE_2D_LINESYMBOLS: -/*N*/ case CHSTYLE_2D_STACKEDLINESYM: -/*N*/ case CHSTYLE_2D_PERCENTLINESYM: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL: -/*N*/ case CHSTYLE_3D_STRIPE: -/*N*/ nResult = CHTYPE_LINE; -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_AREA: -/*N*/ case CHSTYLE_2D_STACKEDAREA: -/*N*/ case CHSTYLE_2D_PERCENTAREA: -/*N*/ case CHSTYLE_3D_AREA: -/*N*/ case CHSTYLE_3D_STACKEDAREA: -/*N*/ case CHSTYLE_3D_PERCENTAREA: -/*N*/ nResult = CHTYPE_AREA; -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_PIE: -/*N*/ case CHSTYLE_2D_PIE_SEGOF1: -/*N*/ case CHSTYLE_2D_PIE_SEGOFALL: -/*N*/ case CHSTYLE_2D_DONUT1: -/*N*/ case CHSTYLE_2D_DONUT2: -/*N*/ case CHSTYLE_3D_PIE: -/*N*/ nResult = CHTYPE_CIRCLE; -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_B_SPLINE_XY: -/*N*/ case CHSTYLE_2D_XY_LINE: -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL_XY: -/*N*/ case CHSTYLE_2D_XYSYMBOLS: -/*N*/ case CHSTYLE_2D_XY: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_XY: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY: -/*N*/ nResult = CHTYPE_XY; -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_NET: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS: -/*N*/ case CHSTYLE_2D_NET_STACK: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_STACK: -/*N*/ case CHSTYLE_2D_NET_PERCENT: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_PERCENT: -/*N*/ nResult = CHTYPE_NET; -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_COLUMN: -/*N*/ case CHSTYLE_2D_STACKEDCOLUMN: -/*N*/ case CHSTYLE_2D_PERCENTCOLUMN: -/*N*/ case CHSTYLE_2D_LINE_COLUMN: -/*N*/ case CHSTYLE_2D_LINE_STACKEDCOLUMN: -/*N*/ case CHSTYLE_3D_COLUMN: -/*N*/ case CHSTYLE_3D_FLATCOLUMN: -/*N*/ case CHSTYLE_3D_STACKEDFLATCOLUMN: -/*N*/ case CHSTYLE_3D_PERCENTFLATCOLUMN: -/*N*/ nResult = CHTYPE_COLUMN; -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_BAR: -/*N*/ case CHSTYLE_2D_STACKEDBAR: -/*N*/ case CHSTYLE_2D_PERCENTBAR: -/*N*/ case CHSTYLE_3D_BAR: -/*N*/ case CHSTYLE_3D_FLATBAR: -/*N*/ case CHSTYLE_3D_STACKEDFLATBAR: -/*N*/ case CHSTYLE_3D_PERCENTFLATBAR: -/*N*/ nResult = CHTYPE_BAR; -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_STOCK_1: -/*N*/ case CHSTYLE_2D_STOCK_2: -/*N*/ case CHSTYLE_2D_STOCK_3: -/*N*/ case CHSTYLE_2D_STOCK_4: -/*N*/ nResult = CHTYPE_STOCK; -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_ADDIN: -/*N*/ nResult = CHTYPE_ADDIN; -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ OSL_FAIL( "Invalid chart style given!" ); -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ return nResult; -/*N*/ } - -/************************************************************************* -|* -|* Vertikales Chart -|* -\************************************************************************/ - -/*N*/ BOOL ChartType::IsVertical(const SvxChartStyle eChartStyle) const -/*N*/ { -/*N*/ switch(eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_2D_BAR: -/*N*/ case CHSTYLE_2D_STACKEDBAR: -/*N*/ case CHSTYLE_2D_PERCENTBAR: -/*N*/ -/*N*/ case CHSTYLE_3D_BAR: -/*N*/ case CHSTYLE_3D_FLATBAR: -/*N*/ case CHSTYLE_3D_STACKEDFLATBAR: -/*N*/ case CHSTYLE_3D_PERCENTFLATBAR: -/*N*/ -/*N*/ return TRUE; -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ return FALSE; -/*N*/ } - - - - -/*N*/ BOOL ChartType::IsDonut(const SvxChartStyle eChartStyle) const -/*N*/ { -/*N*/ switch (eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_2D_DONUT1: -/*N*/ case CHSTYLE_2D_DONUT2: -/*N*/ -/*N*/ return TRUE; -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ return FALSE; -/*N*/ } -/************************************************************************* -|* -|* CleanUp sorgt nach dem Setzen bestimmter Eigenschaften dafuer, das -|* alle übrigen Eigenschaften, die jetzt nicht mehr verfügbar sind, -|* passend gesetzt werden. Beispiel: -|* Type = Percent, stacked oder Typ = Column -|* Percent wird auf FALSE gesetzt Typ auf Pie -|* nach CleanUp ist auch Stacked = FALSE; Typ = Pie,Percent,Stacked -|* Typ auf Column -|* Type = Column,Percent,Stacked -\************************************************************************/ - -//Wie SetBaseType, jedoch werden alle Properties auf defaults gesetz -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chaxis.cxx b/binfilter/bf_sch/source/core/sch_chaxis.cxx deleted file mode 100644 index 9f3d2ba64..000000000 --- a/binfilter/bf_sch/source/core/sch_chaxis.cxx +++ /dev/null @@ -1,2635 +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. - * - ************************************************************************/ -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTTEXTORDER SCHATTR_TEXT_ORDER -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT -#define ITEMID_CHARTLEGENDPOS SCHATTR_LEGEND_POS -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR - - -#include <bf_svx/svdopath.hxx> - - - - -#include <bf_svx/eeitem.hxx> -#ifndef _ZFORLIST_HXX //autogen -#ifndef _ZFORLIST_DECLARE_TABLE -#define _ZFORLIST_DECLARE_TABLE -#endif -#include <bf_svtools/zforlist.hxx> -#endif -#include <rtl/math.hxx> -#include <bf_svx/xlnclit.hxx> - -#include <bf_svx/xlnwtit.hxx> -#include "schattr.hxx" - -#ifndef _SVX_CHRTITEM_HXX //autogen - - -#endif - -#define ITEMID_FONT EE_CHAR_FONTINFO -#define ITEMID_COLOR EE_CHAR_COLOR -#define ITEMID_FONTHEIGHT EE_CHAR_FONTHEIGHT - -#include <bf_svx/fontitem.hxx> -#include <bf_svx/fhgtitem.hxx> -#include <bf_svx/svxids.hrc> - -#include "float.h" -#include "chaxis.hxx" -#include "pairs.hxx" -#include "glob.hrc" -#include "axisobj.hxx" -#include "globfunc.hxx" -#include <algorithm> -#include <limits> -namespace binfilter { - -/*N*/ void ChartAxis::SetDefaults() -/*N*/ { -/*N*/ Font aLatinFont( OutputDevice::GetDefaultFont( DEFAULTFONT_LATIN_SPREADSHEET, mpModel->GetLanguage( EE_CHAR_LANGUAGE ), DEFAULTFONT_FLAGS_ONLYONE ) ); -/*N*/ SvxFontItem aSvxFontItem( aLatinFont.GetFamily(), aLatinFont.GetName(), aLatinFont.GetStyleName(), aLatinFont.GetPitch(), -/*N*/ aLatinFont.GetCharSet(), EE_CHAR_FONTINFO ); -/*N*/ -/*N*/ Font aCJKFont( OutputDevice::GetDefaultFont( DEFAULTFONT_CJK_SPREADSHEET, mpModel->GetLanguage( EE_CHAR_LANGUAGE_CJK ), DEFAULTFONT_FLAGS_ONLYONE ) ); -/*N*/ SvxFontItem aSvxFontItemCJK( aCJKFont.GetFamily(), aCJKFont.GetName(), aCJKFont.GetStyleName(), aCJKFont.GetPitch(), -/*N*/ aCJKFont.GetCharSet(), EE_CHAR_FONTINFO_CJK ); -/*N*/ -/*N*/ Font aCTLFont( OutputDevice::GetDefaultFont( DEFAULTFONT_CTL_SPREADSHEET, mpModel->GetLanguage( EE_CHAR_LANGUAGE_CTL ), DEFAULTFONT_FLAGS_ONLYONE ) ); -/*N*/ SvxFontItem aSvxFontItemCTL( aCTLFont.GetFamily(), aCTLFont.GetName(), aCTLFont.GetStyleName(), aCTLFont.GetPitch(), -/*N*/ aCTLFont.GetCharSet(), EE_CHAR_FONTINFO_CTL ); -/*N*/ -/*N*/ // Attention! If the size of the three fonts below is changed from 7pt to -/*N*/ // some other value, change also the font scaling in globfunc.cxx:ItemsToFont. -/*N*/ mpAxisAttr->Put(aSvxFontItem); -/*N*/ mpAxisAttr->Put(SvxFontHeightItem( 247, 100, EE_CHAR_FONTHEIGHT )); // 7pt -/*N*/ mpAxisAttr->Put(aSvxFontItemCJK); -/*N*/ mpAxisAttr->Put(SvxFontHeightItem( 247, 100, EE_CHAR_FONTHEIGHT_CJK )); // 7pt -/*N*/ mpAxisAttr->Put(aSvxFontItemCTL); -/*N*/ mpAxisAttr->Put(SvxFontHeightItem( 247, 100, EE_CHAR_FONTHEIGHT_CTL )); // 7pt -/*N*/ -/*N*/ // the font color has 'automatic' as default that should not be overwritten -/*N*/ // mpAxisAttr->Put(SvxColorItem(RGBColor(COL_BLACK))); -/*N*/ mpAxisAttr->ClearItem( ITEMID_COLOR ); -/*N*/ mpAxisAttr->Put(XLineStyleItem(XLINE_SOLID)); -/*N*/ mpAxisAttr->Put(XLineWidthItem(0)); -/*N*/ mpAxisAttr->Put(XLineColorItem( String(), RGBColor(COL_BLACK))); -/*N*/ mpAxisAttr->Put(SvxChartTextOrientItem(CHTXTORIENT_AUTOMATIC)); -/*N*/ mpAxisAttr->Put(SfxBoolItem(SCHATTR_TEXT_OVERLAP,FALSE)); -/*N*/ -/*N*/ mpAxisAttr->Put(SvxChartTextOrderItem(CHTXTORDER_SIDEBYSIDE)); -/*N*/ mpAxisAttr->Put(SfxBoolItem(SCHATTR_AXIS_AUTO_MIN, TRUE)); -/*N*/ mpAxisAttr->Put(SvxDoubleItem(0.0, SCHATTR_AXIS_MIN)); -/*N*/ mpAxisAttr->Put(SfxBoolItem(SCHATTR_AXIS_AUTO_MAX, TRUE)); -/*N*/ mpAxisAttr->Put(SvxDoubleItem(0.0, SCHATTR_AXIS_MAX)); -/*N*/ mpAxisAttr->Put(SfxBoolItem(SCHATTR_AXIS_AUTO_STEP_MAIN, TRUE)); -/*N*/ mpAxisAttr->Put(SvxDoubleItem(0.0, SCHATTR_AXIS_STEP_MAIN)); -/*N*/ mpAxisAttr->Put(SfxBoolItem(SCHATTR_AXIS_AUTO_STEP_HELP, TRUE)); -/*N*/ mpAxisAttr->Put(SvxDoubleItem(0.0, SCHATTR_AXIS_STEP_HELP)); -/*N*/ mpAxisAttr->Put(SfxBoolItem(SCHATTR_AXIS_LOGARITHM, FALSE)); -/*N*/ mpAxisAttr->Put(SfxBoolItem(SCHATTR_AXIS_AUTO_ORIGIN, (mnId==CHART_AXIS_Y)?FALSE:TRUE)); -/*N*/ mpAxisAttr->Put(SvxDoubleItem(0.0, SCHATTR_AXIS_ORIGIN)); -/*N*/ mpAxisAttr->Put(SfxInt32Item(SCHATTR_AXISTYPE, mnId)); -/*N*/ mpAxisAttr->Put(SfxInt32Item(SCHATTR_AXIS_TICKS, CHAXIS_MARK_OUTER)); -/*N*/ ShowAxis(TRUE); -/*N*/ ShowDescr(TRUE); -/*N*/ -/*N*/ } -/*N*/ void ChartAxis::SetAttributes(const SfxItemSet &rAttr) -/*N*/ { -/*N*/ mpAxisAttr->Put(rAttr); -/*N*/ -/*N*/ //Erst immer Auto-attr holen, damit evtl. berechnete Werte nicht überschrieben werden. -/*N*/ ReadAutoAttr(); -/*N*/ ReadAttr(); -/*N*/ }; -/*N*/ void ChartAxis::SetAttributes(SfxItemSet *pSet) -/*N*/ { -/*N*/ if(pSet) -/*N*/ SetAttributes(*pSet); -/*N*/ }; -/*N*/ ChartAxis::~ChartAxis() -/*N*/ { -/*N*/ if(mpTotal) -/*N*/ delete [] mpTotal; -/*N*/ -/*N*/ if(mpColStack) -/*N*/ delete [] mpColStack; -/*N*/ -/*N*/ delete mpAxisAttr; -/*N*/ mpAxisAttr=NULL; -/*N*/ mpModel=NULL; -/*N*/ if(mpTextAttr) -/*N*/ delete mpTextAttr; -/*N*/ } - -/*N*/ ChartAxis::ChartAxis(ChartModel* pModel,long nId,long nUId) -/*N*/ : mbInnerPos(FALSE) -/*N*/ , mnInnerPos(-1) -/*N*/ , mbColText(FALSE) -/*N*/ , mbCenterText(FALSE) -/*N*/ , mnMaxTextWidth(-1) -/*N*/ , mnAlternateId(0) -/*N*/ , mbAlternativIdUsed(FALSE) -/*N*/ , mbPercentCol(TRUE) -/*N*/ , mpTotal(NULL) -/*N*/ , mnTotalSize(0) -/*N*/ , mbTotalActual(FALSE) -/*N*/ , mbTotalAlloc(FALSE) -/*N*/ , mpColStack(NULL) -/*N*/ , mbColStackOK(FALSE) -/*N*/ , mnUId(nUId) -/*N*/ , mbShowDescr(FALSE) -/*N*/ , mpNumFormatter(NULL) -/*N*/ , mpAxisList(NULL) -/*N*/ , mpAxisObj(NULL) -/*N*/ , mpGridAttr(NULL) -/*N*/ , mpTextAttr(NULL) -/*N*/ , mnTicks(CHAXIS_MARK_OUTER) -/*N*/ , mnHelpTicks(0) -/*N*/ , mnTickLen(150) -/*N*/ , mnHelpTickLen(100) -/*N*/ , mbSecondary(FALSE) -/*N*/ , mnId(nId) -/*N*/ , mbFlippedXY(FALSE) -/*N*/ , mnPosition(0) -/*N*/ , mbRadial(FALSE) -/*N*/ , maArea(0,0,0,0) -/*N*/ , mbPercent(FALSE) -/*N*/ , mpAxisAttr(NULL) -/*N*/ , mpModel(pModel) -/*N*/ , mfMin(0.0) -/*N*/ , mfMax(0.0) -/*N*/ , mfStep(0.0) -/*N*/ , mfStepHelp(0.0) -/*N*/ , mfOrigin(0.0) -/*N*/ , mbAutoMin(FALSE) -/*N*/ , mbAutoMax(FALSE) -/*N*/ , mbAutoOrigin(FALSE) -/*N*/ , mbAutoStep(FALSE) -/*N*/ , mbAutoStepHelp(FALSE) -/*N*/ , mbLogarithm(FALSE) -/*N*/ , meTextOrient( CHTXTORIENT_AUTOMATIC ) -/*N*/ { -/*N*/ mpAxisAttr=new SfxItemSet(mpModel->GetPool(),nAxisWhichPairs); -/*N*/ SetDefaults(); //attribute fuellen -/*N*/ ReadAutoAttr(); //automatik? aus ItemSet holen -/*N*/ ReadAttr(); //evtl. defaults aus Itemset uebernehmen (etwas Overhead, aber sicher) -/*N*/ } - -/*N*/ long ChartAxis::GetUpper(double fData,BOOL bConstrained) -/*N*/ { -/*N*/ long nData; -/*N*/ if(fData < mfOrigin) -/*?*/ nData = GetPos(mfOrigin); -/*N*/ else -/*N*/ nData = GetPos(fData); -/*N*/ -/*N*/ if(!bConstrained) -/*?*/ return nData; -/*N*/ -/*N*/ if(IsVertical()) -/*N*/ return Max(maRefArea.Top(),nData); -/*N*/ else -/*N*/ return Min(maRefArea.Right(),nData); -/*N*/ } -/*N*/ long ChartAxis::GetLower(double fData,BOOL bConstrained) -/*N*/ { -/*N*/ long nData; -/*N*/ -/*N*/ if(fData > mfOrigin) -/*N*/ nData = GetPos(mfOrigin); -/*N*/ else -/*N*/ nData = GetPos(fData); -/*N*/ -/*N*/ if(!bConstrained) -/*?*/ return nData; -/*N*/ -/*N*/ if(IsVertical()) -/*N*/ return Min(maRefArea.Bottom(),nData); -/*N*/ else -/*N*/ return Max(maRefArea.Left(),nData); -/*N*/ } -/*N*/ Pair ChartAxis::Stack(double fData,BOOL bConstrained) -/*N*/ { -/*N*/ double fTop,fBottom; -/*N*/ -/*N*/ if (fData < 0.0)//mfOrigin -/*N*/ { -/*?*/ fTop = mfDataBottom; -/*?*/ mfDataBottom += fData; -/*?*/ fBottom = mfDataBottom; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if( fData == DBL_MIN ) -/*N*/ fData = 0; -/*N*/ fBottom = mfDataTop; -/*N*/ mfDataTop += fData; -/*N*/ fTop = mfDataTop; -/*N*/ } -/*N*/ -/*N*/ if(bConstrained) -/*N*/ { -/*N*/ if(IsVertical()) -/*N*/ return Pair(Max(maRefArea.Top(),GetPos(fTop)) -/*N*/ , Min(maRefArea.Bottom(),GetPos(fBottom)) ); -/*N*/ else -/*N*/ return Pair(Max(maRefArea.Left(),GetPos(fBottom)) -/*N*/ ,Min(maRefArea.Right(),GetPos(fTop)) ); -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ return Pair(GetPos(fTop),GetPos(fBottom)); -/*N*/ } -/*N*/ } -/*N*/ BOOL ChartAxis::IsVertical() -/*N*/ { -/*N*/ return( (mnId==CHART_AXIS_Y && !mbFlippedXY) -/*N*/ ||(mnId==CHART_AXIS_X && mbFlippedXY)); -/*N*/ } - - -/*N*/ void ChartAxis::ResizeTotal(long nSize) -/*N*/ { -/*N*/ if(nSize && !mbTotalAlloc) -/*N*/ { -/*N*/ if(nSize!=mnTotalSize) -/*N*/ { -/*N*/ if(mpTotal) -/*N*/ delete [] mpTotal; -/*N*/ mnTotalSize = nSize; -/*N*/ mpTotal = new double[mnTotalSize]; -/*N*/ } -/*N*/ -/*N*/ while(nSize--) -/*N*/ mpTotal[nSize]=0.0; -/*N*/ } -/*N*/ mbTotalAlloc=TRUE; -/*N*/ }; -/*N*/ double ChartAxis::Data2Percent(double fData,long nCol,long nRow) -/*N*/ { -/*N*/ double fTotal=GetTotal( mbPercentCol ? nCol : nRow); -/*N*/ -/*N*/ return fTotal ? ( (fabs(fData) / fTotal) * 100.0 ) : DBL_MIN; -/*N*/ } -/*N*/ double ChartAxis::GetTotal(long n) -/*N*/ { -/*N*/ if(!mbTotalActual) -/*N*/ CreateTotal(); -/*N*/ -/*N*/ return mpTotal[n]; -/*N*/ } -/*N*/ void ChartAxis::CreateTotal() -/*N*/ { -/*N*/ if(mbTotalActual) -/*?*/ return ; -/*N*/ -/*N*/ double fData; -/*N*/ -/*N*/ long nColCnt=mpModel->GetColCount(); -/*N*/ long nRowCnt=mpModel->GetRowCount(); -/*N*/ -/*N*/ -/*N*/ if(mbPercentCol) //Prozent auf Datenreihe beziehen! -/*N*/ { -/*N*/ ResizeTotal(nColCnt); //Array anlegen und auf 0.0 setzen -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ ResizeTotal(nRowCnt); //Array anlegen und auf 0.0 setzen -/*N*/ } -/*N*/ -/*N*/ -/*N*/ long nId,nCol; -/*N*/ for(long nRow=0;nRow<nRowCnt;nRow++) -/*N*/ { -/*N*/ nId=((const SfxInt32Item &)(mpModel->GetDataRowAttr(nRow).Get(SCHATTR_AXIS))).GetValue(); -/*N*/ if(nId==mnUId) -/*N*/ { -/*N*/ for(nCol=0;nCol<nColCnt;nCol++) -/*N*/ { -/*N*/ fData=mpModel->GetData(nCol,nRow); -/*N*/ mpTotal[ mbPercentCol ? nCol : nRow] += fabs(fData); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ mbTotalActual=TRUE; //einmal und nie wieder (während eines BuildChart zumindest) -/*N*/ }; - -/*N*/ BOOL ChartAxis::IsOriginInRange() const -/*N*/ { -/*N*/ return ((mfMin <= mfOrigin) && (mfOrigin <= mfMax)); -/*N*/ } - -// Stapeln der Werte je Col (für Liniencharts) -/*N*/ void ChartAxis::InitColStacking(long nColCnt) -/*N*/ { -/*N*/ -/*N*/ -/*N*/ if(mpColStack) -/*N*/ delete [] mpColStack; -/*N*/ mpColStack=new double[nColCnt]; -/*N*/ while(nColCnt--) -/*N*/ mpColStack[nColCnt]=0.0;//mfOrigin ????; -/*N*/ } -//Stapeln der Werte je Column (Stapeln bei LinienCharts) -/*N*/ double ChartAxis::StackColData(double fData,long nCol,long nColCnt) -/*N*/ { -/*N*/ if(!mbColStackOK) -/*N*/ InitColStacking(nColCnt);//falls noch nicht geschehen -/*N*/ mbColStackOK=TRUE;//wird bei Initialise auf FALSE gesetzt -/*N*/ -/*N*/ mpColStack[nCol]+=fData; -/*N*/ return mpColStack[nCol]; -/*N*/ } -//Dies Funktion wird u.A. von Initialise gerufen (sehr früh im Buildvorgang) -//Attribute innerer Schleifen (CretaeMarks, etc.) können hier in Variablen -//gewandelt werden -/*N*/ void ChartAxis::ReadAttr() -/*N*/ { -/*N*/ -/*N*/ //Art der Markierungen (innen/aussen) -/*N*/ mnTicks = ((const SfxInt32Item&)mpAxisAttr->Get(SCHATTR_AXIS_TICKS)).GetValue(); -/*N*/ mnHelpTicks = ((const SfxInt32Item&)mpAxisAttr->Get(SCHATTR_AXIS_HELPTICKS)).GetValue(); -/*N*/ -/*N*/ long nFak = IsVertical() ? -1 : 1; -/*N*/ if(mbSecondary) -/*N*/ nFak*=-1; -/*N*/ -/*N*/ long nHelpFak=nFak; -/*N*/ -/*N*/ mnTickLen=nFak*150; -/*N*/ mnHelpTickLen=nHelpFak*100; -/*N*/ -/*N*/ // WICHTIG! Diese Methode darf keine Member, die Automatisch sind, ueberschreiben! -/*N*/ if (!mbAutoMin) -/*?*/ if ((mbLogarithm && (((const SvxDoubleItem&) mpAxisAttr->Get(SCHATTR_AXIS_MIN)).GetValue() != 0.0)) || !mbLogarithm) -/*?*/ mfMin =((const SvxDoubleItem&) mpAxisAttr->Get(SCHATTR_AXIS_MIN)).GetValue(); -/*N*/ if (!mbAutoMax) -/*?*/ mfMax =((const SvxDoubleItem&) mpAxisAttr->Get(SCHATTR_AXIS_MAX)).GetValue(); -/*N*/ if (!mbAutoOrigin) -/*N*/ mfOrigin=((const SvxDoubleItem&) mpAxisAttr->Get(SCHATTR_AXIS_ORIGIN)).GetValue(); -/*N*/ if(!mbAutoStep) -/*?*/ mfStep =((const SvxDoubleItem&) mpAxisAttr->Get(SCHATTR_AXIS_STEP_MAIN)).GetValue(); -/*N*/ if(!mbAutoStepHelp) -/*?*/ mfStepHelp=((const SvxDoubleItem&) mpAxisAttr->Get(SCHATTR_AXIS_STEP_HELP)).GetValue(); -/*N*/ -/*N*/ } - -/*N*/ void ChartAxis::ReadAutoAttr() //OK -/*N*/ { -/*N*/ mbLogarithm = ((const SfxBoolItem&) mpAxisAttr->Get(SCHATTR_AXIS_LOGARITHM)).GetValue(); -/*N*/ mbAutoStep = ((const SfxBoolItem&) mpAxisAttr->Get(SCHATTR_AXIS_AUTO_STEP_MAIN)).GetValue(); -/*N*/ mbAutoStepHelp = ((const SfxBoolItem&) mpAxisAttr->Get(SCHATTR_AXIS_AUTO_STEP_HELP)).GetValue(); -/*N*/ mbAutoMin = ((const SfxBoolItem&) mpAxisAttr->Get(SCHATTR_AXIS_AUTO_MIN)).GetValue(); -/*N*/ mbAutoMax = ((const SfxBoolItem&) mpAxisAttr->Get(SCHATTR_AXIS_AUTO_MAX)).GetValue(); -/*N*/ mbAutoOrigin = ((const SfxBoolItem&) mpAxisAttr->Get(SCHATTR_AXIS_AUTO_ORIGIN)).GetValue(); -/*N*/ } - -//ToDo: dies Fkt. ueberfluessig machen - -/* ************************************************************************ -|* -|* Minimum und Maximum berechnen, Wertebereich -|* -|* ToDo: Dies Methode muss komplett auf Verbundcharts umgestellt werden, - Damit faellt meStackMode weg, es muss fuer jede Reihe geprueft werden, - wie diese gezeichnet werden soll! -\*********************************************************************** */ -/*N*/ inline double ChartAxis::GetRowError(long nRow) -/*N*/ { -/*N*/ switch((SvxChartKindError)((const SfxInt32Item &)mpModel->GetDataRowAttr(nRow).Get(SCHATTR_STAT_KIND_ERROR)).GetValue()) -/*N*/ { -/*N*/ case CHERROR_VARIANT : -/*N*/ return mpModel->GetVariantY(nRow); -/*N*/ break; -/*N*/ -/*N*/ case CHERROR_SIGMA : -/*N*/ return mpModel->GetSigmaY(nRow); -/*N*/ break; -/*N*/ -/*N*/ case CHERROR_BIGERROR : -/*N*/ return mpModel->GetBigErrorY(nRow, -/*N*/ ((const SvxDoubleItem &)mpModel->GetDataRowAttr(nRow).Get(SCHATTR_STAT_BIGERROR)).GetValue()); -/*N*/ break; -/*N*/ -/*N*/ default : -/*N*/ break; -/*N*/ } -/*N*/ return 0.0; -/*N*/ } -/*N*/ inline BOOL ChartAxis::IsDataOnAxis(long nRow) -/*N*/ { -/*N*/ return(mnUId == ((const SfxInt32Item &)mpModel->GetDataRowAttr(nRow) -/*N*/ .Get(SCHATTR_AXIS)).GetValue()) ; -/*N*/ } - -/*N*/ BOOL ChartAxis::GetMinMaxFromData() -/*N*/ { -/*N*/ BOOL bOK=FALSE; -/*N*/ -/*N*/ long nColCnt = mpModel->GetColCount(); -/*N*/ long nRowCnt = mpModel->GetRowCount(); -/*N*/ long nCol,nRow; -/*N*/ -/*N*/ BOOL bInitialise=TRUE; //statt dem nCol=0&&nRow=0-Unsinn, damit ungültige Daten berücksichtigt werden -/*N*/ -/*N*/ double fMin = 0.0; -/*N*/ double fMax = 0.0; -/*N*/ -/*N*/ //Verbundchart Typ 2, letzte Reihe ist Linie, nach switch(meStackMode) -/*N*/ //folgt dann die beruecksichtigung dieser Linie -/*N*/ long nLines = Min((long)mpModel->GetNumLinesColChart(),(long)(nRowCnt-1));;//#50212# -/*N*/ -/*N*/ if(mpModel->ChartStyle() == CHSTYLE_2D_LINE_STACKEDCOLUMN) -/*N*/ nRowCnt-=nLines; -/*N*/ else -/*N*/ nLines=0; -/*N*/ -/*N*/ switch (meStackMode) -/*N*/ { -/*N*/ //Min = Min(0,Summe aller negativen Daten) -/*N*/ //Max = Max(0,Summe aller positiven Daten) -/*N*/ case CHSTACK_MINMAX: -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ double fMinTotal = 0.0; -/*N*/ double fMaxTotal = 0.0; -/*N*/ -/*N*/ for (nRow = 0; nRow < nRowCnt; nRow++) -/*N*/ { -/*N*/ -/*N*/ if(IsDataOnAxis(nRow)) -/*N*/ { -/*N*/ bOK=TRUE; -/*N*/ -/*N*/ double fData = GetData(nCol, nRow);//mpModel->GetData(nCol, nRow, mbPercent); -/*N*/ -/*N*/ if (fData != DBL_MIN) -/*N*/ { -/*N*/ if (fData < 0.0) -/*N*/ fMinTotal += fData; -/*N*/ else if (fData > 0.0) -/*N*/ fMaxTotal += fData; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if (nCol == 0) //nicht gut, aber hier kann man sowas machen, irgendne Reihe hat Daten! -/*N*/ { -/*N*/ fMin = fMinTotal; -/*N*/ fMax = fMaxTotal; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if (fMin > fMinTotal) -/*N*/ fMin = fMinTotal; -/*N*/ if (fMax < fMaxTotal) -/*N*/ fMax = fMaxTotal; -/*N*/ } -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ //Min = Min(0,Min(Daten)) -/*N*/ //Max = Max(0,Summe aller Daten) -/*N*/ case CHSTACK_OVERLAP: -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ double fTotal = 0.0; -/*N*/ -/*N*/ for (nRow = 0; nRow < nRowCnt; nRow++) -/*N*/ { -/*N*/ if(IsDataOnAxis(nRow)) -/*N*/ { -/*N*/ bOK=TRUE; -/*N*/ -/*N*/ double rTemp = GetData(nCol, nRow);//mpModel->GetData(nCol, nRow, mbPercent); -/*N*/ -/*N*/ if (rTemp != DBL_MIN) -/*N*/ { -/*N*/ if(fMin > rTemp) -/*N*/ fMin = rTemp; -/*N*/ fTotal += rTemp; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if(fMax < fTotal) -/*N*/ fMax = fTotal; -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ if (mpModel->IsXYChart ()) -/*N*/ { -/*N*/ if(mnId == CHART_AXIS_X) -/*N*/ { -/*N*/ // here: x axis values are in row 0, so just iterate over col -/*N*/ for( nCol = 0; nCol < nColCnt; nCol++ ) -/*N*/ { -/*N*/ double fData = GetData( nCol, 0 ); -/*N*/ -/*N*/ if (fData != DBL_MIN) -/*N*/ { -/*N*/ if (nCol == 0) //naja, so eigentlich nicht.... aber die X-Achse sollte eh vollständig sein -/*N*/ { -/*N*/ fMin = fData; -/*N*/ fMax = fData; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ //if ((fMin > fData) && !mbLogarithm || (fData > 0.0) && mbLogarithm) -/*N*/ if( (fMin > fData) -/*N*/ && (!mbLogarithm || fData > 0.0) ) -/*N*/ fMin = fData; -/*N*/ -/*N*/ if (fMax < fData) -/*N*/ fMax = fData; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ else // y axis -/*N*/ { -/*N*/ // #69912# use x axis range for determining the auto values for y axis -/*N*/ ChartAxis* pXAxis = mpModel->GetAxisByUID( CHART_AXIS_PRIMARY_X ); -/*N*/ double fXMin = pXAxis->GetMin(); -/*N*/ double fXMax = pXAxis->GetMax(); -/*N*/ -/*N*/ // set min and max to 0/1 resp. in case the x range is empty -/*N*/ fMin = 0.0; -/*N*/ fMax = 1.0; -/*N*/ -/*N*/ for (nRow = 1; nRow < nRowCnt; nRow++) -/*N*/ { -/*N*/ //if(IsDataOnAxis(nRow)) //#63904#: 2,77% -/*N*/ const SfxItemSet& rDataRowAttr = mpModel->GetDataRowAttr(nRow); -/*N*/ if(mnUId == ((const SfxInt32Item &)rDataRowAttr.Get(SCHATTR_AXIS)).GetValue()) -/*N*/ { -/*N*/ bOK=TRUE; -/*N*/ -/*N*/ double fDiffUp = 0.0; -/*N*/ double fDiffDown = 0.0; -/*N*/ fDiffUp=fDiffDown=GetRowError(nRow); // rm1 -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ // #69912# -/*N*/ double xVal = GetData( nCol, 0 ); -/*N*/ if( fXMin <= xVal && xVal <= fXMax ) -/*N*/ { -/*N*/ double fData = GetData( nCol, nRow ); -/*N*/ -/*N*/ if (fData != DBL_MIN) -/*N*/ { -/*N*/ double fDataMin = fData; -/*N*/ double fDataMax = fData; -/*N*/ -/*N*/ //#63904#neu: (18.8 ms -> 7.28 ms ) -/*N*/ // SfxItemSet aDataPointAttr(rDataRowAttr); -/*N*/ // mpModel->MergeDataPointAttr(aDataPointAttr,nCol, nRow); -/*N*/ // SfxItemSet aDataPointAttr(mpModel->GetFullDataPointAttr(nCol, nRow));//#63904#71% 69,66% -/*N*/ const SfxItemSet * pDataPointItemSet = mpModel->GetRawDataPointAttr (nCol,nRow); -/*N*/ BOOL bDataPointItemSetValid = (pDataPointItemSet!=NULL); -/*N*/ -/*N*/ const SfxPoolItem * pItem = sch::GetItem( -/*N*/ SCHATTR_STAT_KIND_ERROR, -/*N*/ rDataRowAttr, -/*N*/ *pDataPointItemSet, bDataPointItemSetValid ); -/*N*/ -/*N*/ DBG_ASSERT( pItem != NULL, "Invalid Itemset" ); -/*N*/ if( pItem != NULL ) -/*N*/ { -/*N*/ switch (static_cast<SvxChartKindError>( -/*N*/ static_cast<const SfxInt32Item&>( *pItem ).GetValue ())) -/*N*/ { -/*?*/ case CHERROR_PERCENT : -/*?*/ fDiffUp = -/*?*/ fDiffDown = fData * static_cast<const SvxDoubleItem&>(*sch::GetItem( -/*?*/ SCHATTR_STAT_PERCENT, -/*?*/ rDataRowAttr, -/*?*/ *pDataPointItemSet, bDataPointItemSetValid)).GetValue () -/*?*/ / 100.0; -/*?*/ break; -/*?*/ -/*?*/ case CHERROR_CONST : -/*?*/ fDiffUp = fData + static_cast<const SvxDoubleItem&>(*sch::GetItem( -/*?*/ SCHATTR_STAT_CONSTPLUS, -/*?*/ rDataRowAttr, -/*?*/ *pDataPointItemSet, bDataPointItemSetValid)).GetValue (); -/*?*/ fDiffDown = fData + static_cast<const SvxDoubleItem&>(*sch::GetItem( -/*?*/ SCHATTR_STAT_CONSTMINUS, -/*?*/ rDataRowAttr, -/*?*/ *pDataPointItemSet, bDataPointItemSetValid)).GetValue (); -/*N*/ break; -/*N*/ -/*N*/ default : -/*N*/ ; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ pItem = sch::GetItem( -/*N*/ SCHATTR_STAT_INDICATE, -/*N*/ rDataRowAttr, -/*N*/ *pDataPointItemSet, bDataPointItemSetValid ); -/*N*/ -/*N*/ DBG_ASSERT( pItem != NULL, "Invalid Itemset" ); -/*N*/ if( pItem != NULL ) -/*N*/ { -/*N*/ switch (static_cast<SvxChartIndicate>( -/*N*/ static_cast<const SfxInt32Item&>( *pItem ).GetValue ())) -/*N*/ { -/*N*/ case CHINDICATE_BOTH : -/*?*/ fDataMin -= fDiffDown; -/*?*/ fDataMax += fDiffUp; -/*?*/ break; -/*?*/ -/*?*/ case CHINDICATE_UP : -/*?*/ fDataMax += fDiffUp; -/*?*/ break; -/*?*/ -/*?*/ case CHINDICATE_DOWN : -/*?*/ fDataMin -= fDiffDown; -/*?*/ break; -/*N*/ -/*N*/ case CHINDICATE_NONE : -/*N*/ default : -/*N*/ ; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ //if ((nCol == 0) && (nRow == 1)) //und wenn hier mal DBL_MIN steht???? -/*N*/ if(bInitialise) -/*N*/ { -/*N*/ bInitialise=FALSE; -/*N*/ fMin = fDataMin; -/*N*/ fMax = fDataMax; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if ( (fMin > fDataMin) -/*N*/ && (!mbLogarithm || fDataMin > 0.0) ) -/*N*/ fMin = fDataMin; -/*N*/ -/*N*/ if (fMax < fDataMax) -/*N*/ fMax = fDataMax; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ else // ! XY-Chart ... Hier landen auch die StockCharts -/*N*/ { -/*N*/ for (nRow = 0; nRow < nRowCnt; nRow++) -/*N*/ { -/*N*/ //if(IsDataOnAxis(nRow)) //#63904#neu: -/*N*/ const SfxItemSet& rDataRowAttr = mpModel->GetDataRowAttr(nRow); -/*N*/ if(mnUId == ((const SfxInt32Item &)rDataRowAttr.Get(SCHATTR_AXIS)).GetValue()) -/*N*/ { -/*N*/ bOK=TRUE; -/*N*/ -/*N*/ double fDiffUp = 0.0; -/*N*/ double fDiffDown = 0.0; -/*N*/ -/*N*/ fDiffUp=fDiffDown=GetRowError(nRow);//rm3 -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ double fData = GetData(nCol, nRow); -/*N*/ -/*N*/ if (fData != DBL_MIN) -/*N*/ { -/*N*/ double fDataMin = fData; -/*N*/ double fDataMax = fData; -/*N*/ -/*N*/ //#63904# -/*N*/ // SfxItemSet aDataPointAttr(rDataRowAttr); -/*N*/ // mpModel->MergeDataPointAttr(aDataPointAttr,nCol, nRow); -/*N*/ //SfxItemSet aDataPointAttr(mpModel->GetFullDataPointAttr(nCol, nRow)); -/*N*/ const SfxItemSet * pDataPointItemSet = mpModel->GetRawDataPointAttr (nCol,nRow); -/*N*/ BOOL bDataPointItemSetValid = (pDataPointItemSet!=NULL); -/*N*/ -/*N*/ const SfxPoolItem * pItem = sch::GetItem( -/*N*/ SCHATTR_STAT_KIND_ERROR, -/*N*/ rDataRowAttr, -/*N*/ *pDataPointItemSet, bDataPointItemSetValid); -/*N*/ -/*N*/ DBG_ASSERT( pItem != NULL, "Invalid Itemset" ); -/*N*/ if( pItem != NULL ) -/*N*/ { -/*N*/ switch (static_cast<SvxChartKindError>( -/*N*/ static_cast<const SfxInt32Item&>( *pItem ).GetValue ())) -/*N*/ { -/*?*/ case CHERROR_PERCENT : -/*?*/ fDiffUp = -/*?*/ fDiffDown = fData * static_cast<const SvxDoubleItem&>(*sch::GetItem( -/*?*/ SCHATTR_STAT_PERCENT, -/*?*/ rDataRowAttr, -/*?*/ *pDataPointItemSet, bDataPointItemSetValid)).GetValue () -/*?*/ / 100.0; -/*?*/ break; -/*?*/ -/*?*/ case CHERROR_CONST : -/*?*/ fDiffUp = fData + static_cast<const SvxDoubleItem&>(*sch::GetItem( -/*?*/ SCHATTR_STAT_CONSTPLUS, -/*?*/ rDataRowAttr, -/*?*/ *pDataPointItemSet, bDataPointItemSetValid)).GetValue (); -/*?*/ fDiffDown = fData + static_cast<const SvxDoubleItem&>(*sch::GetItem( -/*?*/ SCHATTR_STAT_CONSTMINUS, -/*?*/ rDataRowAttr, -/*?*/ *pDataPointItemSet, bDataPointItemSetValid)).GetValue (); -/*?*/ break; -/*N*/ -/*N*/ default : -/*N*/ ; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ DBG_ASSERT( pItem != NULL, "Invalid Itemset" ); -/*N*/ pItem = sch::GetItem( -/*N*/ SCHATTR_STAT_INDICATE, -/*N*/ rDataRowAttr, -/*N*/ *pDataPointItemSet, bDataPointItemSetValid ); -/*N*/ -/*N*/ if( pItem != NULL ) -/*N*/ { -/*N*/ switch (static_cast<SvxChartIndicate>( -/*N*/ static_cast<const SfxInt32Item&>( *pItem ).GetValue ())) -/*N*/ { -/*?*/ case CHINDICATE_BOTH : -/*?*/ fDataMin -= fDiffDown; -/*?*/ fDataMax += fDiffUp; -/*?*/ break; -/*?*/ -/*?*/ case CHINDICATE_UP : -/*?*/ fDataMax += fDiffUp; -/*?*/ break; -/*?*/ -/*?*/ case CHINDICATE_DOWN : -/*?*/ fDataMin -= fDiffDown; -/*?*/ break; -/*N*/ -/*N*/ case CHINDICATE_NONE : -/*N*/ default : -/*N*/ ; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ //if ((nCol == 0) && (nRow == 0))//und wenn hier mal DBL_MIN steht???? -/*N*/ if(bInitialise) -/*N*/ { -/*N*/ bInitialise=FALSE; -/*N*/ fMin = fDataMin; -/*N*/ fMax = fDataMax; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if ((fMin > fDataMin) -/*N*/ && (!mbLogarithm ||(fDataMin > 0.0))) -/*N*/ fMin = fDataMin; -/*N*/ if (fMax < fDataMax) -/*N*/ fMax = fDataMax; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ break; -/*N*/ }//switch meStackMode -/*N*/ -/*N*/ -/*N*/ // bei CHSTYLE_2D_LINE_STACKEDCOLUMN muessen die Linien nochmal extra berechnet -/*N*/ // werden Letzte Linie = nRowCnt, da oben nRowCnt-=n #50212# -/*N*/ long nIndex=nRowCnt;//ab hier liegen evtl. linien vor -/*N*/ while(nLines) //nLines ist 0 wenn kein CHSTYLE_2D_LINE_STACKEDCOLUMN -/*N*/ { -/*?*/ if( IsDataOnAxis( nIndex )) -/*?*/ {DBG_BF_ASSERT(0, "STRIP");} -/*?*/ nLines--; -/*?*/ nIndex++; -/*N*/ } -/*N*/ if (mbPercent) -/*N*/ { -/*N*/ fMin = 0.0; -/*N*/ if (fMax > 100.0) -/*N*/ fMax = 100.0; -/*N*/ } -/*N*/ -/*N*/ if( mbAutoMin ) -/*N*/ mfMin = fMin; -/*N*/ -/*N*/ if( mbAutoMax ) -/*N*/ mfMax = fMax; -/*N*/ -/*N*/ return bOK; -/*N*/ } - -//Ab jetzt wird die Achse gebaut, die meisten Werte können nicht mehr geändert werden, -//da wir uns im BuildChart (genauer: zumeist in Create<n>DBackplanes) befinden. -//allerdings wird die Area noch verändert. Davn unabhängige Werte, z.B. Items können -//in Variablen gebuffert werden -/*N*/ void ChartAxis::Initialise(const Rectangle &rRect,BOOL bFlippedXY -/*N*/ ,long eStackmode,BOOL bPercent -/*N*/ ,BOOL bRadial,BOOL bPercentCol) -/*N*/ -/*N*/ { -/*N*/ mnMaxTextWidth=-1; -/*N*/ mbInnerPos=FALSE; -/*N*/ mbAlternativIdUsed=FALSE; -/*N*/ mbTextOverlap= ((const SfxBoolItem&)mpAxisAttr->Get(SCHATTR_TEXT_OVERLAP)).GetValue(); -/*N*/ mbPercentCol=bPercentCol; -/*N*/ mbPercent=bPercent; -/*N*/ maArea=rRect; -/*N*/ mbFlippedXY=bFlippedXY; -/*N*/ meStackMode=eStackmode; -/*N*/ mbRadial=bRadial; -/*N*/ mbShowDescr=HasDescription(); -/*N*/ -/*N*/ mbColStackOK=FALSE; //noch nix gestapelt, noch nicht initialisiert -/*N*/ mbTotalActual=FALSE; //anzahl cols/daten könnten verändert sein! -/*N*/ mbTotalAlloc =FALSE; //anzahl cols/daten könnten verändert sein! -/*N*/ -/*N*/ mpMainGridList=NULL; -/*N*/ mpHelpGridList=NULL; -/*N*/ mpAxisList=NULL; -/*N*/ -/*N*/ //Atribute auslesen, etwas Overhead, ToDo: optimieren -/*N*/ ReadAutoAttr(); -/*N*/ ReadAttr(); -/*N*/ // #84601# set Min/Max etc. at the local item set! -/*N*/ if( mpAxisAttr ) -/*N*/ GetMembersAsAttr( *mpAxisAttr ); -/*N*/ }; - -/*N*/ void ChartAxis::GetMembersAsAttr(SfxItemSet& rSet) const -/*N*/ { -/*N*/ rSet.Put(SfxUInt32Item(SID_ATTR_NUMBERFORMAT_VALUE,((ChartAxis*)this)->GetNumFormat())); -/*N*/ rSet.Put(SvxDoubleItem(mfMin , SCHATTR_AXIS_MIN)); -/*N*/ rSet.Put(SvxDoubleItem(mfMax , SCHATTR_AXIS_MAX)); -/*N*/ rSet.Put(SvxDoubleItem(mfStep , SCHATTR_AXIS_STEP_MAIN)); -/*N*/ rSet.Put(SvxDoubleItem(mfStepHelp , SCHATTR_AXIS_STEP_HELP)); -/*N*/ rSet.Put(SvxDoubleItem(mfOrigin , SCHATTR_AXIS_ORIGIN)); -/*N*/ } - -/*N*/ void ChartAxis::CalcMinMaxValue() -/*N*/ { -/*N*/ -/*N*/ if (mbAutoMin || mbAutoMax) //Dann alle Werte generieren -/*N*/ { -/*N*/ if(!GetMinMaxFromData() && mnAlternateId && /*#63904#:*/(IsVisible()||HasDescription())) -/*N*/ { -/*?*/ long tmp=mnUId; -/*?*/ mnUId=mnAlternateId; -/*?*/ GetMinMaxFromData(); -/*?*/ mbAlternativIdUsed=TRUE; -/*?*/ mnUId=tmp; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if (mfMin > mfMax) //ToDo: Korrektur, sollte aber ueberfluessig sein -/*N*/ { -/*?*/ double fTemp = mfMin; -/*?*/ mfMin=mfMax; -/*?*/ mfMax=fTemp; -/*N*/ } -/*N*/ -/*N*/ ReadAttr(); //Alle nicht-automatischen Wertze werden jetzt geholt -/*N*/ -/*N*/ if ((mfMin != DBL_MIN) || (mfMax != DBL_MIN)) -/*N*/ { -/*N*/ if (mfMin > mfMax) //noch ne Korrektur, diese ist aber noetig! -/*N*/ { -/*?*/ if( mbAutoMax ) -/*?*/ mfMax = mfMin; -/*?*/ else if( mbAutoMin ) -/*?*/ mfMin = mfMax; -/*?*/ else -/*?*/ { -/*?*/ OSL_FAIL( "Minimum is greater than Maximum" ); -/*?*/ double fTemp = mfMin; -/*?*/ -/*?*/ mfMin = mfMax; -/*?*/ mfMax = fTemp; -/*?*/ } -/*N*/ } -/*N*/ -/*N*/ if (mbLogarithm) -/*N*/ { -/*?*/ if (mbAutoMin) -/*?*/ { -/*?*/ if (mfMin > 1.0) -/*?*/ { -/*?*/ double fVal = 1.0; -/*?*/ -/*?*/ while (fVal < mfMin) -/*?*/ fVal *= 10.0; -/*?*/ -/*?*/ if (fVal > mfMin) fVal /= 10.0; -/*?*/ mfMin = fVal; -/*?*/ } -/*?*/ else if (mfMin > 0.0) -/*?*/ { -/*?*/ double fVal = 1.0; -/*?*/ -/*?*/ while (fVal > mfMin) -/*?*/ fVal /= 10.0; -/*?*/ -/*?*/ mfMin = fVal; -/*?*/ } -/*?*/ else mfMin = 1.0; -/*?*/ } -/*?*/ -/*?*/ if (mbAutoMax) -/*?*/ { -/*?*/ if (mfMax > 1.0) -/*?*/ { -/*?*/ double fVal = 1.0; -/*?*/ -/*?*/ while (fVal < mfMax) -/*?*/ fVal *= 10.0; -/*?*/ -/*?*/ mfMax = fVal; -/*?*/ } -/*?*/ else if (mfMax > 0.0) -/*?*/ { -/*?*/ double fVal = 1.0; -/*?*/ -/*?*/ while (fVal > mfMax) -/*?*/ fVal /= 10.0; -/*?*/ -/*?*/ if (fVal < mfMax) fVal *= 10.0; -/*?*/ mfMax = fVal; -/*?*/ } -/*?*/ else mfMax = 1.0; -/*?*/ } -/*?*/ -/*?*/ if (mfMax - mfMin == 0.0) mfMax = mfMin * 10.0; -/*?*/ if (mfOrigin != mfMin) mfOrigin = mfMin; -/*?*/ } -/*N*/ else -/*N*/ { -/*N*/ if ((!mpModel->IsNegativeChart() && (mfMin < 0.0)) || -/*N*/ (mbAutoMin && (mfMin > 0.0))) mfMin = SizeBounds (mfMin, mfMax, FALSE); -/*N*/ if (mbAutoMax && (mfMax < 0.0)) mfMax = SizeBounds (mfMin, mfMax, TRUE); -/*N*/ -/*N*/ if (mfMax - mfMin == 0.0) mfMax = mfMin + 1.0; -/*N*/ -/*N*/ if (mbAutoOrigin) -/*N*/ { -/*N*/ mfOrigin = 0.0; -/*N*/ if (mfOrigin < mfMin) mfOrigin = mfMin; -/*N*/ else if (mfOrigin > mfMax) mfOrigin = mfMax; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if (mfOrigin < mfMin) mfMin = mfOrigin; -/*N*/ if (mfOrigin > mfMax) mfMax = mfOrigin; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } - -/* ************************************************************************ -|* -|* Faktor fuer Koordinaten-Multiplikation berechnen -|* abart der globalen Funktion mit den ChartAxis-Membervariablen -|* -\*********************************************************************** */ -/*N*/ void ChartAxis::LoadMemberCompat(SvStream& rIn) -/*N*/ { -/*N*/ rIn >> mfMin; -/*N*/ rIn >> mfMax; -/*N*/ rIn >> mfStep; -/*N*/ rIn >> mfStepHelp; -/*N*/ rIn >> mfOrigin; -/*N*/ -/*N*/ -/*N*/ mpAxisAttr->Put(SvxDoubleItem(mfMin , SCHATTR_AXIS_MIN)); -/*N*/ mpAxisAttr->Put(SvxDoubleItem(mfMax , SCHATTR_AXIS_MAX)); -/*N*/ mpAxisAttr->Put(SvxDoubleItem(mfStep , SCHATTR_AXIS_STEP_MAIN)); -/*N*/ mpAxisAttr->Put(SvxDoubleItem(mfStepHelp , SCHATTR_AXIS_STEP_HELP)); -/*N*/ mpAxisAttr->Put(SvxDoubleItem(mfOrigin , SCHATTR_AXIS_ORIGIN)); -/*N*/ -/*N*/ CHART_TRACE2( "ChartAxis::LoadMemberCompat min=%lf, max=%lf", mfMin, mfMax ); -/*N*/ CHART_TRACE3( "... step=%lf, help=%lf, origin=%lf", mfStep, mfStepHelp, mfOrigin ); -/*N*/ } - -/*N*/ void ChartAxis::StoreMemberCompat(SvStream& rOut) const -/*N*/ { -/*N*/ rOut << mfMin; -/*N*/ rOut << mfMax; -/*N*/ rOut << mfStep; -/*N*/ rOut << mfStepHelp; -/*N*/ rOut << mfOrigin; -/*N*/ } -//ToDo: nLen ist maArea.Width(),Height, oder das ganze bei NetChart /2 (vermutlich) -/*N*/ long ChartAxis::GetLength() const -/*N*/ { -/*N*/ if(mbRadial)//&& Achse=Y (ist aber immer so bei NetCharts) -/*N*/ return maArea.GetHeight () / 2; -/*N*/ -/*N*/ switch(mnId) -/*N*/ { -/*N*/ case CHART_AXIS_X: -/*N*/ return mbFlippedXY ? maArea.GetHeight() : maArea.GetWidth(); -/*N*/ break; -/*N*/ case CHART_AXIS_Y: -/*N*/ return mbFlippedXY ? maArea.GetWidth() : maArea.GetHeight(); -/*N*/ break; -/*N*/ case CHART_AXIS_Z: -/*N*/ return (maArea.GetWidth() * 4) / 6; //ToDo: Das hier ist doch quark... kein Flipped?:; -/*N*/ break; -/*N*/ } -/*?*/ OSL_FAIL("ChartAxis::GetLenght() implementation error - ZAxis failure"); -/*?*/ return maArea.GetWidth(); -/*N*/ } - - - - -/** - @descr Calculate the size of the bounding box of a text string. The size - is measured with respect to the coordinate axes. - - @param rTextAttr Attributes of the font to use. - @param aString The "typical" description. - - @return Returns the size of the bounding box of the text. -*/ -/*N*/ Size ChartAxis::CalcDescriptionSize (const SfxItemSet * rTextAttr, -/*N*/ const String & aString) -/*N*/ { -/*N*/ // Get output device, store old page size and set paper size to -/*N*/ // maximal size to inhibit line breaks. -/*N*/ Outliner * pOutliner = mpModel->GetOutliner(); -/*N*/ pOutliner->SetUpdateMode (FALSE); -/*N*/ Size aOldPaperSize (pOutliner->GetPaperSize()); -/*N*/ pOutliner->SetPaperSize (Size (100000,100000)); // Maximal paper size ? -/*N*/ -/*N*/ // Save first paragraphs attributes, switch off hyphenation, and -/*N*/ // set the font attributes. -/*N*/ SfxItemSet aOldAttr (pOutliner->GetParaAttribs(0)); -/*N*/ SfxItemSet aNewAttr (aOldAttr); -/*N*/ aNewAttr.Put (SfxBoolItem(EE_PARA_HYPHENATE, FALSE)); -/*N*/ aNewAttr.Put (*rTextAttr); -/*N*/ mpModel->SetTextAttributes (aNewAttr); -/*N*/ -/*N*/ // synchronize item with member -/*N*/ meTextOrient = ((const SvxChartTextOrientItem&) -/*N*/ mpAxisAttr->Get(SCHATTR_TEXT_ORIENT)).GetValue(); -/*N*/ // Determine the size of the texts bounding box. -/*N*/ if (meTextOrient == CHTXTORIENT_STACKED) -/*?*/ {DBG_BF_ASSERT(0, "STRIP"); } -/*N*/ else -/*N*/ pOutliner->SetText(aString, pOutliner->GetParagraph (0)); -/*N*/ pOutliner->SetUpdateMode (TRUE); -/*N*/ Size aSize = pOutliner->CalcTextSize(); -/*N*/ // remove content and attributes -/*N*/ pOutliner->Clear(); -/*N*/ pOutliner->SetUpdateMode (FALSE); -/*N*/ -/*N*/ // Restore the old font and old paper size. -/*N*/ mpModel->SetTextAttributes (aOldAttr); -/*N*/ pOutliner->SetPaperSize (aOldPaperSize); -/*N*/ pOutliner->SetUpdateMode (TRUE); -/*N*/ -/*N*/ return (aSize); -/*N*/ } - - - - -/** - @descr Calculate the expected size of a "typical" description. The size - is measured along the axis. The axis orientation is taken into - account. - @precond CalcMinMaxValue() has to have been called already. - - @param rAttr Attributes of the font to use. - - @return Returns the size of the text projected onto the axis. -*/ -/*N*/ long int ChartAxis::CalcTypicalDescriptionSize (const SfxItemSet * rAttr) -/*N*/ { -/*N*/ String aString; -/*N*/ Color * pDummy = NULL; -/*N*/ Size aSize, -/*N*/ aMaxSize; -/*N*/ -/*N*/ // As typical text we use the minimum and maximum and some randomly -/*N*/ // chose value in between. This relies on a previous call to -/*N*/ // CalcMinMaxValue(). -/*N*/ mpNumFormatter->GetOutputString (mfMin, GetNumFormat(), aString, &pDummy); -/*N*/ aMaxSize = CalcDescriptionSize (rAttr, aString); -/*N*/ -/*N*/ mpNumFormatter->GetOutputString (mfMax, GetNumFormat(), aString, &pDummy); -/*N*/ aSize = CalcDescriptionSize (rAttr, aString); -/*N*/ if (aSize.Width() > aMaxSize.Width()) -/*N*/ aMaxSize.Width() = aSize.Width(); -/*N*/ if (aSize.Height() > aMaxSize.Height()) -/*?*/ aMaxSize.Height() = aSize.Height(); -/*N*/ -/*N*/ double fPos = 0.53, // Arbitrary position between mfMin and mfMax. -/*N*/ fValue = (1-fPos) * mfMin + fPos * mfMax; -/*N*/ mpNumFormatter->GetOutputString (fValue, GetNumFormat(), aString, &pDummy); -/*N*/ aSize = CalcDescriptionSize (rAttr, aString); -/*N*/ if (aSize.Width() > aMaxSize.Width()) -/*N*/ aMaxSize.Width() = aSize.Width(); -/*N*/ if (aSize.Height() > aMaxSize.Height()) -/*?*/ aMaxSize.Height() = aSize.Height(); -/*N*/ -/*N*/ // Select the right coordinate and return it. -/*N*/ if (IsVertical()) -/*N*/ return (aMaxSize.Height()); -/*N*/ else -/*N*/ return (aMaxSize.Width()); -/*N*/ } - - -/** - @descr Calculate the intervall delimited by mfMin and mfMax for which - tick marks are drawn, its origin (mfOrigin), which is either zero - if inside the intervall or mfMin or mfMax otherwise. The - distance between two adjacent tick marks of the main grid is - stored into mfStep and the distance for the help grid into - mfStepHelp. -*/ -/*N*/ void ChartAxis::CalcValueSteps (void) -/*N*/ { -/*N*/ long nLen=GetLength(); -/*N*/ -/*N*/ ReadAutoAttr(); //mbAuto* aus mpAxisAttr lesen -/*N*/ -/*N*/ CalcMinMaxValue(); //Min und Max bestimmen -/*N*/ -/*N*/ if (mfMax == DBL_MIN) -/*N*/ { -/*N*/ mfMax = -/*N*/ mfOrigin = -/*N*/ mfMin = -/*N*/ mfStep = -/*N*/ mfStepHelp = 0.0; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ double fRange = mfMax-mfMin, -/*N*/ fApproximateDescriptionSize -/*N*/ = 2.5 * CalcTypicalDescriptionSize(mpAxisAttr); -/*N*/ // former value: (mpModel->GetLineHeight(*mpAxisAttr) * 3) -/*N*/ long nMaxSteps = (long int)(nLen / fApproximateDescriptionSize); -/*N*/ -/*N*/ if (mbLogarithm) -/*N*/ { -/*N*/ if (mbAutoStep) -/*N*/ mfStep = 10.0; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if (mbAutoStep) -/*N*/ { -/*N*/ // Find smallest power of 10 lower than or equal to fRange, -/*N*/ // that scales fFactor into the interval [1,10]. -/*N*/ double fFactor = pow ((double)10, floor (log10 (fRange))); -/*N*/ fRange /= fFactor; -/*N*/ -/*N*/ // Calculate mfStep so that the number of divisions (nSteps) -/*N*/ // is 'not much' higher than nMaxSteps. The value of nSteps -/*N*/ // is increased succesively to multiples of 2*10^k, 4*10^k, -/*N*/ // 5*10^k, and 10*10^k, with k>=0. -/*N*/ long nSteps = 1; -/*N*/ mfStep = 10.0; -/*N*/ if (nSteps < nMaxSteps) -/*N*/ { -/*N*/ short nDepth = 0; -/*N*/ -/*N*/ do -/*N*/ { -/*N*/ if (nDepth % 4 == 2) mfStep = mfStep * 4.0 / 5.0; -/*N*/ else mfStep /= 2.0; -/*N*/ -/*N*/ nSteps = (long)(fRange / mfStep); -/*N*/ nDepth++; -/*N*/ } -/*N*/ while (nSteps < nMaxSteps); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if (mfStep > fRange) -/*N*/ { -/*N*/ short nDepth = 0; -/*N*/ double fStep = mfStep; -/*N*/ -/*N*/ do -/*N*/ { -/*N*/ if (nDepth % 4 == 2) fStep = fStep * 4.0 / 5.0; -/*N*/ else fStep /= 2.0; -/*N*/ -/*N*/ if (fStep >= fRange) mfStep = fStep; -/*N*/ -/*N*/ nDepth++; -/*N*/ } -/*N*/ while (fStep > fRange); -/*N*/ } -/*N*/ } -/*N*/ mfStep *= fFactor; -/*N*/ -/*N*/ // Special treatment for dates and times. -/*N*/ short int nNumberFormat = mpNumFormatter->GetType ( -/*N*/ GetNumFormat()); -/*N*/ BOOL bIsDate = (nNumberFormat & NUMBERFORMAT_DATE) != 0; -/*N*/ BOOL bIsTime = (nNumberFormat & NUMBERFORMAT_TIME) != 0; -/*N*/ // At the moment the only special case is this: -/*N*/ // Dates without time are spaced whole days apart. -/*N*/ if (bIsDate && ! bIsTime) -/*N*/ { -/*N*/ mfStep = ceil(mfStep); -/*N*/ if (mfStep < 1) -/*N*/ mfStep = 1; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ // Make sure that the step width is positive and not equal to -/*N*/ // zero. -/*N*/ if ((mfStep<0) || (mfMin+mfStep==mfMin) || (mfMax+mfStep==mfMax)) -/*N*/ { -/*N*/ OSL_FAIL( "Decrement of <= 0.0 not allowed" ); -/*N*/ mfStep = 1.0; // to prevent loop -/*N*/ } -/*N*/ -/*N*/ if (mbAutoMin) -/*N*/ { -/*N*/ double fMin = 0.0; -/*N*/ -/*N*/ // Adjust mfMin to the largest value that is lower than or -/*N*/ // equal to its current value and is an integer multiple of -/*N*/ // mfSteps away of fMin. -/*N*/ if (fMin > mfMin) -/*N*/ mfMin = fMin - mfStep * ceil((fMin - mfMin) / mfStep); -/*N*/ else if (fMin < mfMin) -/*N*/ mfMin = fMin + mfStep * floor((mfMin - fMin) / mfStep); -/*N*/ -/*N*/ if ((mfMin >= 0.0) && (mfMin < mfOrigin)) -/*N*/ mfOrigin = mfMin; -/*N*/ } -/*N*/ -/*N*/ if (mbAutoMax) -/*N*/ { -/*N*/ double fMax = 0.0; -/*N*/ -/*N*/ // Adjust mfMax to the smallest value that is higher than or -/*N*/ // equal to its current value and is an integer multiple of -/*N*/ // mfSteps away of fMax. -/*N*/ if (fMax < mfMax) -/*N*/ mfMax = fMax + mfStep * ceil((mfMax - fMax) / mfStep); -/*N*/ else if (fMax > mfMax) -/*N*/ mfMax = fMax - mfStep * floor ((fMax - mfMax) / mfStep); -/*N*/ -/*N*/ if ((mfMax <= 0.0) && (mfMax > mfOrigin)) -/*N*/ mfOrigin = mfMax; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if(mbAutoStepHelp) -/*N*/ { -/*N*/ mfStepHelp = mbLogarithm ? (mfStep / 10) : (mfStep / 2); -/*N*/ } -/*N*/ VerifySteps(); -/*N*/ } -/*N*/ -/* //NetCharts, nur absolutwerte (was passiert bei gemischt ?) - //Sollte sowas nicht vor die Berechnung der Steps? - if (mbRadial) - { - mfMin = std::max (mfMin, 0); - mfMax = std::max (mfMax, 0); - if (mfMin > mfMax) - { - double fTemp = mfMin; - - mfMin = mfMax; - mfMax = fTemp; - } - } -*/ -/*N*/ } - - -/*N*/ void ChartAxis::VerifySteps() -/*N*/ { -/*N*/ //#38835# Sicherheitsueberpruefung der Werte, es werden beide Achsen gleichbehandelt -/*N*/ //Es sollte nur mit Double gerechnet werden da bei Fehlern der Bereich nicht reicht -/*N*/ //(deshalb double nVarName, -/*N*/ //ToDo: GetLenght benutzen! Wir kennen ja in dieser Klasse mittlerweile die Laenge -/*N*/ -/*N*/ double fRange=(mfMax - mfMin); -/*N*/ -/*N*/ double nLimit=Max(maArea.GetWidth(),maArea.GetHeight()); -/*N*/ -/*N*/ if(nLimit < 0.0) -/*N*/ { -/*?*/ OSL_FAIL( "negative value for nLimit, check maArea!" ); -/*?*/ nLimit=1.0; -/*N*/ } -/*N*/ nLimit=nLimit/100.0; //Minimum 1 mm Abstand -/*N*/ -/*N*/ if(nLimit && !mbLogarithm) -/*N*/ { -/*N*/ if(mfStep!=0.0 ) -/*N*/ { -/*N*/ double fSteps=fRange/mfStep; -/*N*/ while(fSteps>nLimit) -/*N*/ { -/*?*/ mfStep*=10; -/*?*/ fSteps=fRange / mfStep; -/*N*/ } -/*N*/ } -/*N*/ nLimit*=10; //Min fuer Hilfsticks: 0,1 mm bzw. 10 Hilfsticks immer moeglich -/*N*/ -/*N*/ if(mfStepHelp!=0.0) -/*N*/ { -/*N*/ double fSteps=fRange/mfStepHelp; -/*N*/ while(fSteps>nLimit) -/*N*/ { -/*?*/ mfStepHelp*=10; -/*?*/ fSteps=fRange/mfStepHelp; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } - -/*N*/ long ChartAxis::GetPos(double fData) -/*N*/ { -/*N*/ switch(mnId) -/*N*/ { -/*N*/ case CHART_AXIS_X: -/*N*/ if(mbFlippedXY) -/*N*/ return maRefArea.Bottom() - (long)(CalcFact(fData) * maRefArea.GetHeight()); -/*N*/ else -/*N*/ return maRefArea.Left() + (long)(CalcFact(fData) * maRefArea.GetWidth()); -/*N*/ -/*N*/ case CHART_AXIS_Y: -/*N*/ if(!mbFlippedXY) -/*N*/ return maRefArea.Bottom() - (long)(CalcFact(fData) * maRefArea.GetHeight()); -/*N*/ else -/*N*/ return maRefArea.Left() + (long)(CalcFact(fData) * maRefArea.GetWidth()); -/*N*/ -/*N*/ case CHART_AXIS_Z: -/*?*/ OSL_FAIL("ChartAxis - no z pos"); -/*N*/ } -/*N*/ return 0; -/*N*/ } -/*N*/ BOOL ChartAxis::SetArea(const Rectangle &rRect) -/*N*/ { -/*N*/ BOOL bRet=TRUE; -/*N*/ if(rRect==maRefArea) -/*N*/ bRet=FALSE; -/*N*/ maRefArea=rRect; -/*N*/ -/*N*/ SetPosition(mbSecondary ? CHAXIS_POS_B :CHAXIS_POS_A); -/*N*/ -/*N*/ #ifdef DBG_UTIL -/*N*/ if(maArea!=maRefArea) -/*N*/ OSL_TRACE("ChartAxis:: maArea!=maRefArea!!!"); -/*N*/ #endif -/*N*/ return bRet; -/*N*/ } - - - -/* ************************************************************************ -|* -|* Liefert die maximale Werte-Text-Gr”áe -|* -\*********************************************************************** */ -/*N*/ Size ChartAxis::CalcMaxTextSize() -/*N*/ { -/*N*/ return CalcMaxTextSize(((const SvxChartTextOrientItem&)mpAxisAttr->Get(SCHATTR_TEXT_ORIENT)).GetValue()); -/*N*/ } - -/*N*/ Size ChartAxis::CalcMaxTextSize(SvxChartTextOrient eOrient) -/*N*/ { -/*N*/ meTextOrient = eOrient; -/*N*/ maMaxTextSize=Size(0,0); -/*N*/ -/*N*/ if(!mbShowDescr) -/*N*/ return maMaxTextSize; -/*N*/ -/*N*/ BOOL bStepIsValid = mbLogarithm ? (mfStep > 1.0) : (mfStep > 0.0); -/*N*/ -/*N*/ if( mfMin != mfMax && bStepIsValid ) -/*N*/ { -/*N*/ OutputDevice *pOut = mpModel->GetOutliner()->GetRefDevice(); -/*N*/ Font aNewFont; -/*N*/ ItemsToFont(*mpAxisAttr,aNewFont); -/*N*/ Font aOldFont(pOut->GetFont()); -/*N*/ pOut->SetFont(aNewFont); -/*N*/ -/*N*/ double fAct = mfMin; -/*N*/ -/*N*/ if( ::rtl::math::isInf( mfMax ) || ::rtl::math::isInf( mfMin )) -/*N*/ { -/*N*/ OSL_FAIL( "maximum or minumum is infinity" ); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ while (fAct <= mfMax) -/*N*/ { -/*N*/ String aNumStr; -/*N*/ Color* pDummy = NULL; -/*N*/ -/*N*/ if(mbColText) -/*N*/ { -/*N*/ long nCol = long(fAct); -/*N*/ if(nCol<mpModel->GetColCount()) -/*N*/ aNumStr=mpModel->ColText(nCol); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ mpNumFormatter->GetOutputString(mbPercent ? fAct / 100.0: fAct, -/*N*/ GetNumFormat(), aNumStr, &pDummy); -/*N*/ } -/*N*/ -/*N*/ Size aSize; -/*N*/ if (meTextOrient == CHTXTORIENT_STACKED) -/*N*/ { -/*?*/ aSize.Width() = pOut->GetTextWidth( ::binfilter::StackString( aNumStr )); -/*?*/ aSize.Height() = pOut->GetTextHeight(); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ aSize.Width() = pOut->GetTextWidth( aNumStr ); -/*N*/ aSize.Height() = pOut->GetTextHeight(); -/*N*/ } -/*N*/ -/*N*/ aSize.Height() += TEXTHEIGHT_OFS; -/*N*/ aSize.Width () = (aSize.Width () * 6) / 5; -/*N*/ -/*N*/ if (aSize.Width() > maMaxTextSize.Width()) -/*N*/ maMaxTextSize.Width() = aSize.Width(); -/*N*/ if (aSize.Height() > maMaxTextSize.Height()) -/*N*/ maMaxTextSize.Height() = aSize.Height(); -/*N*/ -/*N*/ IncValue(fAct, mfStep, mbLogarithm); -/*N*/ } -/*N*/ maMaxTextSize = GetRotatedTextSize( maMaxTextSize, -/*N*/ GetTextRotation( *mpAxisAttr, meTextOrient )); -/*N*/ } -/*N*/ -/*N*/ //Evtl. muss hier noch ein Umbruch eingeplant werden! -/*N*/ -/*N*/ pOut->SetFont(aOldFont); -/*N*/ } -/*N*/ RecalcTextPos(); -/*N*/ return maMaxTextSize; -/*N*/ } - -/*N*/ void ChartAxis::RecalcTextPos() -/*N*/ { -/*N*/ //Textabstand: -/*N*/ long nExtra = -100; //+1mm -/*N*/ if((mbSecondary && IsVertical()) || (!mbSecondary && !IsVertical())) -/*N*/ nExtra=100; -/*N*/ -/*N*/ if(mnTicks&CHAXIS_MARK_OUTER) -/*N*/ { -/*N*/ mnTextPos = mnPos + nExtra + mnTickLen; //LONGMARKS; -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ mnTextPos = mnPos + nExtra; -/*?*/ -/*?*/ if(mnHelpTicks&CHAXIS_MARK_OUTER) -/*?*/ mnTextPos +=mnHelpTickLen; -/*N*/ } -/*N*/ } - -/*N*/ void ChartAxis::SetPosition(long nPos) -/*N*/ { -/*N*/ mbSecondary=(BOOL)(nPos==CHAXIS_POS_B); -/*N*/ -/*N*/ if(nPos<0) -/*N*/ { -/*N*/ if(IsVertical()) -/*N*/ { -/*N*/ if(mbSecondary) -/*N*/ mnPos=maRefArea.Right(); -/*N*/ else -/*N*/ mnPos=maRefArea.Left(); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if(mbSecondary) -/*N*/ mnPos=maRefArea.Top(); -/*N*/ else -/*N*/ mnPos=maRefArea.Bottom(); -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ mnPos=nPos; -/*N*/ } -/*N*/ -/*N*/ RecalcTextPos(); -/*N*/ } - -//Wenn Ticks nach innen und/oder nach aussen gerichtet sind, wird ein SdrObject returned, -//sollen in keine Richtung Ticks gezeichnet werden, gbts den Nullpointer zurück -/*N*/ SdrObject *ChartAxis::CreateMarks(long nPosition,long nLen,long nWhichTicks) -/*N*/ { -/*N*/ XPolygon saLine(2); -/*N*/ -/*N*/ long nLen2=(nWhichTicks&CHAXIS_MARK_INNER) ? nLen : 0; -/*N*/ -/*N*/ if(!(nWhichTicks&CHAXIS_MARK_OUTER)) -/*N*/ nLen=0; -/*N*/ -/*N*/ if(!nLen && !nLen2) -/*N*/ return NULL; -/*N*/ -/*N*/ if(IsVertical()) -/*N*/ { -/*N*/ saLine[0].X() = mnPos + nLen; -/*N*/ saLine[1].X() = mnPos - nLen2; -/*N*/ saLine[0].Y() = saLine[1].Y() = nPosition; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ saLine[0].Y() = mnPos + nLen; -/*N*/ saLine[1].Y() = mnPos - nLen2; -/*N*/ saLine[0].X() = saLine[1].X() = nPosition; -/*N*/ } -/*N*/ -/*N*/ return SetObjectAttr (new SdrPathObj(OBJ_PLIN,saLine),CHOBJID_LINE,TRUE,TRUE,mpAxisAttr); -/*N*/ } -/*N*/ void ChartAxis::CreateMarkDescr(double fData,long nPosition) -/*N*/ { -/*N*/ String aNumStr; -/*N*/ Color* pTextColor = NULL; -/*N*/ -/*N*/ if(mbColText) -/*N*/ { -/*N*/ long nCol = long(fData); -/*N*/ long nColCnt=mpModel->GetColCount(); -/*N*/ if(IsVertical()) -/*N*/ nCol=nColCnt-nCol; //andere Reihenfolge wegen Bildschirmkoordinaten -/*N*/ -/*N*/ if(nCol<nColCnt && nCol>=0) -/*N*/ CreateMarkDescr(mpModel->ColText(nCol) ,nPosition, pTextColor); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ mpNumFormatter->GetOutputString(mbPercent ? fData/100.0:fData,GetNumFormat() -/*N*/ ,aNumStr,&pTextColor); -/*N*/ CreateMarkDescr(aNumStr, nPosition, pTextColor); -/*N*/ } -/*N*/ -/*N*/ } - -// BM #60999# new parameter pTextColor, if using red text for negative numbers -/*N*/ void ChartAxis::CreateMarkDescr(const String& rString, long nPosition, Color *pTextColor) -/*N*/ { -/*N*/ SvxColorItem* pOldTextColor = NULL; -/*N*/ -/*N*/ if(!mpTextAttr) -/*N*/ { -/*?*/ OSL_FAIL("ChartAxis: description uninitialised!!!!"); -/*?*/ CreateTextAttr(); -/*N*/ } -/*N*/ -/*N*/ if( pTextColor ) -/*N*/ { -/*?*/ pOldTextColor = (SvxColorItem*)mpTextAttr->GetItem( EE_CHAR_COLOR ); -/*?*/ mpTextAttr->Put(SvxColorItem( *pTextColor )); -/*N*/ } -/*N*/ -/*N*/ //Bei z.B. Barcharts ist der Text verschoben (sozusagen unter der Hilfsmarkierung) -/*N*/ long nTextOffset=0; -/*N*/ if(!mbCenterText && mbColText) -/*N*/ nTextOffset+=GetDescrWidth()/2; -/*N*/ -/*N*/ ChartAdjust eAdj; -/*N*/ SdrRectObj *pText=NULL; -/*N*/ if(IsVertical()) -/*N*/ { -/*N*/ Point aPos(mnTextPos,nPosition+nTextOffset); -/*N*/ if(mbStepValue) -/*N*/ { -/*?*/ if(mbValueDown) -/*?*/ { -/*?*/ if(mbSecondary) -/*?*/ aPos.X() += maMaxTextSize.Width(); -/*?*/ else -/*?*/ aPos.X() -= maMaxTextSize.Width(); -/*?*/ } -/*?*/ mbValueDown = !mbValueDown; -/*N*/ } -/*N*/ eAdj = mbSecondary ? CHADJUST_CENTER_LEFT : CHADJUST_CENTER_RIGHT; -/*N*/ pText=mpModel->CreateTextObj(CHOBJID_TEXT,aPos,rString,*mpTextAttr,FALSE,eAdj,mnMaxTextWidth); -/*N*/ } -/*N*/ else //horizontal -/*N*/ { -/*N*/ Point aPos(nPosition+nTextOffset,mnTextPos); -/*N*/ if (mbStepValue) -/*N*/ { -/*?*/ if(mbValueDown) -/*?*/ { -/*?*/ if(mbSecondary) -/*?*/ aPos.Y() -= maMaxTextSize.Height(); -/*?*/ else -/*?*/ aPos.Y() += maMaxTextSize.Height(); -/*?*/ } -/*?*/ mbValueDown = !mbValueDown; -/*N*/ } -/*N*/ eAdj = mbSecondary ? CHADJUST_BOTTOM_CENTER : CHADJUST_TOP_CENTER; -/*N*/ pText=mpModel->CreateTextObj(CHOBJID_TEXT,aPos,rString,*mpTextAttr,FALSE,eAdj,mnMaxTextWidth); -/*N*/ } -/*N*/ -/*N*/ if( pOldTextColor ) -/*N*/ { -/*?*/ mpTextAttr->Put(*pOldTextColor); -/*N*/ } -/*N*/ -/*N*/ CreateMarkDescr(pText,nPosition); -/*N*/ } -/*N*/ void ChartAxis::CreateMarkDescr(SdrRectObj *pTextObj,long nPosition) -/*N*/ { -/*N*/ if(pTextObj && mpAxisList ) -/*N*/ { -/*N*/ Rectangle aTextBoundRect(pTextObj->GetBoundRect()); -/*N*/ Rectangle aIntersect1(maRectA); -/*N*/ Rectangle aIntersect2(maRectB); -/*N*/ -/*N*/ if(!mbTextOverlap && ! (aIntersect1.Intersection(aTextBoundRect).IsEmpty() && -/*N*/ aIntersect2.Intersection(aTextBoundRect).IsEmpty()) ) -/*N*/ { -/*?*/ delete pTextObj; -/*?*/ pTextObj=NULL; -/*N*/ } -/*N*/ -/*N*/ if (pTextObj) -/*N*/ { -/*N*/ SdrObject *pObj=CreateMarks(nPosition,mnTickLen,mnTicks); -/*N*/ SdrObjList* pList = mpAxisList; -/*N*/ if(pObj) -/*N*/ { -/*N*/ pObj->SetMarkProtect( TRUE ); -/*N*/ pList->NbcInsertObject(pObj); -/*N*/ } -/*N*/ -/*N*/ pTextObj->SetMarkProtect( TRUE ); -/*N*/ pList->NbcInsertObject(pTextObj); -/*N*/ maRectA = maRectB; -/*N*/ maRectB = aTextBoundRect; -/*N*/ return; //fertig -> Abbruch (die Marks muessen zuerst, dann die Texte) -/*N*/ } -/*N*/ } -/*N*/ //kein Textobjekt oder der Text würde überlappen -/*?*/ SdrObject *pObj=CreateMarks(nPosition,mnTickLen,mnTicks); -/*?*/ if(pObj && mpAxisList) -/*?*/ mpAxisList->NbcInsertObject(pObj); -/*N*/ } -/*N*/ void ChartAxis::InsertMark(long nPos,long nLen,long nWhichTicks) -/*N*/ { -/*N*/ SdrObject *pObj=CreateMarks(nPos,nLen,nWhichTicks); -/*N*/ if(pObj && mpAxisList) -/*N*/ mpAxisList->NbcInsertObject(pObj); -/*N*/ } - - -//Ähnlich zu SubtractDescrSize, jedoch wird der Umbruch sowie Änderungen am Rect bei -//sehr langen spaltenunterschriften berücksichtigt. -/*N*/ void ChartAxis::SubtractDescrSize_X(Rectangle& rRect,const Rectangle& rOldRect) -/*N*/ { -/*N*/ long nDescrWidth=GetDescrWidth(); -/*N*/ mnMaxTextWidth = (long) (nDescrWidth * 0.8); -/*N*/ -/*N*/ //Breite des ersten und letzten Textes der Achse, war mal ChartModel::nWidthOfFirst(Last)XAxisText -/*N*/ //A() = erster, B()=letzter -/*N*/ Pair aFirstAndLastTextWidth; -/*N*/ -/*N*/ Size aPageSize(mpModel->GetPage(0)->GetSize()); -/*N*/ -/*N*/ //unschön, SID_TEXTBREAK sollte ein SCHATTR_... werden! -/*N*/ BOOL bTextBreak=mpModel->GetFormatXAxisTextInMultipleLinesIfNecessary(); -/*N*/ if(!bTextBreak) // Dann wird kein Umbruch erzeugt. -/*N*/ mnMaxTextWidth = -1; -/*N*/ -/*N*/ meTextOrient = ((const SvxChartTextOrientItem&) -/*N*/ mpAxisAttr->Get(SCHATTR_TEXT_ORIENT)).GetValue(); -/*N*/ -/*N*/ BOOL bStepDescr; -/*N*/ -/*N*/ // FG: Falls die X-Achsenbeschriftung aus Zahlen besteht, wird dies beruecksichtigt. -/*N*/ UINT32 nNumberFormatXAxisDescr = GetNumFormat();//0; -/*N*/ -/*N*/ // FG: Jetzt wird der Rand des Charts so eingestellt, dass die Beschriftung der X-Achse -/*N*/ // garantiert nicht aus dme Chart heraus oder ins Diagramm hineinlaeuft. Hier -/*N*/ // muessen alle Faelle der Textausrichtung beruecksichtigt werden. -/*N*/ // Hier wird erstmal die maximale Textgroesse und die Textgroesse der ersten und letzten Spalte -/*N*/ // berechnet (letzteres wird in CalcMaxDescrSize versteckt durchgezogen) -/*N*/ -/*N*/ -/*N*/ if (HasDescription())//#47500# -/*N*/ { -/*N*/ if (IsVertical()) -/*N*/ { -/*N*/ // FG: hier wird erstmal die urspruengliche Textgroesse berechnet, sie wird abhaengig -/*N*/ // vom Ergebnis nachkorrigiert. Die Textbreite ab der umgebrochen wird darf nichts -/*N*/ // mit der Spaltenbreite zu tun haben falls der Text links neben dem Chart steht -/*N*/ // und von links nach rechts laeuft. -/*N*/ maMaxTextSize = mpModel->CalcMaxDescrSize( FALSE, meTextOrient, mbPercent, mnUId, -1, &aFirstAndLastTextWidth ); -/*N*/ // FG: Falls man den Text umbrechen darf, so muss nur noch beachtet werden, in welche -/*N*/ // Richtung der Text verlaufen soll (senkrecht, waagrecht) und ob die Groesse der -/*N*/ // Beschriftung das restliche Chart zu klein machen wird. Die groesste Beschriftung -/*N*/ // darf nicht mehr als 25% der Breite oder Hoehe einnehmen, je nach Ausrichtung des -/*N*/ // Textes. -/*N*/ if (bTextBreak) -/*N*/ { -/*N*/ if ( (meTextOrient == CHTXTORIENT_BOTTOMTOP) -/*N*/ || (meTextOrient == CHTXTORIENT_TOPBOTTOM) -/*N*/ || (meTextOrient == CHTXTORIENT_STACKED)) -/*N*/ { -/*?*/ if ((aPageSize.Height() / 4) < maMaxTextSize.Width()) -/*?*/ { -/*?*/ mnMaxTextWidth = aPageSize.Height() / 4; -/*?*/ maMaxTextSize = mpModel->CalcMaxDescrSize( FALSE, meTextOrient, nNumberFormatXAxisDescr, -/*?*/ mnUId, mnMaxTextWidth, -/*?*/ &aFirstAndLastTextWidth ); -/*?*/ } -/*?*/ // FG: sonst kann die erste Berechnung beibehalten werden. -/*?*/ } -/*N*/ else -/*N*/ { -/*N*/ if ((aPageSize.Width() / 4) < maMaxTextSize.Width()) // waagrechte Ausrichtung -/*N*/ { -/*N*/ // FG. Dann ist also der Platz fuer die Beschriftung groesser als 1/4 des Charts -/*N*/ mnMaxTextWidth = aPageSize.Width() / 4; -/*N*/ } -/*?*/ maMaxTextSize = mpModel->CalcMaxDescrSize( FALSE, meTextOrient, nNumberFormatXAxisDescr, -/*N*/ mnUId, mnMaxTextWidth, -/*N*/ &aFirstAndLastTextWidth ); -/*N*/ } -/*N*/ } -/*N*/ else // FG: Falls der Umbruch nicht erlaubt ist, der Text aber breiter als 1/3 des Charts wird, -/*N*/ { // wird trotzdem umgebrochen. Dann muss dei maximale Hoehe und Breite der groessten -/*N*/ // uns insbesondere der 1. und letzten Beschriftung neu berechnet werden. -/*N*/ // Das laesst sich sicher besser machen als nochmal ueber die gesamte Liste von Texten -/*N*/ // zu iterieren. -/*?*/ if ( ( (meTextOrient == CHTXTORIENT_BOTTOMTOP) -/*?*/ || (meTextOrient == CHTXTORIENT_TOPBOTTOM) -/*?*/ || (meTextOrient == CHTXTORIENT_STACKED) ) -/*?*/ && ((aPageSize.Height() / 3) < maMaxTextSize.Width())) -/*?*/ { -/*?*/ // FG. Dann ist also der Platz fuer die Beschriftung groesser als 1/4 des Charts -/*?*/ mnMaxTextWidth = aPageSize.Height() / 3; -/*?*/ maMaxTextSize = mpModel->CalcMaxDescrSize( FALSE, meTextOrient, nNumberFormatXAxisDescr, -/*?*/ mnUId, mnMaxTextWidth, -/*?*/ &aFirstAndLastTextWidth ); -/*?*/ } -/*?*/ } -/*N*/ } -/*N*/ else // FG: Der Text steht also unter dem Chart. -/*N*/ { -/*N*/ // FG: Fuer den Fall dass die Beschriftung nicht unter jeden Datenpunkt gesetzt -/*N*/ // wird, weil zu viele Daten vorhanden sind, eignet sich eine vertikale -/*N*/ // Textausrichtung besser (im Falle dass die Ausrichtung automatisch -/*N*/ // erfolgen soll. -/*N*/ maMaxTextSize = mpModel->CalcMaxDescrSize( FALSE, meTextOrient, nNumberFormatXAxisDescr, -/*N*/ mnUId, mnMaxTextWidth, -/*N*/ &aFirstAndLastTextWidth ); -/*N*/ -/*N*/ if ( (meTextOrient == CHTXTORIENT_BOTTOMTOP) -/*N*/ || (meTextOrient == CHTXTORIENT_TOPBOTTOM) -/*N*/ || (meTextOrient == CHTXTORIENT_STACKED)) -/*N*/ { -/*?*/ if ((aPageSize.Width() / 2) < maMaxTextSize.Height()) -/*?*/ { -/*?*/ mnMaxTextWidth = aPageSize.Height() / 2; -/*?*/ maMaxTextSize = mpModel->CalcMaxDescrSize( FALSE, meTextOrient, nNumberFormatXAxisDescr, -/*?*/ mnUId, mnMaxTextWidth, -/*?*/ &aFirstAndLastTextWidth ); -/*?*/ } -/*?*/ if ( ( (aPageSize.Width() / 4) < maMaxTextSize.Height()) && -/*?*/ (bTextBreak)) -/*?*/ { -/*?*/ mnMaxTextWidth = aPageSize.Height() / 4; -/*?*/ maMaxTextSize = mpModel->CalcMaxDescrSize( FALSE, meTextOrient, nNumberFormatXAxisDescr, -/*?*/ mnUId, mnMaxTextWidth, -/*?*/ &aFirstAndLastTextWidth); -/*?*/ } -/*?*/ } -/*N*/ } -/*N*/ -/*N*/ -/*N*/ SvxChartTextOrder eDescrOrder; -/*N*/ -/*N*/ // FG: Einfachere Abfrage ob die Ausrichtung vom Programm vorgegeben wird oder vom Benutzer -/*N*/ // #65364# (BM) text order is now independent from text orientation -/* if (meTextOrient != CHTXTORIENT_AUTOMATIC) - { -*/ -/*N*/ eDescrOrder = ((const SvxChartTextOrderItem&) -/*N*/ mpAxisAttr->Get(SCHATTR_TEXT_ORDER)).GetValue(); -/* } - else - { - eDescrOrder = CHTXTORDER_SIDEBYSIDE; - } -*/ - // FG: Hier wird nur abgefragt, ob die Beschriftung der X-Achse (der Datenachse) - // so erfolgen soll, dass Text abwechselnd hoch-tief gesetzt werden, oder nicht. -/*N*/ long nMaxWidth = IsVertical() ? maMaxTextSize.Height() : maMaxTextSize.Width(); -/*N*/ BOOL bHelp = (nMaxWidth > nDescrWidth * 8.1 / 10); -/*N*/ bStepDescr = ( bHelp && -/*N*/ (eDescrOrder == CHTXTORDER_AUTO) && -/*N*/ (meTextOrient == CHTXTORIENT_STANDARD)) || -/*N*/ (eDescrOrder == CHTXTORDER_UPDOWN) || -/*N*/ (eDescrOrder == CHTXTORDER_DOWNUP); - - // FG: Hier wird aufgrund der Beschriftung der obere und der untere Rand nachgeregelt. - // und zwar nur hier. - -//BEGIN_RECT_CHANGES - -/*N*/ if (IsVertical()) -/*N*/ { -/*N*/ if (! bTextBreak) -/*N*/ { -/*N*/ if ( (meTextOrient == CHTXTORIENT_BOTTOMTOP) -/*N*/ || (meTextOrient == CHTXTORIENT_TOPBOTTOM) -/*N*/ || (meTextOrient == CHTXTORIENT_STACKED)) -/*N*/ { -/*N*/ // FG: In diesem Fall muss man nachregeln, der Text wird ohne Umruch formatiert -/*?*/ if ((rRect.Bottom() - rOldRect.Bottom()) < (aFirstAndLastTextWidth.B() / 2)) -/*?*/ { -/*?*/ rRect.Bottom() -= aFirstAndLastTextWidth.B() / 2; -/*?*/ } -/*?*/ if ((rRect.Top() - rOldRect.Top()) < (aFirstAndLastTextWidth.A() / 2)) -/*?*/ { -/*?*/ rRect.Top() -= aFirstAndLastTextWidth.A() / 2; -/*?*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // FG: Der Text steht unter dem Chart, egal ob er von links nach rechts oder von oben nach -/*N*/ // unten verlaeuft aMaxDescrSize muss vorher richtig berechnet worden sein. -/*N*/ if(mbSecondary) -/*?*/ rRect.Top() += maMaxTextSize.Height() + mnTickLen + 100; -/*?*/ else -/*N*/ rRect.Bottom() -= maMaxTextSize.Height() + mnTickLen + 100; -/*N*/ } -/*N*/ -/*N*/ if (bStepDescr) // FG: Dann erfolgt die Beschriftung hoch- und tief abwechselnd (wie in der Dialogbox) -/*N*/ { -/*N*/ // dann hat man mehr Platz pro Zeile (eigentlich 2 mal soviel) aber der Platz zwischen den -/*N*/ // Beschriftungen steht auch noch zur Verfuegung (jeweils 0,2 * nDescrWidth) -// mnMaxTextWidth = 2 * mnMaxTextWidth + 0,4 * nDescrWidth; -/*?*/ //cmc: I thought I'd leave ^^^ in for posterity, behold the , vs . :-) -/*?*/ mnMaxTextWidth = 2 * mnMaxTextWidth + 0; -/*?*/ // Man braucht auch 2 mal soviel Platz in unten am Chart. -/*?*/ if(mbSecondary) -/*?*/ rRect.Top() += maMaxTextSize.Height() + mnTickLen; -/*?*/ else -/*?*/ rRect.Bottom() -= maMaxTextSize.Height() + mnTickLen; -/*N*/ } -/*N*/ } -/*N*/ // FG (14.2.97): Hier wird der linke Rand nachgeregelt, und zwar je nach Diagrammtyp unterschiedlich. -/*N*/ if (mpModel->IsDescriptionCenteredUnderDataPoint()) -/*N*/ { -/*N*/ // Nun jetzt weiss ich dass die Beschriftung zentriert unter einem Datenpunkt steht. -/*N*/ // jetzt muss der linke Rand nachgeregelt werden: Genau die Haelfte des -/*N*/ // Spaltentextes mit Nummer 0 muss nach links noch Platz sein. -/*N*/ if (IsVertical()) -/*N*/ { -/*N*/ if ((rRect.Left() - rOldRect.Left()) < maMaxTextSize.Width()) -/*N*/ { -/*N*/ rRect.Left() += maMaxTextSize.Width(); -/*N*/ } -/*N*/ // FG: Ein Nachregeln des rechten Randes ist nicht noetig, da die Beschriftung -/*N*/ // nie rechts neben dem Chart stehen kann. -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if(! ( (meTextOrient == CHTXTORIENT_BOTTOMTOP) -/*N*/ || (meTextOrient == CHTXTORIENT_TOPBOTTOM) -/*N*/ || (meTextOrient == CHTXTORIENT_STACKED)) ) -/*N*/ { -/*N*/ if ((rRect.Left() - rOldRect.Left()) < (aFirstAndLastTextWidth.A() / 2)) -/*N*/ { -/*N*/ rRect.Left() += aFirstAndLastTextWidth.A() / 2; -/*N*/ } -/*N*/ if (mpModel->InitialSize().Width() - rRect.Right() < (aFirstAndLastTextWidth.B() / 2)) -/*N*/ { -/*N*/ rRect.Right() -= aFirstAndLastTextWidth.B() / 2; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // FG: Im anderen Fall wird gerade so umgebrochen, dass kein zusaetzlicher Rand gelassen werden muss. -/*N*/ // Es sei denn im Dialog wurde eingestellt, dass man keinen Umbruch wollte. -/*N*/ if (!bTextBreak) -/*N*/ { -/*?*/ if ((rRect.Left() - rOldRect.Left()) < (aFirstAndLastTextWidth.A() / 2)) -/*?*/ { -/*?*/ rRect.Left() += aFirstAndLastTextWidth.A() / 2; -/*?*/ } -/*?*/ if (mpModel->InitialSize().Width() - rRect.Right() < (aFirstAndLastTextWidth.B() / 2)) -/*?*/ { -/*?*/ rRect.Right() -= aFirstAndLastTextWidth.B() / 2; -/*?*/ } -/*N*/ } -/*N*/ } -//END RECT_CHANGES ******************************************************************** -/*N*/ } - - - - -/*N*/ void ChartAxis::SubtractDescrSize(Rectangle& rRect) -/*N*/ { -/*N*/ if(!mbShowDescr) -/*N*/ return; - -/*N*/ long nLong = (mnTicks&CHAXIS_MARK_OUTER) ? 150 : (mnHelpTicks&CHAXIS_MARK_OUTER) ? 100 : 0; - -/*N*/ if(mbSecondary) -/*N*/ { -/*?*/ if(!IsVertical()) -/*?*/ { -/*?*/ rRect.Top() += mbStepValue -/*?*/ ? maMaxTextSize.Height() * 2 -/*?*/ : maMaxTextSize.Height(); -/*?*/ rRect.Top() += nLong; -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ rRect.Right() -= mbStepValue -/*?*/ ? maMaxTextSize.Width() * 2 -/*?*/ : maMaxTextSize.Width(); -/*?*/ rRect.Right() -= nLong; -/*?*/ } -/*?*/ } -/*N*/ else -/*N*/ { -/*N*/ if(!IsVertical()) -/*N*/ { -/*N*/ rRect.Bottom() -= mbStepValue -/*N*/ ? maMaxTextSize.Height() * 2 -/*N*/ : maMaxTextSize.Height(); -/*N*/ rRect.Bottom() -= nLong; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ rRect.Left() += mbStepValue -/*N*/ ? maMaxTextSize.Width() * 2 -/*N*/ : maMaxTextSize.Width(); -/*N*/ rRect.Left() += nLong; -/*N*/ } -/*N*/ } -/*N*/ } -//Bisher nur Y-Achse: -/*N*/ void ChartAxis::InitDescr() -/*N*/ { -/*N*/ InitDescr(meTextOrient,mnMaxTextWidth); -/*N*/ } -/*N*/ void ChartAxis::InitDescr(SvxChartTextOrient &rValueOrient,long nMaxTextWidth) -/*N*/ { -/*N*/ mnMaxTextWidth=nMaxTextWidth;//-1; -/*N*/ -/*N*/ BOOL bAutoValue = (rValueOrient == CHTXTORIENT_AUTOMATIC); -/*N*/ -/*N*/ if(!mbShowDescr) -/*N*/ return; -/*N*/ -/*N*/ if (bAutoValue) -/*N*/ rValueOrient = CHTXTORIENT_STANDARD; - - // #65364# (BM) text order is now independent from text orientation -/*N*/ SvxChartTextOrder eValueOrder = /*( bAutoValue - ||( mbFlippedXY && (rValueOrient != CHTXTORIENT_STANDARD)) - ||(!mbFlippedXY && (rValueOrient == CHTXTORIENT_STANDARD))) - ? CHTXTORDER_SIDEBYSIDE - :*/ -/*N*/ ((const SvxChartTextOrderItem&)mpAxisAttr->Get(SCHATTR_TEXT_ORDER)).GetValue(); -/*N*/ -/*N*/ mbStepValue = (eValueOrder != CHTXTORDER_SIDEBYSIDE); -/*N*/ mbValueDown = (eValueOrder == CHTXTORDER_DOWNUP); -/*N*/ -/*N*/ meTextOrient = rValueOrient; -/*N*/ -/*N*/ CreateTextAttr(); -/*N*/ } -/*N*/ void ChartAxis::InitDescr_X() -/*N*/ { -/*N*/ if(!mbShowDescr) -/*N*/ return; -/*N*/ -/*N*/ SvxChartTextOrder eValueOrder; - - // FG: Einfachere Abfrage ob die Ausrichtung vom Programm vorgegeben wird oder vom Benutzer - // #65364# (BM) text order is now independent from text orientation -/* if (meTextOrient != CHTXTORIENT_AUTOMATIC) - { -*/ -/*N*/ eValueOrder = ((const SvxChartTextOrderItem&) -/*N*/ mpAxisAttr->Get(SCHATTR_TEXT_ORDER)).GetValue(); -/* } - else - { - eValueOrder = CHTXTORDER_SIDEBYSIDE; - } -*/ - // FG: Hier wird nur abgefragt, ob die Beschriftung der X-Achse (der Datenachse) - // so erfolgen soll, dass Text abwechselnd hoch-tief gesetzt werden, oder nicht. -/*N*/ long nMaxWidth = IsVertical() ? maMaxTextSize.Height() : maMaxTextSize.Width(); -/*N*/ BOOL bHelp= (nMaxWidth > GetDescrWidth() * 8.1 / 10); -/*N*/ mbStepValue = (bHelp && -/*N*/ (eValueOrder == CHTXTORDER_AUTO) && -/*N*/ (meTextOrient == CHTXTORIENT_STANDARD)) || -/*N*/ (eValueOrder == CHTXTORDER_UPDOWN) || -/*N*/ (eValueOrder == CHTXTORDER_DOWNUP); -/*N*/ -/*N*/ -/*N*/ mbValueDown = (eValueOrder == CHTXTORDER_DOWNUP); -// meTextOrient = rValueOrient; - -/*N*/ CreateTextAttr(); -/*N*/ } - - - - -/*N*/ void ChartAxis::CreateTextAttr() -/*N*/ { -/*N*/ if(!mpTextAttr) -/*N*/ mpTextAttr=new SfxItemSet((const SfxItemSet &)*mpAxisAttr); -/*N*/ else -/*N*/ mpTextAttr->Put(*mpAxisAttr); //Update -/*N*/ -/*N*/ mpTextAttr->Put(SvxChartTextOrientItem(meTextOrient)); -/*N*/ mpTextAttr->Put(XLineStyleItem(XLINE_NONE)); -/*N*/ mpTextAttr->Put(XLineWidthItem(0)); -/*N*/ } - -/*N*/ void ChartAxis::CreateAxis(SdrObjList& rList,long nChObjId) -/*N*/ { -/*N*/ if(IsVisible() || HasDescription()) -/*N*/ { -/*N*/ mpAxisObj = new SchAxisObj( mpModel ); -/*N*/ SetObjectAttr( mpAxisObj, USHORT(nChObjId), TRUE, TRUE, 0 ); -/*N*/ SetAxisList( mpAxisObj->GetSubList() ); -/*N*/ -/*N*/ rList.NbcInsertObject( mpAxisObj, CONTAINER_APPEND ); -/*N*/ -/*N*/ if( IsVisible()) -/*N*/ CreateAxis(); -/*N*/ } -/*N*/ } - -/*N*/ void ChartAxis::CreateAxis(const long nPos,BOOL bBorderAxis,BOOL bInnerAxis) -/*N*/ { -/*N*/ //Position der X-Achse.... aber nicht der Ticks -/*N*/ //(nicht ganz verständlich bei XY-Diagrammen) -/*N*/ //was ist mit bShow?Descr ? -/*N*/ mnInnerPos=nPos; -/*N*/ -/*N*/ long nPos1 = 0; -/*N*/ if(bBorderAxis) -/*N*/ nPos1=CreateAxis(); -/*N*/ else -/*N*/ { -/*N*/ mbInnerPos=TRUE; //ungenutzt.... evtl. wegen SetArea(){...SetPosition()...} -/*N*/ SetPosition(nPos); -/*N*/ } -/*N*/ mnInnerPos=nPos; -/*N*/ -/*N*/ if(bInnerAxis &&(!bBorderAxis || nPos1!=nPos)) //nur eine Achse oder 2 Achsen an versch. Positionen -/*N*/ { -/*N*/ -/*N*/ XPolygon aLine(2); -/*N*/ if (IsVertical()) -/*N*/ { -/*N*/ aLine[0].X() = aLine[1].X() = nPos; -/*N*/ aLine[0].Y() = maRefArea.Bottom(); -/*N*/ aLine[1].Y() = maRefArea.Top(); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ aLine[0].Y() = aLine[1].Y() = nPos; -/*N*/ aLine[0].X() = maRefArea.Left(); -/*N*/ aLine[1].X() = maRefArea.Right(); -/*N*/ } -/*N*/ if (mpAxisList) -/*N*/ mpAxisList->NbcInsertObject(SetObjectAttr (new SdrPathObj(OBJ_PLIN, aLine), -/*N*/ CHOBJID_LINE, TRUE, TRUE,mpAxisAttr)); -/*N*/ } -/* alter Original-Source, siehe ###hier### - if (bSwitchColRow) - { - VERTICAL_LINE; - if ((nPos != rRect.Left()) && (bShowYDescr )) - { - aLine[0].X() = aLine[1].X() = rRect.Left (); - - rObjList.InsertObject(SetObjectAttr(new SdrPathObj(OBJ_PLIN, aLine), - CHOBJID_DIAGRAM_X_AXIS,TRUE, TRUE, pXGridMainAttr)); - } - aLine[0].X() = aLine[1].X() = nPos; - } - else //!bSwitchColRow - { - HORIZONTAL_LINE; - if ((nPos != rRect.Bottom()) && (bShowXDescr)) - { - if(pChartYAxis->GetMin() < 0.0) - { - //###hier### ist jetzt anders! - - aLine[0].Y()=aLine[1].Y()= (pChartYAxis->GetMax()>0.0) - ? rRect.Bottom () - : rRect.Top (); - - } - else - aLine[0].Y()=aLine[1].Y()= rRect.Bottom (); - - HORIZONTAL_LINE; - rObjList.InsertObject(SetObjectAttr (new SdrPathObj(OBJ_PLIN, aLine), - CHOBJID_DIAGRAM_X_AXIS,TRUE, TRUE, pXGridMainAttr)); - } - aLine[0].Y() = aLine[1].Y() = nPos; - } -*/ -/*N*/ } - -/*N*/ long ChartAxis::CreateAxis() -/*N*/ { -/*N*/ XPolygon aLine(2); -/*N*/ long nPos; -/*N*/ -/*N*/ if (IsVertical()) -/*N*/ { -/*N*/ if(mbSecondary) -/*N*/ { -/*?*/ aLine[0].X() = aLine[1].X() = maRefArea.Right(); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ aLine[0].X() = aLine[1].X() = maRefArea.Left(); -/*N*/ } -/*N*/ aLine[0].Y() = maRefArea.Bottom(); -/*N*/ aLine[1].Y() = maRefArea.Top(); -/*N*/ nPos=aLine[0].X(); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if(mbSecondary) -/*N*/ { -/*?*/ aLine[0].Y() = aLine[1].Y() = maRefArea.Top(); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ aLine[0].Y() = aLine[1].Y() = maRefArea.Bottom(); -/*N*/ } -/*N*/ aLine[0].X() = maRefArea.Left(); -/*N*/ aLine[1].X() = maRefArea.Right(); -/*N*/ nPos=aLine[0].Y(); -/*N*/ } -/*N*/ -/*N*/ if (mpAxisList && IsVisible()) -/*N*/ mpAxisList->NbcInsertObject(SetObjectAttr (new SdrPathObj(OBJ_PLIN, aLine), -/*N*/ CHOBJID_LINE, TRUE, TRUE,mpAxisAttr)); -/*N*/ -/*N*/ return nPos; -/*N*/ -/*N*/ } -/*N*/ void ChartAxis::SetMainGrid(SdrObjList* pList,SfxItemSet*pAttr) -/*N*/ { -/*N*/ mpMainGridList=pList; -/*N*/ mpMainGridAttr=pAttr; -/*N*/ switch(mnId) -/*N*/ { -/*N*/ case CHART_AXIS_X: -/*N*/ mnIdMainGrid=CHOBJID_DIAGRAM_Y_GRID_MAIN; -/*N*/ break; -/*N*/ case CHART_AXIS_Y: -/*N*/ mnIdMainGrid=CHOBJID_DIAGRAM_X_GRID_MAIN; -/*N*/ break; -/*N*/ case CHART_AXIS_Z: -/*?*/ mnIdMainGrid=CHOBJID_DIAGRAM_Z_GRID_MAIN; -/*?*/ break; -/*N*/ } -/*N*/ } -/*N*/ void ChartAxis::SetHelpGrid(SdrObjList* pList,SfxItemSet*pAttr) -/*N*/ { -/*N*/ mpHelpGridList=pList; -/*N*/ mpHelpGridAttr=pAttr; -/*N*/ switch(mnId) -/*N*/ { -/*N*/ case CHART_AXIS_X: -/*N*/ mnIdHelpGrid=CHOBJID_DIAGRAM_Y_GRID_HELP; -/*N*/ break; -/*N*/ case CHART_AXIS_Y: -/*N*/ mnIdHelpGrid=CHOBJID_DIAGRAM_X_GRID_HELP; -/*N*/ break; -/*N*/ case CHART_AXIS_Z: -/*?*/ mnIdHelpGrid=CHOBJID_DIAGRAM_Z_GRID_HELP; -/*?*/ break; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ void ChartAxis::GridLine(XPolygon& aLine,long nPos) -/*N*/ { -/*N*/ if(IsVertical()) -/*N*/ { -/*N*/ aLine[0].Y() = aLine[1].Y() = nPos; -/*N*/ aLine[0].X() = maRefArea.Left(); -/*N*/ aLine[1].X() = maRefArea.Right(); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ aLine[0].X() = aLine[1].X() = nPos; -/*N*/ aLine[0].Y() = maRefArea.Bottom(); -/*N*/ aLine[1].Y() = maRefArea.Top(); -/*N*/ } -/*N*/ } - -/*N*/ void ChartAxis::ShowDescr(BOOL b) -/*N*/ { -/*N*/ mbShowDescr=b; -/*N*/ mpAxisAttr->Put(SfxBoolItem(SCHATTR_AXIS_SHOWDESCR,b)); -/*N*/ } - -/*N*/ void ChartAxis::ShowAxis(BOOL b) -/*N*/ { -/*N*/ mpAxisAttr->Put(SfxBoolItem(SCHATTR_AXIS_SHOWAXIS,b)); -/*N*/ } - -/*N*/ void ChartAxis::DrawGrids() -/*N*/ { -/*N*/ XPolygon aLine(2); -/*N*/ long nPos; -/*N*/ -/*N*/ if(!mpMainGridList && !mpHelpGridList && !mpAxisList) -/*N*/ return ; //nothing to do -/*N*/ -/*N*/ -/*N*/ // if the x-axis has no numbers as description, the meaning of main and help ticks might -/*N*/ // be interpreted the other way round -/*N*/ long nTicksBack =mnTicks; -/*N*/ long nHelpTicksBack =mnHelpTicks; -/*N*/ long nTickLenBack =mnTickLen; -/*N*/ long nHelpTickLenBack =mnHelpTickLen; -/*N*/ -/*N*/ // ...Back is for storing original values -/*N*/ double fMinBack = mfMin; -/*N*/ double fMaxBack = mfMax; -/*N*/ double fStepBack = mfStep; -/*N*/ double fStepHelpBack= mfStepHelp; -/*N*/ BOOL bLogarithmBack = mbLogarithm; -/*N*/ -/*N*/ if(mbColText) //... da hier modifiziert werden kann, aber die Werte nicht -/*N*/ { //in den Attrset sollen (also nicht persistent). In wie weit das nötig ist, ist ne andere Frage... -/*N*/ mfMin=0; -/*N*/ mfStep=1; -/*N*/ mbLogarithm = FALSE; -/*N*/ mfMax=mpModel->GetColCount(); -/*N*/ if(mbCenterText && mfMax>1.0) -/*N*/ { -/*?*/ mfMax-=1; -/*?*/ -/*?*/ //Die Markierungen sind bei Linien und Area-Charts verschoben -/*?*/ //=> dies entspricht gewissermassem dem Swap von Help und MainTicks -/*?*/ mnTicks=0;//nHelpTicksBack; //HelpTicks bzw. innen/aussen noch nicht per GUI zugänglich, daher fixe Werte -/*?*/ mnHelpTicks=CHAXIS_MARK_OUTER;//nTicksBack; -/*?*/ mnHelpTickLen=nTickLenBack; -/*?*/ mnTickLen=nHelpTickLenBack; -/*?*/ -/*?*/ // Now we have to copy with the case of to many tick marks. -/*?*/ // The problem lies in the fact, that creating to many tick -/*?*/ // marks results in an overrun of pool item reference counters. -/*?*/ // Creating them without these items leaves them unchangeable. -/*?*/ // The best solution is to generalize the data set, i.e. -/*?*/ // to draw only a part of the tick marks (and draw only a part -/*?*/ // of the data). The number of tick marks to draw should ideally -/*?*/ // depend on the real window size measured in pixel. This is (at -/*?*/ // the moment) not possible because we don't have access to the -/*?*/ // view and therefore no access to it's output device. -/*?*/ // Leaving a clean solution for the new chart for now we -/*?*/ // set a fixed number as the maximal count of tick marks. -/*?*/ // This solution has one advantage: output to the screen and to -/*?*/ // the printer has the same number of tick marks. -/*?*/ const double maximum_number_of_tick_marks = 1000.0; -/*?*/ mfStep =(mfMax - mfMin) / ::std::min< double > (maximum_number_of_tick_marks, (mfMax - mfMin)); -/*?*/ } -/*N*/ else -/*N*/ { -/*N*/ mnHelpTicks=0; //nicht per Gui möglich, daher fixe Werte -/*N*/ mnTicks=CHAXIS_MARK_OUTER; -/*N*/ } -/*N*/ -/*N*/ mfStepHelp = mfStep / 2; -/*N*/ } -/*N*/ -/*N*/ // #69810# prevent infinite loop if step wouldn't change the value of fAct -/*N*/ BOOL bStepIsOK = mbLogarithm? (fabs(mfStep) > 1.0): (mfStep != 0.0); -/*N*/ -/*N*/ // DBG_ASSERT( bStepIsOK, "Axis increment is ineffective and would cause loop" ); -/*N*/ -/*N*/ if( mfMax!=mfMin && ( bStepIsOK ) ) -/*N*/ { -/*N*/ double fAct = mfMin; -/*N*/ double fActHelp = mfMin; -/*N*/ -/*N*/ // in the worst case the threshhold is 1/1000th of the height of the -/*N*/ // diagram this is just done because of minor inaccuracies that may -/*N*/ // occur, because in the following loop the current value is achieved by -/*N*/ // repeatedly adding the main step value where small errors might -/*N*/ // accumulate -/*N*/ double fThreshold = ::std::min( mfMax, ::std::min( mfStep, mfStepHelp )) / 1000.0; -/*N*/ -/*N*/ if( ::rtl::math::isInf( mfMax ) || ::rtl::math::isInf( mfMin )) -/*N*/ { -/*N*/ OSL_FAIL( "maximum or minumum is infinity" ); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // #102339# iterate one major tick further and inhibit creating -/*N*/ // ticks in case they are above the maximum (+threshold) -/*N*/ double fUpperLimit = mfMax + fThreshold; -/*N*/ double fIterationEnd = fUpperLimit + mfStep; -/*N*/ while( fAct <= fIterationEnd ) -/*N*/ { -/*N*/ long nMainPos = GetPos(fAct); -/*N*/ -/*N*/ if( fAct <= fUpperLimit ) -/*N*/ { -/*N*/ GridLine(aLine,nMainPos); -/*N*/ -/*N*/ if (mpMainGridList) -/*N*/ mpMainGridList->NbcInsertObject(SetObjectAttr(new SdrPathObj(OBJ_PLIN,aLine), -/*N*/ USHORT(mnIdMainGrid),TRUE,TRUE,mpMainGridAttr)); -/*N*/ } -/*N*/ -/*N*/ if(mpHelpGridList || (mpAxisList && mnHelpTicks) ) -/*N*/ { -/*?*/ if(mbLogarithm) -/*?*/ { -/*?*/ fActHelp = mfStep / mfStepHelp * fAct; -/*?*/ -/*?*/ double fNext = fAct; -/*?*/ IncValue(fNext,mfStep,mbLogarithm); -/*?*/ -/*?*/ while (fActHelp < fNext) -/*?*/ { -/*?*/ if(CalcFact(fActHelp) > 1.0) -/*?*/ break; -/*?*/ -/*?*/ if( fActHelp <= fUpperLimit ) -/*?*/ { -/*?*/ GridLine(aLine,nPos=GetPos(fActHelp)); -/*?*/ -/*?*/ if(mpHelpGridList) -/*?*/ mpHelpGridList->NbcInsertObject(SetObjectAttr(new SdrPathObj(OBJ_PLIN,aLine), -/*?*/ USHORT(mnIdHelpGrid),TRUE,TRUE,mpHelpGridAttr)); -/*?*/ -/*?*/ InsertMark(nPos,mnHelpTickLen,mnHelpTicks); -/*?*/ } -/*?*/ -/*?*/ fActHelp+=mfStep/mfStepHelp*fAct; -/*?*/ } -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ while(fActHelp <= fAct) -/*?*/ { -/*?*/ if(CalcFact(fActHelp) > 1.0) -/*?*/ break; -/*?*/ -/*?*/ if( fActHelp <= fUpperLimit ) -/*?*/ { -/*?*/ GridLine(aLine,nPos=GetPos(fActHelp)); -/*?*/ -/*?*/ if(mpHelpGridList) -/*?*/ mpHelpGridList->NbcInsertObject(SetObjectAttr(new SdrPathObj(OBJ_PLIN, aLine), -/*?*/ USHORT(mnIdHelpGrid),TRUE,TRUE,mpHelpGridAttr)); -/*?*/ -/*?*/ InsertMark(nPos,mnHelpTickLen,mnHelpTicks); -/*?*/ } -/*?*/ -/*?*/ fActHelp+=mfStepHelp; -/*?*/ } -/*?*/ // If the main grid is drawn then skip the coinciding help grid lines. -/*?*/ if (((fActHelp == fAct) && mpMainGridList) || mbColText) -/*?*/ fActHelp+=mfStepHelp; -/*?*/ } -/*?*/ } -/*N*/ -/*N*/ if( mpAxisList && fAct < fUpperLimit ) -/*N*/ { -/*N*/ if(mbShowDescr) -/*N*/ CreateMarkDescr(fAct,nMainPos); -/*N*/ else -/*?*/ InsertMark(nMainPos,mnTickLen,mnTicks); -/*N*/ } -/*N*/ IncValue( fAct, mfStep, mbLogarithm ); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ // restore original values. Might be obsolete -/*N*/ mfMin = fMinBack; -/*N*/ mfMax = fMaxBack; -/*N*/ mfStep = fStepBack; -/*N*/ mfStepHelp = fStepHelpBack; -/*N*/ -/*N*/ mnTicks =nTicksBack; -/*N*/ mnHelpTicks =nHelpTicksBack; -/*N*/ mnTickLen =nTickLenBack; -/*N*/ mnHelpTickLen =nHelpTickLenBack; -/*N*/ mbLogarithm =bLogarithmBack; -/*N*/ } - -/*?*/ inline double ChartAxis::GetData(long nCol,long nRow) -/*?*/ { -/*?*/ double fData=mpModel->GetData(nCol,nRow); -/*?*/ if(mbPercent) -/*?*/ fData=Data2Percent(fData,nCol,nRow); -/*?*/ return fData; -/*?*/ }; -// Falls es sich um eine gespiegelte Achse handelt, ist es nicht möglich, -// einmal Logarithmus zu setzen, das andere mal nicht. -// Die anderen Werte müssen evtl. (bei automatik) angepasst werden. -// allerdings darf hier geändert werden, um z.B. links 0-10 Volt -// und rechts 0-1000 mV an der Achse zu setzen. Das die Werte dann trotzdem -// identisch sind, liegt in diesem Fall dann in der Verantwortung des Users. -/*N*/ BOOL ChartAxis::AttachIfNoOwnData(const ChartAxis* pAxis) -/*N*/ { -/*N*/ if(!mbAlternativIdUsed) //Hat eigene Daten! -/*N*/ return FALSE; - - //es macht keinen Sinn, unsichtbare Achsen zu kopieren: -/*?*/ if(!pAxis->IsVisible() && !pAxis->HasDescription()) -/*?*/ return FALSE; -/*?*/ -/*?*/ ReadAutoAttr(); -/*?*/ -/*?*/ mbLogarithm = pAxis->mbLogarithm; -/*?*/ mpAxisAttr->Put(SfxBoolItem(SCHATTR_AXIS_LOGARITHM,mbLogarithm)); -/*?*/ -/*?*/ if(mbAutoStep) -/*?*/ mfStep=pAxis->mfStep; -/*?*/ if(mbAutoStepHelp) -/*?*/ mfStepHelp=pAxis->mfStepHelp; -/*?*/ if(mbAutoMin) -/*?*/ mfMin=pAxis->mfMin; -/*?*/ if(mbAutoMax) -/*?*/ mfMax=pAxis->mfMax; -/*?*/ if(mbAutoOrigin) -/*?*/ mfOrigin=pAxis->mfOrigin; -/*?*/ -/*?*/ FillItemSet(); -/*?*/ -/*?*/ return TRUE; -/*?*/ -/*N*/ } -/*N*/ double ChartAxis::NumStepsMain() -/*N*/ { -/*N*/ if( mbLogarithm ) -/*N*/ { -/*?*/ DBG_ASSERT( mfStep > 1.0, "ChartAxis: argument of log must be greater than 1" ); -/*?*/ return log( mfMax - mfMin ) / log( mfStep ); -/*N*/ } -/*N*/ -/*N*/ return (mfMax - mfMin) / mfStep; -/*N*/ }; - -/*N*/ long ChartAxis::GetDescrWidth() -/*N*/ { -/*N*/ double fAllTextLen = IsVertical() ? (double)maRefArea.GetHeight() -/*N*/ : (double)maRefArea.GetWidth(); -/*N*/ long nDescrWidth=0; -/*N*/ -/*N*/ if(!mbColText) //z.B. bei XY-Charts gelangt man hier hin! -/*N*/ { -/*N*/ if(mfStep!=0.0) -/*N*/ { -/*N*/ double fCnt = NumStepsMain(); -/*N*/ if (mbCenterText) -/*N*/ fCnt -= 1.0; -/*N*/ -/*N*/ nDescrWidth = (long) (fAllTextLen / fCnt); -/*N*/ } -/*N*/ } -/*N*/ else //Area, Bar etc. -/*N*/ { -/*N*/ long nColCnt=mpModel->GetColCount(); -/*N*/ -/*N*/ if (mbCenterText && nColCnt > 1) -/*N*/ nColCnt--; -/*N*/ -/*N*/ nDescrWidth = (long) (fAllTextLen / (double)nColCnt); -/*N*/ } -/*N*/ return nDescrWidth; -/*N*/ } - -/*N*/ UINT32 ChartAxis::GetNumFormat( BOOL bPercent ) -/*N*/ { -/*N*/ return ((const SfxUInt32Item&)mpAxisAttr->Get(bPercent -/*N*/ ? SCHATTR_AXIS_NUMFMTPERCENT : SCHATTR_AXIS_NUMFMT)).GetValue(); -/*N*/ } - - - -/*N*/ BOOL ChartAxis::TranslateMergedNumFormat( SvNumberFormatterIndexTable* /*pTransTable*/ ) -/*N*/ { -/*N*/ ULONG nFmt, nMrgFmt; -/*N*/ BOOL bRet =FALSE; -/*N*/ -/*N*/ nFmt = GetNumFormat( mbPercent ); -/*N*/ nMrgFmt = mpNumFormatter->GetMergeFmtIndex( nFmt ); -/*N*/ if( nFmt != nMrgFmt ) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*N*/ -/*N*/ nFmt = GetNumFormat( ! mbPercent ); -/*N*/ nMrgFmt = mpNumFormatter->GetMergeFmtIndex( nFmt ); -/*N*/ if( nFmt != nMrgFmt ) -/*?*/ {DBG_BF_ASSERT(0, "STRIP");} -/*N*/ -/*N*/ return bRet; -/*N*/ } - -/*N*/ void ChartAxis::SetAxisList( SdrObjList *pList ) -/*N*/ { -/*N*/ mpAxisList = pList; -/*N*/ maRectA = maRectB = Rectangle(); -/*N*/ } - -/*N*/ long ChartAxis::GetUniqueIdByObjectId( long nObjectId ) -/*N*/ { -/*N*/ long nResult = CHAXIS_AXIS_UNKNOWN; -/*N*/ -/*N*/ switch( nObjectId ) -/*N*/ { -/*N*/ case CHOBJID_DIAGRAM_X_AXIS: -/*N*/ nResult = CHAXIS_AXIS_X; -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_Y_AXIS: -/*N*/ nResult = CHAXIS_AXIS_Y; -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_Z_AXIS: -/*N*/ nResult = CHAXIS_AXIS_Z; -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_A_AXIS: -/*N*/ nResult = CHAXIS_AXIS_A; -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_B_AXIS: -/*N*/ nResult = CHAXIS_AXIS_B; -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ return nResult; -/*N*/ } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chdescr.cxx b/binfilter/bf_sch/source/core/sch_chdescr.cxx deleted file mode 100644 index 1c4310e31..000000000 --- a/binfilter/bf_sch/source/core/sch_chdescr.cxx +++ /dev/null @@ -1,139 +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. - * - ************************************************************************/ -#include <bf_svtools/eitem.hxx> - -#include "chdescr.hxx" - -#include "float.h" -#include "schgroup.hxx" -#include "chtscene.hxx" -namespace binfilter { - -/*N*/ ChartDataDescription::ChartDataDescription(long nCols, long nRows, SdrObjList *pList, -/*N*/ ChartModel* pModel, BOOL bEnable) : -/*N*/ mnRows(nRows), -/*N*/ mnCols(nCols), -/*N*/ mpModel(pModel), -/*N*/ mpDescrLists(NULL), -/*N*/ mpList(pList), -/*N*/ mpDescrArray(NULL), -/*N*/ mbEnable(bEnable), -/*N*/ mpDescrGroups(NULL) -/*N*/ { -/*N*/ } - -/*N*/ void ChartDataDescription::Build( BOOL bRowDescr ) -/*N*/ { -/*N*/ Dirty2D( bRowDescr ); -/*N*/ if(mpList && mpDescrGroups) -/*N*/ { -/*?*/ for( long nRow=0; nRow<mnRows; nRow++ ) -/*?*/ { -/*?*/ if(mpDescrGroups[nRow]) -/*?*/ mpList->NbcInsertObject( mpDescrGroups[nRow] ); -/*?*/ } -/*?*/ } -/*N*/ } - -/*N*/ void ChartDataDescription::Build3D( ChartScene *pScene, Matrix4D* pMatrix ) -/*N*/ { -/*N*/ if(pScene && mpDescrGroups) -/*N*/ { -/*?*/ for( long nRow=0; nRow<mnRows; nRow++ ) -/*?*/ { -/*?*/ for( long nCol=0; nCol<mnCols; nCol++ ) -/*?*/ { -/*?*/ long nIndex = nCol + nRow * mnCols; -/*?*/ if( mpDescrArray[nIndex].fValue != DBL_MIN ) -/*?*/ { -/*?*/ mpDescrArray[nIndex].pLabelObj->SetMarkProtect(TRUE); -/*?*/ E3dLabelObj* pLabel=new E3dLabelObj(mpDescrArray[nIndex].aTextPos3D, -/*?*/ mpDescrArray[nIndex].pLabelObj); -/*?*/ -/*?*/ CHART_TRACE3( "Descr::Build3D TextPos = (%ld, %ld, %ld)", -/*?*/ mpDescrArray[ nIndex ].aTextPos3D.X(), -/*?*/ mpDescrArray[ nIndex ].aTextPos3D.Y(), -/*?*/ mpDescrArray[ nIndex ].aTextPos3D.Z() ); -/*?*/ -/*?*/ pLabel->SetMarkProtect(TRUE); -/*?*/ pScene->Insert3DObj(pLabel); -/*?*/ if(pMatrix) -/*?*/ pLabel->NbcSetTransform(*pMatrix); -/*?*/ } -/*?*/ } -/*?*/ } -/*?*/ } -/*N*/ } - -/*N*/ ChartDataDescription::~ChartDataDescription() -/*N*/ { -/*N*/ if(mpDescrLists) -/*?*/ delete[] mpDescrLists; -/*N*/ if(mpDescrGroups) -/*?*/ delete[] mpDescrGroups; -/*N*/ if(mpDescrArray) -/*?*/ delete[] mpDescrArray; -/*N*/ } - - -/*N*/ DataDescription* ChartDataDescription::Insert( long /*nCol*/, long /*nRow*/, const SfxItemSet& rAttr, Point /*aPos*/, -/*N*/ BOOL /*bPercent*/, ChartAdjust /*eAdjust*/, ChartAxis* /*pAxis*/ ) -/*N*/ { -/*N*/ SvxChartDataDescr eDescr = ((const SvxChartDataDescrItem&)rAttr.Get(SCHATTR_DATADESCR_DESCR)).GetValue(); -/*N*/ -/*N*/ if(mbEnable && eDescr != CHDESCR_NONE) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*N*/ return NULL; -/*N*/ } - -/*N*/ void ChartDataDescription::Dirty2D( BOOL /*bRowDescr*/ ) -/*N*/ { -/*N*/ -/*N*/ if(mpDescrLists) -/*N*/ { -/*?*/ for( long nRow = 0; nRow < mnRows; nRow ++ ) -/*?*/ { -/*?*/ if( mpDescrLists[nRow] ) -/*?*/ { -/*?*/ for( long nCol = 0; nCol < mnCols; nCol++ ) -/*?*/ { -/*?*/ long nIndex = nCol + nRow * mnCols; -/*?*/ if (mpDescrArray[nIndex].fValue != DBL_MIN) -/*?*/ if (mpDescrArray[nIndex].pLabelObj) -/*?*/ mpDescrLists[nRow]->NbcInsertObject(mpDescrArray[nIndex].pLabelObj); -/*?*/ } -/*?*/ } -/*?*/ } -/*N*/ } -/*N*/ } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chtm3d2.cxx b/binfilter/bf_sch/source/core/sch_chtm3d2.cxx deleted file mode 100644 index 83ad5dbf3..000000000 --- a/binfilter/bf_sch/source/core/sch_chtm3d2.cxx +++ /dev/null @@ -1,550 +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. - * - ************************************************************************/ - -#include "chtscene.hxx" -#include "datapoin.hxx" - -#include <bf_svx/svxids.hrc> - -#include "schattr.hxx" -#include "objid.hxx" - -#include "axisobj.hxx" - -namespace binfilter { - -#define SCH_MIN(a, b) (((a) < (b))? (a): (b)) - -/*N*/ long ChartModel::GetChartShapeType() -/*N*/ { -/*N*/ long nShape =CHART_SHAPE3D_IGNORE; // BM: ANY instead of IGNORE -/*N*/ long nOldShape=CHART_SHAPE3D_IGNORE; -/*N*/ -/*N*/ if( Is3DChart() && -/*N*/ ( GetBaseType() == CHTYPE_BAR || -/*N*/ GetBaseType() == CHTYPE_COLUMN )) -/*N*/ { -/*N*/ const SfxPoolItem *pPoolItem; -/*N*/ long nRowCnt=GetRowCount(); -/*N*/ long nColCnt=GetColCount(); -/*N*/ for(long nRow=0;nRow<nRowCnt;nRow++) -/*N*/ { -/*N*/ for(long nCol=0;nCol<nColCnt;nCol++) -/*N*/ { -/*N*/ const SfxItemSet& rAttr=GetDataPointAttr(nCol,nRow); -/*N*/ if(rAttr.GetItemState(SCHATTR_STYLE_SHAPE, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ { -/*N*/ nShape=((const SfxInt32Item*) pPoolItem)->GetValue(); -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ if(!GetDataPointObj(nCol,nRow)) -/*?*/ { -/*?*/ nShape=nOldShape; -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ nShape=CHART_SHAPE3D_SQUARE; -/*?*/ } -/*N*/ } -/*N*/ -/*N*/ -/*N*/ if( (nShape!=nOldShape) && nOldShape!=CHART_SHAPE3D_IGNORE) -/*?*/ return CHART_SHAPE3D_ANY; -/*N*/ -/*N*/ nOldShape=nShape; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ return nShape; -/*N*/ } -/************************************************************************* -|* | -|* 3D-Balken erzeugen; aPos: links, unten, hinten |__ -|* / -\************************************************************************/ -/*N*/ E3dCompoundObject* ChartModel::Create3DBar(Vector3D aPos, -/*N*/ Vector3D aSizeVec, -/*N*/ long nCol, -/*N*/ long nRow, -/*N*/ SfxItemSet &rAttr, -/*N*/ BOOL /*bIsSimple*/, -/*N*/ double fMinPos, -/*N*/ double fOriPos, -/*N*/ double fMaxPos) -/*N*/ { -/*N*/ Matrix4D aTransMat; -/*N*/ -/*N*/ long mode=CHART_SHAPE3D_SQUARE; -/*N*/ double fHeight=fMaxPos-fMinPos; -/*N*/ double a,b; -/*N*/ -/*N*/ -/*N*/ const SfxPoolItem *pPoolItem = NULL; -/*N*/ if (rAttr.GetItemState(SCHATTR_STYLE_SHAPE, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ mode=((const SfxInt32Item*) pPoolItem)->GetValue(); -/*N*/ if( (mode==CHART_SHAPE3D_ANY) || -/*N*/ (mode==CHART_SHAPE3D_IGNORE) // BM #66527# shouldn't happen but actually does :-( -/*N*/ ) -/*N*/ mode=CHART_SHAPE3D_SQUARE; -/*N*/ -/*N*/ CHART_TRACE1( "Create3DBar Mode=%ld", mode ); -/*N*/ -/*N*/ PolyPolygon aPolyPoly; -/*N*/ Vector3D aDestCenter; -/*N*/ E3dCompoundObject* pObj; -/*N*/ E3dDefaultAttributes aDefltAttr3D; -/*N*/ -/*N*/ long nSegs=32; -/*N*/ -/*N*/ double fBase = -/*N*/ ( IsBar() -/*N*/ ? SCH_MIN( aSizeVec.Y(), aSizeVec.Z()) -/*N*/ : SCH_MIN( aSizeVec.X(), aSizeVec.Z()) ) -/*N*/ / 2.0 - 1.0; -/*N*/ -/*N*/ aDestCenter = aPos + (aSizeVec / 2); -/*N*/ -/*N*/ double fTmp = IsBar() -/*N*/ ? aDestCenter.X() -/*N*/ : aDestCenter.Y(); -/*N*/ BOOL bNegativ=(fTmp < fOriPos); -/*N*/ -/*N*/ if(mode!=CHART_SHAPE3D_SQUARE && IsBar()) -/*N*/ { -/*N*/ a=aPos.X()-fOriPos; -/*N*/ b=aPos.X()+aSizeVec.X()-fOriPos; -/*N*/ -/*N*/ double fLclTmp=aSizeVec.X(); -/*N*/ aSizeVec.X()=aSizeVec.Y(); -/*N*/ aSizeVec.Y()=fLclTmp; -/*N*/ aSizeVec.Z()=-aSizeVec.Z(); //90Grad drehen -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ a=aPos.Y()-fOriPos; -/*N*/ b=aPos.Y()+aSizeVec.Y()-fOriPos; -/*N*/ } -/*N*/ -/*N*/ const double fRelH =(double)( (bNegativ) ? fOriPos-fMaxPos : fMinPos-fOriPos); -/*N*/ -/*N*/ a=fRelH-a; -/*N*/ b=fRelH-b; -/*N*/ -/*N*/ if(bNegativ) -/*N*/ { -/*N*/ double tmp=a; -/*N*/ a=b; -/*N*/ b=tmp; -/*N*/ } -/*N*/ -/*N*/ -/*N*/ if(mode==CHART_SHAPE3D_HANOI) -/*N*/ { -/*N*/ b=a; -/*N*/ mode=CHART_SHAPE3D_CONE; -/*N*/ } -/*N*/ -/*N*/ // add extra points to extrusion-rectangle, to get a uniformly light-distribution -/*N*/ // the distance of these offset points is dependent of the setting of "edge-rounding" -/*N*/ double fRoundedEdge = 0.0; -/*N*/ -/*N*/ fRoundedEdge = ((double)((const Svx3DPercentDiagonalItem&) -/*N*/ rAttr.Get(SDRATTR_3DOBJ_PERCENT_DIAGONAL)).GetValue()) / 200.0; -/*N*/ -/*N*/ // always use extra points, so set percent diagonal to 0.4 which is 0% in the UI -/*N*/ if( fRoundedEdge == 0.0 ) -/*N*/ fRoundedEdge = 0.4 / 200.0; -/*N*/ -/*N*/ switch( mode ) -/*N*/ { -/*N*/ case CHART_SHAPE3D_CYLINDER: -/*N*/ { -/*N*/ double fOffset = (fBase * 2.0 * fRoundedEdge) * 1.05; // increase by 5% for safety -/*N*/ short nPolySize; -/*N*/ -/*N*/ aPos = Vector3D( 0.0, 0.0, 0.0 ); -/*N*/ if( 2.0 * fOffset < fBase && -/*N*/ 2.0 * fOffset < aSizeVec.Y() ) -/*N*/ { -/*N*/ nPolySize = 8; -/*N*/ Polygon aPoly( nPolySize ); -/*N*/ aPoly[0] = Point(static_cast<long>(aPos.X()), static_cast<long>(aPos.Y())); -/*N*/ -/*N*/ aPoly[1] = Point(static_cast<long>(aPos.X() + fBase - fOffset), static_cast<long>(aPos.Y())); -/*N*/ aPoly[2] = Point(static_cast<long>(aPos.X() + fBase), static_cast<long>(aPos.Y())); -/*N*/ aPoly[3] = Point(static_cast<long>(aPos.X() + fBase), static_cast<long>(aPos.Y() + fOffset)); -/*N*/ -/*N*/ aPoly[4] = Point(static_cast<long>(aPos.X() + fBase), static_cast<long>(aPos.Y() + aSizeVec.Y() - fOffset)); -/*N*/ aPoly[5] = Point(static_cast<long>(aPos.X() + fBase), static_cast<long>(aPos.Y() + aSizeVec.Y())); -/*N*/ aPoly[6] = Point(static_cast<long>(aPos.X() + fBase - fOffset), static_cast<long>(aPos.Y() + aSizeVec.Y())); -/*N*/ -/*N*/ aPoly[7] = Point(static_cast<long>(aPos.X()), static_cast<long>(aPos.Y() + aSizeVec.Y())); -/*N*/ -/*N*/ aPolyPoly.Insert( aPoly ); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ nPolySize = 4; -/*N*/ Polygon aPoly( nPolySize ); -/*N*/ -/*N*/ aPoly[0]=Point(static_cast<long>(aPos.X()), static_cast<long>(aPos.Y())); -/*N*/ aPoly[1]=Point(static_cast<long>(aPos.X() + fBase), static_cast<long>(aPos.Y())); -/*N*/ aPoly[2]=Point(static_cast<long>(aPos.X() + fBase), static_cast<long>(aPos.Y() + aSizeVec.Y())); -/*N*/ aPoly[3]=Point(static_cast<long>(aPos.X()), static_cast<long>(aPos.Y() + aSizeVec.Y())); -/*N*/ -/*N*/ aPolyPoly.Insert(aPoly); -/*N*/ } -/*N*/ -/*N*/ pObj = new SchE3dLatheObj(aDefltAttr3D, aPolyPoly); -/*N*/ ((E3dLatheObj*)pObj)->SetItem( Svx3DHorizontalSegmentsItem( nSegs )); -/*N*/ -/*N*/ SfxItemSet aSegmentAttr(*pItemPool, -/*N*/ SDRATTR_3D_FIRST, SDRATTR_3D_LAST, -/*N*/ SCHATTR_STYLE_START, SCHATTR_STYLE_END, -/*N*/ 0, 0); -/*N*/ -/*N*/ rAttr.Put( Svx3DHorizontalSegmentsItem( nSegs )); -/*N*/ -/*N*/ aSegmentAttr.Put(rAttr); -/*N*/ PutDataPointAttr(nCol, nRow, aSegmentAttr); -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ -/*N*/ case CHART_SHAPE3D_PYRAMID: -/*N*/ nSegs = 4; -/*N*/ aTransMat.RotateY( F_PI / 4.0 ); // rotate edge to front -/*N*/ // continue with same code as for cone -/*N*/ -/*N*/ case CHART_SHAPE3D_CONE: -/*N*/ { -/*N*/ aPos = Vector3D( 0, 0, 0 ); -/*N*/ double fOffset = (fBase * fRoundedEdge) * 1.05; // increase by 5% for safety -/*N*/ -/*N*/ BOOL bIsTip = (fRelH == 0.0 || fHeight == 0.0) || // nonstacked chart -/*N*/ (fBase * b <= fOffset * fRelH); // tip of stacked chart -/*N*/ -/*N*/ long nPolySize; -/*N*/ double r1, r2; -/*N*/ if( bIsTip ) -/*N*/ { -/*N*/ r1 = 0.0; -/*N*/ r2 = ( fRelH == 0.0 )? fBase : ( fBase * a ) / fRelH; -/*N*/ nPolySize = 6; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ r1 = ( fBase * b ) / fRelH; -/*N*/ r2 = ( fBase * a ) / fRelH; -/*N*/ nPolySize = 8; -/*N*/ } -/*N*/ double fTemp = ((r2-r1) * (r2-r1)) / (aSizeVec.Y() * aSizeVec.Y()); -/*N*/ double fOffsetX = sqrt( fOffset * fOffset / (1.0 + 1.0/fTemp )); -/*N*/ double fOffsetY = sqrt( fOffset * fOffset / (1.0 + fTemp )); -/*N*/ -/*N*/ Polygon aPoly( nPolySize ); -/*N*/ short i=0; -/*N*/ -/*N*/ if( ! bIsTip ) // skip these points for the tip -/*N*/ { -/*N*/ aPoly[i++] = Point( static_cast<long>(aPos.X()), static_cast<long>(aPos.Y())); -/*N*/ aPoly[i++] = Point( static_cast<long>(aPos.X() + r1 - fOffset), static_cast<long>(aPos.Y())); -/*N*/ } -/*N*/ aPoly[i++] = Point(static_cast<long>(aPos.X() + r1), static_cast<long>(aPos.Y())); -/*N*/ aPoly[i++] = Point(static_cast<long>(aPos.X() + r1 + fOffsetX), static_cast<long>(aPos.Y() + fOffsetY)); -/*N*/ aPoly[i++] = Point(static_cast<long>(aPos.X() + r2 - fOffsetX), static_cast<long>(aPos.Y() + aSizeVec.Y() - fOffsetY)); -/*N*/ aPoly[i++] = Point(static_cast<long>(aPos.X() + r2), static_cast<long>(aPos.Y() + aSizeVec.Y())); -/*N*/ aPoly[i++] = Point(static_cast<long>(aPos.X() + r2 - fOffset), static_cast<long>(aPos.Y() + aSizeVec.Y())); -/*N*/ aPoly[i++] = Point(static_cast<long>(aPos.X()), static_cast<long>(aPos.Y() + aSizeVec.Y())); -/*N*/ -/*N*/ aPolyPoly.Insert( aPoly ); -/*N*/ -/*N*/ pObj = new SchE3dLatheObj( aDefltAttr3D, aPolyPoly ); -/*N*/ ((E3dLatheObj*)pObj)->SetItem( Svx3DHorizontalSegmentsItem( nSegs )); -/*N*/ -/*N*/ SfxItemSet aSegmentAttr(*pItemPool, -/*N*/ SDRATTR_3D_FIRST, SDRATTR_3D_LAST, -/*N*/ SCHATTR_STYLE_START, SCHATTR_STYLE_END, -/*N*/ 0, 0); -/*N*/ -/*N*/ rAttr.Put( Svx3DHorizontalSegmentsItem( nSegs )); -/*N*/ -/*N*/ aSegmentAttr.Put(rAttr); -/*N*/ PutDataPointAttr(nCol, nRow, aSegmentAttr); -/*N*/ } -/*N*/ break; -/*N*/ default: -/*N*/ case CHART_SHAPE3D_SQUARE: -/*N*/ { -/*N*/ double fOffset = (aSizeVec.Z() * fRoundedEdge) * 1.05; // increase by 5% for safety -/*N*/ -/*N*/ if( 2.0 * fOffset < aSizeVec.X() && -/*N*/ 2.0 * fOffset < aSizeVec.Y() ) -/*N*/ { -/*N*/ Polygon aPoly( 13 ); -/*N*/ aPoly[ 0] = Point(static_cast<long>(aPos.X() + fOffset), static_cast<long>(aPos.Y())); -/*N*/ aPoly[ 1] = Point(static_cast<long>(aPos.X()), static_cast<long>(aPos.Y())); -/*N*/ aPoly[ 2] = Point(static_cast<long>(aPos.X()), static_cast<long>(aPos.Y() + fOffset)); -/*N*/ -/*N*/ aPoly[ 3] = Point(static_cast<long>(aPos.X()), static_cast<long>(aPos.Y() + aSizeVec.Y() - fOffset)); -/*N*/ aPoly[ 4] = Point(static_cast<long>(aPos.X()), static_cast<long>(aPos.Y() + aSizeVec.Y())); -/*N*/ aPoly[ 5] = Point(static_cast<long>(aPos.X() + fOffset), static_cast<long>(aPos.Y() + aSizeVec.Y())); -/*N*/ -/*N*/ aPoly[ 6] = Point(static_cast<long>(aPos.X() + aSizeVec.X() - fOffset), static_cast<long>(aPos.Y() + aSizeVec.Y())); -/*N*/ aPoly[ 7] = Point(static_cast<long>(aPos.X() + aSizeVec.X()), static_cast<long>(aPos.Y() + aSizeVec.Y())); -/*N*/ aPoly[ 8] = Point(static_cast<long>(aPos.X() + aSizeVec.X()), static_cast<long>(aPos.Y() + aSizeVec.Y() - fOffset)); -/*N*/ -/*N*/ aPoly[ 9] = Point(static_cast<long>(aPos.X() + aSizeVec.X()), static_cast<long>(aPos.Y() + fOffset)); -/*N*/ aPoly[10] = Point(static_cast<long>(aPos.X() + aSizeVec.X()), static_cast<long>(aPos.Y())); -/*N*/ aPoly[11] = Point(static_cast<long>(aPos.X() + aSizeVec.X() - fOffset), static_cast<long>(aPos.Y())); -/*N*/ -/*N*/ aPoly[12] = aPoly[ 0]; -/*N*/ aPolyPoly.Insert( aPoly ); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ Polygon aPoly(5); -/*N*/ aPoly[0]=Point(static_cast<long>(aPos.X()), static_cast<long>(aPos.Y())); -/*N*/ aPoly[1]=Point(static_cast<long>(aPos.X()), static_cast<long>(aPos.Y() + aSizeVec.Y())); -/*N*/ aPoly[2]=Point(static_cast<long>(aPos.X() + aSizeVec.X()), static_cast<long>(aPos.Y() + aSizeVec.Y())); -/*N*/ aPoly[3]=Point(static_cast<long>(aPos.X() + aSizeVec.X()), static_cast<long>(aPos.Y())); -/*N*/ aPoly[4]=aPoly[0]; -/*N*/ -/*N*/ aPolyPoly.Insert(aPoly); -/*N*/ } -/*N*/ -/*N*/ pObj = new SchE3dExtrudeObj(aDefltAttr3D, aPolyPoly, aSizeVec.Z()); -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ } -/*N*/ -/*N*/ Vector3D aOldCenter=pObj->GetCenter(); -/*N*/ if(mode!=CHART_SHAPE3D_SQUARE) -/*N*/ { -/*N*/ if(IsBar()) -/*N*/ { -/*N*/ aTransMat.Translate(-aOldCenter);//Zentrum in Nullpunkt setzen -/*N*/ aTransMat.RotateZ(-3.1415927/2.0);//Saeule umwerfen (90Grad nach rechts) -/*N*/ if(bNegativ) -/*N*/ aTransMat.RotateZ(3.1415927);//Spitze nach unten oder links(Kegel, etc.) -/*N*/ aOldCenter=Vector3D(0,0,0); -/*N*/ } -/*N*/ else if(bNegativ) -/*N*/ { -/*N*/ aTransMat.Translate(-aOldCenter);//Zentrum in Nullpunkt setzen -/*N*/ if(bNegativ) -/*N*/ aTransMat.RotateZ(3.1415927);//Spitze nach unten oder links(Kegel, etc.) -/*N*/ aOldCenter=Vector3D(0,0,0); -/*N*/ } -/*N*/ } -/*N*/ aTransMat.Translate(aDestCenter - aOldCenter);//An die gewuenschte Position schieben -/*N*/ pObj->NbcSetTransform(aTransMat); -/*N*/ -/*N*/ pObj->SetModel (this); - // #106658# the ChartModel has a different Pool default for the - // Svx3DPercentDiagonalItem. The Geometry is created while using a global - // pool (Model is not set). Ensure recreating the geometry with new Model -/*N*/ pObj->DestroyGeometry(); -/*N*/ -/*N*/ pObj->InsertUserData(new SchObjectId(CHOBJID_DIAGRAM_DATA)); -/*N*/ -/*N*/ // the number vertical segments is always fixed -/*N*/ rAttr.ClearItem( SDRATTR_3DOBJ_VERT_SEGS ); -/*N*/ pObj->SetItemSet(rAttr); -/*N*/ -/*N*/ pObj->InsertUserData(new SchDataPoint(nCol, nRow)); -/*N*/ -/*N*/ return pObj; -/*N*/ } -/************************************************************************* -|* -|* Neues 3D-Object erzeugen -|* -\************************************************************************/ -/*N*/ E3dObject* ChartModel::Create3DObject (UINT16 ID) -/*N*/ { -/*N*/ E3dObject *pMyObject = new SchE3dObject; -/*N*/ pMyObject->SetModel (this); -/*N*/ pMyObject->InsertUserData(new SchObjectId(ID)); -/*N*/ return pMyObject; -/*N*/ } - -/*N*/ E3dScene* ChartModel::Create3DScene (UINT16 ID) -/*N*/ { -/*N*/ E3dScene* pMyObject = new ChartScene( this ); -/*N*/ pMyObject->InsertUserData(new SchObjectId(ID)); -/*N*/ return pMyObject; -/*N*/ } - -/*N*/ E3dObject* ChartModel::Create3DAxisObj( UINT16 nId ) -/*N*/ { -/*N*/ E3dObject *pMyObject = new Sch3dAxisObj; -/*N*/ pMyObject->SetModel( this ); -/*N*/ pMyObject->InsertUserData( new SchObjectId( nId ) ); -/*N*/ return pMyObject; -/*N*/ } - -/************************************************************************* -|* -|* 3D-Polygon erzeugen -|* -\************************************************************************/ -/*N*/ void ChartModel::Create3DPolyObject (const SfxItemSet *pAttr, -/*N*/ E3dPolygonObj *pMyObject, -/*N*/ UINT16 nID, -/*N*/ E3dObject *pParent) -/*N*/ { -/*N*/ pMyObject->InsertUserData(new SchObjectId(nID)); -/*N*/ pParent->Insert3DObj (pMyObject); -/*N*/ pMyObject->SetModel (this); -/*N*/ -/*N*/ pMyObject->SetItemSet(*pAttr); -/*N*/ -/*N*/ } - - -/*N*/ void ChartModel::Create3DExtrudePolyObj(const SfxItemSet *pAttr, -/*N*/ E3dExtrudeObj *pMyObject, -/*N*/ UINT16 nID, -/*N*/ E3dObject *pParent) -/*N*/ { -/*N*/ pMyObject->InsertUserData(new SchObjectId(nID)); -/*N*/ pParent->Insert3DObj (pMyObject); -/*N*/ pMyObject->SetModel (this); -/*N*/ -/*N*/ pMyObject->SetItemSet(*pAttr); -/*N*/ -/*N*/ } - -/************************************************************************* -|* -|* 3D-Scene erzeugen -|* -\************************************************************************/ - -/*N*/ ChartScene* ChartModel::CreateScene (const Rectangle &rRect, -/*N*/ const Vector3D &/*aLightVec*/, -/*N*/ double /*fSpotIntensity*/, -/*N*/ Color& /*rSpotColor*/, -/*N*/ double /*fAmbientIntensity*/, -/*N*/ Color& /*rAmbientColor*/) -/*N*/ { -/*N*/ ChartScene *pMyScene = new ChartScene (this); -/*N*/ -/*N*/ pMyScene->InsertUserData(new SchObjectId(CHOBJID_DIAGRAM)); -/*N*/ pMyScene->NbcSetSnapRect(rRect); -/*N*/ -/*N*/ return pMyScene; -/*N*/ } - -/*N*/ void SchRectObj::NbcSetOutlinerParaObject(OutlinerParaObject* pTextObject) -/*N*/ { -/*N*/ SdrRectObj::NbcSetOutlinerParaObject(pTextObject); -/*N*/ ChartModel* pLclModel=(ChartModel*)GetModel(); -/*N*/ if(pLclModel) -/*N*/ pLclModel->SetTextFromObject(this,pTextObject); -/*N*/ } - -////////////////////////////////////////////////////////////////////////////// - -/*N*/ void ImpStoreObjcetsAttr(SdrObject *pObj) -/*N*/ { -/*N*/ ChartModel* pModel = (ChartModel*)pObj->GetModel(); -/*N*/ if(pModel) -/*N*/ pModel->StoreObjectsAttributes(pObj, pObj->GetItemSet(), FALSE); -/*N*/ } - -////////////////////////////////////////////////////////////////////////////// - - - -/*N*/ void SchRectObj::SetItemSet(const SfxItemSet& rSet) -/*N*/ { -/*N*/ SdrRectObj::SetItemSet(rSet); -/*N*/ ImpStoreObjcetsAttr(this); -/*N*/ } - -////////////////////////////////////////////////////////////////////////////// - -/*N*/ void SchE3dExtrudeObj::SetItem(const SfxPoolItem& rItem) -/*N*/ { -/*N*/ E3dExtrudeObj::SetItem(rItem); -/*N*/ ImpStoreObjcetsAttr(this); -/*N*/ } - - -/*N*/ void SchE3dExtrudeObj::SetItemSet(const SfxItemSet& rSet) -/*N*/ { -/*N*/ E3dExtrudeObj::SetItemSet(rSet); -/*N*/ ImpStoreObjcetsAttr(this); -/*N*/ } - -////////////////////////////////////////////////////////////////////////////// - -/*N*/ void SchE3dPolygonObj::SetItem(const SfxPoolItem& rItem) -/*N*/ { -/*N*/ E3dPolygonObj::SetItem(rItem); -/*N*/ ImpStoreObjcetsAttr(this); -/*N*/ } - - -/*N*/ void SchE3dPolygonObj::SetItemSet(const SfxItemSet& rSet) -/*N*/ { -/*N*/ E3dPolygonObj::SetItemSet(rSet); -/*N*/ ImpStoreObjcetsAttr(this); -/*N*/ } - -////////////////////////////////////////////////////////////////////////////// - -/*N*/ void SchE3dLatheObj::SetItem(const SfxPoolItem& rItem) -/*N*/ { -/*N*/ E3dLatheObj::SetItem(rItem); -/*N*/ ImpStoreObjcetsAttr(this); -/*N*/ } - - -/*N*/ void SchE3dLatheObj::SetItemSet(const SfxItemSet& rSet) -/*N*/ { -/*N*/ E3dLatheObj::SetItemSet(rSet); -/*N*/ ImpStoreObjcetsAttr(this); -/*N*/ } - -////////////////////////////////////////////////////////////////////////////// - -/*N*/ void SchE3dObject::SetItemSet(const SfxItemSet& rSet) -/*N*/ { -/*N*/ E3dObject::SetItemSet(rSet); -/*N*/ ImpStoreObjcetsAttr(this); -/*N*/ } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chtmod2a.cxx b/binfilter/bf_sch/source/core/sch_chtmod2a.cxx deleted file mode 100644 index 6a9576b4e..000000000 --- a/binfilter/bf_sch/source/core/sch_chtmod2a.cxx +++ /dev/null @@ -1,1407 +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. - * - ************************************************************************/ -#include <bf_svx/eeitem.hxx> -#ifndef _ZFORLIST_HXX //autogen -#ifndef _ZFORLIST_DECLARE_TABLE -#define _ZFORLIST_DECLARE_TABLE -#endif -#include <bf_svtools/zforlist.hxx> -#endif - -#include <bf_svx/svdocirc.hxx> -#include <bf_svx/svdopath.hxx> - -#include "schattr.hxx" -#ifndef _SVX_CHRTITEM_HXX //autogen -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR -#endif - -#define ITEMID_FONTHEIGHT EE_CHAR_FONTHEIGHT -#define ITEMID_FONTWIDTH EE_CHAR_FONTWIDTH -#include <bf_svx/fwdtitem.hxx> -#include <bf_svx/fhgtitem.hxx> -#include <bf_svx/svxids.hrc> -#ifndef _CHTMODEL_HXX -#endif - -#include "strings.hrc" -#include "glob.hrc" -#include <math.h> -#include <float.h> - -#include "pairs.hxx" -#include "globfunc.hxx" - -#include <bf_svx/xlineit.hxx> -// header for Line - -#include "chaxis.hxx" -#include "chdescr.hxx" -#include "calculat.hxx" - -namespace binfilter { - -#define SCH_SIN(a) (sin((double)a * F_PI / 18000.0)) -#define SCH_COS(a) (cos((double)a * F_PI / 18000.0)) - -/************************************************************************* -|* -|* Kreisdiagramm erzeugen -|* -\************************************************************************/ -/*N*/ SdrObjGroup* ChartModel::Create2DPieChart(Rectangle aRect) -/*N*/ { -/*N*/ SchObjGroup *pGroup; -/*N*/ SdrObjList *pList; -/*N*/ -/*N*/ CreateChartGroup (pGroup, pList); -/*N*/ -/*N*/ // pie charts always have row number 0 for now -/*N*/ const long nRow = 0; -/*N*/ -/*N*/ double fTotal = 0.0; -/*N*/ long nColCnt = GetColCount(); -/*N*/ long nSegOfsMax = 0; -/*N*/ -/*N*/ SchObjGroup* pDescrGroup = NULL; -/*N*/ SdrObjList *pDescrList = NULL; -/*N*/ DataDescription* pDescription = NULL; -/*N*/ long nCol; -/*N*/ Size aDescrOfs; -/*N*/ -/*N*/ // Pie charts may not have titles of axes. -/*N*/ bShowXAxisTitle = FALSE; -/*N*/ bShowYAxisTitle = FALSE; -/*N*/ bShowZAxisTitle = FALSE; -/*N*/ -/*N*/ // determine the space required by the chart. For this chart type -/*N*/ // the labelling is also taken into the calculation -/*N*/ pDescrList = 0; -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ double fData = GetData (nCol, nRow); -/*N*/ if (fData != DBL_MIN) fTotal += fabs(fData); -/*N*/ } -/*N*/ -/*N*/ for( nCol = 0; nCol < nColCnt; nCol++ ) -/*N*/ { -/*N*/ SfxItemSet aDataPointAttr( GetFullDataPointAttr( nCol, nRow )); -/*N*/ /*double fData =*/ GetData( nCol, nRow ); -/*N*/ -/*N*/ nSegOfsMax = Max( PieSegOfs( nCol ), nSegOfsMax ); -/*N*/ -/*N*/ SvxChartDataDescr eDescr = ((const SvxChartDataDescrItem&)aDataPointAttr. -/*N*/ Get(SCHATTR_DATADESCR_DESCR)).GetValue(); -/*N*/ -/*N*/ if( (eDescr != CHDESCR_NONE) && bShowDataDescr ) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*?*/ } -/*N*/ } -/*N*/ -/*N*/ // shrink rectangle if labels are printed beside the pies -/*N*/ if (pDescription) -/*N*/ { -/*N*/ // shrink by size of description text plus a -/*?*/ // percentage of the rect size as text offset -/*?*/ long nShrinkX = aDescrOfs.Width() + (aRect.GetWidth() / 20); -/*?*/ long nShrinkY = aDescrOfs.Height() + (aRect.GetHeight() / 20); -/*?*/ -/*?*/ aRect.Left() += nShrinkX; -/*?*/ aRect.Right() -= nShrinkX; -/*?*/ aRect.Top() += nShrinkY; -/*?*/ aRect.Bottom() -= nShrinkY; -/*N*/ } -/*N*/ -/*N*/ // make sure the pie rectangle is a square -/*N*/ // shrink rect -/*N*/ if (aRect.GetWidth() > aRect.GetHeight()) -/*N*/ { -/*N*/ aRect.Left() += (aRect.GetWidth() - aRect.GetHeight()) / 2; -/*N*/ aRect.Right() = aRect.Left() + aRect.GetHeight(); -/*N*/ } -/*N*/ else if (aRect.GetHeight() > aRect.GetWidth()) -/*N*/ { -/*?*/ aRect.Top() += (aRect.GetHeight() - aRect.GetWidth()) / 2; -/*?*/ aRect.Bottom() = aRect.Top() + aRect.GetWidth(); -/*N*/ } -/*N*/ -/*N*/ long nEndAng = 9000; -/*N*/ long nSegOfs; -/*N*/ -/*N*/ Rectangle aDefaultCircRect = aRect; -/*N*/ Rectangle aCircRect; -/*N*/ -/*N*/ // shrink default circle rectangle (square) to allow exploded pie segments -/*N*/ if( nSegOfsMax ) -/*N*/ { -/*?*/ double fRadius = (double)(aDefaultCircRect.GetWidth()) / 2.0; -/*?*/ long nRadiusDiff = (long)(fRadius * (1.0 - (1.0 / (1.0 + ((double)nSegOfsMax / 100.0))))); -/*?*/ aDefaultCircRect.Left() += nRadiusDiff; -/*?*/ aDefaultCircRect.Right() -= nRadiusDiff; -/*?*/ -/*?*/ aDefaultCircRect.Top() += nRadiusDiff; -/*?*/ aDefaultCircRect.Bottom() -= nRadiusDiff; -/*N*/ } -/*N*/ nPieRadius = aDefaultCircRect.GetWidth() / 2; // member set to query radius of pie segments -/*N*/ -/*N*/ // create all pie objects -/*N*/ for( nCol = 0; nCol < nColCnt; nCol++ ) -/*N*/ { -/*N*/ long nStartAng = nEndAng; -/*N*/ SfxItemSet aDataPointAttr( GetFullDataPointAttr( nCol, nRow )); -/*N*/ long nIndex = nCol + nRow * nColCnt; -/*N*/ double fData = fabs( GetData( nCol, nRow )); -/*N*/ -/*N*/ if (fData != DBL_MIN) -/*N*/ { -/*N*/ if( nCol == nColCnt - 1 ) -/*N*/ { -/*N*/ // ensure that the circle is closed even if we start at 90 degrees -/*N*/ nEndAng = 9000 + 36000; -/*N*/ } -/*N*/ else if( fTotal != 0.0 ) -/*N*/ { -/*?*/ nEndAng += (long)((fData / fTotal) * 36000); -/*N*/ } -/*N*/ -/*N*/ aCircRect = aDefaultCircRect; -/*N*/ -/*N*/ nSegOfs = PieSegOfs(nCol); -/*N*/ if( nSegOfs ) -/*N*/ { -/*?*/ double fSegShift = (double)(nPieRadius * nSegOfs) / 100.0; -/*?*/ -/*?*/ Point aCircPos = aCircRect.TopLeft(); -/*?*/ -/*?*/ long nAngleDiff; -/*?*/ -/*?*/ // determine the bisector angle -/*?*/ if (nStartAng > nEndAng) -/*?*/ nAngleDiff = (nEndAng + 36000 - nStartAng) / 2; -/*?*/ else -/*?*/ nAngleDiff = (nEndAng - nStartAng) / 2; -/*?*/ -/*?*/ // set the text position according to the position of the pie -/*?*/ if (nStartAng < 9000) -/*?*/ { -/*?*/ long nAngle = nAngleDiff + nStartAng; -/*?*/ -/*?*/ aCircPos.X() += (long) (SCH_COS( nAngle ) * fSegShift); -/*?*/ aCircPos.Y() -= (long) (SCH_SIN( nAngle ) * fSegShift); -/*?*/ } -/*?*/ else if (nStartAng < 18000) -/*?*/ { -/*?*/ long nAngle = nAngleDiff + (nStartAng - 9000); -/*?*/ -/*?*/ aCircPos.X() -= (long) (SCH_SIN( nAngle ) * fSegShift); -/*?*/ aCircPos.Y() -= (long) (SCH_COS( nAngle ) * fSegShift); -/*?*/ } -/*?*/ else if (nStartAng < 27000) -/*?*/ { -/*?*/ long nAngle = nAngleDiff + (nStartAng - 18000); -/*?*/ -/*?*/ aCircPos.X() -= (long) (SCH_COS( nAngle ) * fSegShift); -/*?*/ aCircPos.Y() += (long) (SCH_SIN( nAngle ) * fSegShift); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ long nAngle = nAngleDiff + (nStartAng - 27000); -/*?*/ -/*?*/ aCircPos.X() += (long) (SCH_SIN( nAngle ) * fSegShift); -/*?*/ aCircPos.Y() += (long) (SCH_COS( nAngle ) * fSegShift); -/*?*/ } -/*?*/ -/*?*/ aCircRect.SetPos(aCircPos); -/*?*/ } -/*N*/ -/*N*/ // pies and description are not grouped -/*N*/ if( fData > 0 ) -/*N*/ { -/*N*/ SdrObject* pObj = CreatePieSegment( aDataPointAttr, aCircRect, nCol, nRow, -/*N*/ nStartAng, nEndAng, GetColCount() ); -/*N*/ pObj->SetMoveProtect( FALSE ); // bm allow dragging pies -/*N*/ pList->NbcInsertObject( pObj ); -/*N*/ } -/*N*/ -/*N*/ } -/*N*/ else if( pDescription ) -/*N*/ { -/*?*/ pDescription[ nIndex ].fValue = DBL_MIN; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if(pDescrGroup) -/*?*/ pList->NbcInsertObject(pDescrGroup); -/*N*/ -/*N*/ pGroup->GetSubList ()->SetRectsDirty (); -/*N*/ -/*N*/ // resize of pie charts is allowed proportionally only -/*N*/ SdrObjTransformInfoRec aLclInfo; -/*N*/ aLclInfo.bResizeFreeAllowed = FALSE; -/*N*/ aLclInfo.bResizePropAllowed = TRUE; -/*N*/ aLclInfo.bRotateFreeAllowed = FALSE; -/*N*/ aLclInfo.bRotate90Allowed = FALSE; -/*N*/ aLclInfo.bMirrorFreeAllowed = FALSE; -/*N*/ aLclInfo.bMirror45Allowed = FALSE; -/*N*/ aLclInfo.bMirror90Allowed = FALSE; -/*N*/ aLclInfo.bShearAllowed = FALSE; -/*N*/ pGroup->SetObjInfo(aLclInfo); -/*N*/ -/*N*/ Dirty2D (1, nColCnt, &pDescrList, FALSE, pDescription); -/*N*/ -/*N*/ delete[] pDescription; -/*N*/ -/*N*/ return pGroup; -/*N*/ } -/************************************************************************* -|* -|* Donutdiagramm erzeugen -|* -\************************************************************************/ -/*N*/ SdrObjGroup* ChartModel::Create2DDonutChart(Rectangle aRect) -/*N*/ { -/*N*/ SchObjGroup *pGroup; -/*N*/ SdrObjList *pList; -/*N*/ -/*N*/ CreateChartGroup (pGroup, pList); -/*N*/ -/*N*/ long nCol; -/*N*/ long nRow; -/*N*/ -/*N*/ long nColCnt = GetColCount() ; -/*N*/ long nRowCnt = GetRowCount() ; -/*N*/ -/*N*/ double *pTotal = new double [nColCnt]; -/*N*/ SdrObjList **pRowLists = new SdrObjList* [nRowCnt]; -/*N*/ SdrObjList **pDescrLists = new SdrObjList* [nRowCnt]; -/*N*/ DataDescription* pDescription = NULL; -/*N*/ Size aDescrOfs; -/*N*/ -/*N*/ // Donut charts may not have titles of axes. -/*N*/ bShowXAxisTitle = FALSE; -/*N*/ bShowYAxisTitle = FALSE; -/*N*/ bShowZAxisTitle = FALSE; -/*N*/ -/*N*/ SchObjGroup** pDescrGroups=new SchObjGroup*[nRowCnt]; -/*N*/ for(nRow=0;nRow<nRowCnt;nRow++) -/*N*/ pDescrGroups[nRow]=NULL; -/*N*/ -/*N*/ //Summiere ueber alle Elemente der gleichen Spalte (nicht Reihe!), -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ pTotal [nCol] = 0.0; -/*N*/ for (nRow = 0; nRow < nRowCnt; nRow++) -/*N*/ { -/*N*/ double fData = GetData (nCol, nRow); -/*N*/ if (fData != DBL_MIN) pTotal [nCol] += fabs(fData); -/*N*/ } -/*N*/ } - - // FG: 22.3.97 Als erstes wird der Platzbedarf der Beschriftung berechnet. - // Bei diesem Chart-Typ ist die Beschriftung mit in die Berechnung der - // Chartgroesse einbezogen worden. -/*N*/ for (nRow = 0; nRow < nRowCnt; nRow++) -/*N*/ { -/*N*/ SchObjGroup *pRowGroup = (SchObjGroup*) CreateSimpleGroup (CHOBJID_DIAGRAM_ROWGROUP, TRUE, TRUE); -/*N*/ -/*N*/ pRowGroup->InsertUserData(new SchDataRow((short)nRow)); -/*N*/ pList->NbcInsertObject(pRowGroup); -/*N*/ pRowLists[nRow] = pRowGroup->GetSubList(); -/*N*/ pDescrLists[nRow] = 0; -/*N*/ -/*N*/ // ******************** Data Descriptions erstellen ****************************** -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ SfxItemSet aDataPointAttr(GetFullDataPointAttr(nCol, nRow)); -/*N*/ /*double fData =*/ GetData (nCol, nRow); -/*N*/ -/*N*/ SvxChartDataDescr eDescr = ((const SvxChartDataDescrItem&)aDataPointAttr. -/*N*/ Get(SCHATTR_DATADESCR_DESCR)).GetValue(); -/*N*/ -/*N*/ if( (eDescr != CHDESCR_NONE) && bShowDataDescr) -/*N*/ {DBG_BF_ASSERT(0, "STRIP"); - /************************************************************** - * DataDescription erforderlich - **************************************************************/ -/*N*/ } -/*N*/ } //*************************** END DESCRIPTIONS *********************************** -/*N*/ }//End for nRow - - // Das Rechteck wird dann etwas kleiner, da Text ausgegeben wird -/*N*/ if (pDescription) -/*N*/ { -/*?*/ aRect.Left() += aDescrOfs.Width(); -/*?*/ aRect.Top() += aDescrOfs.Height(); -/*?*/ aRect.Right() -= aDescrOfs.Width(); -/*?*/ aRect.Bottom() -= aDescrOfs.Height(); -/*?*/ -/*?*/ // prozentual verkleinern wir es noch etwas, um einen Offset zum Text zu bekommen -/*?*/ long nWidth = (aRect.GetWidth () * 1) / 20; -/*?*/ long nHeight = (aRect.GetHeight () * 1) / 20; -/*?*/ -/*?*/ aRect.Left () += nWidth; -/*?*/ aRect.Right () -= nWidth; -/*?*/ aRect.Top () += nHeight; -/*?*/ aRect.Bottom () -= nHeight; -/*N*/ } - -/*N*/ SdrPage* pPage=GetPage(0); -/*N*/ Size aPageSize = pPage->GetSize(); -/*N*/ if (GetDiagramHasBeenMovedOrResized() && (aInitialSize != aPageSize)) -/*N*/ { // in dem Fall hat ein Resize stattgefunden -/*?*/ if (aInitialSize.Width() > aPageSize.Width()) -/*?*/ { -/*?*/ if (aRect.GetWidth() > aRect.GetHeight()) -/*?*/ { -/*?*/ aRect.Left() += (aRect.GetWidth() - aRect.GetHeight()) / 2; -/*?*/ aRect.Right() = aRect.Left() + aRect.GetHeight(); -/*?*/ } -/*?*/ else if (aRect.GetHeight() > aRect.GetWidth()) -/*?*/ { -/*?*/ aRect.Top() += (aRect.GetHeight() - aRect.GetWidth()) / 2; -/*?*/ aRect.Bottom() = aRect.Top() + aRect.GetWidth(); -/*?*/ } -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ if (aInitialSize.Height() > aPageSize.Height()) -/*?*/ { -/*?*/ if (aRect.GetWidth() > aRect.GetHeight()) -/*?*/ { -/*?*/ aRect.Left() += (aRect.GetWidth() - aRect.GetHeight()) / 2; -/*?*/ aRect.Right() = aRect.Left() + aRect.GetHeight(); -/*?*/ } -/*?*/ else if (aRect.GetHeight() > aRect.GetWidth()) -/*?*/ { -/*?*/ aRect.Top() += (aRect.GetHeight() - aRect.GetWidth()) / 2; -/*?*/ aRect.Bottom() = aRect.Top() + aRect.GetWidth(); -/*?*/ } -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ if (aRect.GetWidth() > aRect.GetHeight()) -/*?*/ { -/*?*/ aRect.Top() += (aRect.GetHeight() - aRect.GetWidth()) / 2; -/*?*/ aRect.Bottom() = aRect.Top() + aRect.GetWidth(); -/*?*/ } -/*?*/ else if (aRect.GetHeight() > aRect.GetWidth()) -/*?*/ { -/*?*/ aRect.Left() += (aRect.GetWidth() - aRect.GetHeight()) / 2; -/*?*/ aRect.Right() = aRect.Left() + aRect.GetHeight(); -/*?*/ } -/*?*/ } -/*?*/ } -/*N*/ } -/*N*/ else // ************* nicht gemoved oder resized ***************************** -/*N*/ { -/*N*/ // FG: Hier wird dafuer gesorgt, dass die Chart-Groesse immer ein Rechteck ist. -/*N*/ if (aRect.GetWidth() > aRect.GetHeight()) -/*N*/ { -/*N*/ aRect.Left() += (aRect.GetWidth() - aRect.GetHeight()) / 2; -/*N*/ aRect.Right() = aRect.Left() + aRect.GetHeight(); -/*N*/ } -/*N*/ else if (aRect.GetHeight() > aRect.GetWidth()) -/*N*/ { -/*?*/ aRect.Top() += (aRect.GetHeight() - aRect.GetWidth()) / 2; -/*?*/ aRect.Bottom() = aRect.Top() + aRect.GetWidth(); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ ULONG nSegWidth = (aRect.Right() - aRect.Left()) / (2 * (nColCnt + 1)); -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) //alle Ringe des Donuts -/*N*/ { -/*N*/ long nStartAng, nEndAng = 9000; //90 Grad -/*N*/ -/*N*/ double fTotal = pTotal[nCol]; -/*N*/ -/*N*/ for (nRow = 0; nRow < nRowCnt; nRow++) //Alle Datenreihen -/*N*/ { -/*N*/ nStartAng = nEndAng; -/*N*/ SfxItemSet aDataPointAttr(GetFullDataPointAttr(nCol, nRow)); -/*N*/ long nIndex = nCol + nRow * nColCnt;// long nIndex = nRow + nRowCnt * nCol ; -/*N*/ -/*N*/ -/*N*/ double fData = fabs(GetData(nCol, nRow)); -/*N*/ -/*N*/ if (fData != DBL_MIN) -/*N*/ { -/*N*/ //letzte Datenreihe ?? (eigentlich Unsinn, nur wegen evtl. Rundungsfehler notwendig? -/*N*/ if (nRow == nRowCnt - 1) -/*N*/ { -/*N*/ nEndAng = 9000; -/*N*/ } -/*N*/ else if (fTotal != 0.0) -/*N*/ { -/*N*/ nEndAng += (long)((fData / fTotal) * 36000); -/*N*/ } -/*N*/ -/*N*/ Rectangle aCircRect = aRect; -/*N*/ -/*N*/ if( fData > 0.0 ) -/*N*/ // Die Segmente einer Reihe werden nicht gruppiert! -/*N*/ // Diese Ausnahme besteht, da sonst eine Reihe Segmente anderer Reihen -/*N*/ // verdeckt (Gruppenobjekte koennen nicht ineinnander greifen (Problem -/*N*/ // des Drawinglayer), vorher: pRowLists[nRow]-> ... -/*N*/ pList->NbcInsertObject( CreateDonutSegment( aDataPointAttr, -/*N*/ aCircRect, nSegWidth, -/*N*/ nCol, nRow, -/*N*/ nStartAng, nEndAng, nRowCnt)); -/*N*/ -/*N*/ } -/*N*/ else if (pDescription) -/*N*/ { -/*N*/ pDescription [nIndex].fValue = DBL_MIN; -/*N*/ } -/*N*/ -/*N*/ }//Alle Datenreihen -/*N*/ -/*N*/ //Jetzt wird die Flaeche verkleinert, um den naechst-inneren Pie zu zeichnen, -/*N*/ //Ein Donut ist nichts anderes als ein Tuerme-von-Hanoi artiger Pie-Stapel -/*N*/ aRect.Left() += nSegWidth; -/*N*/ aRect.Top() += nSegWidth; -/*N*/ aRect.Right() -= nSegWidth; -/*N*/ aRect.Bottom() -= nSegWidth; -/*N*/ }//Alle Ringe -/*N*/ -/*N*/ const XFillStyleItem &rFillStyleItem = (const XFillStyleItem &) pDiagramAreaAttr->Get (XATTR_FILLSTYLE); -/*N*/ SfxItemSet aAreaAttr (*pDiagramAreaAttr); -/*N*/ -/*N*/ if (rFillStyleItem.GetValue () == XFILL_NONE) -/*N*/ { -/*N*/ aAreaAttr.Put(XFillStyleItem(XFILL_SOLID)); -/*N*/ aAreaAttr.Put(XFillColorItem(String(), RGBColor(COL_WHITE))); -/*N*/ } -/*N*/ -/*N*/ aAreaAttr.Put(XLineStyleItem(XLINE_SOLID)); -/*N*/ aAreaAttr.Put(XLineWidthItem(0)); -/*N*/ aAreaAttr.Put(XLineColorItem(String(), RGBColor(COL_BLACK))); -/*N*/ -/*N*/ SdrCircObj* pCirc = new SdrCircObj(OBJ_CIRC, aRect); -/*N*/ pList->NbcInsertObject(SetObjectAttr( pCirc, CHOBJID_DIAGRAM_AREA, TRUE, TRUE, &aAreaAttr)); -/*N*/ -/*N*/ //Descriptions zuletzt, da sie sonst verdeckt sind! -/*N*/ for(nRow=0;nRow<nRowCnt;nRow++) -/*N*/ { -/*N*/ if(pDescrGroups[nRow]) -/*N*/ { -/*?*/ pList->NbcInsertObject(pDescrGroups[nRow]); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ pGroup->GetSubList()->SetRectsDirty(); -/*N*/ -/*N*/ // Ein Kreisdiagramm soll man nur proportional Resizen koennen (vorerst) -/*N*/ SdrObjTransformInfoRec aLclInfo; -/*N*/ aLclInfo.bResizeFreeAllowed = FALSE; -/*N*/ aLclInfo.bResizePropAllowed = TRUE; -/*N*/ aLclInfo.bRotateFreeAllowed = FALSE; -/*N*/ aLclInfo.bRotate90Allowed = FALSE; -/*N*/ aLclInfo.bMirrorFreeAllowed = FALSE; -/*N*/ aLclInfo.bMirror45Allowed = FALSE; -/*N*/ aLclInfo.bMirror90Allowed = FALSE; -/*N*/ aLclInfo.bShearAllowed = FALSE; -/*N*/ pGroup->SetObjInfo(aLclInfo); -/*N*/ -/*N*/ Dirty2D (nRowCnt, nColCnt, pDescrLists, TRUE, pDescription); -/*N*/ -/*N*/ delete[] pTotal; -/*N*/ delete[] pDescription; -/*N*/ delete[] pDescrLists; -/*N*/ delete[] pRowLists; -/*N*/ delete[] pDescrGroups; -/*N*/ -/*N*/ -/*N*/ return pGroup; -/*N*/ } -/************************************************************************* -|* -|* XY-Diagramm erzeugen -|* -\************************************************************************/ -/*N*/ SdrObjGroup* ChartModel::Create2DXYChart(Rectangle aRect) -/*N*/ { -/*N*/ long nColCnt = GetColCount(); -/*N*/ long nRowCnt = GetRowCount(); -/*N*/ -/*N*/ long nCol, nRow; -/*N*/ -/*N*/ // ask for sorting -/*N*/ -/*N*/ BOOL bRepaint = FALSE; - -/*N*/ if( IsXYChart() && ! ISFLAGSET( nChartStatus, CHS_USER_NOQUERY ) ) // in this case ask for sorting -/*N*/ {DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*N*/ -/*N*/ SchObjGroup *pGroup; -/*N*/ SdrObjList *pList; -/*N*/ SdrObject *pObj; -/*N*/ SdrPathObj *pLineObject = NULL; -/*N*/ -/*N*/ CreateChartGroup (pGroup, pList); -/*N*/ -/*N*/ SdrPage* pPage = GetPage(0); -/*N*/ -/*N*/ Create2DBackplane(aRect, *pList, TRUE,CHSTACK_NONE); -/*N*/ -/*N*/ SdrObjList ** pRowLists = new SdrObjList*[nRowCnt]; -/*N*/ SdrObjList ** pStatLists = new SdrObjList*[nRowCnt]; -/*N*/ Size aLegendSize (((SvxFontWidthItem &) pLegendAttr->Get (EE_CHAR_FONTWIDTH)).GetWidth (), -/*N*/ ((SvxFontHeightItem &) pLegendAttr->Get (EE_CHAR_FONTHEIGHT)).GetHeight ()); -/*N*/ -/*N*/ -/*N*/ ChartDataDescription aDescr(nColCnt,nRowCnt,pList,this,bShowDataDescr); - - //#54884# Was soll das hier? //Create2DXYChart -/*N*/ OutputDevice * pRefDev = GetRefDevice(); -/*N*/ if(pRefDev) -/*N*/ aLegendSize = pRefDev->PixelToLogic (pRefDev->LogicToPixel (aLegendSize)); -/*N*/ else -/*N*/ OSL_FAIL("ChartModel: no RefDevice"); -/*N*/ -/*N*/ long nLegendHeight = aLegendSize.Height () * 9 / 10; -/*N*/ -/*N*/ pRowLists [0] = -/*N*/ pStatLists [0] = 0; -/*N*/ -/*N*/ XPolygon aPolygon ((unsigned short)nColCnt); -/*N*/ ::std::vector< ::std::pair< double, double > > aSplinePoints; -/*N*/ bool bIsSplineChart = ( IsSplineChart() != FALSE ); -/*N*/ -/*N*/ SfxItemSet aLineAttr(*pItemPool, XATTR_LINE_FIRST, XATTR_LINE_LAST, 0); -/*N*/ -/*N*/ ChartAxis* pAxis=pChartYAxis; -/*N*/ BOOL bLogarithmY = pAxis->IsLogarithm(); -/*N*/ BOOL bLogarithmX = pChartXAxis->IsLogarithm(); -/*N*/ -/*N*/ // for some reason the ChartRect is one pixel too small -/*N*/ Rectangle aClipRect( aRect ); -/*N*/ aClipRect.Right() += 1; -/*N*/ aClipRect.Top() -= 1; -/*N*/ -/*N*/ // Iterate in reverse order over the data series so that the first one is displayed -/*N*/ // in the front and the last one in the back. -/*N*/ for( nRow = nRowCnt-1; nRow >= 1; nRow-- ) -/*N*/ { -/*N*/ SchObjGroup* pRowGroup = (SchObjGroup*) CreateSimpleGroup (CHOBJID_DIAGRAM_ROWGROUP, TRUE, TRUE); -/*N*/ -/*N*/ pRowGroup->InsertUserData(new SchDataRow((short)nRow)); -/*N*/ pList->NbcInsertObject(pRowGroup); -/*N*/ pRowLists[nRow] = pRowGroup->GetSubList(); -/*N*/ -/*N*/ SchObjGroup* pStatGroup = (SchObjGroup*) CreateSimpleGroup (CHOBJID_DIAGRAM_STATISTICS_GROUP, TRUE, TRUE); -/*N*/ -/*N*/ pStatGroup->InsertUserData(new SchDataRow((short)nRow)); -/*N*/ pList->NbcInsertObject(pStatGroup); -/*N*/ pStatLists [nRow] = pStatGroup->GetSubList (); -/*N*/ -/*N*/ const SfxItemSet& rDataRowAttr = GetDataRowAttr(nRow); -/*N*/ -/*N*/ pAxis=GetAxisByUID(((const SfxInt32Item&)rDataRowAttr.Get(SCHATTR_AXIS)).GetValue()); -/*N*/ bLogarithmY = pAxis->IsLogarithm(); -/*N*/ -/*N*/ long nPoints = 0; -/*N*/ pLineObject = NULL; -/*N*/ - if( ((const SfxBoolItem &) rDataRowAttr.Get( SCHATTR_STAT_AVERAGE )).GetValue() ) - {DBG_BF_ASSERT(0, "STRIP"); } - -/*N*/ aSplinePoints.clear(); -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ SfxItemSet aDataPointAttr(rDataRowAttr);//#63904# -/*N*/ MergeDataPointAttr(aDataPointAttr,nCol,nRow); -/*N*/ -/*N*/ Point aPoint; -/*N*/ double fDataY = GetData(nCol, nRow, FALSE); -/*N*/ double fDataX = GetData(nCol, 0, FALSE); -/*N*/ -/*N*/ if (((fDataX != DBL_MIN) && (!bLogarithmX || (bLogarithmX && (fDataX > 0.0)))) && -/*N*/ ((fDataY != DBL_MIN) && (!bLogarithmY || (bLogarithmY && (fDataY > 0.0))))) -/*N*/ { -/*N*/ long nXPos = pChartXAxis->GetPos(fDataX); -/*N*/ long nYPos = pAxis->GetPos(fDataY); -/*N*/ -/*N*/ // expect nPoints to be 0 on first entry of the for loop -/*N*/ // insert the empty polygon now, so that symbols are painted over the line -/*N*/ if( nPoints == 0 && -/*N*/ IsLine( nRow )) -/*N*/ { -/*N*/ XPolyPolygon aSeriesPoly; -/*N*/ pLineObject = new SdrPathObj( OBJ_PLIN, aSeriesPoly ); -/*N*/ pRowLists[ nRow ]->NbcInsertObject( pLineObject); -/*N*/ } -/*N*/ aPolygon [(USHORT) nPoints].X () = nXPos; -/*N*/ aPolygon [(USHORT) nPoints].Y () = nYPos; -/*N*/ if( bIsSplineChart ) -/*N*/ { -/*N*/ aSplinePoints.push_back( -/*N*/ ::std::pair< double, double >( -/*N*/ static_cast< double >( nXPos ), -/*N*/ static_cast< double >( nYPos ))); -/*N*/ } -/*N*/ nPoints ++; -/*N*/ -/*N*/ aPoint.X () = nXPos; -/*N*/ aPoint.Y () = nYPos; -/*N*/ -/*N*/ // draw symbols only if they are contained in the diagrams boundrect -/*N*/ if( aClipRect.IsInside( aPoint ) ) -/*N*/ { -/*N*/ if(HasSymbols(nRow)) -/*N*/ { -/*N*/ pObj = CreateSymbol (aPoint, nRow, nCol, aDataPointAttr, nLegendHeight); -/*N*/ if(pObj) -/*N*/ { -/*N*/ pObj->InsertUserData(new SchObjectId(CHOBJID_DIAGRAM_DATA)); -/*N*/ pRowLists[nRow]->NbcInsertObject(pObj); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if ((SvxChartKindError) -/*?*/ ((const SfxInt32Item &) aDataPointAttr.Get (SCHATTR_STAT_KIND_ERROR)).GetValue () != CHERROR_NONE) -/*?*/ {DBG_BF_ASSERT(0, "STRIP"); } -/*N*/ -/*N*/ if(aDescr.Enabled()) -/*N*/ { -/*N*/ Point aPos(aPolygon[(USHORT)nPoints-1]); -/*N*/ aPos.Y () -= 150; -/*N*/ aDescr.Insert(nCol,nRow,aDataPointAttr,aPos,FALSE,CHADJUST_BOTTOM_CENTER,pAxis); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if(nPoints && IsLine(nRow)) -/*N*/ { -/*N*/ aPolygon.SetPointCount( nPoints ); -/*N*/ -/*N*/ // clear old items from last loop pass -/*N*/ aLineAttr.ClearItem(); -/*N*/ aLineAttr.Put(rDataRowAttr); -/*N*/ -/*N*/ if( nPoints > 1 ) -/*N*/ { -/*N*/ XPolyPolygon aSeriesPoly; -/*N*/ -/*N*/ if( bIsSplineChart ) -/*N*/ { -/*?*/ if ((eChartStyle == CHSTYLE_2D_CUBIC_SPLINE_XY) || (eChartStyle == CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY)) -/*?*/ {DBG_BF_ASSERT(0, "STRIP"); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ XPolygon aMeshPoly; -/*?*/ approxMesh( nGranularity, aMeshPoly, aPolygon, nPoints - 1, nSplineDepth ); -/*?*/ SchCalculationHelper::IntersectPolygonWithRectangle( -/*?*/ aMeshPoly, aClipRect, aSeriesPoly ); -/*?*/ } -/*?*/ -/*?*/ if( pLineObject ) -/*?*/ pLineObject->NbcSetPathPoly( aSeriesPoly ); -/*?*/ else -/*?*/ { -/*?*/ pLineObject = new SdrPathObj( OBJ_PLIN, aSeriesPoly ); -/*?*/ pRowLists[ nRow ]->NbcInsertObject( pLineObject); -/*?*/ } -/*?*/ } -/*N*/ else // series consits of lines -/*N*/ { -/*N*/ SchCalculationHelper::IntersectPolygonWithRectangle( aPolygon, aClipRect, aSeriesPoly ); -/*N*/ -/*N*/ if( pLineObject ) -/*N*/ pLineObject->NbcSetPathPoly( aSeriesPoly ); -/*N*/ else -/*N*/ { -/*?*/ pLineObject = new SdrPathObj( OBJ_PLIN, aSeriesPoly ); -/*?*/ pRowLists[ nRow ]->NbcInsertObject( pLineObject); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ pLineObject->InsertUserData( new SchObjectId( CHOBJID_DIAGRAM_ROWSLINE )); -/*N*/ pLineObject->InsertUserData( new SchDataRow( (short)nRow )); -/*N*/ -/*N*/ pLineObject->SetItemSet( aLineAttr); -/*N*/ -/*N*/ } -/*N*/ } - - // insert regression curve if necessary - // ------------------------------------ -/*N*/ if (((const SfxInt32Item &) rDataRowAttr.Get (SCHATTR_STAT_REGRESSTYPE)).GetValue () != CHREGRESS_NONE) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*N*/ } - -/*N*/ aDescr.Build(TRUE); -/*N*/ -/*N*/ if( bRepaint ) -/*?*/ pPage->SendRepaintBroadcast(); -/*N*/ -/*N*/ delete[] pRowLists; -/*N*/ delete[] pStatLists; -/*N*/ return pGroup; -/*N*/ } - - -/************************************************************************* -|* -|* Netzdiagramm erzeugen -|* -\************************************************************************/ - -/*N*/ SdrObjGroup* ChartModel::Create2DNetChart(Rectangle aRect) -/*N*/ { -/*N*/ //vorlaeufiger Hack, bis logarithmus-Ueberpruefung eingebaut (autokorrektur): -/*N*/ pChartXAxis->GetItemSet()->Put(SfxBoolItem(SCHATTR_AXIS_LOGARITHM,FALSE)); -/*N*/ pChartYAxis->GetItemSet()->Put(SfxBoolItem(SCHATTR_AXIS_LOGARITHM,FALSE)); -/*N*/ -/*N*/ //ToDo: vorlaeufig -/*N*/ SfxItemSet* pYAxisAttr=&GetAttr(CHOBJID_DIAGRAM_Y_AXIS); -/*N*/ -/*N*/ SchObjGroup *pGroup; -/*N*/ SdrObjList *pList; -/*N*/ SdrObject *pObj; -/*N*/ -/*N*/ CreateChartGroup (pGroup, pList); -/*N*/ -/*N*/ long nColCnt = GetColCount(); -/*N*/ long nRowCnt = GetRowCount(); -/*N*/ long nCol, nRow; -/*N*/ -/*N*/ BOOL bPercent = IsPercent(); -/*N*/ BOOL bStacked = IsStacked(); -/*N*/ -/*N*/ // bPercent => bStacked ... ersetzt: (bPercent || bStacked) durch bStacked -/*N*/ USHORT eStackMode = bStacked ? CHSTACK_MINMAX : CHSTACK_NONE; -/*N*/ -/*N*/ Size aYDescrSize; -/*N*/ SdrObjList ** pRowLists = new SdrObjList*[nRowCnt]; -/*N*/ SdrObjList ** pDescrLists = new SdrObjList*[nRowCnt]; -/*N*/ DataDescription* pDescription = NULL; -/*N*/ SdrObjList *pYAxisList = pChartYAxis->IsVisible() -/*N*/ ? CreateGroup (*pList, CHOBJID_DIAGRAM_Y_AXIS, 0) -/*N*/ : NULL; -/*N*/ SdrObjList *pXGridMainList = bShowXGridMain -/*N*/ ? CreateGroup (*pList, CHOBJID_DIAGRAM_X_GRID_MAIN_GROUP, 0) -/*N*/ : 0; -/*N*/ SdrObjList *pXGridHelpList = bShowXGridHelp -/*N*/ ? CreateGroup (*pList, CHOBJID_DIAGRAM_X_GRID_HELP_GROUP, 0) -/*N*/ : 0; -/*N*/ -/*N*/ XPolygon aDataLine (nColCnt + 1); -/*N*/ SfxItemSet aLineAttr(*pItemPool, XATTR_LINE_FIRST, XATTR_LINE_LAST, 0); -/*N*/ SfxItemSet aTextAttr(*pItemPool, nTextWhichPairs); -/*N*/ aTextAttr.Put(*pYAxisAttr); -/*N*/ -/*N*/ if (aRect.GetWidth() > aRect.GetHeight()) -/*N*/ { -/*N*/ aRect.Left() += (aRect.GetWidth() - aRect.GetHeight()) / 2; -/*N*/ aRect.Right() = aRect.Left() + aRect.GetHeight(); -/*N*/ } -/*N*/ else if (aRect.GetHeight() > aRect.GetWidth()) -/*N*/ { -/*?*/ aRect.Top() += (aRect.GetHeight() - aRect.GetWidth()) / 2; -/*?*/ aRect.Bottom() = aRect.Top() + aRect.GetWidth(); -/*N*/ } - -/*N*/ if (pChartYAxis->HasDescription()) -/*N*/ { -/*N*/ aYDescrSize = Size (((SvxFontWidthItem &) pYAxisTitleAttr->Get (EE_CHAR_FONTWIDTH)).GetWidth (), -/*N*/ ((SvxFontHeightItem &) pYAxisTitleAttr->Get (EE_CHAR_FONTHEIGHT)).GetHeight ()); -/*N*/ -/*N*/ aRect.Bottom () -= (aYDescrSize.Height () * 12) / 5; -/*N*/ aRect.Top () += (aYDescrSize.Height () * 12) / 5; -/*N*/ } - -/*N*/ long nLength = aRect.GetHeight () / 2; -/*N*/ long nOffsetX = aRect.Left () + aRect.GetWidth () / 2; -/*N*/ long nOffsetY = aRect.Top () + aRect.GetHeight () / 2; -/*N*/ double fAngleStep = F_PI * 2 / nColCnt; -/*N*/ long aOldPos = 0; - - -/*N*/ BOOL bSwitchColRow=IsDataSwitched(); -/*N*/ pChartYAxis->Initialise(aRect,bSwitchColRow,eStackMode,bPercent,TRUE); -/*N*/ pChartYAxis->CalcValueSteps(); -/*N*/ -/*N*/ Size aMaxValueSizeY = pChartYAxis->CalcMaxTextSize(CHTXTORIENT_STANDARD); -/*N*/ //nur zu test zwecken -/*N*/ -/*N*/ XPolygon aLine (2); -/*N*/ double fSteps = pChartYAxis->GetMax(); -/*N*/ double* fOldData = new double[nColCnt]; -/*N*/ double fAngle = F_PI / 2; -/*N*/ -/*N*/ Size aLegendSize (((SvxFontWidthItem &) pLegendAttr->Get (EE_CHAR_FONTWIDTH)).GetWidth (), -/*N*/ ((SvxFontHeightItem &) pLegendAttr->Get (EE_CHAR_FONTHEIGHT)).GetHeight ()); -/*N*/ -/*N*/ //#54884# Was soll das hier? Create2DNetChart -/*N*/ OutputDevice * pRefDev = GetRefDevice(); -/*N*/ if(pRefDev) -/*N*/ aLegendSize = pRefDev->PixelToLogic (pRefDev->LogicToPixel (aLegendSize)); -/*N*/ else -/*?*/ OSL_FAIL("ChartModel: no RefDevice"); -/*N*/ -/*N*/ long nLegendHeight = aLegendSize.Height () * 9 / 10; -/*N*/ -/*N*/ if (pChartYAxis->HasDescription()) -/*N*/ while (fSteps >= pChartYAxis->GetMin()) -/*N*/ { -/*N*/ double fLength = nLength * pChartYAxis->CalcFact(fSteps); -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ double fCos = cos (fAngle); -/*N*/ double fSin = sin (fAngle); -/*N*/ -/*N*/ aLine [1].X () = (long) (nOffsetX + fLength * fCos + nMarkLen * fSin); -/*N*/ aLine [1].Y () = (long) (nOffsetY - fLength * fSin + nMarkLen * fCos); -/*N*/ aLine [0].X () = (long) (nOffsetX + fLength * fCos - nMarkLen * fSin); -/*N*/ aLine [0].Y () = (long) (nOffsetY - fLength * fSin - nMarkLen * fCos); -/*N*/ -/*N*/ pYAxisList->NbcInsertObject(SetObjectAttr (new SdrPathObj(OBJ_PLIN, aLine), CHOBJID_LINE, -/*N*/ TRUE, TRUE, pAxisAttr)); -/*N*/ -/*N*/ if (fSteps == pChartYAxis->GetMax()) -/*N*/ { -/*N*/ Point aTextPos ((long) (nOffsetX + nLength * fCos), -/*N*/ (long) (nOffsetY - nLength * fSin)); -/*N*/ ChartAdjust eAdjust; -/*N*/ -/*N*/ if (fAngle > 0 && fAngle < F_PI / 4) -/*N*/ { -/*?*/ eAdjust = CHADJUST_CENTER_LEFT; -/*?*/ aTextPos.X () = (long) (nOffsetX + nLength * fCos + (aYDescrSize.Height () * 6) / 5); -/*N*/ } -/*N*/ else if (fAngle >= F_PI / 4 && fAngle <= 3 * F_PI / 4) -/*N*/ { -/*N*/ eAdjust = CHADJUST_BOTTOM_CENTER; -/*N*/ aTextPos.Y () = (long) (nOffsetY - nLength * fSin - (aYDescrSize.Height () * 6) / 5); -/*N*/ } -/*N*/ else if (fAngle > 3 * F_PI / 4 && fAngle <= 5 * F_PI / 4) -/*N*/ { -/*N*/ eAdjust = CHADJUST_CENTER_RIGHT; -/*N*/ aTextPos.X () = (long) (nOffsetX + nLength * fCos - (aYDescrSize.Height () * 6) / 5); -/*N*/ } -/*N*/ else if (fAngle > 5 * F_PI / 4 && fAngle <= 7 * F_PI / 4) -/*N*/ { -/*N*/ eAdjust = CHADJUST_TOP_CENTER; -/*N*/ aTextPos.Y () = (long) (nOffsetY - nLength * fSin + (aYDescrSize.Height () * 6) / 5); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ eAdjust = CHADJUST_CENTER_LEFT; -/*N*/ aTextPos.X () = (long) (nOffsetX + nLength * fCos + (aYDescrSize.Height () * 6) / 5); -/*N*/ } -/*N*/ -/*N*/ pYAxisList->NbcInsertObject(CreateTextObj(CHOBJID_TEXT, aTextPos, -/*N*/ ColText(nCol), -/*N*/ aTextAttr, -/*N*/ FALSE, eAdjust)); -/*N*/ } -/*N*/ -/*N*/ fAngle += fAngleStep; -/*N*/ } -/*N*/ -/*N*/ if (pChartYAxis->HasDescription()) -/*N*/ { -/*N*/ Color* pDummy = NULL; -/*N*/ String aNumStr; -/*N*/ Point aPos; -/*N*/ -/*N*/ pNumFormatter->GetOutputString((bPercent)?fSteps/100.0:fSteps, -/*N*/ GetNumFmt(CHOBJID_DIAGRAM_Y_AXIS,bPercent),aNumStr,&pDummy); -/*N*/ -/*N*/ aPos.X() = (long) (nOffsetX + nMarkLen); -/*N*/ aPos.Y() = (long) (nOffsetY - fLength); -/*N*/ -/*N*/ if (aPos.Y () - aMaxValueSizeY.Height () > aOldPos) -/*N*/ { -/*N*/ pYAxisList->NbcInsertObject(CreateTextObj(CHOBJID_TEXT, aPos, aNumStr, -/*N*/ aTextAttr, FALSE, CHADJUST_CENTER_LEFT)); -/*N*/ aOldPos = aPos.Y (); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if (pXGridMainList) -/*N*/ { -/*N*/ Rectangle aCircRect ((long) (nOffsetX - fLength), -/*N*/ (long) (nOffsetY - fLength), -/*N*/ (long) (nOffsetX + fLength), -/*N*/ (long) (nOffsetY + fLength)); -/*N*/ -/*N*/ SfxItemSet aCircAttr (*pItemPool, -/*N*/ XATTR_LINE_FIRST, XATTR_LINE_LAST, -/*N*/ XATTR_FILL_FIRST, XATTR_FILL_LAST, -/*N*/ 0); -/*N*/ -/*N*/ aCircAttr.Put (XLineColorItem (String (), -/*N*/ ((XLineColorItem &) pXGridMainAttr->Get (XATTR_LINECOLOR)).GetValue ())); -/*N*/ aCircAttr.Put (XFillColorItem (String (), -/*N*/ ((XFillColorItem &) pXGridMainAttr->Get (XATTR_FILLCOLOR)).GetValue ())); -/*N*/ aCircAttr.Put (XLineStyleItem (((XLineStyleItem &) pXGridMainAttr->Get (XATTR_LINESTYLE)). -/*N*/ GetValue ())); -/*N*/ aCircAttr.Put (XLineWidthItem (((XLineWidthItem &) pXGridMainAttr->Get (XATTR_LINEWIDTH)). -/*N*/ GetValue ())); -/*N*/ aCircAttr.Put (XFillStyleItem(XFILL_NONE)); -/*N*/ SdrCircObj* pCirc = new SdrCircObj( OBJ_CIRC, aCircRect ); -/*N*/ pCirc->SetModel( this ); -/*N*/ pXGridMainList->NbcInsertObject(SetObjectAttr( pCirc, -/*N*/ CHOBJID_DIAGRAM_NET, TRUE, TRUE, -/*N*/ &aCircAttr)); -/*N*/ } -/*N*/ -/*N*/ DecValue(fSteps, pChartYAxis->GetStep(), FALSE); -/*N*/ -/*N*/ if (pChartYAxis->GetStep() == 0.0) break; -/*N*/ } -/*N*/ -/*N*/ fSteps = pChartYAxis->GetMax(); -/*N*/ -/*N*/ if (pXGridHelpList) -/*?*/ while (fSteps >= pChartYAxis->GetMin()) -/*?*/ { -/*?*/ double fLength = nLength * pChartYAxis->CalcFact(fSteps); -/*?*/ -/*?*/ Rectangle aCircRect ((long) (nOffsetX - fLength), -/*?*/ (long) (nOffsetY - fLength), -/*?*/ (long) (nOffsetX + fLength), -/*?*/ (long) (nOffsetY + fLength)); -/*?*/ -/*?*/ SfxItemSet aCircAttr (*pItemPool, -/*?*/ XATTR_LINE_FIRST, XATTR_LINE_LAST, -/*?*/ XATTR_FILL_FIRST, XATTR_FILL_LAST, -/*?*/ 0); -/*?*/ -/*?*/ aCircAttr.Put (XLineColorItem (String (), -/*?*/ ((XLineColorItem &) pXGridHelpAttr->Get (XATTR_LINECOLOR)).GetValue ())); -/*?*/ aCircAttr.Put (XFillColorItem (String (), -/*?*/ ((XFillColorItem &) pXGridHelpAttr->Get (XATTR_FILLCOLOR)).GetValue ())); -/*?*/ aCircAttr.Put (XLineStyleItem (((XLineStyleItem &) pXGridHelpAttr->Get (XATTR_LINESTYLE)). -/*?*/ GetValue ())); -/*?*/ aCircAttr.Put (XLineWidthItem (((XLineWidthItem &) pXGridHelpAttr->Get (XATTR_LINEWIDTH)). -/*?*/ GetValue ())); -/*?*/ aCircAttr.Put (XFillStyleItem(XFILL_NONE)); -/*?*/ -/*?*/ SdrCircObj* pCirc = new SdrCircObj( OBJ_CIRC, aCircRect ); -/*?*/ pCirc->SetModel( this ); -/*?*/ pXGridHelpList->NbcInsertObject(SetObjectAttr( pCirc, -/*?*/ CHOBJID_DIAGRAM_X_GRID_HELP, TRUE, TRUE, -/*?*/ &aCircAttr)); -/*?*/ -/*?*/ DecValue(fSteps, pChartYAxis->GetStep(), FALSE); -/*?*/ -/*?*/ if (pChartYAxis->GetStep() == 0.0) break; -/*?*/ } -/*N*/ -/*N*/ fSteps = pChartYAxis->GetMin(); -/*N*/ -/*N*/ for (nRow = 0; nRow < nRowCnt; nRow++) -/*N*/ { -/*N*/ const SfxItemSet& rDataRowAttr = GetDataRowAttr(nRow); -/*N*/ Point aFirstPoint; -/*N*/ fAngle = F_PI / 2; -/*N*/ long nPoints = 0; -/*N*/ -/*N*/ SchObjGroup* pRowGroup = (SchObjGroup*) CreateSimpleGroup (CHOBJID_DIAGRAM_ROWGROUP, TRUE, TRUE); -/*N*/ -/*N*/ pRowGroup->InsertUserData(new SchDataRow((short)nRow)); -/*N*/ pList->NbcInsertObject(pRowGroup); -/*N*/ pRowLists[nRow] = pRowGroup->GetSubList(); -/*N*/ pDescrLists[nRow] = 0; -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ SfxItemSet aDataPointAttr(rDataRowAttr);//#63904# -/*N*/ MergeDataPointAttr(aDataPointAttr,nCol,nRow); -/*N*/ -/*N*/ long nIndex = nCol + nRow * nColCnt; -/*N*/ double fData = GetData(nCol, nRow, bPercent); -/*N*/ -/*N*/ if (pYAxisList) -/*N*/ { -/*N*/ if (!nRow) -/*N*/ { -/*N*/ aLine [0].X () = (long) (nOffsetX + nLength * cos (fAngle)); -/*N*/ aLine [0].Y () = (long) (nOffsetY - nLength * sin (fAngle)); -/*N*/ aLine [1].X () = nOffsetX; -/*N*/ aLine [1].Y () = nOffsetY; -/*N*/ -/*N*/ pYAxisList->NbcInsertObject(SetObjectAttr (new SdrPathObj(OBJ_PLIN, aLine), -/*N*/ CHOBJID_LINE, TRUE, TRUE, pYAxisAttr)); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ SvxChartDataDescr eDescr = ((const SvxChartDataDescrItem&)aDataPointAttr. -/*N*/ Get(SCHATTR_DATADESCR_DESCR)).GetValue(); -/*N*/ -/*N*/ if( (eDescr != CHDESCR_NONE) && bShowDataDescr) -/*N*/ { - /************************************************************** - * DataDescription erforderlich - **************************************************************/ -/*?*/ if (!pDescription) -/*?*/ { -/*?*/ // DataDescription noch nicht vorhanden -> erzeugen -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*?*/ } -/*?*/ -/*?*/ pDescription [nIndex].eDescr = eDescr; -/*?*/ pDescription [nIndex].bSymbol = ((const SfxBoolItem&)aDataPointAttr. -/*?*/ Get(SCHATTR_DATADESCR_SHOW_SYM)).GetValue(); -/*?*/ -/*?*/ if (!pDescrLists[nRow]) -/*?*/ { -/*?*/ SchObjGroup* pDescrGroup = (SchObjGroup*) CreateSimpleGroup (CHOBJID_DIAGRAM_DESCRGROUP, TRUE, TRUE); -/*?*/ -/*?*/ pDescrGroup->InsertUserData(new SchDataRow((short)nRow)); -/*?*/ pList->NbcInsertObject(pDescrGroup); -/*?*/ pDescrLists[nRow] = pDescrGroup->GetSubList(); -/*?*/ } -/*N*/ } -/*N*/ -/*N*/ if (bStacked && !nRow) fOldData[nCol] = pChartYAxis->GetOrigin(); -/*N*/ -/*N*/ if (fData != DBL_MIN) -/*N*/ { -/*N*/ if (bStacked && nRow) fData += fOldData[nCol]; -/*N*/ -/*N*/ double fLength = nLength * pChartYAxis->CalcFact(fData); -/*N*/ -/*N*/ aDataLine [(USHORT) nPoints].X () = (long) (nOffsetX + fLength * cos (fAngle)); -/*N*/ aDataLine [(USHORT) nPoints].Y () = (long) (nOffsetY - fLength * sin (fAngle)); -/*N*/ -/*N*/ if (!nCol) -/*N*/ { -/*N*/ aFirstPoint.X () = aDataLine [(USHORT) nPoints].X(); -/*N*/ aFirstPoint.Y () = aDataLine [(USHORT) nPoints].Y(); -/*N*/ } -/*N*/ -/*N*/ nPoints ++; -/*N*/ -/*N*/ if(HasSymbols(nRow)) -/*N*/ { -/*N*/ SdrObject *pNewObj = CreateSymbol (aDataLine[nPoints - 1], nRow, nCol, -/*N*/ (SfxItemSet &) rDataRowAttr, nLegendHeight); -/*N*/ if(pNewObj) -/*N*/ { -/*N*/ pNewObj->InsertUserData(new SchObjectId(CHOBJID_DIAGRAM_DATA)); -/*N*/ pRowLists[nRow]->NbcInsertObject(pNewObj); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ fOldData [nCol] = fData; -/*N*/ -/*N*/ if (pDescription) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if (nPoints) -/*N*/ { -/*?*/ for (long nFill = nPoints;nFill < nColCnt;nFill ++) -/*?*/ aDataLine [(USHORT) nFill] = aDataLine [(USHORT) nPoints - 1]; -/*?*/ -/*?*/ aLineAttr.Put(rDataRowAttr); -/*?*/ -/*?*/ pObj = new SdrPathObj(OBJ_PLIN, aDataLine); -/*?*/ pObj->InsertUserData(new SchObjectId (CHOBJID_DIAGRAM_ROWSLINE)); -/*?*/ pObj->InsertUserData(new SchDataRow((short)nRow)); -/*?*/ pRowLists[nRow]->NbcInsertObject(pObj,0); //#54870# Linie nach hinten -/*?*/ -/*?*/ pObj->SetItemSet(aLineAttr); -/*?*/ -/*?*/ nPoints = 0; -/*N*/ } -/*N*/ -/*N*/ if (pDescription) -/*N*/ { -/*?*/ pDescription [nIndex].fValue = DBL_MIN; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ fAngle += fAngleStep; -/*N*/ if (fAngle > 2 * F_PI) fAngle -= 2 * F_PI; -/*N*/ } -/*N*/ -/*N*/ if (nPoints) -/*N*/ { -/*N*/ for (long nFill = nPoints;nFill < nColCnt;nFill ++) -/*?*/ aDataLine [(USHORT) nFill] = aDataLine [(USHORT) nPoints - 1]; -/*N*/ -/*N*/ if (aFirstPoint.X () && aFirstPoint.Y ()) -/*N*/ { -/*N*/ aDataLine [(unsigned short)nColCnt].X () = aFirstPoint.X (); -/*N*/ aDataLine [(unsigned short)nColCnt].Y () = aFirstPoint.Y (); -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ aDataLine [(unsigned short)nColCnt].X () = aDataLine [nColCnt - 1].X (); -/*?*/ aDataLine [(unsigned short)nColCnt].Y () = aDataLine [nColCnt - 1].Y (); -/*N*/ } -/*N*/ -/*N*/ aLineAttr.Put(rDataRowAttr); -/*N*/ -/*N*/ pObj = new SdrPathObj(OBJ_PLIN, aDataLine); -/*N*/ pObj->InsertUserData(new SchObjectId (CHOBJID_DIAGRAM_ROWSLINE)); -/*N*/ pObj->InsertUserData(new SchDataRow((short)nRow)); -/*N*/ pRowLists[nRow]->NbcInsertObject(pObj,0);//#54870# hinter die Symbole mit der Linie -/*N*/ -/*N*/ pObj->SetItemSet(aLineAttr); -/*N*/ -/*N*/ } -/*N*/ -/*N*/ IncValue(fSteps, pChartYAxis->GetStep(), FALSE); -/*N*/ -/*N*/ if (pChartYAxis->GetStep() == 0.0) break; -/*N*/ } -/*N*/ -/*N*/ Dirty2D (nRowCnt, nColCnt, pDescrLists, TRUE/*FALSE*/, pDescription); -/*N*/ -/*N*/ delete[] pDescription; -/*N*/ delete[] pDescrLists; -/*N*/ delete[] pRowLists; -/*N*/ delete[] fOldData; -/*N*/ return pGroup; -/*N*/ } - -/************************************************************************* -|* -|* Frisiere die % auf 100% -|* -\************************************************************************/ - -/*N*/ void ChartModel::Dirty2D (long nRowCnt, -/*N*/ long nColCnt, -/*N*/ SdrObjList **pDescrLists, -/*N*/ BOOL bRowDescr, -/*N*/ DataDescription *pDescription) -/*N*/ { -/*N*/ if (!pDescription) -/*N*/ return; - -/*?*/ long nStart = IsXYChart() ? 1 : 0; -/*?*/ -/*?*/ if (bRowDescr) -/*?*/ { -/*?*/ for (long nCols = 0;nCols < nColCnt;nCols ++) -/*?*/ { -/*?*/ double fTotal = 0.0; -/*?*/ double fMax = 0.0; - long nRows = 0; -/*?*/ -/*?*/ // Calculate the total of all segements with percentage value -/*?*/ for (nRows = nStart;nRows < nRowCnt;nRows ++) -/*?*/ if (pDescrLists [nRows]) -/*?*/ { -/*?*/ long nIndex= nCols + nRows * nColCnt; -/*?*/ if ((pDescription [nIndex].eDescr == CHDESCR_PERCENT) || -/*?*/ (pDescription [nIndex].eDescr == CHDESCR_TEXTANDPERCENT)) -/*?*/ { -/*?*/ double fTemp = pDescription [nIndex].fValue; -/*?*/ -/*?*/ if (fTemp != DBL_MIN) -/*?*/ { -/*?*/ fTotal += fTemp; -/*?*/ if (fMax < fTemp) -/*?*/ fMax = fTemp; -/*?*/ } -/*?*/ } -/*?*/ } -/*?*/ -/*?*/ BOOL bIsDirty = FALSE; -/*?*/ -/*?*/ for (nRows = nStart;nRows < nRowCnt;nRows ++) -/*?*/ if (pDescrLists[nRows]) -/*?*/ { -/*?*/ long nIndex = nCols + nRows * nColCnt;// long nIndex = nRows + nCols * nRowCnt; -/*?*/ -/*?*/ if (!bIsDirty) -/*?*/ if ((pDescription [nIndex].eDescr == CHDESCR_PERCENT) || -/*?*/ (pDescription [nIndex].eDescr == CHDESCR_TEXTANDPERCENT)) -/*?*/ if (fTotal > 100.0000001) -/*?*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*?*/ } -/*?*/ -/*?*/ if (pDescription [nIndex].fValue != DBL_MIN) -/*?*/ if( pDescription[nIndex].pLabelObj ) -/*?*/ pDescrLists[nRows]->NbcInsertObject( pDescription[nIndex].pLabelObj ); -/*?*/ } -/*?*/ } -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ for (long nRows = nStart;nRows < nRowCnt; nRows ++) -/*?*/ { -/*?*/ if ( ! pDescrLists[nRows]) -/*?*/ continue; -/*?*/ -/*?*/ double fTotal = 0.0; -/*?*/ double fMax = 0.0; - long nCols = 0; -/*?*/ -/*?*/ // Calculate the total of all segements with a percentage value -/*?*/ for (nCols = 0;nCols < nColCnt;nCols ++) -/*?*/ { -/*?*/ long nIndex = nCols + nRows * nColCnt; -/*?*/ if ((pDescription [nIndex].eDescr == CHDESCR_PERCENT) || -/*?*/ (pDescription [nIndex].eDescr == CHDESCR_TEXTANDPERCENT)) -/*?*/ { -/*?*/ double fTemp = pDescription [nIndex].fValue; -/*?*/ -/*?*/ if (fTemp != DBL_MIN) -/*?*/ { -/*?*/ fTotal += fTemp; -/*?*/ if (fMax < fTemp) -/*?*/ fMax = fTemp; -/*?*/ } -/*?*/ } -/*?*/ } -/*?*/ -/*?*/ BOOL bIsDirty = FALSE; -/*?*/ -/*?*/ for (nCols = 0;nCols < nColCnt;nCols ++) -/*?*/ { -/*?*/ long nIndex = nCols + nRows * nColCnt; -/*?*/ -/*?*/ if (!bIsDirty) -/*?*/ if ((pDescription [nIndex].eDescr == CHDESCR_PERCENT) || -/*?*/ (pDescription [nIndex].eDescr == CHDESCR_TEXTANDPERCENT)) -/*?*/ if (fTotal > 100.0000001) -/*?*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*?*/ } -/*?*/ -/*?*/ if (pDescription[ nIndex ].fValue != DBL_MIN) -/*?*/ if( pDescription[ nIndex ].pLabelObj ) -/*?*/ pDescrLists[nRows]->NbcInsertObject( pDescription[ nIndex ].pLabelObj ); -/*?*/ } -/*?*/ } -/*?*/ } -/*N*/ } - -/************************************************************************* -|* -|* Erstelle Kreissegment -|* -\************************************************************************/ -/*N*/ SdrObject *ChartModel::CreatePieSegment(SfxItemSet &rAttr, -/*N*/ Rectangle &rRect, -/*N*/ long nCol, -/*N*/ long nRow, -/*N*/ long nStartAngle, -/*N*/ long nEndAngle, -/*N*/ long nCnt) -/*N*/ { -/*N*/ SdrObject *pObj; -/*N*/ -/*N*/ // BM: Attention: Small angles are treated as equal, if they are equal -/*N*/ // after divided by 10. That is because that is also done in the -/*N*/ // drawing layer. Giving angles which differ by 1 causes the creation -/*N*/ // of a full circle. -/*N*/ -/*N*/ if( nCnt == 1 ) // only one datarow => whole circle -/*N*/ { -/*?*/ pObj = new SdrCircObj( OBJ_CIRC, rRect ); -/*?*/ pObj->SetModel( this ); -/*?*/ SetObjectAttr( pObj, CHOBJID_DIAGRAM_DATA, TRUE, TRUE, &rAttr); -/*N*/ } -/*N*/ else if( (nStartAngle/10) - (nEndAngle/10) ) // create pie segment -/*N*/ { -/*N*/ pObj = new SdrCircObj( OBJ_SECT, rRect, nStartAngle, nEndAngle ); -/*N*/ pObj->SetModel( this ); -/*N*/ SetObjectAttr( pObj, CHOBJID_DIAGRAM_DATA, TRUE, TRUE, &rAttr ); -/*N*/ } -/*N*/ else // the segment is treated as line -/*N*/ { -/*?*/ pObj = new SdrCircObj( OBJ_SECT, rRect, nStartAngle, nStartAngle ); -/*?*/ pObj->SetModel( this ); -/*?*/ SetObjectAttr( pObj, CHOBJID_DIAGRAM_DATA, TRUE, TRUE, &rAttr ); -/*N*/ } -/*N*/ pObj->InsertUserData(new SchDataPoint((short)nCol, (short)nRow)); -/*N*/ return pObj; -/*N*/ } - -/************************************************************* -|* -|* create donut segment - same as circle segment for now -|* -\*************************************************************/ -/*N*/ SdrObject* ChartModel::CreateDonutSegment( SfxItemSet& aAttr, -/*N*/ Rectangle& aRect, ULONG /*nWidth*/, -/*N*/ long nCol, long nRow, -/*N*/ long nStartAngle, long nEndAngle, -/*N*/ long nCount) -/*N*/ { -/*N*/ SdrObject* pObj; -/*N*/ if( nStartAngle > nEndAngle ) -/*N*/ nStartAngle += 36000; -/*N*/ -/*N*/ if( nCount==1 || nStartAngle==nEndAngle ) // we have to paint complete ring -/*N*/ { -/*?*/ pObj = new SdrCircObj( OBJ_CIRC, aRect ); -/*?*/ pObj->SetModel( this ); -/*?*/ SetObjectAttr( pObj, CHOBJID_DIAGRAM_DATA, TRUE, TRUE, &aAttr ); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ pObj = new SdrCircObj( OBJ_SECT, aRect, nStartAngle, nEndAngle ); -/*N*/ pObj->SetModel( this ); -/*N*/ SetObjectAttr( pObj, CHOBJID_DIAGRAM_DATA, TRUE, TRUE, &aAttr ); -/*N*/ } -/*N*/ pObj->InsertUserData( new SchDataPoint( (short)nCol, (short)nRow )); -/*N*/ return pObj; -/*N*/ } - -/************************************************************************* -|* -|* Objektgruppe erzeugen -|* -\************************************************************************/ -/*N*/ SdrRectObj *ChartModel::CreateRect (Rectangle &rRect,long nCol,long nRow,SfxItemSet &rAttr) -/*N*/ { -/*N*/ SdrRectObj* pRectObj = new SdrRectObj( rRect ); -/*N*/ pRectObj->SetModel( this ); -/*N*/ SetObjectAttr( pRectObj, CHOBJID_DIAGRAM_DATA, TRUE, TRUE, &rAttr ); -/*N*/ pRectObj->InsertUserData(new SchDataPoint((short) nCol, (short) nRow)); -/*N*/ return pRectObj; -/*N*/ } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chtmod3d.cxx b/binfilter/bf_sch/source/core/sch_chtmod3d.cxx deleted file mode 100644 index 92b0b7a98..000000000 --- a/binfilter/bf_sch/source/core/sch_chtmod3d.cxx +++ /dev/null @@ -1,2089 +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. - * - ************************************************************************/ - -#define RAD2CDEG(fAngle) ( (long)(((fAngle)*18000.0/F_PI)+36000.0)%36000 ) - - - -#include "schattr.hxx" -#define ITEMID_ADJUST EE_PARA_JUST - -#ifndef _SVX_CHRTITEM_HXX //autogen -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT - -#include <bf_svtools/eitem.hxx> - -#endif - -#include <globfunc.hxx> -#include "axisid.hxx" -#include "chtscene.hxx" - -#undef ITEMID_COLOR // Defined in svx3ditems.hxx -#define ITEMID_COLOR EE_CHAR_COLOR - -#include <bf_svx/svdocirc.hxx> -#include "math.h" -#include "glob.hrc" -#include "float.h" - -#ifndef _ZFORLIST_HXX //autogen -#ifndef _ZFORLIST_DECLARE_TABLE -#define _ZFORLIST_DECLARE_TABLE -#endif -#include <bf_svtools/zforlist.hxx> -#endif -#include <bf_svx/svdopath.hxx> -#include <bf_svx/xlnwtit.hxx> - -#include "pairs.hxx" -#include "chmod3d.hxx" -#include "chaxis.hxx" -#include "chdescr.hxx" -#define FIXED_SIZE_FOR_3D_CHART_VOLUME (10000) - -namespace binfilter { - -/************************************************************************* -|* -|* Erzeugt alle 3d-Achsentitel und setzt sie sofort ins Diagramm -|* Positioniert werden sie von der Chartszene -|* -\************************************************************************/ - -/*N*/ void ChartModel::CreateAndInsert3DAxesTitles (Rectangle &rRect, BOOL bSwitchColRow) -/*N*/ { -/*N*/ SdrTextObj *pXAxisTitleObj = NULL; -/*N*/ SdrTextObj *pYAxisTitleObj = NULL; -/*N*/ SdrTextObj *pZAxisTitleObj = NULL; -/*N*/ -/*N*/ if (bShowXAxisTitle) -/*N*/ { -/*N*/ pXAxisTitleObj = CreateTitle (pXAxisTitleAttr, CHOBJID_DIAGRAM_TITLE_X_AXIS, -/*N*/ bSwitchColRow,aXAxisTitle, -/*N*/ FALSE, &eAdjustXAxesTitle); -/*N*/ if (GetAdjustMarginsForXAxisTitle()) -/*N*/ { -/*N*/ if (bSwitchColRow) -/*N*/ rRect.Left() += GetOutputSize(*pXAxisTitleObj).Width() + 200; -/*N*/ else -/*N*/ rRect.Bottom() -= GetOutputSize(*pXAxisTitleObj).Height() + 200; -/*N*/ } -/*N*/ } -/*N*/ if (bShowYAxisTitle) -/*N*/ { -/*N*/ pYAxisTitleObj = CreateTitle (pYAxisTitleAttr, CHOBJID_DIAGRAM_TITLE_Y_AXIS, -/*N*/ bSwitchColRow, aYAxisTitle, -/*N*/ TRUE, &eAdjustYAxesTitle); -/*N*/ if (GetAdjustMarginsForYAxisTitle()) -/*N*/ { -/*N*/ if (bSwitchColRow) -/*N*/ rRect.Bottom() -= GetOutputSize(*pYAxisTitleObj).Height() + 200; -/*N*/ else -/*N*/ rRect.Left() += GetOutputSize(*pYAxisTitleObj).Width() + 200; -/*N*/ } -/*N*/ } -/*N*/ if (bShowZAxisTitle) -/*N*/ { -/*N*/ pZAxisTitleObj = CreateTitle (pZAxisTitleAttr, CHOBJID_DIAGRAM_TITLE_Z_AXIS, -/*N*/ bSwitchColRow,aZAxisTitle, FALSE, &eAdjustZAxesTitle); -/*N*/ if( GetAdjustMarginsForZAxisTitle()) -/*N*/ { -/*N*/ rRect.Right() -= GetOutputSize(*pZAxisTitleObj).Width() + 200; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ SdrPage* pPage=GetPage(0); -/*N*/ if (pXAxisTitleObj) pPage->NbcInsertObject( pXAxisTitleObj ); -/*N*/ if (pYAxisTitleObj) pPage->NbcInsertObject( pYAxisTitleObj ); -/*N*/ if (pZAxisTitleObj) pPage->NbcInsertObject( pZAxisTitleObj ); -/*N*/ -/*N*/ // this should resize the scene according to the space needed -/*N*/ // by the titles. However this results in strange effects like -/*N*/ // constant resizing until the scene has 0 size and also the title -/*N*/ // objects disappear when being moved (?). -/*N*/ // GetScene()->NbcSetSnapRect( rRect ); -/*N*/ } - -/************************************************************************* -|* -|* 3D-Rueckwaende mit Unterteilung und Beschriftung erzeugen -|* -\************************************************************************/ -/*N*/ void ChartModel::Create3DBackplanes (Rectangle &rRect, -/*N*/ Vector3D aPos, -/*N*/ Vector3D aSizeVec, -/*N*/ ChartScene &rScene, -/*N*/ BOOL bPartDescr, -/*N*/ BOOL bXLogarithm, -/*N*/ BOOL bYLogarithm, -/*N*/ BOOL bZLogarithm, -/*N*/ USHORT eStackMode, -/*N*/ BOOL bPercent, -/*N*/ BOOL bFlatChart, -/*N*/ BOOL bSwitchColRow) -/*N*/ { -/*N*/ //vorlaeufiger Hack, bis logarithmus-Ueberpruefung eingebaut (autokorrektur): -/*N*/ pChartXAxis->GetItemSet()->Put(SfxBoolItem(SCHATTR_AXIS_LOGARITHM,bXLogarithm)); -/*N*/ pChartYAxis->GetItemSet()->Put(SfxBoolItem(SCHATTR_AXIS_LOGARITHM,bYLogarithm)); -/*N*/ pChartZAxis->GetItemSet()->Put(SfxBoolItem(SCHATTR_AXIS_LOGARITHM,bZLogarithm)); -/*N*/ -/*N*/ String aNumStr; -/*N*/ -/*N*/ E3dObject* pXGridMainGroup = bShowXGridMain -/*N*/ ? Create3DObject (CHOBJID_DIAGRAM_X_GRID_MAIN_GROUP) -/*N*/ : 0; -/*N*/ E3dObject* pYGridMainGroup = bShowYGridMain -/*N*/ ? Create3DObject (CHOBJID_DIAGRAM_Y_GRID_MAIN_GROUP) -/*N*/ : 0; -/*N*/ E3dObject* pZGridMainGroup = bShowZGridMain -/*N*/ ? Create3DObject (CHOBJID_DIAGRAM_Z_GRID_MAIN_GROUP) -/*N*/ : 0; -/*N*/ E3dObject* pXGridHelpGroup = bShowXGridHelp -/*N*/ ? Create3DObject (CHOBJID_DIAGRAM_X_GRID_HELP_GROUP) -/*N*/ : 0; -/*N*/ E3dObject* pYGridHelpGroup = bShowYGridHelp -/*N*/ ? Create3DObject (CHOBJID_DIAGRAM_Y_GRID_HELP_GROUP) -/*N*/ : 0; -/*N*/ E3dObject* pZGridHelpGroup = bShowZGridHelp -/*N*/ ? Create3DObject (CHOBJID_DIAGRAM_Z_GRID_HELP_GROUP) -/*N*/ : 0; -/*N*/ E3dObject* pXAxisGroup = pChartXAxis->IsVisible()|| pChartXAxis->HasDescription() //#47500# -/*N*/ ? Create3DAxisObj( CHOBJID_DIAGRAM_X_AXIS ) -/*N*/ : 0; -/*N*/ E3dObject* pYAxisGroup = pChartYAxis->IsVisible() || pChartYAxis->HasDescription() //#47500# -/*N*/ ? Create3DAxisObj( CHOBJID_DIAGRAM_Y_AXIS ) -/*N*/ : 0; -/*N*/ E3dObject* pZAxisGroup = pChartZAxis->IsVisible() || pChartZAxis->HasDescription() //#47500# -/*N*/ ? Create3DAxisObj( CHOBJID_DIAGRAM_Z_AXIS ) -/*N*/ : 0; -/*N*/ Polygon3D aRect3D; -/*N*/ -/*N*/ pChartXAxis->Initialise(rRect,bSwitchColRow,eStackMode,bPercent,FALSE); -/*N*/ pChartYAxis->Initialise(rRect,bSwitchColRow,eStackMode,bPercent,FALSE); -/*N*/ pChartZAxis->Initialise(rRect,bSwitchColRow,eStackMode,bPercent,FALSE); -/*N*/ -/*N*/ pChartXAxis->CalcValueSteps(); -/*N*/ pChartYAxis->CalcValueSteps(); -/*N*/ pChartZAxis->CalcValueSteps(); -/*N*/ -/*N*/ //Vorlaeufige Notloesung, entsprechende Stellen sollen noch geaendert werden, daher bitte kein Search&Repleace statt der #defs! -/*N*/ #define fOriginY pChartYAxis->GetOrigin() -/*N*/ #define fMinValueY pChartYAxis->GetMin() -/*N*/ #define fMaxValueY pChartYAxis->GetMax() -/*N*/ #define fValueStepMainY pChartYAxis->GetStep() -/*N*/ #define fValueStepHelpY pChartYAxis->GetHelpStep() -/*N*/ -/*N*/ //ToDo: vorlaeufig -/*N*/ SfxItemSet* pXAxisAttr=&GetAttr(CHOBJID_DIAGRAM_X_AXIS); -/*N*/ SfxItemSet* pYAxisAttr=&GetAttr(CHOBJID_DIAGRAM_Y_AXIS); -/*N*/ SfxItemSet* pZAxisAttr=&GetAttr(CHOBJID_DIAGRAM_Z_AXIS); -/*N*/ -/*N*/ SvxChartTextOrient eDescrOrient = ((const SvxChartTextOrientItem&)pXAxisAttr->Get(SCHATTR_TEXT_ORIENT)).GetValue(); -/*N*/ SvxChartTextOrient eValueOrient = ((const SvxChartTextOrientItem&)pYAxisAttr->Get(SCHATTR_TEXT_ORIENT)).GetValue(); -/*N*/ -/*N*/ pChartYAxis->CalcMaxTextSize(eValueOrient); -/*N*/ pChartXAxis->CalcMaxTextSize(eDescrOrient); -/*N*/ -/*N*/ CalcMaxDescrSize( TRUE, eValueOrient, bPercent, CHAXIS_AXIS_Y ); -/*N*/ CalcMaxDescrSize( FALSE, eDescrOrient, bPercent, CHAXIS_AXIS_X ); -/*N*/ -/*N*/ short nV, i; -/*N*/ -/*N*/ long nRowCnt = bFlatChart -/*N*/ ? 1 -/*N*/ : GetRowCount(); -/*N*/ long nBackColCnt = (bPartDescr || GetColCount() > 1) -/*N*/ ? GetColCount() -/*N*/ : GetColCount() + 1; -/*N*/ long nColumnCnt = bPartDescr -/*N*/ ? nBackColCnt -/*N*/ : nBackColCnt - 1; -/*N*/ -/*N*/ -/*N*/ // FG: Diese Variable ist ein reiner Zwischenspeicher damit in der Chartscene bei FitInSnapRect -/*N*/ // die Achsentitel gemaess dieses Parameters gesetzt werden koennen. -/*N*/ bSwitch3DColRow = bSwitchColRow; -/*N*/ -/*N*/ aXDescrList.clear(); -/*N*/ aYDescrList.clear(); -/*N*/ aZDescrList.clear(); -/*N*/ -/*N*/ E3dDefaultAttributes aDefltAttr3D; -/*N*/ -/*N*/ Matrix4D aShift; -/*N*/ aShift.Translate(-(aSizeVec/500.0));//Wände etwas verschieben... -/*N*/ -/*N*/ const double fFloorWidth = 100.0; -/*N*/ -/*N*/ for (nV = 0; nV < 3; nV++) -/*N*/ { -/*N*/ switch (nV) -/*N*/ { -/*N*/ case 0: // X-Achse , XY-Ebene (WALL hinten) -/*N*/ case 1: // Y-Achse , YZ-Ebene (WALL seitlich) -/*N*/ { -/*N*/ aRect3D[0] = aPos; -/*N*/ aPos[nV] += aSizeVec[nV]; //nV=0: X(), sonst Y() -/*N*/ aRect3D[1] = aPos; -/*N*/ aPos[nV + 1] += aSizeVec[nV + 1]; //nV=0: Y(), sonst Z() -/*N*/ aRect3D[2] = aPos; -/*N*/ aPos[nV] -= aSizeVec[nV]; -/*N*/ aRect3D[3] = aPos; -/*N*/ aPos[nV + 1] -= aSizeVec[nV + 1]; -/*N*/ -/*N*/ E3dPolygonObj *pWallObj = new SchE3dPolygonObj(aDefltAttr3D, aRect3D); -/*N*/ -/*N*/ pWallObj->SetModel (this); -/*N*/ pWallObj->InsertUserData(new SchObjectId(CHOBJID_DIAGRAM_WALL)); -/*N*/ rScene.Insert3DObj(pWallObj); -/*N*/ -/*N*/ pWallObj->SetItemSet(*pDiagramWallAttr); -/*N*/ -/*N*/ pWallObj->NbcSetTransform(aShift); -/*N*/ -/*N*/ if (!nV) -/*N*/ { -/*N*/ // X-Achse zeichnen -/*N*/ Vector3D aLine3D [2] = { aRect3D [0], aRect3D [1] }; -/*N*/ -/*N*/ //#47500# -/*N*/ if (pXAxisGroup && pChartXAxis->IsVisible()) -/*N*/ { -/*N*/ Create3DPolyObject (pXAxisAttr, new SchE3dPolygonObj (aDefltAttr3D, aLine3D[0], aLine3D[1]), -/*N*/ CHOBJID_LINE, pXAxisGroup); -/*N*/ } -/*N*/ -/*N*/ if( pYGridMainGroup || pYGridHelpGroup ) -/*N*/ { -/*N*/ // Y-Anteile -/*N*/ if (bSwitchColRow) -/*N*/ { -/*N*/ Vector3D aLclLine3D [2] = { aRect3D [0], aRect3D [1] }; -/*N*/ long nStepMainY = (long) aSizeVec.Y () / nColumnCnt; -/*N*/ long nStepHelpY = nStepMainY / 2; -/*N*/ -/*N*/ // hauptgitter auf der X-Ebene, parallel zur X-Achse -/*N*/ for (i = 0; i <= nColumnCnt; i++) -/*N*/ { -/*N*/ aLclLine3D[0].Y() = -/*N*/ aLclLine3D[1].Y() = aPos.Y() + nStepMainY * i; -/*N*/ if( pYGridMainGroup ) -/*N*/ Create3DPolyObject (pYGridMainAttr, new SchE3dPolygonObj (aDefltAttr3D, aLclLine3D[0], aLclLine3D[1]), -/*N*/ CHOBJID_DIAGRAM_Y_GRID_MAIN, pYGridMainGroup); -/*N*/ -/*N*/ // hilfsgitter auf der X-Ebene, parallel zur X-Achse -/*N*/ if (pYGridHelpGroup && (i < nColumnCnt)) -/*N*/ { -/*?*/ aLclLine3D [0].Y () += nStepHelpY; -/*?*/ aLclLine3D [1].Y () += nStepHelpY; -/*?*/ Create3DPolyObject (pYGridHelpAttr, new SchE3dPolygonObj (aDefltAttr3D, aLclLine3D[0], aLclLine3D[1]), -/*?*/ CHOBJID_DIAGRAM_Y_GRID_HELP, pYGridHelpGroup); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ aLine3D [0] = aRect3D[0]; -/*N*/ aLine3D [1] = aRect3D[3]; -/*N*/ -/*N*/ long nStepMainX = (long) aSizeVec.X () / nColumnCnt; -/*N*/ long nStepHelpX = nStepMainX / 2; -/*N*/ -/*N*/ // hauptgitter auf der X-Ebene, parallel zur Y-Achse -/*N*/ for (i = 0; i <= nColumnCnt; i++) -/*N*/ { -/*N*/ aLine3D[0].X() = -/*N*/ aLine3D[1].X() = aPos.X() + nStepMainX * i; -/*N*/ if( pYGridMainGroup ) -/*N*/ Create3DPolyObject (pYGridMainAttr, new SchE3dPolygonObj (aDefltAttr3D, aLine3D[0], aLine3D[1]), -/*N*/ CHOBJID_DIAGRAM_Y_GRID_MAIN, pYGridMainGroup); -/*N*/ -/*N*/ // hilfsgitter auf der X-Ebene, parallel zur Y-Achse -/*N*/ if (pYGridHelpGroup && (i < nColumnCnt)) -/*N*/ { -/*?*/ aLine3D [0].X () += nStepHelpX; -/*?*/ aLine3D [1].X () += nStepHelpX; -/*?*/ Create3DPolyObject (pYGridHelpAttr, new SchE3dPolygonObj (aDefltAttr3D, aLine3D[0], aLine3D[1]), -/*?*/ CHOBJID_DIAGRAM_Y_GRID_HELP, pYGridHelpGroup); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // Y-Achse zeichnen -/*N*/ Vector3D aLine3D [2] = { aRect3D [0], aRect3D [1] }; -/*N*/ -/*N*/ // Z-Anteile -/*N*/ //#47500# -/*N*/ if (pYAxisGroup && pChartYAxis->IsVisible()) Create3DPolyObject (pYAxisAttr, new SchE3dPolygonObj (aDefltAttr3D, aLine3D[0], aLine3D[1]), -/*N*/ CHOBJID_LINE, pYAxisGroup); -/*N*/ -/*N*/ // hauptgitter auf der Z-Ebene, parallel zur Z-Achse -/*N*/ if( pZGridMainGroup || pZGridHelpGroup ) -/*N*/ { -/*N*/ Vector3D aLclLine3D [2] = { aRect3D[2], aRect3D[3] }; -/*N*/ long nStepMainZ = (long) aSizeVec.Z () / nRowCnt; -/*N*/ long nStepHelpZ = nStepMainZ / 2; -/*N*/ -/*N*/ BOOL bCreateGridLine = ( (aLclLine3D[ 0 ].X() != aLclLine3D[ 1 ].X()) || -/*N*/ (aLclLine3D[ 0 ].Y() != aLclLine3D[ 1 ].Y()) ); -/*N*/ // Z() values become equal in the for loop -/*N*/ // => start and end points would be equal if !bCreateGridLine -/*N*/ -/*N*/ for (i = 0; i <= nRowCnt; i++) -/*N*/ { -/*N*/ aLclLine3D[0].Z() = -/*N*/ aLclLine3D[1].Z() = aPos.Z() + nStepMainZ * i; -/*N*/ if( pZGridMainGroup && bCreateGridLine ) -/*N*/ Create3DPolyObject( pZGridMainAttr, new SchE3dPolygonObj( aDefltAttr3D, aLclLine3D[0], aLclLine3D[1] ), -/*N*/ CHOBJID_DIAGRAM_Z_GRID_MAIN, pZGridMainGroup ); -/*N*/ -/*N*/ // hilfsgitter auf der Z-Ebene, parallel zur Z-Achse -/*N*/ if (pZGridHelpGroup && (i < nRowCnt)) -/*N*/ { -/*?*/ aLclLine3D[0].Z() += nStepHelpZ; -/*?*/ aLclLine3D[1].Z() += nStepHelpZ; -/*?*/ if( bCreateGridLine ) -/*?*/ Create3DPolyObject( pZGridHelpAttr, new SchE3dPolygonObj( aDefltAttr3D, aLclLine3D[0], aLclLine3D[1] ), -/*?*/ CHOBJID_DIAGRAM_Z_GRID_HELP, pZGridHelpGroup ); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ Vector3D aLine3D [2] = { aRect3D[0], aRect3D[(nV || (!nV && bSwitchColRow)) -/*N*/ ? 3 -/*N*/ : 1] }; -/*N*/ double fAct = fMinValueY; -/*N*/ -/*N*/ SfxItemSet aYTextAttr ((const SfxItemSet &) *pYAxisAttr); -/*N*/ aYTextAttr.Put(XLineStyleItem (XLINE_NONE)); -/*N*/ aYTextAttr.Put(XLineWidthItem (0)); -/*N*/ -/*N*/ // create Y grid. Attention: Some variables are called XGrid... -/*N*/ if (fMinValueY != fMaxValueY) -/*N*/ while (fAct <= fMaxValueY) -/*N*/ { -/*N*/ double fFact = pChartYAxis->CalcFact(fAct); -/*N*/ -/*N*/ if (bSwitchColRow) -/*N*/ { -/*N*/ // create major gridline -/*N*/ aLine3D[0].X() = aLine3D[1].X() = fFact * aSizeVec.X(); -/*N*/ -/*N*/ if (pXGridMainGroup) -/*N*/ Create3DPolyObject(pXGridMainAttr, new SchE3dPolygonObj(aDefltAttr3D, -/*N*/ aLine3D[0], aLine3D[1]),CHOBJID_DIAGRAM_X_GRID_MAIN,pXGridMainGroup); -/*N*/ -/*N*/ if (pYAxisGroup && pChartYAxis->HasDescription() && nV) -/*N*/ { -/*N*/ Color *pTextColor = NULL; -/*N*/ SvxColorItem *pOldTextColor = NULL; -/*N*/ -/*N*/ pNumFormatter->GetOutputString((bPercent)?fAct/100.0:fAct, -/*N*/ GetNumFmt(CHOBJID_DIAGRAM_Y_AXIS,bPercent), aNumStr, &pTextColor); -/*N*/ -/*N*/ if( pTextColor ) // BM #60999# -/*N*/ { -/*?*/ pOldTextColor = (SvxColorItem*)(aYTextAttr.GetItem( EE_CHAR_COLOR )); -/*?*/ aYTextAttr.Put(SvxColorItem( *pTextColor )); -/*N*/ } -/*N*/ -/*N*/ SdrTextObj *pTextObj = CreateTextObj(CHOBJID_TEXT, Point (),aNumStr, -/*N*/ aYTextAttr, FALSE,CHADJUST_TOP_RIGHT); -/*N*/ -/*N*/ if( pOldTextColor ) -/*N*/ { -/*?*/ aYTextAttr.Put( *pOldTextColor ); -/*N*/ } -/*N*/ -/*N*/ E3dLabelObj *pE3DLabel = new E3dLabelObj(aLine3D[1],pTextObj); -/*N*/ aYDescrList.push_back( pE3DLabel ); -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // create major gridline -/*N*/ aLine3D[0].Y() = aLine3D[1].Y() = fFact * aSizeVec.Y(); -/*N*/ -/*N*/ if(pXGridMainGroup) -/*N*/ Create3DPolyObject(pXGridMainAttr,new SchE3dPolygonObj(aDefltAttr3D, -/*N*/ aLine3D[0],aLine3D[1]),CHOBJID_DIAGRAM_X_GRID_MAIN, pXGridMainGroup); -/*N*/ // Y-Achsenwerte -/*N*/ if (pYAxisGroup && pChartYAxis->HasDescription() && nV) -/*N*/ { -/*N*/ Color *pTextColor = NULL; -/*N*/ SvxColorItem *pOldTextColor = NULL; -/*N*/ -/*N*/ pNumFormatter->GetOutputString((bPercent)?fAct/100.0:fAct, -/*N*/ GetNumFmt(CHOBJID_DIAGRAM_Y_AXIS,bPercent), aNumStr, &pTextColor); -/*N*/ -/*N*/ if( pTextColor ) // BM #60999# -/*N*/ { -/*?*/ pOldTextColor = (SvxColorItem*)(aYTextAttr.GetItem( EE_CHAR_COLOR )); -/*?*/ aYTextAttr.Put(SvxColorItem( *pTextColor )); -/*N*/ } -/*N*/ -/*N*/ // erzeuge das 3D-textobjekt -/*N*/ SdrTextObj *pTextObj = CreateTextObj(CHOBJID_TEXT, Point (), -/*N*/ aNumStr, -/*N*/ aYTextAttr, FALSE,CHADJUST_CENTER_RIGHT); -/*N*/ -/*N*/ if( pOldTextColor ) -/*N*/ { -/*?*/ aYTextAttr.Put( *pOldTextColor ); -/*N*/ } -/*N*/ -/*N*/ E3dLabelObj *pE3DLabel = new E3dLabelObj(aLine3D [1],pTextObj); -/*N*/ aYDescrList.push_back( pE3DLabel ); -/*N*/ } -/*N*/ -/*N*/ } -/*N*/ -/*N*/ IncValue(fAct, fValueStepMainY, bYLogarithm); -/*N*/ } -/*N*/ -/*N*/ fAct = fMinValueY; -/*N*/ double fActMain = fAct; // This is used for calculating the positions of main grid lines. -/*N*/ -/*N*/ if (pXGridHelpGroup && (fMinValueY != fMaxValueY)) -/*N*/ { -/*?*/ IncValue(fAct, fValueStepHelpY, FALSE); -/*?*/ if (bSwitchColRow) -/*?*/ { -/*?*/ for (;;) -/*?*/ { -/*?*/ double fPos = pChartYAxis->CalcFact(fAct ) * aSizeVec.X(); -/*?*/ if (fPos > aSizeVec.X()) break; -/*?*/ -/*?*/ // If there is a main grid then ommit creating help grid lines coinciding with main grid lines. -/*?*/ if (pXGridMainGroup) -/*?*/ { -/*?*/ // Advance main raw y position to at least the raw help position. -/*?*/ while (fActMain < fAct-EPSILON) -/*?*/ IncValue(fActMain, fValueStepMainY, bYLogarithm); -/*?*/ // If both positions fall together, then do not create the help line and try the next position. -/*?*/ if (fabs(fAct - fActMain) < EPSILON) -/*?*/ { -/*?*/ IncValue(fAct, fValueStepHelpY, FALSE); -/*?*/ continue; -/*?*/ } -/*?*/ } -/*?*/ -/*?*/ aLine3D[0].X() = -/*?*/ aLine3D[1].X() = fPos; -/*?*/ Create3DPolyObject (pXGridHelpAttr, new SchE3dPolygonObj (aDefltAttr3D, aLine3D[0], aLine3D[1]), -/*?*/ CHOBJID_DIAGRAM_X_GRID_HELP, pXGridHelpGroup); -/*?*/ -/*?*/ // In case of a help grid with a main grid, draw only every other line. -/*?*/ IncValue(fAct, fValueStepHelpY, FALSE); -/*?*/ } -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ for (;;) -/*?*/ { -/*?*/ double fPos = pChartYAxis->CalcFact(fAct ) * aSizeVec.Y(); -/*?*/ if (fPos > aSizeVec.Y()) break; -/*?*/ -/*?*/ // If there is a main grid then ommit creating help grid lines coinciding with main grid lines. -/*?*/ if (pXGridMainGroup) -/*?*/ { -/*?*/ // Advance main raw y position to at least the raw help position. -/*?*/ while (fActMain < fAct-EPSILON) -/*?*/ IncValue(fActMain, fValueStepMainY, bYLogarithm); -/*?*/ // If both positions fall together, then do not create the help line and try the next position. -/*?*/ if (fabs(fAct - fActMain) < EPSILON) -/*?*/ { -/*?*/ IncValue(fAct, fValueStepHelpY, FALSE); -/*?*/ continue; -/*?*/ } -/*?*/ } -/*?*/ -/*?*/ aLine3D[0].Y() = -/*?*/ aLine3D[1].Y() = fPos; -/*?*/ Create3DPolyObject (pXGridHelpAttr, new SchE3dPolygonObj (aDefltAttr3D, aLine3D[0], aLine3D[1]), -/*?*/ CHOBJID_DIAGRAM_X_GRID_HELP, pXGridHelpGroup); -/*?*/ -/*?*/ // In case of a help grid with a main grid, draw only every other line. -/*?*/ IncValue(fAct, fValueStepHelpY, FALSE); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ case 2: // floor -/*N*/ { -/*N*/ // BM: create 'thick' floor -/*N*/ Rectangle aRect( 0, 0, (long)aSizeVec.X(), (long)aSizeVec.Z() ); -/*N*/ PolyPolygon aPolyPolygon; -/*N*/ Polygon aPoly( aRect ); -/*N*/ aPolyPolygon.Insert( aPoly ); -/*N*/ -/*N*/ E3dExtrudeObj* pFloorObj = new SchE3dExtrudeObj( aDefltAttr3D, aPolyPolygon, fFloorWidth ); -/*N*/ Matrix4D aMatrix; -/*N*/ aMatrix.RotateX( 90.0 * F_PI180 ); -/*N*/ aMatrix.TranslateZ( aSizeVec.Z() ); -/*N*/ aMatrix.Translate( aPos ); -/*N*/ -/*N*/ pFloorObj->SetModel( this ); -/*N*/ pFloorObj->InsertUserData( new SchObjectId( CHOBJID_DIAGRAM_FLOOR ) ); -/*N*/ rScene.Insert3DObj( pFloorObj ); -/*N*/ -/*N*/ pFloorObj->SetItemSet(*pDiagramFloorAttr); -/*N*/ -/*N*/ pFloorObj->NbcSetTransform( aMatrix * aShift ); -/*N*/ -/*N*/ Vector3D aEndPos( aPos ); -/*N*/ aEndPos.Z() += aSizeVec.Z(); -/*N*/ -/*N*/ Vector3D aLine3D [2] = { aPos, aEndPos }; -/*N*/ -/*N*/ SfxItemSet aXTextAttr ((const SfxItemSet &) *pXAxisAttr); -/*N*/ aXTextAttr.Put(XLineStyleItem (XLINE_NONE)); -/*N*/ aXTextAttr.Put(XLineWidthItem (0)); -/*N*/ -/*N*/ //#47500# -/*N*/ if (pZAxisGroup && pChartZAxis->IsVisible()) Create3DPolyObject( pZAxisAttr, new SchE3dPolygonObj (aDefltAttr3D, aLine3D[0], aLine3D[1]), -/*N*/ CHOBJID_LINE, pZAxisGroup ); -/*N*/ -/*N*/ if (bSwitchColRow) -/*N*/ { -/*N*/ long nStepMainY = (long) aSizeVec.Y () / nColumnCnt; -/*N*/ long nStepHelpY = nStepMainY / 2; -/*N*/ -/*N*/ for (i = 0; i <= nColumnCnt; i++) -/*N*/ { -/*N*/ // erzeuge hilfslinie -/*N*/ aLine3D[0].Y() = -/*N*/ aLine3D[1].Y() = aPos.Y() + nStepMainY * i; -/*N*/ -/*N*/ if (pYGridMainGroup) Create3DPolyObject (pYGridMainAttr, new SchE3dPolygonObj (aDefltAttr3D, aLine3D[0], aLine3D[1]), -/*N*/ CHOBJID_DIAGRAM_Y_GRID_MAIN, pYGridMainGroup); -/*N*/ -/*N*/ if ((i < nColumnCnt) && pXAxisGroup && pChartXAxis->HasDescription()) -/*N*/ { -/*N*/ // bei tiefen diagrammtypen muessen die beschriftungen auf halbem abstand -/*N*/ // untergebracht sein -/*N*/ Vector3D aTextPos = aLine3D[1]; -/*N*/ -/*N*/ if (bPartDescr) aTextPos.Y() += nStepHelpY / 2; -/*N*/ -/*N*/ -/*N*/ SdrTextObj *pTextObj = CreateTextObj(CHOBJID_TEXT, -/*N*/ Point (),ColText(i), -/*N*/ aXTextAttr, FALSE,CHADJUST_CENTER_RIGHT); -/*N*/ E3dLabelObj *pE3DLabel = new E3dLabelObj -/*N*/ (aTextPos,pTextObj ); -/*N*/ pE3DLabel->SetMarkProtect(TRUE); -/*N*/ aXDescrList.push_back( pE3DLabel ); -/*N*/ } -/*N*/ -/*N*/ // hilfslinien koennen mit erzeugt werden -/*N*/ if (pYGridHelpGroup && (i < nColumnCnt)) -/*N*/ { -/*?*/ aLine3D[0].Y() += nStepHelpY; -/*?*/ aLine3D[1].Y() += nStepHelpY; -/*?*/ Create3DPolyObject (pYGridHelpAttr, new SchE3dPolygonObj (aDefltAttr3D, aLine3D[0], aLine3D[1]), -/*?*/ CHOBJID_DIAGRAM_Y_GRID_HELP, pYGridHelpGroup); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ long nStepMainX = (long) aSizeVec.X () / nColumnCnt; -/*N*/ long nStepHelpX = nStepMainX / 2; -/*N*/ -/*N*/ for (i = 0; i <= nColumnCnt; i++) -/*N*/ { -/*N*/ // erzeuge hilfslinie -/*N*/ aLine3D[0].X() = -/*N*/ aLine3D[1].X() = aPos.X() + nStepMainX * i; -/*N*/ -/*N*/ if (pYGridMainGroup) Create3DPolyObject (pYGridMainAttr, new SchE3dPolygonObj (aDefltAttr3D, aLine3D[0], aLine3D[1]), -/*N*/ CHOBJID_DIAGRAM_Y_GRID_MAIN, pYGridMainGroup); -/*N*/ -/*N*/ if ((i < nColumnCnt) && pXAxisGroup && pChartXAxis->HasDescription()) -/*N*/ { -/*N*/ // bei tiefen diagrammtypen muessen die beschriftungen auf halbem abstand -/*N*/ // untergebracht sein -/*N*/ Vector3D aTextPos = aLine3D[1]; -/*N*/ -/*N*/ if (bPartDescr) aTextPos.X() += nStepHelpX; -/*N*/ -/*N*/ -/*N*/ SdrTextObj *pTextObj = CreateTextObj(CHOBJID_TEXT, -/*N*/ Point (),ColText(i), -/*N*/ aXTextAttr, FALSE,CHADJUST_TOP_RIGHT); -/*N*/ E3dLabelObj *pE3DLabel = new E3dLabelObj (aTextPos,pTextObj ); -/*N*/ pE3DLabel->SetMarkProtect(TRUE); -/*N*/ aXDescrList.push_back( pE3DLabel ); -/*N*/ } -/*N*/ -/*N*/ // hilfslinien koennen mit erzeugt werden -/*N*/ if (pYGridHelpGroup && (i < nColumnCnt)) -/*N*/ { -/*?*/ aLine3D[0].X() += nStepHelpX; -/*?*/ aLine3D[1].X() += nStepHelpX; -/*?*/ Create3DPolyObject (pYGridHelpAttr, new SchE3dPolygonObj (aDefltAttr3D, aLine3D[0], aLine3D[1]), -/*?*/ CHOBJID_DIAGRAM_Y_GRID_HELP, pYGridHelpGroup); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ aLine3D[ 0 ] = -/*N*/ aLine3D[ 1 ] = aEndPos; -/*N*/ aLine3D[ 1 ].X() += aSizeVec.X(); -/*N*/ -/*N*/ SfxItemSet aZTextAttr ((const SfxItemSet &) *pZAxisAttr); -/*N*/ aZTextAttr.Put(XLineStyleItem (XLINE_NONE)); -/*N*/ aZTextAttr.Put(XLineWidthItem (0)); -/*N*/ -/*N*/ long nStepMainZ = (long) aSizeVec.Z () / nRowCnt; -/*N*/ long nStepHelpZ = nStepMainZ / 2; -/*N*/ -/*N*/ BOOL bCreateGridLine = ( (aLine3D[ 0 ].X() != aLine3D[ 1 ].X()) || -/*N*/ (aLine3D[ 0 ].Y() != aLine3D[ 1 ].Y()) ); -/*N*/ // Z() values become equal in the for loop -/*N*/ // => start and end points would be equal -/*N*/ -/*N*/ for (i = 0; i <= nRowCnt; i++) -/*N*/ { -/*N*/ // create main gridline -/*N*/ aLine3D[0].Z() = -/*N*/ aLine3D[1].Z() = aPos.Z() + nStepMainZ * i; -/*N*/ -/*N*/ if( pZGridMainGroup && bCreateGridLine ) -/*N*/ Create3DPolyObject( pZGridMainAttr, new SchE3dPolygonObj( aDefltAttr3D, aLine3D[ 0 ], aLine3D[ 1 ] ), -/*N*/ CHOBJID_DIAGRAM_Z_GRID_MAIN, pZGridMainGroup ); -/*N*/ -/*N*/ // bei tiefen diagrammtypen muessen die beschriftungen auf halbem abstand -/*N*/ // untergebracht sein -/*N*/ Vector3D aTextPos = aLine3D[1]; -/*N*/ -/*N*/ if (bPartDescr) aTextPos.Z () += nStepHelpZ; -/*N*/ -/*N*/ if ((i < nRowCnt) && (nRowCnt > 1) && pZAxisGroup && pChartZAxis->HasDescription()) -/*N*/ { -/*N*/ -/*N*/ SdrTextObj *pTextObj=CreateTextObj(CHOBJID_TEXT, Point (), -/*N*/ RowText(nRowCnt - 1 - i), aZTextAttr, -/*N*/ FALSE, CHADJUST_TOP_LEFT) ; -/*N*/ -/*N*/ E3dLabelObj *pE3DLabel = new E3dLabelObj(aTextPos,pTextObj); -/*N*/ pE3DLabel->SetMarkProtect(TRUE); -/*N*/ aZDescrList.insert( aZDescrList.begin(), pE3DLabel );//ZListe umgekehrt füllen -/*N*/ } -/*N*/ -/*N*/ if (pZGridHelpGroup && (i < nRowCnt)) -/*N*/ { -/*?*/ aLine3D[0].Z() += nStepHelpZ; -/*?*/ aLine3D[1].Z() += nStepHelpZ; -/*?*/ if( pZGridHelpGroup && bCreateGridLine ) -/*?*/ Create3DPolyObject( pZGridHelpAttr, new SchE3dPolygonObj( aDefltAttr3D, aLine3D[0], aLine3D[1] ), -/*?*/ CHOBJID_DIAGRAM_Z_GRID_HELP, pZGridHelpGroup ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ break; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ pScene->InsertAllTitleText (aXDescrList, pXAxisGroup,SCH_AXIS_ID_X); -/*N*/ pScene->InsertAllTitleText (aYDescrList, pYAxisGroup,SCH_AXIS_ID_Y); -/*N*/ pScene->InsertAllTitleText (aZDescrList, pZAxisGroup,SCH_AXIS_ID_Z); -/*N*/ -/*N*/ if (pXGridHelpGroup) rScene.Insert3DObj(pXGridHelpGroup); -/*N*/ if (pYGridHelpGroup) rScene.Insert3DObj(pYGridHelpGroup); -/*N*/ if (pZGridHelpGroup) rScene.Insert3DObj(pZGridHelpGroup); -/*N*/ if (pXGridMainGroup) rScene.Insert3DObj(pXGridMainGroup); -/*N*/ if (pYGridMainGroup) rScene.Insert3DObj(pYGridMainGroup); -/*N*/ if (pZGridMainGroup) rScene.Insert3DObj(pZGridMainGroup); -/*N*/ if (pXAxisGroup) rScene.Insert3DObj(pXAxisGroup); -/*N*/ if (pYAxisGroup) rScene.Insert3DObj(pYAxisGroup); -/*N*/ if (pZAxisGroup) rScene.Insert3DObj(pZAxisGroup); -/*N*/ -/*N*/ //TVM: aus FitInSnapRect -/*N*/ //TVM: Bound statt Logic -/*N*/ Position3DAxisTitles(rScene.GetBoundRect()); -/*N*/ } - -/************************************************************************* -|* -|* tiefes 3D-Diagramme erzeugen -|* -\************************************************************************/ - -/*N*/ SdrObjGroup* ChartModel::Create3DDeepChart(Rectangle &rRect) -/*N*/ { -/*N*/ const long nGapWidth = 10; -/*N*/ -/*N*/ pScene = CreateScene (rRect, *aLightVec, fSpotIntensity, aSpotColor, -/*N*/ fAmbientIntensity, aAmbientColor); -/*N*/ -/*N*/ Vector3D aTextPos3D; -/*N*/ Polygon3D aRect3D(4); -/*N*/ Polygon3D aTriangle3D(3); -/*N*/ Polygon3D aFrontSide; -/*N*/ Polygon3D aBackSide; -/*N*/ BOOL bSwitchColRow = IsBar(); -/*N*/ E3dDefaultAttributes aDefltAttr3D; -/*N*/ -/*N*/ CreateAndInsert3DAxesTitles (rRect, bSwitchColRow); -/*N*/ -/*N*/ long nX = 0; -/*N*/ long nY = 0; -/*N*/ long nW = FIXED_SIZE_FOR_3D_CHART_VOLUME; -/*N*/ long nH = FIXED_SIZE_FOR_3D_CHART_VOLUME; -/*N*/ long nZ = (FIXED_SIZE_FOR_3D_CHART_VOLUME * 4) / 6; -/*N*/ long nColCnt = GetColCount(); -/*N*/ long nRowCnt = GetRowCount(); -/*N*/ short nCol, nRow; -/*N*/ -/*N*/ Polygon aFrontExtrude(1+nColCnt*2); -/*N*/ -/*N*/ long nGapX = nW * nGapWidth / 1000; -/*N*/ long nGapY = nH * nGapWidth / 1000; -/*N*/ long nGapZ = nZ * nGapWidth / 1000; -/*N*/ long nPartDepth = nZ / nRowCnt; -/*N*/ long nPartWidth; -/*N*/ long nBarWidthX; -/*N*/ long nBarWidthZ = nPartDepth - nGapZ * 2; -/*N*/ -/*N*/ BOOL bLogarithm = ((const SfxBoolItem&) pChartYAxis->GetItemSet()->Get(SCHATTR_AXIS_LOGARITHM)).GetValue(); -/*N*/ -/*N*/ BOOL bPartDescr; -/*N*/ long nDepth = ((eChartStyle == CHSTYLE_3D_BAR) || -/*N*/ (eChartStyle == CHSTYLE_3D_COLUMN) || -/*N*/ (eChartStyle == CHSTYLE_3D_STRIPE) || -/*N*/ (eChartStyle == CHSTYLE_3D_AREA)) -/*N*/ ? -nZ -/*N*/ : nPartDepth; -/*N*/ -/*N*/ nPartWidth = (eChartStyle == CHSTYLE_3D_BAR) -/*N*/ ? nH / nColCnt -/*N*/ : ((eChartStyle == CHSTYLE_3D_COLUMN) -/*N*/ ? nW / nColCnt -/*N*/ : ((nColCnt > 1) -/*N*/ ? nW / (nColCnt - 1) -/*N*/ : nW / nColCnt)); -/*N*/ nBarWidthX = (eChartStyle == CHSTYLE_3D_BAR) -/*N*/ ? nPartWidth - nGapY * 2 -/*N*/ : nPartWidth - nGapX * 2; -/*N*/ bPartDescr = TRUE; -/*N*/ -/*N*/ Camera3D aCam(pScene->GetCamera()); -/*N*/ Vector3D aCamPos(nX + nW/2, nH/2, nW/2); -/*N*/ Vector3D aLookAt(nX + nW/2, nH/2, nDepth/2); -/*N*/ aCam.SetViewWindow(-nW/2, -nH/2, nW, nH); -/*N*/ aCam.SetDefaults(aCamPos, aLookAt, 80, DEG2RAD(-(double)nZAngle / 10.0)); -/*N*/ aCam.Reset(); -/*N*/ aCam.SetProjection(eProjection); -/*N*/ aCam.RotateAroundLookAt(DEG2RAD((double)nYAngle / 10.0), DEG2RAD((double)nXAngle / 10.0)); -/*N*/ aCam.SetAspectMapping(AS_HOLD_SIZE); -/*N*/ pScene->SetCamera(aCam); -/*N*/ -/*N*/ nY = 0; -/*N*/ -/*N*/ Vector3D a3DPos(nX, nY, nDepth); -/*N*/ Vector3D a3DSize(nW, nH, -nDepth); -/*N*/ -/*N*/ Create3DBackplanes(rRect, a3DPos, a3DSize, *pScene, -/*N*/ bPartDescr, FALSE, bLogarithm, FALSE, CHSTACK_NONE, FALSE, FALSE, -/*N*/ bSwitchColRow); -/*N*/ -/*N*/ nY = (long)(pChartYAxis->CalcFactOrigin() * nH); -/*N*/ a3DPos = Vector3D(0, nY, nDepth - nBarWidthZ + nPartDepth - nGapZ); -/*N*/ -/*N*/ DataDescription aDescription; -/*N*/ -/*N*/ for (nRow = nRowCnt-1; nRow >= 0; nRow--) -/*N*/ { -/*N*/ E3dScene* pStripe = NULL; -/*N*/ -/*N*/ // create row-groups. Insertion into main scene is done at the end of -/*N*/ // the for loop (#109628#) -/*N*/ E3dScene* pRowGroup = Create3DScene (CHOBJID_DIAGRAM_ROWGROUP); -/*N*/ // #102789# some unset attributes may be propagated to the -/*N*/ // top-level scene -/*N*/ pRowGroup->SetItemSet( pScene->GetItemSet() ); -/*N*/ pRowGroup->InsertUserData(new SchDataRow(nRow)); -/*N*/ -/*N*/ if ( eChartStyle == CHSTYLE_3D_STRIPE ) -/*N*/ pStripe = pRowGroup; -/*N*/ -/*N*/ a3DPos.X() = nX; -/*N*/ a3DPos.Y() = nY; -/*N*/ -/*N*/ switch(eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_3D_COLUMN: -/*N*/ -/*N*/ a3DPos.X() += nGapX; -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_3D_BAR: -/*N*/ -/*N*/ // #67333# the y axis of bar charts is not interrested in negative values -/*N*/ a3DPos.Y() = nGapY; // += nGapY; -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ -/*?*/ aBackSide[0] = a3DPos; -/*?*/ aFrontSide[0] = a3DPos; -/*?*/ aFrontSide[0].Z() += nBarWidthZ; -/*?*/ -/*?*/ aFrontExtrude[0] =Point((long)a3DPos.X(),(long)-a3DPos.Y()); -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ Vector3D aLastValue; -/*N*/ short nPoints = 0; -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ double fData = GetData(nCol, nRow); -/*N*/ -/*N*/ SfxItemSet aDataPointAttr(GetFullDataPointAttr(nCol, nRow)); -/*N*/ -/*N*/ SvxChartDataDescr eDescr = ((const SvxChartDataDescrItem&)aDataPointAttr. -/*N*/ Get(SCHATTR_DATADESCR_DESCR)).GetValue(); -/*N*/ -/*N*/ BOOL bShowDataDescrLocal = (eDescr != CHDESCR_NONE) && bShowDataDescr && // bShowDataDescr is class member -/*N*/ fData != DBL_MIN; -/*N*/ if( bShowDataDescrLocal ) -/*N*/ { - /************************************************************** - * DataDescription erforderlich - **************************************************************/ -/*N*/ -/*?*/ aDescription.eDescr = eDescr; -/*?*/ aDescription.bSymbol = ((const SfxBoolItem&)aDataPointAttr. -/*?*/ Get(SCHATTR_DATADESCR_SHOW_SYM)).GetValue(); -/*N*/ } -/*N*/ -/*N*/ if (eChartStyle == CHSTYLE_3D_COLUMN) -/*N*/ { -/*N*/ double fTop, fBottom; -/*N*/ if (fData < fOriginY) -/*N*/ { -/*?*/ fTop = fOriginY; -/*?*/ fBottom = fData; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ fTop = fData; -/*N*/ fBottom = fOriginY; -/*N*/ } -/*N*/ -/*N*/ long nTop = Min((long)(pChartYAxis->CalcFact(fTop) * nH), nH); -/*N*/ long nBottom = Max((long)(pChartYAxis->CalcFact(fBottom) * nH), 0L); -/*N*/ -/*N*/ if( fData != DBL_MIN ) -/*N*/ { -/*N*/ long nBarHeight = nTop - nBottom + 1; -/*N*/ a3DPos.Y() = nBottom; -/*N*/ -/*N*/ if( nTop > nBottom ) -/*N*/ pRowGroup->Insert3DObj(Create3DBar(a3DPos, Vector3D(nBarWidthX, nBarHeight, nBarWidthZ), nCol, nRow, -/*N*/ aDataPointAttr, FALSE,0,pChartYAxis->CalcFactOrigin()*(double)nH,0)); -/*N*/ -/*N*/ if( bShowDataDescrLocal ) -/*N*/ { -/*?*/ aDescription.aTextPos3D = a3DPos; -/*?*/ aDescription.aTextPos3D.X() += nBarWidthX / 2; -/*?*/ aDescription.aTextPos3D.Y() += (fData<0)? 0: nBarHeight; -/*?*/ aDescription.aTextPos3D.Z() += nBarWidthZ / 2; -/*?*/ aDescription.fValue = GetData(nCol, nRow, // #67378# -/*?*/ ((aDescription.eDescr == CHDESCR_PERCENT) || -/*?*/ (aDescription.eDescr == CHDESCR_TEXTANDPERCENT)) ); -/*?*/ aDescription.eAdjust = CHADJUST_CENTER_CENTER; -/*N*/ } -/*N*/ } -/*N*/ else if (bShowDataDescrLocal) -/*N*/ { -/*N*/ aDescription.fValue = DBL_MIN; -/*N*/ } -/*N*/ } -/*N*/ else if (eChartStyle == CHSTYLE_3D_BAR) -/*N*/ { -/*N*/ double fRight, fLeft; -/*N*/ if (fData < fOriginY) -/*N*/ { -/*?*/ fRight = fOriginY; -/*?*/ fLeft = fData; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ fRight = fData; -/*N*/ fLeft = fOriginY; -/*N*/ } -/*N*/ -/*N*/ long nRight = Min((long)(pChartYAxis->CalcFact(fRight) * nW), nW); -/*N*/ long nLeft = Max((long)(pChartYAxis->CalcFact(fLeft) * nW), 0L); -/*N*/ -/*N*/ if( fData != DBL_MIN ) -/*N*/ { -/*N*/ long nBarWidth = nRight - nLeft + 1; -/*N*/ a3DPos.X() = nLeft; -/*N*/ -/*N*/ if( nRight > nLeft ) -/*N*/ pRowGroup->Insert3DObj(Create3DBar(a3DPos, Vector3D(nBarWidth, nBarWidthX, nBarWidthZ), nCol, nRow, -/*N*/ aDataPointAttr,FALSE,0,pChartYAxis->CalcFactOrigin()*(double)nW,0)); -/*N*/ -/*N*/ if (bShowDataDescrLocal) -/*N*/ { -/*?*/ aDescription.aTextPos3D = a3DPos; -/*?*/ -/*?*/ // #67379# corrected orientation of description -/*?*/ aDescription.aTextPos3D.X() += (fData<0)? 0: nBarWidth; -/*?*/ aDescription.aTextPos3D.Y() += nBarWidthX / 2; -/*?*/ aDescription.aTextPos3D.Z() += nBarWidthZ / 2; -/*?*/ -/*?*/ aDescription.fValue = GetData(nCol, nRow, // #67378# -/*?*/ ((aDescription.eDescr == CHDESCR_PERCENT) || -/*?*/ (aDescription.eDescr == CHDESCR_TEXTANDPERCENT)) ); -/*?*/ aDescription.eAdjust = CHADJUST_CENTER_CENTER; -/*N*/ } -/*N*/ } -/*N*/ else if (bShowDataDescrLocal) -/*N*/ { -/*?*/ aDescription.fValue = DBL_MIN; -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ long nPos = (long)(pChartYAxis->CalcFact(fData ) * nH); -/*?*/ if (nPos < 0L) nPos = 0L; -/*?*/ else if (nPos > nH) nPos = nH; -/*?*/ -/*?*/ const SfxItemSet& rDataRowAttr = GetDataRowAttr(nRow); -/*?*/ -/*?*/ a3DPos.Y() = nPos; -/*?*/ -/*?*/ switch (eChartStyle) -/*?*/ { -/*?*/ case CHSTYLE_3D_STRIPE: -/*?*/ case CHSTYLE_3D_AREA: -/*?*/ { -/*?*/ UINT16 nRev = nColCnt + 1 - nPoints; -/*?*/ BOOL bValidData = TRUE; -/*?*/ -/*?*/ if ((eChartStyle == CHSTYLE_3D_AREA) && (fData == DBL_MIN)) -/*?*/ { -/*?*/ fData = 0.0; -/*?*/ bValidData = FALSE; -/*?*/ } -/*?*/ -/*?*/ if (fData != DBL_MIN) -/*?*/ { -/*?*/ //Stripes: -/*?*/ aFrontSide[nRev] = a3DPos; -/*?*/ aFrontSide[nRev].Z() += nBarWidthZ; -/*?*/ aBackSide[nPoints] = a3DPos; -/*?*/ //Area: -/*?*/ aFrontExtrude[nRev] = Point((long)a3DPos.X(),(long)-a3DPos.Y()); -/*?*/ -/*?*/ if (!nPoints) -/*?*/ { -/*?*/ //Stripes: -/*?*/ aFrontSide[0] = a3DPos; -/*?*/ aFrontSide[0].Y() = 0; -/*?*/ aFrontSide[0].Z() += nBarWidthZ; -/*?*/ aBackSide[nColCnt + 1] = aFrontSide[0]; -/*?*/ //Area: -/*?*/ aFrontExtrude[0].X() = (long)a3DPos.X(); -/*?*/ aFrontExtrude[0].Y() = 0; -/*?*/ } -/*?*/ else if(eChartStyle == CHSTYLE_3D_STRIPE) -/*?*/ { -/*?*/ if (nColCnt > 1) -/*?*/ { -/*?*/ // deckel -/*?*/ aRect3D[0] = aBackSide[nPoints - 1]; -/*?*/ aRect3D[1] = aFrontSide[nRev + 1]; -/*?*/ aRect3D[2] = aFrontSide[nRev]; -/*?*/ aRect3D[3] = aBackSide[nPoints]; -/*?*/ E3dPolygonObj *pPolyObj=new SchE3dPolygonObj (aDefltAttr3D, aRect3D); -/*?*/ -/*?*/ pPolyObj->SetItem(Svx3DDoubleSidedItem(TRUE)); //Neu 18.5.98 -/*?*/ -/*?*/ Create3DPolyObject (&rDataRowAttr,pPolyObj,CHOBJID_AREA, pStripe); -/*?*/ } -/*?*/ } -/*?*/ nPoints ++; -/*?*/ } -/*?*/ else bValidData = FALSE; -/*?*/ -/*?*/ if (nPoints && (eChartStyle==CHSTYLE_3D_AREA) && (nCol==nColCnt-1)) -/*?*/ { -/*?*/ Vector3D aFill = (fData == DBL_MIN) ? aLastValue : a3DPos; -/*?*/ for (short nFill = nPoints;nFill <= nColCnt;nFill ++) -/*?*/ { -/*?*/ //aFrontSide wird noch für die Beschriftung gebraucht -/*?*/ aFrontSide[nColCnt+1-nFill]=aFill; -/*?*/ aFrontSide[nColCnt+1-nFill].Y()=0; -/*?*/ aFrontSide[nColCnt+1-nFill].Z() += nBarWidthZ; -/*?*/ aFrontExtrude[nColCnt+1-nFill]=Point((long)aFill.X(),0); -/*?*/ } -/*?*/ -/*?*/ if (nColCnt > 1) -/*?*/ { -/*?*/ PolyPolygon aPolyPoly; -/*?*/ aFrontExtrude[nColCnt*2]=aFrontExtrude[0]; -/*?*/ aPolyPoly.Insert(aFrontExtrude); -/*?*/ E3dExtrudeObj* pExtrudeObj= new SchE3dExtrudeObj(aDefltAttr3D, aPolyPoly, nBarWidthZ); -/*?*/ Matrix4D aMatrix; -/*?*/ aMatrix.Translate(Vector3D(0,0,a3DPos.Z() )); //nDepth - nBarWidthZ + nPartDepth - nGapZ -/*?*/ pExtrudeObj->NbcSetTransform(aMatrix); -/*?*/ Create3DExtrudePolyObj(&rDataRowAttr,pExtrudeObj,CHOBJID_AREA,pRowGroup); -/*?*/ } -/*?*/ } //Area -/*?*/ -/*?*/ if (fData == DBL_MIN) nPoints = 0; -/*?*/ -/*?*/ if (bShowDataDescrLocal) -/*?*/ { -/*?*/ aDescription.aTextPos3D = aFrontSide[nRev]; -/*?*/ -/*?*/ if (bValidData) -/*?*/ { -/*?*/ if ((aDescription.eDescr == CHDESCR_PERCENT) || -/*?*/ (aDescription.eDescr == CHDESCR_TEXTANDPERCENT)) -/*?*/ { -/*?*/ aDescription.fValue = GetData (nCol, nRow, TRUE, TRUE); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ aDescription.fValue = GetData (nCol, nRow); -/*?*/ } -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ aDescription.fValue = DBL_MIN; -/*?*/ } -/*?*/ -/*?*/ aDescription.eAdjust = CHADJUST_CENTER_CENTER; -/*?*/ } -/*?*/ -/*?*/ break; -/*?*/ } -/*?*/ -/*?*/ case CHSTYLE_3D_SURFACE: -/*?*/ if (nColCnt > 1) -/*?*/ { -/*?*/ aTriangle3D[0] = a3DPos; -/*?*/ aTriangle3D[1] = a3DPos; -/*?*/ aTriangle3D[1].Z() += nPartDepth; -/*?*/ aTriangle3D[1].Y() = -/*?*/ (long)(pChartYAxis->CalcFact(GetData(nCol, nRow-1)) * nH); -/*?*/ aTriangle3D[2] = aTriangle3D[1]; -/*?*/ aTriangle3D[2].X() += nPartWidth; -/*?*/ aTriangle3D[2].Y() = -/*?*/ (long)(pChartYAxis->CalcFact(GetData(nCol+1, nRow-1)) * nH); -/*?*/ aTriangle3D[3] = aTriangle3D[2]; -/*?*/ aTriangle3D[3].Z() -= nPartDepth; -/*?*/ aTriangle3D[3].Y() = -/*?*/ (long)(pChartYAxis->CalcFact(GetData(nCol+1, nRow)) * nH); -/*?*/ -/*?*/ Create3DPolyObject (&rDataRowAttr, new SchE3dPolygonObj (aDefltAttr3D, aTriangle3D, TRUE, TRUE), -/*?*/ CHOBJID_AREA, pRowGroup); -/*?*/ -/*?*/ aTriangle3D[0] = aTriangle3D[1]; -/*?*/ aTriangle3D[1] = aTriangle3D[2]; -/*?*/ aTriangle3D[2] = a3DPos; -/*?*/ Create3DPolyObject (&rDataRowAttr, new SchE3dPolygonObj (aDefltAttr3D, aTriangle3D, TRUE, TRUE), -/*?*/ CHOBJID_AREA, pRowGroup); -/*?*/ } -/*?*/ break; - default: break; -/*?*/ } -/*?*/ } -/*N*/ -/*N*/ aLastValue = a3DPos; -/*N*/ if (eChartStyle == CHSTYLE_3D_BAR) a3DPos.Y() += nPartWidth; -/*N*/ else a3DPos.X() += nPartWidth; -/*N*/ -/*N*/ if( pScene && bShowDataDescrLocal ) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*N*/ -/*N*/ }// end for nCol -/*N*/ -/*N*/ // #109628# insert row groups into main scene only if they contain data -/*N*/ // points -/*N*/ if( pRowGroup->GetSubList()->GetObjCount() > 0 ) -/*N*/ { -/*?*/ pScene->Insert3DObj( pRowGroup ); -/*N*/ } - -/*N*/ a3DPos.Z() += nPartDepth; -/*N*/ }//end for nRow -/*N*/ -/*N*/ return (SdrObjGroup*) pScene; -/*N*/ } - -/************************************************************************* -|* -|* flache 3D-Diagramme erzeugen -|* -\************************************************************************/ - -/*N*/ SdrObjGroup* ChartModel::Create3DFlatChart(Rectangle &rRect) -/*N*/ { -/*N*/ const long nGapWidth = 10; -/*N*/ -/*N*/ pScene = CreateScene (rRect, *aLightVec, fSpotIntensity, aSpotColor, -/*N*/ fAmbientIntensity, aAmbientColor); -/*N*/ -/*N*/ Vector3D aTextPos3D; -/*N*/ -/*N*/ Polygon3D aFrontSide; -/*N*/ -/*N*/ BOOL bSwitchColRow = IsBar(); -/*N*/ E3dDefaultAttributes aDefltAttr3D; -/*N*/ -/*N*/ CreateAndInsert3DAxesTitles (rRect, bSwitchColRow); -/*N*/ -/*N*/ BOOL bPercent = IsPercent(); -/*N*/ -/*N*/ -/*N*/ USHORT eStackMode; -/*N*/ switch (eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_3D_STACKEDFLATCOLUMN: -/*N*/ case CHSTYLE_3D_PERCENTFLATCOLUMN: -/*N*/ case CHSTYLE_3D_STACKEDFLATBAR: -/*N*/ case CHSTYLE_3D_PERCENTFLATBAR: -/*N*/ eStackMode = CHSTACK_MINMAX; -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_3D_STACKEDAREA: -/*N*/ case CHSTYLE_3D_PERCENTAREA: -/*N*/ eStackMode = CHSTACK_OVERLAP; -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ eStackMode = CHSTACK_NONE; -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ long nX = 0; -/*N*/ long nY = 0; -/*N*/ long nW = FIXED_SIZE_FOR_3D_CHART_VOLUME; -/*N*/ long nH = FIXED_SIZE_FOR_3D_CHART_VOLUME; -/*N*/ long nColCnt = GetColCount(); -/*N*/ long nRowCnt = GetRowCount(); -/*N*/ long nCol, nRow; -/*N*/ -/*N*/ long nGapX = nW * nGapWidth / 1000; -/*N*/ long nGapY = nH * nGapWidth / 1000; -/*N*/ long nGapZ = nW * nGapWidth / 1000; -/*N*/ long nPartDepth = nW / nRowCnt; -/*N*/ long nPartWidth; -/*N*/ long nColWidthX; -/*N*/ long nBarWidthX; -/*N*/ long nBarWidthZ = nPartDepth - nGapZ * 2; -/*N*/ long nDepth = -nPartDepth; -/*N*/ -/*N*/ SfxItemSet* pYAxisAttr = pChartYAxis->GetItemSet(); -/*N*/ BOOL bLogarithm = ((const SfxBoolItem&) pYAxisAttr->Get(SCHATTR_AXIS_LOGARITHM)).GetValue(); -/*N*/ BOOL bPartDescr; -/*N*/ -/*N*/ Polygon aFrontExtrude(1+nColCnt*2); -/*N*/ -/*N*/ switch (eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_3D_STACKEDAREA: -/*N*/ case CHSTYLE_3D_PERCENTAREA: -/*N*/ { -/*N*/ aFrontSide.SetPointCount(nColCnt*2); -/*N*/ nPartWidth = nW / ((nColCnt > 1) ? nColCnt - 1 : nColCnt); -/*N*/ nColWidthX = 0; -/*N*/ nBarWidthX = 0; -/*N*/ bPartDescr = FALSE; -/*N*/ break; -/*N*/ } -/*N*/ default: -/*N*/ { -/*N*/ nPartWidth = bSwitchColRow -/*N*/ ? nH / nColCnt -/*N*/ : nW / nColCnt; -/*N*/ nColWidthX = bSwitchColRow -/*N*/ ? nPartWidth - nGapY * 2 -/*N*/ : nPartWidth - nGapX * 2; -/*N*/ nBarWidthX = ((eChartStyle == CHSTYLE_3D_FLATCOLUMN) || (eChartStyle == CHSTYLE_3D_FLATBAR)) -/*N*/ ? nColWidthX / nRowCnt -/*N*/ : 0; -/*N*/ bPartDescr = TRUE; -/*N*/ break; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ Camera3D aCam(pScene->GetCamera()); -/*N*/ Vector3D aCamPos(nX + nW/2, nH/2, nW/2); -/*N*/ Vector3D aLookAt(nX + nW/2, nH/2, nDepth/2); -/*N*/ aCam.SetViewWindow(-nW/2, -nH/2, nW, nH); -/*N*/ aCam.SetDefaults(aCamPos, aLookAt, 80, DEG2RAD(-(double)nZAngle / 10.0)); -/*N*/ aCam.Reset(); -/*N*/ aCam.SetProjection(eProjection); -/*N*/ aCam.RotateAroundLookAt(DEG2RAD((double)nYAngle / 10.0), DEG2RAD((double)nXAngle / 10.0)); -/*N*/ aCam.SetAspectMapping(AS_HOLD_SIZE); -/*N*/ pScene->SetCamera(aCam); -/*N*/ -/*N*/ nY = 0; -/*N*/ Vector3D a3DPos(nX, nY, nDepth); -/*N*/ Vector3D a3DSize(nW, nH, -nDepth); -/*N*/ -/*N*/ Create3DBackplanes(rRect, a3DPos, a3DSize, *pScene, -/*N*/ bPartDescr, FALSE, bLogarithm, FALSE, eStackMode, bPercent, TRUE, -/*N*/ bSwitchColRow); -/*N*/ -/*N*/ a3DPos = Vector3D(nX, nY, nDepth - nBarWidthZ + nPartDepth - nGapZ); -/*N*/ -/*N*/ switch (eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_3D_STACKEDAREA: -/*N*/ case CHSTYLE_3D_PERCENTAREA: -/*N*/ { -/*N*/ DataDescription* pDescription = NULL; -/*N*/ -/*N*/ double* fOldData = new double[nColCnt]; -/*N*/ a3DPos.Z() += nBarWidthZ; -/*N*/ -/*N*/ for (nRow = 0; nRow < nRowCnt; nRow++) -/*N*/ { -/*N*/ E3dScene* pRowGroup = Create3DScene (CHOBJID_DIAGRAM_ROWGROUP); -/*N*/ pScene->Insert3DObj(pRowGroup); -/*N*/ -/*N*/ pRowGroup->InsertUserData(new SchDataRow((short)nRow)); -/*N*/ -/*N*/ const SfxItemSet& rDataRowAttr = GetDataRowAttr(nRow); -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ double fData = fabs(GetData(nCol, nRow, bPercent)); -/*N*/ SfxItemSet aDataPointAttr (GetFullDataPointAttr(nCol, nRow)); -/*N*/ BOOL bValidData; -/*N*/ -/*N*/ if (fData == DBL_MIN) -/*N*/ { -/*?*/ fData = 0.0; -/*?*/ bValidData = FALSE; -/*N*/ } -/*N*/ else bValidData = TRUE; -/*N*/ -/*N*/ SvxChartDataDescr eDescr = ((const SvxChartDataDescrItem&)aDataPointAttr. -/*N*/ Get(SCHATTR_DATADESCR_DESCR)).GetValue(); -/*N*/ -/*N*/ if( (eDescr != CHDESCR_NONE) && bShowDataDescr) -/*N*/ { - /****************************************************** - * DataDescription erforderlich - ******************************************************/ -/*?*/ if (!pDescription) -/*?*/ { -/*?*/ // DataDescription noch nicht vorhanden -> erzeugen -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*?*/ } -/*?*/ -/*?*/ pDescription [nCol].eDescr = eDescr; -/*?*/ pDescription [nCol].bSymbol = ((const SfxBoolItem&)aDataPointAttr. -/*?*/ Get(SCHATTR_DATADESCR_SHOW_SYM)).GetValue(); -/*N*/ } -/*N*/ -/*N*/ long nRev = nColCnt * 2 - 1 - nCol; -/*N*/ -/*N*/ if (!nRow) -/*N*/ { -/*N*/ a3DPos.Y() = Min((long)(pChartYAxis->CalcFact(fData) * nH), nH); -/*N*/ aFrontSide[(UINT16)nRev] = a3DPos; -/*N*/ aFrontSide[(UINT16)nCol] = a3DPos; -/*N*/ aFrontSide[(UINT16)nCol].Y() = 0; -/*N*/ aFrontExtrude[(UINT16)nRev] = Point((long)a3DPos.X(),(long)-a3DPos.Y()); -/*N*/ aFrontExtrude[(UINT16)nCol] = Point((long)a3DPos.X(),(long)-a3DPos.Y()); -/*N*/ aFrontExtrude[(UINT16)nCol].Y()= 0; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ fData = fOldData[nCol] + fData; -/*N*/ a3DPos.Y() = Min((long)(pChartYAxis->CalcFact(fData) * nH), nH); -/*N*/ aFrontSide[(UINT16)nCol] = aFrontSide[(UINT16)nRev]; -/*N*/ aFrontSide[(UINT16)nRev] = a3DPos; -/*N*/ aFrontExtrude[(UINT16)nCol] = aFrontExtrude[(UINT16)nRev]; -/*N*/ aFrontExtrude[(UINT16)nRev]=Point((long)a3DPos.X(),(long)-a3DPos.Y()); -/*N*/ } -/*N*/ -/*N*/ fOldData[nCol] = fData; -/*N*/ -/*N*/ if (pDescription) -/*N*/ { -/*?*/ pDescription [nCol].aTextPos3D = aFrontSide[(UINT16)nRev]; -/*?*/ pDescription [nCol].aTextPos3D.Y() -= (aFrontSide[(UINT16)nRev].Y() - aFrontSide[(UINT16)nCol].Y()) / 2; -/*?*/ -/*?*/ if (bValidData) -/*?*/ { -/*?*/ if ((pDescription [nCol].eDescr == CHDESCR_PERCENT) || -/*?*/ (pDescription [nCol].eDescr == CHDESCR_TEXTANDPERCENT)) -/*?*/ { -/*?*/ pDescription [nCol].fValue = GetData (nCol, nRow, TRUE, TRUE); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ pDescription [nCol].fValue = GetData(nCol,nRow,FALSE);//#55586# fData; -/*?*/ } -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ pDescription [nCol].fValue = DBL_MIN; -/*?*/ } -/*?*/ -/*?*/ pDescription [nCol].eAdjust = CHADJUST_CENTER_CENTER; -/*?*/ -/*?*/ if( eDescr != CHDESCR_NONE && bValidData ) -/*?*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*?*/ } -/*N*/ } -/*N*/ -/*N*/ a3DPos.X() += nPartWidth; -/*N*/ } //end for nCol -/*N*/ -/*N*/ if (nColCnt > 1) -/*N*/ { -/*N*/ -/*N*/ PolyPolygon aPolyPoly; -/*N*/ aFrontExtrude[nColCnt*2]=aFrontExtrude[0];//.SetClosed(TRUE); -/*N*/ aPolyPoly.Insert(aFrontExtrude); -/*N*/ -/*N*/ E3dExtrudeObj* pExtrudeObj= new SchE3dExtrudeObj(aDefltAttr3D, aPolyPoly,nBarWidthZ); -/*N*/ Matrix4D aMatrix; -/*N*/ aMatrix.Translate(Vector3D(0,0,nDepth - nBarWidthZ + nPartDepth - nGapZ )); //-(double)nBarWidthZ -/*N*/ pExtrudeObj->NbcSetTransform(aMatrix); -/*N*/ //#54870# falsche ID:CHOBJID_DIAGRAM_AREA -/*N*/ Create3DExtrudePolyObj(&rDataRowAttr,pExtrudeObj,CHOBJID_AREA,pRowGroup); -/*N*/ } -/*N*/ a3DPos.X() = nX; -/*N*/ }//end for nRow -/*N*/ -/*N*/ delete[] fOldData; -/*N*/ delete[] pDescription; -/*N*/ break; -/*N*/ } // end case Area's -/*N*/ -/*N*/ default: -/*N*/ { -/*N*/ DataDescription* pDescription = NULL; -/*N*/ -/*N*/ if (bSwitchColRow) a3DPos.Y() += nGapY; -/*N*/ else a3DPos.X() += nGapX; -/*N*/ -/*N*/ // #100288# same structure as all other charts (no stacked and special groups) -/*N*/ // create groups for all series -/*N*/ E3dScene ** pDataGroup = new E3dScene * [ nRowCnt ]; -/*N*/ -/*N*/ // create 3d sub-scenes for each data series. Insertion into the -/*N*/ // main scene is done at the end of the for loop (#109628#) -/*N*/ for( nRow = 0; nRow < nRowCnt; nRow++ ) -/*N*/ { -/*N*/ pDataGroup[ nRow ] = Create3DScene( CHOBJID_DIAGRAM_ROWGROUP ); -/*N*/ pDataGroup[ nRow ]->InsertUserData( new SchDataRow( static_cast< short >( nRow ) )); -/*N*/ } -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ double fDataTop = fOriginY; -/*N*/ double fDataBottom = fOriginY; -/*N*/ -/*N*/ //Vor-Berechnung des Maximalen/Minimalen Zeichenpunktes -/*N*/ double fPreBottom=fOriginY; -/*N*/ double fPreTop =fOriginY; -/*N*/ double fPreTopPos,fPreBottomPos,fPreOriPos; -/*N*/ double fTop=0.0,fBottom=0.0,fMin=0.0,fMax=0.0,fMin2,fMax2; -/*N*/ fMin2=fMax2=fOriginY; -/*N*/ -/*N*/ for (nRow = 0; nRow < nRowCnt; nRow++) -/*N*/ { -/*N*/ double fData=GetData(nCol, nRow, bPercent); -/*N*/ if (fData != DBL_MIN) -/*N*/ { -/*N*/ if (fData < fOriginY) -/*N*/ { -/*?*/ fTop = fPreBottom; -/*?*/ if (fTop == fOriginY) -/*?*/ fPreBottom = fData; -/*?*/ else -/*?*/ fPreBottom += fData; -/*?*/ fBottom = fPreBottom; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ fBottom = fPreTop; -/*N*/ if (fBottom == fOriginY) -/*N*/ fPreTop = fData; -/*N*/ else -/*N*/ fPreTop += fData; -/*N*/ fTop = fPreTop; -/*N*/ } -/*N*/ } -/*N*/ if(nRow) -/*N*/ { -/*N*/ if(fTop<fMin) -/*N*/ fMin=fTop; -/*N*/ if(fBottom>fMax) -/*N*/ fMax=fBottom; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ fMin=fTop; -/*N*/ fMax=fBottom; -/*N*/ } -/*N*/ if(fData<fOriginY) -/*N*/ fMin2-=fData; //top,left -/*N*/ else -/*N*/ fMax2+=fData; //right,bottom -/*N*/ } -/*N*/ -/*N*/ double fR = (double)( IsBar()? nW: nH ); -/*N*/ fPreTopPos = pChartYAxis->CalcFact( fMin2 ) * fR; -/*N*/ if( fR < fPreTopPos ) -/*N*/ fPreTopPos = fR; -/*N*/ fPreBottomPos = pChartYAxis->CalcFact( fMax2 ) * fR; -/*N*/ if( fPreBottomPos < 0.0 ) -/*N*/ fPreBottomPos = 0.0; -/*N*/ fPreOriPos = pChartYAxis->CalcFactOrigin() * fR; -/*N*/ -/*N*/ for (nRow = 0; nRow < nRowCnt; nRow++) -/*N*/ { -/*N*/ double fData = GetData(nCol, nRow, bPercent); -/*N*/ SfxItemSet aDataPointAttr(GetFullDataPointAttr(nCol, nRow)); -/*N*/ -/*N*/ SvxChartDataDescr eDescr = ((const SvxChartDataDescrItem&)aDataPointAttr. -/*N*/ Get(SCHATTR_DATADESCR_DESCR)).GetValue(); -/*N*/ -/*N*/ if( (eDescr != CHDESCR_NONE) && bShowDataDescr) -/*N*/ { - /****************************************************** - * DataDescription erforderlich - ******************************************************/ -/*?*/ if (!pDescription) -/*?*/ { -/*?*/ // DataDescription noch nicht vorhanden -> erzeugen -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*?*/ } -/*?*/ -/*?*/ pDescription [nRow].eDescr = eDescr; -/*?*/ pDescription [nRow].bSymbol = ((const SfxBoolItem&)aDataPointAttr. -/*N*/ Get(SCHATTR_DATADESCR_SHOW_SYM)).GetValue(); -/*N*/ } -/*N*/ -/*N*/ switch (eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_3D_FLATCOLUMN: -/*N*/ if (fData != DBL_MIN) -/*N*/ { -/*N*/ double fLclTop; -/*N*/ double fLclBottom; -/*N*/ -/*N*/ if (fData < fOriginY) -/*N*/ { -/*?*/ fLclTop = fOriginY; -/*?*/ fLclBottom = fData; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ fLclTop = fData; -/*N*/ fLclBottom = fOriginY; -/*N*/ } -/*N*/ -/*N*/ long nBottom = Max ((long) (pChartYAxis->CalcFact(fLclBottom) * nH),0L); -/*N*/ long nTop = Min ((long) (pChartYAxis->CalcFact(fLclTop) * nH),nH); -/*N*/ -/*N*/ { -/*N*/ long nBarHeight = nTop - nBottom + 1; -/*N*/ a3DPos.Y() = nBottom; -/*N*/ -/*N*/ if (nTop > nBottom) -/*N*/ pDataGroup[ nRow ]->Insert3DObj(Create3DBar(a3DPos, Vector3D(nBarWidthX, nBarHeight, nBarWidthZ), nCol, nRow, -/*N*/ aDataPointAttr,TRUE,0,fPreOriPos,0)); -/*N*/ -/*N*/ if (pDescription) -/*N*/ { -/*?*/ pDescription [nRow].aTextPos3D = a3DPos; -/*?*/ pDescription [nRow].aTextPos3D.X() += nBarWidthX / 2; -/*?*/ pDescription [nRow].aTextPos3D.Y() += (fData<0)? 0: nBarHeight; -/*?*/ pDescription [nRow].aTextPos3D.Z() += nBarWidthZ; -/*?*/ -/*?*/ if ((pDescription [nRow].eDescr == CHDESCR_PERCENT) || -/*?*/ (pDescription [nRow].eDescr == CHDESCR_TEXTANDPERCENT)) -/*?*/ { -/*?*/ pDescription [nRow].fValue = GetData (nCol, nRow, TRUE, TRUE); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ pDescription [nRow].fValue = GetData(nCol,nRow,FALSE);//#55586# fData; -/*?*/ } -/*?*/ -/*?*/ pDescription [nRow].eAdjust = CHADJUST_CENTER_CENTER; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ else if (pDescription) -/*N*/ { -/*?*/ pDescription [nRow].fValue = DBL_MIN; -/*N*/ } -/*N*/ -/*N*/ a3DPos.X() += nBarWidthX; -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_3D_FLATBAR: -/*N*/ if (fData != DBL_MIN) -/*N*/ { -/*N*/ double fRight; -/*N*/ double fLeft; -/*N*/ -/*N*/ if (fData < fOriginY) -/*N*/ { -/*?*/ fRight = fOriginY; -/*?*/ fLeft = fData; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ fLeft = fOriginY; -/*N*/ fRight = fData; -/*N*/ } -/*N*/ -/*N*/ long nLeft = Max ((long) (pChartYAxis->CalcFact(fLeft) * nW),0L); -/*N*/ long nRight = Min ((long)(pChartYAxis->CalcFact(fRight) * nW),nW); -/*N*/ -/*N*/ { -/*N*/ long nBarWidth = nRight - nLeft + 1; -/*N*/ a3DPos.X() = nLeft; -/*N*/ -/*N*/ if (nRight > nLeft) -/*N*/ pDataGroup[ nRow ]->Insert3DObj(Create3DBar(a3DPos, Vector3D(nBarWidth, nBarWidthX, nBarWidthZ), nCol, nRow, -/*N*/ aDataPointAttr,TRUE,0,fPreOriPos,0)); -/*N*/ -/*N*/ if (pDescription) -/*N*/ { -/*?*/ pDescription [nRow].aTextPos3D = a3DPos; -/*?*/ pDescription [nRow].aTextPos3D.X() += (fData<0)? 0: nBarWidth; -/*?*/ pDescription [nRow].aTextPos3D.Y() += nBarWidthX / 2; -/*?*/ pDescription [nRow].aTextPos3D.Z() += nBarWidthZ; -/*?*/ -/*?*/ if ((pDescription [nRow].eDescr == CHDESCR_PERCENT) || -/*?*/ (pDescription [nRow].eDescr == CHDESCR_TEXTANDPERCENT)) -/*?*/ { -/*?*/ pDescription [nRow].fValue = GetData (nCol, nRow, TRUE, TRUE); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ pDescription [nRow].fValue = GetData(nCol,nRow,FALSE);//#55586# fData; -/*?*/ } -/*?*/ -/*?*/ pDescription [nRow].eAdjust = CHADJUST_CENTER_CENTER; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ else if (pDescription) -/*N*/ { -/*?*/ pDescription [nRow].fValue = DBL_MIN; -/*N*/ } -/*N*/ -/*N*/ a3DPos.Y() += nBarWidthX; -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_3D_STACKEDFLATCOLUMN: -/*N*/ case CHSTYLE_3D_PERCENTFLATCOLUMN: -/*N*/ if (fData != DBL_MIN) -/*N*/ { -/*?*/ double fLclTop; -/*?*/ double fLclBottom; -/*?*/ -/*?*/ if (fData < fOriginY) -/*?*/ { -/*?*/ fLclTop = fDataBottom; -/*?*/ if (fLclTop == fOriginY) fDataBottom = fData; -/*?*/ else fDataBottom += fData; -/*?*/ fLclBottom = fDataBottom; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ fLclBottom = fDataTop; -/*N*/ if (fLclBottom == fOriginY) fDataTop = fData; -/*N*/ else fDataTop += fData; -/*N*/ fLclTop = fDataTop; -/*N*/ } -/*N*/ -/*N*/ long nTop = Min((long)(pChartYAxis->CalcFact(fLclTop) * nH), nH); -/*N*/ long nBottom = Max((long)(pChartYAxis->CalcFact(fLclBottom) * nH),0L); -/*N*/ -/*N*/ { -/*N*/ long nBarHeight = nTop - nBottom + 1; -/*N*/ a3DPos.Y() = nBottom; -/*N*/ -/*N*/ if (nTop > nBottom) -/*N*/ pDataGroup[ nRow ]->Insert3DObj(Create3DBar(a3DPos, Vector3D(nColWidthX, nBarHeight, nBarWidthZ), nCol, nRow, -/*N*/ aDataPointAttr,TRUE,fPreBottomPos,fPreOriPos,fPreTopPos)); -/*N*/ -/*N*/ if (pDescription) -/*?*/ { -/*?*/ pDescription [nRow].aTextPos3D = a3DPos; -/*?*/ pDescription [nRow].aTextPos3D.X() += nColWidthX / 2; -/*?*/ pDescription [nRow].aTextPos3D.Y() += nBarHeight / 2; -/*?*/ pDescription [nRow].aTextPos3D.Z() += nBarWidthZ; -/*?*/ -/*?*/ if ((pDescription [nRow].eDescr == CHDESCR_PERCENT) || -/*?*/ (pDescription [nRow].eDescr == CHDESCR_TEXTANDPERCENT)) -/*?*/ { -/*?*/ pDescription [nRow].fValue = GetData (nCol, nRow, TRUE, TRUE); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ pDescription [nRow].fValue = GetData(nCol,nRow,FALSE);//#55586# fData; -/*?*/ } -/*?*/ -/*?*/ pDescription [nRow].eAdjust = CHADJUST_CENTER_CENTER; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ else if (pDescription) -/*N*/ { -/*?*/ pDescription [nRow].fValue = DBL_MIN; -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_3D_STACKEDFLATBAR: -/*N*/ case CHSTYLE_3D_PERCENTFLATBAR: -/*N*/ if (fData != DBL_MIN) -/*N*/ { -/*N*/ double fRight; -/*N*/ double fLeft; -/*N*/ -/*N*/ if (fData < fOriginY) -/*N*/ { -/*?*/ fRight = fDataBottom; -/*?*/ if (fRight == fOriginY) fDataBottom = fData; -/*?*/ else fDataBottom += fData; -/*?*/ fLeft = fDataBottom; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ fLeft = fDataTop; -/*N*/ if (fLeft == fOriginY) fDataTop = fData; -/*N*/ else fDataTop += fData; -/*N*/ fRight = fDataTop; -/*N*/ } -/*N*/ -/*N*/ long nRight = Min((long)(pChartYAxis->CalcFact(fRight) * nW), nW); -/*N*/ long nLeft = Max((long) (pChartYAxis->CalcFact(fLeft ) * nW), 0L); -/*N*/ -/*N*/ { -/*N*/ long nBarWidth = nRight - nLeft + 1; -/*N*/ a3DPos.X() = nLeft; -/*N*/ -/*N*/ if (nRight > nLeft) -/*N*/ pDataGroup[ nRow ]->Insert3DObj(Create3DBar(a3DPos, Vector3D(nBarWidth, nColWidthX, nBarWidthZ), nCol, nRow, -/*N*/ aDataPointAttr,TRUE,fPreBottomPos,fPreOriPos,fPreTopPos)); -/*N*/ -/*N*/ if (pDescription) -/*N*/ { -/*?*/ pDescription [nRow].aTextPos3D = a3DPos; -/*?*/ pDescription [nRow].aTextPos3D.X() += nBarWidth / 2; -/*?*/ pDescription [nRow].aTextPos3D.Y() += nColWidthX / 2; -/*?*/ pDescription [nRow].aTextPos3D.Z() += nBarWidthZ; -/*?*/ -/*?*/ if ((pDescription [nRow].eDescr == CHDESCR_PERCENT) || -/*?*/ (pDescription [nRow].eDescr == CHDESCR_TEXTANDPERCENT)) -/*?*/ { -/*?*/ pDescription [nRow].fValue = GetData (nCol, nRow, TRUE, TRUE); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ pDescription [nRow].fValue = GetData(nCol,nRow,FALSE);//#55586# fData; -/*?*/ } -/*?*/ -/*?*/ pDescription [nRow].eAdjust = CHADJUST_CENTER_CENTER; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ else if (pDescription) -/*N*/ { -/*?*/ pDescription [nRow].fValue = DBL_MIN; -/*N*/ } -/*N*/ break; - default: break; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ // BM: moved here from Dirty3D. -/*N*/ if( pDescription ) -/*N*/ { -/*?*/ for (nRow = 0; nRow < nRowCnt; nRow ++) -/*?*/ { -/*?*/ if (pScene && pDescription[nRow].fValue != DBL_MIN) -/*?*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*?*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if (bSwitchColRow) -/*N*/ { -/*N*/ a3DPos.Y() += nBarWidthX ? nGapY * 2 : nPartWidth; -/*N*/ a3DPos.X() = 0; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ a3DPos.X() += nBarWidthX ? nGapX * 2 : nPartWidth; -/*N*/ a3DPos.Y() = 0; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ // insert the data series sub-scenes if they contain any data points -/*N*/ // (inserting empty scenes may corrupt the camera parameters of the -/*N*/ // main scene. See #109628#) -/*N*/ for( nRow = 0; nRow < nRowCnt; nRow++ ) -/*N*/ { -/*?*/ // sublist always exists -/*?*/ if( pDataGroup[ nRow ]->GetSubList()->GetObjCount() > 0 ) -/*?*/ pScene->Insert3DObj( pDataGroup[ nRow ] ); -/*N*/ } -/*N*/ -/*N*/ delete[] pDescription; -/*N*/ delete[] pDataGroup; -/*N*/ -/*N*/ break; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ return (SdrObjGroup*) pScene; -/*N*/ } - -/************************************************************************* -|* -|* 3D-Kreisdiagramm erzeugen -|* -\************************************************************************/ - -/*N*/ SdrObjGroup* ChartModel::Create3DNewPieChart(Rectangle &rRect) -/*N*/ { -/*N*/ SdrObjList *pList=NULL; -/*N*/ -/*N*/ pChartYAxis->SetPercentMode( FALSE ); // percent is calculated using the row rather than the column -/*N*/ -/*N*/ pScene = CreateScene (rRect, *aLightVec, fSpotIntensity, aSpotColor, -/*N*/ fAmbientIntensity, aAmbientColor); -/*N*/ const long nSize=FIXED_SIZE_FOR_3D_CHART_VOLUME; -/*N*/ -/*N*/ long nW = nSize; -/*N*/ long nH = nSize; -/*N*/ long nZ = nSize;//(nSize * 4) / 6; -/*N*/ -/*N*/ //erweiterung auf Donuts emöglichen! -/*N*/ long nColCnt = GetColCount(); -/*N*/ const short nRowCnt=1;// long nRowCnt = GetRowCount(); -/*N*/ const short nRow=0; -/*N*/ short nCol;//, nRow; -/*N*/ -/*N*/ long nZExtrude=nZ/3; -/*N*/ -/*N*/ Camera3D aCam(pScene->GetCamera()); -/*N*/ const long nDepth=-nZ; -/*N*/ -/*N*/ Vector3D aCamPos(0,0,nW/2); -/*N*/ Vector3D aLookAt(0,0,nDepth/2); -/*N*/ aCam.SetViewWindow(-nW/2, -nH/2, nW, nH); -/*N*/ aCam.SetDefaults(aCamPos, aLookAt, 80, DEG2RAD(-(double)nZAngle / 10.0)); -/*N*/ aCam.Reset(); -/*N*/ aCam.SetProjection(eProjection); -/*N*/ -/*N*/ aCam.SetAspectMapping(AS_HOLD_SIZE); -/*N*/ pScene->SetCamera(aCam); -/*N*/ pScene->SetTransform(aSceneMatrix); -/*N*/ -/*N*/ // Pie charts may not have titles of axes. -/*N*/ bShowXAxisTitle = FALSE; -/*N*/ bShowYAxisTitle = FALSE; -/*N*/ bShowZAxisTitle = FALSE; -/*N*/ -/*N*/ // Max. bestimmen -/*N*/ double fTotal=0.0; -/*N*/ long nSegments=0; -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ double fTemp = fabs(GetData(nCol,nRow)); -/*N*/ if (fTemp != DBL_MIN && fTemp>0) -/*N*/ { -/*N*/ fTotal += fTemp; -/*N*/ nSegments++; -/*N*/ } -/*N*/ } -/*N*/ if(!nSegments || fTotal == 0.0) -/*N*/ return (SdrObjGroup*) pScene; -/*N*/ -/*N*/ Rectangle aPieRect; -/*N*/ aPieRect=Rectangle(Point(-nW/2,-nH/2),Size(nW,nH)); // rect in which the pie is drawn -/*N*/ -/*N*/ const long nMaxAngle=36000; -/*N*/ long nPos=0; -/*N*/ E3dDefaultAttributes aDefltAttr3D; -/*N*/ -/*N*/ long nEndAngle=0; -/*N*/ long nStartAngle=0; -/*N*/ -/*N*/ ChartDataDescription aDescr(nColCnt,nRowCnt,pList,this,bShowDataDescr); -/*N*/ -/*N*/ Point aCenter = aPieRect.Center(); -/*N*/ Size aPieRectSize = aPieRect.GetSize(); -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ double fValue = fabs(GetData( nCol,nRow)); -/*N*/ if(fValue!=DBL_MIN && fValue>0.0) -/*N*/ { -/*N*/ nPos++; -/*N*/ SfxItemSet aDataPointAttr(GetFullDataPointAttr(nCol,nRow)); -/*N*/ nStartAngle=nEndAngle; -/*N*/ nEndAngle+=(long)((fValue/fTotal)*nMaxAngle); -/*N*/ -/*N*/ // for last segment use exact value to avoid accumulated errors -/*N*/ if( nPos == nSegments ) -/*N*/ nEndAngle = 36000; -/*N*/ -/*N*/ if(nEndAngle>nMaxAngle) -/*N*/ nEndAngle-=nMaxAngle; -/*N*/ -/*N*/ XPolyPolygon aPolyPolygon; -/*N*/ -/*N*/ // if the angle of the sector is too small the conversion method produces an error -/*N*/ // especially as angles are rounded to integers / 10 -/*N*/ if( nEndAngle - nStartAngle < 10 ) // approximate as triangle -/*N*/ { -/*?*/ XPolygon aPoly( 4 ); -/*?*/ double fAngleStart = (double)(nStartAngle) * F_PI / 18000.0, -/*?*/ fAngleEnd = (double)(nEndAngle) * F_PI / 18000.0, -/*?*/ fRadiusX = (double)(aPieRectSize.Width()) / 2.0, -/*?*/ fRadiusY = (double)(aPieRectSize.Height()) / 2.0; -/*?*/ -/*?*/ aPoly[ 0 ] = aCenter; -/*?*/ aPoly[ 1 ] = Point( (long)(aCenter.X() + fRadiusX * cos( fAngleStart )), (long)(aCenter.Y() - fRadiusY * sin( fAngleStart )) ); -/*?*/ aPoly[ 2 ] = Point( (long)(aCenter.X() + fRadiusX * cos( fAngleEnd )), (long)(aCenter.Y() - fRadiusY * sin( fAngleEnd )) ); -/*?*/ aPoly[ 3 ] = aCenter; -/*?*/ -/*?*/ aPolyPolygon.Insert( aPoly ); -/*N*/ } -/*N*/ else // create a polygon -/*N*/ { -/*N*/ SdrCircObj aSegment( OBJ_SECT, aPieRect, nStartAngle, nEndAngle); -/*N*/ GetPage(0)->NbcInsertObject( &aSegment, 0 ); -/*N*/ SdrPathObj* pTmp = (SdrPathObj*)aSegment.ConvertToPolyObj( FALSE, FALSE ); -/*N*/ -/*N*/ // Add two extra points near the end of the arc so that -/*N*/ // the lighting of the 3d object is smoothed -/*N*/ XPolygon aPoly( pTmp->GetPathPoly().GetObject(0) ); -/*N*/ -/*N*/ long nEnd = aPoly.GetPointCount(); -/*N*/ if( nEnd > 3 ) -/*N*/ { -/*N*/ Point aP2b( aPoly[ nEnd-3 ] ); -/*N*/ Point aP1b( aPoly[ 2 ] ); -/*N*/ Point aP2( aPoly[ nEnd-2] ) ; -/*N*/ Point aP1( aPoly[ 1 ] ); -/*N*/ aP1 += (aP1b-aP1) / 100; -/*N*/ aP2 += (aP2b-aP2) / 100; -/*N*/ aPoly.Insert( nEnd - 2, aP2, XPOLY_NORMAL); -/*N*/ aPoly.Insert( 2, aP1, XPOLY_NORMAL ); -/*N*/ } -/*N*/ aPolyPolygon.Insert( aPoly ); -/*N*/ -/*N*/ GetPage( 0 )->RemoveObject( 0 ); -/*N*/ } -/*N*/ -/*N*/ SchE3dExtrudeObj* pObj=new SchE3dExtrudeObj(aDefltAttr3D, -/*N*/ aPolyPolygon,nZExtrude); -/*N*/ -/*N*/ DBG_ASSERT( pObj, "couldn't create extrude object" ); -/*N*/ -/*N*/ // default attributes reset the texture projection items so set them explicitly -/*N*/ // use object specific projection in y direction -/*N*/ pObj->SetItem( Svx3DTextureProjectionYItem( 0 )); -/*N*/ pObj->SetItem( Svx3DDoubleSidedItem( TRUE )); -/*N*/ -/*N*/ pScene->Insert3DObj(pObj); -/*N*/ pObj->InsertUserData(new SchDataPoint(nCol, nRow)); -/*N*/ pObj->InsertUserData (new SchObjectId (CHOBJID_DIAGRAM_DATA)); -/*N*/ pObj->SetMoveProtect(TRUE); -/*N*/ pObj->SetResizeProtect(TRUE); -/*N*/ pObj->SetModel(this); -/*N*/ -/*N*/ pObj->SetItemSet(aDataPointAttr); -/*N*/ -/*N*/ -/*N*/ Matrix4D aMatrix; -/*N*/ aMatrix.TranslateZ(-nZExtrude/2); -/*N*/ pObj->NbcSetTransform(aMatrix); -/*N*/ -/*N*/ -/*N*/ if(aDescr.Enabled()) -/*N*/ { -/*N*/ DataDescription* pDescr=aDescr.Insert(nCol,nRow,aDataPointAttr,Point(0,0),FALSE,CHADJUST_BOTTOM_CENTER,pChartYAxis); -/*N*/ if(pDescr) -/*?*/ {DBG_BF_ASSERT(0, "STRIP"); } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ aDescr.Build3D(pScene); -/*N*/ -/*N*/ return (SdrObjGroup*) pScene; -/*N*/ } - -/************************************************************************* -|* -|* Positioniere die Achsentitel um das Rectangle der Scene -|* -\************************************************************************/ - -/*N*/ void ChartModel::Position3DAxisTitles(const Rectangle& rSceneRect) -/*N*/ { -/*N*/ SdrPage *pPage = GetPage (0); -/*N*/ Size aPageSize = pPage->GetSize(); -/*N*/ -/*N*/ if (bShowXAxisTitle) -/*N*/ { -/*N*/ SdrObject *pXAxisTitleObj = GetObjWithId(CHOBJID_DIAGRAM_TITLE_X_AXIS, *pPage); -/*N*/ if (pXAxisTitleObj != NULL) -/*N*/ { -/*N*/ Rectangle aXAxisOutRect = pXAxisTitleObj->GetBoundRect(); -/*N*/ -/*N*/ Point aXAxesTitlePosition (rSceneRect.Left () + (int) (rSceneRect.GetWidth () / 2), -/*N*/ Min ((long) aChartRect.Bottom(), -/*N*/ (long) (rSceneRect.Bottom () + aXAxisOutRect.GetHeight()) )); -/*N*/ -/*N*/ if (GetXAxisTitleHasBeenMoved() && GetUseRelativePositions() && -/*N*/ (aXAxesTitlePosition.X() > 0) && (aXAxesTitlePosition.Y() > 0)) -/*N*/ { -/*N*/ // FG: Das ist eine Variable die in BuildChart gesetzt wird, kutz bevor -/*N*/ // das Objekt zerstoert wird. -/*?*/ double fRelativeXPosition = ((double) aTitleXAxisPosition.X()) / aInitialSizefor3d.Width(); -/*?*/ double fRelativeYPosition = ((double) aTitleXAxisPosition.Y()) / aInitialSizefor3d.Height(); -/*?*/ aXAxesTitlePosition.X() = (long)(aPageSize.Width() * fRelativeXPosition); -/*?*/ aXAxesTitlePosition.Y() = (long)(aPageSize.Height() * fRelativeYPosition); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if (bSwitch3DColRow) -/*N*/ { -/*N*/ aXAxesTitlePosition.X() = Max (0l, (long) (rSceneRect.Left () - 2 * aXAxisOutRect.GetWidth ())); -/*N*/ aXAxesTitlePosition.Y() = Max (0l, (long) (rSceneRect.Top () + rSceneRect.GetHeight () / 2)); -/*N*/ } -/*N*/ } -/*N*/ SetTextPos((SdrTextObj &) *pXAxisTitleObj, aXAxesTitlePosition,pXAxisTitleAttr); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if (bShowYAxisTitle) -/*N*/ { -/*N*/ SdrObject *pYAxisTitleObj = GetObjWithId(CHOBJID_DIAGRAM_TITLE_Y_AXIS, *pPage); -/*N*/ if (pYAxisTitleObj != NULL) -/*N*/ { -/*N*/ Rectangle aYAxisOutRect = pYAxisTitleObj->GetBoundRect(); -/*N*/ -/*N*/ Point aYAxesTitlePosition (Max (1l, (long) (rSceneRect.Left () - 2 * aYAxisOutRect.GetWidth ())), -/*N*/ Max (1l, (long) (rSceneRect.Top () + rSceneRect.GetHeight () / 2))); -/*N*/ -/*N*/ if (GetYAxisTitleHasBeenMoved() && GetUseRelativePositions() && -/*N*/ (aYAxesTitlePosition.X() >= 0) && (aYAxesTitlePosition.Y() > 0)) -/*N*/ { -/*N*/ // FG: Das ist eine Variable die in BuildChart gesetzt wird, kutz bevor -/*N*/ // das Objekt zerstoert wird. -/*N*/ double fRelativeXPosition = ((double) aTitleYAxisPosition.X()) / aInitialSizefor3d.Width(); -/*N*/ double fRelativeYPosition = ((double) aTitleYAxisPosition.Y()) / aInitialSizefor3d.Height(); -/*N*/ aYAxesTitlePosition.X() = (long)(aPageSize.Width() * fRelativeXPosition); -/*N*/ aYAxesTitlePosition.Y() = (long)(aPageSize.Height() * fRelativeYPosition); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if (bSwitch3DColRow) -/*N*/ { -/*N*/ aYAxesTitlePosition.X() = rSceneRect.Left () + (int) (rSceneRect.GetWidth () / 2 + 0.5); -/*N*/ aYAxesTitlePosition.Y() = Min ((long) aChartRect.Bottom(), -/*N*/ (long) (rSceneRect.Bottom () + aYAxisOutRect.GetHeight()) ); -/*N*/ } -/*N*/ } -/*N*/ SetTextPos((SdrTextObj &) *pYAxisTitleObj, aYAxesTitlePosition,pYAxisTitleAttr); -/*N*/ } -/*N*/ -/*N*/ } -/*N*/ -/*N*/ if (bShowZAxisTitle) -/*N*/ { -/*N*/ SdrObject *pZAxisTitleObj = GetObjWithId(CHOBJID_DIAGRAM_TITLE_Z_AXIS, *pPage); -/*N*/ if (pZAxisTitleObj != NULL) -/*N*/ { -/*N*/ Rectangle aZAxisOutRect = pZAxisTitleObj->GetBoundRect(); -/*N*/ -/*N*/ -/*N*/ Point aZAxesTitlePosition( (long)(0.95 * rSceneRect.Right()), -/*N*/ (long)Min ((long) aChartRect.Bottom(), -/*N*/ (long) (rSceneRect.Bottom () - aZAxisOutRect.GetHeight()))); -/*N*/ -/*N*/ -/*N*/ if (GetZAxisTitleHasBeenMoved() && GetUseRelativePositions() && -/*N*/ (aZAxesTitlePosition.X() > 0) && (aZAxesTitlePosition.Y() > 0)) -/*N*/ { -/*N*/ // FG: Das ist eine Variable die in BuildChart gesetzt wird, kutz bevor -/*N*/ // das Objekt zerstoert wird. -/*N*/ double fRelativeXPosition = ((double) aTitleZAxisPosition.X()) / aInitialSizefor3d.Width(); -/*N*/ double fRelativeYPosition = ((double) aTitleZAxisPosition.Y()) / aInitialSizefor3d.Height(); -/*N*/ aZAxesTitlePosition.X() = (long)(aPageSize.Width() * fRelativeXPosition); -/*N*/ aZAxesTitlePosition.Y() = (long)(aPageSize.Height() * fRelativeYPosition); -/*N*/ } -/*N*/ else if(aZAxesTitlePosition.Y()<aZAxisOutRect.GetHeight()/2) -/*N*/ { -/*?*/ aZAxesTitlePosition.Y()=aZAxisOutRect.GetHeight(); -/*N*/ } -/*N*/ SetTextPos((SdrTextObj &) *pZAxisTitleObj, aZAxesTitlePosition,pZAxisTitleAttr); -/*N*/ } -/*N*/ -/*N*/ } -/*N*/ -/*N*/ aInitialSizefor3d = aInitialSize; -/*N*/ } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chtmode1.cxx b/binfilter/bf_sch/source/core/sch_chtmode1.cxx deleted file mode 100644 index b3464cfd4..000000000 --- a/binfilter/bf_sch/source/core/sch_chtmode1.cxx +++ /dev/null @@ -1,1020 +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. - * - ************************************************************************/ - -#include <bf_svx/svxids.hrc> -#include <bf_svx/xlntrit.hxx> -#include <bf_svx/svdviter.hxx> -#include <bf_svx/svdview.hxx> -#ifndef _ZFORLIST_HXX //autogen -#ifndef _ZFORLIST_DECLARE_TABLE -#define _ZFORLIST_DECLARE_TABLE -#endif -#include <bf_svtools/zforlist.hxx> -#endif - -#include "schattr.hxx" -#define ITEMID_ADJUST EE_PARA_JUST -#include <bf_svx/adjitem.hxx> - -#ifndef _SVX_CHRTITEM_HXX //autogen -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT -#endif - -#define ITEMID_FONT EE_CHAR_FONTINFO -#define ITEMID_COLOR EE_CHAR_COLOR -#define ITEMID_FONTHEIGHT EE_CHAR_FONTHEIGHT -#include "globfunc.hxx" -#include <bf_svx/svxids.hrc> -#include "schresid.hxx" - -#include "glob.hrc" -#include <bf_svx/dialogs.hrc> -#include "math.h" - -#include <bf_svx/xlnedcit.hxx> -#include <bf_svx/xlnstcit.hxx> -#include <bf_svx/xlnedwit.hxx> -#include <bf_svx/xlnstwit.hxx> -#include <bf_svx/xlnedit.hxx> -#include <bf_svx/xlnstit.hxx> -#include <bf_svx/xlndsit.hxx> -#include <bf_svx/xlnclit.hxx> -#include <bf_svx/xlnwtit.hxx> - -#include "pairs.hxx" -#include "datalog.hxx" -#include "chaxis.hxx" -#include "chmod3d.hxx" -#include "schmod.hxx" - -namespace binfilter { - -/************************************************************************/ - -/*N*/ const double fDefaultArr[DEFAULT_ROWCNT][DEFAULT_COLCNT] = -/*N*/ { -/*N*/ { 9.1, 3.2, 4.54 }, -/*N*/ { 2.4, 8.8, 9.65 }, -/*N*/ { 3.1, 1.5, 3.7 }, -/*N*/ { 4.3, 9.02, 6.2 } -/*N*/ }; - -/************************************************************************* -|* -|* delete top-level object (called by BuildChart to create shape newly) -|* -\************************************************************************/ - -/*N*/ void ChartModel::DeleteObject( SdrObject* pObj ) -/*N*/ { -/*N*/ if( pObj ) -/*N*/ { -/*N*/ // unmark object in all views -/*N*/ SdrViewIter aIter( pObj ); -/*N*/ SdrView* pView = aIter.FirstView(); -/*N*/ -/*N*/ while( pView ) -/*N*/ { -/*N*/ // important: leave group so that SdrPageView's object list is always -/*N*/ // the same as the object list of the page -/*N*/ pView->LeaveAllGroup(); -/*N*/ pView->UnmarkAll(); -/*N*/ -/*N*/ pView = aIter.NextView(); -/*N*/ } -/*N*/ -/*N*/ #if OSL_DEBUG_LEVEL > 1 -/*N*/ SdrObject* pDelObj = pObj->GetObjList()->RemoveObject( pObj->GetOrdNum()); -/*N*/ DBG_ASSERT( pDelObj == pObj , "Wrong object removed!" ); -/*N*/ #else -/*N*/ pObj->GetObjList()->RemoveObject( pObj->GetOrdNum()); -/*N*/ #endif -/*N*/ -/*N*/ delete pObj; -/*N*/ } -/*N*/ else -/*N*/ OSL_FAIL( "DeleteObject: Invalid object" ); -/*N*/ } - -/*N*/ const USHORT nExchangeTitleWhichPairs[] = -/*N*/ { //approx.: -/*N*/ SCHATTR_TEXT_ORIENT, SCHATTR_TEXT_ORIENT, // 1 -/*N*/ SCHATTR_TEXT_DEGREES,SCHATTR_TEXT_DEGREES, // -/*N*/ XATTR_LINE_FIRST, XATTR_LINE_LAST, // 1000 -/*N*/ XATTR_FILL_FIRST, XATTR_FILL_LAST, // 1020 -/*N*/ SDRATTR_START, SDRATTR_END, //here changed to all SdrAttr -/*N*/ EE_ITEMS_START, EE_ITEMS_END, // 4000 -/*N*/ 0 -/*N*/ }; - -/************************************************************************* -|* -|* Create text object for diagrams -|* FG: The parameter MaximumWidth is only used if >0. In that case lines are -|* are wrapped if necessary. MaximumWidth has to passed to CalcMaxDescrSize -|* too, otherwise the formatting is wrong. -|* -|* At a maximum 2 lines of that width are created. The rest is cut off. -|* -|* That should be reimplemented because: -|* 1) The text is put into an outline object gepackt, in order to be -|* able to process stacked text. -|* 2) based on that object the size and the width are calculated -|* 3) then this size is taken to create a SdrTextObj with the same -|* attributes as the outline object. -|* -\************************************************************************/ - -/*N*/ SdrRectObj* ChartModel::CreateTextObj(UINT16 nId, -/*N*/ const Point &rPos, -/*N*/ const String &rText, -/*N*/ const SfxItemSet &rAttr, -/*N*/ BOOL bIsTitle, -/*N*/ ChartAdjust eAdjust, -/*N*/ const long nMaximumWidth) -/*N*/ { -/*N*/ const SfxPoolItem* pPoolItem = NULL; -/*N*/ SvxChartTextOrient eOrient; -/*N*/ -/*N*/ if (rAttr.GetItemState(SCHATTR_TEXT_ORIENT, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ eOrient = ((const SvxChartTextOrientItem*)pPoolItem)->GetValue(); -/*N*/ else -/*N*/ eOrient = CHTXTORIENT_STANDARD; -/*N*/ -/*N*/ SfxItemSet aTextAttr(*pItemPool, nTextWhichPairs); -/*N*/ aTextAttr.Put(rAttr); -/*N*/ -/*N*/ if (bIsTitle) -/*N*/ aTextAttr.Put(SvxAdjustItem(SVX_ADJUST_CENTER)); -/*N*/ else -/*N*/ aTextAttr.Put(SvxAdjustItem((eOrient == CHTXTORIENT_BOTTOMTOP) -/*N*/ ? SVX_ADJUST_RIGHT -/*N*/ : SVX_ADJUST_LEFT)); -/*N*/ -/*N*/ // clear old outliner content -/*N*/ pOutliner->Clear(); -/*N*/ -/*N*/ if (eOrient == CHTXTORIENT_STACKED) -/*?*/ pOutliner->SetText(StackString(rText), pOutliner->GetParagraph( 0 )); -/*N*/ else -/*N*/ pOutliner->SetText(rText, pOutliner->GetParagraph( 0 )); -/*N*/ -/*N*/ // FG: This routine actually calculates if the text has to be - // wrapped -/*N*/ Size aSize = CalcTextSizeOfOneText (eOrient, aTextAttr, pOutliner, nMaximumWidth,FALSE); -/*N*/ -/*N*/ // FG: What is the purpose of this statement? -/*N*/ OutlinerParaObject* pPara = pOutliner->CreateParaObject(); -/*N*/ -/*N*/ // FG: Now the text created and formatted by the statements above - // is destroyed. -/*N*/ pOutliner->Clear(); -/*N*/ -/*N*/ //rPos=position in ChartRect, is passed as arg -/*N*/ //size results from CalcTextOf... (see above) -/*N*/ Rectangle aRect(rPos, aSize); -/*N*/ SdrRectObj* pObj; -/*N*/ -/*N*/ AdjustRect(aRect, eAdjust); -/*N*/ -/*N*/ switch(nId) -/*N*/ { -/*N*/ //All titles are responsible for their attributes -/*N*/ case CHOBJID_DIAGRAM_TITLE_X_AXIS: -/*N*/ case CHOBJID_DIAGRAM_TITLE_Y_AXIS: -/*N*/ case CHOBJID_DIAGRAM_TITLE_Z_AXIS: -/*N*/ case CHOBJID_TITLE_MAIN: -/*N*/ case CHOBJID_TITLE_SUB: -/*N*/ pObj = new SchRectObj(OBJ_TEXT, aRect); -/*N*/ break; -/*N*/ default: -/*N*/ pObj = new SdrRectObj(OBJ_TEXT, aRect); -/*N*/ break; -/*N*/ -/*N*/ } -/*N*/ -/*N*/ // Since 4/1998 text can be rotated by an arbitrary angle: SCHATTR_TEXT_DEGREES -/*N*/ long nDegrees=GetTextRotation((SfxItemSet&)rAttr,eOrient); -/*N*/ if(nDegrees) -/*N*/ { -/*N*/ Rectangle aOldBoundRect=pObj->GetBoundRect(); -/*N*/ double fVal=nDegrees * nPi180; -/*N*/ pObj->Rotate(pObj->GetSnapRect().Center(), nDegrees, sin(fVal), cos(fVal)); -/*N*/ pObj->NbcMove( AdjustRotatedRect(aOldBoundRect, eAdjust,pObj->GetBoundRect())); -/*N*/ } -/*N*/ -/*N*/ //ToDo: appending of ,*(pItemPool->GetFrozenIdRanges()) ???, preliminaryly with these Whichpairs -/*N*/ SfxItemSet aAreaAttr(*pItemPool,nExchangeTitleWhichPairs); -/*N*/ -/*N*/ //Neu: #52009# -/*N*/ aAreaAttr.Put(SdrTextAutoGrowHeightItem( bIsTitle )); -/*N*/ aAreaAttr.Put(SdrTextAutoGrowWidthItem( bIsTitle )); -/*N*/ aAreaAttr.Put(rAttr); -/*N*/ -/*N*/ pObj->SetItemSet(aAreaAttr);//#63904# 10% -/*N*/ -/*N*/ pObj->InsertUserData(new SchObjectId(nId)); -/*N*/ pObj->InsertUserData(new SchObjectAdjust(eAdjust, eOrient)); -/*N*/ pObj->NbcSetOutlinerParaObject(pPara); -/*N*/ -/*N*/ return pObj; -/*N*/ } - -/************************************************************************* -|* -|* Set text of diagram-text objects -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Set attributes of diagram-text objects -|* -\************************************************************************/ - -/*N*/ void ChartModel::SetTextAttr(SdrTextObj& rTextObj, -/*N*/ const SfxItemSet& rAttr, -/*N*/ const long /*nMaximumWidth*/) -/*N*/ { -/*N*/ rTextObj.SetItemSetAndBroadcast( rAttr ); -/*N*/ -/*N*/ if ( rTextObj.GetOutlinerParaObject()) -/*N*/ { -/*N*/ SfxItemSet aTextAttr(*pItemPool, nTextWhichPairs); -/*N*/ aTextAttr.Put(rAttr); -/*N*/ aTextAttr.Put(SvxAdjustItem()); -/*N*/ -/*N*/ pOutliner->SetText(*rTextObj.GetOutlinerParaObject()); -/*N*/ -/*N*/ SetTextAttributes (aTextAttr); -/*N*/ -/*N*/ if(IsAttrChangeNeedsBuildChart(rAttr)) -/*N*/ { -/*N*/ // in this case a text resize/reorg might be necessary -/*N*/ -/*N*/ Size aSize = pOutliner->CalcTextSize(); -/*N*/ aSize.Height() += TEXTHEIGHT_OFS; -/*N*/ aSize.Width () = (aSize.Width () * 6) / 5; -/*N*/ -/*N*/ OutlinerParaObject* pPara = pOutliner->CreateParaObject(); -/*N*/ -/*N*/ pOutliner->Clear(); -/*N*/ -/*N*/ rTextObj.SetOutlinerParaObject(pPara); -/*N*/ AdjustTextSize(rTextObj, aSize); -/*N*/ } -/*N*/ } -/*N*/ } -/************************************************************************* -|* -|* Liefert die maximale Beschriftungs-Text-Groesse -|* FG: Hier wird der groesste Text berechnet und die Groesse des ersten -|* und letzten (je nach Chart-Typ braucht man einen oder alle 3 Werte -|* nNumberFormat ist der Index fuer ein Zahlenformat, dies kann noetig -|* sin um die wahre Textbreite und Hoehe auszurechnen -|* nMaximumWidth ist die Breite ab der der Text umgebrochen wird -|* -\************************************************************************/ - -/*N*/ Size ChartModel::CalcMaxDescrSize(BOOL bRowDescr, -/*N*/ SvxChartTextOrient eOrient, -/*N*/ const UINT32 nNumberFormat, -/*N*/ long nAxisUId, -/*N*/ const long MaximumWidth, -/*N*/ Pair* pFirstAndLast ) -/*N*/ { -/*N*/ ChartAxis *pCurrentXAxis = (nAxisUId == CHAXIS_AXIS_A)? pChartAAxis: pChartXAxis; -/*N*/ -/*N*/ BOOL bLogarithm = pCurrentXAxis->IsLogarithm(); -/*N*/ short nCnt; -/*N*/ SfxItemSet* pLclAxisAttr; -/*N*/ if (bRowDescr) -/*N*/ { -/*N*/ nCnt = GetRowCount(); -/*N*/ pLclAxisAttr = &GetAttr(CHOBJID_DIAGRAM_Z_AXIS); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ nCnt = GetColCount(); -/*N*/ pLclAxisAttr = &GetAttr(CHOBJID_DIAGRAM_X_AXIS); -/*N*/ } -/*N*/ -/*N*/ pOutliner->SetUpdateMode (FALSE); -/*N*/ -/*N*/ Size aMaxSize(0, 0); -/*N*/ -/*N*/ if (IsXYChart()) -/*N*/ { - /********************************************************************** - * XY-Chart oder Zeilen muessen zusammengefasst werden - **********************************************************************/ -/*N*/ if (/*IsXYChart() && */pCurrentXAxis->GetMin() == pCurrentXAxis->GetMax())//#55400# -/*N*/ { -/*?*/ return Size (0, 0); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ -/*N*/ // #55400# -/*N*/ // #67961# -/*N*/ double fMinX = pCurrentXAxis->GetMin(); -/*N*/ double fMaxX = pCurrentXAxis->GetMax(); -/*N*/ double fStepX = pCurrentXAxis->GetStep(); -/*N*/ -/*N*/ // Collect the items which control the text appearence and set them to -/*N*/ // the outliner. -/*N*/ SfxItemSet aTextAttr(*pItemPool, nTextOrientWhichPairs); -/*N*/ aTextAttr.Put(GetAttr(CHOBJID_DIAGRAM_X_AXIS)); -/*N*/ -/*N*/ double fAct = fMinX; -/*N*/ -/*N*/ while (fAct <= fMaxX) -/*N*/ { -/*N*/ String aNumStr; -/*N*/ Color* pDummy = NULL; -/*N*/ -/*N*/ pNumFormatter->GetOutputString(fAct, nNumberFormat, aNumStr, &pDummy); -/*N*/ -/*N*/ if (eOrient == CHTXTORIENT_STACKED) -/*?*/ pOutliner->SetText(StackString(aNumStr), pOutliner->GetParagraph( 0 )); -/*N*/ else -/*N*/ pOutliner->SetText(aNumStr, pOutliner->GetParagraph( 0 )); -/*N*/ -/*N*/ // FG: Hier wird wirklich berechnet wie groß der Textbereich werden soll. Insbesondere -/*N*/ // wird hier entschieden, ob der Text umgebrochen werden soll oder nicht! -/*N*/ SetTextAttributes (aTextAttr); -/*N*/ Size aSize = CalcTextSizeOfOneText (eOrient, aTextAttr, pOutliner, MaximumWidth, -/*N*/ TRUE, FALSE); -/*N*/ pOutliner->SetUpdateMode (FALSE); -/*N*/ -/*N*/ pOutliner->Clear(); -/*N*/ -/*N*/ if (aSize.Width() > aMaxSize.Width()) -/*N*/ aMaxSize.Width() = aSize.Width(); -/*N*/ if (aSize.Height() > aMaxSize.Height()) -/*N*/ aMaxSize.Height() = aSize.Height(); -/*N*/ -/*N*/ // FG: Die Berechnung erfolgt hier, damit die Raender in Create2DBackplane -/*N*/ if (fAct <= fMinX) -/*N*/ { -/*N*/ nWidthOfFirstXAxisText = aSize.Width(); -/*N*/ if(pFirstAndLast) -/*N*/ pFirstAndLast->A()=nWidthOfFirstXAxisText; -/*N*/ -/*N*/ } -/*N*/ IncValue(fAct, fStepX, bLogarithm); -/*N*/ // FG: Die Berechnung erfolgt hier, damit die Raender in Create2DBackplane -/*N*/ if (fAct >= fMaxX) -/*N*/ { -/*N*/ nWidthOfLastXAxisText = aSize.Width(); -/*N*/ if(pFirstAndLast) -/*N*/ pFirstAndLast->B()=nWidthOfLastXAxisText; -/*N*/ } -/*N*/ -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // Collect the items which control the text appearence and set them to -/*N*/ // the outliner. -/*N*/ SfxItemSet aTextAttr(*pItemPool, nTextOrientWhichPairs); -/*N*/ aTextAttr.Put(*pLclAxisAttr); -/*N*/ -/*N*/ for (short i = 0; i < nCnt; i++) -/*N*/ { -/*N*/ String aDescrStr = bRowDescr ? RowText(i) : ColText(i); -/*N*/ -/*N*/ if (eOrient == CHTXTORIENT_STACKED) -/*?*/ pOutliner->SetText(StackString(aDescrStr), pOutliner->GetParagraph( 0 )); -/*N*/ else -/*N*/ pOutliner->SetText(aDescrStr, pOutliner->GetParagraph( 0 )); -/*N*/ -/*N*/ // FG: Hier wird wirklich berechnet wie groß der Textbereich werden soll. Insbesondere wird -/*N*/ // hier entschieden, ob der Text umgebrochen werden soll oder nicht! -/*N*/ SetTextAttributes (aTextAttr); -/*N*/ Size aSize = CalcTextSizeOfOneText (eOrient, aTextAttr, pOutliner, MaximumWidth,TRUE, -/*N*/ FALSE); -/*N*/ pOutliner->SetUpdateMode (FALSE); -/*N*/ pOutliner->Clear(); -/*N*/ -/*N*/ if (aSize.Width() > aMaxSize.Width()) -/*N*/ aMaxSize.Width() = aSize.Width(); -/*N*/ if (aSize.Height() > aMaxSize.Height()) -/*N*/ aMaxSize.Height() = aSize.Height(); -/*N*/ // FG: Die Berechnung erfolgt hier, damit die Raender in Create2DBackplane -/*N*/ // richtig berechnet werden koennen. -/*N*/ if (i == 0) -/*N*/ { -/*N*/ nWidthOfFirstXAxisText = aSize.Width(); -/*N*/ if(pFirstAndLast) -/*N*/ pFirstAndLast->A()=nWidthOfFirstXAxisText; -/*N*/ } -/*N*/ if (i == nCnt-1) -/*N*/ { -/*N*/ nWidthOfLastXAxisText = aSize.Width(); -/*N*/ if(pFirstAndLast) -/*N*/ pFirstAndLast->B()=nWidthOfLastXAxisText; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ pOutliner->SetUpdateMode (TRUE); -/*N*/ -/*N*/ return aMaxSize; -/*N*/ } - -/************************************************************************* -|* -|* Datenzeilen-Attributsets initialisieren -|* -\************************************************************************/ - -// -// schneller machen, es muß nicht alles neu gebaut werden -// - -/*N*/ void ChartModel::InitDataAttrs() -/*N*/ { -/*N*/ CHART_TRACE( "ChartModel::InitDataAttrs" ); -/*N*/ -/*N*/ DBG_ASSERT( pChartData, "ChartModel::InitDataAttrs: No ChartData-Object available!" ); -/*N*/ -/*N*/ short nDataColCnt = pChartData->GetColCount(); -/*N*/ short nDataRowCnt = pChartData->GetRowCount(); - - /* For pie charts we need the maximum of both dimensions, because the pie interprets data a bit - * odd: only the first series (data-row) is used for the pie. Each segment is a data point of - * this single series. However to get the correct colors the array containing series attributes - * is used instead of the data point attributes. Thus for a 1x10 data we need 10 series - * attributes although we have only one series. However for 20x10 data we need 20 series - * attributes, because we actually have 20 series although just the first one is visible. But - * we need those attributes in case the chart type is switched. - */ -/*N*/ short nCnt = IsPieChart() -/*N*/ ? ::std::max( GetColCount(), GetRowCount()) -/*N*/ : GetRowCount(); -/*N*/ -/*N*/ short i; -/*N*/ -/*N*/ if (nCnt != nPieSegCount) -/*N*/ { -/*N*/ long *pOfs = new long[nCnt]; -/*N*/ -/*N*/ if (nPieSegCount > nCnt) -/*N*/ for (i = 0; i < nCnt; i++) -/*N*/ pOfs[i] = pPieSegOfs[i]; -/*N*/ else -/*N*/ { -/*N*/ for (i = 0; i < nPieSegCount; i++) -/*N*/ pOfs[i] = pPieSegOfs[i]; -/*N*/ for (; i < nCnt; i++) -/*N*/ pOfs[i] = 0; -/*N*/ } -/*N*/ -/*N*/ delete[] pPieSegOfs; -/*N*/ pPieSegOfs = pOfs; -/*N*/ nPieSegCount = nCnt; -/*N*/ } -/*N*/ -/*N*/ -/*N*/ long nRowListCnt ; -/*N*/ //regressattr -/*N*/ nRowListCnt = aRegressAttrList.size(); -/*N*/ -/*N*/ DBG_ASSERT( pDefaultColors, "invalid default colors" ); -/*N*/ size_t nNumDefCol = pDefaultColors->size(); -/*N*/ DBG_ASSERT( nNumDefCol, "Empty Default Color List" ); -/*N*/ -/*N*/ if (nCnt != nRowListCnt) -/*N*/ { -/*N*/ if (nRowListCnt > nCnt) -/*N*/ { - for ( i = nCnt; i < nRowListCnt; ++i ) - { - ItemSetList::iterator it = aRegressAttrList.begin(); - ::std::advance( it, nCnt ); - delete *it; - aRegressAttrList.erase( it ); - } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ for (i = nRowListCnt; i < nCnt; i++) -/*N*/ { -/*N*/ SfxItemSet* pRegressAttr = new SfxItemSet(*pItemPool, nGridWhichPairs); -/*N*/ aRegressAttrList.push_back( pRegressAttr ); -/*N*/ -/*N*/ pRegressAttr->Put(XLineStyleItem(XLINE_SOLID)); -/*N*/ pRegressAttr->Put(XLineWidthItem(100)); -/*N*/ if( nNumDefCol != 0 ) -/*N*/ { -/*N*/ XColorEntry* pEntry = (*pDefaultColors)[ i % nNumDefCol ]; -/*N*/ pRegressAttr->Put(XLineColorItem(pEntry->GetName(), -/*N*/ pEntry->GetColor())); -/*N*/ } -/*N*/ pRegressAttr->Put(XLineDashItem()); -/*N*/ pRegressAttr->Put(XLineStartItem()); -/*N*/ pRegressAttr->Put(XLineEndItem()); -/*N*/ pRegressAttr->Put(XLineStartWidthItem()); -/*N*/ pRegressAttr->Put(XLineEndWidthItem()); -/*N*/ pRegressAttr->Put(XLineStartCenterItem()); -/*N*/ pRegressAttr->Put(XLineEndCenterItem()); -/*N*/ pRegressAttr->Put(XLineTransparenceItem()); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ //average attr -/*N*/ nRowListCnt = aAverageAttrList.size(); -/*N*/ if (nCnt != nRowListCnt) -/*N*/ { -/*N*/ if (nRowListCnt > nCnt) -/*N*/ { - for ( i = nCnt; i < nRowListCnt; ++i ) - { - ItemSetList::iterator it = aAverageAttrList.begin(); - ::std::advance( it, nCnt ); - delete *it; - aAverageAttrList.erase( it ); - } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ for (i = nRowListCnt; i < nCnt; i++) -/*N*/ { -/*N*/ SfxItemSet* pAverageAttr = new SfxItemSet(*pItemPool, nGridWhichPairs); -/*N*/ aAverageAttrList.push_back( pAverageAttr ); -/*N*/ -/*N*/ pAverageAttr->Put(XLineStyleItem(XLINE_SOLID)); -/*N*/ pAverageAttr->Put(XLineWidthItem(0)); -/*N*/ if( nNumDefCol != 0 ) -/*N*/ { -/*N*/ XColorEntry* pEntry = (*pDefaultColors)[ i % nNumDefCol ]; -/*N*/ pAverageAttr->Put(XLineColorItem(pEntry->GetName(), -/*N*/ pEntry->GetColor())); -/*N*/ } -/*N*/ pAverageAttr->Put(XLineDashItem()); -/*N*/ pAverageAttr->Put(XLineStartItem()); -/*N*/ pAverageAttr->Put(XLineEndItem()); -/*N*/ pAverageAttr->Put(XLineStartWidthItem()); -/*N*/ pAverageAttr->Put(XLineEndWidthItem()); -/*N*/ pAverageAttr->Put(XLineStartCenterItem()); -/*N*/ pAverageAttr->Put(XLineEndCenterItem()); -/*N*/ pAverageAttr->Put(XLineTransparenceItem()); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ //error attr -/*N*/ nRowListCnt = (short)aErrorAttrList.size(); -/*N*/ if (nCnt != nRowListCnt) -/*N*/ { -/*N*/ if (nRowListCnt > nCnt) -/*N*/ { - for ( i = nCnt; i < nRowListCnt; ++i ) - { - ItemSetList::iterator it = aErrorAttrList.begin(); - ::std::advance( it, nCnt ); - delete *it; - aErrorAttrList.erase( it ); - } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ for (i = nRowListCnt; i < nCnt; i++) -/*N*/ { -/*N*/ SfxItemSet* pErrorAttr = new SfxItemSet(*pItemPool, nGridWhichPairs); -/*N*/ aErrorAttrList.push_back( pErrorAttr ); -/*N*/ -/*N*/ pErrorAttr->Put(XLineStyleItem(XLINE_SOLID)); -/*N*/ pErrorAttr->Put(XLineWidthItem(0)); -/*N*/ pErrorAttr->Put(XLineColorItem(String(), RGBColor(COL_BLACK))); -/*N*/ pErrorAttr->Put(XLineDashItem()); -/*N*/ pErrorAttr->Put(XLineStartItem()); -/*N*/ pErrorAttr->Put(XLineEndItem()); -/*N*/ pErrorAttr->Put(XLineStartWidthItem()); -/*N*/ pErrorAttr->Put(XLineEndWidthItem()); -/*N*/ pErrorAttr->Put(XLineStartCenterItem()); -/*N*/ pErrorAttr->Put(XLineEndCenterItem()); -/*N*/ pErrorAttr->Put(XLineTransparenceItem()); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ // Point-Attr -/*N*/ long nPointCnt = nDataColCnt * nDataRowCnt; -/*N*/ long nPointListCnt = aDataPointAttrList.size(); -/*N*/ if (nPointCnt != nPointListCnt) -/*N*/ { -/*N*/ if (nPointListCnt > nPointCnt) -/*N*/ { -/*N*/ while (nPointListCnt-- > nPointCnt) -/*N*/ { - ItemSetList::iterator it = aDataPointAttrList.begin(); - ::std::advance( it, nPointCnt ); - delete *it; - aDataPointAttrList.erase( it ); -/*N*/ } -/*N*/ } -/*N*/ else for (long ii = nPointListCnt; ii < nPointCnt; ii++) -/*N*/ aDataPointAttrList.push_back( NULL ); -/*N*/ } -/*N*/ -/*N*/ // Switch-Point-Attr -/*N*/ nPointListCnt = aSwitchDataPointAttrList.size(); -/*N*/ if (nPointCnt != nPointListCnt) -/*N*/ { -/*N*/ if (nPointListCnt > nPointCnt) -/*N*/ { -/*N*/ while (nPointListCnt-- > nPointCnt) -/*N*/ { - ItemSetList::iterator it = aSwitchDataPointAttrList.begin(); - ::std::advance( it, nPointCnt ); - delete *it; - aSwitchDataPointAttrList.erase( it ); -/*N*/ } -/*N*/ } -/*N*/ else for (long iii = nPointListCnt; iii < nPointCnt; iii++) -/*N*/ aSwitchDataPointAttrList.push_back( NULL ); -/*N*/ } -/*N*/ -/*N*/ //row attr -/*N*/ nRowListCnt = (short)aDataRowAttrList.size(); -/*N*/ if (nCnt != nRowListCnt) -/*N*/ { -/*N*/ if (nRowListCnt > nCnt) -/*N*/ { -/*N*/ //bevor attribute geloescht werden, wird reorganisiert -/*N*/ LogBookAttrData(); -/*N*/ -/*N*/ //Jetzt darf erst der Ueberhang geloescht werden: - for ( i = nCnt; i < nRowListCnt; ++i ) - { - ItemSetList::iterator it = aDataRowAttrList.begin(); - ::std::advance( it, nCnt ); - delete *it; - aDataRowAttrList.erase( it ); - } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ bool bIsCombiChart = -/*N*/ ( CHSTYLE_2D_LINE_COLUMN == eChartStyle ) || -/*N*/ ( CHSTYLE_2D_LINE_STACKEDCOLUMN == eChartStyle ); -/*N*/ -/*N*/ for (i = nRowListCnt; i < nCnt; i++) -/*N*/ { -/*N*/ SfxItemSet* pDataRowAttr = new SfxItemSet(*pItemPool, nRowWhichPairs); -/*N*/ aDataRowAttrList.push_back( pDataRowAttr ); -/*N*/ SetDefAttrRow(pDataRowAttr,i); -/*N*/ -/*N*/ // Change the defaults for lines in mixed line-column charts. -/*N*/ if( bIsCombiChart && IsLine( i ) ) -/*N*/ { -/*N*/ pDataRowAttr->ClearItem (SCHATTR_STYLE_SYMBOL); -/*N*/ pDataRowAttr->Put (XLineStyleItem (XLINE_SOLID)); -/*N*/ pDataRowAttr->Put (XLineWidthItem (0)); -/*N*/ } -/*N*/ } -/*N*/ if( ! bIsCombiChart ) -/*N*/ SetupLineColors( SETLINES_FILLCOLOR, nRowListCnt ); -/*N*/ } -/*N*/ } -/*N*/ LogBookAttrData(); -/*N*/ } - - -/************************************************************************* -|* -|* ggf. Attribute neu Organisieren erzeugen -|* -\************************************************************************/ -/*N*/ void ChartModel::LogBookAttrData() -/*N*/ { -/*N*/ CHART_TRACE( "ChartModel::LogBookAttrData" ); -/*N*/ -/*N*/ if(pLogBook) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*N*/ } -/************************************************************************* -|* -|* RowAttr neu setzen: -|* -\************************************************************************/ -/*N*/ void ChartModel::SetDefAttrRow(SfxItemSet* pDataRowAttr,const long i) -/*N*/ { -/*N*/ DBG_ASSERT( pDefaultColors, "Invalid default color list" ); -/*N*/ if( ! pDefaultColors ) -/*N*/ return; -/*N*/ -/*N*/ CHART_TRACE1( "ChartModel::SetDefAttrRow - Row #%ld", i ); -/*N*/ -/*N*/ size_t nNumDefCol = pDefaultColors->size(); -/*N*/ DBG_ASSERT( nNumDefCol, "invalid default colors" ); -/*N*/ -/*N*/ pDataRowAttr->Put(*pDummyAttr); -/*N*/ if( nNumDefCol != 0 ) -/*N*/ { -/*N*/ XColorEntry* pEntry = (*pDefaultColors)[ i % nNumDefCol ]; -/*N*/ pDataRowAttr->Put(XFillColorItem(pEntry->GetName(), -/*N*/ pEntry->GetColor())); -/*N*/ -/*N*/ if(IsLine(i)) //#54870# bei Linien defaultfarbe der Linie=FillColor -/*N*/ { -/*N*/ pDataRowAttr->Put(XLineColorItem(pEntry->GetName(), -/*N*/ pEntry->GetColor())); -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ pDataRowAttr->Put(XLineColorItem(String(), RGBColor(COL_BLACK))); -/*N*/ } -/*N*/ } -/************************************************************************* -|* -|* ggf. Demo-Chart erzeugen -|* -\************************************************************************/ - -/*N*/ void ChartModel::InitChartData(BOOL bNewTitles) -/*N*/ { -/*N*/ if (!pChartData) -/*N*/ { -/*N*/ SchMemChart* pMemChart = new SchMemChart(DEFAULT_COLCNT, DEFAULT_ROWCNT); -/*N*/ -/*N*/ pMemChart->SetMainTitle(String(SchResId(STR_TITLE_MAIN))); -/*N*/ pMemChart->SetSubTitle(String(SchResId(STR_TITLE_SUB))); -/*N*/ pMemChart->SetXAxisTitle(String(SchResId(STR_DIAGRAM_TITLE_X_AXIS))); -/*N*/ pMemChart->SetYAxisTitle(String(SchResId(STR_DIAGRAM_TITLE_Y_AXIS))); -/*N*/ pMemChart->SetZAxisTitle(String(SchResId(STR_DIAGRAM_TITLE_Z_AXIS))); -/*N*/ -/*N*/ for( short nCol = 0; nCol < DEFAULT_COLCNT; nCol++ ) -/*N*/ { -/*N*/ pMemChart->SetColText( nCol, pMemChart->GetDefaultColumnText( nCol )); -/*N*/ -/*N*/ for( short nRow = 0; nRow < DEFAULT_ROWCNT; nRow++ ) -/*N*/ { -/*N*/ pMemChart->SetData( nCol, nRow, fDefaultArr[ nRow ][ nCol ] ); -/*N*/ pMemChart->SetRowText( nRow, pMemChart->GetDefaultRowText( nRow )); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ SetChartData(*pMemChart, bNewTitles); -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Defaultfarben erstellen -|* -\************************************************************************/ - -/*N*/ void ChartModel::CreateDefaultColors () -/*N*/ { -/*N*/ SchOptions* pOptions = SCH_MOD1()->GetSchOptions(); -/*N*/ size_t nCount; -/*N*/ ColorData* pDefaultCol = NULL; -/*N*/ -/*N*/ if( pOptions ) -/*N*/ { -/*N*/ const SchColorTable& aDefCols = pOptions->GetDefaultColors(); -/*N*/ nCount = aDefCols.Count(); -/*N*/ pDefaultCol = new ColorData[ nCount ]; -/*N*/ DBG_ASSERT( nCount == ROW_COLOR_COUNT, "Chart: dynamic default color array size not supported yet" ); -/*N*/ -/*N*/ for( size_t i=0; i<nCount; i++ ) -/*N*/ { -/*N*/ pDefaultCol[ i ] = aDefCols.GetColorData( i ); -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ nCount = ROW_COLOR_COUNT; -/*?*/ pDefaultCol = new ColorData[ nCount ]; -/*?*/ -/*?*/ pDefaultCol[ 0 ] = RGB_COLORDATA( 0x99, 0x99, 0xff ); -/*?*/ pDefaultCol[ 1 ] = RGB_COLORDATA( 0x99, 0x33, 0x66 ); -/*?*/ pDefaultCol[ 2 ] = RGB_COLORDATA( 0xff, 0xff, 0xcc ); -/*?*/ pDefaultCol[ 3 ] = RGB_COLORDATA( 0xcc, 0xff, 0xff ); -/*?*/ pDefaultCol[ 4 ] = RGB_COLORDATA( 0x66, 0x00, 0x66 ); -/*?*/ pDefaultCol[ 5 ] = RGB_COLORDATA( 0xff, 0x80, 0x80 ); -/*?*/ pDefaultCol[ 6 ] = RGB_COLORDATA( 0x00, 0x66, 0xcc ); -/*?*/ pDefaultCol[ 7 ] = RGB_COLORDATA( 0xcc, 0xcc, 0xff ); -/*?*/ pDefaultCol[ 8 ] = RGB_COLORDATA( 0x00, 0x00, 0x80 ); -/*?*/ pDefaultCol[ 9 ] = RGB_COLORDATA( 0xff, 0x00, 0xff ); -/*?*/ pDefaultCol[ 10 ] = RGB_COLORDATA( 0x00, 0xff, 0xff ); -/*?*/ pDefaultCol[ 11 ] = RGB_COLORDATA( 0xff, 0xff, 0x00 ); -/*N*/ } -/*N*/ -/*N*/ // create colors from table if they exist otherwise copy default colors -/*N*/ pDefaultColors = new XColorEntryList; -/*N*/ Color aCol; -/*N*/ -/*N*/ for( size_t i = 0; i < nCount; i++ ) -/*N*/ { -/*N*/ aCol.SetColor( pDefaultCol[ i ] ); -/*N*/ pDefaultColors->push_back( new XColorEntry( aCol, String() ) ); -/*N*/ } -/*N*/ -/*N*/ delete[] pDefaultCol; -/*N*/ } - -/************************************************************************* -|* -|* Defaultfarben loeschen -|* -\************************************************************************/ - -void ChartModel::DestroyDefaultColors () -{ - if (pDefaultColors) - { - for( size_t i = 0, n = pDefaultColors->size(); i < n; ++i ) - delete (*pDefaultColors)[ i ]; - pDefaultColors->clear(); - delete pDefaultColors; - } - pDefaultColors = 0; -} - -/************************************************************************* -|* -|* Berechnung der Breite und der Hoehe eines Textes -|* -|* Derzeit ist diese funktion totaler Muell: Im wesentlichen werden die Werte direkt gesetzt -|* Hoehe = 2 * Texthoehe, Breite hoechstens MaximumWidth -|* -|* FG: Damit dies Funktioniert muss per SetText im Outliner (pOutliner) -|* der Text schon gesetzt sein! -|* -\************************************************************************/ -#define MAXLEGENDLINES 3 //#49908# #NACHTRAG# -#define CDEG2RAD(fAngle) ( (double)(fAngle)*F_PI/18000.0 ) - - -/*N*/ void ChartModel::SetTextAttributes (SfxItemSet & rTextAttributes) -/*N*/ { -/*N*/ ULONG nParagraphCount = pOutliner->GetParagraphCount(); -/*N*/ for (ULONG i=0; i<nParagraphCount; i++) -/*N*/ pOutliner->SetParaAttribs(i, rTextAttributes); -/*N*/ } - - -// bGetRotated sollte TRUE sein, wenn der verbrauchte Platz des Textes gemessen werden soll, -// und False, falls das TextRect berechnet und dann gedreht wird (sonst doppelte Drehung) -// The flag bSetTextAttributes tells the method wether to set the given attributes to the -// outliner. -/*N*/ Size ChartModel::CalcTextSizeOfOneText (SvxChartTextOrient eOrient, -/*N*/ SfxItemSet &rTextAttr, -/*N*/ SdrOutliner *pInOutliner, -/*N*/ long MaxW, -/*N*/ BOOL bGetRotated/*=FALSE*/, -/*N*/ BOOL bUseTextAttributes) -/*N*/ { -/*N*/ long MaximumWidth=MaxW; -/*N*/ -/*N*/ pInOutliner->SetUpdateMode (FALSE); -/*N*/ ULONG nParaCnt = pInOutliner->GetParagraphCount(); -/*N*/ -/*N*/ // FG: Jeder Absatz muss die Text-Attribute einzeln zugewiesen bekommen. (jedenfalls scheint es so) -/*N*/ // Besser waere es dass fuer alle Absaetze auf einmal setzen zu koennen. -/*N*/ if (bUseTextAttributes) -/*N*/ SetTextAttributes (rTextAttr); -/*N*/ -/*N*/ Size OldPaperSize = pInOutliner->GetPaperSize(); -/*N*/ -/*N*/ long nDegrees=GetTextRotation((SfxItemSet&)rTextAttr,eOrient);//#62531# -/*N*/ double fDeg(0.0), fSin(0.0), -/*N*/ fCos = 1; // BM: Initialize Cos for if statement after if(nDegrees)-Block -/*N*/ BOOL bBreakOK=TRUE; //s.u. -/*N*/ if(nDegrees) -/*N*/ { -/*N*/ //TVM: In einigen Bereichen macht Umbruch keinen Sinn, da die Breite steigt (90 bzw. -/*N*/ //270 Grad ist der triviale Fall!) Der genaue Bereich ist hier nicht festgelegt, -/*N*/ //denn jeder andere Fall ist leider nicht trivial! (Abhängig davon, wieviele Zeichen -/*N*/ //und welche umgebrochen werden, 2 Beispiele: -/*N*/ // 1. nur ein 'i' wird umgebrochen => Text wird fast immer breiter (ausser bei ~ 0 Grad) -/*N*/ // 2. der halbe Text wird umgebrochen => fast immer sinnvoll -/*N*/ //Die genaue Berechnung erfordert einen Test und ein Undo, wenn es breiter wird -/*N*/ //Im folgenden wird einfach die Mitte genommen -> 90% - Lösung -/*N*/ bBreakOK =!( ((nDegrees > 4500) && (nDegrees < 13500)) -/*N*/ || ((nDegrees >22500) && (nDegrees < 31500))); -/*N*/ -/*N*/ fDeg=CDEG2RAD(nDegrees); -/*N*/ fSin=fabs(sin(fDeg)); -/*N*/ fCos=fabs(cos(fDeg)); -/*N*/ -/*N*/ } -/*N*/ -/*N*/ if( MaximumWidth > 0 && fCos!=0) //Kein Umbruch bei 90 und 270 Grad oder Max<=0 -/*N*/ pInOutliner->SetPaperSize( Size( MaximumWidth, 0 ) ); -/*N*/ -/*N*/ -/*N*/ pInOutliner->SetUpdateMode (TRUE); -/*N*/ Size aSize = pInOutliner->CalcTextSize(); -/*N*/ pInOutliner->SetUpdateMode (FALSE); -/*N*/ Size aRot(aSize); -/*N*/ if(nDegrees) -/*N*/ { -/*N*/ aRot.Width() = (long)( (double)aSize.Width()*fCos + (double)aSize.Height()*fSin ); -/*N*/ aRot.Height()= (long)( (double)aSize.Width()*fSin + (double)aSize.Height()*fCos ); -/*N*/ } -/*N*/ -/*N*/ // FG: Diese Groesse wird nun veraendert, falls MaximumWidth > 0 und -/*N*/ // aSize.Width() > MaximumWidth, dann wird umgebrochen, genau einmal. -/*N*/ // Es kommen also hoechstens 2 Zeilen raus, der Rest wird dann abgeschnitten. -/*N*/ // An dieser Stelle werden aber nur die Attribute berechnet. -/*N*/ -/*N*/ if ((MaximumWidth > 0) && (eOrient != CHTXTORIENT_STACKED)) -/*N*/ { -/*N*/ #ifdef DBG_UTIL -/*N*/ if(!(aRot.Width() <= MaximumWidth)) -/*N*/ DBG_WARNING("ChartModel::CalcTextSizeOfOneText:Doch breiter?" ); -/*N*/ #endif -/*N*/ ULONG nLines = 0; -/*N*/ for( USHORT n = 0; n < pInOutliner->GetParagraphCount(); n++ ) -/*N*/ { -/*N*/ nLines += pInOutliner->GetLineCount( n ); -/*N*/ } -/*N*/ -/*N*/ // Silbentrennung nur bei >MAXLEGENDLINES Zeilen oder einem zu langen wort... -/*N*/ if ( bBreakOK -/*N*/ && ( ( nLines > MAXLEGENDLINES ) -/*N*/ || ( ( nLines >= 2 ) -/*N*/ && ( nParaCnt == 1 ) -/*N*/ && ( pInOutliner->GetText( pInOutliner->GetParagraph( 0 ) ).Search( ' ' ) -/*N*/ == STRING_NOTFOUND ) -/*N*/ ) -/*N*/ ) -/*N*/ ) -/*N*/ { -/*?*/ if ( nLines > MAXLEGENDLINES ) -/*?*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*?*/ } -/*?*/ -/*?*/ ULONG nLclParaCnt = pInOutliner->GetParagraphCount(); -/*?*/ -/*?*/ for (ULONG i = 0; i < nLclParaCnt; i++) -/*?*/ { -/*?*/ // Stets Silbentrennung -/*?*/ SfxItemSet aAttr(pInOutliner->GetParaAttribs(i)); -/*?*/ aAttr.Put( SfxBoolItem(EE_PARA_HYPHENATE, TRUE) ); -/*?*/ pInOutliner->SetParaAttribs(i, aAttr); -/*?*/ } -/*?*/ -/*?*/ //#50395# durch Bindestriche vergrößert worden-> -/*?*/ //statt 2 werden jetzt 3 Zeilen benötigt -/*?*/ ULONG nActLines = 0; -/*?*/ for( USHORT n = 0; n < pInOutliner->GetParagraphCount(); n++ ) -/*?*/ { -/*?*/ nActLines += pInOutliner->GetLineCount( n ); -/*?*/ } -/*?*/ if(nActLines>nLines) -/*?*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*N*/ -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ pInOutliner->SetPaperSize(OldPaperSize); -/*N*/ pInOutliner->SetUpdateMode (TRUE); -/*N*/ -/*N*/ return (bGetRotated && nDegrees) ? aRot : aSize; -/*N*/ } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chtmode2.cxx b/binfilter/bf_sch/source/core/sch_chtmode2.cxx deleted file mode 100644 index e0411f231..000000000 --- a/binfilter/bf_sch/source/core/sch_chtmode2.cxx +++ /dev/null @@ -1,2128 +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. - * - ************************************************************************/ - -#include "schattr.hxx" -#include "memchrt.hxx" - -#ifndef _SVX_CHRTITEM_HXX //autogen -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT -#define ITEMID_CHARTTEXTORDER SCHATTR_TEXT_ORDER -#define ITEMID_CHARTLEGENDPOS SCHATTR_LEGEND_POS - -#include <bf_svtools/eitem.hxx> - -#endif - -#include <bf_svtools/itempool.hxx> - - -#include <bf_svx/svdopath.hxx> - - -#include <bf_svx/xlnclit.hxx> -#include <bf_svx/xlnwtit.hxx> -#ifndef _ZFORLIST_HXX //autogen -#ifndef _ZFORLIST_DECLARE_TABLE -#define _ZFORLIST_DECLARE_TABLE -#endif -#endif -#include <bf_svx/eeitem.hxx> -#include <bf_svtools/zformat.hxx> -// header for getProcessServiceFactory - -#include "chmod3d.hxx" //SchRectObj - -#define ITEMID_FONTHEIGHT EE_CHAR_FONTHEIGHT -#define ITEMID_FONTWIDTH EE_CHAR_FONTWIDTH -#define ITEMID_FONT EE_CHAR_FONTINFO -#include "globfunc.hxx" -#include <bf_svx/svxids.hrc> -#include "schresid.hxx" -#include "schiocmp.hxx" - -#include "strings.hrc" -#include "glob.hrc" - -#include <bf_svx/fhgtitem.hxx> -#include <bf_svx/fontitem.hxx> - -#include <tools/tenccvt.hxx> - -#include "pairs.hxx" -#include "chaxis.hxx" - - -#include <legacysmgr/legacy_binfilters_smgr.hxx> -namespace binfilter { - - -/************************************************************************/ -const USHORT nCompatAxisWhichPairs[] = -{ - SCHATTR_TEXT_START, SCHATTR_TEXT_END, - SCHATTR_Y_AXIS_START, SCHATTR_Z_AXIS_END, //X-Z! - SCHATTR_AXISTYPE, SCHATTR_AXISTYPE, - SCHATTR_TEXT_DEGREES,SCHATTR_TEXT_DEGREES, - SCHATTR_TEXT_OVERLAP, SCHATTR_TEXT_OVERLAP, - SCHATTR_AXIS_START,SCHATTR_AXIS_END, - XATTR_LINE_FIRST, XATTR_LINE_LAST, - EE_ITEMS_START, EE_ITEMS_END, - SID_TEXTBREAK, SID_TEXTBREAK, - SID_ATTR_NUMBERFORMAT_VALUE, SID_ATTR_NUMBERFORMAT_VALUE, //10.585 - 0 -}; -/************************************************************************/ - -enum ChartStyleV0 -{ - CHART2D_LINE, - CHART2D_STACKEDLINE, - CHART2D_BAR, - CHART2D_STACKEDBAR, - CHART2D_COLUMN, - CHART2D_STACKEDCOLUMN, - CHART2D_AREA, - CHART2D_STACKEDAREA, - CHART2D_PIE, - CHART3D_STRIPE, - CHART3D_BAR, - CHART3D_FLATBAR, - CHART3D_STACKEDFLATBAR, - CHART3D_AREA, - CHART3D_STACKEDAREA, - CHART3D_SURFACE, - CHART3D_PIE -}; - -/************************************************************************* -|* -|* Datenbeschriftung erzeugen -|* -\************************************************************************/ - -//SdrObject* - -/*N*/ USHORT ChartModel::GetRegressStrId( long nRow ) -/*N*/ { -/*N*/ -/*N*/ const SfxItemSet& aDataRowAttr = GetDataRowAttr( nRow ); -/*N*/ USHORT nStringID = 0; -/*N*/ -/*N*/ switch (((const SfxInt32Item &) aDataRowAttr.Get (SCHATTR_STAT_REGRESSTYPE)).GetValue ()) -/*N*/ { -/*N*/ case CHREGRESS_NONE : -/*N*/ break; -/*N*/ -/*N*/ case CHREGRESS_LINEAR : -/*?*/ nStringID = STR_REGRESSION_LINEAR; -/*?*/ break; -/*N*/ -/*?*/ case CHREGRESS_LOG : -/*?*/ nStringID = STR_REGRESSION_LOG; -/*?*/ break; -/*?*/ -/*?*/ case CHREGRESS_EXP : -/*?*/ nStringID = STR_REGRESSION_EXP; -/*?*/ break; -/*?*/ -/*?*/ case CHREGRESS_POWER : -/*?*/ nStringID = STR_REGRESSION_POWER; -/*?*/ -/*N*/ } -/*N*/ return nStringID; -/*N*/ } -/************************************************************************* -|* -|* Diagrammlegende erzeugen -|* -\************************************************************************/ - -/*N*/ SdrObjGroup* ChartModel::CreateLegend(const Rectangle &aRect) -/*N*/ { -/*N*/ // Default ist, dass die Legende nicht breiter als 20% der gesamten Seitenbreite -/*N*/ // verwenden darf, unter der Bedingung, dass sie links oder rechts vom Chart steht. -/*N*/ // wenn sie ueber oder unter dem Chart steht, dann ist die Seitenbreite das Maximum -/*N*/ -/*N*/ //TVM: obiges ist nicht richtig, CreateLegend wurde stets ohne 2.Argument -/*N*/ //aufgerufen, daher galt immer fMax...=0.2, ausserdem bezieht sich die maximale -/*N*/ //Breite auf den Text in der Legende, nicht auf die Legende selbst -/*N*/ //(Test: 1-Zeiliges Chart mit langem Text!) -/*N*/ //Obiges klngt aber durchaus plausibel, also sollte man es mal bei Gelegenheit -/*N*/ //einbauen (ToDo:-Liste) -/*N*/ const double fMaximumWidth=0.2; -/*N*/ -/*N*/ SvxChartLegendPos eLegendPos = ((const SvxChartLegendPosItem&) pLegendAttr->Get(SCHATTR_LEGEND_POS)). -/*N*/ GetValue(); -/*N*/ BOOL bWide = (eLegendPos == CHLEGEND_TOP || eLegendPos == CHLEGEND_BOTTOM); -/*N*/ BOOL bRowLegend = !IsPieChart(); -/*N*/ BOOL bReverse = !bWide && IsStackedChart(); -/*N*/ BOOL bForceSolidLine = FALSE; -/*N*/ -/*N*/ SchObjGroup* pGroup = NULL; -/*N*/ -/*N*/ if (bLegendVisible) -/*N*/ { -/*N*/ -/*N*/ List aTextList; -/*N*/ long i; -/*N*/ long nRowCnt = GetRowCount(); -/*N*/ // FG: nCnt ist die Anzahl Texte! -/*N*/ long nCnt = bRowLegend ? nRowCnt : GetColCount(); -/*N*/ long nMaxX = 0; -/*N*/ long nMaxY = 0; -/*N*/ -/*N*/ long nLineMaxY = 0; //#50082# -/*N*/ -/*N*/ long* pHeightOfEntry = new long[nCnt*2]; // FG: Wirkliche Hoehe der Zeilen -/*N*/ long* pWidthOfEntry = new long[nCnt*2]; // FG: Wirkliche Breite der Zeilen -/*N*/ long nLines = 0; // Anzahl Zeilen -/*N*/ long nActualColumn = 1; // FG: Zaehlt die Anzahl Spalten -/*N*/ -/*N*/ long* pRegressNr = new long [nCnt]; -/*N*/ memset (pRegressNr, 0, sizeof (long) * nCnt); -/*N*/ -/*N*/ SfxItemSet aTextAttr(*pItemPool, nTextWhichPairs); -/*N*/ -/*N*/ aTextAttr.Put(*pLegendAttr); -/*N*/ -/*N*/ // FG: Hier wird einmal die Liste aller Texte durchgegangen um die maximale Hoehe und -/*N*/ // die maximale Breite zu bestimmen. Bei der Gelegenheit merkt man sich auch die -/*N*/ // Ausmasse der einzelnen Eintraege. -/*N*/ for (i = 0; i < nCnt; i++) -/*N*/ { -/*N*/ // FG: Mehr als fMaximumWidth des Charts soll die Legende nie einnehmen -/*N*/ SdrObject *pText = CreateTextObj(CHOBJID_TEXT, Point (), -/*N*/ bRowLegend ? RowText(i) : ColText(i), -/*N*/ aTextAttr, -/*N*/ FALSE, -/*N*/ CHADJUST_TOP_LEFT, //FG: wie der Default -/*N*/ static_cast<long>(GetPage(0)->GetSize().Width() * fMaximumWidth)); -/*N*/ -/*N*/ // FG: Das hier soll verhindern dass der Text in der Legende markiert werden kann -/*N*/ // dazu gibt es ja kein gueltiges Kontextmenue -/*N*/ pText->SetMarkProtect(TRUE); -/*N*/ aTextList.Insert(pText, LIST_APPEND); -/*N*/ -/*N*/ pWidthOfEntry[i] = pText->GetLogicRect().GetWidth(); -/*N*/ pHeightOfEntry[i] = pText->GetLogicRect().GetHeight(); -/*N*/ nMaxX = Max (nMaxX, pWidthOfEntry[i]); -/*N*/ nMaxY = Max (nMaxY, pHeightOfEntry[i]); -/*N*/ } -/*N*/ -/*N*/ if (IsXYChart()) -/*N*/ { -/*N*/ USHORT nStringID; -/*N*/ for( i = 1; i < nCnt; i++ ) -/*N*/ { -/*N*/ nStringID = GetRegressStrId( i ); -/*N*/ if( nStringID ) -/*N*/ { -/*?*/ SchResId aRegId = SchResId( nStringID ); -/*?*/ String aRegressStr( aRegId ); -/*?*/ String aSeriesName( bRowLegend -/*?*/ ? RowText( i ) -/*?*/ : ColText( i )); -/*?*/ String aLegendText( SchResId( STR_STATISTICS_IN_LEGEND )); -/*?*/ -/*?*/ aLegendText.SearchAndReplaceAscii( "$(STATTYP)", aRegressStr ); -/*?*/ aLegendText.SearchAndReplaceAscii( "$(ROWNAME)", aSeriesName ); -/*?*/ -/*?*/ SdrObject *pText = CreateTextObj( CHOBJID_TEXT, Point(), aLegendText, -/*?*/ aTextAttr, FALSE, -/*?*/ CHADJUST_TOP_LEFT, -/*?*/ static_cast<long>(GetPage( 0 )->GetSize().Width() * fMaximumWidth)); -/*?*/ -/*?*/ pText->SetMarkProtect( TRUE ); -/*?*/ aTextList.Insert(pText, LIST_APPEND); -/*?*/ -/*?*/ pWidthOfEntry[nLines+nCnt] = pText->GetLogicRect().GetWidth(); -/*?*/ pHeightOfEntry[nLines+nCnt] = pText->GetLogicRect().GetHeight(); -/*?*/ nMaxX = Max (nMaxX, pWidthOfEntry[nLines+nCnt]); -/*?*/ nMaxY = Max (nMaxY, pHeightOfEntry[nLines+nCnt]); -/*?*/ -/*?*/ pRegressNr [nLines] = i; -/*?*/ nLines ++; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if (IsXYChart ()) nCnt --; -/*N*/ nLines += nCnt; -/*N*/ -/*N*/ long nTextRows = 0; -/*N*/ long nTextCols = 0; -/*N*/ long nShows = 0; -/*N*/ -/*N*/ long nLegendHeight = ((SvxFontHeightItem &) pLegendAttr->Get (EE_CHAR_FONTHEIGHT)).GetHeight(); -/*N*/ long nLittleSpace = nLegendHeight / 3; -/*N*/ -/*N*/ // FG: Hier wird berechnet wieviele Spalten und Zeilen die Legende haben soll -/*N*/ if (!bWide) // dann ist die Legende mit den Zeilen untereinander links oder rechts -/*N*/ { -/*N*/ // FG: Die Legende darf maximal 90% der Blatthoehe einnehmen und maximal 50% der Blattbreite -/*N*/ if (nLines * (nMaxY + nLittleSpace) < (aRect.GetHeight() - 0.1 * aRect.GetHeight())) -/*N*/ { -/*N*/ nTextRows = nLines; -/*N*/ nTextCols = 1; // Also eine Spalte -/*N*/ } -/*N*/ else // Es gibt also mehrere Spalten -/*N*/ { -/*?*/ nTextRows = (long) ((aRect.GetHeight() - 0.1 * aRect.GetHeight()) / (nMaxY + nLittleSpace)); -/*?*/ if(!nTextRows) -/*?*/ nTextRows=1; -/*?*/ nTextCols = (long) ((nLines % nTextRows) ? nLines / nTextRows + 1 : nLines / nTextRows); -/*?*/ // FG: Falls die Legende zu breit (mehr als 50% der Chart-Breite) wird muss man nachregeln -/*?*/ if (nTextCols * (nMaxX + nLittleSpace) > aRect.GetWidth()) -/*?*/ { -/*?*/ nTextCols = (long) (aRect.GetWidth() * 0.5 / (nMaxX + nLittleSpace)); -/*?*/ } -/*?*/ } -/*N*/ } -/*N*/ else // die Legende befindet sich also unter oder ueber dem Chart (die wird noch beliebig gross) -/*N*/ { -/*?*/ nTextCols = (nLines * (nMaxX + 2*nLittleSpace + nLegendHeight) + nLittleSpace < aRect.GetWidth()) -/*?*/ ? nLines : (aRect.GetWidth() - nLittleSpace) / (nMaxX + 2*nLittleSpace + nLegendHeight); -/*?*/ nTextRows = nTextCols -/*?*/ ? ((nLines % nTextCols) ? nLines / nTextCols + 1 : nLines / nTextCols) : 0; -/*N*/ } - -/*N*/ if (nTextRows > 0 && nTextCols > 0) -/*N*/ { -/*N*/ pGroup = new SchObjGroup; -/*N*/ pGroup->InsertUserData(new SchObjectId(CHOBJID_LEGEND)); -/*N*/ SdrObject* pObj; -/*N*/ SdrObjList* pObjList = pGroup->GetSubList(); -/*N*/ -/*N*/ Point aTextPos (nLittleSpace, nLegendHeight / 4); -/*N*/ -/*N*/ for (i = 0, nShows = 0; -/*N*/ i < nLines; -/*N*/ i++, nShows ++) -/*N*/ { -/*N*/ // FG: bReverse ist fuer gestapelte Diagramme gedacht, damit die Legendensymbole -/*N*/ // optisch der Reihenfolge des stapelns entsprechen. -/*N*/ long nIndex = (IsXYChart()) -/*N*/ ? i+1 -/*N*/ : (bReverse) -/*N*/ ? nCnt - 1 - i -/*N*/ : i; -/*N*/ -/*N*/ if (i < nCnt) -/*N*/ { -/*N*/ BOOL bIsLine = FALSE; -/*N*/ if(HasSymbols(nIndex)) -/*N*/ { -/*N*/ pObj = CreateSymbol (Point (aTextPos.X () + nLegendHeight / 2, -/*N*/ aTextPos.Y () + nLegendHeight / 2 + nLittleSpace / 3), -/*N*/ nIndex, 0, (SfxItemSet &) GetDataRowAttr(nIndex), nLegendHeight, FALSE); -/*N*/ if(pObj) -/*N*/ { -/*N*/ Rectangle aLclRect(pObj->GetSnapRect()); -/*N*/ if((aLclRect.GetHeight() > nLegendHeight) && nLegendHeight) -/*N*/ { -/*?*/ Fraction aFract(nLegendHeight,aLclRect.GetHeight()); -/*?*/ pObj->NbcResize(aLclRect.Center(),aFract,aFract); -/*N*/ } -/*N*/ } -/*N*/ else //dann Linie als Legendensymbol, sonst geht evtl. garnix mehr -/*N*/ { -/*?*/ XPolygon aLine(2); -/*?*/ aLine [0] = -/*?*/ aLine [1] = aTextPos; -/*?*/ aLine [1].X() += nLegendHeight; -/*?*/ aLine [1].Y() += nLegendHeight; -/*?*/ bIsLine = TRUE; -/*?*/ pObj = new SdrPathObj(OBJ_PLIN, aLine); -/*N*/ } -/*N*/ } -/*N*/ else if (IsLine(nIndex)) -/*N*/ { -/*N*/ XPolygon aLine(2); -/*N*/ -/*N*/ aLine [0] = -/*N*/ aLine [1] = aTextPos; -/*N*/ aLine [1].X() += nLegendHeight; -/*N*/ aLine [1].Y() += nLegendHeight; -/*N*/ -/*N*/ bIsLine = TRUE; -/*N*/ pObj = new SdrPathObj(OBJ_PLIN, aLine); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // create rectangular shape as legend symbol -/*N*/ pObj = new SdrRectObj(Rectangle(Point (aTextPos.X(), -/*N*/ aTextPos.Y() + nLittleSpace / 3), -/*N*/ Size(nLegendHeight, nLegendHeight))); -/*N*/ bForceSolidLine = TRUE; -/*N*/ } -/*N*/ // FG: setzen des Symbols neben dem Legendentext -/*N*/ -/*N*/ SfxItemSet *pSymbolAttr; -/*N*/ -/*N*/ if( bRowLegend ) -/*N*/ { -/*N*/ pSymbolAttr = new SfxItemSet( GetDataRowAttr( nIndex ) ); -/*N*/ if( ! bIsLine && pSymbolAttr ) -/*N*/ GenerateSymbolAttr( *pSymbolAttr, nIndex, SYMBOLMODE_LEGEND ); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ pSymbolAttr = new SfxItemSet( GetFullDataPointAttr( nIndex, 0 ) ); -/*N*/ if( ! bIsLine && pSymbolAttr ) -/*N*/ GenerateSymbolAttr( *pSymbolAttr, 0, SYMBOLMODE_LEGEND ); -/*N*/ } -/*N*/ -/*N*/ if( bForceSolidLine ) -/*N*/ { -/*N*/ XLineStyle eLineStyle = -/*N*/ SAL_STATIC_CAST( const XLineStyleItem *, &(pSymbolAttr->Get( XATTR_LINESTYLE )) )->GetValue(); // bug in Win-C++ compiler: casting to pointer -/*N*/ -/*N*/ if( eLineStyle == XLINE_NONE ) -/*N*/ { -/*N*/ pSymbolAttr->ClearItem( XATTR_LINESTYLE ); -/*N*/ pSymbolAttr->ClearItem( XATTR_LINEWIDTH ); -/*N*/ pSymbolAttr->ClearItem( XATTR_LINECOLOR ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ pObj->SetItemSet(*pSymbolAttr); -/*N*/ -/*N*/ -/*N*/ if(bRowLegend) -/*N*/ { -/*N*/ pObj->InsertUserData(new SchObjectId(CHOBJID_LEGEND_SYMBOL_ROW)); -/*N*/ pObj->InsertUserData(new SchDataRow(nIndex)); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ pObj->InsertUserData(new SchObjectId(CHOBJID_LEGEND_SYMBOL_COL)); -/*N*/ pObj->InsertUserData(new SchDataPoint(nIndex, 0)); -/*N*/ } -/*N*/ -/*N*/ pObj->SetMoveProtect(TRUE); -/*N*/ pObj->SetResizeProtect(TRUE); -/*N*/ pObjList->NbcInsertObject(pObj); -/*N*/ -/*N*/ SdrObject *pText = (SdrObject*)aTextList.GetObject(nIndex); -/*N*/ -/*N*/ pText->NbcMove(Size(aTextPos.X() + nLittleSpace + nLegendHeight, aTextPos.Y())); -/*N*/ pObjList->NbcInsertObject(pText); -/*N*/ -/*N*/ delete pSymbolAttr; -/*N*/ } -/*N*/ else //i >= nCnt -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*N*/ -/*N*/ // FG: Jetzt wird aTextPos fuer den naechsten Legendeneintrag gesetzt -/*N*/ if (bWide) -/*N*/ { -/*?*/ if (nShows >= nTextCols - 1) -/*?*/ { -/*?*/ nLineMaxY = Max(nLineMaxY,pHeightOfEntry[i]);//#50082# #NACHTRAG# -/*?*/ aTextPos.Y () += nLineMaxY + nLittleSpace;//#50082# -/*?*/ aTextPos.X () = nLittleSpace;//nLegendHeight / 6;//SP3: #49906# -/*?*/ nLineMaxY = 0; //#50082# #NACHTRAG# -/*?*/ nShows = -1; -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ nLineMaxY = Max(nLineMaxY,pHeightOfEntry[i]);//#50082# -/*?*/ aTextPos.X () += nMaxX + 2 * nLittleSpace + nLegendHeight; -/*?*/ } -/*N*/ } -/*N*/ else if (nShows >= nTextRows - 1) // FG: Die Legende wird in mehrere Spalten umgebrochen -/*N*/ { // also den Spaltenabstand setzen -/*N*/ aTextPos.X () += nMaxX + nLittleSpace + nLegendHeight + 2*nLittleSpace; -/*N*/ aTextPos.Y () = nLegendHeight / 4; -/*N*/ nShows = -1; -/*N*/ if (nActualColumn >= nTextCols) // FG: Dann wird die Legende zu breit! -/*N*/ { -/*N*/ break; // aus der for-Schleife raus, -/*N*/ // es muessen noch Felder deleted werden. -/*N*/ } -/*?*/ nActualColumn++; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ -/*N*/ aTextPos.Y() += pHeightOfEntry[nIndex] + nLittleSpace; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ //FG: Jetzt wird das umschliessende Rechteck berechnet. Man fraegt erst das -/*N*/ // BoundingRect des Legenden-Gruppenobjektes ab und addiert an den Raendern ein -/*N*/ // wenig Platz dazu. -/*N*/ Rectangle aLogRect = pGroup->GetLogicRect(); -/*N*/ aLogRect.Left() -= nLittleSpace; -/*N*/ aLogRect.Right() += nLittleSpace; -/*N*/ aLogRect.Top() -= nLittleSpace; -/*N*/ aLogRect.Bottom() += nLittleSpace; -/*N*/ SdrRectObj* pRectObj = new SchRectObj(aLogRect); -/*N*/ // FG: Das hier soll verhindern dass das Rechteck um die Legende markiert werden kann -/*N*/ pRectObj->SetMarkProtect(TRUE); -/*N*/ pRectObj->SetModel( this ); -/*N*/ pObjList->NbcInsertObject(SetObjectAttr(pRectObj, CHOBJID_LEGEND_BACK, -/*N*/ TRUE, TRUE, pLegendAttr), 0); -/*N*/ } -/*N*/ -/*N*/ delete[] pRegressNr; -/*N*/ delete[] pHeightOfEntry; -/*N*/ delete[] pWidthOfEntry; -/*N*/ } -/*N*/ -/*N*/ return pGroup; -/*N*/ } - -/************************************************************************* -|* -|* Diagramm erzeugen -|* -\************************************************************************/ - -/*N*/ SdrObjGroup* ChartModel::CreateChart(const Rectangle &rRect) -/*N*/ { -/*N*/ if( pDocShell ) -/*N*/ pDocShell->SetWaitCursor( TRUE ); -/*N*/ -/*N*/ Rectangle aRect( rRect ); -/*N*/ SdrObjGroup* pGroup; -/*N*/ -/*N*/ switch (eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_2D_AREA: -/*N*/ case CHSTYLE_2D_STACKEDAREA: -/*N*/ case CHSTYLE_2D_PERCENTAREA: -/*N*/ pGroup = Create2DRowLineChart(aRect);//neu, test! -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_LINE: -/*N*/ case CHSTYLE_2D_STACKEDLINE: -/*N*/ case CHSTYLE_2D_PERCENTLINE: -/*N*/ case CHSTYLE_2D_LINESYMBOLS : -/*N*/ case CHSTYLE_2D_STACKEDLINESYM : -/*N*/ case CHSTYLE_2D_PERCENTLINESYM : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL : -/*N*/ case CHSTYLE_2D_B_SPLINE : -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL : -/*N*/ case CHSTYLE_2D_STOCK_1: -/*N*/ case CHSTYLE_2D_STOCK_2: -/*N*/ case CHSTYLE_2D_STOCK_3: -/*N*/ case CHSTYLE_2D_STOCK_4: -/*N*/ pGroup = Create2DRowLineChart(aRect); -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_COLUMN: -/*N*/ case CHSTYLE_2D_STACKEDCOLUMN: -/*N*/ case CHSTYLE_2D_PERCENTCOLUMN: -/*N*/ case CHSTYLE_2D_BAR: -/*N*/ case CHSTYLE_2D_STACKEDBAR: -/*N*/ case CHSTYLE_2D_PERCENTBAR: -/*N*/ case CHSTYLE_2D_LINE_COLUMN: -/*N*/ case CHSTYLE_2D_LINE_STACKEDCOLUMN: -/*N*/ pGroup = Create2DColChart(aRect); -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_PIE_SEGOF1: -/*N*/ { -/*N*/ for (short i = 1; i < nPieSegCount; i++) -/*N*/ SetPieSegOfs(i, 0); -/*N*/ SetPieSegOfs( 0, 10 ); -/*N*/ pGroup = Create2DPieChart(aRect); -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ case CHSTYLE_2D_PIE_SEGOFALL: -/*N*/ { -/*N*/ for (short i = 0; i < nPieSegCount; i++) -/*N*/ SetPieSegOfs( i, 10 ); -/*N*/ } -/*N*/ -/*N*/ case CHSTYLE_2D_PIE: -/*N*/ pGroup = Create2DPieChart(aRect); -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_DONUT1: //DonutCharts haben jetzt eigenes Create -/*N*/ case CHSTYLE_2D_DONUT2: -/*N*/ pGroup = Create2DDonutChart(aRect); -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_XYSYMBOLS : -/*N*/ case CHSTYLE_2D_XY_LINE : -/*N*/ case CHSTYLE_2D_XY : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_XY : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY : -/*N*/ case CHSTYLE_2D_B_SPLINE_XY : -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL_XY : -/*N*/ pGroup = Create2DXYChart(aRect); -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_NET: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS: -/*N*/ case CHSTYLE_2D_NET_STACK: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_STACK: -/*N*/ case CHSTYLE_2D_NET_PERCENT: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_PERCENT: -/*N*/ pGroup = Create2DNetChart(aRect); -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_3D_COLUMN: -/*N*/ case CHSTYLE_3D_BAR: -/*N*/ case CHSTYLE_3D_STRIPE: -/*N*/ case CHSTYLE_3D_AREA: -/*N*/ case CHSTYLE_3D_SURFACE: -/*N*/ pGroup = Create3DDeepChart(aRect); -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_3D_FLATCOLUMN: -/*N*/ case CHSTYLE_3D_STACKEDFLATCOLUMN: -/*N*/ case CHSTYLE_3D_PERCENTFLATCOLUMN: -/*N*/ case CHSTYLE_3D_STACKEDAREA: -/*N*/ case CHSTYLE_3D_PERCENTAREA: -/*N*/ case CHSTYLE_3D_FLATBAR: -/*N*/ case CHSTYLE_3D_STACKEDFLATBAR: -/*N*/ case CHSTYLE_3D_PERCENTFLATBAR: -/*N*/ pGroup = Create3DFlatChart(aRect); -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_3D_PIE: -/*N*/ pGroup = Create3DNewPieChart(aRect); -/*N*/ break; -/*N*/ -/*N*/ default: -/*?*/ eChartStyle = CHSTYLE_2D_COLUMN; -/*?*/ pGroup = Create2DColChart(aRect); -/*?*/ break; -/*N*/ } -/*N*/ -/*N*/ if( pDocShell ) -/*N*/ pDocShell->SetWaitCursor( FALSE ); -/*N*/ -/*N*/ SdrPage* pPage=GetPage( 0 ); -/*N*/ SdrObject* pObj = GetObjWithId( CHOBJID_DIAGRAM_AREA, *pPage ); -/*N*/ if( pObj ) -/*N*/ pObj->SetMoveProtect( TRUE ); -/*N*/ -/*N*/ return pGroup; -/*N*/ } - -/*N*/ void ChartModel::StoreAttributes(SvStream& rOut) const -/*N*/ { -/*N*/ #ifdef DBG_UTIL -/*N*/ ByteString aBStr( aMainTitle, RTL_TEXTENCODING_ASCII_US ); -/*N*/ CHART_TRACE1( "ChartModel::StoreAttributes (%s)", aBStr.GetBuffer() ); -/*N*/ #endif -/*N*/ -/*N*/ rtl_TextEncoding eSysSet = ::GetSOStoreTextEncoding( gsl_getSystemTextEncoding()); -/*N*/ rOut.SetStreamCharSet( eSysSet ); -/*N*/ -/*N*/ SchIOCompat aIO(rOut, STREAM_WRITE, 17); -/*N*/ long nFileFormat = rOut.GetVersion (); -/*N*/ -/*N*/ //12: ChartAchsen -/*N*/ //13 Nachtrag: X-AchsenAttr-default bei XY-Charts (store unveraendert) -/*N*/ //14 Overlap , Gapwith der 2 Y-Achsen -/*N*/ //15 Neues 3D-Pie -/*N*/ //16 Items fuer Achse SCHATTR_AXIS_SHOWDESCR,SCHATTR_AXIS_SHOWAXIS aktiviert, -/*N*/ // bisher nur von pChartBAxis genutzt! -/*N*/ -/*N*/ // 12 - Umbruch ja/ein pro Achse hinzu -/*N*/ // 13 - Alle Variablen mit Tag 13: -/*N*/ // 14 - aSpotColor & aAmbientColor FG + TextausPositionen -/*N*/ // 15 - Textausrichtung -/*N*/ // 16 NumberFormatter -/*N*/ -/*N*/ //TODO: konvertieren der Attribute pChartAttr in eChartStyle (Fileversion >=10) -/*N*/ -/*N*/ UINT32 nMoreData = 16; -/*N*/ -/*N*/ short i, nCount; -/*N*/ -/*N*/ rOut << aLightVec->X (); -/*N*/ rOut << aLightVec->Y (); -/*N*/ rOut << aLightVec->Z (); -/*N*/ -/*N*/ if (pChartData) -/*N*/ { -/*N*/ INT16 ID = CHDATAID_MEMCHART; // damit aeltere versionen damit fertig werden -/*N*/ rOut << (INT16) ID; -/*N*/ rOut << *(SchMemChart*)pChartData; -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ INT16 nInt16 = (INT16)CHDATAID_NONE; rOut << nInt16; -/*N*/ } -/*N*/ -/*N*/ rOut << bIsCopied; -/*N*/ rOut << fMinData; -/*N*/ rOut << (INT16)eChartStyle; -/*N*/ -/*N*/ for (i = 0; i < LINE_POINT_COUNT; i++) -/*N*/ rOut << (INT16)eChartLinePoints[i]; -/*N*/ -/*N*/ -/*N*/ // Das ehemalige Member aRowColors[]. Es wird hier simuliert, damit -/*N*/ // alte Codeversionen mit der hier geschriebenen Datei arbeiten koennen. -/*N*/ Color aRowColors[ROW_COLOR_COUNT]; -/*N*/ -/*N*/ aRowColors[0] = Color( 0, 153, 255); -/*N*/ aRowColors[1] = Color(255, 51, 102); -/*N*/ aRowColors[2] = Color(102, 102, 102); -/*N*/ aRowColors[3] = Color( 51, 204, 102); -/*N*/ aRowColors[4] = Color(153, 102, 204); -/*N*/ aRowColors[5] = Color(255, 153, 102); -/*N*/ aRowColors[6] = Color(255, 204, 153); -/*N*/ aRowColors[7] = Color(153, 204, 255); -/*N*/ aRowColors[8] = Color( 0, 204, 204); -/*N*/ aRowColors[9] = Color(153, 0, 153); -/*N*/ aRowColors[10] = Color(255, 51, 51); -/*N*/ -/*N*/ aRowColors[11] = RGBColor(COL_WHITE); -/*N*/ for (i = 0; i < ROW_COLOR_COUNT; i++) -/*N*/ rOut << aRowColors[i]; -/*N*/ -/*N*/ const long nGapWidth = 10; -/*N*/ const long nOverlap = 0; -/*N*/ rOut << (INT32)nGapWidth; -/*N*/ rOut << (INT32)nOverlap; -/*N*/ rOut << (INT32)nMarkLen; //entfaellt demnaechst! -> ChartAxis -/*N*/ rOut << aChartRect; -/*N*/ rOut << (INT32)nPieHeight; -/*N*/ -/*N*/ rOut << (INT16)nPieSegCount; -/*N*/ for (i = 0; i < nPieSegCount; i++) -/*N*/ rOut << (INT32)pPieSegOfs[i]; -/*N*/ -/*N*/ INT16 nXA=nXAngle; -/*N*/ INT16 nYA=nYAngle; -/*N*/ INT16 nZA=nZAngle; -/*N*/ if(IsReal3D() && IsPieChart()) -/*N*/ { -/*N*/ Vector3D aVRot,aVTrans,aVShear,aVScale; -/*N*/ aSceneMatrix.Decompose(aVScale,aVTrans,aVRot,aVShear); -/*N*/ long nAngle= (long)(aVRot.Z() * 1800.0 / F_PI); -/*N*/ nAngle -= 900; -/*N*/ nAngle += 3600; -/*N*/ nAngle %= 3600; -/*N*/ nYA = (INT16)nAngle; -/*N*/ } -/*N*/ -/*N*/ rOut << (INT16)nXA;//anle; -/*N*/ rOut << (INT16)nYA;//ngle; -/*N*/ rOut << (INT16)nZA;//ngle; -/*N*/ -/*N*/ -/*N*/ //neu wegen Achsenrestrukturierung -/*N*/ BOOL bShowXAxis =pChartXAxis->IsVisible(); -/*N*/ BOOL bShowXDescr=pChartXAxis->HasDescription(); -/*N*/ BOOL bShowYAxis =pChartYAxis->IsVisible(); -/*N*/ BOOL bShowYDescr=pChartYAxis->HasDescription(); -/*N*/ BOOL bShowZAxis =pChartZAxis->IsVisible(); -/*N*/ BOOL bShowZDescr=pChartZAxis->HasDescription(); -/*N*/ -/*N*/ -/*N*/ // save unicode strings as ascii-strings for old binary format -/*N*/ rOut << (INT16)eSysSet; -/*N*/ -/*N*/ rOut << bShowMainTitle; -/*N*/ rOut.WriteByteString( aMainTitle ); -/*N*/ rOut << bShowSubTitle; -/*N*/ rOut.WriteByteString( aSubTitle ); -/*N*/ rOut << bShowXAxisTitle; -/*N*/ rOut.WriteByteString( aXAxisTitle ); -/*N*/ rOut << bShowYAxisTitle; -/*N*/ rOut.WriteByteString( aYAxisTitle ); -/*N*/ rOut << bShowZAxisTitle; -/*N*/ rOut.WriteByteString( aZAxisTitle ); -/*N*/ rOut << bShowXAxis; -/*N*/ rOut << bShowXGridMain; -/*N*/ rOut << bShowXGridHelp; -/*N*/ rOut << bShowXDescr; -/*N*/ rOut << bShowYAxis; -/*N*/ rOut << bShowYGridMain; -/*N*/ rOut << bShowYGridHelp; -/*N*/ rOut << bShowYDescr; -/*N*/ rOut << bShowZAxis; -/*N*/ rOut << bShowZGridMain; -/*N*/ rOut << bShowZGridHelp; -/*N*/ rOut << bShowZDescr; -/*N*/ -/*N*/ // In diesem Set koennten ungueltige Items vorhanden sein, da es -/*N*/ // das Set der allgemeinen TitleAttribute (aller Titel) ist -/*N*/ pTitleAttr->ClearInvalidItems(); -/*N*/ pTitleAttr->Store(rOut); -/*N*/ -/*N*/ pMainTitleAttr->Store(rOut); -/*N*/ pSubTitleAttr->Store(rOut); -/*N*/ pXAxisTitleAttr->Store(rOut); -/*N*/ pYAxisTitleAttr->Store(rOut); -/*N*/ pZAxisTitleAttr->Store(rOut); -/*N*/ -/*N*/ pAxisAttr->ClearInvalidItems(); -/*N*/ -/*N*/ pAxisAttr->Store(rOut); -/*N*/ -/*N*/ -/*N*/ -/*N*/ -/*N*/ -/*N*/ //Abwaertskompatibel speichern -/*N*/ pTmpXItems->Store(rOut); -/*N*/ pTmpYItems->Store(rOut); -/*N*/ pTmpZItems->Store(rOut); -/*N*/ -/*N*/ pGridAttr->ClearInvalidItems(); -/*N*/ pGridAttr->Store(rOut); -/*N*/ pXGridMainAttr->Store(rOut); -/*N*/ pYGridMainAttr->Store(rOut); -/*N*/ pZGridMainAttr->Store(rOut); -/*N*/ pXGridHelpAttr->Store(rOut); -/*N*/ pYGridHelpAttr->Store(rOut); -/*N*/ pZGridHelpAttr->Store(rOut); -/*N*/ pDiagramAreaAttr->Store(rOut); -/*N*/ pDiagramWallAttr->Store(rOut); -/*N*/ pDiagramFloorAttr->Store(rOut); -/*N*/ pLegendAttr->Store(rOut); -/*N*/ -/*N*/ -/*N*/ -/*N*/ if (nFileFormat == SOFFICE_FILEFORMAT_31) -/*N*/ { -/*N*/ -/*N*/ SfxItemSet aStoreAttr (*pItemPool, XATTR_LINE_FIRST, XATTR_LINE_LAST, -/*N*/ XATTR_FILL_FIRST, XATTR_FILL_LAST, -/*N*/ SCHATTR_DATADESCR_START, SCHATTR_DATADESCR_END, 0), -/*N*/ aPoolItemSet (*pItemPool, nRowWhichPairs), -/*N*/ *pItemSet; -/*N*/ -/*N*/ // FG: 25.2.97 Das Schreiben im 3.1 Format geht schief wenn man -/*N*/ // in globfunc.cxx die Routine CopyAttributesFrom40to31 verwendet. -/*N*/ // Dort wurden die items per Invalidate und Set einzeln kopiert. (falsch) -/*N*/ nCount = (short)aDataRowAttrList.size(); -/*N*/ rOut << (INT16)nCount; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ { -/*N*/ SfxItemSet* pSet = aStoreAttr.Clone(); -/*N*/ pSet->Put( *aDataRowAttrList[ i ], TRUE ); -/*N*/ pSet->Store( rOut ); -/*N*/ delete pSet; -/*N*/ } -/*N*/ -/*N*/ nCount = (short)aDataPointAttrList.size(); -/*N*/ rOut << (INT16)nCount; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ { -/*N*/ SfxItemSet* pSet = aStoreAttr.Clone(); -/*N*/ pItemSet = aDataPointAttrList[ i ]; -/*N*/ if (pItemSet != NULL) -/*N*/ pSet->Put (*pItemSet, TRUE ); -/*N*/ else -/*N*/ pSet->Put (aPoolItemSet, TRUE); -/*N*/ pSet->Store(rOut); -/*N*/ delete pSet; -/*N*/ } -/*N*/ -/*N*/ nCount = (short)aSwitchDataPointAttrList.size(); -/*N*/ rOut << (INT16)nCount; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ { -/*N*/ SfxItemSet* pSet = aStoreAttr.Clone(); -/*N*/ pItemSet = aSwitchDataPointAttrList[ i ]; -/*N*/ if (pItemSet != NULL) -/*N*/ pSet->Put (*pItemSet, TRUE ); -/*N*/ else -/*N*/ pSet->Put (aPoolItemSet, TRUE); -/*N*/ pSet->Store(rOut); -/*N*/ delete pSet; -/*N*/ } -/*N*/ } -/*N*/ else if(nFileFormat <= SOFFICE_FILEFORMAT_40 && IsReal3D()) //siehe auch DocShell, Save,SaveAs!!!!! -/*N*/ { -/*N*/ -/*N*/ nCount = (short)aTmpDataRowAttrList.size(); -/*N*/ rOut << (INT16)nCount; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ aTmpDataRowAttrList[ i ]->Store(rOut); -/*N*/ -/*N*/ nCount = (short)aTmpDataPointAttrList.size(); -/*N*/ rOut << (INT16)nCount; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ aTmpDataPointAttrList[ i ]->Store(rOut); -/*N*/ -/*N*/ nCount = (short)aTmpSwitchDataPointAttrList.size(); -/*N*/ rOut << (INT16)nCount; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ aTmpSwitchDataPointAttrList[ i ]->Store(rOut); -/*N*/ -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ SfxItemSet aPoolItemSet (*pItemPool, nRowWhichPairs), -/*N*/ * pItemSet; -/*N*/ -/*N*/ nCount = (short)aDataRowAttrList.size(); -/*N*/ rOut << (INT16)nCount; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ aDataRowAttrList[ i ]->Store(rOut); -/*N*/ -/*N*/ nCount = (short)aDataPointAttrList.size(); -/*N*/ rOut << (INT16)nCount; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ { -/*N*/ pItemSet = aDataPointAttrList[ i ]; -/*N*/ if (pItemSet != NULL) -/*N*/ pItemSet->Store(rOut); -/*N*/ else -/*N*/ aPoolItemSet.Store(rOut); -/*N*/ } -/*N*/ -/*N*/ nCount = (short)aSwitchDataPointAttrList.size(); -/*N*/ rOut << (INT16)nCount; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ { -/*N*/ pItemSet = aSwitchDataPointAttrList[ i ]; -/*N*/ if (pItemSet != NULL) -/*N*/ pItemSet->Store(rOut); -/*N*/ else -/*N*/ aPoolItemSet.Store(rOut); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ rOut << (INT16)eDataDescr; -/*N*/ rOut << bShowSym; -/*N*/ rOut << bSwitchData; -/*N*/ -/*N*/ UINT32 nTmp; -/*N*/ -/*N*/ nTmp=((ChartModel*)this)->GetNumFmt(CHOBJID_DIAGRAM_Y_AXIS,FALSE); -/*N*/ rOut << nTmp;//nValFormat; -/*N*/ nTmp=((ChartModel*)this)->GetNumFmt(CHOBJID_DIAGRAM_Y_AXIS,TRUE); -/*N*/ rOut << nTmp;//nPercentValFormat; -/*N*/ nTmp=((ChartModel*)this)->GetNumFmt(CHOBJID_DIAGRAM_X_AXIS,FALSE); -/*N*/ rOut << nTmp;//nDescrFormat; -/*N*/ nTmp=((ChartModel*)this)->GetNumFmt(CHOBJID_DIAGRAM_X_AXIS,TRUE); -/*N*/ rOut << nTmp;//nPercentDescrFormat; -/*N*/ -/*N*/ // Achtung : Gravierende Aenderungen an der Datei gegenueber der Auslieferungsversion -/*N*/ // es werden mehr Daten geschrieben : Die alte Version muss (!) das aber auch verkraften -/*N*/ // Die Reihenfolge muss (!!!!) eingehalten werden -/*N*/ pChartYAxis->StoreMemberCompat(rOut); -/*N*/ pChartXAxis->StoreMemberCompat(rOut); -/*N*/ pChartZAxis->StoreMemberCompat(rOut); -/*N*/ -/*N*/ rOut << fMaxData; -/*N*/ -/*N*/ rOut << nMoreData; -/*N*/ -/*N*/ if (nMoreData >= 2) -/*N*/ { -/*N*/ if (pChartData) -/*N*/ { -/*N*/ rOut.WriteByteString( pChartData->SomeData1() ); -/*N*/ rOut.WriteByteString( pChartData->SomeData2() ); -/*N*/ rOut.WriteByteString( pChartData->SomeData3() ); -/*N*/ rOut.WriteByteString( pChartData->SomeData4() ); -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ String aEmpty; -/*?*/ -/*?*/ rOut.WriteByteString( aEmpty ); -/*?*/ rOut.WriteByteString( aEmpty ); -/*?*/ rOut.WriteByteString( aEmpty ); -/*?*/ rOut.WriteByteString( aEmpty ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if (nMoreData >= 3) rOut << fSpotIntensity; -/*N*/ -/*N*/ if (nMoreData >= 4) -/*N*/ { -/*N*/ BOOL bDummy = TRUE; // war frueher bIsRegression -/*N*/ -/*N*/ rOut << bShowAverage; -/*N*/ rOut << (INT16)eErrorKind; -/*N*/ rOut << bDummy; -/*N*/ rOut << (INT16)eIndicate; -/*N*/ rOut << fIndicatePercent; -/*N*/ rOut << fIndicateBigError; -/*N*/ rOut << fIndicatePlus; -/*N*/ rOut << fIndicateMinus; -/*N*/ } -/*N*/ -/*N*/ if (nMoreData >= 5) rOut << (INT16) eRegression; -/*N*/ -/*N*/ if (nMoreData >= 6) -/*N*/ { -/*N*/ rOut << (INT32) nSplineDepth; -/*N*/ rOut << (INT32) nGranularity; -/*N*/ } -/*N*/ -/*N*/ if (nMoreData >= 7) -/*N*/ { -/*N*/ rOut << bLegendVisible; -/*N*/ } -/*N*/ -/*N*/ if (nMoreData >= 8) -/*N*/ { -/*N*/ nCount = (short)aRegressAttrList.size(); -/*N*/ rOut << (INT16)nCount; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ aRegressAttrList[ i ]->Store(rOut); -/*N*/ -/*N*/ nCount = (short)aAverageAttrList.size(); -/*N*/ rOut << (INT16)nCount; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ aAverageAttrList[ i ]->Store(rOut); -/*N*/ -/*N*/ nCount = (short)aErrorAttrList.size(); -/*N*/ rOut << (INT16)nCount; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ aErrorAttrList[ i ]->Store(rOut); -/*N*/ -/*N*/ } -/*N*/ -/*N*/ if (nMoreData >= 9) rOut << fAmbientIntensity; -/*N*/ if (nMoreData >= 10) rOut << bTextScalable; -/*N*/ if (nMoreData >= 11) rOut << aInitialSize; -/*N*/ if (nMoreData >= 12) // Zusaetze wegen des Umruchs von Achsentext und Legendentext -/*N*/ { -/*N*/ // Vielleicht etwas viel Speicher fuer BOOL, aber es macht nur 8 Byte pro Chart -/*N*/ rOut << (INT16) bFormatXAxisTextInMultipleLinesIfNecessary; -/*N*/ rOut << (INT16) bFormatYAxisTextInMultipleLinesIfNecessary; -/*N*/ rOut << (INT16) bFormatZAxisTextInMultipleLinesIfNecessary; -/*N*/ rOut << (INT16) bFormatLegendTextInMultipleLinesIfNecessary; -/*N*/ } -/*N*/ if (nMoreData >= 13) // Zusaetze wegen einer freien Positionierung und einem freien -/*N*/ { // Resize von Gruppenobjekten im Chart. -/*N*/ rOut << (INT16) nXAxisTextMaximumNumberOfLines; -/*N*/ rOut << (INT16) nYAxisTextMaximumNumberOfLines; -/*N*/ rOut << (INT16) nZAxisTextMaximumNumberOfLines; -/*N*/ rOut << (INT32) nWidthOfFirstXAxisText; -/*N*/ rOut << (INT32) nWidthOfLastXAxisText; -/*N*/ rOut << aTitleTopCenter; -/*N*/ rOut << aSubTitleTopCenter; -/*N*/ rOut << aDiagramRectangle; -/*N*/ rOut << aLegendTopLeft; -/*N*/ rOut << aTitleXAxisPosition; -/*N*/ rOut << aTitleYAxisPosition; -/*N*/ rOut << aTitleZAxisPosition; -/*N*/ rOut << (INT16) bUseRelativePositionsForChartGroups; -/*N*/ rOut << (INT16) bAdjustMarginsForLegend; -/*N*/ rOut << (INT16) bAdjustMarginsForMainTitle; -/*N*/ rOut << (INT16) bAdjustMarginsForSubTitle; -/*N*/ rOut << (INT16) bAdjustMarginsForXAxisTitle; -/*N*/ rOut << (INT16) bAdjustMarginsForYAxisTitle; -/*N*/ rOut << (INT16) bAdjustMarginsForZAxisTitle; -/*N*/ } -/*N*/ if (nMoreData >= 14) -/*N*/ { -/*N*/ rOut << aSpotColor; // FG: Von DL, um sich die Farbeinstellungen der 3d-Lichter -/*N*/ rOut << aAmbientColor; // bei 3d-Charts merken zu koennen. -/*N*/ -/*N*/ BOOL bTmp=bDiagramHasBeenMovedOrResized; //neu -> alt: dann immer rearrange -/*N*/ if(IsReal3D() && IsPieChart()) -/*N*/ bTmp=FALSE; -/*N*/ -/*N*/ rOut << bTmp; // FG: 12.3.97, Falls das Chart gespeichert wird -/*N*/ rOut << bMainTitleHasBeenMoved; // soll es immer noch die relativen Positionen -/*N*/ rOut << bSubTitleHasBeenMoved; // der Objektgruppen beachten, falls eine -/*N*/ rOut << bLegendHasBeenMoved; // dieser Gruppen bewegt worden ist. -/*N*/ rOut << bXAxisTitleHasBeenMoved; -/*N*/ rOut << bYAxisTitleHasBeenMoved; -/*N*/ rOut << bZAxisTitleHasBeenMoved; -/*N*/ } -/*N*/ if (nMoreData >= 15) // FG: 14.3.97 Damit bei einem angefassten Text die Position sinnvoll gesetzt werden -/*N*/ { // auch nach einer Schriftgroessenaenderung muss man sich merken wie die Ausrichtung war -/*N*/ rOut << (INT16) eAdjustXAxesTitle; -/*N*/ rOut << (INT16) eAdjustYAxesTitle; -/*N*/ rOut << (INT16) eAdjustZAxesTitle; -/*N*/ } -/*N*/ if (nMoreData >= 16) // NumberFormater waren bisher nicht persistent -/*N*/ { -/*N*/ pNumFormatter->Save( rOut ); -/*N*/ pNumFormatter->Save( rOut ); -/*N*/ pNumFormatter->Save( rOut ); -/*N*/ } -/*N*/ -/*N*/ rOut << (INT16) nBarPercentWidth; //#50116# ist ein long, aber Range von 0..100 -/*N*/ rOut << (INT32) m_nDefaultColorSet;//#50149# -/*N*/ -/*N*/ rOut << (INT32) nNumLinesInColChart;//#50212# -/*N*/ -/*N*/ // #74536# BM use these three former -1 dummies for -/*N*/ // numberformat last set by CALC -/*N*/ rOut << (INT32) nXLastNumFmt; -/*N*/ rOut << (INT32) nYLastNumFmt; -/*N*/ rOut << (INT32) nBLastNumFmt; -/*N*/ -/*N*/ rOut << (INT32)(-1); // dummy -/*N*/ -/*N*/ //IOVer 11 -/*N*/ pStockLineAttr->Store(rOut); -/*N*/ pStockLossAttr->Store(rOut); -/*N*/ pStockPlusAttr->Store(rOut); -/*N*/ -/*N*/ -/*N*/ //IOVer12: -/*N*/ //nAxisId ist die zu ladene/speichernde Achse, -/*N*/ //festgelegt sind in V12 nur 1=X, 2=Y,3=Z und 4=2.Y-Achse (B) -/*N*/ //neu: 5 = 2. X-Achse -/*N*/ //-1 bedeutet KEINE WEITEREN ACHSEN! -/*N*/ //Es MUSS keine Achse gestreamt werden (siehe Lade-Routine) -/*N*/ //Die Reihenfolge ist eigentlich auch egal, jedoch gilt beim Laden: -/*N*/ //erst die primaere und dann die sekundaere (X, bzw. evtl auch Y) Achse -/*N*/ //(um defaults aus der primaeren Achse heraus zu erzeugen) -/*N*/ -/*N*/ INT32 nAxisId=CHART_AXIS_PRIMARY_X; -/*N*/ rOut << nAxisId; -/*N*/ GetAttr(CHOBJID_DIAGRAM_X_AXIS).Store(rOut); -/*N*/ -/*N*/ nAxisId=CHART_AXIS_PRIMARY_Y; -/*N*/ rOut << nAxisId; -/*N*/ GetAttr(CHOBJID_DIAGRAM_Y_AXIS).Store(rOut); -/*N*/ -/*N*/ nAxisId=CHART_AXIS_PRIMARY_Z; -/*N*/ rOut << nAxisId; -/*N*/ GetAttr(CHOBJID_DIAGRAM_Z_AXIS).Store(rOut); -/*N*/ -/*N*/ nAxisId=CHART_AXIS_SECONDARY_Y; -/*N*/ rOut << nAxisId; -/*N*/ GetAttr(CHOBJID_DIAGRAM_B_AXIS).Store(rOut); -/*N*/ -/*N*/ nAxisId=CHART_AXIS_SECONDARY_X; -/*N*/ rOut << nAxisId; -/*N*/ GetAttr(CHOBJID_DIAGRAM_A_AXIS).Store(rOut); -/*N*/ -/*N*/ //Elementar wichtig! Diesen Wert zu streamen ist absolutes Minimum -/*N*/ //die obigen derzeit 4 Achsen kann man dagegen getrost reduzieren oder aufstocken -/*N*/ //ohne dass die Abwaertskompatiblitaet leidet! Genauso lassen sich beliebige -/*N*/ //Achsen mit einer Id>4 dazwischen haengen. In alten Versionen wird bei -/*N*/ //unbekannter id einfach ein Dummy geladen (und weggeschmissen) -/*N*/ nAxisId=-1; -/*N*/ rOut << nAxisId; -/*N*/ //Ende IOVersion 12 -/*N*/ -/*N*/ nTmp = aBarY1.GetGap(); -/*N*/ rOut << nTmp; -/*N*/ nTmp = aBarY1.GetOverlap(); -/*N*/ rOut << nTmp; -/*N*/ nTmp = aBarY2.GetGap(); -/*N*/ rOut << nTmp; -/*N*/ nTmp = aBarY2.GetOverlap(); -/*N*/ rOut << nTmp; -/*N*/ -/*N*/ -/*N*/ // IOVersion 15 -/*N*/ rOut << bDiagramHasBeenMovedOrResized; // FG: 12.3.97, Falls das Chart gespeichert wird -/*N*/ } - -/************************************************************************* -|* -|* Chart-Attribute laden -|* -\************************************************************************/ - -/*N*/ void ChartModel::LoadAttributes(SvStream& rIn) -/*N*/ { -/*N*/ #ifdef DBG_UTIL -/*N*/ ByteString aBStr( aMainTitle, RTL_TEXTENCODING_ASCII_US ); -/*N*/ CHART_TRACE1( "ChartModel::LoadAttributes (%s)", aBStr.GetBuffer() ); -/*N*/ #endif -/*N*/ -/*N*/ // aInfo is a member of SdrModel -/*N*/ // the SdrModel was read before this, so the value is set -/*N*/ rtl_TextEncoding eSysSet = ::GetSOLoadTextEncoding( aInfo.eLastReadCharSet, rIn.GetVersion()); -/*N*/ rIn.SetStreamCharSet( eSysSet ); -/*N*/ // Note: The CharSet is stored in the MemChart and later set again at the stream ! -/*N*/ -/*N*/ SchIOCompat aIO(rIn, STREAM_READ); -/*N*/ -/*N*/ short i, nCount; -/*N*/ INT16 nInt16, nCharSet; -/*N*/ INT32 nInt32; -/*N*/ SfxItemSet* pAttr; -/*N*/ BOOL bNoMore = FALSE; -/*N*/ int nVersion = aIO.GetVersion(); -/*N*/ -/*N*/ rIn >> aLightVec->X (); -/*N*/ rIn >> aLightVec->Y (); -/*N*/ rIn >> aLightVec->Z (); -/*N*/ -/*N*/ if (nVersion >= 3) -/*N*/ { -/*N*/ rIn >> nInt16; -/*N*/ -/*N*/ // fuer den fall, dass initial das diagrammfenster generiert wurde -/*N*/ delete pChartData; -/*N*/ -/*N*/ // Note: The CharSet is stored in the MemChart and set there at the stream ! -/*N*/ switch ((ChartDataId)nInt16) -/*N*/ { -/*N*/ case CHDATAID_MEMCHART_PLUS : -/*?*/ pChartData = new SchMemChart (CHDATAID_MEMCHART_PLUS); -/*?*/ rIn >> *(SchMemChart*)pChartData; -/*?*/ pChartData->IncreaseRefCount(); -/*?*/ break; -/*?*/ -/*?*/ case CHDATAID_DYNCHART: -/*N*/ case CHDATAID_MEMCHART: -/*N*/ pChartData = new SchMemChart (CHDATAID_MEMCHART); -/*N*/ rIn >> *(SchMemChart*)pChartData; -/*N*/ pChartData->IncreaseRefCount(); -/*N*/ break; -/*N*/ -/*N*/ default : -/*N*/ bNoMore = TRUE; -/*N*/ } -/*N*/ -/*N*/ if (nVersion >= 5) rIn >> bIsCopied; -/*N*/ -/*N*/ if (nVersion >= 8) rIn >> fMinData; -/*N*/ else if (pChartData) -/*N*/ { -/*?*/ long nColCnt = GetColCount(); -/*?*/ long nRowCnt = GetRowCount(); -/*?*/ -/*?*/ for (short nCol = 0; nCol < nColCnt; nCol++) -/*?*/ for (short nRow = 0; nRow < nRowCnt; nRow++) -/*?*/ { -/*?*/ double fData = GetData(nCol, nRow); -/*?*/ -/*?*/ if ((nCol == 0) && (nRow == 0)) -/*?*/ { -/*?*/ pChartYAxis->SetMin(fData); -/*?*/ pChartYAxis->SetMax(fData); -/*?*/ } -/*?*/ if (fData < pChartYAxis->GetMin()) -/*?*/ pChartYAxis->SetMin(fData); -/*?*/ if (fData > pChartYAxis->GetMax()) -/*?*/ pChartYAxis->SetMax(fData); -/*?*/ } -/*?*/ -/*?*/ bNoMore = TRUE; -/*?*/ } -/*N*/ } -/*N*/ -/*N*/ rIn >> nInt16; -/*N*/ if (nVersion < 1) -/*N*/ { -/*N*/ switch ((ChartStyleV0)nInt16) -/*N*/ { -/*?*/ case CHART2D_LINE: -/*?*/ eChartStyle = CHSTYLE_2D_LINE; -/*?*/ break; -/*?*/ -/*?*/ case CHART2D_STACKEDLINE: -/*?*/ eChartStyle = CHSTYLE_2D_STACKEDLINE; -/*?*/ break; -/*?*/ -/*?*/ case CHART2D_BAR: -/*?*/ eChartStyle = CHSTYLE_2D_COLUMN; -/*?*/ break; -/*?*/ -/*?*/ case CHART2D_STACKEDBAR: -/*?*/ eChartStyle = CHSTYLE_2D_STACKEDCOLUMN; -/*?*/ break; -/*?*/ -/*?*/ case CHART2D_COLUMN: -/*?*/ eChartStyle = CHSTYLE_2D_BAR; -/*?*/ break; -/*?*/ -/*?*/ case CHART2D_STACKEDCOLUMN: -/*?*/ eChartStyle = CHSTYLE_2D_STACKEDBAR; -/*?*/ break; -/*?*/ -/*?*/ case CHART2D_AREA: -/*?*/ eChartStyle = CHSTYLE_2D_AREA; -/*?*/ break; -/*?*/ -/*?*/ case CHART2D_STACKEDAREA: -/*?*/ eChartStyle = CHSTYLE_2D_STACKEDAREA; -/*?*/ break; -/*?*/ -/*?*/ case CHART2D_PIE: -/*?*/ eChartStyle = CHSTYLE_2D_PIE; -/*?*/ break; -/*?*/ -/*?*/ case CHART3D_STRIPE: -/*?*/ eChartStyle = CHSTYLE_3D_STRIPE; -/*?*/ break; -/*?*/ -/*?*/ case CHART3D_BAR: -/*?*/ eChartStyle = CHSTYLE_3D_COLUMN; -/*?*/ break; -/*?*/ -/*?*/ case CHART3D_FLATBAR: -/*?*/ eChartStyle = CHSTYLE_3D_FLATCOLUMN; -/*?*/ break; -/*?*/ -/*?*/ case CHART3D_STACKEDFLATBAR: -/*?*/ eChartStyle = CHSTYLE_3D_STACKEDFLATCOLUMN; -/*?*/ break; -/*?*/ -/*?*/ case CHART3D_AREA: -/*?*/ eChartStyle = CHSTYLE_3D_AREA; -/*?*/ break; -/*?*/ -/*?*/ case CHART3D_STACKEDAREA: -/*?*/ eChartStyle = CHSTYLE_3D_STACKEDAREA; -/*?*/ break; -/*?*/ -/*?*/ case CHART3D_SURFACE: -/*?*/ eChartStyle = CHSTYLE_3D_SURFACE; -/*?*/ break; -/*?*/ -/*?*/ case CHART3D_PIE: -/*?*/ eChartStyle = CHSTYLE_3D_PIE; -/*?*/ break; -/*?*/ -/*?*/ default : -/*?*/ eChartStyle = CHSTYLE_2D_COLUMN; -/*?*/ break; -/*?*/ } -/*?*/ -/*?*/ bNoMore = TRUE; -/*?*/ } -/*N*/ else -/*N*/ eChartStyle = (SvxChartStyle)nInt16; -/*N*/ -/*N*/ for (i = 0; i < LINE_POINT_COUNT; i++) -/*N*/ { -/*N*/ rIn >> nInt16; eChartLinePoints[i] = nInt16; -/*N*/ } -/*N*/ -/*N*/ // Das ehemalige Member aRowColors[] wird eingelesen. -/*N*/ Color aDummyColor; -/*N*/ for (i = 0; i < ROW_COLOR_COUNT; i++) -/*N*/ rIn >> aDummyColor; -/*N*/ -/*N*/ rIn >> nInt32; //nGapWidth = (long)nInt32; -/*N*/ rIn >> nInt32; //nOverlap = (long)nInt32; -/*N*/ rIn >> nInt32; -/*N*/ DBG_ASSERT( nInt32 == 100, "LoadAttributes: nMarkLen's value differs from 100 in this stream" ); -/*N*/ -/*N*/ rIn >> aChartRect; -/*N*/ rIn >> nInt32; nPieHeight = (long)nInt32; -/*N*/ -/*N*/ if (nVersion >= 6) -/*N*/ { -/*N*/ rIn >> nInt16; nPieSegCount = (short)nInt16; -/*N*/ pPieSegOfs = new long[nPieSegCount]; -/*N*/ -/*N*/ BOOL bNullify = (nVersion < 17) && eChartStyle == CHSTYLE_2D_PIE; -/*N*/ -/*N*/ for( i = 0; i < nPieSegCount; i++ ) -/*N*/ { -/*N*/ rIn >> nInt32; -/*N*/ pPieSegOfs[ i ] = bNullify? 0: (long)nInt32; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ rIn >> nInt16; nXAngle = (short)nInt16; -/*N*/ rIn >> nInt16; nYAngle = (short)nInt16; -/*N*/ rIn >> nInt16; nZAngle = (short)nInt16; -/*N*/ -/*N*/ rIn >> nCharSet; - - /************************************************************************** - * So machts der Writer, und so muessen es alle machen: - * Bug 9714: Der CharSet an den Fonts muss geaendert werden, wenn - * es der globale CharSet ist (MT) - **************************************************************************/ -/*N*/ SfxItemPool& rPool = GetItemPool(); -/*N*/ USHORT nMaxItems = rPool.GetItemCount(EE_CHAR_FONTINFO); -/*N*/ SvxFontItem* pItem; -/*N*/ -/*N*/ for (USHORT n = 0; n < nMaxItems; ++n) -/*N*/ { -/*N*/ pItem = (SvxFontItem*) rPool.GetItem(EE_CHAR_FONTINFO, n); -/*N*/ if (pItem && pItem->GetCharSet() == nCharSet) -/*N*/ { -/*N*/ pItem->GetCharSet() = eSysSet; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ -/*N*/ BOOL bShowXAxis; -/*N*/ BOOL bShowXDescr; -/*N*/ BOOL bShowYAxis; -/*N*/ BOOL bShowYDescr; -/*N*/ BOOL bShowZAxis; -/*N*/ BOOL bShowZDescr; -/*N*/ -/*N*/ rIn >> bShowMainTitle; -/*N*/ rIn.ReadByteString( aMainTitle ); -/*N*/ rIn >> bShowSubTitle; -/*N*/ rIn.ReadByteString( aSubTitle ); -/*N*/ rIn >> bShowXAxisTitle; -/*N*/ rIn.ReadByteString( aXAxisTitle ); -/*N*/ rIn >> bShowYAxisTitle; -/*N*/ rIn.ReadByteString( aYAxisTitle ); -/*N*/ rIn >> bShowZAxisTitle; -/*N*/ rIn.ReadByteString( aZAxisTitle ); -/*N*/ rIn >> bShowXAxis; -/*N*/ rIn >> bShowXGridMain; -/*N*/ rIn >> bShowXGridHelp; -/*N*/ rIn >> bShowXDescr; -/*N*/ rIn >> bShowYAxis; -/*N*/ rIn >> bShowYGridMain; -/*N*/ rIn >> bShowYGridHelp; -/*N*/ rIn >> bShowYDescr; -/*N*/ rIn >> bShowZAxis; -/*N*/ rIn >> bShowZGridMain; -/*N*/ rIn >> bShowZGridHelp; -/*N*/ rIn >> bShowZDescr; -/*N*/ - /************************************************************************** - * Nun werden die Attribut-ItemSets geladen - * Die etwas umstaendliche Art und Weise ist notwendig, da fruehere Charts - * nicht alle Items weggeschrieben haben. Daher wird in ein leeres ItemSet - * gestreamt und dieses in das Default-ItemSet geputtet (damit keine - * Pool-Defaults zum Tragen kommen). - **************************************************************************/ - -/*N*/ SfxItemSet aTitleAttr(*pItemPool, nTitleWhichPairs); -/*N*/ aTitleAttr.Load(rIn); -/*N*/ PutItemSetWithNameCreation( *pTitleAttr, aTitleAttr ); -/*N*/ -/*N*/ SfxItemSet aMainTitleAttr(*pItemPool, nTitleWhichPairs); -/*N*/ aMainTitleAttr.Load(rIn); -/*N*/ PutItemSetWithNameCreation( *pMainTitleAttr, aMainTitleAttr ); -/*N*/ -/*N*/ SfxItemSet aSubTitleAttr(*pItemPool, nTitleWhichPairs); -/*N*/ aSubTitleAttr.Load(rIn); -/*N*/ PutItemSetWithNameCreation( *pSubTitleAttr, aSubTitleAttr ); -/*N*/ -/*N*/ SfxItemSet aXAxisTitleAttr(*pItemPool, nTitleWhichPairs); -/*N*/ aXAxisTitleAttr.Load(rIn); -/*N*/ PutItemSetWithNameCreation( *pXAxisTitleAttr, aXAxisTitleAttr ); -/*N*/ -/*N*/ SfxItemSet aYAxisTitleAttr(*pItemPool, nTitleWhichPairs); -/*N*/ aYAxisTitleAttr.Load(rIn); -/*N*/ PutItemSetWithNameCreation( *pYAxisTitleAttr, aYAxisTitleAttr ); -/*N*/ -/*N*/ SfxItemSet aZAxisTitleAttr(*pItemPool, nTitleWhichPairs); -/*N*/ aZAxisTitleAttr.Load(rIn); -/*N*/ PutItemSetWithNameCreation( *pZAxisTitleAttr, aZAxisTitleAttr ); -/*N*/ -/*N*/ SfxItemSet aAxisAttr(*pItemPool, nAllAxisWhichPairs); -/*N*/ aAxisAttr.Load(rIn); -/*N*/ pAxisAttr->Put(aAxisAttr); -/*N*/ -/*N*/ CHART_TRACE( "LoadAttributes: Debugging load of old axis attr BEFORE conversion" ); -/*N*/ SfxItemSet aXAxisAttr(*pItemPool, nCompatAxisWhichPairs);//nXAxisWhich.... -/*N*/ aXAxisAttr.Load(rIn); -/*N*/ DBG_ITEMS(aXAxisAttr,(ChartModel*)this); -/*N*/ SfxItemSet aYAxisAttr(*pItemPool, nCompatAxisWhichPairs); -/*N*/ aYAxisAttr.Load(rIn); -/*N*/ DBG_ITEMS(aYAxisAttr,(ChartModel*)this); -/*N*/ SfxItemSet aZAxisAttr(*pItemPool, nCompatAxisWhichPairs); -/*N*/ aZAxisAttr.Load(rIn); -/*N*/ DBG_ITEMS(aZAxisAttr,(ChartModel*)this); -/*N*/ -/*N*/ if(nVersion < 12) //sonst wirds eh uebergebuegelt: -/*N*/ { -/*N*/ //konvertieren: -/*N*/ AxisAttrOld2New(aXAxisAttr,TRUE,CHOBJID_DIAGRAM_X_AXIS); -/*N*/ AxisAttrOld2New(aYAxisAttr,TRUE,CHOBJID_DIAGRAM_Y_AXIS); -/*N*/ AxisAttrOld2New(aZAxisAttr,TRUE,CHOBJID_DIAGRAM_Z_AXIS); -/*N*/ pChartXAxis->SetAttributes(aXAxisAttr); -/*N*/ pChartYAxis->SetAttributes(aYAxisAttr); -/*N*/ pChartZAxis->SetAttributes(aZAxisAttr); -/*N*/ CHART_TRACE( "LoadAttributes: Debugging AFTER conversion" ); -/*N*/ DBG_ITEMS(aXAxisAttr,(ChartModel*)this); -/*N*/ DBG_ITEMS(aYAxisAttr,(ChartModel*)this); -/*N*/ DBG_ITEMS(aZAxisAttr,(ChartModel*)this); -/*N*/ } -/*N*/ -/*N*/ SfxItemSet aGridAttr(*pItemPool, nGridWhichPairs); -/*N*/ aGridAttr.Load(rIn); -/*N*/ pGridAttr->Put(aGridAttr); -/*N*/ -/*N*/ SfxItemSet aXGridMainAttr(*pItemPool, nGridWhichPairs); -/*N*/ aXGridMainAttr.Load(rIn); -/*N*/ pXGridMainAttr->Put(aXGridMainAttr); -/*N*/ -/*N*/ SfxItemSet aYGridMainAttr(*pItemPool, nGridWhichPairs); -/*N*/ aYGridMainAttr.Load(rIn); -/*N*/ pYGridMainAttr->Put(aYGridMainAttr); -/*N*/ -/*N*/ SfxItemSet aZGridMainAttr(*pItemPool, nGridWhichPairs); -/*N*/ aZGridMainAttr.Load(rIn); -/*N*/ pZGridMainAttr->Put(aZGridMainAttr); -/*N*/ -/*N*/ SfxItemSet aXGridHelpAttr(*pItemPool, nGridWhichPairs); -/*N*/ aXGridHelpAttr.Load(rIn); -/*N*/ pXGridHelpAttr->Put(aXGridHelpAttr); -/*N*/ -/*N*/ SfxItemSet aYGridHelpAttr(*pItemPool, nGridWhichPairs); -/*N*/ aYGridHelpAttr.Load(rIn); -/*N*/ pYGridHelpAttr->Put(aYGridHelpAttr); -/*N*/ -/*N*/ SfxItemSet aZGridHelpAttr(*pItemPool, nGridWhichPairs); -/*N*/ aZGridHelpAttr.Load(rIn); -/*N*/ pZGridHelpAttr->Put(aZGridHelpAttr); -/*N*/ -/*N*/ SfxItemSet aDiagramAreaAttr(*pItemPool, nDiagramAreaWhichPairs); -/*N*/ aDiagramAreaAttr.Load(rIn); -/*N*/ PutItemSetWithNameCreation( *pDiagramAreaAttr, aDiagramAreaAttr ); -/*N*/ -/*N*/ SfxItemSet aDiagramWallAttr(*pItemPool, nDiagramAreaWhichPairs); -/*N*/ aDiagramWallAttr.Load(rIn); -/*N*/ PutItemSetWithNameCreation( *pDiagramWallAttr, aDiagramWallAttr ); -/*N*/ -/*N*/ SfxItemSet aDiagramFloorAttr(*pItemPool, nDiagramAreaWhichPairs); -/*N*/ aDiagramFloorAttr.Load(rIn); -/*N*/ PutItemSetWithNameCreation( *pDiagramFloorAttr, aDiagramFloorAttr ); -/*N*/ -/*N*/ SfxItemSet aLegendAttr(*pItemPool, nLegendWhichPairs); -/*N*/ aLegendAttr.Load(rIn); -/*N*/ PutItemSetWithNameCreation( *pLegendAttr, aLegendAttr ); -/*N*/ -/*N*/ if (nVersion < 2) -/*N*/ { -/*?*/ pTitleAttr->Put(SvxChartTextOrientItem(CHTXTORIENT_AUTOMATIC)); -/*?*/ pMainTitleAttr->Put(SvxChartTextOrientItem(CHTXTORIENT_AUTOMATIC)); -/*?*/ pSubTitleAttr->Put(SvxChartTextOrientItem(CHTXTORIENT_AUTOMATIC)); -/*?*/ pXAxisTitleAttr->Put(SvxChartTextOrientItem(CHTXTORIENT_AUTOMATIC)); -/*?*/ pYAxisTitleAttr->Put(SvxChartTextOrientItem(CHTXTORIENT_AUTOMATIC)); -/*?*/ pZAxisTitleAttr->Put(SvxChartTextOrientItem(CHTXTORIENT_AUTOMATIC)); -/*?*/ pAxisAttr->Put(SvxChartTextOrientItem(CHTXTORIENT_AUTOMATIC)); -/*?*/ -/*?*/ //Achsen auch fuer V12+ OK, (ToDo: Hier ist recht viel Overhead! ) -/*?*/ aXAxisAttr.ClearItem(); -/*?*/ aYAxisAttr.ClearItem(); -/*?*/ aZAxisAttr.ClearItem(); -/*?*/ aXAxisAttr.Put(SvxChartTextOrientItem(CHTXTORIENT_AUTOMATIC)); -/*?*/ aXAxisAttr.Put(SvxChartTextOrderItem(CHTXTORDER_SIDEBYSIDE)); -/*?*/ aYAxisAttr.Put(SvxChartTextOrientItem(CHTXTORIENT_AUTOMATIC)); -/*?*/ aYAxisAttr.Put(SvxChartTextOrderItem(CHTXTORDER_SIDEBYSIDE)); -/*?*/ aZAxisAttr.Put(SvxChartTextOrientItem(CHTXTORIENT_AUTOMATIC)); -/*?*/ pChartXAxis->SetAttributes(aXAxisAttr); -/*?*/ pChartYAxis->SetAttributes(aYAxisAttr); -/*?*/ pChartZAxis->SetAttributes(aZAxisAttr); -/*?*/ -/*?*/ bNoMore = TRUE; -/*?*/ } -/*N*/ -/*N*/ if (nVersion < 7) -/*N*/ { -/*?*/ GetAttr(CHOBJID_DIAGRAM_Y_AXIS).Put(SfxBoolItem(SCHATTR_AXIS_AUTO_ORIGIN, TRUE)); -/*?*/ GetAttr(CHOBJID_DIAGRAM_Y_AXIS).Put(SvxDoubleItem(0.0, SCHATTR_AXIS_ORIGIN)); -/*?*/ -/*?*/ bNoMore = TRUE; -/*N*/ } -/*N*/ -/*N*/ rIn >> nInt16; nCount = (short)nInt16; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ { -/*N*/ pAttr = new SfxItemSet(*pItemPool, nRowWhichPairs); -/*N*/ -/*N*/ pAttr->Load(rIn); -/*N*/ aDataRowAttrList.push_back( pAttr ); -/*N*/ } -/*N*/ -/*N*/ rIn >> nInt16; nCount = (short)nInt16; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ { -/*N*/ pAttr = new SfxItemSet(*pItemPool, nRowWhichPairs); -/*N*/ -/*N*/ pAttr->Load(rIn); -/*N*/ if (pAttr->Count() == 0) -/*N*/ { -/*N*/ delete pAttr; -/*N*/ pAttr = NULL; -/*N*/ } -/*N*/ aDataPointAttrList.push_back( pAttr ); -/*N*/ } -/*N*/ -/*N*/ if (nVersion < 4) -/*N*/ { -/*?*/ for (i = 0; i < nCount; i++) -/*?*/ { -/*?*/ aSwitchDataPointAttrList.push_back( NULL ); -/*?*/ } -/*?*/ -/*?*/ bNoMore = TRUE; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ rIn >> nInt16; nCount = (short)nInt16; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ { -/*N*/ pAttr = new SfxItemSet(*pItemPool, nRowWhichPairs); -/*N*/ -/*N*/ pAttr->Load(rIn); -/*N*/ if (pAttr->Count() == 0) -/*N*/ { -/*N*/ delete pAttr; -/*N*/ pAttr = NULL; -/*N*/ } -/*N*/ aSwitchDataPointAttrList.push_back( pAttr ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ rIn >> nInt16; eDataDescr = (SvxChartDataDescr)nInt16; -/*N*/ rIn >> bShowSym; -/*N*/ rIn >> bSwitchData; -/*N*/ -/*N*/ if (nVersion < 1) -/*N*/ { -/*?*/ BOOL bDataPercent; -/*?*/ rIn >> bDataPercent; -/*?*/ -/*?*/ switch (eChartStyle) -/*?*/ { -/*?*/ case CHSTYLE_2D_LINE: -/*?*/ eChartStyle = CHSTYLE_2D_PERCENTLINE; -/*?*/ break; -/*?*/ -/*?*/ case CHSTYLE_2D_COLUMN: -/*?*/ eChartStyle = CHSTYLE_2D_PERCENTCOLUMN; -/*?*/ break; -/*?*/ -/*?*/ case CHSTYLE_2D_BAR: -/*?*/ eChartStyle = CHSTYLE_2D_PERCENTBAR; -/*?*/ break; -/*?*/ -/*?*/ case CHSTYLE_2D_AREA: -/*?*/ eChartStyle = CHSTYLE_2D_PERCENTAREA; -/*?*/ break; -/*?*/ -/*?*/ case CHSTYLE_3D_FLATCOLUMN: -/*?*/ eChartStyle = CHSTYLE_3D_PERCENTFLATCOLUMN; -/*?*/ break; -/*?*/ -/*?*/ case CHSTYLE_3D_AREA: -/*?*/ eChartStyle = CHSTYLE_3D_PERCENTAREA; -/*?*/ break; - default: break; -/*?*/ } -/*?*/ -/*?*/ bNoMore = TRUE; -/*N*/ } -/*N*/ -/*N*/ UINT32 nTmp,nDescrFormat,nDescrPercentFormat; -/*N*/ rIn >> nTmp;//nValFo rmat; -/*N*/ SetNumFmt(CHOBJID_DIAGRAM_Y_AXIS,nTmp,FALSE); -/*N*/ rIn >> nTmp;//nPerce ntValFormat; -/*N*/ SetNumFmt(CHOBJID_DIAGRAM_Y_AXIS,nTmp,TRUE); -/*N*/ rIn >> nDescrFormat; -/*N*/ SetNumFmt(CHOBJID_DIAGRAM_X_AXIS,nDescrFormat,FALSE); -/*N*/ rIn >> nDescrPercentFormat; -/*N*/ SetNumFmt(CHOBJID_DIAGRAM_X_AXIS,nDescrPercentFormat,TRUE); -/*N*/ -/*N*/ // Achtung : Gravierende Aenderungen an der Datei gegenueber der Auslieferungsversion -/*N*/ // es werden mehr Daten geschrieben : Die alte Version muss (!) das aber auch verkraften -/*N*/ // Die Reihenfolge muss (!!!!) eingehalten werden -/*N*/ pChartYAxis->LoadMemberCompat(rIn); -/*N*/ pChartXAxis->LoadMemberCompat(rIn); -/*N*/ pChartZAxis->LoadMemberCompat(rIn); -/*N*/ -/*N*/ rIn >> fMaxData; -/*N*/ -/*N*/ if (!bNoMore) -/*N*/ { -/*N*/ UINT32 nMoreData = 0; -/*N*/ rIn >> nMoreData; -/*N*/ -/*N*/ // nMoreData soll als Weiche fuer zukuenftige Versionen dienen, -/*N*/ // insbesondere fuer den Fall, dass weitere Daten geschrieben werden -/*N*/ // muessen. Die Pools duerfen ab dem 19.01.1996 auf gar keinen Fall -/*N*/ // mehr modifiziert oder aufgebohrt werden !!!! -/*N*/ // ... -/*N*/ // nMoreData = 12 (Vobis-Version 4.0) -/*N*/ // nMoreData = 13 Cebit-Version -/*N*/ // .... siehe Text unten -/*N*/ // nMoreData = 15 V4.0 nach Cebit >= 358 -/*N*/ if (nMoreData > 1) -/*N*/ { -/*N*/ ByteString aReadString; -/*N*/ -/*N*/ rIn.ReadByteString( pChartData->SomeData1() ); -/*N*/ rIn.ReadByteString( pChartData->SomeData2() ); -/*N*/ rIn.ReadByteString( pChartData->SomeData3() ); -/*N*/ rIn.ReadByteString( pChartData->SomeData4() ); -/*N*/ -/*N*/ if (nMoreData >= 3) rIn >> fSpotIntensity; -/*N*/ if (nMoreData <= 8) fAmbientIntensity = fSpotIntensity; -/*N*/ -/*N*/ if (nMoreData >= 4) -/*N*/ { -/*N*/ BOOL bDummy; -/*N*/ -/*N*/ rIn >> bShowAverage; -/*N*/ rIn >> nInt16; eErrorKind = (SvxChartKindError) nInt16; -/*N*/ rIn >> bDummy; -/*N*/ rIn >> nInt16; eIndicate = (SvxChartIndicate) nInt16; -/*N*/ rIn >> fIndicatePercent; -/*N*/ rIn >> fIndicateBigError; -/*N*/ rIn >> fIndicatePlus; -/*N*/ rIn >> fIndicateMinus; -/*N*/ } -/*N*/ -/*N*/ if (nMoreData >= 5) -/*N*/ { -/*N*/ rIn >> nInt16; eRegression = (SvxChartRegress) nInt16; -/*N*/ } -/*N*/ -/*N*/ if (nMoreData >= 6) -/*N*/ { -/*N*/ INT32 nLclInt32; -/*N*/ rIn >> nLclInt32; nSplineDepth = nLclInt32; -/*N*/ rIn >> nLclInt32; nGranularity = nLclInt32; -/*N*/ } -/*N*/ -/*N*/ if (nMoreData >= 7) -/*N*/ { -/*N*/ rIn >> bLegendVisible; -/*N*/ } -/*N*/ -/*N*/ if (nMoreData >= 8) -/*N*/ { -/*N*/ rIn >> nInt16; nCount = (short)nInt16; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ { -/*N*/ pAttr = new SfxItemSet(*pItemPool, nGridWhichPairs); -/*N*/ -/*N*/ pAttr->Load(rIn); -/*N*/ aRegressAttrList.push_back( pAttr ); -/*N*/ } -/*N*/ -/*N*/ rIn >> nInt16; nCount = (short)nInt16; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ { -/*N*/ pAttr = new SfxItemSet(*pItemPool, nGridWhichPairs); -/*N*/ -/*N*/ pAttr->Load(rIn); -/*N*/ aAverageAttrList.push_back( pAttr ); -/*N*/ } -/*N*/ -/*N*/ rIn >> nInt16; nCount = (short)nInt16; -/*N*/ for (i = 0; i < nCount; i++) -/*N*/ { -/*N*/ pAttr = new SfxItemSet(*pItemPool, nGridWhichPairs); -/*N*/ -/*N*/ pAttr->Load(rIn); -/*N*/ aErrorAttrList.push_back( pAttr ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if (nMoreData >= 9) rIn >> fAmbientIntensity; -/*N*/ if (nMoreData >= 10) rIn >> bTextScalable; -/*N*/ if (nMoreData >= 11) rIn >> aInitialSize; -/*N*/ if (nMoreData >= 12) //FG: 20.2.1997 -/*N*/ { -/*N*/ // FG: Vielleicht etwas viel Speicher fuer BOOL, aber es macht nur 16 Byte pro Chart -/*N*/ rIn >> nInt16; bFormatXAxisTextInMultipleLinesIfNecessary = (BOOL) nInt16; -/*N*/ rIn >> nInt16; bFormatYAxisTextInMultipleLinesIfNecessary = (BOOL) nInt16; -/*N*/ rIn >> nInt16; bFormatZAxisTextInMultipleLinesIfNecessary = (BOOL) nInt16; -/*N*/ rIn >> nInt16; bFormatLegendTextInMultipleLinesIfNecessary = (BOOL) nInt16; -/*N*/ } -/*N*/ if (nMoreData >= 13) // FG: 9.3.1997 Zusaetze wegen einer freien Positionierung und einem freien -/*N*/ { // Resize von Gruppenobjekten im Chart. -/*N*/ rIn >> nInt16; nXAxisTextMaximumNumberOfLines = nInt16; -/*N*/ rIn >> nInt16; nYAxisTextMaximumNumberOfLines = nInt16; -/*N*/ rIn >> nInt16; nZAxisTextMaximumNumberOfLines = nInt16; -/*N*/ rIn >> nInt32; nWidthOfFirstXAxisText = nInt32; -/*N*/ rIn >> nInt32; nWidthOfLastXAxisText = nInt32; -/*N*/ rIn >> aTitleTopCenter; -/*N*/ rIn >> aSubTitleTopCenter; -/*N*/ rIn >> aDiagramRectangle; -/*N*/ rIn >> aLegendTopLeft; -/*N*/ rIn >> aTitleXAxisPosition; // FG: welcher Punkt da jeweils gemeint ist findet -/*N*/ rIn >> aTitleYAxisPosition; // bei nMoreData = 15 -/*N*/ rIn >> aTitleZAxisPosition; -/*N*/ rIn >> nInt16; bUseRelativePositionsForChartGroups = (BOOL) nInt16; -/*N*/ rIn >> nInt16; bAdjustMarginsForLegend = (BOOL) nInt16; -/*N*/ rIn >> nInt16; bAdjustMarginsForMainTitle = (BOOL) nInt16; -/*N*/ rIn >> nInt16; bAdjustMarginsForSubTitle = (BOOL) nInt16; -/*N*/ rIn >> nInt16; bAdjustMarginsForXAxisTitle = (BOOL) nInt16; -/*N*/ rIn >> nInt16; bAdjustMarginsForYAxisTitle = (BOOL) nInt16; -/*N*/ rIn >> nInt16; bAdjustMarginsForZAxisTitle = (BOOL) nInt16; -/*N*/ } -/*N*/ if (nMoreData >= 14) -/*N*/ { -/*N*/ rIn >> aSpotColor; // FG: Aenderung von DL damit sich das 3d-Chart die -/*N*/ rIn >> aAmbientColor; // Farbfilter-Einstellungen merkt. -/*N*/ -/*N*/ rIn >> bDiagramHasBeenMovedOrResized; // FG: 12.3.97, Falls das Chart gespeichert wird -/*N*/ rIn >> bMainTitleHasBeenMoved; // soll es immer noch die relativen Positionen -/*N*/ rIn >> bSubTitleHasBeenMoved; // der Objektgruppen beachten, falls eine -/*N*/ rIn >> bLegendHasBeenMoved; // dieser Gruppen bewegt worden ist. -/*N*/ rIn >> bXAxisTitleHasBeenMoved; -/*N*/ rIn >> bYAxisTitleHasBeenMoved; -/*N*/ rIn >> bZAxisTitleHasBeenMoved; -/*N*/ } -/*N*/ if (nMoreData >= 15) // FG: 14.3.97 Es braucht noch die Information der Ausrichtung -/*N*/ { // damit beim Resize die Texte richtig plaziert werden -/*N*/ rIn >> nInt16; eAdjustXAxesTitle = (ChartAdjust) nInt16; -/*N*/ rIn >> nInt16; eAdjustYAxesTitle = (ChartAdjust) nInt16; -/*N*/ rIn >> nInt16; eAdjustZAxesTitle = (ChartAdjust) nInt16; -/*N*/ } -/*N*/ if (nMoreData >= 16) -/*N*/ { -/*N*/ BOOL bNeedMerge=FALSE; -/*N*/ String aFmtStr; -/*N*/ sal_uInt32 nId; -/*N*/ if(nVersion <= 11)//ab V 12 X=Y=Z-Numberformatter! -/*N*/ { -/*?*/ SvNumberFormatter *pTmp = new SvNumberFormatter( ::legacy_binfilters::getLegacyProcessServiceFactory(), -/*?*/ LANGUAGE_SYSTEM ); -/*?*/ pTmp->Load(rIn); -/*?*/ nId = IsPercentChart() ? nDescrPercentFormat : nDescrFormat; -/*?*/ const SvNumberformat* pFmt=pTmp->GetEntry(nId); -/*?*/ -/*?*/ if(pFmt && (pFmt->GetType() & NUMBERFORMAT_DEFINED)) -/*?*/ { -/*?*/ aFmtStr = pFmt->GetFormatstring(); -/*?*/ bNeedMerge=TRUE; -/*?*/ } -/*?*/ delete pTmp; -/*?*/ } -/*N*/ else -/*N*/ { -/*N*/ pNumFormatter->SkipNumberFormatterInStream( rIn ); //Skip x -/*N*/ } -/*N*/ pOwnNumFormatter->Load( rIn ); // if not skipped load the own formatter ... -/*N*/ pNumFormatter = pOwnNumFormatter; // ... and use it -/*N*/ -/*N*/ // merge user formats of x axis formatter -/*N*/ if(bNeedMerge) -/*N*/ { -/*?*/ xub_StrLen nChk; -/*?*/ short nType; -/*?*/ pNumFormatter->PutEntry(aFmtStr,nChk,nType,nId,LANGUAGE_SYSTEM); -/*?*/ DBG_ASSERT(nChk==0,"Chart:: Converting X-Axis Numformat failed"); -/*?*/ SetNumFmt(CHOBJID_DIAGRAM_X_AXIS,nId,IsPercentChart()); -/*N*/ } -/*N*/ -/*N*/ pNumFormatter->SkipNumberFormatterInStream(rIn);//aTmp.Load( rIn );//pNumFormatterZ //immer wegschmeissen, hatte nie userdef. formats -/*N*/ } -/*N*/ } -/*N*/ aLastDiagramRectangle = aDiagramRectangle; // #68131# (#67459#) -/*N*/ } -/*N*/ -/*N*/ // FG: Das ist notwendig damit in SchChartDocShell::Draw das Chart Initialisiert -/*N*/ // wird, es also die wirkliche Groesse mitbekommt. Zum jetzigen Zeitpunkt nach dem -/*N*/ // Laden gibt es ja noch kein Fenster. Ein Aufruf von BuildChart an dieser Stelle -/*N*/ // geht also nicht. Bei einem Repaint wird in der oben genannten Methode abgefragt -/*N*/ // ob das Chart bereits existiert (bNoBuildChart), falls nicht wird es neu angelegt. -/*N*/ // -/*N*/ // bei den Versionen 4.0 oder hoeher wird die Initialisierung richtig gemacht -/*N*/ // bei Charts die Inplace aus Versionen 3.1 verwendet werden passiert das schon -/*N*/ // richtig. -/*N*/ // -/*N*/ // Dies betrifft nur 3D-Charts, die im Format der Version 3.1 geschrieben wurden. -/*N*/ // -/*N*/ // 21.4. Aenderung: Das Chart kann ja aus allen gespeicheten Daten erzeugt werden. -/*N*/ // um das File klein zu halten und da die Neuberechnung sehr viel schneller -/*N*/ // geworden ist. -/*N*/ if (((rIn.GetVersion() <= SOFFICE_FILEFORMAT_31) && (Is3DChart())) || -/*N*/ bUseRelativePositionsForChartGroups || (rIn.GetVersion() > SOFFICE_FILEFORMAT_31)) -/*N*/ { -/*N*/ bNoBuildChart = TRUE; -/*N*/ } -/*N*/ -/*N*/ -/*N*/ -/*N*/ if (nVersion >= 9)//#50116# Saeulenbreite -/*N*/ { -/*N*/ rIn >> nInt16; SetBarPercentWidth((long)nInt16); -/*N*/ -/*N*/ rIn >> nInt32; m_nDefaultColorSet=nInt32;//#50149# -/*N*/ -/*N*/ rIn >> nInt32; -/*N*/ // #78911# always set to 0 if charttype doesn't support lines -/*N*/ SetNumLinesColChart( ( eChartStyle == CHSTYLE_2D_LINE_COLUMN )? nInt32: 0 ); -/*N*/ -/*N*/ // #74536# BM use these three former -1 dummies for -/*N*/ // numberformat last set by CALC -/*N*/ rIn >> nXLastNumFmt; -/*N*/ rIn >> nYLastNumFmt; -/*N*/ rIn >> nBLastNumFmt; -/*N*/ rIn >> nInt32; // still dummy (-1) -/*N*/ -/*N*/ } -/*N*/ -/*N*/ if(nVersion >= 11)//10 existiert nicht (pChartAttr) -/*N*/ { -/*N*/ -/*N*/ SfxItemSet aAttr(*pItemPool, nRowWhichPairs); -/*N*/ aAttr.Load(rIn); -/*N*/ pStockLineAttr->Put(aAttr); -/*N*/ -/*N*/ aAttr.ClearItem(); -/*N*/ aAttr.Load(rIn); -/*N*/ pStockLossAttr->Put(aAttr); -/*N*/ -/*N*/ aAttr.ClearItem(); -/*N*/ aAttr.Load(rIn); -/*N*/ pStockPlusAttr->Put(aAttr); -/*N*/ } -/*N*/ -/*N*/ InitChartData(FALSE); //weia, beeinflusst die Achsen....also erst ab hier: -/*N*/ -/*N*/ -/*N*/ if(nVersion >= 12) -/*N*/ { -/*N*/ //Achse wird nur noch auf Attr-Basis gestreamt! -/*N*/ -/*N*/ //nAxisId ist die zu ladene/speichernde Achse, -/*N*/ //festgelegt sind in V12 nur 1=X, 2=Y,3=Z und 4=B (2.Y-Achse) -/*N*/ //-1 bedeutet KEINE WEITEREN ACHSEN !!!!!!!!!!! -/*N*/ //Es MUSS keine Achse gestreamt werden (siehe Lade-Routine) -/*N*/ INT32 nAxisId=0; -/*N*/ SfxItemSet aAxisSet(*pItemPool,nAxisWhichPairs); -/*N*/ while(nAxisId != -1)//hier koennen beliebig viele, auch unbekannte Achsen kommen -/*N*/ { -/*N*/ aAxisSet.ClearItem(); -/*N*/ rIn >> nAxisId; -/*N*/ -/*N*/ switch(nAxisId) -/*N*/ { -/*N*/ case CHART_AXIS_PRIMARY_X: -/*N*/ aAxisSet.Load(rIn); -/*N*/ SetAttributes(CHOBJID_DIAGRAM_X_AXIS,aAxisSet,FALSE); -/*N*/ SetAttributes(CHOBJID_DIAGRAM_A_AXIS,aAxisSet,FALSE);//falls nicht spaeter geladen wird, hier neue defaults setzen -/*N*/ pChartAAxis->ShowAxis(FALSE); //default aus -/*N*/ pChartAAxis->ShowDescr(FALSE); -/*N*/ pChartXAxis->Update(); //Ab V12 kann jetzt der ganze LoadMemberCompat...Kram uebergebuegelt werden, in den Attr war alles drin! -/*N*/ pChartAAxis->Update(); -/*N*/ break; -/*N*/ case CHART_AXIS_PRIMARY_Y: -/*N*/ aAxisSet.Load(rIn); -/*N*/ SetAttributes(CHOBJID_DIAGRAM_Y_AXIS,aAxisSet,FALSE); -/*N*/ pChartYAxis->Update(); -/*N*/ break; -/*N*/ case CHART_AXIS_PRIMARY_Z: -/*N*/ aAxisSet.Load(rIn); -/*N*/ SetAttributes(CHOBJID_DIAGRAM_Z_AXIS,aAxisSet,FALSE); -/*N*/ pChartZAxis->Update(); -/*N*/ break; -/*N*/ case CHART_AXIS_SECONDARY_Y: -/*N*/ aAxisSet.Load(rIn); -/*N*/ SetAttributes(CHOBJID_DIAGRAM_B_AXIS,aAxisSet,FALSE); -/*N*/ pChartBAxis->Update(); -/*N*/ break; -/*N*/ case CHART_AXIS_SECONDARY_X: -/*N*/ aAxisSet.Load(rIn); -/*N*/ SetAttributes(CHOBJID_DIAGRAM_A_AXIS,aAxisSet,FALSE); -/*N*/ pChartAAxis->Update(); -/*N*/ break; -/*N*/ case -1: //Ende der Achsen! -/*N*/ break; -/*N*/ default: //Attrset kommt aus der Zukunft! Laden und vernichten: -/*N*/ { -/*?*/ aAxisSet.Load(rIn); -/*N*/ } -/*N*/ break; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ else //defaults ergaenzen -/*N*/ { -/*?*/ SfxItemSet aSet(*pItemPool,nAxisWhichPairs); -/*?*/ aSet.Put(SfxInt32Item(SCHATTR_AXIS_TICKS,CHAXIS_MARK_OUTER)); -/*?*/ SetAttributes(CHOBJID_DIAGRAM_X_AXIS,aSet); -/*?*/ SetAttributes(CHOBJID_DIAGRAM_Y_AXIS,aSet); -/*N*/ } -/*N*/ //Ende IOVersion 12 -/*N*/ - -/*N*/ if(nVersion >= 14) -/*N*/ { -/*N*/ rIn >> nTmp; -/*N*/ aBarY1.SetGap(nTmp); -/*N*/ rIn >> nTmp; -/*N*/ aBarY1.SetOverlap(nTmp); -/*N*/ rIn >> nTmp; -/*N*/ aBarY2.SetGap(nTmp); -/*N*/ rIn >> nTmp; -/*N*/ aBarY2.SetOverlap(nTmp); -/*N*/ } -/*N*/ -/*N*/ if(nVersion >= 15) -/*N*/ { -/*N*/ SfxItemSet * pAttributes; -/*N*/ bResizePie=FALSE; -/*N*/ rIn >> bDiagramHasBeenMovedOrResized; // FG: 12.3.97, Falls das Chart gespeichert wird -/*N*/ -/*N*/ if(IsReal3D() && (IsPieChart()||IsLine())) //Hack wegen #62363#, double-sided neu defaulten -/*N*/ { -/*N*/ long nMax; -/*N*/ nMax=aDataRowAttrList.size(); -/*N*/ for(i=0;i<nMax;i++) -/*N*/ aDataRowAttrList[ i ]->Put(Svx3DDoubleSidedItem(TRUE)); -/*N*/ nMax=aDataPointAttrList.size(); -/*N*/ for(i=0;i<nMax;i++) -/*N*/ { -/*N*/ pAttributes = aDataPointAttrList[ i ]; -/*N*/ if (pAttributes != NULL) -/*?*/ pAttributes->Put(Svx3DDoubleSidedItem(TRUE)); -/*N*/ } -/*N*/ nMax=aSwitchDataPointAttrList.size(); -/*N*/ for(i=0;i<nMax;i++) -/*N*/ { -/*N*/ pAttributes = aSwitchDataPointAttrList[ i ]; -/*N*/ if (pAttributes != NULL) -/*N*/ pAttributes->Put(Svx3DDoubleSidedItem(TRUE)); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ //altes 3D-Pie? -/*?*/ bResizePie=TRUE; -/*?*/ if(IsReal3D() && IsPieChart()) -/*?*/ { -/*?*/ Matrix4D aTmp; //Matrix auf default -/*?*/ -/*?*/ aTmp.RotateZ((900 + nYAngle) * F_PI / 1800); //??? !!! -/*?*/ aTmp.RotateX(-F_PI/3); -/*?*/ -/*?*/ aSceneMatrix=aTmp; -/*?*/ } -/*?*/ -/*?*/ if(IsReal3D()) //#61923# -/*?*/ { -/*?*/ long nMax; -/*?*/ nMax=aDataRowAttrList.size(); -/*?*/ SfxItemSet * pAttributes; -/*?*/ -/*?*/ for(i=0;i<nMax;i++) -/*?*/ { -/*?*/ if(IsPieChart()||IsLine()) -/*?*/ aDataRowAttrList[ i ]->Put(Svx3DDoubleSidedItem(TRUE)); -/*?*/ aDataRowAttrList[ i ]->Put(XLineStyleItem(XLINE_NONE)); -/*?*/ } -/*?*/ -/*?*/ nMax=aDataPointAttrList.size(); -/*?*/ for(i=0;i<nMax;i++) -/*?*/ { -/*?*/ pAttributes = aDataPointAttrList[ i ]; -/*?*/ if (pAttributes == NULL) -/*?*/ continue; -/*?*/ if(IsPieChart()||IsLine()) -/*?*/ aDataPointAttrList[ i ]->Put(Svx3DDoubleSidedItem(TRUE)); -/*?*/ aDataPointAttrList[ i ]->Put(XLineStyleItem(XLINE_NONE)); -/*?*/ } -/*?*/ -/*?*/ -/*?*/ nMax=aSwitchDataPointAttrList.size(); -/*?*/ for(i=0;i<nMax;i++) -/*?*/ { -/*?*/ pAttributes = aSwitchDataPointAttrList[ i ]; -/*?*/ if (pAttributes == NULL) -/*?*/ continue; -/*?*/ if(IsPieChart()||IsLine()) -/*?*/ aSwitchDataPointAttrList[ i ]->Put(Svx3DDoubleSidedItem(TRUE)); -/*?*/ aSwitchDataPointAttrList[ i ]->Put(XLineStyleItem(XLINE_NONE)); -/*?*/ } -/*N*/ } -/*N*/ } - - // ******************** LAST READ ******************** - - - // ############# defaults erstellen, falls alte Fileversion #################### - -/*N*/ if(nVersion < 13) -/*N*/ { -/*?*/ if(IsXYChart()) -/*?*/ aDataRowAttrList[ 0 ]->Put(SfxInt32Item(SCHATTR_AXIS,CHART_AXIS_PRIMARY_X)); -/*N*/ } - //#54870# restaurieren der line-attribute -/*N*/ if( nVersion < 10) -/*N*/ { -/*?*/ SetupLineColors(SETLINES_COMPAT); -/*N*/ } -/*N*/ if( nVersion < 16) //Automatische 2.YAchse in Items umsetzten -/*N*/ { -/*?*/ const SfxPoolItem* pPoolItem=NULL; -/*?*/ for(long n=0;n<GetRowCount();n++) -/*?*/ if(GetDataRowAttr(n).GetItemState(SCHATTR_AXIS,TRUE, &pPoolItem) == SFX_ITEM_SET) -/*?*/ if(((const SfxInt32Item*)pPoolItem)->GetValue()==CHART_AXIS_SECONDARY_Y) -/*?*/ { -/*?*/ n=GetRowCount();//abbruch -/*?*/ pChartBAxis->ShowDescr(TRUE); -/*?*/ pChartBAxis->ShowAxis(TRUE); -/*?*/ } -/*N*/ } -/*N*/ -/*N*/ //dies ist immer moeglich (IoVersion<=16), in Zukunft sollten nur noch die Attr unterstuetzt werden, dann kann hier evtl. mit IOVersion geklammert werden! -/*N*/ pChartXAxis->ShowDescr(bShowXDescr); -/*N*/ pChartXAxis->ShowAxis(bShowXAxis); -/*N*/ pChartYAxis->ShowDescr(bShowYDescr); -/*N*/ pChartYAxis->ShowAxis(bShowYAxis); -/*N*/ pChartZAxis->ShowDescr(bShowZDescr); -/*N*/ pChartZAxis->ShowAxis(bShowZAxis); -/*N*/ -/*N*/ -/*N*/ //Bei unsortierten Charts machts keinen Sinn, nachdem Laden nochmal zu fragen -/*N*/ if( IsXYChart() ) -/*N*/ SETFLAG( nChartStatus, CHS_USER_NOQUERY ); -/*N*/ else -/*N*/ RESETFLAG( nChartStatus, CHS_USER_NOQUERY ); -/*N*/ -/*N*/ CHART_TRACE( "ChartModel::LoadAttributes END" ); -/*N*/ } - -/************************************************************************* -|* -|* Zeigt Legende an bzw. loescht sie. -|* -\************************************************************************/ - -/*N*/ void ChartModel::SetShowLegend(BOOL bShow) -/*N*/ { -/*N*/ pLegendAttr->Put(SvxChartLegendPosItem(bShow -/*N*/ ? CHLEGEND_RIGHT -/*N*/ : CHLEGEND_NONE)); -/*N*/ bLegendVisible = bShow; -/*N*/ } -/************************************************************************* -|* -|* Legenden-Attribute ermitteln -|* -\************************************************************************/ - -/*N*/ SfxItemSet ChartModel::GetFullLegendAttr() const -/*N*/ { -/*N*/ SfxItemSet aAttr(*pItemPool, nLegendWhichPairs); -/*N*/ aAttr.Put(*pLegendAttr); -/*N*/ return aAttr; -/*N*/ } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chtmode3.cxx b/binfilter/bf_sch/source/core/sch_chtmode3.cxx deleted file mode 100644 index 9b2e2a9f5..000000000 --- a/binfilter/bf_sch/source/core/sch_chtmode3.cxx +++ /dev/null @@ -1,1513 +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. - * - ************************************************************************/ - -#include <bf_svx/tabline.hxx> -#include <bf_svx/svdograf.hxx> -#include <bf_svx/svdopath.hxx> -#include <bf_svtools/whiter.hxx> -#include <bf_svx/xbtmpit.hxx> - -#include <bf_svx/eeitem.hxx> -#ifndef _SVX_COLRITEM_HXX //autogen -#define ITEMID_COLOR EE_CHAR_COLOR -#endif -#include <bf_svx/xflftrit.hxx> -#include <bf_svx/xflhtit.hxx> -#include <bf_svx/xtable.hxx> -#include "schattr.hxx" - -// header for SvxChartTextOrientItem -#ifndef _SVX_CHRTITEM_HXX -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT - - -#endif -#define ITEMID_FONTHEIGHT EE_CHAR_FONTHEIGHT -#include <globfunc.hxx> -#include <bf_svx/svxids.hrc> - - - -#include "schattr.hxx" -#ifndef _SVX_BRSHITEM_HXX //autogen -#define ITEMID_BRUSH SCHATTR_SYMBOL_BRUSH -#include <bf_svx/brshitem.hxx> -#endif -#ifndef _SVX_SIZEITEM_HXX //autogen -#define ITEMID_SIZE 0 -#include <bf_svx/sizeitem.hxx> -#endif -// header for SAL_STATIC_CAST -#include <sal/types.h> - -#include <bf_svx/xlnedit.hxx> -#include <bf_svx/xlnstit.hxx> -#include <bf_svx/xlndsit.hxx> -#include <bf_svx/xlnclit.hxx> -#include <bf_svx/xlnwtit.hxx> - -#include "glob.hrc" - -#include "chtscene.hxx" -#include "pairs.hxx" - -#include "chaxis.hxx" - -namespace binfilter { - -/************************************************************************* -|* -|* Entscheidung, ob BuildChart notwendig -|* -\************************************************************************/ -/*N*/ BOOL ChartModel::IsAttrChangeNeedsBuildChart(const SfxItemSet&) -/*N*/ { -/*N*/ // BM #60999# rebuild for all EE_CHAR attributes because of possibly red color for negative numbers. sorry :-( -/*N*/ return TRUE; -/*N*/ } - -/************************************************************************* -|* -|* Achsen-Attribute ermitteln -|* -\************************************************************************/ -/*N*/ ChartAxis* ChartModel::GetAxis(long nId) -/*N*/ { -/*N*/ switch(nId) -/*N*/ { -/*N*/ case CHOBJID_DIAGRAM_X_AXIS: -/*N*/ return pChartXAxis; -/*N*/ case CHOBJID_DIAGRAM_Y_AXIS: -/*N*/ return pChartYAxis; -/*N*/ case CHOBJID_DIAGRAM_Z_AXIS: -/*N*/ return pChartZAxis; -/*N*/ case CHOBJID_DIAGRAM_B_AXIS: -/*N*/ return pChartBAxis; -/*?*/ case CHOBJID_DIAGRAM_A_AXIS: -/*?*/ return pChartAAxis; -/*N*/ } -/*?*/ OSL_FAIL("ChartModel::GetAxis() illegal argument (nId=CHOBJID_)"); -/*?*/ return pChartYAxis; -/*N*/ } - - - -/* - Get axis attributes. - If pAxisObj is NULL then the intersection of the attributes of all five - axes is taken, regardless of wether the axes are visible or not. -*/ -/*N*/ SfxItemSet ChartModel::GetFullAxisAttr( const SdrObjGroup* pAxisObj, bool bOnlyInserted ) const -/*N*/ { -/*N*/ if (pAxisObj) -/*N*/ { -/*?*/ SchObjectId* pObjId = GetObjectId(*pAxisObj); -/*?*/ -/*?*/ if (pObjId) -/*?*/ { -/*?*/ long nId=pObjId->GetObjId(); -/*?*/ -/*?*/ SfxItemSet aAttr(*pItemPool,nAxisWhichPairs); -/*?*/ aAttr.Put(GetAttr(nId)); -/*?*/ ((ChartModel*)this)->GetAxis(nId)->GetMembersAsAttr(aAttr); -/*?*/ return aAttr; -/*?*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // clear member item set for all axes -/*N*/ pAxisAttr->ClearItem(); -/*N*/ bool bIsFirst = true; -/*N*/ -/*N*/ if( ! bOnlyInserted || HasAxis( CHOBJID_DIAGRAM_X_AXIS )) -/*N*/ { -/*N*/ if( bIsFirst ) -/*N*/ { -/*N*/ pAxisAttr->Set( GetAttr( CHOBJID_DIAGRAM_X_AXIS )); -/*N*/ bIsFirst = false; -/*N*/ } -/*N*/ else -/*?*/ IntersectSets( GetAttr( CHOBJID_DIAGRAM_X_AXIS ), *pAxisAttr ); -/*N*/ } -/*N*/ -/*N*/ if( ! bOnlyInserted || HasAxis( CHOBJID_DIAGRAM_Y_AXIS )) -/*N*/ { -/*N*/ if( bIsFirst ) -/*N*/ { -/*?*/ pAxisAttr->Set( GetAttr( CHOBJID_DIAGRAM_Y_AXIS )); -/*?*/ bIsFirst = false; -/*N*/ } -/*N*/ else -/*N*/ IntersectSets( GetAttr( CHOBJID_DIAGRAM_Y_AXIS ), *pAxisAttr ); -/*N*/ } -/*N*/ -/*N*/ if( ! bOnlyInserted || (Is3DChart() && HasAxis( CHOBJID_DIAGRAM_Z_AXIS ))) -/*N*/ { -/*N*/ if( bIsFirst ) -/*N*/ { -/*?*/ pAxisAttr->Set( GetAttr( CHOBJID_DIAGRAM_Z_AXIS )); -/*?*/ bIsFirst = false; -/*N*/ } -/*N*/ else -/*N*/ IntersectSets( GetAttr( CHOBJID_DIAGRAM_Z_AXIS ), *pAxisAttr ); -/*N*/ } -/*N*/ -/*N*/ if( ! bOnlyInserted || HasAxis( CHOBJID_DIAGRAM_A_AXIS )) -/*N*/ { -/*?*/ if( bIsFirst ) -/*?*/ { -/*?*/ pAxisAttr->Set( GetAttr( CHOBJID_DIAGRAM_A_AXIS )); -/*?*/ bIsFirst = false; -/*?*/ } -/*?*/ else -/*?*/ IntersectSets( GetAttr( CHOBJID_DIAGRAM_A_AXIS ), *pAxisAttr ); -/*N*/ } -/*N*/ -/*N*/ if( ! bOnlyInserted || HasAxis( CHOBJID_DIAGRAM_B_AXIS )) -/*N*/ { -/*?*/ if( bIsFirst ) -/*?*/ { -/*?*/ pAxisAttr->Set( GetAttr( CHOBJID_DIAGRAM_B_AXIS )); -/*?*/ bIsFirst = false; -/*?*/ } -/*?*/ else -/*?*/ IntersectSets( GetAttr( CHOBJID_DIAGRAM_B_AXIS ), *pAxisAttr ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ return *pAxisAttr; -/*N*/ } - -/************************************************************************* -|* -|* Achsen-Attribute aendern; -|* Liefert bei geaenderten Attributen TRUE. -|* -\************************************************************************/ - -/*N*/ BOOL ChartModel::ChangeAxisAttr(const SfxItemSet &rAttr,SdrObjGroup *pAxisObj,BOOL bMerge) -/*N*/ { -/*N*/ if (pAxisObj) -/*N*/ { -/*N*/ SchObjectId *pObjId = GetObjectId(*pAxisObj); -/*N*/ -/*N*/ if (! pObjId) return FALSE; -/*N*/ else -/*N*/ { -/*N*/ SfxItemSet aSet(*pItemPool,nAxisWhichPairs); -/*N*/ aSet.Put(rAttr); -/*N*/ -/*N*/ const SfxPoolItem *pPoolItem = NULL; -/*N*/ -/*N*/ if(rAttr.GetItemState(SID_ATTR_NUMBERFORMAT_VALUE,TRUE,&pPoolItem)==SFX_ITEM_SET) -/*N*/ { -/*N*/ UINT32 nTmp=((const SfxUInt32Item*)pPoolItem)->GetValue(); -/*N*/ aSet.Put(SfxUInt32Item(IsPercentChart() -/*N*/ ? SCHATTR_AXIS_NUMFMTPERCENT : SCHATTR_AXIS_NUMFMT , nTmp)); -/*N*/ } -/*N*/ -/*N*/ long nId=pObjId->GetObjId(); -/*N*/ SetAttributes( nId, aSet, bMerge ); // at the model -/*N*/ SetAxisAttributes( &GetAttr( nId ), pAxisObj ); // at the drawing object -/*N*/ -/*N*/ // at the axis itself! -/*N*/ long nAxisUId = ChartAxis::GetUniqueIdByObjectId( nId ); -/*N*/ if( nAxisUId != CHAXIS_AXIS_UNKNOWN ) -/*N*/ { -/*N*/ // this method always returns a valid pointer -/*N*/ GetAxisByUID( nAxisUId )->SetAttributes( rAttr ); -/*N*/ } -/*N*/ else -/*N*/ OSL_FAIL( "ChartAxis not found for Object" ); -/*N*/ -/*N*/ if(IsAttrChangeNeedsBuildChart(aSet)) -/*N*/ BuildChart(FALSE,nId); //z.B. auch Texte skalieren! -/*N*/ return TRUE; -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); - return FALSE; -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Datenreihen-Attribute setzen -|* -\************************************************************************/ -/*N*/ void ChartModel::PutDataRowAttrAll(const SfxItemSet& rAttr,BOOL bMerge,BOOL bClearPoints) -/*N*/ { -/*N*/ long nCnt=aDataRowAttrList.size(); -/*N*/ while(nCnt--) -/*N*/ PutDataRowAttr(nCnt,rAttr,bMerge,bClearPoints); -/*N*/ } - -/*N*/ void ChartModel::PutDataRowAttr(long nRow, const SfxItemSet& rAttr,BOOL bMerge,BOOL bClearPoints) -/*N*/ { -/*N*/ -/*N*/ CHART_TRACE1( "ChartModel::PutDataRowAttr %smerge", bMerge? "": "NO " ); -/*N*/ // DBG_ITEMS((SfxItemSet&)rAttr,this); -/*N*/ -/*N*/ if( aDataRowAttrList.size() <= (unsigned long)nRow ) -/*N*/ { -/*?*/ OSL_FAIL( "Invalid index to array requested" ); -/*?*/ return; -/*N*/ } -/*N*/ -/*N*/ if(!bMerge) -/*?*/ aDataRowAttrList[ nRow ]->ClearItem(); -/*N*/ -/*N*/ PutItemSetWithNameCreation( *aDataRowAttrList[ nRow ], rAttr ); -/*N*/ -/*N*/ if(bClearPoints && (nRow < GetRowCount())) -/*N*/ { -/*N*/ long nCol,nColCnt=GetColCount(); -/*N*/ for(nCol=0;nCol<nColCnt;nCol++) -/*N*/ { -/*N*/ ClearDataPointAttr(nCol,nRow,rAttr); -/*N*/ } -/*N*/ } -/*N*/ } -/************************************************************************* -|* -|* Datenreihen-Attribute ermitteln -|* -\************************************************************************/ - -/*N*/ const SfxItemSet& ChartModel::GetDataRowAttr( long nRow ) const -/*N*/ { -/*N*/ if( nRow < (long)aDataRowAttrList.size() ) -/*N*/ { -/*N*/ SfxItemSet* pSet = aDataRowAttrList[ nRow ]; -/*N*/ DBG_ASSERT( pSet, "Invalid ItemSet" ); -/*N*/ return *pSet; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ OSL_FAIL( "Requested data row attribute is unavailable" ); -/*N*/ -/*N*/ // return something -/*?*/ DBG_ASSERT( pChartAttr, "Invalid Chart-ItemSet" ); -/*?*/ return *pChartAttr; -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Erstelle Symbole fuer Diagrammtypen mit Symbolen -|* -\************************************************************************/ - -/*N*/ SdrObject* ChartModel::CreateSymbol (Point aPoint, -/*N*/ int nRow, -/*N*/ int nColumn, -/*N*/ SfxItemSet &aDataAttr, -/*N*/ long nSymbolSize, -/*N*/ BOOL bInsert) -/*N*/ { -/*N*/ long nWhatSymbol=SVX_SYMBOLTYPE_AUTO; -/*N*/ SdrObject* pObj=NULL; -/*N*/ long nHalfSymbolSizeX = nSymbolSize / 4; -/*N*/ long nHalfSymbolSizeY = nSymbolSize / 4; -/*N*/ Size aSize(1,1); -/*N*/ long n1Pixel=pRefOutDev ? pRefOutDev->PixelToLogic(aSize).Width() : nHalfSymbolSizeY/2; -/*N*/ -/*N*/ if(!bInsert) -/*N*/ n1Pixel=nHalfSymbolSizeY/2; //für Legende vergrößern -/*N*/ -/*N*/ const SfxPoolItem* pPoolItem; -/*N*/ if(aDataAttr.GetItemState(SCHATTR_STYLE_SYMBOL, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ { -/*N*/ nWhatSymbol = ((const SfxInt32Item*) pPoolItem)->GetValue(); -/*N*/ } -/*N*/ if(nWhatSymbol<0) -/*N*/ { -/*N*/ BOOL bStock=FALSE; -/*N*/ switch(nWhatSymbol) -/*N*/ { -/*N*/ case SVX_SYMBOLTYPE_NONE: -/*N*/ { -/*N*/ // Create a square as symbol. Its fill and line style is -/*N*/ // later to invisible. This does not show the symbol but -/*N*/ // leaves the data point selectable. -/*N*/ XPolygon aPolygon (5); -/*N*/ aPolygon[0].X() = aPoint.X() - nHalfSymbolSizeX; -/*N*/ aPolygon[0].Y() = aPoint.Y() - nHalfSymbolSizeY; -/*N*/ aPolygon[1].X() = aPoint.X() - nHalfSymbolSizeX; -/*N*/ aPolygon[1].Y() = aPoint.Y() + nHalfSymbolSizeY; -/*N*/ aPolygon[2].X() = aPoint.X() + nHalfSymbolSizeX; -/*N*/ aPolygon[2].Y() = aPoint.Y() + nHalfSymbolSizeY; -/*N*/ aPolygon[3].X() = aPoint.X() + nHalfSymbolSizeX; -/*N*/ aPolygon[3].Y() = aPoint.Y() - nHalfSymbolSizeY; -/*N*/ aPolygon[4].X() = aPolygon[0].X(); -/*N*/ aPolygon[4].Y() = aPolygon[0].Y(); -/*N*/ pObj = new SdrPathObj(OBJ_POLY, XPolyPolygon(aPolygon)); -/*N*/ break; -/*N*/ } -/*N*/ case SVX_SYMBOLTYPE_UNKNOWN: -/*N*/ case SVX_SYMBOLTYPE_AUTO: -/*N*/ CHART_TRACE( "creating SVX_SYMBOLTYPE_AUTO" ); -/*N*/ -/*N*/ -/*N*/ switch(eChartStyle) -/*N*/ { -/*N*/ default: -/*N*/ break; -/*N*/ case CHSTYLE_2D_STOCK_2: -/*N*/ case CHSTYLE_2D_STOCK_4: -/*N*/ bStock=TRUE; -/*N*/ nHalfSymbolSizeX=n1Pixel; -/*N*/ break; -/*N*/ case CHSTYLE_2D_STOCK_1: -/*N*/ bStock=TRUE; -/*N*/ if(nRow!=2) -/*N*/ nHalfSymbolSizeX=n1Pixel; -/*N*/ break; -/*N*/ case CHSTYLE_2D_STOCK_3: -/*?*/ bStock=TRUE; -/*?*/ if(nRow!=3) -/*?*/ nHalfSymbolSizeX=n1Pixel; -/*N*/ break; -/*N*/ } -/*N*/ if(bStock) -/*N*/ { -/*N*/ XPolygon aPolygon(2); -/*N*/ -/*N*/ aPolygon[0].X() = aPoint.X(); -/*N*/ aPolygon[0].Y() = aPoint.Y(); -/*N*/ aPolygon[1].X() = aPoint.X() + nHalfSymbolSizeX; -/*N*/ aPolygon[1].Y() = aPoint.Y(); -/*N*/ pObj = new SdrPathObj(OBJ_POLY, XPolyPolygon(aPolygon)); -/*N*/ break; -/*N*/ } -/*N*/ nWhatSymbol=nRow; -/*N*/ aDataAttr.ClearItem(SCHATTR_SYMBOL_BRUSH);//Größe gegebenenfalls löschen -/*N*/ aDataAttr.ClearItem(SCHATTR_SYMBOL_SIZE);//Größe gegebenenfalls löschen -/*N*/ break; -/*N*/ -/*N*/ case SVX_SYMBOLTYPE_BRUSHITEM: -/*N*/ { -/*?*/ if(aDataAttr.GetItemState(SCHATTR_SYMBOL_BRUSH,TRUE,&pPoolItem)==SFX_ITEM_SET) -/*?*/ { -/*?*/ CHART_TRACE( "creating SVX_SYMBOLTYPE_BRUSHITEM" ); -/*?*/ const Graphic* pGraphic = ((const SvxBrushItem *)pPoolItem)->GetGraphic(); -/*?*/ Size aLclSize; -/*?*/ -/*?*/ if( pGraphic ) -/*?*/ { -/*?*/ if(!pObj && aDataAttr.GetItemState(SCHATTR_SYMBOL_SIZE,TRUE,&pPoolItem)==SFX_ITEM_SET) -/*?*/ { -/*?*/ CHART_TRACE( "Size by Item" ); -/*?*/ aLclSize=((const SvxSizeItem*)pPoolItem)->GetSize(); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ CHART_TRACE( "Size by Graphic" ); -/*?*/ if( pGraphic ) -/*?*/ aLclSize = ( OutputDevice::LogicToLogic( pGraphic->GetPrefSize(), -/*?*/ pGraphic->GetPrefMapMode(), -/*?*/ MAP_100TH_MM )); -/*?*/ } -/*?*/ -/*?*/ Rectangle aRect(aPoint.X()-aLclSize.Width()/2,aPoint.Y()-aLclSize.Height()/2 -/*?*/ ,aPoint.X()+aLclSize.Width()/2,aPoint.Y()+aLclSize.Height()/2); -/*?*/ pObj = new SdrGrafObj(*pGraphic); -/*?*/ GetPage(0)->NbcInsertObject(pObj,0); -/*?*/ pObj->NbcSetSnapRect(aRect); -/*?*/ GetPage(0)->RemoveObject(0); -/*?*/ } -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ CHART_TRACE( "failed in SVX_SYMBOLTYPE_BRUSHITEM" ); -/*?*/ nWhatSymbol=nRow; -/*?*/ } -/*N*/ } -/*N*/ break; -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ CHART_TRACE1( "creating SVX_SYMBOLTYPE = %d", nWhatSymbol ); -/*N*/ } -/*N*/ -/*N*/ -/*N*/ if(!pObj && aDataAttr.GetItemState(SCHATTR_SYMBOL_SIZE,TRUE,&pPoolItem)==SFX_ITEM_SET) -/*N*/ { -/*?*/ Size aLclSize=((const SvxSizeItem*)pPoolItem)->GetSize(); -/*?*/ nHalfSymbolSizeX = aLclSize.Width() / 2; -/*?*/ nHalfSymbolSizeY = aLclSize.Height() / 2; -/*?*/ CHART_TRACE2( "reading SCHATTR_SYMBOL_SIZE -> Size = (%ld, %ld)", aLclSize.Width(), aLclSize.Height() ); -/*N*/ } -/*N*/ -/*N*/ if(!pObj) //dann default generieren -/*N*/ { -/*N*/ switch (nWhatSymbol % 8) -/*N*/ { -/*N*/ case 0 : -/*N*/ { -/*N*/ XPolygon aPolygon (5); -/*N*/ -/*N*/ aPolygon[0].X() = aPoint.X() - nHalfSymbolSizeX; -/*N*/ aPolygon[0].Y() = aPoint.Y() - nHalfSymbolSizeY; -/*N*/ aPolygon[1].X() = aPoint.X() - nHalfSymbolSizeX; -/*N*/ aPolygon[1].Y() = aPoint.Y() + nHalfSymbolSizeY; -/*N*/ aPolygon[2].X() = aPoint.X() + nHalfSymbolSizeX; -/*N*/ aPolygon[2].Y() = aPoint.Y() + nHalfSymbolSizeY; -/*N*/ aPolygon[3].X() = aPoint.X() + nHalfSymbolSizeX; -/*N*/ aPolygon[3].Y() = aPoint.Y() - nHalfSymbolSizeY; -/*N*/ aPolygon[4].X() = aPolygon[0].X(); -/*N*/ aPolygon[4].Y() = aPolygon[0].Y(); -/*N*/ -/*N*/ pObj = new SdrPathObj(OBJ_POLY, XPolyPolygon(aPolygon)); -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ case 1 : -/*N*/ { -/*N*/ XPolygon aPolygon (5); -/*N*/ -/*N*/ aPolygon[0].X() = aPoint.X(); -/*N*/ aPolygon[0].Y() = aPoint.Y() - nHalfSymbolSizeY; -/*N*/ aPolygon[1].X() = aPoint.X() + nHalfSymbolSizeX; -/*N*/ aPolygon[1].Y() = aPoint.Y(); -/*N*/ aPolygon[2].X() = aPoint.X(); -/*N*/ aPolygon[2].Y() = aPoint.Y() + nHalfSymbolSizeY;; -/*N*/ aPolygon[3].X() = aPoint.X() - nHalfSymbolSizeX; -/*N*/ aPolygon[3].Y() = aPoint.Y(); -/*N*/ aPolygon[4].X() = aPolygon[0].X(); -/*N*/ aPolygon[4].Y() = aPolygon[0].Y(); -/*N*/ -/*N*/ pObj = new SdrPathObj(OBJ_POLY, XPolyPolygon(aPolygon)); -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ case 2 : -/*N*/ { -/*N*/ XPolygon aPolygon (4); -/*N*/ -/*N*/ aPolygon[0].X() = aPoint.X() - nHalfSymbolSizeX; -/*N*/ aPolygon[0].Y() = aPoint.Y() - nHalfSymbolSizeY; -/*N*/ aPolygon[1].X() = aPoint.X() + nHalfSymbolSizeX; -/*N*/ aPolygon[1].Y() = aPoint.Y() - nHalfSymbolSizeY; -/*N*/ aPolygon[2].X() = aPoint.X(); -/*N*/ aPolygon[2].Y() = aPoint.Y() + nHalfSymbolSizeY; -/*N*/ aPolygon[3].X() = aPolygon[0].X(); -/*N*/ aPolygon[3].Y() = aPolygon[0].Y(); -/*N*/ -/*N*/ pObj = new SdrPathObj(OBJ_POLY, XPolyPolygon(aPolygon)); -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ case 3 : -/*N*/ { -/*N*/ XPolygon aPolygon (4); -/*N*/ -/*N*/ aPolygon[0].X() = aPoint.X() - nHalfSymbolSizeX; -/*N*/ aPolygon[0].Y() = aPoint.Y() + nHalfSymbolSizeY; -/*N*/ aPolygon[1].X() = aPoint.X() + nHalfSymbolSizeX; -/*N*/ aPolygon[1].Y() = aPoint.Y() + nHalfSymbolSizeY; -/*N*/ aPolygon[2].X() = aPoint.X(); -/*N*/ aPolygon[2].Y() = aPoint.Y() - nHalfSymbolSizeY; -/*N*/ aPolygon[3].X() = aPolygon[0].X(); -/*N*/ aPolygon[3].Y() = aPolygon[0].Y(); -/*N*/ -/*N*/ pObj = new SdrPathObj(OBJ_POLY, XPolyPolygon(aPolygon)); -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ case 4 : -/*N*/ { -/*?*/ XPolygon aPolygon (4); -/*?*/ -/*?*/ aPolygon[0].X() = aPoint.X() - nHalfSymbolSizeX; -/*?*/ aPolygon[0].Y() = aPoint.Y() - nHalfSymbolSizeY; -/*?*/ aPolygon[1].X() = aPoint.X() + nHalfSymbolSizeX; -/*?*/ aPolygon[1].Y() = aPoint.Y(); -/*?*/ aPolygon[2].X() = aPoint.X() - nHalfSymbolSizeX; -/*?*/ aPolygon[2].Y() = aPoint.Y() + nHalfSymbolSizeY; -/*?*/ aPolygon[3].X() = aPolygon[0].X(); -/*?*/ aPolygon[3].Y() = aPolygon[0].Y(); -/*?*/ -/*?*/ pObj = new SdrPathObj(OBJ_POLY, XPolyPolygon(aPolygon)); -/*?*/ break; -/*?*/ } -/*?*/ -/*?*/ case 5 : -/*?*/ { -/*?*/ XPolygon aPolygon (4); -/*?*/ -/*?*/ aPolygon[0].X() = aPoint.X() + nHalfSymbolSizeX; -/*?*/ aPolygon[0].Y() = aPoint.Y() - nHalfSymbolSizeY; -/*?*/ aPolygon[1].X() = aPoint.X() - nHalfSymbolSizeX; -/*?*/ aPolygon[1].Y() = aPoint.Y(); -/*?*/ aPolygon[2].X() = aPoint.X() + nHalfSymbolSizeX; -/*?*/ aPolygon[2].Y() = aPoint.Y() + nHalfSymbolSizeY; -/*?*/ aPolygon[3].X() = aPolygon[0].X(); -/*?*/ aPolygon[3].Y() = aPolygon[0].Y(); -/*?*/ -/*?*/ pObj = new SdrPathObj(OBJ_POLY, XPolyPolygon(aPolygon)); -/*?*/ break; -/*?*/ } -/*?*/ -/*?*/ case 6 : -/*?*/ { -/*?*/ XPolygon aPolygon (5); -/*?*/ -/*?*/ aPolygon[0].X() = aPoint.X() - nHalfSymbolSizeX; -/*?*/ aPolygon[0].Y() = aPoint.Y() - nHalfSymbolSizeY; -/*?*/ aPolygon[1].X() = aPoint.X() + nHalfSymbolSizeX; -/*?*/ aPolygon[1].Y() = aPoint.Y() + nHalfSymbolSizeY; -/*?*/ aPolygon[2].X() = aPoint.X() + nHalfSymbolSizeX; -/*?*/ aPolygon[2].Y() = aPoint.Y() - nHalfSymbolSizeY; -/*?*/ aPolygon[3].X() = aPoint.X() - nHalfSymbolSizeX; -/*?*/ aPolygon[3].Y() = aPoint.Y() + nHalfSymbolSizeY; -/*?*/ aPolygon[4].X() = aPolygon[0].X(); -/*?*/ aPolygon[4].Y() = aPolygon[0].Y(); -/*?*/ -/*?*/ pObj = new SdrPathObj(OBJ_POLY, XPolyPolygon(aPolygon)); -/*?*/ break; -/*?*/ } -/*?*/ -/*?*/ case 7 : -/*?*/ { -/*?*/ XPolygon aPolygon (5); -/*?*/ -/*?*/ aPolygon[0].X() = aPoint.X() - nHalfSymbolSizeX; -/*?*/ aPolygon[0].Y() = aPoint.Y() - nHalfSymbolSizeY; -/*?*/ aPolygon[1].X() = aPoint.X() + nHalfSymbolSizeX; -/*?*/ aPolygon[1].Y() = aPoint.Y() + nHalfSymbolSizeY; -/*?*/ aPolygon[2].X() = aPoint.X() - nHalfSymbolSizeX; -/*?*/ aPolygon[2].Y() = aPoint.Y() + nHalfSymbolSizeY; -/*?*/ aPolygon[3].X() = aPoint.X() + nHalfSymbolSizeX; -/*?*/ aPolygon[3].Y() = aPoint.Y() - nHalfSymbolSizeY; -/*?*/ aPolygon[4].X() = aPolygon[0].X(); -/*?*/ aPolygon[4].Y() = aPolygon[0].Y(); -/*?*/ -/*?*/ pObj = new SdrPathObj(OBJ_POLY, XPolyPolygon(aPolygon)); -/*?*/ break; -/*?*/ } -/*?*/ -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if (bInsert) //nur in CreateLegend FALSE! -/*N*/ { -/*N*/ SfxItemSet aSymbolAttr(aDataAttr); -/*N*/ GenerateSymbolAttr(aSymbolAttr,nRow,SYMBOLMODE_ROW); -/*N*/ if (nWhatSymbol == SVX_SYMBOLTYPE_NONE) -/*N*/ { -/*N*/ // Don´t show the symbol. It is only needed for selection of the -/*N*/ // data point. -/*N*/ aSymbolAttr.Put(XFillStyleItem (XFILL_NONE)); -/*N*/ aSymbolAttr.Put(XLineStyleItem (XLINE_NONE)); -/*N*/ } - if( pObj ) - { -/*N*/ pObj->SetModel( this ); -/*N*/ pObj = SetObjectAttr (pObj, CHOBJID_DIAGRAM_DATA, TRUE, TRUE, &aSymbolAttr); -/*N*/ pObj->InsertUserData(new SchDataPoint(nColumn, nRow)); - } -/*N*/ -/*N*/ } -/*N*/ -/*N*/ return pObj; -/*N*/ } - -/*N*/ void ChartModel::GenerateSymbolAttr(/*const SfxItemSet& rAttr,*/SfxItemSet& rSymbolAttr,const long nRow,const long nMode) -/*N*/ { -/*N*/ // Symbole immer gleiche Umrandung und Füllfarbe = Linienfarbe, wenn es sich um ein "echtes" -/*N*/ // Symbol handelt (d.h. nicht ein Symbol für Bars/Säulen,Pies etc.) -/*N*/ -/*N*/ switch(nMode) -/*N*/ { -/*N*/ case SYMBOLMODE_LEGEND: -/*N*/ case SYMBOLMODE_ROW: -/*N*/ -/*N*/ if(HasSymbols(nRow) && IsLine(nRow)) //Symbol und Linie => ein echtes Symbol wird angezeigt :) -/*N*/ { -/*N*/ rSymbolAttr.Put(XFillColorItem(String(), -/*N*/ ((XLineColorItem &)rSymbolAttr.Get(XATTR_LINECOLOR)).GetValue())); -/*N*/ -/*N*/ rSymbolAttr.Put(XLineStyleItem(XLINE_SOLID)); -/*N*/ rSymbolAttr.Put(XLineColorItem(String(),RGBColor(COL_BLACK))); -/*N*/ rSymbolAttr.Put(XLineWidthItem (0)); -/*N*/ -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case SYMBOLMODE_DESCRIPTION: -/*?*/ if(IsLine(nRow)) -/*?*/ { -/*?*/ rSymbolAttr.Put(XFillColorItem(String(), -/*?*/ ((XLineColorItem &)rSymbolAttr.Get(XATTR_LINECOLOR)).GetValue())); -/*?*/ -/*?*/ rSymbolAttr.Put(XLineStyleItem(XLINE_SOLID)); -/*?*/ rSymbolAttr.Put(XLineColorItem(String(),RGBColor(COL_BLACK))); -/*?*/ rSymbolAttr.Put(XLineWidthItem (0)); -/*?*/ } -/*?*/ else // rectangle with border, if linesytle is NONE -/*?*/ { -/*?*/ XLineStyle eLineStyle = -/*?*/ SAL_STATIC_CAST( const XLineStyleItem *, &(rSymbolAttr.Get( XATTR_LINESTYLE )) )->GetValue(); // bug in Win-C++ compiler: casting to pointer -/*?*/ -/*?*/ if( eLineStyle == XLINE_NONE ) // clear items for defaults to take effect -/*?*/ { -/*?*/ rSymbolAttr.ClearItem( XATTR_LINESTYLE ); -/*?*/ rSymbolAttr.ClearItem( XATTR_LINEWIDTH ); -/*?*/ rSymbolAttr.ClearItem( XATTR_LINECOLOR ); -/*?*/ } -/*N*/ } -/*N*/ -/*N*/ break; -/*N*/ case SYMBOLMODE_LINE: -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ } - -/************************************************************************* -|* -|* Datenpunkt-Attribute loeschen, die im Itemset (Argument) vorhanden sind -|* -\************************************************************************/ - -/*N*/ void ChartModel::ClearDataPointAttr( long nCol, long nRow, const SfxItemSet& /*rAttr*/ ) -/*N*/ { -/*N*/ -/*N*/ CHART_TRACE( "ChartModel::ClearDataPointAttr" ); -/*N*/ -/*N*/ ItemSetList* pAttrList = IsDataSwitched() //abhaengig vom Charttyp - statt bSwitchData -/*N*/ ? &aSwitchDataPointAttrList -/*N*/ : &aDataPointAttrList; -/*N*/ -/*N*/ SfxItemSet* pItemSet = (*pAttrList)[ nCol * GetRowCount() + nRow ]; -/*N*/ if (pItemSet != NULL) -/*?*/ {DBG_BF_ASSERT(0, "STRIP"); } -/*N*/ } -/************************************************************************* -|* -|* Datenpunkt-Attribute setzen -|* -\************************************************************************/ - -/*N*/ void ChartModel::PutDataPointAttr( long nCol, long nRow,const SfxItemSet& rAttr, BOOL bMerge /*=TRUE*/) -/*N*/ { -/*N*/ CHART_TRACE( "ChartModel::PutDataPointAttr" ); -/*N*/ DBG_ITEMS((SfxItemSet&)rAttr,this); -/*N*/ -/*N*/ ItemSetList* pAttrList = IsDataSwitched() //abhaengig vom Charttyp - statt bSwitchData -/*N*/ ? &aSwitchDataPointAttrList -/*N*/ : &aDataPointAttrList; -/*N*/ -/*N*/ SfxItemSet* pItemSet = (*pAttrList)[ nCol * GetRowCount() + nRow ]; -/*N*/ if (pItemSet == NULL) -/*N*/ { -/*N*/ pItemSet = new SfxItemSet(*pItemPool, nRowWhichPairs); -/*N*/ (*pAttrList)[nCol * GetRowCount() + nRow] = pItemSet; -/*N*/ } -/*N*/ if(!bMerge) -/*?*/ pItemSet->ClearItem(); -/*N*/ PutItemSetWithNameCreation( *pItemSet, rAttr ); -/*N*/ } - -// this method exists in analogy to GetFullDataPointAttr -// it is necessary for API (=>XML) and pie charts - -/************************************************************************* -|* -|* Datenpunkt-Attribute ermitteln -|* -\************************************************************************/ - -/*N*/ const SfxItemSet& ChartModel::GetDataPointAttr( long nCol, long nRow) const -/*N*/ { -/*N*/ long nIdx = nCol * GetRowCount() + nRow; -/*N*/ const ItemSetList* aAttrList = IsDataSwitched() -/*N*/ ? &aSwitchDataPointAttrList -/*N*/ : &aDataPointAttrList; -/*N*/ -/*N*/ if( nIdx < (long)aAttrList->size() ) -/*N*/ { -/*N*/ SfxItemSet* pSet = (*aAttrList)[ nIdx ]; -/*N*/ if (pSet == NULL) -/*N*/ return (GetDataRowAttr(nRow)); -/*N*/ else -/*N*/ return *pSet; -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ OSL_FAIL( "Requested data point attribute is unavailable" ); -/*?*/ -/*?*/ // return something -/*?*/ DBG_ASSERT( pChartAttr, "Invalid Chart-ItemSet" ); -/*?*/ return *pChartAttr; -/*N*/ } -/*N*/ } - - -/*N*/ const SfxItemSet * ChartModel::GetRawDataPointAttr (long nCol,long nRow) const -/*N*/ { -/*N*/ long nIndex = nCol * GetRowCount() + nRow; -/*N*/ const ItemSetList* aAttrList = IsDataSwitched() -/*N*/ ? &aSwitchDataPointAttrList -/*N*/ : &aDataPointAttrList; -/*N*/ -/*N*/ if (nIndex < (long)aAttrList->size()) -/*N*/ return (*aAttrList)[ nIndex ]; -/*N*/ else -/*N*/ return NULL; -/*N*/ } - -/************************************************************************* -|* -|* Datenpunkt-Attribute ermitteln -|* -\************************************************************************/ - -/*N*/ SfxItemSet ChartModel::GetFullDataPointAttr( long nCol, long nRow ) const -/*N*/ { -/*N*/ const ItemSetList* pAttrList = IsDataSwitched() -/*N*/ ? &aSwitchDataPointAttrList -/*N*/ : &aDataPointAttrList; -/*N*/ -/*N*/ if( !IsPieChart()) -/*N*/ { -/*N*/ // get series' attributes and merge with data-point attributes if available -/*N*/ SfxItemSet aAttr( GetDataRowAttr( nRow )); -/*N*/ SfxItemSet *pObj= (*pAttrList)[ nCol * GetRowCount() + nRow ]; -/*N*/ if( pObj ) -/*N*/ aAttr.Put( *pObj ); -/*N*/ return aAttr; -/*N*/ } - - /* the following code is for pie charts only - - data description attributes (SCHATTR_DATADESCR_DESCR and - SCHATTR_DATADESCR_SHOW_SYM) are contained in data point item set while - all other (graphical) attributes are contained in data series (data row) - item set */ - - // get data description attributes -/*N*/ SfxItemSet aDescrAttrib( *pItemPool, SCHATTR_DATADESCR_START, SCHATTR_DATADESCR_END ); -/*N*/ aDescrAttrib.Put( GetDataRowAttr( 0 )); // a pie chart always has only one series -/*N*/ -/*N*/ // the different pies use series attributes rather than data-point attributes -/*N*/ long nPieCount = GetColCount(); -/*N*/ long nSecondDimension = GetRowCount(); // pie has only one series, but the data may contain more -/*N*/ -/*N*/ SfxItemSet aAttr( GetDataRowAttr( nCol % nPieCount )); -/*N*/ -/*N*/ if( ( nCol >= nPieCount ) && -/*N*/ pDefaultColors ) -/*N*/ { -/*?*/ XColorEntry* pColEntry = (*pDefaultColors)[ nCol % pDefaultColors->size() ]; -/*?*/ aAttr.Put( XFillColorItem( pColEntry->GetName(), pColEntry->GetColor())); -/*N*/ } -/*N*/ -/*N*/ // add description attributes of series -/*N*/ aAttr.ClearItem( SCHATTR_DATADESCR_DESCR ); -/*N*/ aAttr.ClearItem( SCHATTR_DATADESCR_SHOW_SYM ); -/*N*/ aAttr.Put( aDescrAttrib ); -/*N*/ -/*N*/ SfxItemSet* pAttr = (*pAttrList)[ nCol * nSecondDimension ]; -/*N*/ if( ( pAttr != NULL ) && pAttr->Count() ) -/*N*/ aAttr.Put( *pAttr ); -/*N*/ -/*N*/ return aAttr; -/*N*/ } - -/************************************************************************* -|* -|* Datenpunkt-Attribute ermitteln -|* -\************************************************************************/ - -/*N*/ SfxItemSet& ChartModel::MergeDataPointAttr( SfxItemSet& rAttr, long nCol, long nRow ) const -/*N*/ { -/*N*/ CHART_TRACE2( "ChartModel::MergeDataPointAttr nCol=%ld, nRow=%ld", nCol, nRow ); -/*N*/ const ItemSetList* pAttrList = IsDataSwitched() //abhaengig vom Charttyp - statt bSwitchData -/*N*/ ? &aSwitchDataPointAttrList -/*N*/ : &aDataPointAttrList; -/*N*/ -/*N*/ SfxItemSet *pObj = (*pAttrList)[ nCol * GetRowCount() + nRow ]; -/*N*/ if(pObj) -/*?*/ rAttr.Put(*pObj); -/*N*/ return rAttr; -/*N*/ } - - -/*N*/ BOOL ChartModel::IsDataPointAttrSet (long nCol, long nRow) const -/*N*/ { -/*N*/ UINT32 nIndex = nCol * GetRowCount() + nRow; -/*N*/ const ItemSetList* aAttrList = IsDataSwitched() -/*N*/ ? &aSwitchDataPointAttrList -/*N*/ : &aDataPointAttrList; -/*N*/ -/*N*/ if (nIndex < static_cast<UINT32>(aAttrList->size())) -/*N*/ return (*aAttrList)[ nIndex ] != NULL; -/*N*/ else -/*N*/ // Specified data point does not exist. Therefore an item set does not exist also. -/*?*/ return false; -/*N*/ } - - -/************************************************************************* -|* -|* Aendere die Attribute einer Achse -|* -\************************************************************************/ - -/*N*/ void ChartModel::SetAxisAttributes (const SfxItemSet* pAttr,const SdrObjGroup* pAxisObj) -/*N*/ { -/*N*/ if (pAttr && pAxisObj) -/*N*/ { -/*N*/ SfxItemSet aTextAttr(*pItemPool, nTextWhichPairs); -/*N*/ -/*N*/ aTextAttr.Put(*pAttr); -/*N*/ -/*N*/ SdrObjListIter aIterator(*pAxisObj->GetSubList(), IM_FLAT); -/*N*/ while (aIterator.IsMore()) -/*N*/ { -/*N*/ SdrObject *pObj = aIterator.Next(); -/*N*/ SchObjectId *pObjId = GetObjectId(*pObj); -/*N*/ -/*N*/ if (pObjId) -/*N*/ switch (pObjId->GetObjId()) -/*N*/ { -/*N*/ case CHOBJID_LINE : -/*N*/ pObj->SetItemSetAndBroadcast(*pAttr); -/*N*/ break; -/*N*/ -/*N*/ case CHOBJID_TEXT : -/*?*/ SetTextAttr(*(SdrTextObj*)pObj, aTextAttr); -/*N*/ -/*N*/ default : -/*N*/ ; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Aendere die Attribute einer Achse -|* -\************************************************************************/ - - -/*N*/ void ChartModel::SetTextFromObject( SdrTextObj* pObj,OutlinerParaObject* pTextObject ) -/*N*/ { -/*N*/ DBG_ASSERT( pObj, "ChartModel::SetTextFromObject: Object is NULL" ); -/*N*/ if( (!bAttrAutoStorage && pTextObject) // not during BuildChart -/*N*/ || !pObj ) -/*N*/ return; -/*N*/ -/*N*/ CHART_TRACE( "ChartModel::SetTextFromObject" ); -/*N*/ -/*N*/ SchObjectId* pObjId = GetObjectId( *pObj ); -/*N*/ -/*N*/ SfxItemSet *pItemSet = NULL; -/*N*/ String* pStrToChange = NULL; -/*N*/ -/*N*/ if( pTextObject ) -/*N*/ { -/*N*/ if( pObjId ) -/*N*/ { -/*N*/ pOutliner->SetText( *pTextObject ); -/*N*/ String aTitle = pOutliner->GetText( pOutliner->GetParagraph( 0 ), pOutliner->GetParagraphCount() ); -/*N*/ pOutliner->Clear(); -/*N*/ -/*N*/ long nId = pObjId->GetObjId(); -/*N*/ switch( nId ) -/*N*/ { -/*N*/ case CHOBJID_DIAGRAM_TITLE_X_AXIS: -/*N*/ pItemSet = pXAxisTitleAttr; -/*N*/ pStrToChange = &aXAxisTitle; -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_TITLE_Y_AXIS: -/*N*/ pItemSet = pYAxisTitleAttr; -/*N*/ pStrToChange = &aYAxisTitle; -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_TITLE_Z_AXIS: -/*N*/ pItemSet = pZAxisTitleAttr; -/*N*/ pStrToChange = &aZAxisTitle; -/*N*/ break; -/*N*/ case CHOBJID_TITLE_MAIN: -/*N*/ pItemSet = pMainTitleAttr; -/*N*/ pStrToChange = &aMainTitle; -/*N*/ break; -/*N*/ case CHOBJID_TITLE_SUB: -/*N*/ pItemSet = pSubTitleAttr; -/*N*/ pStrToChange = &aSubTitle; -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ // if stacked is set the string contains linefeeds which have to be removed -/*N*/ const SfxPoolItem* pPoolItem = NULL; -/*N*/ if( pItemSet && -/*N*/ pItemSet->GetItemState( SCHATTR_TEXT_ORIENT, FALSE, &pPoolItem ) == SFX_ITEM_SET && -/*N*/ SAL_STATIC_CAST( const SvxChartTextOrientItem*, pPoolItem )->GetValue() == CHTXTORIENT_STACKED ) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*N*/ -/*N*/ if( pStrToChange ) -/*N*/ *(pStrToChange) = aTitle; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ //Achtung! diese Funktion sollte nur für 3-D-Objekte ausgeführt werden, -/*N*/ //bei z.B. Legendensymbolen führt der Aufruf zu einer Endlos-Schleife !!!!!!!!!!!!! -/*N*/ //Im BuildChart wird ueber bAttrAutoStorage=FALSE doppelte Ausfuehrung unterbunden -/*N*/ void ChartModel::StoreObjectsAttributes(SdrObject* pObj,const SfxItemSet& rAttr, bool bReplaceAll) -/*N*/ {//#52277# -/*N*/ if(!bAttrAutoStorage) -/*N*/ return; -/*N*/ bAttrAutoStorage=FALSE; //Rekursionen verhindern -/*N*/ -/*N*/ DBG_ITEMS(((SfxItemSet&)rAttr),this); -/*N*/ -/*N*/ SchObjectId* pObjId = GetObjectId(*pObj); -/*N*/ if(!pObjId) -/*N*/ { -/*?*/ OSL_FAIL("ChartModel::StoreObjectsAttributes failed, no ObjId"); -/*N*/ } -/*N*/ long nId=pObjId->GetObjId(); -/*N*/ -/*N*/ switch(nId) -/*N*/ { -/*N*/ -/*N*/ case CHOBJID_DIAGRAM_SPECIAL_GROUP: -/*N*/ case CHOBJID_DIAGRAM_ROWGROUP: -/*N*/ case CHOBJID_LEGEND_SYMBOL_ROW: -/*N*/ {DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*?*/ break; -/*?*/ -/*?*/ case CHOBJID_DIAGRAM_DATA: -/*?*/ case CHOBJID_LEGEND_SYMBOL_COL: -/*?*/ {DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*?*/ break; -/*?*/ -/*?*/ case CHOBJID_DIAGRAM_STATISTICS_GROUP : -/*?*/ case CHOBJID_DIAGRAM_AVERAGEVALUE : -/*?*/ case CHOBJID_DIAGRAM_REGRESSION : -/*?*/ {DBG_BF_ASSERT(0, "STRIP"); } -/*?*/ break; -/*?*/ -/*N*/ case CHOBJID_DIAGRAM_WALL: -/*N*/ { -/*N*/ //Spezialfall, 2.Wand suchen -/*N*/ ChartScene* pLclScene=GetScene(); -/*N*/ if(pLclScene) -/*N*/ { -/*N*/ SdrObjListIter aIterator(*pLclScene->GetSubList(), IM_FLAT); -/*N*/ while (aIterator.IsMore()) -/*N*/ { -/*N*/ SdrObject *pO = aIterator.Next(); -/*N*/ SchObjectId *pI = GetObjectId(*pO); -/*N*/ if(pI && pI->GetObjId()==CHOBJID_DIAGRAM_WALL && pO!=pObj) -/*N*/ pO->SetItemSetAndBroadcast(rAttr); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ if(bReplaceAll) -/*?*/ GetAttr(nId).ClearItem(); -/*N*/ GetAttr(nId).Put(rAttr,TRUE); -/*N*/ break; -/*N*/ default: -/*N*/ if(bReplaceAll) -/*?*/ GetAttr(nId).ClearItem(); -/*N*/ GetAttr(nId).Put(rAttr,TRUE); -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ bAttrAutoStorage=TRUE; -/*N*/ } - -/************************************************************************* -|* -|* Aendere die Attribute bestimmter Objekte in der Page und im Model, bzw. -|* lokalisiere bestimmte Objekte anhand der Id. -|* Wird derzeit nur fuer UNO verwendet, koennte aber allgemeiner und sollte vor -|* allem vollständiger werden -|* -|* ACHTUNG: es gibt weitere Methoden gleichen/ähnlichen Namens und anderen Argumenten, -|* die ähnlich wie diese Funktionen arbeiten! -|* -\************************************************************************/ - -/*N*/ void ChartModel::SetTitle(const long nId, const String& rTitle) -/*N*/ { -/*N*/ switch(nId) -/*N*/ { -/*N*/ -/*N*/ case CHOBJID_TITLE_MAIN: -/*N*/ MainTitle()=rTitle; -/*N*/ // Replace the current text object with a new one with the given text. -/*N*/ { -/*N*/ SdrObject * pGroupObject = GetObjWithId( CHOBJID_TITLE_MAIN, *GetPage(0) ); -/*N*/ if (pGroupObject != NULL) -/*N*/ { -/*N*/ aTitleTopCenter = pGroupObject->GetBoundRect().TopCenter(); -/*N*/ DeleteObject(pGroupObject); -/*N*/ } -/*N*/ SdrTextObj * pObj = CreateTextObj(CHOBJID_TITLE_MAIN, aTitleTopCenter, -/*N*/ aMainTitle, *pMainTitleAttr, TRUE, CHADJUST_TOP_CENTER); -/*N*/ pObj->SetResizeProtect(TRUE); -/*N*/ GetPage(0)->NbcInsertObject(pObj); -/*N*/ } -/*N*/ break; -/*N*/ case CHOBJID_TITLE_SUB: -/*N*/ SubTitle()=rTitle; -/*N*/ // Replace the current text object with a new one with the given text. -/*N*/ { -/*N*/ -/*N*/ SdrObject * pGroupObject = GetObjWithId( CHOBJID_TITLE_SUB, *GetPage(0) ); -/*N*/ if (pGroupObject != NULL) -/*N*/ { -/*N*/ aSubTitleTopCenter = pGroupObject->GetBoundRect().TopCenter(); -/*N*/ DeleteObject(pGroupObject); -/*N*/ } -/*N*/ SdrTextObj * pObj = CreateTextObj(CHOBJID_TITLE_SUB, aSubTitleTopCenter, -/*N*/ aSubTitle, *pSubTitleAttr, TRUE, CHADJUST_TOP_CENTER); -/*N*/ pObj->SetResizeProtect(TRUE); -/*N*/ GetPage(0)->NbcInsertObject(pObj); -/*N*/ } -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_TITLE_X_AXIS: -/*N*/ XAxisTitle()=rTitle; -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_TITLE_Y_AXIS: -/*N*/ YAxisTitle()=rTitle; -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_TITLE_Z_AXIS: -/*N*/ ZAxisTitle()=rTitle; -/*N*/ break; -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ } - -/*N*/ String ChartModel::GetTitle( const long nId ) -/*N*/ { -/*N*/ switch(nId) -/*N*/ { -/*N*/ case CHOBJID_TITLE_MAIN: -/*N*/ return MainTitle(); -/*N*/ case CHOBJID_TITLE_SUB: -/*N*/ return SubTitle(); -/*N*/ case CHOBJID_DIAGRAM_TITLE_X_AXIS: -/*N*/ return XAxisTitle(); -/*N*/ case CHOBJID_DIAGRAM_TITLE_Y_AXIS: -/*N*/ return YAxisTitle(); -/*N*/ case CHOBJID_DIAGRAM_TITLE_Z_AXIS: -/*N*/ return ZAxisTitle(); -/*N*/ default: -/*?*/ return String(); -/*N*/ } -/*N*/ } - -/*N*/ void ChartModel::SetHasBeenMoved(const long nId,BOOL bMoved) -/*N*/ { -/*N*/ switch(nId) -/*N*/ { -/*N*/ -/*N*/ case CHOBJID_TITLE_MAIN: -/*N*/ SetMainTitleHasBeenMoved(bMoved); -/*N*/ break; -/*N*/ case CHOBJID_TITLE_SUB: -/*N*/ SetSubTitleHasBeenMoved(bMoved); -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_TITLE_X_AXIS: -/*N*/ SetXAxisTitleHasBeenMoved(bMoved); -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_TITLE_Y_AXIS: -/*N*/ SetYAxisTitleHasBeenMoved(bMoved); -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_TITLE_Z_AXIS: -/*N*/ SetZAxisTitleHasBeenMoved(bMoved); -/*N*/ break; -/*N*/ case CHOBJID_LEGEND: -/*N*/ SetLegendHasBeenMoved(bMoved); -/*N*/ break; -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ } - -/*N*/ SdrObject* ChartModel::GetObjectWithId(const long nId,const long /*nCol*/,const long /*nRow*/) -/*N*/ { -/*N*/ //ToDo: Das hier könnte man auch schöner machen (kein DEEP!) -/*N*/ SdrObject* pObj=(GetObjWithId ((USHORT)nId,*GetPage(0),0,IM_DEEPWITHGROUPS)); -/*N*/ return pObj; -/*N*/ } - -/*N*/ void ChartModel::SetAttributes(const long nId,const SfxItemSet& rAttr,BOOL bMerge) -/*N*/ { -/*N*/ CHART_TRACE( "ChartModel::SetAttributes" ); -/*N*/ SfxItemSet& rItemSet=GetAttr(nId); -/*N*/ -/*N*/ if(!bMerge) -/*N*/ rItemSet.ClearItem(); - -/*N*/ rItemSet.Put(rAttr); -/*N*/ } -/*N*/ SfxItemSet& ChartModel::GetAttr(const long nObjId,const long nIndex1/*=-1*/) const -/*N*/ { -/*N*/ CHART_TRACE( "ChartModel::GetAttr(const long nObjId)" ); -/*N*/ -/*N*/ switch(nObjId) -/*N*/ { -/*N*/ case CHOBJID_DIAGRAM_STOCKLINE_GROUP: -/*?*/ return *pStockLineAttr; -/*N*/ -/*N*/ case CHOBJID_DIAGRAM_STOCKPLUS_GROUP: -/*N*/ return *pStockPlusAttr; -/*N*/ -/*N*/ case CHOBJID_DIAGRAM_STOCKLOSS_GROUP: -/*N*/ return *pStockLossAttr; -/*N*/ -/*N*/ case CHOBJID_DIAGRAM_X_GRID_MAIN_GROUP: -/*N*/ return *pXGridMainAttr; -/*N*/ -/*N*/ case CHOBJID_DIAGRAM_Y_GRID_MAIN_GROUP: -/*N*/ return *pYGridMainAttr; -/*N*/ -/*N*/ case CHOBJID_DIAGRAM_Z_GRID_MAIN_GROUP: -/*N*/ return *pZGridMainAttr; -/*N*/ -/*N*/ case CHOBJID_DIAGRAM_X_GRID_HELP_GROUP: -/*?*/ return *pXGridHelpAttr; -/*N*/ -/*N*/ case CHOBJID_DIAGRAM_Y_GRID_HELP_GROUP: -/*?*/ return *pYGridHelpAttr; -/*N*/ -/*N*/ case CHOBJID_DIAGRAM_Z_GRID_HELP_GROUP: -/*?*/ return *pZGridHelpAttr; -/*N*/ -/*N*/ case CHOBJID_DIAGRAM_AREA: -/*N*/ return *pDiagramAreaAttr; -/*N*/ -/*N*/ case CHOBJID_DIAGRAM: //Leider mmehrfache bedeutung, im 2D ist das wohl das selbe -/*N*/ case CHOBJID_DIAGRAM_WALL: -/*N*/ return *pDiagramWallAttr; -/*N*/ -/*N*/ case CHOBJID_DIAGRAM_FLOOR: -/*N*/ return *pDiagramFloorAttr; -/*N*/ -/*N*/ case CHOBJID_DIAGRAM_TITLE_X_AXIS: -/*N*/ return *pXAxisTitleAttr; -/*N*/ case CHOBJID_DIAGRAM_TITLE_Y_AXIS: -/*N*/ return *pYAxisTitleAttr; -/*N*/ case CHOBJID_DIAGRAM_TITLE_Z_AXIS: -/*N*/ return *pZAxisTitleAttr; -/*N*/ -/*N*/ case CHOBJID_TITLE_MAIN: -/*N*/ return *pMainTitleAttr; -/*N*/ case CHOBJID_TITLE_SUB: -/*N*/ return *pSubTitleAttr; -/*N*/ -/*N*/ case CHOBJID_DIAGRAM_X_AXIS: -/*N*/ return *pChartXAxis->GetItemSet(); -/*N*/ case CHOBJID_DIAGRAM_Y_AXIS: -/*N*/ return *pChartYAxis->GetItemSet(); -/*N*/ case CHOBJID_DIAGRAM_Z_AXIS: -/*N*/ return *pChartZAxis->GetItemSet(); -/*N*/ case CHOBJID_DIAGRAM_B_AXIS: -/*N*/ return *pChartBAxis->GetItemSet(); -/*N*/ case CHOBJID_DIAGRAM_A_AXIS: -/*N*/ return *pChartAAxis->GetItemSet(); -/*N*/ -/*N*/ case CHOBJID_LEGEND_BACK: //Achtung, dies ist nur das Drawing-Objekt, normalerweise erhält man die andere ID für das Gruppenobjekt -/*N*/ case CHOBJID_LEGEND: -/*N*/ return *pLegendAttr; -/*N*/ -/*N*/ case CHOBJID_DIAGRAM_REGRESSION: -/*?*/ return *aRegressAttrList[ nIndex1 ]; -/*N*/ case CHOBJID_DIAGRAM_ERROR: -/*?*/ return *aErrorAttrList[ nIndex1 ]; -/*N*/ case CHOBJID_DIAGRAM_AVERAGEVALUE: -/*?*/ return *aAverageAttrList[ nIndex1 ]; -/*N*/ -/*N*/ default: -/*N*/ CHART_TRACE1( "GetAttr illegal Object Id (%ld), returning dummy", nObjId ); -/*N*/ return *pDummyAttr; -/*N*/ } -/*N*/ } - - -// This method fills rAttr with the items stored at the object specified -// by nObjId. Effectively calls GetAttr(long,long) but handles diagram -// axes as special case. -// The item set of the graphical object representation is not merged in -// anymore. -/*N*/ void ChartModel::GetAttr( const long nObjId, SfxItemSet& rAttr, const long nIndex1 /*=-1*/ ) -/*N*/ { -/*N*/ CHART_TRACE( "ChartModel::GetAttr( long nObjId, SfxItemSet& rAttr)" ); -/*N*/ -/*N*/ // items at model (and axis object) -/*N*/ switch( nObjId ) -/*N*/ { -/*N*/ case CHOBJID_DIAGRAM_X_AXIS: -/*N*/ case CHOBJID_DIAGRAM_Y_AXIS: -/*N*/ case CHOBJID_DIAGRAM_A_AXIS: -/*N*/ case CHOBJID_DIAGRAM_B_AXIS: -/*N*/ case CHOBJID_DIAGRAM_Z_AXIS: -/*N*/ { -/*N*/ // general item set -/*N*/ rAttr.Put( *pAxisAttr ); -/*N*/ -/*N*/ // specialized item set and members -/*N*/ ChartAxis* pAxis = GetAxis( nObjId ); -/*N*/ if( pAxis ) -/*N*/ { -/*N*/ rAttr.Put( *(pAxis->GetItemSet())); -/*N*/ pAxis->GetMembersAsAttr( rAttr ); -/*N*/ } -/*N*/ // ChartModel members for axes -/*N*/ GetTextRotation( rAttr ); -/*N*/ switch( nObjId ) -/*N*/ { -/*N*/ case CHOBJID_DIAGRAM_X_AXIS: -/*N*/ case CHOBJID_DIAGRAM_A_AXIS: -/*N*/ rAttr.Put( SfxBoolItem( SID_TEXTBREAK, GetFormatXAxisTextInMultipleLinesIfNecessary() ) ); -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_Y_AXIS: -/*N*/ case CHOBJID_DIAGRAM_B_AXIS: -/*N*/ rAttr.Put( SfxBoolItem( SID_TEXTBREAK, GetFormatYAxisTextInMultipleLinesIfNecessary() ) ); -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_Z_AXIS: -/*N*/ rAttr.Put( SfxBoolItem( SID_TEXTBREAK, GetFormatZAxisTextInMultipleLinesIfNecessary() ) ); -/*N*/ break; -/*N*/ } -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ rAttr.Put( GetAttr( nObjId, nIndex1 )); -/*N*/ break; -/*N*/ } -/*N*/ } - -/*N*/ BOOL ChartModel::ChangeAttr(const SfxItemSet& rAttr,const long nId,const long nIndex1/*=-1*/) -/*N*/ { -/*N*/ BOOL bNeedChanges=TRUE; //noch ungenutzt, zur evtl. Optimierung -/*N*/ -/*N*/ //ToDo: optimieren! klappt wegen XChartView so nicht: -/*N*/ //BOOL bForceBuild=FALSE; -/*N*/ BOOL bForceBuild=TRUE; -/*N*/ -/*N*/ -/*N*/ SdrObject* pObj=NULL; -/*N*/ //Objektattribute am Objekt setzen, falls nicht indiziert -/*N*/ if(nIndex1==-1) -/*N*/ { -/*N*/ pObj=(GetObjWithId ((USHORT)nId,*GetPage(0),0,IM_DEEPWITHGROUPS)); -/*N*/ if(pObj) -/*N*/ pObj->SetItemSetAndBroadcast(rAttr); -/*N*/ } -/*N*/ -/*N*/ -/*N*/ //und auch am Model -/*N*/ switch(nId) -/*N*/ { -/*N*/ case CHOBJID_DIAGRAM_X_AXIS: -/*N*/ case CHOBJID_DIAGRAM_Y_AXIS: -/*N*/ case CHOBJID_DIAGRAM_A_AXIS: -/*N*/ case CHOBJID_DIAGRAM_B_AXIS: -/*N*/ case CHOBJID_DIAGRAM_Z_AXIS: -/*N*/ { -/*N*/ if(pObj) -/*N*/ { -/*N*/ ChangeAxisAttr(rAttr,(SdrObjGroup*)pObj); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ const SfxPoolItem* pPoolItem=NULL; -/*N*/ if(rAttr.GetItemState(SID_ATTR_NUMBERFORMAT_VALUE,TRUE,&pPoolItem)==SFX_ITEM_SET) -/*N*/ { -/*N*/ SfxItemSet aSet(rAttr); -/*N*/ UINT32 nTmp=((const SfxUInt32Item*)pPoolItem)->GetValue(); -/*N*/ aSet.Put(SfxUInt32Item(IsPercentChart() -/*N*/ ? SCHATTR_AXIS_NUMFMTPERCENT : SCHATTR_AXIS_NUMFMT , nTmp)); -/*N*/ SetAttributes(nId,aSet); //im Model -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ SetAttributes(nId,rAttr); //im Model -/*N*/ } -/*N*/ -/*N*/ } -/*N*/ -/*N*/ const SfxPoolItem *pPoolItem; -/*N*/ if( SFX_ITEM_SET == rAttr.GetItemState( SID_TEXTBREAK, TRUE, &pPoolItem ) ) -/*N*/ { -/*N*/ switch(nId) -/*N*/ { -/*N*/ case CHOBJID_DIAGRAM_X_AXIS: -/*N*/ case CHOBJID_DIAGRAM_A_AXIS: -/*N*/ SetFormatXAxisTextInMultipleLinesIfNecessary(((const SfxBoolItem*)pPoolItem)->GetValue()); -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_Y_AXIS: -/*N*/ case CHOBJID_DIAGRAM_B_AXIS: -/*N*/ SetFormatYAxisTextInMultipleLinesIfNecessary(((const SfxBoolItem*)pPoolItem)->GetValue()); -/*N*/ break; -/*N*/ case CHOBJID_DIAGRAM_Z_AXIS: -/*N*/ SetFormatZAxisTextInMultipleLinesIfNecessary(((const SfxBoolItem*)pPoolItem)->GetValue()); -/*N*/ break; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ break; -/*N*/ case CHOBJID_AREA: -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*?*/ break; -/*N*/ default: -/*N*/ GetAttr(nId,nIndex1).Put(rAttr,TRUE); -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ // calculate result here because BuildChart will delete pObj (dangling pointer) -/*N*/ BOOL bResult = ( pObj != NULL || nIndex1 != -1 ); -/*N*/ -/*N*/ if(bForceBuild || nIndex1!=-1) -/*N*/ BuildChart(FALSE); -/*N*/ else if(bNeedChanges && IsAttrChangeNeedsBuildChart(rAttr)) -/*?*/ BuildChart(FALSE); -/*N*/ -/*N*/ return bResult; -/*N*/ } - -/*N*/ UINT32 ChartModel::GetNumFmt(long nObjId,BOOL bPercent) -/*N*/ { -/*N*/ return ((const SfxUInt32Item&)GetAttr(nObjId).Get(bPercent -/*N*/ ? SCHATTR_AXIS_NUMFMTPERCENT:SCHATTR_AXIS_NUMFMT)).GetValue(); -/*N*/ } -/*N*/ void ChartModel::SetNumFmt(long nObjId,UINT32 nFmt,BOOL bPercent) -/*N*/ { -/*N*/ SfxItemSet aSet(*pItemPool,SCHATTR_AXIS_NUMFMT,SCHATTR_AXIS_NUMFMTPERCENT); -/*N*/ aSet.Put(SfxUInt32Item(bPercent? SCHATTR_AXIS_NUMFMTPERCENT:SCHATTR_AXIS_NUMFMT,nFmt)); -/*N*/ SetAttributes(nObjId,aSet); -/*N*/ } - - -// Prerequisite: rOutAttributes is empty but can hold all interesting attributes -// Result: All Items that are contained in all data row item sets are set -// (using the Intersect method of the SfxItemSet) -/*N*/ void ChartModel::GetDataRowAttrAll( SfxItemSet& rOutAttributes ) -/*N*/ { -/*N*/ long nListSize = aDataRowAttrList.size(); -/*N*/ -/*N*/ // no itemsets => result stays empty -/*N*/ if( nListSize == 0 ) -/*N*/ return; -/*N*/ -/*N*/ // set items of first data row and then intersect with all remaining -/*N*/ rOutAttributes.Put( *aDataRowAttrList[ 0 ] ); -/*N*/ for( long nRow = 1; nRow < nListSize; nRow++ ) -/*N*/ rOutAttributes.Intersect( *aDataRowAttrList[ nRow ] ); -/*N*/ } - -/*N*/ void ChartModel::SetItemWithNameCreation( SfxItemSet& rDestItemSet, const SfxPoolItem* pNewItem ) -/*N*/ { -/*N*/ if( pNewItem == NULL ) -/*N*/ return; -/*N*/ -/*N*/ const SfxPoolItem* pItemToSet = pNewItem; -/*N*/ -/*N*/ // this code comes from bf_svx/source/svdraw/svdoattr.cxx: SdrAttrObj::ItemChange() -/*N*/ switch( pItemToSet->Which()) -/*N*/ { -/*N*/ case XATTR_FILLBITMAP: -/*N*/ pItemToSet = ((XFillBitmapItem*)pItemToSet)->checkForUniqueItem( this ); -/*N*/ break; -/*N*/ case XATTR_LINEDASH: -/*N*/ pItemToSet = ((XLineDashItem*)pItemToSet)->checkForUniqueItem( this ); -/*N*/ break; -/*N*/ case XATTR_LINESTART: -/*N*/ pItemToSet = ((XLineStartItem*)pItemToSet)->checkForUniqueItem( this ); -/*N*/ break; -/*N*/ case XATTR_LINEEND: -/*N*/ pItemToSet = ((XLineEndItem*)pItemToSet)->checkForUniqueItem( this ); -/*N*/ break; -/*N*/ case XATTR_FILLGRADIENT: -/*N*/ pItemToSet = ((XFillGradientItem*)pItemToSet)->checkForUniqueItem( this ); -/*N*/ break; -/*N*/ case XATTR_FILLFLOATTRANSPARENCE: -/*N*/ pItemToSet = ((XFillFloatTransparenceItem*)pItemToSet)->checkForUniqueItem( this ); -/*N*/ break; -/*N*/ case XATTR_FILLHATCH: -/*N*/ pItemToSet = ((XFillHatchItem*)pItemToSet)->checkForUniqueItem( this ); -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ if( pItemToSet ) -/*N*/ rDestItemSet.Put( *pItemToSet ); -/*N*/ -/*N*/ // delete item if it was a generated one -/*N*/ if( pNewItem != pItemToSet ) -/*N*/ delete pItemToSet; -/*N*/ } - -/*N*/ void ChartModel::PutItemSetWithNameCreation( SfxItemSet& rDestItemSet, const SfxItemSet& rNewItemSet ) -/*N*/ { -/*N*/ // copy all attributes -/*N*/ rDestItemSet.Put( rNewItemSet ); -/*N*/ -/*N*/ // check for items that need name creation -/*N*/ SfxWhichIter aIter( rNewItemSet ); -/*N*/ sal_uInt16 nWhich = aIter.FirstWhich(); -/*N*/ const SfxPoolItem* pPoolItem = NULL; -/*N*/ -/*N*/ while( nWhich ) -/*N*/ { -/*N*/ switch( nWhich ) -/*N*/ { -/*N*/ case XATTR_FILLBITMAP: -/*N*/ case XATTR_LINEDASH: -/*N*/ case XATTR_LINESTART: -/*N*/ case XATTR_LINEEND: -/*N*/ case XATTR_FILLGRADIENT: -/*N*/ case XATTR_FILLFLOATTRANSPARENCE: -/*N*/ case XATTR_FILLHATCH: -/*N*/ if( SFX_ITEM_SET == rNewItemSet.GetItemState( nWhich, TRUE, &pPoolItem )) -/*N*/ SetItemWithNameCreation( rDestItemSet, pPoolItem ); -/*N*/ } -/*N*/ nWhich = aIter.NextWhich(); -/*N*/ } -/*N*/ } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chtmode4.cxx b/binfilter/bf_sch/source/core/sch_chtmode4.cxx deleted file mode 100644 index 481ccec9b..000000000 --- a/binfilter/bf_sch/source/core/sch_chtmode4.cxx +++ /dev/null @@ -1,1621 +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. - * - ************************************************************************/ - -#include "pairs.hxx" - -#include <bf_svx/eeitem.hxx> -#include <bf_sfx2/sfxsids.hrc> -#ifdef _MSC_VER -#pragma hdrstop -#endif -#include <bf_svx/svdopath.hxx> -#include <vcl/msgbox.hxx> -#include <bf_svtools/itempool.hxx> -#include <bf_svx/svdorect.hxx> -#include <bf_sfx2/printer.hxx> - -#include <bf_svx/editdata.hxx> -#include "schattr.hxx" - -#ifndef _SVX_CHRTITEM_HXX //autogen -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR -#define ITEMID_CHARTSTYLE CHATTR_DIAGRAM_STYLE -#define ITEMID_CHARTLEGENDPOS SCHATTR_LEGEND_POS - -#include <bf_svtools/eitem.hxx> - -#include <bf_svx/chrtitem.hxx> -#endif - -#define ITEMID_FONTHEIGHT EE_CHAR_FONTHEIGHT -#define ITEMID_FONTWIDTH EE_CHAR_FONTWIDTH -#include <bf_svx/fhgtitem.hxx> -#include <bf_svx/fwdtitem.hxx> -#ifndef _CHTMODEL_HXX -#include <globfunc.hxx> -#include <chtmodel.hxx> -#endif -#include <bf_svx/svdoutl.hxx> // wg. SdrOutliner -#include <bf_svx/svdpage.hxx> -#include "objadj.hxx" -#include "schresid.hxx" -#include "objid.hxx" -#include "datarow.hxx" -#include <bf_svx/dlgutil.hxx> - -#include "chtscene.hxx" -#include "glob.hrc" -#include <math.h> -#include <float.h> - -#include "chmod3d.hxx" -#include "docshell.hxx" - -#include <bf_sfx2/app.hxx> -#include <vcl/virdev.hxx> - -#include <rtl/logfile.hxx> - -#include "chaxis.hxx" -#include "ChXChartDocument.hxx" - -#include "ReBuildHint.hxx" -namespace binfilter { - -/************************************************************************* -|* -|* Datenbeschriftung aendern; -|* FG: 24.4.97 nRow ist ein Parameter der ermoeglicht die Datenbeschriftung -|* einer einzigen Reihe zu aendern, falls er -1 ist werden alle -|* Datenreihen mit dem uebergebenen Attributen belegt. (default ist alle) -|* -\************************************************************************/ - -/*N*/ void ChartModel::ChangeDataDescr(SvxChartDataDescr eDescr, BOOL bSym, -/*N*/ long nRowToChange, BOOL bBuildChart) -/*N*/ { -/*N*/ if( nRowToChange == -1 || -/*N*/ IsPieChart()) -/*N*/ { -/*N*/ // change setting globally -/*N*/ eDataDescr = eDescr; -/*N*/ bShowSym = bSym; -/*N*/ -/*N*/ // clear individual settings -/*N*/ long nEndRow = GetRowCount(); -/*N*/ for( long nRow = 0; nRow < nEndRow; nRow++ ) -/*N*/ { -/*N*/ SfxItemSet &rAttr = SAL_CONST_CAST( SfxItemSet&, GetDataRowAttr( (short)nRow )); -/*N*/ -/*N*/ rAttr.Put( SvxChartDataDescrItem( eDescr )); -/*N*/ rAttr.Put( SfxBoolItem( SCHATTR_DATADESCR_SHOW_SYM, bSym )); -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ SfxItemSet &rAttr = SAL_CONST_CAST( SfxItemSet&, GetDataRowAttr( (short)nRowToChange )); -/*N*/ -/*N*/ rAttr.Put( SvxChartDataDescrItem( eDescr )); -/*N*/ rAttr.Put( SfxBoolItem( SCHATTR_DATADESCR_SHOW_SYM, bSym )); -/*N*/ } -/*N*/ -/*N*/ if( bBuildChart ) -/*?*/ BuildChart( FALSE ); -/*N*/ } - -/************************************************************************* -|* -|* Seitengroesse aendern; -|* Liefert bei Aenderung TRUE. -|* -\************************************************************************/ - -/*N*/ BOOL ChartModel::ResizePage(const Size& rNewSize) -/*N*/ { -/*N*/ SdrPage* pPage = GetPage(0); -/*N*/ -/*N*/ if (!pPage || pPage->GetSize() == rNewSize) return FALSE; -/*N*/ else -/*N*/ { -/*N*/ BOOL bWasChanged = IsChanged(); -/*N*/ -/*N*/ pPage->SetSize(rNewSize); -/*N*/ eOldChartStyle = eChartStyle; -/*N*/ if (rNewSize.Width () != 0 && rNewSize.Height () != 0) BuildChart(FALSE); -/*N*/ -/*N*/ if (!bWasChanged) SetChanged(FALSE); -/*N*/ -/*N*/ return TRUE; -/*N*/ } -/*N*/ } - - -/************************************************************************ -|* -|* skaliere Texte neu um -|* -\************************************************************************/ - -/*N*/ void ChartModel::ResizeText (SfxItemSet *pTextAttr, Size aPageSize, BOOL bResizePage ) -/*N*/ { -/*N*/ double fRatio; -/*N*/ if( bResizePage ) -/*N*/ fRatio = (double)aPageSize.Height() / (double)aInitialSize.Height(); -/*N*/ else -/*?*/ fRatio = (double)aDiagramRectangle.GetHeight() / (double)aLastDiagramRectangle.GetHeight(); -/*N*/ -/*N*/ // resize all three fonts -/*N*/ static const USHORT nWhichIds[ 3 ] = { -/*N*/ EE_CHAR_FONTHEIGHT, -/*N*/ EE_CHAR_FONTHEIGHT_CJK, -/*N*/ EE_CHAR_FONTHEIGHT_CTL -/*N*/ }; -/*N*/ -/*N*/ for( int i=0; i < 3; i++ ) -/*N*/ { -/*N*/ long nHeight = ((SvxFontHeightItem &)pTextAttr->Get( nWhichIds[ i ] )).GetHeight(); -/*N*/ -/*N*/ // Scale and round height. -/*N*/ nHeight = (long)( fRatio * (double)nHeight + 0.5 ); -/*N*/ -/*N*/ float fPoints = (float)CalcToPoint( nHeight, SFX_MAPUNIT_100TH_MM, 10 ); -/*N*/ if( fPoints < 2.0 ) fPoints = 2.0; -/*N*/ -/*N*/ pTextAttr->Put( SvxFontHeightItem( CalcToUnit( fPoints / (float)10.0, SFX_MAPUNIT_100TH_MM ), -/*N*/ 100, nWhichIds[ i ] )); -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Attribute lesen -|* -\************************************************************************/ - -//SfxItemSet ChartModel::GetAttr() const -/*N*/ void ChartModel::GetAttr(SfxItemSet& rAttr) -/*N*/ { -/*N*/ CHART_TRACE( "ChartModel::GetAttr(SfxItemSet& rAttr)" ); -/*N*/ -/*N*/ rAttr.Put(SvxChartStyleItem(ChartStyle())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_TITLE_SHOW_MAIN, ShowMainTitle())); -/*N*/ rAttr.Put(SfxStringItem(CHATTR_TITLE_MAIN, MainTitle())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_TITLE_SHOW_SUB, ShowSubTitle())); -/*N*/ rAttr.Put(SfxStringItem(CHATTR_TITLE_SUB, SubTitle())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_TITLE_SHOW_X_AXIS, ShowXAxisTitle())); -/*N*/ rAttr.Put(SfxStringItem(CHATTR_TITLE_X_AXIS, XAxisTitle())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_TITLE_SHOW_Y_AXIS, ShowYAxisTitle())); -/*N*/ rAttr.Put(SfxStringItem(CHATTR_TITLE_Y_AXIS, YAxisTitle())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_TITLE_SHOW_Z_AXIS, ShowZAxisTitle())); -/*N*/ rAttr.Put(SfxStringItem(CHATTR_TITLE_Z_AXIS, ZAxisTitle())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_X_AXIS, ShowXAxis())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_X_MAIN, ShowXGridMain())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_X_HELP, ShowXGridHelp())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_X_DESCR, ShowXDescr())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_Y_AXIS, ShowYAxis())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_Y_MAIN, ShowYGridMain())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_Y_HELP, ShowYGridHelp())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_Y_DESCR, ShowYDescr())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_Z_AXIS, ShowZAxis())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_Z_MAIN, ShowZGridMain())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_Z_HELP, ShowZGridHelp())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_Z_DESCR, ShowZDescr())); -/*N*/ -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_2Y_AXIS, GetAxisByUID(CHART_AXIS_SECONDARY_Y)->IsVisible())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_2Y_DESCR, GetAxisByUID(CHART_AXIS_SECONDARY_Y)->HasDescription())); -/*N*/ -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_2X_AXIS, GetAxisByUID(CHART_AXIS_SECONDARY_X)->IsVisible())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_AXISGRID_SHOW_2X_DESCR, GetAxisByUID(CHART_AXIS_SECONDARY_X)->HasDescription())); -/*N*/ -/*N*/ const SfxPoolItem *pPoolItem = NULL; -/*N*/ if (pLegendAttr->GetItemState(SCHATTR_LEGEND_POS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ rAttr.Put(SvxChartLegendPosItem -/*N*/ (((const SvxChartLegendPosItem*)pPoolItem)->GetValue(), -/*N*/ pItemPool->GetSlotId(SCHATTR_LEGEND_POS))); -/*N*/ -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_DATA_SWITCH, IsSwitchData())); -/*N*/ -/*N*/ -/*N*/ rAttr.Put (SfxBoolItem (SCHATTR_STAT_AVERAGE,bShowAverage)); -/*N*/ rAttr.Put (SfxInt32Item (SCHATTR_STAT_KIND_ERROR, (INT32) eErrorKind)); -/*N*/ rAttr.Put (SfxInt32Item (SCHATTR_STAT_INDICATE, (INT32) eIndicate)); -/*N*/ rAttr.Put (SvxDoubleItem (fIndicatePercent, SCHATTR_STAT_PERCENT)); -/*N*/ rAttr.Put (SvxDoubleItem (fIndicateBigError, SCHATTR_STAT_BIGERROR)); -/*N*/ rAttr.Put (SvxDoubleItem (fIndicatePlus, SCHATTR_STAT_CONSTPLUS)); -/*N*/ rAttr.Put (SvxDoubleItem (fIndicateMinus, SCHATTR_STAT_CONSTMINUS)); -/*N*/ rAttr.Put (SfxInt32Item (SCHATTR_STAT_REGRESSTYPE, (INT32) eRegression)); -/*N*/ -/*N*/ //Datenbeschriftung -/*N*/ rAttr.Put(SfxBoolItem(SCHATTR_DATADESCR_SHOW_SYM,bShowSym)); -/*N*/ rAttr.Put(SvxChartDataDescrItem(eDataDescr)); -/*N*/ -/*N*/ rAttr.Put(SfxInt32Item(CHATTR_BARWIDTH,GetBarPercentWidth())); -/*N*/ rAttr.Put(SfxBoolItem(CHATTR_BARCONNECT, (BOOL)(m_nDefaultColorSet&CHSPECIAL_TRACELINES))); -/*N*/ -/*N*/ if (pChartAttr->GetItemState(SCHATTR_STYLE_SHAPE, TRUE, &pPoolItem)== SFX_ITEM_SET) -/*N*/ { -/*?*/ long nTmp= (long)((const SfxInt32Item*)pPoolItem)->GetValue(); -/*?*/ rAttr.Put(SfxInt32Item(SCHATTR_STYLE_SHAPE,nTmp)); -/*N*/ } -/*N*/ -/*N*/ ChartScene *pLclScene=GetScene(); -/*N*/ if(pLclScene) -/*N*/ rAttr.Put(pLclScene->GetItemSet()); -/*N*/ -/*N*/ if( pChartAttr->GetItemState( SCHATTR_USER_DEFINED_ATTR, TRUE, &pPoolItem ) == SFX_ITEM_SET ) -/*N*/ { -/*?*/ rAttr.Put( *pPoolItem ); -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Attribute setzen -|* -\************************************************************************/ - -/*N*/ void ChartModel::PutAttr(const SfxItemSet& rAttr) -/*N*/ { -/*N*/ const SfxPoolItem *pPoolItem = NULL; -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_TITLE_SHOW_MAIN, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ ShowMainTitle () = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_TITLE_MAIN, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*?*/ MainTitle () = ((const SfxStringItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_TITLE_SHOW_SUB, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ ShowSubTitle () = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_TITLE_SUB, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*?*/ SubTitle () = ((const SfxStringItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_TITLE_SHOW_X_AXIS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ ShowXAxisTitle () = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_TITLE_X_AXIS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*?*/ XAxisTitle () = ((const SfxStringItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_TITLE_SHOW_Y_AXIS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ ShowYAxisTitle () = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_TITLE_Y_AXIS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*?*/ YAxisTitle () = ((const SfxStringItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_TITLE_SHOW_Z_AXIS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ ShowZAxisTitle () = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_TITLE_Z_AXIS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*?*/ ZAxisTitle () = ((const SfxStringItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_X_AXIS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ ShowXAxis (((const SfxBoolItem*)pPoolItem)->GetValue()); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_X_MAIN, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ ShowXGridMain () = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_X_HELP, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*?*/ ShowXGridHelp () = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_X_DESCR, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ ShowXDescr (((const SfxBoolItem*)pPoolItem)->GetValue()); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_Y_AXIS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ ShowYAxis (((const SfxBoolItem*)pPoolItem)->GetValue()); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_Y_MAIN, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ ShowYGridMain () = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_Y_HELP, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*?*/ ShowYGridHelp () = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_Y_DESCR, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ ShowYDescr (((const SfxBoolItem*)pPoolItem)->GetValue()); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_Z_AXIS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ ShowZAxis (((const SfxBoolItem*)pPoolItem)->GetValue()); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_Z_MAIN, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*?*/ ShowZGridMain () = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_Z_HELP, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*?*/ ShowZGridHelp () = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_Z_DESCR, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ ShowZDescr (((const SfxBoolItem*)pPoolItem)->GetValue()); -/*N*/ -/*N*/ -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_2Y_AXIS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ { -/*N*/ BOOL b = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ pChartBAxis->GetItemSet()->Put(SfxBoolItem(SCHATTR_AXIS_SHOWAXIS,b)); -/*N*/ } -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_2Y_DESCR, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ { -/*N*/ BOOL b = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ pChartBAxis->GetItemSet()->Put(SfxBoolItem(SCHATTR_AXIS_SHOWDESCR,b)); -/*N*/ } -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_2X_AXIS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ { -/*N*/ BOOL b = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ pChartAAxis->GetItemSet()->Put(SfxBoolItem(SCHATTR_AXIS_SHOWAXIS,b)); -/*N*/ } -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_AXISGRID_SHOW_2X_DESCR, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ { -/*N*/ BOOL b = ((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ pChartAAxis->GetItemSet()->Put(SfxBoolItem(SCHATTR_AXIS_SHOWDESCR,b)); -/*N*/ } -/*N*/ -/*N*/ -/*N*/ -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_LEGEND_POS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ pLegendAttr->Put(SvxChartLegendPosItem -/*N*/ (((const SvxChartLegendPosItem*)pPoolItem)->GetValue(), -/*?*/ pItemPool->GetWhich(CHATTR_LEGEND_POS))); -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_DATA_SWITCH, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*?*/ ChangeSwitchData(((const SfxBoolItem*)pPoolItem)->GetValue()); -/*N*/ -/*N*/ -/*N*/ -/*N*/ //Statistik -/*N*/ if (rAttr.GetItemState(SCHATTR_STAT_CONSTPLUS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ fIndicatePlus=((const SvxDoubleItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(SCHATTR_STAT_BIGERROR, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ fIndicateBigError=((const SvxDoubleItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(SCHATTR_STAT_PERCENT, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ fIndicatePercent=((const SvxDoubleItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(SCHATTR_STAT_INDICATE, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*?*/ eIndicate=(SvxChartIndicate)((const SfxInt32Item*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(SCHATTR_STAT_KIND_ERROR, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ eErrorKind=(SvxChartKindError)((const SfxInt32Item*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(SCHATTR_STAT_AVERAGE, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ bShowAverage=((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(SCHATTR_STAT_CONSTMINUS, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ fIndicateMinus=((const SvxDoubleItem*)pPoolItem)->GetValue(); -/*N*/ if (rAttr.GetItemState(SCHATTR_STAT_REGRESSTYPE, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ eRegression=(SvxChartRegress)((const SfxInt32Item*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ -/*N*/ //Datenbeschriftung -/*N*/ SvxChartDataDescr eNewDataDescr,eOldDataDescr; -/*N*/ BOOL bNewShowSym, bOldShowSym; -/*N*/ -/*N*/ eNewDataDescr = eOldDataDescr = eDataDescr; -/*N*/ bNewShowSym = bOldShowSym = bShowSym; -/*N*/ -/*N*/ if (rAttr.GetItemState(SCHATTR_DATADESCR_DESCR, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ eNewDataDescr=(SvxChartDataDescr)((const SvxChartDataDescrItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if (rAttr.GetItemState(SCHATTR_DATADESCR_SHOW_SYM, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ bNewShowSym=((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ -/*N*/ if( bOldShowSym != bNewShowSym || eOldDataDescr != eNewDataDescr ) -/*N*/ { -/*?*/ ChangeDataDescr(eNewDataDescr,bNewShowSym); -/*N*/ } -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_BARWIDTH, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*?*/ SetBarPercentWidth((long)((const SfxInt32Item*)pPoolItem)->GetValue()); -/*N*/ -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_BARCONNECT, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*N*/ { -/*N*/ BOOL bTmp=((const SfxBoolItem*)pPoolItem)->GetValue(); -/*N*/ m_nDefaultColorSet=(bTmp) -/*N*/ ?(m_nDefaultColorSet|CHSPECIAL_TRACELINES) -/*N*/ :(m_nDefaultColorSet|CHSPECIAL_TRACELINES)-CHSPECIAL_TRACELINES; -/*N*/ } -/*N*/ -/*N*/ if (rAttr.GetItemState(SCHATTR_STYLE_SHAPE, TRUE, &pPoolItem)== SFX_ITEM_SET) -/*N*/ { -/*N*/ long nTmp= (long)((const SfxInt32Item*)pPoolItem)->GetValue(); -/*N*/ SfxItemSet aS(*pItemPool,SCHATTR_STYLE_SHAPE,SCHATTR_STYLE_SHAPE,0); -/*N*/ aS.Put(SfxInt32Item(SCHATTR_STYLE_SHAPE,nTmp)); -/*N*/ PutDataRowAttrAll(aS); -/*N*/ } -/*N*/ -/*N*/ // Autopilot mit CHATTR_ -/*N*/ if (rAttr.GetItemState(CHATTR_STYLE_SHAPE, TRUE, &pPoolItem)== SFX_ITEM_SET) -/*N*/ { -/*?*/ long nTmp= (long)((const SfxInt32Item*)pPoolItem)->GetValue(); -/*?*/ SfxItemSet aS(*pItemPool,SCHATTR_STYLE_SHAPE,SCHATTR_STYLE_SHAPE,0); -/*?*/ aS.Put(SfxInt32Item(SCHATTR_STYLE_SHAPE,nTmp)); -/*?*/ PutDataRowAttrAll(aS); -/*N*/ } -/*N*/ if( rAttr.GetItemState(CHATTR_AXIS_AUTO_ORIGIN, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ { -/*?*/ BOOL bTmp= (BOOL)((const SfxBoolItem*)pPoolItem)->GetValue(); -/*?*/ SfxItemSet aS( *pItemPool, SCHATTR_AXIS_AUTO_ORIGIN, SCHATTR_AXIS_AUTO_ORIGIN); -/*?*/ aS.Put( SfxBoolItem( SCHATTR_AXIS_AUTO_ORIGIN, bTmp )); -/*?*/ if( pChartYAxis ) -/*?*/ { -/*?*/ pChartYAxis->SetAttributes( aS ); -/*?*/ } -/*?*/ if( pChartBAxis ) -/*?*/ { -/*?*/ pChartBAxis->SetAttributes( aS ); -/*?*/ } -/*N*/ } -/*N*/ -/*N*/ ChartScene *pLclScene=GetScene(); -/*N*/ if(pLclScene) //ToDo: Ist das hier nötig??? warum nicht direkt rAttr? #63904# -/*N*/ { -/*N*/ SfxItemSet aSceneSet(*pItemPool,nRowWhichPairs); -/*N*/ aSceneSet.Put(rAttr); -/*N*/ -/*N*/ pLclScene->SetItemSet(aSceneSet); -/*N*/ -/*N*/ } -/*N*/ -/*N*/ if( rAttr.GetItemState( SCHATTR_USER_DEFINED_ATTR, TRUE, &pPoolItem ) == SFX_ITEM_SET ) -/*N*/ { -/*?*/ pChartAttr->Put( *pPoolItem ); -/*N*/ } -/*N*/ -/*N*/ -/*N*/ if (rAttr.GetItemState(CHATTR_DIAGRAM_STYLE, TRUE, &pPoolItem) -/*N*/ == SFX_ITEM_SET) -/*?*/ ChangeChart( ((const SvxChartStyleItem*)pPoolItem)->GetValue()); -/*N*/ } - -/*N*/ long ChartModel::GetAxisUID(long nRow) -/*N*/ { -/*N*/ return ((const SfxInt32Item &)GetDataRowAttr(nRow).Get(SCHATTR_AXIS)).GetValue(); -/*N*/ }; - - -/************************************************************************* -|* -|* gesamte Grafik initialisieren -|* -\************************************************************************/ - -/*N*/ void ChartModel::Initialize() -/*N*/ { -/*N*/ mbIsInitialized = TRUE; -/*N*/ -/*N*/ if (!(aInitialSize.Height () && aInitialSize.Width ())) -/*N*/ { -/*?*/ SdrPage* pPage = GetPage(0); -/*?*/ if (pPage) aInitialSize = pPage->GetSize(); -/*?*/ -/*?*/ if (!(aInitialSize.Height () && aInitialSize.Width ())) aInitialSize = Size (7000, 8000); -/*?*/ // 13000, 8666 -/*N*/ } -/*N*/ -/*N*/ ScaleText( 0, aInitialSize ); -/*N*/ -/*N*/ if( bShouldBuildChart ) -/*N*/ { -/*N*/ // Force build chart. If it has been loaded from an XML file, than that is -/*N*/ // done by unlocking it. -/*N*/ bNoBuildChart = FALSE; -/*N*/ -/*N*/ if( pDocShell && -/*N*/ pDocShell->IsEnableSetModified()) -/*N*/ { -/*?*/ pDocShell->EnableSetModified( FALSE ); -/*?*/ if (IsLockedBuild()) -/*?*/ UnlockBuild(); -/*?*/ else -/*?*/ BuildChart( FALSE ); -/*?*/ pDocShell->EnableSetModified( TRUE ); -/*N*/ } -/*N*/ else -/*N*/ if (IsLockedBuild()) -/*?*/ UnlockBuild(); -/*N*/ else -/*N*/ BuildChart( FALSE ); -/*N*/ } -/*N*/ -/*N*/ SetDiagramRectangle( GetChartRect() ); -/*N*/ } - - -/************************************************************************* -|* -|* Sub-Methode von BuildChart() -|* -\************************************************************************/ -/*N*/ void ChartModel::ScaleText( long nTitle, const Size& rPageSize ) -/*N*/ { -/*N*/ // #67459# -/*N*/ // if the page size is unchanged ... -/*N*/ if( aInitialSize == rPageSize ) -/*N*/ { -/*N*/ // ... and the diagram (possibly) has been resized -/*N*/ if( GetDiagramHasBeenMovedOrResized() && (aLastDiagramRectangle != aDiagramRectangle) ) -/*N*/ { -/*?*/ if( nTitle != CHOBJID_DIAGRAM_X_AXIS ) -/*?*/ ResizeText( &GetAttr(CHOBJID_DIAGRAM_X_AXIS), rPageSize, FALSE ); -/*?*/ if( nTitle != CHOBJID_DIAGRAM_Y_AXIS ) -/*?*/ ResizeText( &GetAttr(CHOBJID_DIAGRAM_Y_AXIS), rPageSize, FALSE ); -/*?*/ if( nTitle != CHOBJID_DIAGRAM_A_AXIS ) -/*?*/ ResizeText( &GetAttr(CHOBJID_DIAGRAM_A_AXIS), rPageSize, FALSE ); -/*?*/ if( nTitle != CHOBJID_DIAGRAM_B_AXIS ) -/*?*/ ResizeText( &GetAttr(CHOBJID_DIAGRAM_B_AXIS), rPageSize, FALSE ); -/*?*/ if( nTitle != CHOBJID_DIAGRAM_Z_AXIS ) -/*?*/ ResizeText( &GetAttr(CHOBJID_DIAGRAM_Z_AXIS), rPageSize, FALSE ); -/*?*/ -/*?*/ for( size_t i = 0; i < aDataRowAttrList.size(); i++ ) -/*?*/ ResizeText( aDataRowAttrList[ i ], rPageSize, FALSE ); -/*?*/ ResizeText(pDummyAttr,rPageSize); // also resize crash test dummy to normal for next test ? -/*N*/ } -/*N*/ } -/*N*/ else // page size has changed -/*N*/ { -/*N*/ if(nTitle != CHOBJID_TITLE_MAIN) -/*N*/ ResizeText (pMainTitleAttr ,rPageSize); -/*N*/ if(nTitle != CHOBJID_TITLE_SUB) -/*N*/ ResizeText (pSubTitleAttr ,rPageSize); -/*N*/ if(nTitle != CHOBJID_DIAGRAM_TITLE_X_AXIS) -/*N*/ ResizeText (pXAxisTitleAttr,rPageSize); -/*N*/ if(nTitle != CHOBJID_DIAGRAM_TITLE_Y_AXIS) -/*N*/ ResizeText (pYAxisTitleAttr,rPageSize); -/*N*/ if(nTitle != CHOBJID_DIAGRAM_TITLE_Z_AXIS) -/*N*/ ResizeText (pZAxisTitleAttr,rPageSize); -/*N*/ -/*N*/ if(nTitle != CHOBJID_DIAGRAM_X_AXIS) -/*N*/ ResizeText(&GetAttr(CHOBJID_DIAGRAM_X_AXIS),rPageSize); -/*N*/ if(nTitle != CHOBJID_DIAGRAM_Y_AXIS) -/*N*/ ResizeText(&GetAttr(CHOBJID_DIAGRAM_Y_AXIS),rPageSize); -/*N*/ if(nTitle != CHOBJID_DIAGRAM_A_AXIS) -/*N*/ ResizeText(&GetAttr(CHOBJID_DIAGRAM_A_AXIS),rPageSize); -/*N*/ if(nTitle != CHOBJID_DIAGRAM_B_AXIS) -/*N*/ ResizeText(&GetAttr(CHOBJID_DIAGRAM_B_AXIS),rPageSize); -/*N*/ if(nTitle != CHOBJID_DIAGRAM_Z_AXIS) -/*N*/ ResizeText(&GetAttr(CHOBJID_DIAGRAM_Z_AXIS),rPageSize); -/*N*/ if(nTitle != CHOBJID_LEGEND) -/*N*/ ResizeText(pLegendAttr, rPageSize); -/*N*/ for( size_t i = 0; i < aDataRowAttrList.size(); i++ ) -/*N*/ ResizeText( aDataRowAttrList[ i ], rPageSize ); -/*N*/ ResizeText(pDummyAttr,rPageSize); // also resize crash test dummy to normal for next test ? -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Sub-Methode von BuildChart(), Anzeige des Haupttitels -|* -\************************************************************************/ -/*N*/ void ChartModel::DoShowMainTitle(USHORT& rIndex,const long nYOfs) -/*N*/ { -/*N*/ SdrPage* pPage=GetPage(0); -/*N*/ const Size& rPageSize=pPage->GetSize(); -/*N*/ -/*N*/ Point aTitlePosition; -/*N*/ if (bUseRelativePositionsForChartGroups && (aTitleTopCenter.X() >= 0) && -/*N*/ (aTitleTopCenter.Y() >= 0) && GetMainTitleHasBeenMoved()) -/*N*/ { -/*N*/ double fRelativXPosition = ((double) aTitleTopCenter.X()) / aInitialSize.Width(); -/*N*/ double fRelativYPosition = ((double) aTitleTopCenter.Y()) / aInitialSize.Height(); -/*N*/ aTitlePosition.X() = (long)((double)rPageSize.Width() * fRelativXPosition ); -/*N*/ aTitlePosition.Y() = (long)((double)rPageSize.Height() * fRelativYPosition ); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ aTitlePosition.X() = aChartRect.Left() + aChartRect.GetWidth() / 2; -/*N*/ aTitlePosition.Y() = aChartRect.Top(); -/*N*/ } -/*N*/ -/*N*/ SdrTextObj *pObj = CreateTextObj(CHOBJID_TITLE_MAIN, aTitlePosition, -/*N*/ aMainTitle, -/*N*/ *pMainTitleAttr, TRUE, CHADJUST_TOP_CENTER); -/*N*/ -/*N*/ aChartRect.Top() += GetOutputSize(*pObj).Height() + nYOfs; -/*N*/ pObj->SetResizeProtect(TRUE); -/*N*/ pPage->NbcInsertObject(pObj, rIndex++); -/*N*/ } - -/************************************************************************* -|* -|* Sub-Methode von BuildChart(), man koennte vermutlich DoShowMainTitle und -|* DoShowSubTitle zu DoShowTitle zusammenfassen -|* -\************************************************************************/ -/*N*/ void ChartModel::DoShowSubTitle(USHORT& rIndex,const long nYOfs) -/*N*/ { -/*N*/ SdrPage* pPage=GetPage(0); -/*N*/ const Size& rPageSize=pPage->GetSize(); -/*N*/ -/*N*/ Point aSubTitlePosition; -/*N*/ if (bUseRelativePositionsForChartGroups && (aSubTitleTopCenter.X() >= 0) && -/*N*/ (aSubTitleTopCenter.Y() >= 0) && GetSubTitleHasBeenMoved()) -/*N*/ { -/*N*/ double fRelativeXPosition = ((double) aSubTitleTopCenter.X()) / aInitialSize.Width(); -/*N*/ double fRelativeYPosition = ((double) aSubTitleTopCenter.Y()) / aInitialSize.Height(); -/*N*/ aSubTitlePosition.X() = (long)((double)rPageSize.Width() * fRelativeXPosition ); -/*N*/ aSubTitlePosition.Y() = (long)((double)rPageSize.Height() * fRelativeYPosition ); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ aSubTitlePosition.X() = aChartRect.Left() + aChartRect.GetWidth() / 2; -/*N*/ aSubTitlePosition.Y() = aChartRect.Top(); -/*N*/ } -/*N*/ SdrTextObj *pObj = CreateTextObj(CHOBJID_TITLE_SUB, aSubTitlePosition, -/*N*/ aSubTitle, -/*N*/ *pSubTitleAttr, TRUE, CHADJUST_TOP_CENTER); -/*N*/ -/*N*/ aChartRect.Top() += GetOutputSize(*pObj).Height() + nYOfs; -/*N*/ pObj->SetResizeProtect(TRUE); -/*N*/ pPage->NbcInsertObject(pObj, rIndex++); -/*N*/ } - -/************************************************************************* -|* -|* Sub-Methode von BuildChart(), Anzeige der Legende -|* -\************************************************************************/ -/*N*/ void ChartModel::DoShowLegend(const Rectangle& rWholeRect, -/*N*/ const long nXOfs,const long nYOfs,USHORT& rIndex) -/*N*/ { -/*N*/ SdrPage* pPage=GetPage(0); -/*N*/ const Size& rPageSize=pPage->GetSize(); -/*N*/ -/*N*/ SvxChartLegendPos eLegendPos = ((const SvxChartLegendPosItem&) pLegendAttr->Get(SCHATTR_LEGEND_POS)). -/*N*/ GetValue(); -/*N*/ -/*N*/ if (eLegendPos != CHLEGEND_NONE) -/*N*/ { -/*N*/ SdrObject *pObj = CreateLegend(rWholeRect); -/*N*/ -/*N*/ if (pObj) -/*N*/ { -/*N*/ Rectangle aRect = pObj->GetLogicRect(); -/*N*/ ChartAdjust eAdjust(CHADJUST_TOP_LEFT); -/*N*/ -/*N*/ Point aLegendPosition; -/*N*/ if (bUseRelativePositionsForChartGroups && (aLegendTopLeft.X() >= 0) && -/*N*/ (aLegendTopLeft.Y() >= 0) && GetLegendHasBeenMoved()) -/*N*/ { -/*N*/ double fRatioX = -/*N*/ static_cast< double >( rPageSize.Width() ) / -/*N*/ static_cast< double >( aInitialSize.Width() ); -/*N*/ double fRatioY = -/*N*/ static_cast< double >( rPageSize.Height() ) / -/*N*/ static_cast< double >( aInitialSize.Height() ); -/*N*/ -/*N*/ aLegendPosition.X() = static_cast< long >( -/*N*/ static_cast< double >( aLegendTopLeft.X() ) * fRatioX ); -/*N*/ aLegendPosition.Y() = static_cast< long >( -/*N*/ static_cast< double >( aLegendTopLeft.Y() ) * fRatioY ); -/*N*/ -/*N*/ if( bAdjustMarginsForLegend ) -/*N*/ { -/*N*/ switch (eLegendPos) -/*N*/ { -/*N*/ case CHLEGEND_LEFT: -/*?*/ eAdjust = CHADJUST_TOP_LEFT; -/*?*/ aChartRect.Left() += aRect.GetWidth() + nXOfs; -/*?*/ break; -/*?*/ -/*?*/ case CHLEGEND_TOP: -/*?*/ eAdjust = CHADJUST_TOP_LEFT; -/*?*/ aChartRect.Top() += aRect.GetHeight() + nYOfs; -/*?*/ break; -/*N*/ -/*N*/ case CHLEGEND_RIGHT: -/*N*/ eAdjust = CHADJUST_TOP_LEFT; -/*N*/ aChartRect.Right() -= aRect.GetWidth() + nXOfs; -/*N*/ break; -/*N*/ -/*?*/ case CHLEGEND_BOTTOM: -/*?*/ eAdjust = CHADJUST_TOP_LEFT; -/*?*/ aChartRect.Bottom() -= aRect.GetHeight() + nYOfs; -/*?*/ break; -/*?*/ default: -/*?*/ break; -/*N*/ } -/*N*/ } -/*N*/ // #96418# why shifting the legend nXOfs/nYOfs away from the -/*N*/ // edge, if it moved manually; it may well reach the edge in -/*N*/ // that case. So just check if it laps out of the edge. Apart -/*N*/ // from that the default position did not satisfy this condition -/*N*/ // and was therefore always shifted inside -/*N*/ if (aLegendPosition.X() + aRect.GetWidth() > rPageSize.Width()) -/*N*/ { -/*?*/ aLegendPosition.X() = rPageSize.Width() - aRect.GetWidth(); -/*N*/ } -/*N*/ if (aLegendPosition.Y() + aRect.GetHeight() > rPageSize.Height()) -/*N*/ { -/*?*/ aLegendPosition.Y() = rPageSize.Height() - aRect.GetHeight(); -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ switch (eLegendPos) -/*N*/ { -/*N*/ case CHLEGEND_LEFT: -/*?*/ aLegendPosition.X() = rWholeRect.Left(); -/*?*/ aLegendPosition.Y() = rWholeRect.Top() + rWholeRect.GetHeight() / 2; -/*?*/ eAdjust = CHADJUST_CENTER_LEFT; -/*?*/ aChartRect.Left() += aRect.GetWidth() + nXOfs; -/*?*/ break; -/*?*/ -/*?*/ case CHLEGEND_TOP: -/*?*/ aLegendPosition.X() = rWholeRect.Left() + rWholeRect.GetWidth() / 2; -/*?*/ aLegendPosition.Y() = aChartRect.Top(); -/*?*/ eAdjust = CHADJUST_TOP_CENTER; -/*?*/ aChartRect.Top() += aRect.GetHeight() + nYOfs; -/*?*/ break; -/*N*/ -/*N*/ case CHLEGEND_RIGHT: -/*N*/ aLegendPosition.X() = rWholeRect.Right(); -/*N*/ aLegendPosition.Y() = rWholeRect.Top() + rWholeRect.GetHeight() / 2; -/*N*/ eAdjust = CHADJUST_CENTER_RIGHT; -/*N*/ aChartRect.Right() -= aRect.GetWidth() + nXOfs; -/*N*/ break; -/*N*/ -/*N*/ case CHLEGEND_BOTTOM: -/*?*/ aLegendPosition.X() = rWholeRect.Left() + rWholeRect.GetWidth() / 2; -/*?*/ aLegendPosition.Y() = rWholeRect.Bottom(); -/*?*/ eAdjust = CHADJUST_BOTTOM_CENTER; -/*?*/ aChartRect.Bottom() -= aRect.GetHeight() + nYOfs; -/*?*/ break; -/*N*/ default: -/*?*/ break; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ // For 3D pie charts that whose position and size have not been altered -/*N*/ // manually, the calculated size in aChartRect is -/*N*/ // set to aDiagramRectangle after a possible adaption to half -/*N*/ // it's height. This adaption mimics the behaviour from BuildChart -/*N*/ // and takes place only if the diagram is not more than twice as wide -/*N*/ // as it is high. -/*N*/ if (IsPieChart() && IsReal3D() && ! GetDiagramHasBeenMovedOrResized()) -/*N*/ { -/*N*/ long nWidth=aChartRect.GetWidth(); -/*N*/ long nHeight=aChartRect.GetHeight(); -/*N*/ if( ((double)nHeight/(double)nWidth) > 0.5 ) -/*N*/ { -/*N*/ aChartRect.Top()+=nHeight/4; -/*N*/ aChartRect.Bottom()-=nHeight/4; -/*N*/ } -/*N*/ SetDiagramRectangle (aChartRect); -/*N*/ } -/*N*/ -/*N*/ aRect.SetPos(aLegendPosition); -/*N*/ AdjustRect(aRect, eAdjust); -/*N*/ pObj->NbcSetLogicRect(aRect); -/*N*/ pObj->SetResizeProtect(TRUE); -/*N*/ if (pObj->ISA(SchObjGroup)) -/*N*/ { -/*N*/ ((SchObjGroup *)pObj)->SetGroupType(SchObjGroup::LEGEND); -/*N*/ ((SchObjGroup *)pObj)->SetModel(this); -/*N*/ } -/*N*/ pPage->InsertObject(pObj, rIndex); -/*N*/ } -/*N*/ } -/*N*/ } - -//Übertragung der Page-Objekt-Attribute in die Modeleigenen AttrSets -/*N*/ void ChartModel::Rescue3DObjAttr(SdrObjList* pList)//#52277# -/*N*/ { -/*N*/ CHART_TRACE( "ChartModel::Rescue3DObjAttr" ); -/*N*/ if(pList) -/*N*/ { -/*N*/ SdrObject* pObj; -/*N*/ long nRow, nCol; -/*N*/ SfxItemSet aSet( *pItemPool, SDRATTR_3D_FIRST, SDRATTR_3D_LAST); -/*N*/ aSet.ClearItem(); -/*N*/ -/*N*/ SdrObjListIter aIterator( *pList, IM_DEEPWITHGROUPS ); -/*N*/ -/*N*/ while( aIterator.IsMore() ) -/*N*/ { -/*N*/ pObj = aIterator.Next(); -/*N*/ SchDataRow* pDataRow = GetDataRow( *pObj ); -/*N*/ SchDataPoint* pDataPoint = GetDataPoint( *pObj ); -/*N*/ if( pDataRow ) -/*N*/ { -/*N*/ nRow = pDataRow->GetRow(); -/*N*/ aSet.Put(pObj->GetItemSet()); -/*N*/ -/*N*/ aSet.ClearInvalidItems(); -/*N*/ aDataRowAttrList[ nRow ]->Put( aSet ); -/*N*/ aSet.ClearItem(); -/*N*/ } -/*N*/ else if( pDataPoint ) -/*N*/ { -/*N*/ nCol = pDataPoint->GetCol(); -/*N*/ nRow = pDataPoint->GetRow(); -/*N*/ aSet.Put(pObj->GetItemSet()); -/*N*/ -/*N*/ aSet.ClearInvalidItems(); -/*N*/ PutDataPointAttr( nCol, nRow, aSet ); -/*N*/ aSet.ClearItem(); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ SchObjectId *pId = GetObjectId( *pObj ); -/*N*/ if( pId ) -/*N*/ { -/*N*/ long nId = pId->GetObjId(); -/*N*/ aSet.Put(pObj->GetItemSet()); -/*N*/ if( aSet.Count() ) -/*N*/ { -/*N*/ aSet.ClearInvalidItems(); -/*N*/ GetAttr( nId ).Put( aSet, TRUE ); -/*N*/ aSet.ClearItem(); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Sub-Methode von BuildChart(), Loeschen aller Chartobjecte -|* -\************************************************************************/ -/*N*/ void ChartModel::DeleteChartObjects() -/*N*/ { -/*N*/ SdrPage* pPage=GetPage(0); -/*N*/ /*BOOL bResize = (aInitialSize != */pPage->GetSize()/*)*/; -/*N*/ -/*N*/ // FG: Bevor die Objekte geloescht und neu aufgebaut werden, merkt man sich deren -/*N*/ // Position. Da in InitalSize die urspruengliche Seitengroesse steht, kann -/*N*/ // man nun die relative Position auf der Seite bestimmen. -/*N*/ // Diese relative Position bleibt bei einem Resize erhalten, -/*N*/ // falls der Schalter "bUseRelativePositionsForChartGroups" auf TRUE steht. -/*N*/ -/*N*/ SdrObject* pGroupObject = GetObjWithId( CHOBJID_DIAGRAM_AREA, *pPage ); -/*N*/ if( pGroupObject != NULL ) -/*N*/ DeleteObject( pGroupObject ); -/*N*/ -/*N*/ pGroupObject = GetObjWithId( CHOBJID_TITLE_MAIN, *pPage ); -/*N*/ if (pGroupObject != NULL) -/*N*/ { -/*N*/ aTitleTopCenter = pGroupObject->GetBoundRect().TopCenter(); -/*N*/ DeleteObject(pGroupObject); -/*N*/ } -/*N*/ -/*N*/ pGroupObject = GetObjWithId(CHOBJID_TITLE_SUB, *pPage); -/*N*/ if (pGroupObject != NULL) -/*N*/ { -/*N*/ aSubTitleTopCenter = pGroupObject->GetBoundRect().TopCenter(); -/*N*/ DeleteObject(pGroupObject); -/*N*/ } -/*N*/ -/*N*/ pGroupObject = GetObjWithId(CHOBJID_DIAGRAM, *pPage); -/*N*/ if (pGroupObject != NULL) -/*N*/ { -/*N*/ // FG: 11.3.97 Wenn die Grenzen des Objekts woanders gesetzt worden sind, duerfen sie hier -/*N*/ // nicht mehr gesetzt werden. -/*N*/ if (pGroupObject->ISA(SchObjGroup)) -/*N*/ { -/*N*/ if (GetDiagramHasBeenMovedOrResized() && -/*N*/ ((SchObjGroup *) pGroupObject)->GetAskForLogicRect()) -/*N*/ { -/*N*/ // FG: So leider nicht das Chart-Rect ist fehlerhafterweise nicht das Bounding-Rectangle -/*N*/ // aDiagramRectangle = pGroupObject->GetLogicRect(); -/*N*/ SetDiagramRectangle( GetChartRect() ); -/*N*/ } -/*N*/ } -/*N*/ else if (pGroupObject->ISA(ChartScene)) -/*N*/ { -/*N*/ if (GetDiagramHasBeenMovedOrResized() && -/*N*/ ((ChartScene *) pGroupObject)->GetAskForLogicRect()) -/*N*/ { -/*N*/ // FG: So leider nicht das Chart-Rect ist fehlerhafterweise nicht das Bounding-Rectangle -/*N*/ // aDiagramRectangle = pGroupObject->GetLogicRect(); -/*N*/ SetDiagramRectangle( GetChartRect() ); -/*N*/ } -/*N*/ -/*N*/ -/*N*/ if( pGroupObject == pScene ) -/*N*/ pScene = NULL; -/*N*/ } -/*N*/ DeleteObject(pGroupObject); -/*N*/ } -/*N*/ -/*N*/ pGroupObject = GetObjWithId(CHOBJID_LEGEND, *pPage); -/*N*/ if (pGroupObject != NULL) -/*N*/ { -/*N*/ // FG: 11.3.97 Wenn die Grenzen des Objekts woanders gesetzt worden sind, duerfen sie hier -/*N*/ // nicht mehr gesetzt werden. -/*N*/ if (GetLegendHasBeenMoved()&& -/*N*/ ((SchObjGroup *) pGroupObject)->GetAskForLogicRect() ) -/*N*/ // #107305# I don't see where aLegendTopLeft should have changed at -/*N*/ // another place, if not via resizing. Besides, why should it for -/*N*/ // the legend and not the titles? -/*N*/ // && ! bResize ) -/*N*/ { -/*N*/ aLegendTopLeft = pGroupObject->GetLogicRect().TopLeft(); -/*N*/ } -/*N*/ DeleteObject(pGroupObject); -/*N*/ } -/*N*/ -/*N*/ -/*N*/ -/*N*/ pGroupObject = GetObjWithId(CHOBJID_DIAGRAM_TITLE_X_AXIS, *pPage); -/*N*/ if (pGroupObject != NULL) -/*N*/ { -/*N*/ aTitleXAxisPosition = SetPointOfRectangle(pGroupObject->GetBoundRect(), eAdjustXAxesTitle); -/*N*/ DeleteObject(pGroupObject); -/*N*/ } -/*N*/ -/*N*/ pGroupObject = GetObjWithId(CHOBJID_DIAGRAM_TITLE_Y_AXIS, *pPage); -/*N*/ if (pGroupObject != NULL) -/*N*/ { -/*N*/ pGroupObject->GetBoundRect(); -/*N*/ pGroupObject->GetSnapRect(); -/*N*/ aTitleYAxisPosition = SetPointOfRectangle(pGroupObject->GetBoundRect(), eAdjustYAxesTitle); -/*N*/ DeleteObject(pGroupObject); -/*N*/ } -/*N*/ -/*N*/ pGroupObject = GetObjWithId(CHOBJID_DIAGRAM_TITLE_Z_AXIS, *pPage); -/*N*/ if (pGroupObject != NULL) -/*N*/ { -/*N*/ aTitleZAxisPosition = SetPointOfRectangle(pGroupObject->GetBoundRect(), eAdjustXAxesTitle); -/*N*/ DeleteObject(pGroupObject); -/*N*/ } -/*N*/ } -/************************************************************************* -|* -|* Sub-Methode von BuildChart(), Wertebereichueberpruefung mit MsgBox -|* -\************************************************************************/ -/*N*/ BOOL ChartModel::CheckRanges(BOOL bCheckAlways) -/*N*/ { -/*N*/ //ToDo:CHOBJID_DIAGRAM_B_AXIS -/*N*/ BOOL bOK=TRUE; -/*N*/ if ((eChartStyle != eOldChartStyle) || (bCheckAlways)) -/*N*/ { -/*N*/ if ((pChartYAxis->GetMin() < 0.0) && (pChartYAxis->GetMax() > 0.0) && (!IsSignedChart())) -/*N*/ { -/*?*/ // FG: Falls ein Pointer auf ein Fenster uebergeben wird ist die Dialogbox nicht-modal -/*?*/ // Nutzt man dies fuer Veraenderungen am Chart aus, stuertzt das Programm ab. -/*?*/ // InfoBox aInfoBox(SFX_APP()->GetAppWindow(), String(SchResId(STR_ONLY_ABS_VALUES))); -/*?*/ InfoBox aInfoBox(NULL, String(SchResId(STR_ONLY_ABS_VALUES))); -/*?*/ aInfoBox.Execute(); -/*?*/ eOldChartStyle = eChartStyle; -/*?*/ bOK=FALSE; -/*N*/ } -/*N*/ else if ((pChartYAxis->GetMin() < 0.0) && (!IsNegativeChart ())) -/*N*/ { -/*N*/ // FG: Falls ein Pointer auf ein Fenster uebergeben wird ist die Dialogbox nicht-modal -/*N*/ // Nutzt man dies fuer Veraenderungen am Chart aus, stuertzt das Programm ab. -/*N*/ // InfoBox aInfoBox(SFX_APP()->GetAppWindow(), String(SchResId(STR_NO_MIN_VALUES))); -/*?*/ InfoBox aInfoBox(NULL, String(SchResId(STR_NO_MIN_VALUES))); -/*?*/ aInfoBox.Execute(); -/*?*/ eOldChartStyle = eChartStyle; -/*?*/ bOK=FALSE; -/*N*/ } -/*N*/ } -/*N*/ return bOK; -/*N*/ } -/************************************************************************* -|* -|* Sub-Methode von BuildChart(), Chart-ReSizing -|* -\************************************************************************/ -/*N*/ void ChartModel::ResizeChart(const Size& rPageSize) -/*N*/ { -/*N*/ if (GetUseRelativePositions() && GetDiagramHasBeenMovedOrResized()) -/*N*/ { -/*N*/ if ((rPageSize.Width() == aInitialSize.Width()) && (rPageSize.Height() == aInitialSize.Height())) -/*N*/ { // Es war also ein Resize nur des Diagramms (also nur der Grafik und nicht der Seite) -/*N*/ aChartRect= aDiagramRectangle; -/*N*/ } -/*N*/ else // Dann war es ein Resize des gesamten Charts -/*N*/ { - // The whole chart has been resized. - // The old size aDiagramRectangle of the diagram has to fullfill the constraint - // the it has to have a positive extent both in the horizontal and the vertical - // direction. - // - // Previously the constraints to fullfill have been tighter: - // All four border lines had to lie inside the chart rectangle. -/*N*/ if ( (aDiagramRectangle.nLeft < aDiagramRectangle.nRight) -/*N*/ && (aDiagramRectangle.nTop < aDiagramRectangle.nBottom) ) -/*N*/ { -/*?*/ double fRelativeXPosition = ((double) aDiagramRectangle.Left()) / aInitialSize.Width(); -/*?*/ double fRelativeYPosition = ((double) aDiagramRectangle.Top()) / aInitialSize.Height(); -/*?*/ aChartRect.nLeft = (long)((double)rPageSize.Width() * fRelativeXPosition ); -/*?*/ aChartRect.nTop = (long)((double)rPageSize.Height() * fRelativeYPosition ); -/*?*/ fRelativeXPosition = ((double) aDiagramRectangle.Right()) / aInitialSize.Width(); -/*?*/ fRelativeYPosition = ((double) aDiagramRectangle.Bottom()) / aInitialSize.Height(); -/*?*/ aChartRect.nRight = (long)((double)rPageSize.Width() * fRelativeXPosition ); -/*?*/ aChartRect.nBottom = (long)((double)rPageSize.Height() * fRelativeYPosition ); -/*?*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ } -/************************************************************************* -|* -|* Sub-Methode von BuildChart(), -|* -|* FG: Hier wird der Platz berechnet, den man als oberen Rand freilassen -|* soll,falls keine Titel dargestellt werden. -|* -\************************************************************************/ -/*N*/ void ChartModel::CalculateUpperBorder() -/*N*/ { -/*N*/ if ((!bShowMainTitle && !bShowSubTitle)) -/*N*/ { -/*N*/ BOOL bSwitchColRow = eChartStyle == CHSTYLE_2D_BAR || -/*N*/ eChartStyle == CHSTYLE_2D_STACKEDBAR || -/*N*/ eChartStyle == CHSTYLE_2D_PERCENTBAR || -/*N*/ eChartStyle == CHSTYLE_3D_BAR || -/*N*/ eChartStyle == CHSTYLE_3D_FLATBAR || -/*N*/ eChartStyle == CHSTYLE_3D_STACKEDFLATBAR || -/*N*/ eChartStyle == CHSTYLE_3D_PERCENTFLATBAR; -/*N*/ -/*N*/ SfxItemSet aTextAttr((const SfxItemSet &)GetAttr( -/*N*/ bSwitchColRow ? -/*N*/ CHOBJID_DIAGRAM_X_AXIS -/*N*/ : CHOBJID_DIAGRAM_Y_AXIS)); -/*N*/ -/*N*/ Size aTextSize (((SvxFontWidthItem &) aTextAttr.Get (EE_CHAR_FONTWIDTH)).GetWidth (), -/*N*/ ((SvxFontHeightItem &) aTextAttr.Get (EE_CHAR_FONTHEIGHT)).GetHeight ()); -/*N*/ -/*N*/ aChartRect.Top () += aTextSize.Height () / 2; -/*N*/ } -/*N*/ } -/************************************************************************* -|* -|* Sub-Methode von BuildChart(), Chart-ReSizing -|* -\************************************************************************/ -/*N*/ void ChartModel::CreateRectsAndTitles(long whatTitle) -/*N*/ { -/*N*/ // FG: Abhaengig von der Groesse der Page, also der Ausgabe -/*N*/ // werden die Raender erst mal auf 2% der jeweiligen Richtungsausdehnung gesetzt -/*N*/ // abgespeichert wird das im ChartModel. Sollte ein Text uber den den linken -/*N*/ // Rand zu weit hinausragen, also linker Rand OuterRect(SdrTextObj) < 0, -/*N*/ // So wird entweder der Offset neu berechnet oder der Text veraendert. -/*N*/ // Im Moment ist es nur moeglich den linken Rand nachzuregeln. -/*N*/ SdrPage* pPage=GetPage(0); -/*N*/ const Size& rPageSize=pPage->GetSize(); -/*N*/ -/*N*/ long nYOfs = (rPageSize.Height() / 100) * 2; -/*N*/ long nXOfs = (rPageSize.Width() /100) * 2; -/*N*/ USHORT nIndex = 0; -/*N*/ -/*N*/ // #97159# the chart rect was set one unit too large in either direction -/*N*/ aChartRect.SetPos( Point( 0, 0 ) ); -/*N*/ aChartRect.SetSize( rPageSize ); -/*N*/ -/*N*/ SchRectObj* pRect = new SchRectObj(aChartRect); -/*N*/ pRect->SetModel( this ); -/*N*/ pPage->InsertObject(SetObjectAttr( pRect, CHOBJID_DIAGRAM_AREA, -/*N*/ FALSE, TRUE, pDiagramAreaAttr), nIndex++); -/*N*/ -/*N*/ aChartRect.Left() += nXOfs; // FG: Dies ist das Rechteck in das das Chart (also die Balken ...) -/*N*/ aChartRect.Top() += nYOfs; // rein muss. Erst ist es maximal gross und dann wird immer -/*N*/ aChartRect.Right() -= nXOfs; // mehr abgezwackt. -/*N*/ aChartRect.Bottom() -= nYOfs; -/*N*/ -/*N*/ Rectangle aWholeRect (aChartRect); -/*N*/ -/*N*/ // Falls aInitialSize Null ist dann wird es auf die Seitengroesse gesetzt -/*N*/ if( !aInitialSize.Width ()) aInitialSize.Width () = rPageSize.Width (); -/*N*/ if( !aInitialSize.Height ()) aInitialSize.Height () = rPageSize.Height (); -/*N*/ -/*N*/ // FG: Dieser Offset wird bei der Legende und den Diagrammtiteln gebraucht. -/*N*/ // Er wird aus aesthetischen Gruenden verdoppelt. -/*N*/ // Also ab jetzt oberer Rand nYOfs + Titel + 2*nYOfs + Unteritel + 2*nYOfs + Diagramm -/*N*/ // Fuer die Legende gilt das fuer den X-Abstand. -/*N*/ nXOfs *= 2; nYOfs *=2; -/*N*/ -/*N*/ if (bTextScalable) -/*N*/ ScaleText(whatTitle,rPageSize); -/*N*/ -/*N*/ if (bShowMainTitle) -/*N*/ DoShowMainTitle(nIndex,nYOfs); -/*N*/ -/*N*/ if (bShowSubTitle) -/*N*/ DoShowSubTitle(nIndex,nYOfs); -/*N*/ -/*N*/ CalculateUpperBorder(); -/*N*/ DoShowLegend(aWholeRect,nXOfs,nYOfs,nIndex); -/*N*/ ResizeChart(rPageSize); -/*N*/ } -/************************************************************************* -|* -|* gesamte Grafik erzeugen -|* -\************************************************************************/ - -namespace -{ -class lcl_MapModeResetGuard -{ -public: - lcl_MapModeResetGuard( OutputDevice * pOutDev ) : - m_pOutDev( pOutDev ), - m_aMapMode( pOutDev ? pOutDev->GetMapMode() : MapMode() ) - {} - - ~lcl_MapModeResetGuard() - { - if( m_pOutDev ) - m_pOutDev->SetMapMode( m_aMapMode ); - } - -private: - OutputDevice * m_pOutDev; - MapMode m_aMapMode; -}; - -} - -/*N*/ void ChartModel::BuildChart(BOOL bCheckRanges,long whatTitle) -/*N*/ { -/*N*/ RTL_LOGFILE_CONTEXT_AUTHOR (context, "sch", "af119097", "::ChartModel::BuildChart"); -/*N*/ -/*N*/ #ifdef DBG_UTIL -/*N*/ ByteString aBStr( aMainTitle, RTL_TEXTENCODING_ASCII_US ); -/*N*/ CHART_TRACE1( "ChartModel::BuildChart (%s)", aBStr.GetBuffer()); -/*N*/ #endif -/*N*/ -/*N*/ //kein setzen der p*Attr durch die Objekte -/*N*/ SetAttrAutoStorage(FALSE); -/*N*/ -/*N*/ if (bNoBuildChart) -/*N*/ { -/*N*/ bShouldBuildChart = TRUE; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ RTL_LOGFILE_CONTEXT_AUTHOR (context2, -/*N*/ "sch", "af119097", "::ChartModel::BuildChart not locked"); -/*N*/ //nicht ganz so schön, aber vorteilhaft. Hiermit wird ein Itemset mit -/*N*/ //Attributen gefüllt, die beim Einfügen etc. als default benutzt werden -/*N*/ //(SetDefAttrRow). Da an dieser Stelle ein Defaultset erstellt wird, sind -/*N*/ //auch Chart-globale Items gleich gesetzt (Shape3D, Fehlerbalken,Datenbeschriftung) -/*N*/ //lediglich die Linien oder Flächenfarbe muss generiert werden! -/*N*/ //Alternative: nur in ChangeChart defaults erstellen -/*N*/ if( pChartData ) -/*N*/ { -/*N*/ // in scatter charts the first series is for x values -/*N*/ // so use first 'y-series' to copy attributes to new series -/*N*/ if( IsXYChart()) -/*N*/ { -/*N*/ if( GetRowCount() > 1 ) -/*N*/ pDummyAttr->Put( GetDataRowAttr( 1 )); -/*N*/ } -/*N*/ else -/*N*/ if( GetRowCount() > 0 ) -/*N*/ pDummyAttr->Put( GetDataRowAttr( 0 )); -/*N*/ } -/*N*/ -/*N*/ //Hotfix für OLE-Charts #54884# Die Wurzel des Übels liegt möglicherweise irgendwo anders! -/*N*/ if(!pRefOutDev) -/*N*/ { -/*?*/ if(pChartRefOutDev) -/*?*/ { -/*?*/ OSL_FAIL("ChartModel::BuildChart: restoring lost pRefOutDev... something strange happend!"); -/*?*/ SetRefDevice(pChartRefOutDev); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ CHART_TRACE( "ChartModel::BuildChart no pRefOutDev!" ); -/*?*/ if( pDocShell ) -/*?*/ { -/*?*/ // this is a valid upcast, because we 'know' that the -/*?*/ // pDocShell member is always a SchChartDocShell -/*?*/ OutputDevice * pOutDev = static_cast< SchChartDocShell * >( pDocShell )->GetRefDevice(); -/*?*/ SetRefDevice( pOutDev ); -/*?*/ GetOutliner()->SetRefDevice( pOutDev ); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ OutputDevice* pOut = Application::GetDefaultDevice(); -/*?*/ // this is no error: if a ChartModel is copied via clipboard there is no docshell -/*?*/ // OSL_FAIL("ChartModel::BuildChart : no Docshell! (OutputDevice)"); -/*?*/ pChartRefOutDev = new VirtualDevice( *pOut ); -/*?*/ MapMode aMapMode = pChartRefOutDev->GetMapMode(); -/*?*/ aMapMode.SetMapUnit(MAP_100TH_MM); -/*?*/ pChartRefOutDev->SetMapMode(aMapMode); -/*?*/ SetRefDevice(pChartRefOutDev); -/*?*/ GetOutliner()->SetRefDevice(pChartRefOutDev); -/*?*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ CheckRanges(bCheckRanges); -/*N*/ -/*N*/ if( !pChartData ) // create default chart if no chart exists so far -/*N*/ InitChartData(); -/*N*/ -/*N*/ if (GetColCount() && GetRowCount()) -/*N*/ { -/*N*/ SdrPage* pPage = GetPage(0); -/*N*/ if (pPage) -/*N*/ { -/*N*/ //#61431# MapMode speichern, am Ende BuildCharts restaurieren -/*N*/ -/*N*/ // remember the MapMode of the Printer and restore it at the end -/*N*/ // of the current block, because it may be changed later in this -/*N*/ // method (AdjustPrinter) -/*N*/ lcl_MapModeResetGuard aPrinterMapModeGuard( -/*N*/ static_cast< SchChartDocShell * >( GetObjectShell() )->GetPrinter() ); -/*N*/ -/*N*/ AdjustPrinter(); -/*N*/ -/*N*/ // FG : DAs hier braucht es weil bei 3D-Charts der Bildchsimraufbau von der ChartScene -/*N*/ // erst beim ersten Paint initiiert wird. Erst dann werden die Achsentitel ausgegeben -/*N*/ // da ist aber BuildChart, aInitialSize=aPageSize setzt schon gelaufen. Deshalb diese -/*N*/ // "Chart-Globale" Variable; -/*N*/ aInitialSizefor3d = aInitialSize; -/*N*/ -/*N*/ // ItemSet mit entspr. Bereich anlegen -/*N*/ SfxItemSet aSet( GetItemPool(), -/*N*/ SDRATTR_3DSCENE_FIRST, SDRATTR_3DSCENE_LAST); -/*N*/ BOOL bItemSetUsed = FALSE; -/*N*/ -/*N*/ if( pScene ) -/*N*/ { -/*N*/ aSet.Put(pScene->GetItemSet()); -/*N*/ bItemSetUsed = TRUE; -/*N*/ aSceneMatrix = pScene->GetTransform(); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ SdrObject* pLoadedScene = GetObjWithId(CHOBJID_DIAGRAM, *pPage); -/*N*/ if (pLoadedScene && pLoadedScene->ISA(E3dPolyScene)) -/*N*/ { -/*N*/ aSet.Put(pLoadedScene->GetItemSet()); -/*N*/ bItemSetUsed = TRUE; -/*N*/ aSceneMatrix = ((E3dPolyScene*) pLoadedScene)->GetTransform(); -/*N*/ Rescue3DObjAttr(pLoadedScene->GetSubList()); //#52277# -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ DeleteChartObjects(); -/*N*/ Size aPageSize = pPage->GetSize(); -/*N*/ -/*N*/ SdrObjGroup *pObj = NULL; -/*N*/ BOOL bNeedSetDiagram=FALSE; -/*N*/ -/*N*/ // if type addin is set the core CreateChart shoudln't be called -/*N*/ // if an addin is used together with a base diagram type the base -/*N*/ // type should be set as chart type here (!= CHSTYLE_ADDIN) -/*N*/ if( eChartStyle != CHSTYLE_ADDIN ) -/*N*/ { -/*N*/ // core CreateChart -/*N*/ CreateRectsAndTitles(whatTitle); -/*N*/ -/*N*/ if(bResizePie && IsPieChart() && IsReal3D()) -/*N*/ { -/*N*/ long nWidth=aChartRect.GetWidth(); -/*N*/ long nHeight=aChartRect.GetHeight(); -/*N*/ if( ((double)nHeight/(double)nWidth) > 0.5 ) -/*N*/ { -/*?*/ bNeedSetDiagram=TRUE; -/*?*/ aChartRect.Top()+=nHeight/4; -/*?*/ aChartRect.Bottom()-=nHeight/4; -/*?*/ SetDiagramHasBeenMovedOrResized(TRUE); -/*?*/ SetUseRelativePositions(TRUE); -/*?*/ bResizePie=FALSE; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ pObj = CreateChart(aChartRect); -/*N*/ -/*N*/ if (pObj->ISA(SchObjGroup)) -/*N*/ { -/*N*/ ((SchObjGroup *)pObj)->SetModel(this); -/*N*/ ((SchObjGroup *)pObj)->SetGroupIsChart(); -/*N*/ } -/*N*/ -/*N*/ pPage->NbcInsertObject(pObj, 1); -/*N*/ -/*N*/ } -/*N*/ -/*N*/ // ==================== -/*N*/ // call AddIn if required -/*N*/ // ==================== -/*N*/ if( mbIsInitialized && -/*N*/ mxChartAddIn.is()) -/*N*/ { -/*?*/ // avoid recursion -/*?*/ if( ! GetChartStatusFlag( CHS_NO_ADDIN_REFRESH )) -/*?*/ { -/*?*/ SetChartStatusFlag( CHS_NO_ADDIN_REFRESH ); -/*?*/ try -/*?*/ { -/*?*/ mxChartAddIn->refresh(); -/*?*/ } -/*?*/ catch( ::com::sun::star::uno::Exception aEx ) -/*?*/ { -/*?*/ #ifdef DBG_UTIL -/*?*/ // convert ::rtl::OUString => tools String => ByteString -/*?*/ String aStr( aEx.Message ); -/*?*/ ByteString aTmpBStr( aStr, RTL_TEXTENCODING_ASCII_US ); -/*?*/ OSL_TRACE( "AddIn threw exception during refresh(): %s", aTmpBStr.GetBuffer()); -/*?*/ #endif -/*?*/ } -/*?*/ ResetChartStatusFlag( CHS_NO_ADDIN_REFRESH ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ aInitialSize = aPageSize; -/*N*/ -/*N*/ if(pScene && IsReal3D() ) -/*N*/ { -/*N*/ -/*N*/ #ifndef NO_56798_FIX //#56798# QuickFix 5.0-Final -/*N*/ -/*N*/ if(bClearDepth) -/*N*/ { -/*N*/ aSet.ClearItem(SDRATTR_3DOBJ_DEPTH); -/*N*/ bClearDepth=FALSE; -/*N*/ } -/*N*/ #endif -/*N*/ -/*?*/ aSet.ClearItem(SDRATTR_3DOBJ_DOUBLE_SIDED); //#56941# -/*?*/ aSet.ClearItem(SDRATTR_3DOBJ_HORZ_SEGS); -/*N*/ -/*N*/ if(bItemSetUsed) -/*N*/ { -/*N*/ //funktioniert nur, wenn nicht durch vorherigen Aufruf (CheckRanges) eine MsgBox entstand -/*N*/ if(eChartStyle != eOldChartStyle) -/*N*/ { -/*N*/ // Falls sich der ChartStyle aendert, die Extrude-Tiefe -/*N*/ // auf unfueltig setzen -/*N*/ const SfxPoolItem* pPoolItem = NULL; -/*N*/ SfxItemState eState = aSet.GetItemState(SDRATTR_3DOBJ_DEPTH, FALSE, &pPoolItem); -/*N*/ if(eState == SFX_ITEM_SET) -/*N*/ { -/*N*/ // Ist gesetzt, invalidiere -/*N*/ aSet.InvalidateItem(SDRATTR_3DOBJ_DEPTH); -/*N*/ CHART_TRACE( "Chart: Invalidating saveable item ..." ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ // Attribute an neuer Szene setzen -/*N*/ pScene->SetItemSet(aSet); -/*N*/ -/*N*/ } -/*N*/ -/*N*/ pScene->NbcSetTransform(aSceneMatrix); -/*N*/ -/*N*/ const SfxPoolItem *pPoolItem = NULL; -/*N*/ if(!IsPieChart()) -/*N*/ { -/*N*/ if(pChartXAxis->HasDescription()) -/*N*/ { -/*N*/ if(GetAttr(CHOBJID_DIAGRAM_X_AXIS).GetItemState( SCHATTR_TEXT_OVERLAP, FALSE, &pPoolItem ) >= SFX_ITEM_AVAILABLE ) -/*N*/ { -/*N*/ if(!( (const SfxBoolItem*) pPoolItem)->GetValue()) -/*N*/ pScene->ReduceDescrList(aXDescrList); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if(pChartYAxis->HasDescription()) -/*N*/ { -/*N*/ if(GetAttr(CHOBJID_DIAGRAM_Y_AXIS).GetItemState( SCHATTR_TEXT_OVERLAP, FALSE, &pPoolItem ) >= SFX_ITEM_AVAILABLE ) -/*N*/ { -/*N*/ if(!( (const SfxBoolItem*) pPoolItem)->GetValue()) -/*N*/ pScene->ReduceDescrList(aYDescrList); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if(pChartZAxis->HasDescription()) -/*N*/ { -/*N*/ if(GetAttr(CHOBJID_DIAGRAM_Z_AXIS).GetItemState( SCHATTR_TEXT_OVERLAP, FALSE, &pPoolItem ) >= SFX_ITEM_AVAILABLE ) -/*N*/ { -/*N*/ if(!( (const SfxBoolItem*) pPoolItem)->GetValue()) -/*N*/ pScene->ReduceDescrList(aZDescrList); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ -/*N*/ if(bNeedSetDiagram && pScene) -/*N*/ { -/*?*/ Rectangle aRectangle; -/*?*/ aRectangle = pScene->GetSnapRect(); -/*?*/ ((ChartScene *)pObj)->SetAskForLogicRect(FALSE); -/*?*/ SetDiagramRectangle(aRectangle); -/*?*/ SetDiagramHasBeenMovedOrResized(TRUE); -/*N*/ } -/*N*/ -/*N*/ //#61431# MapMode speichern, am Ende BuildCharts restaurieren -/*N*/ -/*N*/ // the MapMode of the RefDevice is restored by the -/*N*/ // lcl_MapModeResetGuard -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ //Jetzt sollen sich die Objekte wieder drum kümmern, da?das Model die Attribute erhält -/*N*/ SetAttrAutoStorage(TRUE); -/*N*/ SetDiagramRectangle( aChartRect ); -/*N*/ eOldChartStyle = eChartStyle; -/*N*/ -/*N*/ // notify build to listeners -/*N*/ Broadcast( SchReBuildHint()); -/*N*/ } - - - -/*N*/ void ChartModel::SetUseRelativePositions (BOOL value) -/*N*/ { -/*N*/ if (value == FALSE) -/*N*/ { -/*N*/ SetDiagramHasBeenMovedOrResized(FALSE); -/*N*/ SetMainTitleHasBeenMoved(FALSE); -/*N*/ SetSubTitleHasBeenMoved(FALSE); -/*N*/ SetLegendHasBeenMoved(FALSE); -/*N*/ SetXAxisTitleHasBeenMoved(FALSE); -/*N*/ SetYAxisTitleHasBeenMoved(FALSE); -/*N*/ SetZAxisTitleHasBeenMoved(FALSE); -/*N*/ if((IsReal3D() && IsPieChart())) -/*N*/ { -/*?*/ Matrix4D aMatrix; //Reset der Matrix.... könnte man auch grundsätzlich machen? -/*?*/ aMatrix.RotateX(-F_PI/3); -/*?*/ aSceneMatrix=aMatrix; -/*?*/ if(pScene) -/*?*/ pScene->NbcSetTransform(aSceneMatrix); -/*?*/ bResizePie=TRUE; -/*N*/ } -/*N*/ } -/*N*/ bUseRelativePositionsForChartGroups = value; -/*N*/ } - -/************************************************************************* -|* -|* bestimme Varianz -|* -\************************************************************************/ - - -/*N*/ double ChartModel::GetVariantY (long nRow) -/*N*/ { -/*N*/ long nColCnt = GetColCount(); -/*N*/ -/*N*/ if (nColCnt) -/*N*/ { -/*N*/ double fSum = 0.0; -/*N*/ double fQuadSum = 0.0; -/*N*/ long nValidCols = nColCnt; -/*N*/ -/*N*/ for (long nCol = 0; -/*N*/ nCol < nColCnt; -/*N*/ nCol ++) -/*N*/ { -/*N*/ double fData = GetData ((short) nCol, (short) nRow, FALSE); -/*N*/ -/*N*/ if( fData == DBL_MIN ) -/*N*/ { -/*N*/ nValidCols--; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ fSum += fData; -/*N*/ fQuadSum += fData * fData; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ return nValidCols? (fQuadSum - fSum*fSum / (double)nValidCols) / (double)nValidCols: DBL_MIN; -/*N*/ } -/*N*/ else return 0; -/*N*/ } - -/************************************************************************* -|* -|* bestimme Varianz -|* -\************************************************************************/ - - -/*N*/ double ChartModel::GetSigmaY (long nRow) -/*N*/ { -/*N*/ return sqrt (GetVariantY (nRow)); -/*N*/ } - -/************************************************************************* -|* -|* bestimme Fehler des groessten Wertes -|* -\************************************************************************/ - - -/*N*/ double ChartModel::GetBigErrorY (long nRow, -/*N*/ double fError) -/*N*/ { -/*N*/ double fMax = 0.0; -/*N*/ long nColCnt = GetColCount(); -/*N*/ -/*N*/ for (long nCol = 0; -/*N*/ nCol < nColCnt; -/*N*/ nCol ++) -/*N*/ { -/*N*/ double fData = GetData ((short) nCol, (short) nRow, FALSE); -/*N*/ -/*N*/ if (fData != DBL_MIN) -/*N*/ if (fData > fMax) fMax = fData; -/*N*/ } -/*N*/ -/*N*/ return fMax * fError / 100.0; -/*N*/ } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chtmode5.cxx b/binfilter/bf_sch/source/core/sch_chtmode5.cxx deleted file mode 100644 index 022360fc8..000000000 --- a/binfilter/bf_sch/source/core/sch_chtmode5.cxx +++ /dev/null @@ -1,383 +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. - * - ************************************************************************/ - - -#ifdef _MSC_VER -#pragma hdrstop -#endif - - -#include <bf_svx/svdorect.hxx> - -#include "schattr.hxx" -#include "memchrt.hxx" - -#ifndef _SVX_CHRTITEM_HXX //autogen -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTTEXTORDER SCHATTR_TEXT_ORDER -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT - - -#endif - -#ifndef _CHTMODEL_HXX -#endif -#include <bf_svx/svxids.hrc> -#include <math.h> -#include <float.h> -#include "glob.hrc" - -#include "globfunc.hxx" -#include "pairs.hxx" - -#ifndef _ZFORLIST_HXX -#ifndef _ZFORLIST_DECLARE_TABLE -#define _ZFORLIST_DECLARE_TABLE -#endif -#include <bf_svtools/zforlist.hxx> -#endif -namespace binfilter { - - -/************************************************************************* -|* -|* Chart-Objekt ermitteln; -|* Es koennen nur Objekte ermittelt werden, von denen es jeweils -|* EIN Exemplar gibt. -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Chartdaten auslesen //Angepasst an Umsortierunng -|* -\************************************************************************/ - -/*N*/ double ChartModel::GetData(long nCol,long nRow,BOOL bPercent,BOOL bRowData) const -/*N*/ { -/*N*/ double fData = IsDataSwitched() //abhaengig vom Charttyp - statt bSwitchData -/*N*/ ? pChartData->GetTransData(nRow, nCol) -/*N*/ : pChartData->GetTransData(nCol, nRow); -/*N*/ -/*N*/ if ((fData == DBL_MIN) || !bPercent) return fData; -/*N*/ else -/*N*/ { -/*N*/ return IsDataSwitched() //abhaengig vom Charttyp - statt bSwitchData -/*N*/ ? pChartData->GetTransDataInPercent(nRow,nCol,!bRowData) -/*N*/ : pChartData->GetTransDataInPercent(nCol,nRow,bRowData); -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Datenpunkt-Objekt ermitteln -|* -\************************************************************************/ - -/*N*/ SdrObject* ChartModel::GetDataPointObj(long nCol, long nRow) -/*N*/ { -/*?*/ SdrPage* pPage = GetPage(0); -/*?*/ DBG_ASSERT(pPage, "ChartModel::GetDataPointObj:Keine Seite vorhanden!"); -/*?*/ -/*?*/ SdrObjGroup* pDiagram = -/*?*/ (SdrObjGroup*)GetObjWithId(CHOBJID_DIAGRAM, *pPage); -/*?*/ DBG_ASSERT(pDiagram, "ChartModel::GetDataPointObj:Kein Diagramm-Objekt vorhanden!"); -/*?*/ -/*?*/ SdrObject* pObj = -/*?*/ GetObjWithColRow(nCol, nRow, *pDiagram->GetSubList()); -/*?*/ -/*?*/ if (!pObj) -/*?*/ { -/*?*/ SdrObjGroup* pDataRow = -/*?*/ (SdrObjGroup*)GetObjWithRow(nRow, *pDiagram->GetSubList()); -/*?*/ -/*?*/ if(pDataRow) -/*?*/ pObj = GetObjWithColRow(nCol, nRow, *pDataRow->GetSubList()); -/*?*/ else -/*?*/ OSL_TRACE("ChartModel::GetDataPointObj:Datenreihen-Objekt nicht gefunden!"); -/*?*/ } -/*?*/ -/*?*/ return pObj; -/*N*/ } -/************************************************************************* -|* -|* für SP2 #66110# bzw. #61907# -|* -\************************************************************************/ -/*N*/ void ChartModel::SetChartDataBuffered(SchMemChart& rData, BOOL bNewTitles) -/*N*/ { -/*N*/ if( pChartDataBuffered ) -/*N*/ delete pChartDataBuffered; -/*N*/ -/*N*/ pChartDataBuffered = NULL; -/*N*/ -/*N*/ SetChartData(*new SchMemChart(rData), bNewTitles); -/*N*/ BuildChart (TRUE); -/*N*/ } - - - -/************************************************************************* -|* -|* neue Chart-Datenstruktur setzen; bisherige wird ggf. geloescht -|* -\************************************************************************/ - -/*N*/ void ChartModel::SetChartData(SchMemChart& rData, BOOL bNewTitles) -/*N*/ { -/*N*/ if (pChartData != &rData) -/*N*/ { -/*N*/ BOOL bWasData; -/*N*/ long nOldRowCount = 0; -/*N*/ long nOldColumnCount = 0; -/*N*/ -/*N*/ if (pChartData) -/*N*/ { -/*N*/ nOldRowCount = pChartData->GetRowCount(); -/*N*/ nOldColumnCount = pChartData->GetColCount(); -/*N*/ if(pChartData->DecreaseRefCount()) -/*N*/ delete pChartData; -/*N*/ -/*N*/ bWasData = TRUE; -/*N*/ } -/*N*/ else -/*N*/ bWasData = FALSE; -/*N*/ -/*N*/ pChartData = &rData; -/*N*/ pChartData->IncreaseRefCount(); -/*N*/ long nColCnt = GetColCount(); -/*N*/ long nRowCnt = GetRowCount(); -/*N*/ -/*N*/ if (!bWasData || bNewTitles) -/*N*/ { -/*N*/ aMainTitle = pChartData->GetMainTitle(); -/*N*/ aSubTitle = pChartData->GetSubTitle(); -/*N*/ aXAxisTitle = pChartData->GetXAxisTitle(); -/*N*/ aYAxisTitle = pChartData->GetYAxisTitle(); -/*N*/ aZAxisTitle = pChartData->GetZAxisTitle(); -/*N*/ } -/*N*/ -/*N*/ InitDataAttrs(); -/*N*/ -/*N*/ if( rData.GetNumberFormatter() ) -/*N*/ { -/*N*/ SvNumberFormatter* pNewFormatter = rData.GetNumberFormatter(); -/*N*/ if( pNewFormatter != pNumFormatter ) -/*N*/ { -/*N*/ // merge numberformatters: -/*N*/ // merge old one to new one and set new one as member -/*N*/ if( pNewFormatter && pNumFormatter ) -/*N*/ { -/*N*/ SvNumberFormatterIndexTable* pTransTable = -/*N*/ pNewFormatter->MergeFormatter( *pNumFormatter ); -/*N*/ -/*N*/ SetNumberFormatter( pNewFormatter ); -/*N*/ -/*N*/ if( pTransTable && pTransTable->Count() ) -/*N*/ { -/*N*/ TranslateAllNumFormatIds( pTransTable ); -/*N*/ } -/*N*/ } -/*N*/ else if( pNewFormatter ) -/*N*/ { -/*?*/ SetNumberFormatter( pNewFormatter ); -/*N*/ } -/*N*/ } -/*N*/ CheckForNewAxisNumFormat(); -/*N*/ } -/*N*/ -/*N*/ if( (nOldRowCount != nRowCnt) || -/*N*/ (nOldColumnCount != nColCnt )) -/*N*/ { -/*N*/ DataRangeChanged( nOldRowCount, nOldColumnCount ); -/*N*/ } -/*N*/ } -/*N*/ } -/************************************************************************* -|* -|* Erstelle Diagrammtitel -|* -\************************************************************************/ - -/*N*/ SdrTextObj *ChartModel::CreateTitle (SfxItemSet *pInTitleAttr, -/*N*/ short nID, -/*N*/ BOOL bSwitchColRow, -/*N*/ const String &rText, -/*N*/ BOOL bVert, -/*N*/ ChartAdjust *pTextDirection) -/*N*/ { -/*N*/ DBG_ASSERT (pTextDirection, "ChartModel::CreateTitle:Titel-Erzeugung ohne Text-Ausrichtungsinformation"); -/*N*/ if (pTextDirection == NULL) return NULL; //FG: sonst Absturz -/*N*/ -/*N*/ SfxItemSet aTextAttr(*pItemPool, nTitleWhichPairs); -/*N*/ SvxChartTextOrient eOrient = ((const SvxChartTextOrientItem&)pInTitleAttr->Get(SCHATTR_TEXT_ORIENT)).GetValue(); -/*N*/ -/*N*/ if (bVert) -/*N*/ { -/*N*/ if (bSwitchColRow) -/*N*/ { -/*N*/ *pTextDirection = CHADJUST_BOTTOM_CENTER; -/*N*/ if (eOrient == CHTXTORIENT_AUTOMATIC) eOrient = CHTXTORIENT_STANDARD; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ *pTextDirection= CHADJUST_CENTER_LEFT; -/*N*/ if (eOrient == CHTXTORIENT_AUTOMATIC) eOrient = CHTXTORIENT_BOTTOMTOP; -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ *pTextDirection = bSwitchColRow ? CHADJUST_CENTER_LEFT : CHADJUST_BOTTOM_CENTER; -/*N*/ if (eOrient == CHTXTORIENT_AUTOMATIC) -/*N*/ { -/*N*/ eOrient = bSwitchColRow ? CHTXTORIENT_BOTTOMTOP : CHTXTORIENT_STANDARD; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ aTextAttr.Put(*pInTitleAttr); -/*N*/ aTextAttr.Put(SvxChartTextOrientItem(eOrient)); -/*N*/ -/*N*/ // Seit 4/1998 koennen Texte frei gedreht werden: SCHATTR_TEXT_DEGREES -/*N*/ // Hier wird ein Wert nachgetragen, falls CHTXTORIENT_AUTOMATIC -/*N*/ // im Attribut stehen sollte und noch kein Winkel gesetzt wurde -/*N*/ // ... bisher ohne auswirkung ...? ... evtl. an dieser Stelle unnoetig -/*N*/ GetTextRotation(aTextAttr,eOrient); -/*N*/ -/*N*/ return CreateTextObj (nID, Point(), rText, -/*N*/ aTextAttr, TRUE, *pTextDirection); -/*N*/ } -/************************************************************************* -|* -|* Extractor fuer SvStream zum Laden -|* -\************************************************************************/ - -/*N*/ BOOL ChartModel::ChangeStatistics (const SfxItemSet &rInAttrs) -/*N*/ { -/*N*/ long nRowCnt = IsPieChart() -/*N*/ ? GetColCount() -/*N*/ : GetRowCount(); -/*N*/ -/*N*/ for( long nRow = 0; -/*N*/ nRow < nRowCnt; -/*N*/ nRow++ ) -/*N*/ PutDataRowAttr( nRow, rInAttrs ); -/*N*/ -/*N*/ const SfxPoolItem *pPoolItem = NULL; -/*N*/ BOOL bLclChanged = FALSE; -/*N*/ -/*N*/ if (rInAttrs.GetItemState(SCHATTR_STAT_AVERAGE, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ { -/*N*/ bShowAverage = ((const SfxBoolItem*) pPoolItem)->GetValue(); -/*N*/ bLclChanged = TRUE; -/*N*/ } -/*N*/ -/*N*/ if (rInAttrs.GetItemState(SCHATTR_STAT_KIND_ERROR, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ { -/*N*/ eErrorKind = (SvxChartKindError) ((const SfxInt32Item*) pPoolItem)->GetValue(); -/*N*/ bLclChanged = TRUE; -/*N*/ } -/*N*/ -/*N*/ if (rInAttrs.GetItemState(SCHATTR_STAT_PERCENT, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ { -/*N*/ fIndicatePercent = ((const SvxDoubleItem*) pPoolItem)->GetValue(); -/*N*/ bLclChanged = TRUE; -/*N*/ } -/*N*/ -/*N*/ if (rInAttrs.GetItemState(SCHATTR_STAT_BIGERROR, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ { -/*N*/ fIndicateBigError = ((const SvxDoubleItem*) pPoolItem)->GetValue(); -/*N*/ bLclChanged = TRUE; -/*N*/ } -/*N*/ -/*N*/ if (rInAttrs.GetItemState(SCHATTR_STAT_CONSTPLUS, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ { -/*N*/ fIndicatePlus = ((const SvxDoubleItem*) pPoolItem)->GetValue(); -/*N*/ bLclChanged = TRUE; -/*N*/ } -/*N*/ -/*N*/ if (rInAttrs.GetItemState(SCHATTR_STAT_CONSTMINUS, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ { -/*N*/ fIndicateMinus = ((const SvxDoubleItem*) pPoolItem)->GetValue(); -/*N*/ bLclChanged = TRUE; -/*N*/ } -/*N*/ -/*N*/ if (rInAttrs.GetItemState(SCHATTR_STAT_INDICATE, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ { -/*?*/ eIndicate = (SvxChartIndicate) ((const SfxInt32Item*) pPoolItem)->GetValue(); -/*?*/ bLclChanged = TRUE; -/*N*/ } -/*N*/ -/*N*/ if (rInAttrs.GetItemState(SCHATTR_STAT_REGRESSTYPE, TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ { -/*N*/ eRegression = (SvxChartRegress) ((const SfxInt32Item*) pPoolItem)->GetValue(); -/*N*/ bLclChanged = TRUE; -/*N*/ } -/*N*/ -/*N*/ if( bLclChanged ) -/*N*/ { -/*N*/ BuildChart( FALSE ); -/*N*/ } -/*N*/ -/*N*/ return bLclChanged; -/*N*/ } - -/*N*/ void ChartModel::DataRangeChanged( long /*_nOldRowCnt*/ , long /*_nOldColCnt*/ ) -/*N*/ { -/*N*/ if( Is3DChart() ) -/*N*/ { -/*N*/ // delete depth-attributes for 3d charts -/*N*/ size_t i, nCount = aDataRowAttrList.size(); -/*N*/ SfxItemSet* pAttributes; -/*N*/ -/*N*/ for( i=0; i<nCount; i++ ) -/*N*/ aDataRowAttrList[ i ]->ClearItem(SDRATTR_3DOBJ_DEPTH); -/*N*/ -/*N*/ nCount = aDataPointAttrList.size(); -/*N*/ for( i=0; i < nCount; i++ ) -/*N*/ { -/*N*/ pAttributes = aDataPointAttrList[ i ]; -/*N*/ if (pAttributes != NULL) -/*?*/ pAttributes->ClearItem(SDRATTR_3DOBJ_DEPTH); -/*N*/ } -/*N*/ -/*N*/ nCount = aSwitchDataPointAttrList.size(); -/*N*/ for( i=0; i < nCount; i++ ) -/*N*/ { -/*N*/ pAttributes = aSwitchDataPointAttrList[ i ]; -/*N*/ if (pAttributes != NULL) -/*?*/ pAttributes->ClearItem(SDRATTR_3DOBJ_DEPTH); -/*N*/ } -/*N*/ } -/*N*/ } - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chtmode6.cxx b/binfilter/bf_sch/source/core/sch_chtmode6.cxx deleted file mode 100644 index bbc7b747d..000000000 --- a/binfilter/bf_sch/source/core/sch_chtmode6.cxx +++ /dev/null @@ -1,287 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma hdrstop -#endif - -#include <bf_svx/eeitem.hxx> -//svdraw.hxx -#define _SDR_NOITEMS -#define _SDR_NOTOUCH -#define _SDR_NOTRANSFORM -//#define _SDR_NOOBJECTS -//#define _SDR_NOVIEWS *** - -//#define SI_NOITEMS -//#define SI_NODRW -#define _SI_NOSBXCONTROLS -#define _SI_NOOTHERFORMS -#define _SI_NOCONTROL -#define _SI_NOSBXCONTROLS - -#include <bf_svx/xdef.hxx> - -#ifndef _SV_MENU_HXX //autogen -#endif - -#include "schattr.hxx" - -#ifndef _SVX_CHRTITEM_HXX //autogen -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTTEXTORDER SCHATTR_TEXT_ORDER -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT -#define ITEMID_CHARTLEGENDPOS SCHATTR_LEGEND_POS -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR - -#include <bf_svtools/eitem.hxx> - -#endif - -#define ITEMID_FONT EE_CHAR_FONTINFO -#define ITEMID_COLOR EE_CHAR_COLOR -#define ITEMID_FONTHEIGHT EE_CHAR_FONTHEIGHT - -#include <string.h> // memset - -#include <bf_svx/dialogs.hrc> - -#ifndef _CHTMODEL_HXX -#endif - -#include "docshell.hxx" - - - - - - -#include <bf_sfx2/printer.hxx> -namespace binfilter { - -/************************************************************************* -|* -|* MapMode des Printers auf Seitengroesse einstellen -|* -\************************************************************************/ - -/*N*/ void ChartModel::AdjustPrinter() -/*N*/ { -/*N*/ SchChartDocShell* pDocSh = (SchChartDocShell*) pDocShell; -/*N*/ -/*N*/ if (!pDocSh) -/*N*/ { -/*?*/ pDocSh = PTR_CAST(SchChartDocShell, SfxObjectShell::Current()); -/*N*/ } -/*N*/ -/*N*/ if (pDocSh) -/*N*/ { -/*N*/ SfxPrinter* pPrinter = pDocSh->GetPrinter(); -/*N*/ -/*N*/ if (pPrinter && pPrinter->IsValid()) -/*N*/ { -/*N*/ MapMode aOldMap = pPrinter->GetMapMode(); -/*N*/ MapMode aMap(aOldMap); -/*N*/ aMap.SetMapUnit(MAP_100TH_MM); -/*N*/ aMap.SetScaleX(Fraction(1,1)); -/*N*/ aMap.SetScaleY(Fraction(1,1)); -/*N*/ pPrinter->SetMapMode(aMap); -/*N*/ Size aPrintSize = pPrinter->GetOutputSize(); -/*N*/ -/*N*/ SdrPage* pPage = GetPage( 0 ); -/*N*/ DBG_ASSERT( pPage, "Invalid Page!" ); -/*N*/ -/*N*/ Size aPageSize( 0, 0 ); -/*N*/ long nPageWidth = 0, -/*N*/ nPageHeight = 0; -/*N*/ -/*N*/ if( pPage ) -/*N*/ { -/*N*/ aPageSize = pPage->GetSize(); -/*N*/ nPageWidth = aPageSize.Width(); -/*N*/ nPageHeight = aPageSize.Height(); -/*N*/ } -/*N*/ -/*N*/ const long nPrintWidth = aPrintSize.Width(); -/*N*/ const long nPrintHeight= aPrintSize.Height(); -/*N*/ -/*N*/ if( nPageHeight > 0 && -/*N*/ nPageWidth > 0 && -/*N*/ nPrintHeight > 0 && -/*N*/ nPrintWidth > 0 ) -/*N*/ { -/*N*/ // landscape mode -/*N*/ if( pPrinter->GetOrientation() == ORIENTATION_LANDSCAPE ) -/*N*/ { -/*?*/ double fVert = (double)nPrintWidth / (double)nPageWidth; -/*?*/ double fHorz = (double)nPrintHeight / (double)nPageHeight; -/*?*/ BOOL bVert; -/*?*/ -/*?*/ // bestimmung, welche richtung das hauptgewicht der skalierung hat. dazu werden -/*?*/ // papier- und seitengroesse verglichen und nach der richtung mit der geringeren -/*?*/ // abweichung (1:1) wird die skalierung bestimmt. -/*?*/ // bVert bestimmt nachfolgend die einpassung in das papier, je nachdem, ob das -/*?*/ // chart im hochformat oder quer ausgerichtet (nicht gedruckt !) ist. -/*?*/ // -/*?*/ if (fHorz < 1.0) -/*?*/ if (fVert < 1.0) -/*?*/ { -/*?*/ // wird in jede richtung vergroessert -/*?*/ bVert = fHorz < fVert; -/*?*/ Fraction aFract = bVert -/*?*/ ? Fraction( nPrintWidth, nPageWidth ) -/*?*/ : Fraction( nPrintHeight,nPageHeight ); -/*?*/ -/*?*/ aMap.SetScaleX(aFract); -/*?*/ aMap.SetScaleY(aFract); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ // horizontal verkleinert, vertikal vergroessert -/*?*/ bVert = (fVert - 1.0) < (1.0 - fHorz); -/*?*/ Fraction aFract = bVert -/*?*/ ? Fraction( nPrintWidth, nPageWidth ) -/*?*/ : Fraction( nPrintHeight,nPageHeight ); -/*?*/ -/*?*/ aMap.SetScaleX(aFract); -/*?*/ aMap.SetScaleY(aFract); -/*?*/ } -/*?*/ else if (fVert < 1.0) -/*?*/ { -/*?*/ // vertikal verkleinert, horizontal vergroessert -/*?*/ bVert = (1.0 - fVert) < (fHorz - 1.0);//TEST2 -/*?*/ Fraction aFract = bVert -/*?*/ ? Fraction( nPrintWidth, nPageWidth ) -/*?*/ : Fraction( nPrintHeight,nPageHeight ); -/*?*/ -/*?*/ aMap.SetScaleX(aFract); -/*?*/ aMap.SetScaleY(aFract); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ // wird in jede richtung verkleinert -/*?*/ bVert = fVert < fHorz; -/*?*/ Fraction aFract = bVert -/*?*/ ? Fraction( nPrintWidth, nPageWidth ) -/*?*/ : Fraction( nPrintHeight,nPageHeight ); -/*?*/ -/*?*/ aMap.SetScaleX(aFract); -/*?*/ aMap.SetScaleY(aFract); -/*?*/ } -/*?*/ -/*?*/ if (bVert) -/*?*/ { -/*?*/ Fraction aYFract = aMap.GetScaleY ();//TEST1,2 -/*?*/ -/*?*/ aMap.SetOrigin(Point(0, (aPrintSize.Height () - aPageSize.Height () * aYFract.GetNumerator () / aYFract.GetDenominator ()) / -/*?*/ 2 * aYFract.GetDenominator () / aYFract.GetNumerator ())); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ Fraction aXFract = aMap.GetScaleX (); -/*?*/ -/*?*/ aMap.SetOrigin(Point((aPrintSize.Width () - aPageSize.Width () * aXFract.GetNumerator () / aXFract.GetDenominator ()) / -/*?*/ 2 * aXFract.GetDenominator () / aXFract.GetNumerator (), 0)); -/*?*/ } -/*?*/ } -/*N*/ // portrait mode -/*N*/ else -/*N*/ { -/*N*/ double fHorz = (double)nPrintWidth / (double)nPageWidth; -/*N*/ double fVert = (double)nPrintHeight / (double)nPageHeight; -/*N*/ BOOL bHorz; -/*N*/ -/*N*/ if (fHorz < 1.0) -/*N*/ if (fVert < 1.0) -/*N*/ { -/*?*/ bHorz = fVert < fHorz; -/*?*/ Fraction aFract = bHorz -/*?*/ ? Fraction( nPrintWidth, nPageWidth ) -/*?*/ : Fraction( nPrintHeight, nPageHeight ); -/*?*/ -/*?*/ aMap.SetScaleX(aFract); -/*?*/ aMap.SetScaleY(aFract); -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ bHorz = (1.0 - fHorz) < (fVert - 1.0); -/*?*/ Fraction aFract = bHorz -/*?*/ ? Fraction( nPrintWidth, nPageWidth) -/*?*/ : Fraction( nPrintHeight, nPageHeight); -/*?*/ -/*?*/ aMap.SetScaleX(aFract); -/*?*/ aMap.SetScaleY(aFract); -/*N*/ } -/*N*/ else if (fVert < 1.0) -/*N*/ { -/*?*/ bHorz = (fHorz - 1.0) < (1.0 - fVert); -/*?*/ Fraction aFract = bHorz -/*?*/ ? Fraction( nPrintWidth, nPageWidth) -/*?*/ : Fraction( nPrintHeight, nPageHeight); -/*?*/ -/*?*/ aMap.SetScaleX(aFract); -/*?*/ aMap.SetScaleY(aFract); -/*?*/ } -/*N*/ else -/*N*/ { -/*N*/ bHorz = (fHorz < fVert); -/*N*/ Fraction aFract = bHorz -/*N*/ ? Fraction( nPrintWidth, nPageWidth ) -/*N*/ : Fraction( nPrintHeight, nPageHeight ); -/*N*/ -/*N*/ aMap.SetScaleX(aFract); -/*N*/ aMap.SetScaleY(aFract); -/*N*/ } -/*N*/ -/*N*/ if (bHorz) -/*N*/ { -/*N*/ Fraction aYFract = aMap.GetScaleY (); -/*N*/ -/*N*/ aMap.SetOrigin(Point(0, (aPrintSize.Height () - aPageSize.Height () * aYFract.GetNumerator () / aYFract.GetDenominator ()) / -/*N*/ 2 * aYFract.GetDenominator () / aYFract.GetNumerator ())); -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ Fraction aXFract = aMap.GetScaleX (); -/*?*/ -/*?*/ aMap.SetOrigin(Point((aPrintSize.Width () - aPageSize.Width () * aXFract.GetNumerator () / aXFract.GetDenominator ()) / -/*?*/ 2 * aXFract.GetDenominator () / aXFract.GetNumerator (), 0)); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ pPrinter->SetMapMode(aMap); -/*N*/ } -/*N*/ } -/*N*/ } - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chtmode7.cxx b/binfilter/bf_sch/source/core/sch_chtmode7.cxx deleted file mode 100644 index 66cc30921..000000000 --- a/binfilter/bf_sch/source/core/sch_chtmode7.cxx +++ /dev/null @@ -1,563 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma optimize("",off) -#endif - -#include "schattr.hxx" -#include "memchrt.hxx" - -#ifndef _SVX_CHRTITEM_HXX //autogen -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTTEXTORDER SCHATTR_TEXT_ORDER -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT -#define ITEMID_CHARTLEGENDPOS SCHATTR_LEGEND_POS -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR - -#include <bf_svtools/eitem.hxx> - -#endif - - -#include <bf_svx/eeitem.hxx> - -#define ITEMID_FONT EE_CHAR_FONTINFO -#define ITEMID_COLOR EE_CHAR_COLOR -#define ITEMID_FONTHEIGHT EE_CHAR_FONTHEIGHT -#include <bf_svx/svxids.hrc> -#include <globfunc.hxx> - - - - - -#include "chaxis.hxx" -namespace binfilter { - -// Hier abhaengig von der Reihe den Style zurückgeben, vorerst ist nur aufsplitten der -// Verbundcharts von nöten: -//TVM: bitte nicht benutzen! renovierungsbedürftig! - - -/*N*/ SchMemChart* ChartModel::GetChartData() const -/*N*/ { -/*N*/ return pChartData; -/*N*/ } - - -/*N*/ long ChartModel::GetColCount() const -/*N*/ { -/*N*/ if( !pChartData ) return 0; // GPF via GetMenuState -/*N*/ -/*N*/ return IsDataSwitched() //abhaengig vom Charttyp - statt bSwitchData -/*N*/ ? pChartData->GetRowCount() -/*N*/ : pChartData->GetColCount(); -/*N*/ } - - -/*N*/ long ChartModel::GetRowCount() const -/*N*/ { -/*N*/ if( !pChartData ) return 0; // GPF via GetMenuState -/*N*/ -/*N*/ return IsDataSwitched() //abhaengig vom Charttyp - statt bSwitchData -/*N*/ ? pChartData->GetColCount() -/*N*/ : pChartData->GetRowCount(); -/*N*/ } - - - - - - -/*N*/ SvxChartStyle ChartModel::ChartStyle () const -/*N*/ { -/*N*/ return eChartStyle; -/*N*/ } - - -/*N*/ SvxChartStyle &ChartModel::ChartStyle() -/*N*/ { -/*N*/ return eChartStyle; -/*N*/ } - - - -/*N*/ long ChartModel::PieSegOfs( long nCol ) const -/*N*/ { -/*N*/ DBG_ASSERT( nCol < nPieSegCount, "pie segment requested is out of bounds" ); -/*N*/ -/*N*/ if( IsPieChart() && -/*N*/ nCol < nPieSegCount ) -/*N*/ { -/*N*/ return pPieSegOfs[ nCol ]; -/*N*/ } -/*N*/ -/*N*/ return 0; -/*N*/ } - - - -/*N*/ BOOL& ChartModel::ShowMainTitle () -/*N*/ { -/*N*/ return bShowMainTitle; -/*N*/ } - - - - -/*N*/ String& ChartModel::MainTitle () -/*N*/ { -/*N*/ return aMainTitle; -/*N*/ } - - - - -/*N*/ BOOL& ChartModel::ShowSubTitle() -/*N*/ { -/*N*/ return bShowSubTitle; -/*N*/ } - - - - -/*N*/ String& ChartModel::SubTitle () -/*N*/ { -/*N*/ return aSubTitle; -/*N*/ } - - - - -/*N*/ BOOL& ChartModel::ShowXAxisTitle () -/*N*/ { -/*N*/ return bShowXAxisTitle; -/*N*/ } - - -/*N*/ String& ChartModel::XAxisTitle () -/*N*/ { -/*N*/ return aXAxisTitle; -/*N*/ } - - - - - - -/*N*/ BOOL& ChartModel::ShowYAxisTitle () -/*N*/ { -/*N*/ return bShowYAxisTitle; -/*N*/ } -/*N*/ - - - -/*N*/ String& ChartModel::YAxisTitle () -/*N*/ { -/*N*/ return aYAxisTitle; -/*N*/ } - - - - -/*N*/ BOOL& ChartModel::ShowZAxisTitle () -/*N*/ { -/*N*/ return bShowZAxisTitle; -/*N*/ } - - - - -/*N*/ String& ChartModel::ZAxisTitle() -/*N*/ { -/*N*/ return aZAxisTitle; -/*N*/ } - - -/*N*/ BOOL ChartModel::ShowXAxis () const -/*N*/ { -/*N*/ return pChartXAxis->IsVisible(); -/*N*/ } - - -/*N*/ void ChartModel::ShowXAxis (BOOL b) -/*N*/ { -/*N*/ pChartXAxis->ShowAxis(b); -/*N*/ } - - - - -/*N*/ BOOL& ChartModel::ShowXGridMain () -/*N*/ { -/*N*/ return bShowXGridMain; -/*N*/ } - - - - -/*N*/ BOOL& ChartModel::ShowXGridHelp () -/*N*/ { -/*N*/ return bShowXGridHelp; -/*N*/ } - - -/*N*/ BOOL ChartModel::ShowXDescr () const -/*N*/ { -/*N*/ return pChartXAxis->HasDescription(); -/*N*/ } - - -/*N*/ void ChartModel::ShowXDescr(BOOL b) -/*N*/ { -/*N*/ pChartXAxis->ShowDescr(b); -/*N*/ } - - -/*N*/ BOOL ChartModel::ShowYAxis () const -/*N*/ { -/*N*/ return pChartYAxis->IsVisible(); -/*N*/ } -/*N*/ void ChartModel::ShowYAxis (BOOL b) -/*N*/ { -/*N*/ pChartYAxis->ShowAxis(b); -/*N*/ } - - - -/*N*/ BOOL& ChartModel::ShowYGridMain () -/*N*/ { -/*N*/ return bShowYGridMain; -/*N*/ } - - - - -/*N*/ BOOL& ChartModel::ShowYGridHelp () -/*N*/ { -/*N*/ return bShowYGridHelp; -/*N*/ } - - -/*N*/ BOOL ChartModel::ShowYDescr () const -/*N*/ { -/*N*/ return pChartYAxis->HasDescription(); -/*N*/ } - - -/*N*/ void ChartModel::ShowYDescr( BOOL b) -/*N*/ { -/*N*/ pChartYAxis->ShowDescr(b); -/*N*/ } - - -/*N*/ BOOL ChartModel::ShowZAxis () const -/*N*/ { -/*N*/ return pChartZAxis->IsVisible(); -/*N*/ } - - -/*N*/ void ChartModel::ShowZAxis(BOOL b) -/*N*/ { -/*N*/ pChartZAxis->ShowAxis(b); -/*N*/ } - - - - -/*N*/ BOOL& ChartModel::ShowZGridMain () -/*N*/ { -/*N*/ return bShowZGridMain; -/*N*/ } - - - - -/*N*/ BOOL& ChartModel::ShowZGridHelp () -/*N*/ { -/*N*/ return bShowZGridHelp; -/*N*/ } - - -/*N*/ BOOL ChartModel::ShowZDescr () const -/*N*/ { -/*N*/ return pChartZAxis->HasDescription(); -/*N*/ } - - -/*N*/ void ChartModel::ShowZDescr (BOOL b) -/*N*/ { -/*N*/ pChartZAxis->ShowDescr(b); -/*N*/ } - - -/*N*/ BOOL ChartModel::HasAxis( long nObjectId ) const -/*N*/ { -/*N*/ if( CHOBJID_ANY == nObjectId ) -/*N*/ return IsAxisChart() && -/*N*/ ( pChartXAxis->IsVisible() || -/*N*/ pChartYAxis->IsVisible() || -/*N*/ pChartAAxis->IsVisible() || -/*N*/ pChartBAxis->IsVisible() || -/*N*/ (Is3DChart() && pChartZAxis->IsVisible()) ); -/*N*/ -/*N*/ switch( nObjectId ) -/*N*/ { -/*N*/ case CHOBJID_DIAGRAM_X_AXIS: -/*N*/ return pChartXAxis->IsVisible(); -/*N*/ case CHOBJID_DIAGRAM_Y_AXIS: -/*N*/ return pChartYAxis->IsVisible(); -/*N*/ case CHOBJID_DIAGRAM_Z_AXIS: -/*N*/ return (Is3DChart() && pChartZAxis->IsVisible()); -/*N*/ case CHOBJID_DIAGRAM_A_AXIS: -/*N*/ return pChartAAxis->IsVisible(); -/*N*/ case CHOBJID_DIAGRAM_B_AXIS: -/*N*/ return pChartBAxis->IsVisible(); -/*N*/ } -/*N*/ -/*N*/ return FALSE; -/*N*/ } - - -/*N*/ const SfxItemSet& ChartModel::GetLegendAttr() const -/*N*/ { -/*N*/ return *pLegendAttr; -/*N*/ } - - - - - - - - - -//ToDo: diese Fkt. überflüssig machen (Problem: Austausch der Achseneigenschaften nicht NUR über Attr (??? stimmt das ???) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/*N*/ SdrOutliner* ChartModel::GetOutliner() const -/*N*/ { -/*N*/ return pOutliner; -/*N*/ } - -/*N*/ BOOL ChartModel::IsInitialized() const -/*N*/ { -/*N*/ return mbIsInitialized; -/*N*/ } - - - - -/*N*/ BOOL& ChartModel::ReadError () -/*N*/ { -/*N*/ return bReadError; -/*N*/ } - - -/*N*/ ChartScene* ChartModel::GetScene() -/*N*/ { -/*N*/ return pScene; -/*N*/ } - -/*N*/ SvNumberFormatter* ChartModel::GetNumFormatter() const -/*N*/ { -/*N*/ return pNumFormatter; -/*N*/ } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/*N*/ int& ChartModel::Granularity () -/*N*/ { -/*N*/ return nGranularity; -/*N*/ } - - - - -/*N*/ Size& ChartModel::InitialSize () -/*N*/ { -/*N*/ return aInitialSize; -/*N*/ } - - - - - - - - - - - - - - - - - - -/*N*/ void ChartModel::SetPieSegOfs( long nCol, long nOfs ) -/*N*/ { -/*N*/ DBG_ASSERT( pPieSegOfs, "Invalid Array" ); -/*N*/ DBG_ASSERT( nCol < nPieSegCount, "trying to set pie offset out of bounds" ); -/*N*/ -/*N*/ if( nCol < nPieSegCount ) -/*N*/ pPieSegOfs[ nCol ] = nOfs; -/*N*/ } - - -/*N*/ String& ChartModel::ColText( long nCol ) -/*N*/ { -/*N*/ return IsDataSwitched() //abhaengig vom Charttyp - statt bSwitchData -/*N*/ ? (String&) pChartData->GetTransRowText(nCol) -/*N*/ : (String&) pChartData->GetTransColText(nCol); -/*N*/ } - - -/*N*/ String& ChartModel::RowText( long nRow ) -/*N*/ { -/*N*/ return IsDataSwitched() //abhaengig vom Charttyp - statt bSwitchData -/*N*/ ? (String&) pChartData->GetTransColText(nRow) -/*N*/ : (String&) pChartData->GetTransRowText(nRow); -/*N*/ } - - - - -// FG: Ist eine Abfrage ob die Beschriftung eines Charts Zentriert unter einem Datenpunkt (Regelfall) steht -// oder zentriert zwischen 2 Marken. -/*N*/ BOOL ChartModel::IsDescriptionCenteredUnderDataPoint () -/*N*/ { -/*N*/ switch (eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_2D_STACKEDCOLUMN : -/*N*/ case CHSTYLE_2D_COLUMN : -/*N*/ case CHSTYLE_2D_PERCENTCOLUMN : -/*N*/ return FALSE; - -/*N*/ default : -/*N*/ return TRUE; -/*N*/ } -/*N*/ } -/*N*/ void ChartModel::LockBuild() -/*N*/ { -/*N*/ bNoBuildChart=TRUE; -/*N*/ } -/*N*/ void ChartModel::UnlockBuild() -/*N*/ { -/*N*/ bNoBuildChart=FALSE; -/*N*/ if(bShouldBuildChart) -/*N*/ BuildChart(FALSE); //evtl. TRUE, um Ranges zu prüfen??? -/*N*/ -/*N*/ // force broadcast SFX_HINT_DOCCHANGED -/*N*/ SfxObjectShell* pObjSh = GetObjectShell(); -/*N*/ if( pObjSh ) -/*N*/ { -/*N*/ pObjSh->SetModified( pObjSh->IsModified()); -/*N*/ } -/*N*/ } -/*N*/ BOOL ChartModel::IsLockedBuild() -/*N*/ { -/*N*/ return bNoBuildChart; -/*N*/ } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chtmode8.cxx b/binfilter/bf_sch/source/core/sch_chtmode8.cxx deleted file mode 100644 index d7e680334..000000000 --- a/binfilter/bf_sch/source/core/sch_chtmode8.cxx +++ /dev/null @@ -1,647 +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. - * - ************************************************************************/ - -#include "chtmodel.hxx" -namespace binfilter { - -/* - ------------------------------------------------------------ - Some Information about chart types. This may be used as a - basis for creating some chart classes (!) with - corresponding members. - ------------------------------------------------------------ - - Styles Basic: Perc Stack Bar 3D Symbols Net Axis sign neg. spline XY Stat. - -CHSTYLE_2D_LINE, Line - - - - - - - x x - - x -CHSTYLE_2D_STACKEDLINE, Line - x - - - - - x x - - - -CHSTYLE_2D_PERCENTLINE, Line x x - - - - - - x - - - -CHSTYLE_2D_COLUMN, Column - - - - - - - x x - - x -CHSTYLE_2D_STACKEDCOLUMN, Column - x - - - - - x x - - - -CHSTYLE_2D_PERCENTCOLUMN, Column x x - - - - - - x - - - -CHSTYLE_2D_BAR, *Column - - x - - - - x x - - x -CHSTYLE_2D_STACKEDBAR, *Column - x x - - - - x x - - - -CHSTYLE_2D_PERCENTBAR, *Column x x x - - - - - x - - - -CHSTYLE_2D_AREA, Area - - - - - - - x x - - - -CHSTYLE_2D_STACKEDAREA, Area - x - - - - - x x - - - -CHSTYLE_2D_PERCENTAREA, Area x x - - - - x - x - - - -CHSTYLE_2D_PIE, Pie x x - - - - - - x - - - -CHSTYLE_3D_STRIPE, Stripe? - - - x - - - x x - - - -CHSTYLE_3D_COLUMN, Column - - - x - - - x x - - - -CHSTYLE_3D_FLATCOLUMN, Column? - - - x - - - x x - - - -CHSTYLE_3D_STACKEDFLATCOLUMN Column - x - x - - - x x - - - -CHSTYLE_3D_PERCENTFLATCOLUMN Column x x - x - - - - x - - - -CHSTYLE_3D_AREA, Area - - - x - - - x x - - - -CHSTYLE_3D_STACKEDAREA, Area - x - x - - - x x - - - -CHSTYLE_3D_PERCENTAREA, Area x x - x - - - - - - - - -CHSTYLE_3D_SURFACE, Surface - - - x - - - x x - - - -CHSTYLE_3D_PIE, Pie x x ? x - - x - x - - - -CHSTYLE_2D_XY, XYZ - - - - - - - x x - x x -CHSTYLE_3D_XYZ, XYZ - - - x - - - x x - x - -CHSTYLE_2D_LINESYMBOLS, Line - - - - x - - x x - - x -CHSTYLE_2D_STACKEDLINESYM, Line - x - - x - - x x - - - -CHSTYLE_2D_PERCENTLINESYM, Line x x - - x - - - x - - - -CHSTYLE_2D_XYSYMBOLS, XYZ - - - - x - - x x - x x -CHSTYLE_3D_XYZSYMBOLS, XYZ - - - x x - - x x - x - -CHSTYLE_2D_DONUT1, *PIE ? ? ? - - - x - x - - - -CHSTYLE_2D_DONUT2, *PIE ? ? ? - - - x - x - - - -CHSTYLE_3D_BAR, *Column - - x x - - - x x - - - -CHSTYLE_3D_FLATBAR, *Column - - x x - - - x x - - - -CHSTYLE_3D_STACKEDFLATBAR, *Column - x x x - - - x x - - - -CHSTYLE_3D_PERCENTFLATBAR, *Column x x x x - - - - x - - - -CHSTYLE_2D_PIE_SEGOF1, PIE x x ? - - - x - x - - - -CHSTYLE_2D_PIE_SEGOFALL, PIE x x ? - - - x - x - - - -CHSTYLE_2D_NET, Net - - - - - x - x x - - - -CHSTYLE_2D_NET_SYMBOLS, Net - - - - x x - x x - - - -CHSTYLE_2D_NET_STACK, Net - x - - - x - x x - - - -CHSTYLE_2D_NET_SYMBOLS_STACK, Net - x - - x x - x x - - - -CHSTYLE_2D_NET_PERCENT, Net x x - - - x - - x - - - -CHSTYLE_2D_NET_SYMBOLS_PERCENT, Net x x - - x x - - x - - - -CHSTYLE_2D_CUBIC_SPLINE, SplineC - - - - - - - x x C - x -CHSTYLE_2D_CUBIC_SPLINE_SYMBOL, SplineC - - - - x - - x x C - x -CHSTYLE_2D_B_SPLINE, SplineB - - - - - - - x x B - x -CHSTYLE_2D_B_SPLINE_SYMBOL, SplineB - - - - x - - x x B - x -CHSTYLE_2D_CUBIC_SPLINE_XY, SplineC - - - - - - - x x C x x -CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY, SplineC - - - - x - - x x C x x -CHSTYLE_2D_B_SPLINE_XY, SplineB - - - - - - - x x B x x -CHSTYLE_2D_B_SPLINE_SYMBOL_XY, SplineB - - - - x - - x x B x x -CHSTYLE_2D_XY_LINE, Line_&_XYZ - - - - - - - x x - x - -CHSTYLE_2D_LINE_COLUMN, Column+1_Line - - - - - - - x x - - - -CHSTYLE_2D_LINE_STACKEDCOLUMN Column+1_Line - x - - - - - x x - - - */ - -// meaning supports symbols -/*N*/ BOOL ChartModel::HasSymbols(const long nRow) const -/*N*/ { -/*N*/ -/*N*/ switch(eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_2D_STOCK_1: -/*N*/ case CHSTYLE_2D_STOCK_2: -/*N*/ -/*N*/ -/*N*/ -/*N*/ case CHSTYLE_2D_XY : -/*N*/ OSL_TRACE("ChartModel::HasSymbols:Achtung, neuer Typ, ungetestet"); -/*N*/ -/*N*/ case CHSTYLE_2D_LINESYMBOLS: -/*N*/ case CHSTYLE_2D_STACKEDLINESYM: -/*N*/ case CHSTYLE_2D_PERCENTLINESYM: -/*N*/ case CHSTYLE_2D_XYSYMBOLS: -/*N*/ case CHSTYLE_3D_XYZSYMBOLS: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_STACK: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_PERCENT: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL: -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY: -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL_XY: -/*N*/ return TRUE; -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_STOCK_3: -/*N*/ case CHSTYLE_2D_STOCK_4: -/*?*/ return (nRow!=0); -/*N*/ -/*N*/ case CHSTYLE_2D_LINE_STACKEDCOLUMN: -/*N*/ case CHSTYLE_2D_LINE_COLUMN: -/*N*/ if(nRow >= (GetRowCount() - nNumLinesInColChart)) -/*N*/ return TRUE; -/*N*/ return FALSE; -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ return FALSE; -/*N*/ } - -/*N*/ BOOL ChartModel::IsLine(const long nRow) const -/*N*/ { -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_STOCK_3: -/*N*/ case CHSTYLE_2D_STOCK_4: -/*?*/ return nRow ? TRUE : FALSE; -/*N*/ -/*N*/ case CHSTYLE_2D_STOCK_1: -/*N*/ case CHSTYLE_2D_STOCK_2: -/*N*/ -/*N*/ // lines and symbol types -/*N*/ case CHSTYLE_2D_XY : -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_STACK : -/*N*/ case CHSTYLE_2D_NET_SYMBOLS : -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_PERCENT : -/*N*/ case CHSTYLE_2D_LINESYMBOLS: -/*N*/ case CHSTYLE_2D_STACKEDLINESYM: -/*N*/ case CHSTYLE_2D_PERCENTLINESYM: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL: -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY: -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL_XY: -/*N*/ -/*N*/ // lines only -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_XY : -/*N*/ case CHSTYLE_2D_B_SPLINE_XY : -/*N*/ case CHSTYLE_2D_LINE : -/*N*/ case CHSTYLE_2D_STACKEDLINE : -/*N*/ case CHSTYLE_2D_PERCENTLINE : -/*N*/ case CHSTYLE_2D_NET : -/*N*/ case CHSTYLE_2D_NET_STACK : -/*N*/ case CHSTYLE_2D_NET_PERCENT : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE : -/*N*/ case CHSTYLE_2D_B_SPLINE : -/*N*/ case CHSTYLE_2D_XY_LINE : -/*N*/ return TRUE; -/*N*/ -/*N*/ case CHSTYLE_2D_LINE_STACKEDCOLUMN: -/*N*/ case CHSTYLE_2D_LINE_COLUMN: -/*N*/ if( nRow >= (GetRowCount() - nNumLinesInColChart)) -/*N*/ return ( GetRowCount() > 1 ); // only one series => must be a bar -/*N*/ return FALSE; -/*N*/ -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ } - -// for all types which return TRUE here it is assumed -// that toggling bSwitchColRow is allowed -/*N*/ BOOL ChartModel::IsBar() const -/*N*/ { -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_BAR: -/*N*/ case CHSTYLE_2D_STACKEDBAR: -/*N*/ case CHSTYLE_2D_PERCENTBAR: -/*N*/ case CHSTYLE_3D_BAR: -/*N*/ case CHSTYLE_3D_FLATBAR: -/*N*/ case CHSTYLE_3D_STACKEDFLATBAR: -/*N*/ case CHSTYLE_3D_PERCENTFLATBAR: -/*N*/ return TRUE; -/*N*/ -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ } -/*N*/ BOOL ChartModel::IsCol(long nRow) const -/*N*/ { -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_COLUMN: -/*N*/ case CHSTYLE_2D_STACKEDCOLUMN: -/*N*/ case CHSTYLE_2D_PERCENTCOLUMN: -/*N*/ case CHSTYLE_3D_COLUMN: -/*N*/ case CHSTYLE_3D_FLATCOLUMN: -/*N*/ case CHSTYLE_3D_STACKEDFLATCOLUMN: -/*N*/ case CHSTYLE_3D_PERCENTFLATCOLUMN: -/*N*/ return TRUE; -/*N*/ -/*N*/ case CHSTYLE_2D_STOCK_3: -/*N*/ case CHSTYLE_2D_STOCK_4: -/*?*/ return nRow ? FALSE : TRUE ; -/*N*/ -/*N*/ case CHSTYLE_2D_LINE_STACKEDCOLUMN: -/*N*/ case CHSTYLE_2D_LINE_COLUMN: -/*N*/ return ! (nRow >= (GetRowCount() - nNumLinesInColChart)); -/*N*/ -/*N*/ default: -/*?*/ return FALSE; -/*N*/ } -/*N*/ } - - -/*N*/ BOOL ChartModel::Is3DChart() const -/*N*/ { -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_3D_STRIPE: -/*N*/ case CHSTYLE_3D_COLUMN: -/*N*/ case CHSTYLE_3D_BAR: -/*N*/ case CHSTYLE_3D_FLATCOLUMN: -/*N*/ case CHSTYLE_3D_FLATBAR: -/*N*/ case CHSTYLE_3D_STACKEDFLATCOLUMN: -/*N*/ case CHSTYLE_3D_STACKEDFLATBAR: -/*N*/ case CHSTYLE_3D_PERCENTFLATCOLUMN: -/*N*/ case CHSTYLE_3D_PERCENTFLATBAR: -/*N*/ case CHSTYLE_3D_AREA: -/*N*/ case CHSTYLE_3D_STACKEDAREA: -/*N*/ case CHSTYLE_3D_PERCENTAREA: -/*N*/ case CHSTYLE_3D_SURFACE: -/*N*/ case CHSTYLE_3D_PIE: -/*N*/ // new since 380 Build 1502, but still not supported -/*N*/ case CHSTYLE_3D_XYZ: -/*N*/ case CHSTYLE_3D_XYZSYMBOLS: -/*N*/ return TRUE; -/*N*/ -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ } - -/*N*/ BOOL ChartModel::IsStackedChart() const -/*N*/ { -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_STACKEDLINE: -/*N*/ case CHSTYLE_2D_PERCENTLINE: -/*N*/ case CHSTYLE_2D_STACKEDAREA: -/*N*/ case CHSTYLE_2D_PERCENTAREA: -/*N*/ case CHSTYLE_2D_STACKEDCOLUMN: -/*N*/ case CHSTYLE_2D_PERCENTCOLUMN: -/*N*/ case CHSTYLE_2D_STACKEDBAR: -/*N*/ case CHSTYLE_2D_PERCENTBAR: -/*N*/ case CHSTYLE_3D_STACKEDFLATCOLUMN: -/*N*/ case CHSTYLE_3D_PERCENTFLATCOLUMN: -/*N*/ case CHSTYLE_3D_STACKEDFLATBAR: -/*N*/ case CHSTYLE_3D_PERCENTFLATBAR: -/*N*/ case CHSTYLE_3D_STACKEDAREA: -/*N*/ case CHSTYLE_3D_PERCENTAREA: -/*N*/ case CHSTYLE_2D_LINE_STACKEDCOLUMN: -/*N*/ return TRUE; -/*N*/ -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ } - -/*N*/ BOOL ChartModel::IsStacked() const -/*N*/ { -/*N*/ if( IsPercent() ) // percent => stacked -/*N*/ return TRUE; -/*N*/ -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_STACKEDCOLUMN: -/*N*/ case CHSTYLE_2D_STACKEDBAR: -/*N*/ case CHSTYLE_2D_STACKEDLINE: -/*N*/ case CHSTYLE_2D_STACKEDAREA: -/*N*/ case CHSTYLE_3D_STACKEDFLATCOLUMN: -/*N*/ case CHSTYLE_3D_STACKEDFLATBAR: -/*N*/ case CHSTYLE_3D_STACKEDAREA: -/*N*/ case CHSTYLE_2D_STACKEDLINESYM: -/*N*/ case CHSTYLE_2D_NET_STACK: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_STACK: -/*N*/ case CHSTYLE_2D_LINE_STACKEDCOLUMN: -/*N*/ return TRUE; -/*N*/ -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ } - -/*N*/ BOOL ChartModel::IsPercentChart() const -/*N*/ { -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_PERCENTLINE: -/*N*/ case CHSTYLE_2D_PERCENTAREA: -/*N*/ case CHSTYLE_2D_PERCENTCOLUMN: -/*N*/ case CHSTYLE_2D_PERCENTBAR: -/*N*/ case CHSTYLE_3D_PERCENTFLATCOLUMN: -/*N*/ case CHSTYLE_3D_PERCENTAREA: -/*N*/ return TRUE; -/*N*/ -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ } - -/*N*/ BOOL ChartModel::IsPercent() const -/*N*/ { -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_PERCENTCOLUMN: -/*N*/ case CHSTYLE_2D_PERCENTBAR: -/*N*/ case CHSTYLE_2D_PERCENTLINE: -/*N*/ case CHSTYLE_2D_PERCENTAREA: -/*N*/ case CHSTYLE_3D_PERCENTFLATCOLUMN: -/*N*/ case CHSTYLE_3D_PERCENTAREA: -/*N*/ case CHSTYLE_2D_NET_PERCENT: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_PERCENT: -/*N*/ case CHSTYLE_2D_PERCENTLINESYM: -/*N*/ case CHSTYLE_3D_PERCENTFLATBAR: -/*N*/ return TRUE; -/*N*/ -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ } - -/*N*/ BOOL ChartModel::IsArea(long /*nRow*/) -/*N*/ { -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_AREA: -/*N*/ case CHSTYLE_2D_STACKEDAREA: -/*N*/ case CHSTYLE_2D_PERCENTAREA: -/*N*/ case CHSTYLE_3D_AREA: -/*N*/ case CHSTYLE_3D_STACKEDAREA: -/*N*/ case CHSTYLE_3D_PERCENTAREA: -/*N*/ return TRUE; -/*N*/ -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ } - -/*N*/ BOOL ChartModel::IsAxisChart() const -/*N*/ { -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_DONUT1: -/*N*/ case CHSTYLE_2D_DONUT2: -/*N*/ case CHSTYLE_2D_PIE: -/*N*/ case CHSTYLE_2D_PIE_SEGOF1: -/*N*/ case CHSTYLE_2D_PIE_SEGOFALL: -/*N*/ case CHSTYLE_3D_PIE: -/*N*/ return FALSE; -/*N*/ -/*N*/ default: -/*N*/ return TRUE; -/*N*/ } -/*N*/ } - -/*N*/ BOOL ChartModel::IsNegativeChart( SvxChartStyle* pStyle ) const -/*N*/ { -/*N*/ switch( pStyle? *pStyle: eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_3D_PERCENTAREA: -/*N*/ return FALSE; -/*N*/ -/*N*/ default: -/*N*/ return TRUE; -/*N*/ } -/*N*/ } - -/*N*/ BOOL ChartModel::IsSignedChart( SvxChartStyle* pStyle ) const -/*N*/ { -/*N*/ switch( pStyle? *pStyle: eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_3D_PIE : -/*N*/ case CHSTYLE_2D_PIE : -/*N*/ case CHSTYLE_2D_PIE_SEGOF1: -/*N*/ case CHSTYLE_2D_PIE_SEGOFALL: -/*N*/ case CHSTYLE_2D_DONUT1: -/*N*/ case CHSTYLE_2D_DONUT2: -/*N*/ case CHSTYLE_2D_PERCENTLINE : -/*N*/ case CHSTYLE_2D_PERCENTCOLUMN : -/*N*/ case CHSTYLE_2D_PERCENTAREA : -/*N*/ case CHSTYLE_3D_PERCENTFLATCOLUMN : -/*N*/ case CHSTYLE_3D_PERCENTAREA : -/*N*/ case CHSTYLE_2D_PERCENTBAR : -/*N*/ return FALSE; -/*N*/ -/*N*/ default : -/*N*/ return TRUE; -/*N*/ } -/*N*/ } - - -/*N*/ BOOL ChartModel::IsPieChart() const -/*N*/ { -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_3D_PIE : -/*N*/ case CHSTYLE_2D_PIE : -/*N*/ case CHSTYLE_2D_PIE_SEGOF1: -/*N*/ case CHSTYLE_2D_PIE_SEGOFALL: -/*N*/ return TRUE; -/*N*/ -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ } - -/*N*/ BOOL ChartModel::IsXYChart( SvxChartStyle* pStyle ) const -/*N*/ { -/*N*/ // if pStyle == NULL (default) the current style of 'this' is used -/*N*/ -/*N*/ switch( pStyle? *pStyle: eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_XY : -/*N*/ case CHSTYLE_3D_XYZ : -/*N*/ case CHSTYLE_2D_XYSYMBOLS : -/*N*/ case CHSTYLE_3D_XYZSYMBOLS : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_XY : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY : -/*N*/ case CHSTYLE_2D_B_SPLINE_XY : -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL_XY : -/*N*/ case CHSTYLE_2D_XY_LINE : -/*N*/ return TRUE; -/*N*/ -/*N*/ case CHSTYLE_ADDIN: -/*N*/ return TRUE; -/*N*/ -/*N*/ default : -/*N*/ return FALSE; -/*N*/ } -/*N*/ } - - -/*N*/ BOOL ChartModel::IsSplineChart () const -/*N*/ { -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL : -/*N*/ case CHSTYLE_2D_B_SPLINE : -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_XY : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY : -/*N*/ case CHSTYLE_2D_B_SPLINE_XY : -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL_XY : -/*N*/ return TRUE; -/*N*/ -/*N*/ default : -/*N*/ return FALSE; -/*N*/ } -/*N*/ } - -/*N*/ BOOL ChartModel::IsNetChart() const -/*N*/ { -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_NET : -/*N*/ case CHSTYLE_2D_NET_SYMBOLS : -/*N*/ case CHSTYLE_2D_NET_STACK : -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_STACK : -/*N*/ case CHSTYLE_2D_NET_PERCENT : -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_PERCENT : -/*N*/ return TRUE; -/*N*/ -/*N*/ default : -/*N*/ return FALSE; -/*N*/ } -/*N*/ } - -// ======================================== -// return base type -// ======================================== - -/*N*/ long ChartModel::GetBaseType() const -/*N*/ { -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_B_SPLINE : -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL : -/*N*/ case CHSTYLE_2D_LINE: -/*N*/ case CHSTYLE_2D_STACKEDLINE: -/*N*/ case CHSTYLE_2D_PERCENTLINE: -/*N*/ case CHSTYLE_2D_LINESYMBOLS: -/*N*/ case CHSTYLE_2D_STACKEDLINESYM: -/*N*/ case CHSTYLE_2D_PERCENTLINESYM: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL : -/*N*/ case CHSTYLE_3D_STRIPE: -/*N*/ return CHTYPE_LINE; -/*N*/ -/*N*/ case CHSTYLE_2D_AREA: -/*N*/ case CHSTYLE_2D_STACKEDAREA: -/*N*/ case CHSTYLE_2D_PERCENTAREA: -/*N*/ case CHSTYLE_3D_AREA: -/*N*/ case CHSTYLE_3D_STACKEDAREA: -/*N*/ case CHSTYLE_3D_PERCENTAREA: -/*N*/ return CHTYPE_AREA; -/*N*/ -/*N*/ case CHSTYLE_2D_PIE: -/*N*/ case CHSTYLE_2D_PIE_SEGOF1: -/*N*/ case CHSTYLE_2D_PIE_SEGOFALL: -/*N*/ case CHSTYLE_3D_PIE: -/*N*/ return CHTYPE_CIRCLE; -/*N*/ -/*N*/ case CHSTYLE_2D_DONUT1: -/*N*/ case CHSTYLE_2D_DONUT2: -/*?*/ return CHTYPE_DONUT; -/*N*/ -/*N*/ case CHSTYLE_2D_B_SPLINE_XY : -/*N*/ case CHSTYLE_2D_XY_LINE : -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL_XY : -/*N*/ case CHSTYLE_2D_XYSYMBOLS: -/*N*/ case CHSTYLE_2D_XY: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_XY : -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY : -/*N*/ return CHTYPE_XY; -/*N*/ -/*N*/ case CHSTYLE_2D_NET: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS: -/*N*/ case CHSTYLE_2D_NET_STACK: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_STACK: -/*N*/ case CHSTYLE_2D_NET_PERCENT: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_PERCENT: -/*N*/ return CHTYPE_NET; -/*N*/ -/*N*/ case CHSTYLE_2D_COLUMN: -/*N*/ case CHSTYLE_2D_STACKEDCOLUMN: -/*N*/ case CHSTYLE_2D_PERCENTCOLUMN: -/*N*/ case CHSTYLE_2D_LINE_COLUMN: -/*N*/ case CHSTYLE_2D_LINE_STACKEDCOLUMN: -/*N*/ case CHSTYLE_3D_COLUMN: -/*N*/ case CHSTYLE_3D_FLATCOLUMN: -/*N*/ case CHSTYLE_3D_STACKEDFLATCOLUMN: -/*N*/ case CHSTYLE_3D_PERCENTFLATCOLUMN: -/*N*/ return CHTYPE_COLUMN; -/*N*/ -/*N*/ case CHSTYLE_2D_STOCK_1: -/*N*/ case CHSTYLE_2D_STOCK_2: -/*N*/ case CHSTYLE_2D_STOCK_3: -/*N*/ case CHSTYLE_2D_STOCK_4: -/*N*/ return CHTYPE_STOCK; -/*N*/ -/*N*/ case CHSTYLE_2D_BAR: -/*N*/ case CHSTYLE_2D_STACKEDBAR: -/*N*/ case CHSTYLE_2D_PERCENTBAR: -/*N*/ case CHSTYLE_3D_BAR: -/*N*/ case CHSTYLE_3D_FLATBAR: -/*N*/ case CHSTYLE_3D_STACKEDFLATBAR: -/*N*/ case CHSTYLE_3D_PERCENTFLATBAR: -/*N*/ return CHTYPE_BAR; -/*N*/ -/*N*/ case CHSTYLE_ADDIN: -/*?*/ return CHTYPE_ADDIN; -/*N*/ -/*N*/ default: -/*?*/ OSL_FAIL( "Invalid Chart style given!" ); -/*?*/ return CHTYPE_INVALID; -/*N*/ } -/*N*/ } - -/*N*/ BOOL ChartModel::SetBaseType(long nBaseType) -/*N*/ { -/*N*/ // setting the basetype currently sets the default type in the base category -/*N*/ // returns TRUE, iff chart type has been changed -/*N*/ -/*N*/ SvxChartStyle eNewStyle = eChartStyle; -/*N*/ -/*N*/ switch( nBaseType ) -/*N*/ { -/*N*/ case CHTYPE_LINE: -/*N*/ eNewStyle = CHSTYLE_2D_LINE; -/*N*/ break; -/*N*/ case CHTYPE_AREA: -/*N*/ eNewStyle = CHSTYLE_2D_AREA; -/*N*/ break; -/*N*/ case CHTYPE_DONUT: -/*?*/ eNewStyle = CHSTYLE_2D_DONUT1; -/*?*/ break; -/*N*/ case CHTYPE_CIRCLE: -/*N*/ eNewStyle = CHSTYLE_2D_PIE; -/*N*/ break; -/*N*/ case CHTYPE_XY: -/*N*/ eNewStyle = CHSTYLE_2D_XY; -/*N*/ break; -/*N*/ case CHTYPE_NET: -/*N*/ eNewStyle = CHSTYLE_2D_NET; -/*N*/ break; -/*N*/ case CHTYPE_COLUMN: // == BAR -/*N*/ case CHTYPE_BAR: -/*N*/ eNewStyle = CHSTYLE_2D_COLUMN; -/*N*/ break; -/*N*/ case CHTYPE_STOCK: -/*N*/ eNewStyle = CHSTYLE_2D_STOCK_1; -/*N*/ break; -/*N*/ case CHTYPE_ADDIN: -/*?*/ eNewStyle = CHSTYLE_ADDIN; -/*?*/ break; -/*?*/ default: -/*?*/ OSL_FAIL( "ChartModel::SetBaseType: Invalid Type!" ); -/*?*/ break; -/*N*/ } -/*N*/ -/*N*/ if( eChartStyle != eNewStyle ) -/*N*/ { -/*N*/ ChangeChart( eNewStyle ); -/*N*/ BuildChart( FALSE ); -/*N*/ return TRUE; -/*N*/ } -/*N*/ -/*N*/ return FALSE; -/*N*/ } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chtmode9.cxx b/binfilter/bf_sch/source/core/sch_chtmode9.cxx deleted file mode 100644 index b976a06ed..000000000 --- a/binfilter/bf_sch/source/core/sch_chtmode9.cxx +++ /dev/null @@ -1,1955 +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. - * - ************************************************************************/ -#ifdef _MSC_VER -#pragma optimize("",off) - -#pragma hdrstop -#endif -#include <bf_svx/svdorect.hxx> - -#include <bf_svx/svdopath.hxx> - - -#include <bf_svx/xlnclit.hxx> - -#ifndef _ZFORLIST_HXX //autogen -#ifndef _ZFORLIST_DECLARE_TABLE -#define _ZFORLIST_DECLARE_TABLE -#endif -#endif - - -#include <list> - -#include <bf_svx/eeitem.hxx> - -#include "schattr.hxx" -#include "memchrt.hxx" - -#ifndef _SVX_CHRTITEM_HXX //autogen -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR -#define ITEMID_CHARTTEXTORDER SCHATTR_TEXT_ORDER -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT - - -#endif - -#define ITEMID_FONTHEIGHT EE_CHAR_FONTHEIGHT -#define ITEMID_FONTWIDTH EE_CHAR_FONTWIDTH -#include <bf_svx/fhgtitem.hxx> -#include <bf_svx/fwdtitem.hxx> - -// header for class SdrOutliner -// header for GetDraftFillColor() -#include <bf_svx/svdetc.hxx> - -#include "globfunc.hxx" - -#include "ChXChartDocument.hxx" - -#include <float.h> -#include "glob.hrc" - -#include "chaxis.hxx" -#include "chdescr.hxx" -#include "calculat.hxx" -namespace binfilter { - -/************************************************************************* -|* -|* Koordinatenachsen und Rueckwand mit Unterteilung und Beschriftung -|* erzeugen; Liefert die Einfuege-Position fuer die Chart-Datenobjekte. -|* -\************************************************************************/ -/*N*/ void ChartModel::Create2DXYTitles(Rectangle& rRect,BOOL bSwitchColRow) -/*N*/ { -/*N*/ SdrPage* pPage=GetPage(0); -/*N*/ -/*N*/ SdrTextObj *pXAxisTitleObj = NULL; -/*N*/ SdrTextObj *pYAxisTitleObj = NULL; -/*N*/ -/*N*/ if (bShowXAxisTitle) -/*N*/ { -/*N*/ pXAxisTitleObj = CreateTitle (pXAxisTitleAttr, CHOBJID_DIAGRAM_TITLE_X_AXIS, -/*N*/ bSwitchColRow,aXAxisTitle, FALSE, &eAdjustXAxesTitle); -/*N*/ -/*N*/ if (GetAdjustMarginsForXAxisTitle()) -/*N*/ { -/*N*/ if (bSwitchColRow) -/*N*/ rRect.Left() += GetOutputSize(*pXAxisTitleObj).Width() + 200; -/*N*/ else -/*N*/ rRect.Bottom() -= GetOutputSize(*pXAxisTitleObj).Height() + 200; -/*N*/ } -/*N*/ } -/*N*/ if (bShowYAxisTitle) -/*N*/ { -/*N*/ pYAxisTitleObj = CreateTitle (pYAxisTitleAttr, CHOBJID_DIAGRAM_TITLE_Y_AXIS, -/*N*/ bSwitchColRow,aYAxisTitle, TRUE, &eAdjustYAxesTitle); -/*N*/ if (GetAdjustMarginsForYAxisTitle()) -/*N*/ { -/*N*/ if (bSwitchColRow) -/*N*/ rRect.Bottom() -= GetOutputSize(*pYAxisTitleObj).Height() + 200; -/*N*/ else -/*N*/ rRect.Left() += GetOutputSize(*pYAxisTitleObj).Width() + 200; -/*N*/ } -/*N*/ } -/*N*/ if (pXAxisTitleObj) -/*N*/ pPage->NbcInsertObject(pXAxisTitleObj); -/*N*/ if (pYAxisTitleObj) -/*N*/ pPage->NbcInsertObject(pYAxisTitleObj); -/*N*/ } - - -/*N*/ BOOL ChartModel::CanAxis(long nAxisId) const -/*N*/ { -/*N*/ switch(nAxisId) -/*N*/ { -/*N*/ case CHART_AXIS_PRIMARY_X: -/*?*/ return ( ! ( IsPieChart() || IsDonutChart() || IsNetChart() )); -/*N*/ case CHART_AXIS_PRIMARY_Y: -/*?*/ return ( ! ( IsPieChart() || IsDonutChart() )); -/*N*/ case CHART_AXIS_SECONDARY_X: -/*N*/ case CHART_AXIS_SECONDARY_Y: -/*N*/ switch(eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_2D_LINE: -/*N*/ case CHSTYLE_2D_STACKEDLINE: -/*N*/ case CHSTYLE_2D_PERCENTLINE: -/*N*/ case CHSTYLE_2D_COLUMN: -/*N*/ case CHSTYLE_2D_STACKEDCOLUMN: -/*N*/ case CHSTYLE_2D_PERCENTCOLUMN: -/*N*/ case CHSTYLE_2D_BAR: -/*N*/ case CHSTYLE_2D_STACKEDBAR: -/*N*/ case CHSTYLE_2D_PERCENTBAR: -/*N*/ case CHSTYLE_2D_AREA: -/*N*/ case CHSTYLE_2D_STACKEDAREA: -/*N*/ case CHSTYLE_2D_PERCENTAREA: -/* case CHSTYLE_2D_PIE: - case CHSTYLE_3D_STRIPE: - case CHSTYLE_3D_COLUMN: - case CHSTYLE_3D_FLATCOLUMN: - case CHSTYLE_3D_STACKEDFLATCOLUMN: - case CHSTYLE_3D_PERCENTFLATCOLUMN: - case CHSTYLE_3D_AREA: - case CHSTYLE_3D_STACKEDAREA: - case CHSTYLE_3D_PERCENTAREA: - case CHSTYLE_3D_SURFACE: - case CHSTYLE_3D_PIE: -*/ case CHSTYLE_2D_XY: -/*N*/ // case CHSTYLE_3D_XYZ: -/*N*/ case CHSTYLE_2D_LINESYMBOLS: -/*N*/ case CHSTYLE_2D_STACKEDLINESYM: -/*N*/ case CHSTYLE_2D_PERCENTLINESYM: -/*N*/ case CHSTYLE_2D_XYSYMBOLS: -/*N*/ case CHSTYLE_3D_XYZSYMBOLS: -/*N*/ // case CHSTYLE_2D_DONUT1: -/*N*/ // case CHSTYLE_2D_DONUT2: -/*N*/ case CHSTYLE_3D_BAR: -/*N*/ case CHSTYLE_3D_FLATBAR: -/*N*/ case CHSTYLE_3D_STACKEDFLATBAR: -/*N*/ case CHSTYLE_3D_PERCENTFLATBAR: -/* case CHSTYLE_2D_PIE_SEGOF1: - case CHSTYLE_2D_PIE_SEGOFALL: - case CHSTYLE_2D_NET: - case CHSTYLE_2D_NET_SYMBOLS: - case CHSTYLE_2D_NET_STACK: - case CHSTYLE_2D_NET_SYMBOLS_STACK: - case CHSTYLE_2D_NET_PERCENT: - case CHSTYLE_2D_NET_SYMBOLS_PERCENT: -*/ case CHSTYLE_2D_CUBIC_SPLINE: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL: -/*N*/ case CHSTYLE_2D_LINE_STACKEDCOLUMN: -/*N*/ case CHSTYLE_2D_LINE_COLUMN: -/*N*/ case CHSTYLE_2D_B_SPLINE: -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_XY: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY: -/*N*/ case CHSTYLE_2D_B_SPLINE_XY: -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL_XY: -/*N*/ case CHSTYLE_2D_XY_LINE: -/*N*/ case CHSTYLE_2D_STOCK_1: -/*N*/ case CHSTYLE_2D_STOCK_2: -/*N*/ case CHSTYLE_2D_STOCK_3: -/*N*/ case CHSTYLE_2D_STOCK_4: -/*N*/ case CHSTYLE_ADDIN: -/*N*/ return TRUE; -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ -/*N*/ default: -/*?*/ return FALSE; -/*N*/ } -/*N*/ return FALSE; -/*N*/ } -/*N*/ BOOL ChartModel::HasSecondYAxis() const -/*N*/ { -/*N*/ switch(eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_2D_STOCK_3: -/*N*/ case CHSTYLE_2D_STOCK_4: - default: break; -/*N*/ return TRUE; -/*N*/ } -/*N*/ if(!CanAxis(CHART_AXIS_SECONDARY_Y)) -/*N*/ return FALSE; -/*N*/ -/*N*/ if(pChartBAxis->IsVisible()) -/*N*/ return TRUE; -/*N*/ -/*N*/ -/*N*/ const SfxPoolItem *pPoolItem = NULL; -/*N*/ -/*N*/ for(long n=0;n<GetRowCount();n++) -/*N*/ if(GetDataRowAttr(n).GetItemState(SCHATTR_AXIS,TRUE, &pPoolItem) == SFX_ITEM_SET) -/*N*/ if(((const SfxInt32Item*)pPoolItem)->GetValue()==CHART_AXIS_SECONDARY_Y) -/*N*/ return TRUE; -/*N*/ -/*N*/ return FALSE; -/*N*/ } -/*N*/ void ChartModel::Create2DBackplane(Rectangle &rRect,SdrObjList &rObjList,BOOL bPartDescr,USHORT eStackMode) -/*N*/ { -/*N*/ BOOL bPercent=IsPercent(); -/*N*/ BOOL bSwitchColRow=IsXVertikal();//IsBar() -/*N*/ -/*N*/ //Initialisieren: -/*N*/ pChartXAxis->Initialise(rRect,bSwitchColRow,eStackMode,bPercent,FALSE); -/*N*/ pChartYAxis->Initialise(rRect,bSwitchColRow,eStackMode,bPercent,FALSE); -/*N*/ pChartBAxis->Initialise(rRect,bSwitchColRow,eStackMode,bPercent,FALSE); -/*N*/ pChartAAxis->Initialise(rRect,bSwitchColRow,eStackMode,bPercent,FALSE); -/*N*/ -/*N*/ //Position setzen (kann man eigentlich auch im ctor des Model machen?) -/*N*/ pChartAAxis->SetPosition(CHAXIS_POS_B); //A,B sind sekund?e Achsen => oben und rechts -/*N*/ pChartBAxis->SetPosition(CHAXIS_POS_B); -/*N*/ pChartXAxis->SetPosition(CHAXIS_POS_A); //prim?e Positionen=links, unten -/*N*/ pChartYAxis->SetPosition(CHAXIS_POS_A); -/*N*/ -/*N*/ pChartXAxis->CalcValueSteps(); -/*N*/ pChartYAxis->CalcValueSteps();//#63904# 12% -/*N*/ pChartAAxis->CalcValueSteps(); -/*N*/ pChartBAxis->CalcValueSteps();//#63904# 11% -/*N*/ -/*N*/ pChartBAxis->AttachIfNoOwnData(pChartYAxis); //skalierung transferieren, falls Y keine automatische Skalierung benutzt und B keine Daten besitzt! -/*N*/ pChartYAxis->AttachIfNoOwnData(pChartBAxis); // und umgekehrt -/*N*/ -/*N*/ //Falls einer der beiden Y-Daten keine Reihen zugeordnet sind, soll diese die andere kopieren -/*N*/ -/*N*/ long nTitleBottom = rRect.Bottom(); -/*N*/ long nTitleLeft = rRect.Left(); -/*N*/ -/*N*/ // ******* RECT_CHANGES **** Ab hier wird am rRect rumgeschraubt ****************** -/*N*/ -/*N*/ Create2DXYTitles(rRect,bSwitchColRow); //abziehen der Achsen-Titel-Fl?he -/*N*/ -/*N*/ // FG: Ich merke mir vor jeglicher Aenderung des linken oder rechten Randes wo der Seitenrand -/*N*/ // gewesen ist. Das braucht man um nun zu entscheiden ob der linke Rand wegen eines -/*N*/ // ?erstehenden Textes nachgeregelt werden soll. -/*N*/ const Rectangle aOldRect(rRect); -/*N*/ -/*N*/ //Zusammenfassen ??? -/*N*/ pChartYAxis->CalcMaxTextSize();//#63904# 14%, aber Aufruf nur wenn n?ig -/*N*/ pChartYAxis->InitDescr(); -/*N*/ pChartYAxis->SubtractDescrSize(rRect);//Gr?e der Beschriftung vom Rechteck abziehen -/*N*/ pChartBAxis->CalcMaxTextSize();//#63904# s.o. 0% wenn nicht benutzt! -/*N*/ pChartBAxis->InitDescr(); -/*N*/ pChartBAxis->SubtractDescrSize(rRect); -/*N*/ -/*N*/ pChartXAxis->SetArea(rRect); //Die X-Achsenl?ge ist bereits bekannt! wichtig f? nDescrWidth -/*N*/ pChartAAxis->SetArea(rRect); //Die Y-L?gen werden nachfolgend korrigiert -/*N*/ -/*N*/ pChartAAxis->SetColTextMode(!IsXYChart(),!bPartDescr); -/*N*/ pChartXAxis->SetColTextMode(!IsXYChart(),!bPartDescr); -/*N*/ -/*N*/ //f? die X-Achse gibt es ein paar sonderregel, insbesondere wird -/*N*/ //das Rect auch in der X-Breite ge?dert, wenn die Spaltenunterschriften sehr lang sind -/*N*/ //hinzu kommt noch Umbruch (an Y-Achse nicht vorgesehen), daher mu?hier eine -/*N*/ //Sonderbehandlung erfolgen, auch das InitDescr erfolgt hier nachtr?lich! -/*N*/ pChartXAxis->SubtractDescrSize_X(rRect,aOldRect); -/*N*/ -/*N*/ pChartAAxis->SetArea(rRect); -/*N*/ -/*N*/ pChartAAxis->SubtractDescrSize_X(rRect,aOldRect); //noch falsch! -/*N*/ -/*N*/ pChartXAxis->SetArea(rRect); //jetzt sind x und y l?ge bekannt -/*N*/ pChartYAxis->SetArea(rRect); -/*N*/ pChartAAxis->SetArea(rRect); -/*N*/ pChartBAxis->SetArea(rRect); -/*N*/ -/*N*/ // ******* END RECT_CHANGES ******************************************************************** -/*N*/ -/*N*/ rRect.Justify(); -/*N*/ -/*N*/ pChartXAxis->SetArea(rRect); //jetzt sind x und y l?ge bekannt -/*N*/ pChartYAxis->SetArea(rRect); -/*N*/ pChartAAxis->SetArea(rRect); -/*N*/ pChartBAxis->SetArea(rRect); -/*N*/ -/*N*/ /*long nStepPartWidth=*/pChartXAxis->GetDescrWidth(); //Warum nochmal? sollte noch immer identisch nDescrWidth sein! -/*N*/ -/*N*/ Position2DAxisTitles(rRect,bSwitchColRow,nTitleLeft,nTitleBottom); -/*N*/ -/*N*/ // Diagrammwand -/*N*/ SdrRectObj* pWallObj = new SdrRectObj( rRect ); -/*N*/ pWallObj->SetModel( this ); -/*N*/ rObjList.NbcInsertObject( SetObjectAttr( pWallObj, CHOBJID_DIAGRAM_WALL, -/*N*/ TRUE, TRUE, pDiagramWallAttr)); -/*N*/ -/*N*/ //********* Erzeugung der Achsen und Gitter ***************************** -/*N*/ -/*N*/ SdrObjList* pXGridMainList = NULL; -/*N*/ SdrObjList* pYGridMainList = NULL; -/*N*/ SdrObjList* pXGridHelpList = NULL; -/*N*/ SdrObjList* pYGridHelpList = NULL; -/*N*/ -/*N*/ -/*N*/ BOOL bXAxis = (pChartXAxis->IsVisible() && pChartYAxis->IsOriginInRange()); -/*N*/ BOOL bYAxis = (pChartYAxis->IsVisible() && -/*N*/ (!IsXYChart() || (IsXYChart() && pChartXAxis->IsOriginInRange()))); -/*N*/ -/*N*/ if(bShowXGridMain) -/*N*/ pXGridMainList = CreateGroup (rObjList, CHOBJID_DIAGRAM_X_GRID_MAIN_GROUP); -/*N*/ if(bShowYGridMain) -/*N*/ pYGridMainList = CreateGroup (rObjList, CHOBJID_DIAGRAM_Y_GRID_MAIN_GROUP); -/*N*/ if(bShowXGridHelp) -/*?*/ pXGridHelpList = CreateGroup (rObjList, CHOBJID_DIAGRAM_X_GRID_HELP_GROUP); -/*N*/ if(bShowYGridHelp) -/*?*/ pYGridHelpList = CreateGroup (rObjList, CHOBJID_DIAGRAM_Y_GRID_HELP_GROUP); -/*N*/ -/*N*/ pChartXAxis->CreateAxis( rObjList, CHOBJID_DIAGRAM_X_AXIS ); -/*N*/ pChartYAxis->CreateAxis( rObjList, CHOBJID_DIAGRAM_Y_AXIS ); -/*N*/ -/*N*/ pChartXAxis->ShowAxis(bXAxis); -/*N*/ pChartYAxis->ShowAxis(bYAxis); -/*N*/ -/*N*/ pChartXAxis->SetMainGrid(pYGridMainList,pYGridMainAttr); -/*N*/ pChartXAxis->SetHelpGrid(pYGridHelpList,pYGridHelpAttr); -/*N*/ -/*N*/ pChartYAxis->SetHelpGrid(pXGridHelpList,pXGridHelpAttr); -/*N*/ pChartYAxis->SetMainGrid(pXGridMainList,pXGridMainAttr); -/*N*/ -/*N*/ pChartAAxis->CreateAxis(rObjList,CHOBJID_DIAGRAM_A_AXIS); -/*N*/ pChartBAxis->CreateAxis(rObjList,CHOBJID_DIAGRAM_B_AXIS); -/*N*/ -/*N*/ //sek. Achsen haben nie ein Gitter -/*N*/ pChartAAxis->SetHelpGrid(NULL,NULL); -/*N*/ pChartAAxis->SetMainGrid(NULL,NULL); -/*N*/ pChartBAxis->SetHelpGrid(NULL,NULL); -/*N*/ pChartBAxis->SetMainGrid(NULL,NULL); -/*N*/ -/*N*/ pChartXAxis->CreateAxis(pChartYAxis->GetPosOrigin(),pChartXAxis->HasDescription(),bXAxis); -/*N*/ -/*N*/ if (IsXYChart()) -/*N*/ { -/*N*/ pChartYAxis->CreateAxis(pChartXAxis->GetPosOrigin(),pChartYAxis->HasDescription(),bYAxis); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if(bYAxis) -/*N*/ pChartYAxis->CreateAxis(); -/*N*/ } -/*N*/ -/*N*/ pChartYAxis->DrawGrids(); -/*N*/ pChartBAxis->DrawGrids();//eigentlich kein Grid, nur die Ticks! -/*N*/ -/*N*/ if(IsXYChart()) -/*N*/ { //Achtung! Die X-Achse unterst?zt Umbruch (nColumnTextWidth)! -/*N*/ pChartXAxis->InitDescr(); -/*N*/ pChartAAxis->InitDescr(); -/*N*/ } -/*N*/ else //Hier wird der ColText genutzt -> Beschr?kung auf maMaxTextSize! -/*N*/ { -/*N*/ pChartXAxis->InitDescr_X(); -/*N*/ pChartAAxis->InitDescr_X(); -/*N*/ } -/*N*/ pChartAAxis->DrawGrids(); -/*N*/ pChartXAxis->DrawGrids(); -/*N*/ } -/*N*/ void ChartModel::Position2DAxisTitles(const Rectangle& rRect,BOOL bSwitchColRow,long nTitleLeft,long nTitleBottom) -/*N*/ { -/*N*/ SdrPage *pPage = GetPage(0); -/*N*/ Size aPageSize = pPage->GetSize(); -/*N*/ -/*N*/ if(bShowXAxisTitle) -/*N*/ { -/*N*/ SdrObject *pXAxisTitleObj = GetObjWithId(CHOBJID_DIAGRAM_TITLE_X_AXIS,*pPage); -/*N*/ -/*N*/ if (pXAxisTitleObj) -/*N*/ { -/*N*/ -/*N*/ -/*N*/ Point aXAxesTitlePosition (rRect.Left() + (int) (rRect.GetWidth() / 2),nTitleBottom); -/*N*/ -/*N*/ if (GetXAxisTitleHasBeenMoved() && GetUseRelativePositions() && -/*N*/ (aXAxesTitlePosition.X() > 0) && (aXAxesTitlePosition.Y() > 0)) -/*N*/ { -/*N*/ // FG: Das ist eine Variable die in BuildChart gesetzt wird, kurz bevor -/*N*/ // das Objekt zerstoert wird. -/*N*/ double fRelativeXPosition = ((double) aTitleXAxisPosition.X()) / aInitialSize.Width(); -/*N*/ double fRelativeYPosition = ((double) aTitleXAxisPosition.Y()) / aInitialSize.Height(); -/*N*/ aXAxesTitlePosition.X() = (int) (aPageSize.Width() * fRelativeXPosition + 0.5); -/*N*/ aXAxesTitlePosition.Y() = (int) (aPageSize.Height() * fRelativeYPosition + 0.5); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if (bSwitchColRow) -/*N*/ { -/*N*/ aXAxesTitlePosition.X() = nTitleLeft; -/*N*/ aXAxesTitlePosition.Y() = (long)(rRect.Top() + rRect.GetHeight() / 2); -/*N*/ } -/*N*/ } -/*N*/ SetTextPos((SdrTextObj &) *pXAxisTitleObj, aXAxesTitlePosition,pXAxisTitleAttr); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if(bShowYAxisTitle) -/*N*/ { -/*N*/ SdrObject *pYAxisTitleObj = GetObjWithId(CHOBJID_DIAGRAM_TITLE_Y_AXIS,*pPage); -/*N*/ -/*N*/ if (pYAxisTitleObj) -/*N*/ { -/*N*/ Point aYAxesTitlePosition (Max(0L,nTitleLeft), -/*N*/ Max(0L,(long) (rRect.Top() + (int) (rRect.GetHeight() / 2)))); -/*N*/ -/*N*/ if (GetYAxisTitleHasBeenMoved() && GetUseRelativePositions() && -/*N*/ (aYAxesTitlePosition.X() >= 0) && (aYAxesTitlePosition.Y() >= 0)) -/*N*/ { -/*N*/ // FG: Das ist eine Variable die in BuildChart gesetzt wird, kurz bevor -/*N*/ // das Objekt zerstoert wird. -/*N*/ double fRelativeXPosition = ((double) aTitleYAxisPosition.X()) / aInitialSize.Width(); -/*N*/ double fRelativeYPosition = ((double) aTitleYAxisPosition.Y()) / aInitialSize.Height(); -/*N*/ aYAxesTitlePosition.X() = (int) (aPageSize.Width() * fRelativeXPosition + 0.5); -/*N*/ aYAxesTitlePosition.Y() = (int) (aPageSize.Height() * fRelativeYPosition + 0.5); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if (bSwitchColRow) -/*N*/ { -/*N*/ aYAxesTitlePosition.X() = rRect.Left() + (int) (rRect.GetWidth() / 2); -/*N*/ aYAxesTitlePosition.Y() = nTitleBottom; -/*N*/ } -/*N*/ } -/*N*/ SetTextPos((SdrTextObj &)*pYAxisTitleObj, aYAxesTitlePosition,pYAxisTitleAttr); -/*N*/ } -/*N*/ } -/*N*/ } -/************************************************************************* -|* -|* create 2d column charts -|* -\************************************************************************/ - -/*N*/ SdrObjGroup* ChartModel::Create2DColChart(Rectangle aRect) -/*N*/ { -/*N*/ -/*N*/ // Background -/*N*/ SchObjGroup* pGroup; -/*N*/ SdrObjList* pList; -/*N*/ CreateChartGroup (pGroup, pList); -/*N*/ Create2DBackplane(aRect, *pList, TRUE,IsStacked() ? CHSTACK_MINMAX : CHSTACK_NONE); -/*N*/ -/*N*/ Rectangle aClipRect( aRect ); -/*N*/ aClipRect.Right() += 1; -/*N*/ aClipRect.Top() -= 1; -/*N*/ -/*N*/ long nColCnt = GetColCount(); -/*N*/ long nRowCnt = GetRowCount(); -/*N*/ -/*N*/ ULONG nInsert,nInsStat; -/*N*/ ULONG nAxisBPos=CONTAINER_APPEND; -/*N*/ ULONG nAxisYPos=pList->GetObjCount()-1; -/*N*/ -/*N*/ //VerbundChart, Symbol der Linie, dynamische Gr?e: -/*N*/ Size aLegendSize (((SvxFontWidthItem &) pLegendAttr->Get (EE_CHAR_FONTWIDTH)).GetWidth (), -/*N*/ ((SvxFontHeightItem &) pLegendAttr->Get (EE_CHAR_FONTHEIGHT)).GetHeight ()); -/*N*/ OutputDevice * pRefDev = GetRefDevice(); -/*N*/ if(pRefDev) -/*N*/ aLegendSize = pRefDev->PixelToLogic (pRefDev->LogicToPixel (aLegendSize)); -/*N*/ else -/*N*/ OSL_FAIL("ChartModel: no RefDevice"); -/*N*/ long nLegendHeight = aLegendSize.Height () * 9 / 10; -/*N*/ -/*N*/ SdrObject *pObj; -/*N*/ ChartAxis* pAxis=pChartYAxis; -/*N*/ short nCol, nRow; -/*N*/ BOOL bPercent = IsPercent(); -/*N*/ -/*N*/ long nLines = Min((long)GetNumLinesColChart(),(long)(nRowCnt));;//#50212# -/*N*/ long nLineStart = nRowCnt-nLines; //#50212# Ab hier werden Linien gezeichnet -/*N*/ -/*N*/ //BarDescriptoren erzeugen -/*N*/ long nR1=0,nR2=0; -/*N*/ if(IsStacked())//Reihenzahl in diesem Fall egal -/*N*/ { -/*N*/ nR1=nR2=1; -/*N*/ } -/*N*/ else //sonst Datenreihen mit Balken je Achse z?len: (Lines fallen weg) -/*N*/ { -/*N*/ for(nRow=0;nRow<nRowCnt;nRow++) -/*N*/ { -/*N*/ long nAxisUID=((const SfxInt32Item&)GetDataRowAttr(nRow).Get(SCHATTR_AXIS)).GetValue(); -/*N*/ if(IsBar()||IsCol(nRow)) -/*N*/ { -/*N*/ if(nAxisUID == CHART_AXIS_SECONDARY_Y) -/*N*/ nR2++; -/*N*/ else -/*N*/ nR1++; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if(!nR1) //Verbundcharts, Lines werden oben nicht ber?ksichtigt, -/*N*/ nR1=1; //aber nRn=0 macht keinen Sinn -> Korrektur -/*N*/ if(!nR2) -/*N*/ nR2=1; -/*N*/ aBarY1.Create(aRect,nColCnt,nR1); -/*N*/ aBarY2.Create(aRect,nColCnt,nR2); -/*N*/ ChartBarDescriptor* pBar=&aBarY1; -/*N*/ -/*N*/ SdrObjList **pRowLists = new SdrObjList*[nRowCnt]; -/*N*/ SdrObjList **pStatLists = new SdrObjList*[nRowCnt]; -/*N*/ -/*N*/ ChartDataDescription aDescr(nColCnt,nRowCnt,pList,this,bShowDataDescr); -/*N*/ -/*N*/ Point *pTracePoint=0; -/*N*/ if(m_nDefaultColorSet&CHSPECIAL_TRACELINES) -/*N*/ { -/*?*/ pTracePoint = new Point[nRowCnt];//#50149# -/*N*/ } -/*N*/ -/*N*/ -/*N*/ XPolygon *pLine = new XPolygon[nLines]; //#50149# -/*N*/ BOOL bStartPointIsValid(FALSE); // Indicates wether the first point of a line -/*N*/ // segment is valid. -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ Point aTextPos; -/*N*/ -/*N*/ for (nRow = 0; nRow < nRowCnt; nRow++) -/*N*/ { -/*N*/ const SfxItemSet& rDataRowAttr = GetDataRowAttr(nRow); -/*N*/ SfxItemSet aDataPointAttr(rDataRowAttr); -/*N*/ MergeDataPointAttr(aDataPointAttr,nCol,nRow); //#63904# -/*N*/ -/*N*/ //Achse und Bardescriptor w?len, Insertreihenfolge festlegen -> -/*N*/ long nAxisUID=((const SfxInt32Item&)rDataRowAttr.Get(SCHATTR_AXIS)).GetValue(); -/*N*/ pAxis=GetAxisByUID(nAxisUID); -/*N*/ if(nAxisUID==CHART_AXIS_SECONDARY_Y) -/*N*/ { -/*?*/ pBar=&aBarY2; -/*?*/ nInsert=nAxisBPos; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ pBar=&aBarY1; -/*N*/ nInsert=nAxisYPos;//Insert-Reihenfolge festlegen -/*N*/ } -/*N*/ BOOL bIsLine=IsLine(nRow); -/*N*/ if(bIsLine) -/*N*/ nInsert=CONTAINER_APPEND; -/*N*/ -/*N*/ nInsStat = (nInsert==CONTAINER_APPEND) ? nInsert : nInsert+1;//Statistik immer hinter den Reihenobjekten, sonst wird sie verdeckt -/*N*/ //<- Achse und Bardescriptor w?len, Insertreihenfolge festlegen -/*N*/ -/*N*/ if(!nRow) -/*N*/ { -/*N*/ pChartBAxis->InitStacking(); -/*N*/ pChartYAxis->InitStacking(); -/*N*/ } -/*N*/ -/*N*/ if (!nCol) -/*N*/ { -/*N*/ SchObjGroup* pRowGroup = (SchObjGroup*) CreateSimpleGroup (CHOBJID_DIAGRAM_ROWGROUP, TRUE, TRUE); -/*N*/ -/*N*/ pRowGroup->InsertUserData(new SchDataRow(nRow)); -/*N*/ pList->NbcInsertObject(pRowGroup,nInsert); -/*N*/ pRowLists[nRow] = pRowGroup->GetSubList(); -/*N*/ -/*N*/ SchObjGroup* pStatGroup = (SchObjGroup*) CreateSimpleGroup (CHOBJID_DIAGRAM_STATISTICS_GROUP, TRUE, TRUE); -/*N*/ -/*N*/ pStatGroup->InsertUserData(new SchDataRow(nRow)); -/*N*/ pList->NbcInsertObject(pStatGroup,nInsStat); -/*N*/ pStatLists [nRow] = pStatGroup->GetSubList (); -/*N*/ } -/*N*/ -/*N*/ double fData = GetData(nCol, nRow, bPercent); -/*N*/ -/*N*/ BOOL bLogarithm = pAxis->IsLogarithm(); -/*N*/ switch (eChartStyle) -/*N*/ { -/*N*/ case CHSTYLE_2D_COLUMN: -/*N*/ case CHSTYLE_2D_LINE_COLUMN: -/*N*/ { -/*N*/ Point aTopLeft(pBar->BarLeft(),pAxis->GetUpper(fData,TRUE)); -/*N*/ Point aBottomRight(pBar->BarRight(),pAxis->GetLower(fData,TRUE)); -/*N*/ -/*N*/ Rectangle aObjRect(aTopLeft, aBottomRight); -/*N*/ -/*N*/ BOOL bShow = (aObjRect.Bottom() >= aObjRect.Top()); -/*N*/ aObjRect.Justify(); -/*N*/ -/*N*/ if (!nCol && ((const SfxBoolItem &) rDataRowAttr.Get (SCHATTR_STAT_AVERAGE)).GetValue ()) - {DBG_BF_ASSERT(0, "STRIP"); } -/*N*/ -/*N*/ if (bShow && ((!bLogarithm && (fData != DBL_MIN)) || -/*N*/ (bLogarithm && (fData != DBL_MIN) && (fData > 0.0)))) -/*N*/ { -/*N*/ if(bIsLine) //#50212# -/*N*/ { -/*N*/ // Verbund-Chart -/*N*/ // Letzte "Datenreihe" als Linie ausgeben -/*N*/ pLine[nRow-nLineStart][1] = -/*N*/ Point(pBar->Middle(),pAxis->GetPos(fData)); -/*N*/ -/*N*/ if (nCol == 0) -/*N*/ { -/*N*/ // Beim ersten Datenpunkt: Anfangspunkt = EndPunkt -/*N*/ pLine[nRow-nLineStart][0] = pLine[nRow-nLineStart][1];//#50212# -/*N*/ bStartPointIsValid = TRUE; -/*N*/ } -/*N*/ // Symbol einfuegen -/*N*/ Point& rInsert = pLine[ nRow - nLineStart ][ 1 ]; -/*N*/ -/*N*/ if( aClipRect.IsInside( rInsert ) ) -/*N*/ { -/*N*/ SdrObject* pNewObj = CreateSymbol( rInsert, nRow, nCol, -/*N*/ (SfxItemSet &)aDataPointAttr, -/*N*/ nLegendHeight ); //#50212# -/*N*/ if(pNewObj) -/*N*/ { -/*N*/ pNewObj->InsertUserData(new SchObjectId(CHOBJID_DIAGRAM_DATA)); -/*N*/ pRowLists[nRow]->NbcInsertObject(pNewObj); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ // Insert the line segment only if its starting point has a valid -/*N*/ // value. -/*N*/ if (bStartPointIsValid) -/*N*/ { -/*N*/ // Insert line. -/*N*/ XPolyPolygon aResult; -/*N*/ SchCalculationHelper::IntersectPolygonWithRectangle( pLine[ nRow - nLineStart ], -/*N*/ aClipRect, -/*N*/ aResult ); -/*N*/ if( aResult.Count()) -/*N*/ { -/*N*/ SdrPathObj* pLclObj = new SdrPathObj( OBJ_PLIN, aResult ); -/*N*/ pLclObj->InsertUserData( new SchObjectId( CHOBJID_DIAGRAM_ROWSLINE )); -/*N*/ pLclObj->InsertUserData( new SchDataRow( nRow )); -/*N*/ pRowLists[ nRow ]->NbcInsertObject( pLclObj, 0 ); -/*N*/ -/*N*/ // Set the line's attributes. -/*N*/ pLclObj->SetItemSet( rDataRowAttr ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ // Anfangspunkt des naechsten Datenpunkts = -/*N*/ // Endpunkt des aktuellen Datenpunkts -/*N*/ pLine[nRow-nLineStart][0] = pLine[nRow-nLineStart][1];//#50212# -/*N*/ bStartPointIsValid = TRUE; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ pRowLists[nRow]->NbcInsertObject(CreateRect (aObjRect, nCol, nRow, aDataPointAttr)); -/*N*/ } -/*N*/ -/*N*/ if ((SvxChartKindError) -/*N*/ ((const SfxInt32Item &) aDataPointAttr.Get (SCHATTR_STAT_KIND_ERROR)).GetValue () != -/*N*/ CHERROR_NONE) -/*?*/ {DBG_BF_ASSERT(0, "STRIP");} -/*N*/ -/*N*/ if(aDescr.Enabled()) -/*N*/ { -/*N*/ Point aPos(bIsLine ? pLine[nRow-nLineStart][1] : aObjRect.TopCenter() ); -/*N*/ aDescr.Insert(nCol,nRow,aDataPointAttr,aPos,FALSE,CHADJUST_BOTTOM_CENTER,pAxis); -/*N*/ } -/*N*/ } -/*N*/ else if (bIsLine) -/*N*/ { -/*N*/ // Remember that the current point may not be inserted. -/*?*/ bStartPointIsValid = FALSE; -/*N*/ } -/*N*/ -/*N*/ pBar->NextBar(); -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_STACKEDCOLUMN: -/*N*/ case CHSTYLE_2D_PERCENTCOLUMN: -/*N*/ case CHSTYLE_2D_LINE_STACKEDCOLUMN: -/*N*/ { -/*N*/ Pair aTopBottom(pAxis->Stack(fData,TRUE)); -/*N*/ Point aTopLeft(pBar->BarLeft(),aTopBottom.A()); -/*N*/ Point aBottomRight(pBar->BarRight(),aTopBottom.B()); -/*N*/ -/*N*/ -/*N*/ Rectangle aObjRect(aTopLeft, aBottomRight); -/*N*/ -/*N*/ BOOL bShow = (aObjRect.Bottom() >= aObjRect.Top()); -/*N*/ -/*N*/ //Stackedline-Chart benutzt dieses ObjectRect nicht => Bug #48970# -/*N*/ if (bIsLine) -/*?*/ bShow=TRUE;//#50212# -/*N*/ -/*N*/ if(fData==DBL_MIN) -/*N*/ { -/*?*/ bShow=FALSE; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // bShow includes Top == Bottom and that may be ok, if there is no data in the chart -/*N*/ // and > might also happen (difference 1 from rounding errors) -/*N*/ // AND if bShow is TRUE the following part fixes the problem -/*N*/ // so ASSERT => TRACE -/*N*/ CHART_TRACE1( "Create2DColChart bShow = %s", bShow? "True" : "False" ); -/*N*/ } -/*N*/ if(bLogarithm && (fData <= 0.0) ) -/*?*/ bShow=FALSE; -/*N*/ -/*N*/ if (bShow) -/*N*/ { -/*N*/ aObjRect.Justify(); -/*N*/ -/*N*/ if (bIsLine)//#50212# -/*N*/ { -/*?*/ pLine[nRow-nLineStart][1] = Point(pBar->Middle()//MIDPOS//zu umst?dlich: nPos + nPartWidth/2 - nGap -/*?*/ ,pAxis->GetPos(fData));//#50212# -/*?*/ -/*?*/ if (nCol == 0) -/*?*/ { -/*?*/ // Beim ersten Datenpunkt: Anfangspunkt = EndPunkt -/*?*/ pLine[nRow-nLineStart][0] = pLine[nRow-nLineStart][1];//#50212# -/*?*/ } -/*?*/ Point& rInsert = pLine[ nRow - nLineStart ][ 1 ]; -/*?*/ -/*?*/ if( aClipRect.IsInside( rInsert )) -/*?*/ { -/*?*/ SdrObject* pNewObj = CreateSymbol( rInsert, nRow, nCol, -/*?*/ (SfxItemSet &) aDataPointAttr, -/*?*/ nLegendHeight ); //#50212# -/*?*/ if(pNewObj) -/*?*/ { -/*?*/ pNewObj->InsertUserData(new SchObjectId(CHOBJID_DIAGRAM_DATA)); -/*?*/ pRowLists[nRow]->NbcInsertObject(pNewObj); -/*?*/ } -/*?*/ } -/*?*/ -/*?*/ // Insert line. -/*?*/ XPolyPolygon aResult; -/*?*/ SchCalculationHelper::IntersectPolygonWithRectangle( pLine[ nRow - nLineStart ], -/*?*/ aClipRect, -/*?*/ aResult ); -/*?*/ if( aResult.Count()) -/*?*/ { -/*?*/ SdrPathObj* pLclObj = new SdrPathObj( OBJ_PLIN, aResult ); -/*?*/ pLclObj->InsertUserData( new SchObjectId( CHOBJID_DIAGRAM_ROWSLINE )); -/*?*/ pLclObj->InsertUserData( new SchDataRow( nRow )); -/*?*/ pRowLists[ nRow ]->NbcInsertObject( pLclObj, 0 ); -/*?*/ -/*?*/ // Set the line's attributes. -/*?*/ pLclObj->SetItemSet( rDataRowAttr ); -/*?*/ } -/*?*/ -/*?*/ // Anfangspunkt des naechsten Datenpunkts = -/*?*/ // Endpunkt des aktuellen Datenpunkts -/*?*/ pLine[nRow-nLineStart][0] = pLine[nRow-nLineStart][1];//#50212# -/*N*/ } -/*N*/ else -/*N*/ { //#50116# -/*N*/ Rectangle aBarRect(aObjRect); -/*N*/ if(nBarPercentWidth<100 && nBarPercentWidth>0) -/*N*/ { -/*?*/ double fWidth=aBarRect.GetWidth(); -/*?*/ fWidth=fWidth*((double)nBarPercentWidth/100.0); -/*?*/ long nWidth=Round(fWidth); -/*?*/ long nDiff=(aBarRect.GetWidth()-nWidth); -/*?*/ -/*?*/ Size aSize=aBarRect.GetSize(); -/*?*/ aSize.Width()-=nDiff; -/*?*/ aBarRect.SetSize(aSize); -/*?*/ aBarRect.Move(nDiff/2,0); -/*N*/ } -/*N*/ pRowLists[nRow]->NbcInsertObject(CreateRect (aBarRect, nCol, nRow, aDataPointAttr)); -/*N*/ -/*N*/ BOOL bIsDownward=(BOOL)(fData < 0.0);//FALSE;//#51471# -/*N*/ -/*N*/ if(pTracePoint) //#50149# -/*N*/ { -/*?*/ if(nCol != 0) -/*?*/ { -/*?*/ Point aEndPoint=bIsDownward ? aBarRect.BottomLeft() : aBarRect.TopLeft();//#51471# -/*?*/ SdrPathObj* pLclObj = new SdrPathObj(pTracePoint[nRow],aEndPoint); -/*?*/ pLclObj->InsertUserData(new SchObjectId (0)); -/*?*/ pList->NbcInsertObject(pLclObj);//immer vorne, egal welche Achse -/*?*/ // Linie attributieren -/*?*/ -/*?*/ pLclObj->SetItemSet(rDataRowAttr); -/*?*/ -/*?*/ } -/*?*/ pTracePoint[nRow]=bIsDownward ? aBarRect.BottomRight() :aBarRect.TopRight();//#51471# -/*N*/ } -/*N*/ } -/*N*/ if(aDescr.Enabled()) -/*N*/ { -/*N*/ if(bIsLine) -/*?*/ aDescr.Insert(nCol,nRow,aDataPointAttr,pLine[nRow-nLineStart][1],FALSE,CHADJUST_BOTTOM_CENTER,pAxis); -/*N*/ else -/*N*/ aDescr.Insert(nCol,nRow,aDataPointAttr,aObjRect.Center(),FALSE,CHADJUST_CENTER_CENTER,pAxis); -/*N*/ } -/*N*/ } -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ case CHSTYLE_2D_BAR: -/*N*/ { -/*N*/ Point aTopLeft( pAxis->GetLower(fData),pBar->BarTop() ); -/*N*/ Point aRightBottom( pAxis->GetUpper(fData),pBar->BarBottom() ); -/*N*/ Rectangle aObjRect(aTopLeft,aRightBottom); -/*N*/ -/*N*/ BOOL bShow = (aObjRect.Right() >= aObjRect.Left()); -/*N*/ aObjRect.Justify(); -/*N*/ -/*N*/ if (!nCol && ((const SfxBoolItem &) rDataRowAttr.Get (SCHATTR_STAT_AVERAGE)).GetValue ()) -/*?*/ {DBG_BF_ASSERT(0, "STRIP"); } -/*N*/ -/*N*/ if ((bShow) && ((!bLogarithm && (fData != DBL_MIN)) || -/*N*/ (bLogarithm && (fData != DBL_MIN) && (fData > 0.0)))) -/*N*/ { -/*N*/ pRowLists[nRow]->NbcInsertObject(CreateRect (aObjRect, nCol, nRow, aDataPointAttr)); -/*N*/ -/*N*/ if ((SvxChartKindError) -/*N*/ ((const SfxInt32Item &) aDataPointAttr.Get (SCHATTR_STAT_KIND_ERROR)).GetValue () != -/*N*/ CHERROR_NONE) -/*?*/ {DBG_BF_ASSERT(0, "STRIP");} -/*N*/ -/*N*/ if(aDescr.Enabled()) -/*N*/ { -/*N*/ Point aPos(aObjRect.TopRight()); -/*N*/ aPos.Y()+=aObjRect.GetHeight() / 2; -/*N*/ aPos.X()+=500; -/*N*/ aDescr.Insert(nCol,nRow,aDataPointAttr,aPos,FALSE,CHADJUST_CENTER_LEFT,pAxis); -/*N*/ } -/*N*/ } -/*N*/ pBar->NextBar(); -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case CHSTYLE_2D_STACKEDBAR: -/*N*/ case CHSTYLE_2D_PERCENTBAR: -/*N*/ { -/*N*/ Pair aLeftRight(pAxis->Stack(fData,TRUE)); -/*N*/ Point aTopLeft(aLeftRight.A(),pBar->BarBottom()); -/*N*/ Point aBottomRight(aLeftRight.B(),pBar->BarTop()); -/*N*/ -/*N*/ Rectangle aObjRect(aTopLeft,aBottomRight); -/*N*/ -/*N*/ -/*N*/ if ((aObjRect.Right() >= aObjRect.Left()) && -/*N*/ ((!bLogarithm && (fData != DBL_MIN)) || -/*N*/ (bLogarithm && (fData != DBL_MIN) && (fData > 0.0)))) -/*N*/ { -/*N*/ aObjRect.Justify(); -/*N*/ -/*N*/ pObj = new SdrRectObj( aObjRect ); -/*N*/ pObj->SetModel( this ); -/*N*/ pObj = SetObjectAttr( pObj, CHOBJID_DIAGRAM_DATA, TRUE, TRUE, &aDataPointAttr ); -/*N*/ pObj->InsertUserData(new SchDataPoint(nCol, nRow)); -/*N*/ pRowLists[nRow]->NbcInsertObject(pObj); -/*N*/ -/*N*/ if(aDescr.Enabled()) -/*N*/ aDescr.Insert(nCol,nRow,aDataPointAttr,aObjRect.Center(),FALSE,CHADJUST_CENTER_CENTER,pAxis); -/*N*/ } -/*N*/ break; -/*N*/ } - default: break; -/*N*/ } -/*N*/ } //for nRow -/*N*/ aBarY1.NextCol(); -/*N*/ aBarY2.NextCol(); -/*N*/ }//for nCol -/*N*/ -/*N*/ aDescr.Build(TRUE); -/*N*/ delete[] pTracePoint;//#50149# -/*N*/ delete[] pLine;//#50212# -/*N*/ delete[] pRowLists; -/*N*/ delete[] pStatLists; -/*N*/ return pGroup; -/*N*/ } - - -/************************************************************************* -|* -|* Fl?chendiagramm erzeugen -|* case CHSTYLE_2D_LINE: -|* case CHSTYLE_2D_STACKEDLINE: -|* case CHSTYLE_2D_PERCENTLINE: -|* case CHSTYLE_2D_LINESYMBOLS : -|* case CHSTYLE_2D_STACKEDLINESYM : -|* case CHSTYLE_2D_PERCENTLINESYM : -|* case CHSTYLE_2D_CUBIC_SPLINE : -|* case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL : -|* case CHSTYLE_2D_B_SPLINE : -|* case CHSTYLE_2D_B_SPLINE_SYMBOL : -|* -\************************************************************************/ -/*N*/ BOOL ChartModel::HasStockLines( SvxChartStyle* pStyle ) -/*N*/ { -/*N*/ switch( pStyle? *pStyle: eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_STOCK_1: -/*N*/ case CHSTYLE_2D_STOCK_2: -/*N*/ case CHSTYLE_2D_STOCK_3: -/*N*/ case CHSTYLE_2D_STOCK_4: -/*N*/ return TRUE; -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ } -/*N*/ BOOL ChartModel::HasStockRects( SvxChartStyle* pStyle ) -/*N*/ { -/*N*/ switch( pStyle? *pStyle: eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_STOCK_2: -/*N*/ case CHSTYLE_2D_STOCK_4: -/*N*/ return TRUE; -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ } -/*N*/ BOOL ChartModel::HasStockBars( SvxChartStyle* pStyle ) -/*N*/ { -/*N*/ switch( pStyle? *pStyle: eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_STOCK_3: -/*N*/ case CHSTYLE_2D_STOCK_4: -/*N*/ return TRUE; -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ } -/*N*/ ChartAxis* ChartModel::GetAxisByUID(long nUId) -/*N*/ { -/*N*/ switch(nUId) -/*N*/ { -/*N*/ case CHART_AXIS_PRIMARY_X: -/*N*/ return pChartXAxis; -/*N*/ case CHART_AXIS_PRIMARY_Y: -/*N*/ return pChartYAxis; -/*N*/ case CHART_AXIS_PRIMARY_Z: -/*N*/ return pChartZAxis; -/*N*/ case CHART_AXIS_SECONDARY_Y: -/*N*/ return pChartBAxis; -/*N*/ case CHART_AXIS_SECONDARY_X: -/*N*/ return pChartAAxis; -/*N*/ } -/*N*/ OSL_TRACE( "ChartAxis not found: id=%ld", nUId ); -/*N*/ return pChartYAxis; -/*N*/ } -/*N*/ #define SchDataCol(a) SchDataRow(a) //erst mal testen..... (wird eh ne geklonte Klasse) - -/*N*/ void ChartModel::DrawStockLines( SdrObjList* pList, const Rectangle& rRect ) -/*N*/ { //und fuer Stock-Charts -/*N*/ -/*N*/ long nStart=HasStockBars() ? 1:0; -/*N*/ if(HasStockLines()) -/*N*/ { -/*N*/ -/*N*/ long nColCnt = GetColCount(); -/*N*/ long nRowCnt = GetRowCount(); -/*N*/ long nCol, nRow; -/*N*/ -/*N*/ SdrObject *pObj; -/*N*/ SdrObjList *pLineList,*pLossList=NULL,*pPlusList=NULL; -/*N*/ SchObjGroup *pLineGroup,*pLossGroup=NULL,*pPlusGroup=NULL; -/*N*/ -/*N*/ -/*N*/ ChartBarDescriptor* pBar(0); -/*N*/ aBarY2.Create(rRect,nColCnt,1); -/*N*/ aBarY1.Create(rRect,nColCnt,1); -/*N*/ -/*N*/ pLineGroup =(SchObjGroup*)CreateSimpleGroup(CHOBJID_DIAGRAM_STOCKLINE_GROUP,TRUE, TRUE); -/*N*/ pList->NbcInsertObject(pLineGroup); -/*N*/ pLineList = pLineGroup->GetSubList(); -/*N*/ -/*N*/ XPolygon aPolyStock(2); -/*N*/ -/*N*/ //StockRects: -/*N*/ long nLow,nHi; -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ BOOL bOK=FALSE; -/*N*/ nLow=nHi=0; -/*N*/ for (nRow = nStart; nRow < nRowCnt; nRow++) -/*N*/ { -/*N*/ if(GetAxisUID(nRow)==CHART_AXIS_SECONDARY_Y) -/*?*/ pBar=&aBarY2; -/*N*/ else -/*N*/ pBar=&aBarY1; -/*N*/ -/*N*/ ChartAxis *pAxis=GetAxisByUID(((const SfxInt32Item &)GetDataRowAttr(nRow).Get(SCHATTR_AXIS)).GetValue()); -/*N*/ double fData = GetData(nCol,nRow,FALSE); -/*N*/ if(fData != DBL_MIN) -/*N*/ { -/*N*/ bOK=TRUE; -/*N*/ long nYPos = pAxis->GetPos(fData); -/*N*/ -/*N*/ aPolyStock[0].X()=aPolyStock[1].X()=(USHORT)pBar->Middle(); -/*N*/ if(nRow==nStart)//geht auch sch?er: bInitialise (ToDo:) -/*N*/ { -/*N*/ aPolyStock[0].Y()=aPolyStock[1].Y()=(USHORT) nYPos; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if((USHORT)nYPos > aPolyStock[0].Y()) -/*N*/ aPolyStock[0].Y()=(USHORT)nYPos; -/*N*/ if((USHORT)nYPos < aPolyStock[1].Y()) -/*N*/ aPolyStock[1].Y()=(USHORT)nYPos; -/*N*/ } -/*N*/ switch(nRow-nStart)//StockRects -/*N*/ { -/*N*/ case 0: -/*N*/ nLow=nYPos; -/*N*/ break; -/*N*/ case 3: -/*N*/ nHi=nYPos; -/*N*/ break; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ if(bOK) -/*N*/ { -/*N*/ pObj = new SdrPathObj(OBJ_PLIN, aPolyStock); -/*N*/ pObj->InsertUserData(new SchObjectId (CHOBJID_DIAGRAM_STOCKLINE)); -/*N*/ pObj->InsertUserData(new SchDataCol((short)nCol)); -/*N*/ pLineList->NbcInsertObject(pObj,LIST_APPEND); -/*N*/ -/*N*/ pObj->SetItemSet(*pStockLineAttr); -/*N*/ -/*N*/ if(HasStockRects()&&nRowCnt>3) -/*N*/ { -/*N*/ BOOL bLoss=TRUE; -/*N*/ if(nLow>nHi) -/*N*/ { -/*N*/ long nTmp=nLow; -/*N*/ nLow=nHi; -/*N*/ nHi=nTmp; -/*N*/ bLoss=FALSE; -/*N*/ } -/*N*/ -/*N*/ if(!pLossList&&bLoss) -/*N*/ { -/*N*/ pLossGroup =(SchObjGroup*)CreateSimpleGroup(CHOBJID_DIAGRAM_STOCKLOSS_GROUP,TRUE, TRUE); -/*N*/ pList->NbcInsertObject(pLossGroup); -/*N*/ pLossList = pLossGroup->GetSubList(); -/*N*/ } -/*N*/ if(!pPlusList && !bLoss) -/*N*/ { -/*N*/ pPlusGroup =(SchObjGroup*)CreateSimpleGroup(CHOBJID_DIAGRAM_STOCKPLUS_GROUP,TRUE, TRUE); -/*N*/ pList->NbcInsertObject(pPlusGroup); -/*N*/ pPlusList = pPlusGroup->GetSubList(); -/*N*/ } -/*N*/ pObj = new SdrRectObj(Rectangle(Point(pBar->BarLeft(),nLow),Size(pBar->BarWidth(),nHi-nLow))); -/*N*/ pObj->InsertUserData(new SchObjectId (CHOBJID_DIAGRAM_STOCKRECT)); -/*N*/ pObj->InsertUserData(new SchDataCol((short)nCol)); -/*N*/ if(bLoss) -/*N*/ { -/*N*/ pLossList->NbcInsertObject(pObj,LIST_APPEND); -/*N*/ -/*N*/ pObj->SetItemSet(*pStockLossAttr); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ pPlusList->NbcInsertObject(pObj,LIST_APPEND); -/*N*/ -/*N*/ pObj->SetItemSet(*pStockPlusAttr); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ aBarY1.NextCol(); -/*N*/ aBarY2.NextCol(); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ void ChartModel::DrawStockBars(SdrObjList* pList,const Rectangle& aRect) -/*N*/ { -/*N*/ const long nRow = 0; -/*N*/ -/*N*/ const SfxItemSet& rDataRowAttr = GetDataRowAttr(nRow); -/*N*/ -/*N*/ long nColCnt = GetColCount(); -/*N*/ -/*N*/ ChartBarDescriptor* pBar; -/*N*/ long nAxisUID=GetAxisUID(nRow); -/*N*/ switch(nAxisUID) -/*N*/ { -/*N*/ case CHART_AXIS_SECONDARY_Y: -/*N*/ aBarY2.Create(aRect,nColCnt,1); -/*N*/ pBar=&aBarY2; -/*N*/ break; -/*N*/ default: -/*N*/ aBarY1.Create(aRect,nColCnt,1); -/*N*/ pBar=&aBarY1; -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ if(GetRowCount()&&HasStockBars()) -/*N*/ { -/*N*/ ChartAxis *pAxis=GetAxisByUID(((const SfxInt32Item &)rDataRowAttr.Get(SCHATTR_AXIS)).GetValue()); -/*N*/ long nCol; -/*N*/ -/*N*/ SdrObjList *pBarList; -/*N*/ -/*N*/ SchObjGroup *pBarGroup; -/*N*/ -/*N*/ pBarGroup =(SchObjGroup*)CreateSimpleGroup(CHOBJID_DIAGRAM_ROWGROUP,TRUE, TRUE); -/*N*/ pBarGroup->InsertUserData(new SchDataRow(nRow)); -/*N*/ -/*N*/ pList->NbcInsertObject(pBarGroup); -/*N*/ pBarList = pBarGroup->GetSubList(); -/*N*/ -/*N*/ //Statistik: -/*N*/ if ( ((const SfxBoolItem &) rDataRowAttr.Get (SCHATTR_STAT_AVERAGE)).GetValue ()) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ SfxItemSet aDataPointAttr(GetFullDataPointAttr(nCol,nRow)); -/*N*/ -/*N*/ -/*N*/ double fData = GetData(nCol,nRow,FALSE); -/*N*/ long nHi = pAxis->GetPos(fData); -/*N*/ long nLow= pAxis->GetPosOrigin(); -/*N*/ -/*N*/ if(fData != DBL_MIN) -/*N*/ { -/*N*/ Rectangle aObjRect(Point(pBar->BarLeft(),nLow),Size(pBar->BarWidth(),nHi-nLow)); -/*N*/ -/*N*/ pBarList->NbcInsertObject(CreateRect(aObjRect,nCol,nRow,aDataPointAttr)); -/*N*/ -/*N*/ if ((SvxChartKindError) -/*N*/ ((const SfxInt32Item &) aDataPointAttr.Get (SCHATTR_STAT_KIND_ERROR)).GetValue () != -/*N*/ CHERROR_NONE) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*N*/ -/*N*/ -/*N*/ // ***************************** Description ***************************** -/*N*/ SvxChartDataDescr eDescr = ((const SvxChartDataDescrItem&)aDataPointAttr. -/*N*/ Get(SCHATTR_DATADESCR_DESCR)).GetValue(); -/*N*/ -/*N*/ if((eDescr!=CHDESCR_NONE)&&bShowDataDescr) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } -/*N*/ // ************************* end description ******************************* -/*N*/ } -/*N*/ pBar->NextCol(); -/*N*/ } -/*N*/ } -/*N*/ } - - -/*N*/ SdrObjGroup* ChartModel::Create2DRowLineChart(Rectangle aRect) -/*N*/ { -/*N*/ BOOL bPartDescr=FALSE; -/*N*/ if(HasStockLines()) -/*N*/ bPartDescr=TRUE; -/*N*/ -/*N*/ SchObjGroup *pGroup; -/*N*/ SdrObjList *pList; -/*N*/ CreateChartGroup (pGroup, pList); -/*N*/ BOOL bStacked = IsStacked(); -/*N*/ USHORT eStackMode = bStacked ? CHSTACK_OVERLAP : CHSTACK_NONE; -/*N*/ Create2DBackplane(aRect, *pList, bPartDescr, eStackMode); -/*N*/ -/*N*/ Rectangle aClipRect( aRect ); -/*N*/ aClipRect.Right() += 1; -/*N*/ aClipRect.Top() -= 1; -/*N*/ -/*N*/ SdrObject *pObj; -/*N*/ long nColCnt = GetColCount(); -/*N*/ long nRowCnt = GetRowCount(); -/*N*/ long nCol, nRow; -/*N*/ -/*N*/ BOOL bPercent = IsPercent(); -/*N*/ -/*N*/ //ToDo: XAchse-Logarithmus auf FALSE erzwingen (???) -/*N*/ -/*N*/ long nBackColCnt = (bPartDescr) ? nColCnt +1: nColCnt ; -/*N*/ -/*N*/ if (nColCnt > 1) -/*N*/ { -/*N*/ nBackColCnt--; -/*N*/ } -/*N*/ -/*N*/ long nPartWidth = aRect.GetWidth() / nBackColCnt; -/*N*/ double fPartWidth = ((double) aRect.GetWidth() / (double) nBackColCnt); -/*N*/ -/*N*/ SdrObjList** pRowLists = new SdrObjList*[nRowCnt]; -/*N*/ SdrObjList** pStatLists = new SdrObjList*[nRowCnt]; -/*N*/ -/*N*/ ChartDataDescription aDescr(nColCnt,nRowCnt,pList,this,bShowDataDescr); -/*N*/ -/*N*/ //Berechnung von nLegendHeigth: -/*N*/ Size aLegendSize (((SvxFontWidthItem &) pLegendAttr->Get(EE_CHAR_FONTWIDTH)).GetWidth(), -/*N*/ ((SvxFontHeightItem &) pLegendAttr->Get(EE_CHAR_FONTHEIGHT)).GetHeight()); -/*N*/ -/*N*/ //#54884# Was soll das hier? Create2DRowLineChart -/*N*/ OutputDevice * pRefDev = GetRefDevice(); -/*N*/ if(pRefDev) -/*N*/ aLegendSize = pRefDev->PixelToLogic (pRefDev->LogicToPixel (aLegendSize)); -/*N*/ else -/*N*/ OSL_FAIL("ChartModel: no RefDevice"); -/*N*/ -/*N*/ long nLegendHeight = aLegendSize.Height () * 9 / 10; -/*N*/ -/*N*/ Polygon aPolygon( nColCnt + 16 ); // +4 -> +16: let some more points be possible. Is set to exact size later -/*N*/ -/*N*/ //Ab hier speziell fuer (Sp)Line-Charts: -/*N*/ XPolygon *pSpline = new XPolygon(nColCnt * nGranularity); -/*N*/ -/*N*/ long nStartX=aRect.Left(); -/*N*/ if(bPartDescr) -/*N*/ nStartX+=nPartWidth/2; -/*N*/ -/*N*/ if(HasStockBars()) -/*N*/ DrawStockBars( pList, aRect ); -/*N*/ if(HasStockLines()) -/*N*/ DrawStockLines( pList, aRect ); -/*N*/ -/*N*/ long nStart=HasStockBars() ? 1: 0; -/*N*/ -/*N*/ long nAllObjects = pList->GetObjCount () - 1; -/*N*/ -/*N*/ for (nRow = nStart; nRow < nRowCnt; nRow++) -/*N*/ { -/*N*/ BOOL bArea=IsArea(nRow); -/*N*/ const SfxItemSet &rDataRowAttr = GetDataRowAttr(nRow); -/*N*/ long nAxisUId = ((const SfxInt32Item &)rDataRowAttr.Get(SCHATTR_AXIS)).GetValue(); -/*N*/ ChartAxis *pAxis=GetAxisByUID(nAxisUId); -/*N*/ -/*N*/ long nPos = nStartX; -/*N*/ double fPos = nStartX; -/*N*/ USHORT nPoints = 0; -/*N*/ -/*N*/ SchObjGroup *pRowGroup =(SchObjGroup*)CreateSimpleGroup(CHOBJID_DIAGRAM_ROWGROUP,TRUE, TRUE); -/*N*/ SchObjGroup *pStatGroup=(SchObjGroup*)CreateSimpleGroup(CHOBJID_DIAGRAM_STATISTICS_GROUP,TRUE,TRUE); -/*N*/ -/*N*/ pRowGroup->InsertUserData(new SchDataRow((short)nRow)); -/*N*/ -/*N*/ if(bArea) -/*N*/ pList->NbcInsertObject(pRowGroup, nAllObjects); -/*N*/ else -/*N*/ pList->NbcInsertObject(pRowGroup); -/*N*/ -/*N*/ pRowLists[nRow] = pRowGroup->GetSubList(); -/*N*/ -/*N*/ pStatGroup->InsertUserData(new SchDataRow((short)nRow)); -/*N*/ pList->NbcInsertObject(pStatGroup); -/*N*/ pStatLists [nRow] = pStatGroup->GetSubList(); -/*N*/ -/*N*/ if( ! bStacked ) -/*N*/ { -/*N*/ if (((const SfxBoolItem &) rDataRowAttr.Get (SCHATTR_STAT_AVERAGE)).GetValue ()) -/*?*/ {DBG_BF_ASSERT(0, "STRIP"); } -/*N*/ } -/*N*/ -/*N*/ for (nCol = 0; nCol < nColCnt; nCol++) -/*N*/ { -/*N*/ SfxItemSet aDataPointAttr(rDataRowAttr);//#63904# -/*N*/ MergeDataPointAttr(aDataPointAttr,nCol,nRow); -/*N*/ -/*N*/ double fData = GetData(nCol, nRow, bPercent); -/*N*/ -/*N*/ BOOL bLogarithm = pAxis->IsLogarithm(); -/*N*/ BOOL bValidData=((fData!=DBL_MIN)&&(!bLogarithm||(bLogarithm&&(fData>0.0)))); -/*N*/ -/*N*/ if(!bValidData && bStacked) -/*N*/ { -/*N*/ fData = 0.0; -/*N*/ bValidData = TRUE; -/*N*/ } -/*N*/ -/*N*/ // *****************************end Data Valid? *************************** -/*N*/ -/*N*/ if (bValidData) -/*N*/ { -/*N*/ if(eStackMode != CHSTACK_NONE) -/*N*/ fData = pAxis->StackColData(fData,nCol,nColCnt); -/*N*/ -/*N*/ long nYPos = pAxis->GetPos(fData); -/*N*/ -/*N*/ aPolygon[nPoints].X() = nPos; -/*N*/ aPolygon[nPoints].Y() = nYPos; -/*N*/ -/*N*/ nPoints++; -/*N*/ -/*N*/ if (HasSymbols(nRow)) -/*N*/ { -/*N*/ -/*N*/ Point& rInsert = aPolygon[nPoints - 1]; -/*N*/ -/*N*/ if( aClipRect.IsInside( rInsert ) ) -/*N*/ { -/*N*/ SdrObject *pNewObj = CreateSymbol( rInsert, nRow, nCol, -/*N*/ (SfxItemSet &) aDataPointAttr, nLegendHeight ); -/*N*/ if(pNewObj) -/*N*/ { -/*N*/ pNewObj->InsertUserData(new SchObjectId(CHOBJID_DIAGRAM_DATA)); -/*N*/ pRowLists[nRow]->NbcInsertObject(pNewObj); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if (!bStacked) -/*N*/ { -/*N*/ if ((SvxChartKindError) -/*N*/ ((const SfxInt32Item &)aDataPointAttr.Get(SCHATTR_STAT_KIND_ERROR)).GetValue () != CHERROR_NONE) -/*?*/ {DBG_BF_ASSERT(0, "STRIP"); } -/*N*/ } -/*N*/ -/*N*/ if(aDescr.Enabled()) -/*N*/ { -/*N*/ Point aPos(aPolygon[nPoints-1]); -/*N*/ if(aPos.X() == aRect.Left()) -/*N*/ { -/*N*/ aPos.X()+=50; -/*N*/ aDescr.Insert(nCol,nRow,aDataPointAttr,aPos,FALSE,CHADJUST_BOTTOM_LEFT,pAxis); -/*N*/ } -/*N*/ else -/*N*/ aDescr.Insert(nCol,nRow,aDataPointAttr,aPos,FALSE,CHADJUST_BOTTOM_CENTER,pAxis); -/*N*/ } -/*N*/ // ************************* end description ******************************* -/*N*/ } -/*N*/ else if( bArea ) // invalid data, area -/*N*/ { -/*?*/ if(eStackMode != CHSTACK_NONE) -/*?*/ fData = pAxis->StackColData(fData,nCol,nColCnt); -/*?*/ long nYPos = pAxis->GetPos(0.0); -/*?*/ //fehlende Werte werden hier als 0 interpretiert - weglassen des BlockInhalts w?e Interpolation! -/*?*/ aPolygon[nPoints].X() = nPos; -/*?*/ aPolygon[nPoints].Y() = nYPos; -/*?*/ nPoints++; -/*N*/ } -/*N*/ else // invalid data, no area -/*N*/ { -/*?*/ if( nPoints ) -/*?*/ { -/*?*/ if( nPoints > 1 ) -/*?*/ { -/*?*/ if( IsSplineChart() ) -/*?*/ { -/*?*/ Polygon aNewPoly( nPoints ); -/*?*/ for( USHORT i = 0; i < nPoints; i++ ) -/*?*/ aNewPoly[ i ] = aPolygon[ i ]; -/*?*/ -/*?*/ XPolygon aXPoly( aNewPoly ); -/*?*/ if ((eChartStyle == CHSTYLE_2D_CUBIC_SPLINE) || -/*?*/ (eChartStyle == CHSTYLE_2D_CUBIC_SPLINE_SYMBOL)) -/*?*/ { -/*?*/ CubicSpline( aXPoly, nPoints - 1, nGranularity, *pSpline ); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ approxMesh( nGranularity, *pSpline, aXPoly, nPoints - 1, nSplineDepth ); -/*?*/ } -/*?*/ -/*?*/ XPolygon aSplinePoly( *pSpline ); -/*?*/ aSplinePoly.SetSize( (nPoints - 1) * nGranularity ); -/*?*/ -/*?*/ // #67488# crop polygon -/*?*/ XPolyPolygon aResult; -/*?*/ SchCalculationHelper::IntersectPolygonWithRectangle( aSplinePoly, aClipRect, aResult ); -/*?*/ pObj = new SdrPathObj( OBJ_PLIN, aResult ); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ Polygon aNewPoly( nPoints ); -/*?*/ for( USHORT i = 0; i < nPoints; i++ ) -/*?*/ aNewPoly[ i ] = aPolygon[ i ]; -/*?*/ -/*?*/ // #67488# crop polygon -/*?*/ XPolyPolygon aResult; -/*?*/ XPolygon aXPoly( aNewPoly ); -/*?*/ -/*?*/ SchCalculationHelper::IntersectPolygonWithRectangle( aXPoly, aClipRect, aResult ); -/*?*/ pObj = new SdrPathObj( OBJ_PLIN, aResult ); -/*?*/ } -/*?*/ -/*?*/ pObj->InsertUserData( new SchObjectId( CHOBJID_DIAGRAM_ROWSLINE )); -/*?*/ pObj->InsertUserData( new SchDataRow( (short)nRow )); -/*?*/ pRowLists[ nRow ]->NbcInsertObject( pObj, 0 ); //#54870# put line to background, so symbol is in front -/*?*/ -/*?*/ pObj->SetItemSet( rDataRowAttr); -/*?*/ -/*?*/ } -/*?*/ } -/*?*/ nPoints = 0; -/*N*/ } -/*N*/ -/*N*/ fPos += fPartWidth; -/*N*/ nPos = long(fPos); -/*N*/ } //for nCol -/*N*/ -/*N*/ if( nPoints ) -/*N*/ { -/*N*/ pObj = NULL; -/*N*/ -/*N*/ if( IsSplineChart() ) -/*N*/ { -/*N*/ if( nPoints > 1 ) -/*N*/ { -/*N*/ Polygon aNewPoly( nPoints ); -/*N*/ for( USHORT i = 0; i < nPoints; i++ ) -/*N*/ aNewPoly[ i ] = aPolygon[ i ]; -/*N*/ -/*N*/ XPolygon aXPoly( aNewPoly ); -/*N*/ if ((eChartStyle == CHSTYLE_2D_CUBIC_SPLINE) || -/*N*/ (eChartStyle == CHSTYLE_2D_CUBIC_SPLINE_SYMBOL)) -/*N*/ { -/*N*/ CubicSpline( aXPoly, nPoints - 1,nGranularity, *pSpline ); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ approxMesh( nGranularity, *pSpline, aXPoly, nPoints - 1, nSplineDepth ); -/*N*/ } -/*N*/ -/*N*/ XPolygon aSplinePoly( *pSpline ); -/*N*/ aSplinePoly.SetSize( (nPoints - 1) * nGranularity ); -/*N*/ -/*N*/ // #67488# crop polygon -/*N*/ XPolyPolygon aResult; -/*N*/ SchCalculationHelper::IntersectPolygonWithRectangle( aSplinePoly, aClipRect, aResult ); -/*N*/ pObj = new SdrPathObj( OBJ_PLIN, aResult ); -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if( bArea ) -/*N*/ { -/*N*/ Polygon aNewPoly( nPoints + 3 ); -/*N*/ for( USHORT i = 0; i < nPoints + 3; i++ ) -/*N*/ aNewPoly[ i ] = aPolygon[ i ]; -/*N*/ XPolygon aBase( 2 ); -/*N*/ -/*N*/ pAxis->GridLine( aBase, pAxis->GetPosOrigin() ); -/*N*/ aNewPoly[ nPoints ] = aBase[ 1 ]; -/*N*/ aNewPoly[ nPoints + 1 ] = aBase[ 0 ]; -/*N*/ aNewPoly[ nPoints + 2 ] = aNewPoly[ 0 ]; -/*N*/ -/*N*/ // #67488# crop polygon -/*N*/ aNewPoly.Clip( aClipRect ); -/*N*/ XPolygon aXPoly( aNewPoly ); -/*N*/ -/*N*/ pObj = new SdrPathObj( OBJ_POLY, aXPoly ); -/*N*/ pObj->SetModel( this ); -/*N*/ SetObjectAttr( pObj,CHOBJID_DIAGRAM_ROWS, TRUE, TRUE, (SfxItemSet *)&rDataRowAttr ); -/*N*/ } -/*N*/ else if( nPoints > 1 ) // line -/*N*/ { -/*N*/ // #67488# crop polygon -/*N*/ Polygon aNewPoly( nPoints ); -/*N*/ for( USHORT i = 0; i < nPoints; i++ ) -/*N*/ aNewPoly[ i ] = aPolygon[ i ]; -/*N*/ -/*N*/ XPolyPolygon aResult; -/*N*/ XPolygon aXPoly( aNewPoly ); -/*N*/ -/*N*/ SchCalculationHelper::IntersectPolygonWithRectangle( aXPoly, aClipRect, aResult ); -/*N*/ pObj = new SdrPathObj( OBJ_PLIN, aResult ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if( pObj ) -/*N*/ { -/*N*/ pObj->InsertUserData( new SchObjectId( CHOBJID_DIAGRAM_ROWSLINE )); -/*N*/ -/*N*/ pObj->SetItemSet( rDataRowAttr); -/*N*/ -/*N*/ pObj->InsertUserData( new SchDataRow( (short)nRow )); -/*N*/ -/*N*/ if( ! bArea || (bArea && IsStacked()) ) -/*N*/ pRowLists[ nRow ]->NbcInsertObject( pObj, 0 ); -/*N*/ else -/*N*/ pRowLists[ nRow ]->NbcInsertObject( pObj ); -/*N*/ } -/*N*/ } // if( nPoints ) -/*N*/ } //for nRow -/*N*/ -/*N*/ delete pSpline; -/*N*/ -/*N*/ //Ab hier wieder wie in Create2DRow(Area)Chart: -/*N*/ -/*N*/ aDescr.Build(TRUE); -/*N*/ delete[] pRowLists; -/*N*/ delete[] pStatLists; -/*N*/ return pGroup; -/*N*/ } - -/*N*/ bool ChartModel::UsesSourceFormat( long nAxisUID, SfxItemSet** pItemSetPointer /* = NULL */ ) -/*N*/ { -/*N*/ const SfxPoolItem* pPoolItem = NULL; -/*N*/ ChartAxis* pAxis = NULL; -/*N*/ SfxItemSet* pItemSet = NULL; -/*N*/ -/*N*/ if( ( pAxis = GetAxisByUID( nAxisUID )) && -/*N*/ ( pItemSet = pAxis->GetItemSet())) -/*N*/ { -/*N*/ if( pItemSetPointer ) -/*N*/ *pItemSetPointer = pItemSet; -/*N*/ -/*N*/ // return true if item is not set (default) or it is set to TRUE -/*N*/ return ( ( SFX_ITEM_SET != -/*N*/ pItemSet->GetItemState( SID_ATTR_NUMBERFORMAT_SOURCE, FALSE, &pPoolItem )) || -/*N*/ ( SAL_STATIC_CAST( const SfxBoolItem*, pPoolItem )->GetValue() == TRUE )); -/*N*/ } -/*N*/ -/*N*/ return false; -/*N*/ } - -// checks if the numberformat was set in MemChart (by Calc/Writer) -// if this is the case the axis attributes are overwritten and TRUE is returned -/*N*/ BOOL ChartModel::CheckForNewAxisNumFormat() -/*N*/ { -/*N*/ // Don't set the numberformater for a percent chart. -/*N*/ // or when formats are not set from the outside -/*N*/ if ( IsPercentChart() || -/*N*/ UsesOwnNumberFormatter() ) -/*N*/ return FALSE; -/*N*/ -/*N*/ // if source format is used, update -/*N*/ const SfxPoolItem* pPoolItem = NULL; -/*N*/ SfxItemSet* pItemSet = NULL; -/*N*/ SfxItemSet* pItemSetA = NULL; -/*N*/ bool bRet = false; -/*N*/ long nRow = 0; -/*N*/ INT32 nFmt = -1; -/*N*/ USHORT nSchattr = IsPercentChart() -/*N*/ ? SCHATTR_AXIS_NUMFMTPERCENT -/*N*/ : SCHATTR_AXIS_NUMFMT; -/*N*/ -/*N*/ // x axis -/*N*/ if( IsXYChart()) -/*N*/ { -/*N*/ bool bXUsesSrcFmt = UsesSourceFormat( CHAXIS_AXIS_X, &pItemSet ); -/*N*/ bool bAUsesSrcFmt = UsesSourceFormat( CHAXIS_AXIS_A, &pItemSetA ); -/*N*/ if( bXUsesSrcFmt || bAUsesSrcFmt ) -/*N*/ { -/*N*/ // use source format for x-axis -/*N*/ nFmt = IsDataSwitched() -/*N*/ ? pChartData->GetTransNumFormatIdCol( nRow ) -/*N*/ : pChartData->GetTransNumFormatIdRow( nRow ); -/*N*/ } -/*N*/ -/*N*/ if( bXUsesSrcFmt && pItemSet && nFmt != -1 ) -/*N*/ { -/*N*/ pItemSet->Put( SfxUInt32Item( nSchattr, nFmt )); -/*N*/ bRet = true; -/*N*/ nXLastNumFmt = nFmt; // for binary file format only -/*N*/ } -/*N*/ if( bAUsesSrcFmt && pItemSetA && nFmt != -1 ) -/*N*/ { -/*N*/ pItemSetA->Put( SfxUInt32Item( nSchattr, nFmt )); -/*N*/ bRet = true; -/*N*/ nXLastNumFmt = nFmt; -/*N*/ } -/*N*/ nRow++; -/*N*/ } -/*N*/ -/*N*/ if( HasSecondYAxis() ) // check both y axes -/*N*/ { -/*N*/ // seek first series using second axis -/*N*/ bool bYAxisFound = false; -/*N*/ bool bBAxisFound = false; -/*N*/ long nMaxRow = GetRowCount(); -/*N*/ -/*N*/ for( ; nRow < nMaxRow; nRow++ ) -/*N*/ { -/*N*/ if( ! bBAxisFound && -/*N*/ SFX_ITEM_SET == -/*N*/ GetDataRowAttr( nRow ).GetItemState( SCHATTR_AXIS, FALSE, &pPoolItem ) && -/*N*/ SAL_STATIC_CAST( const SfxInt32Item*, pPoolItem )->GetValue() == CHART_AXIS_SECONDARY_Y ) -/*N*/ { -/*N*/ if( UsesSourceFormat( CHAXIS_AXIS_B, &pItemSet ) && -/*N*/ pItemSet ) -/*N*/ { -/*N*/ // use source format for secondary y-axis -/*N*/ nFmt = IsDataSwitched() -/*N*/ ? pChartData->GetTransNumFormatIdCol( nRow ) -/*N*/ : pChartData->GetTransNumFormatIdRow( nRow ); -/*N*/ -/*N*/ if( nFmt != -1 ) -/*N*/ { -/*N*/ pItemSet->Put( SfxUInt32Item( nSchattr, nFmt )); -/*N*/ bRet = true; -/*N*/ nBLastNumFmt = nFmt; // for binary file format only -/*N*/ } -/*N*/ } -/*N*/ bBAxisFound = true; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ if( ! bYAxisFound && -/*N*/ UsesSourceFormat( CHAXIS_AXIS_Y, &pItemSet ) && -/*N*/ pItemSet ) -/*N*/ { -/*N*/ // use source format for primary y-axis -/*N*/ nFmt = IsDataSwitched() -/*N*/ ? pChartData->GetTransNumFormatIdCol( nRow ) -/*N*/ : pChartData->GetTransNumFormatIdRow( nRow ); -/*N*/ -/*N*/ if( nFmt != -1 ) -/*N*/ { -/*N*/ pItemSet->Put( SfxUInt32Item( nSchattr, nFmt )); -/*N*/ bRet = true; -/*N*/ nYLastNumFmt = nFmt; // for binary file format only -/*N*/ } -/*N*/ } -/*N*/ bYAxisFound = true; -/*N*/ } -/*N*/ -/*N*/ if( bYAxisFound && bBAxisFound ) -/*N*/ break; -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // get first setting -/*N*/ if( nRow < GetRowCount() && -/*N*/ UsesSourceFormat( CHAXIS_AXIS_Y, &pItemSet ) && -/*N*/ pItemSet ) -/*N*/ { -/*N*/ nFmt = IsDataSwitched() -/*N*/ ? pChartData->GetTransNumFormatIdCol( nRow ) -/*N*/ : pChartData->GetTransNumFormatIdRow( nRow ); -/*N*/ -/*N*/ if( nFmt != -1 ) -/*N*/ { -/*N*/ pItemSet->Put( SfxUInt32Item( nSchattr, nFmt )); -/*N*/ bRet = true; -/*N*/ nYLastNumFmt = nFmt; // for binary file format only -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ return bRet; -/*N*/ } - -/*N*/ BOOL ChartModel::HasDefaultGrayArea( SvxChartStyle* pStyle ) const -/*N*/ { -/*N*/ SvxChartStyle eStyle = pStyle? *pStyle: eChartStyle; -/*N*/ -/*N*/ switch( eStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_NET: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS: -/*N*/ case CHSTYLE_2D_NET_STACK: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_STACK: -/*N*/ case CHSTYLE_2D_NET_PERCENT: -/*N*/ case CHSTYLE_2D_NET_SYMBOLS_PERCENT: -/*N*/ return TRUE; -/*N*/ -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ -/*N*/ return FALSE; -/*N*/ } - -/*N*/ BOOL ChartModel::HasDefaultGrayWall( SvxChartStyle* pStyle ) const -/*N*/ { -/*N*/ SvxChartStyle eStyle = pStyle? *pStyle: eChartStyle; -/*N*/ -/*N*/ switch( eStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_LINE: -/*N*/ case CHSTYLE_2D_STACKEDLINE: -/*N*/ case CHSTYLE_2D_PERCENTLINE: -/*N*/ case CHSTYLE_2D_XY: -/*N*/ case CHSTYLE_2D_LINESYMBOLS: -/*N*/ case CHSTYLE_2D_STACKEDLINESYM: -/*N*/ case CHSTYLE_2D_PERCENTLINESYM: -/*N*/ case CHSTYLE_2D_XYSYMBOLS: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL: -/*N*/ case CHSTYLE_2D_B_SPLINE: -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_XY: -/*N*/ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY: -/*N*/ case CHSTYLE_2D_B_SPLINE_XY: -/*N*/ case CHSTYLE_2D_B_SPLINE_SYMBOL_XY: -/*N*/ case CHSTYLE_2D_XY_LINE: -/*N*/ return TRUE; -/*N*/ -/*N*/ default: -/*N*/ return FALSE; -/*N*/ } -/*N*/ -/*N*/ return FALSE; -/*N*/ } - -/*N*/ using namespace ::com::sun::star; - -/*N*/ void ChartModel::SetNumberFormatter( SvNumberFormatter* pFormatter ) -/*N*/ { -/*N*/ pNumFormatter = pFormatter; -/*N*/ -/*N*/ pChartXAxis->SetNumberFormatter( pNumFormatter ); -/*N*/ pChartYAxis->SetNumberFormatter( pNumFormatter ); -/*N*/ pChartZAxis->SetNumberFormatter( pNumFormatter ); -/*N*/ pChartAAxis->SetNumberFormatter( pNumFormatter ); -/*N*/ pChartBAxis->SetNumberFormatter( pNumFormatter ); -/*N*/ -/*N*/ // update UNO Numberformatter Wrapper -/*N*/ SfxObjectShell* pMyDocShell = GetObjectShell(); -/*N*/ if( pMyDocShell != NULL ) -/*N*/ { -/*N*/ ChXChartDocument* pUnoDoc = ChXChartDocument::getImplementation( pMyDocShell->GetModel()); -/*N*/ DBG_ASSERT( pUnoDoc, "Couldn't get XModel implementation" ); -/*N*/ if( pUnoDoc != NULL ) -/*N*/ { -/*N*/ // invalidate old number formatter -/*N*/ pUnoDoc->ClearNumberFormatter(); -/*N*/ } -/*N*/ } -/*N*/ } - -/*N*/ void ChartModel::TranslateAllNumFormatIds( SvNumberFormatterIndexTable* pTransTable ) -/*N*/ { -/*N*/ if( pChartXAxis->TranslateMergedNumFormat( pTransTable ) && -/*N*/ nXLastNumFmt >= 0 ) -/*N*/ {DBG_BF_ASSERT(0, "STRIP");} -/*N*/ -/*N*/ if( pChartYAxis->TranslateMergedNumFormat( pTransTable ) && -/*N*/ nYLastNumFmt >= 0 ) -/*N*/ {DBG_BF_ASSERT(0, "STRIP");} -/*N*/ -/*N*/ pChartZAxis->TranslateMergedNumFormat( pTransTable ); -/*N*/ pChartAAxis->TranslateMergedNumFormat( pTransTable ); -/*N*/ -/*N*/ if( pChartBAxis->TranslateMergedNumFormat( pTransTable ) && -/*N*/ nBLastNumFmt >= 0 ) -/*N*/ {DBG_BF_ASSERT(0, "STRIP");} -/*N*/ } - -/*N*/ void ChartModel::SetNumLinesColChart(const long nSet, BOOL bForceStyleChange) -/*N*/ { -/*N*/ const long nOldNumLines = nNumLinesInColChart; -/*N*/ const long nLastSeries = GetRowCount() - 1; -/*N*/ -/*N*/ switch( eChartStyle ) -/*N*/ { -/*N*/ case CHSTYLE_2D_COLUMN: // only types supporting mixing with lines -/*N*/ case CHSTYLE_2D_STACKEDCOLUMN: -/*N*/ case CHSTYLE_2D_PERCENTCOLUMN: -/*N*/ case CHSTYLE_2D_LINE_COLUMN: -/*N*/ case CHSTYLE_2D_LINE_STACKEDCOLUMN: -/*N*/ if( bForceStyleChange ) -/*N*/ { -/*N*/ if( nSet <= 0 ) -/*N*/ { -/*N*/ nNumLinesInColChart = 0; -/*N*/ if( eChartStyle == CHSTYLE_2D_LINE_COLUMN ) -/*?*/ eChartStyle = CHSTYLE_2D_COLUMN; -/*N*/ else if( eChartStyle == CHSTYLE_2D_LINE_STACKEDCOLUMN ) -/*?*/ eChartStyle = CHSTYLE_2D_STACKEDCOLUMN; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ nNumLinesInColChart = nSet; -/*N*/ -/*N*/ if( eChartStyle == CHSTYLE_2D_COLUMN ) -/*N*/ eChartStyle = CHSTYLE_2D_LINE_COLUMN; -/*N*/ else if( eChartStyle == CHSTYLE_2D_STACKEDCOLUMN ) -/*?*/ eChartStyle = CHSTYLE_2D_LINE_STACKEDCOLUMN; -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ nNumLinesInColChart = nSet > 0 ? nSet : 0; -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ nNumLinesInColChart = nSet > 0 ? nSet : 0; -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ // #101164# map fill-/line colors -/*N*/ if( nNumLinesInColChart > nOldNumLines ) -/*N*/ { -/*N*/ for( int i = nOldNumLines ; -/*N*/ i < nNumLinesInColChart && i < nLastSeries ; -/*N*/ ++i ) -/*N*/ { -/*N*/ SfxItemSet * pSet = aDataRowAttrList[ nLastSeries - i ]; -/*N*/ OSL_ASSERT( pSet ); -/*N*/ pSet->Put( XLineColorItem( -/*N*/ String(), -/*N*/ static_cast< const XFillColorItem & >( -/*N*/ pSet->Get( XATTR_FILLCOLOR )).GetValue() )); -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ for( int i = nNumLinesInColChart ; -/*N*/ i < nOldNumLines && i < nLastSeries ; -/*N*/ ++i ) -/*N*/ { -/*?*/ SfxItemSet * pSet = aDataRowAttrList[ nLastSeries - i ]; -/*?*/ OSL_ASSERT( pSet ); -/*?*/ pSet->Put( XFillColorItem( -/*?*/ String(), -/*?*/ static_cast< const XLineColorItem & >( -/*?*/ pSet->Get( XATTR_LINECOLOR )).GetValue() )); -/*?*/ pSet->Put( XLineColorItem( String(), RGBColor( COL_BLACK ) )); -/*N*/ } -/*N*/ } -/*N*/ } - -/*N*/ BOOL ChartModel::SetObjectShell( SfxObjectShell* pDocSh ) -/*N*/ { -/*N*/ if( ! pDocShell ) -/*N*/ { -/*N*/ pDocShell = pDocSh; -/*N*/ return TRUE; -/*N*/ } -/*N*/ return FALSE; -/*N*/ } - -/*N*/ using namespace ::com::sun::star; - -/*N*/ void ChartModel::SetChartAddIn( uno::Reference< util::XRefreshable >& xChartAddIn ) -/*N*/ { -/*N*/ if( xChartAddIn.is()) -/*N*/ { -/*N*/ // acquire add-in -/*?*/ mxChartAddIn = xChartAddIn; -/*?*/ ChangeChart( CHSTYLE_ADDIN ); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // release add-in -/*N*/ mxChartAddIn = NULL; -/*N*/ // if base type was not set, use default -/*N*/ if( eChartStyle == CHSTYLE_ADDIN ) -/*?*/ ChangeChart( CHSTYLE_2D_BAR ); -/*N*/ } -/*N*/ } - - -/*N*/ void ChartModel::HandsOff() -/*N*/ { -/*N*/ mxPictureStorage = SotStorageRef(); -/*N*/ mpDocStor = NULL; -/*N*/ } - - -/*N*/ uno::Sequence< uno::Sequence< sal_Int32 > > ChartModel::GetSetDataPointList() -/*N*/ { -/*N*/ const ItemSetList & rAttrList = IsDataSwitched() -/*N*/ ? aSwitchDataPointAttrList -/*N*/ : aDataPointAttrList; -/*N*/ const long nSize = rAttrList.size(); -/*N*/ long nRow, nCol; -/*N*/ long nColCnt = GetColCount(); -/*N*/ long nRowCnt = GetRowCount(); -/*N*/ -/*N*/ DBG_ASSERT( nSize == ( nRowCnt * nColCnt ), "Data-Point list has invalid size!" ); -/*N*/ (void)nSize; -/*N*/ -/*N*/ // the 'outer' sequence contains one sequence for each series -/*N*/ uno::Sequence< uno::Sequence< sal_Int32 > > aResult( nRowCnt ); -/*N*/ -/*N*/ // here we need again a special treatment for pie charts as a single pie -/*N*/ // uses merged data point and data row attributes the data points are also -/*N*/ // set if data row attributes are set, which is always the case -/*N*/ if( IsPieChart()) -/*N*/ { -/*N*/ aResult[ 0 ].realloc( nColCnt ); -/*N*/ sal_Int32 * pArray = aResult[ 0 ].getArray(); -/*N*/ -/*N*/ for( nCol = 0; nCol < nColCnt; ++nCol ) -/*N*/ pArray[ nCol ] = nCol; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // use a vector for quick dynamic resizing -/*N*/ ::std::list< sal_Int32 > aList; -/*N*/ -/*N*/ for( nRow = 0; nRow < nRowCnt; ++nRow ) -/*N*/ { -/*N*/ for( nCol = 0; nCol < nColCnt; ++nCol ) -/*N*/ { -/*N*/ if( rAttrList[ nCol * nRowCnt + nRow ] != NULL ) -/*N*/ aList.push_back( nCol ); -/*N*/ } -/*N*/ -/*N*/ if( aList.size() > 0 ) -/*N*/ { -/*N*/ // copy list to 'inner' sequence -/*N*/ aResult[ nRow ].realloc( aList.size()); -/*N*/ sal_Int32 * pArray = aResult[ nRow ].getArray(); -/*N*/ sal_Int32 i = 0; -/*N*/ ::std::list< sal_Int32 >::iterator aIter; -/*N*/ for( aIter = aList.begin(); aIter != aList.end(); ++aIter ) -/*N*/ { -/*N*/ pArray[ i++ ] = (*aIter); -/*N*/ } -/*N*/ aList.clear(); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ return aResult; -/*N*/ } - -/*N*/ void ChartModel::PageColorChanged( const SfxItemSet& rItems ) -/*N*/ { -/*N*/ Color aColor; -/*N*/ -/*N*/ // GetDraftFillColor is defined in bf_svx/svdetc.hxx -/*N*/ if( GetDraftFillColor( rItems, aColor )) -/*N*/ { -/*N*/ SdrOutliner * pOut = GetOutliner(); -/*N*/ if( pOut ) -/*N*/ pOut->SetBackgroundColor( aColor ); -/*N*/ GetDrawOutliner().SetBackgroundColor( aColor ); -/*N*/ } -/*N*/ } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chtmodel.cxx b/binfilter/bf_sch/source/core/sch_chtmodel.cxx deleted file mode 100644 index 5c6bedd0f..000000000 --- a/binfilter/bf_sch/source/core/sch_chtmodel.cxx +++ /dev/null @@ -1,1274 +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. - * - ************************************************************************/ -#ifdef _MSC_VER -#pragma optimize("e",off) - -#pragma hdrstop -#endif - -class SbxArray; - -#include <bf_svx/svdoutl.hxx> - -#include "itempool.hxx" - -#include <bf_svx/svdpage.hxx> - -#include <bf_svx/svdetc.hxx> - -#include <bf_svx/eeitem.hxx> -#include <bf_sfx2/app.hxx> -#ifndef _ZFORLIST_HXX -#ifndef _ZFORLIST_DECLARE_TABLE -#define _ZFORLIST_DECLARE_TABLE -#endif -#include <bf_svtools/zforlist.hxx> -#endif -#include <bf_svx/svdorect.hxx> -#include <bf_svx/xlnclit.hxx> -#include <bf_svx/xlnwtit.hxx> -#include <bf_svx/xflclit.hxx> -#include "schattr.hxx" -#include "memchrt.hxx" - -#ifndef _SVX_CHRTITEM_HXX -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTTEXTORDER SCHATTR_TEXT_ORDER -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT -#define ITEMID_CHARTLEGENDPOS SCHATTR_LEGEND_POS -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR -#define ITEMID_LANGUAGE EE_CHAR_LANGUAGE - -#include <bf_svtools/eitem.hxx> - -#include <bf_svx/chrtitem.hxx> -#endif - -#define ITEMID_FONT EE_CHAR_FONTINFO -#define ITEMID_COLOR EE_CHAR_COLOR -#define ITEMID_FONTHEIGHT EE_CHAR_FONTHEIGHT -#include <bf_svx/fontitem.hxx> -#include <bf_svx/fhgtitem.hxx> -#include <bf_svx/colritem.hxx> -#include <bf_svx/svxids.hrc> -#include <i18npool/lang.h> - -#include <bf_svx/xlineit0.hxx> - -// header for LinguMgr -#include <bf_svx/unolingu.hxx> -// header for class SvtLinguConfig -#include <bf_svtools/lingucfg.hxx> -// header for getProcessServiceFactory -#include <comphelper/processfactory.hxx> - -#ifndef _CHTMODEL_HXX -#include <chtmodel.hxx> -#include <globfunc.hxx> -#endif -#include "schattr.hxx" -#include "charttyp.hxx" - -#include "float.h" - - -#include "pairs.hxx" -#include "stlpool.hxx" -#include "schresid.hxx" -#include "glob.hrc" - -#include "datalog.hxx" -#include "chaxis.hxx" - -#include "chtscene.hxx" -#include "bf_svx/def3d.hxx" - -#include "docshell.hxx" -#include <com/sun/star/chart/ChartDataChangeEvent.hpp> -#include <bf_svx/unolingu.hxx> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/linguistic2/XLinguServiceManager.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <bf_svx/langitem.hxx> -#include <bf_svtools/undo.hxx> - -#include <legacysmgr/legacy_binfilters_smgr.hxx> -namespace binfilter { - -using ::rtl::OUString; -using namespace ::com::sun::star; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::lang; -using namespace ::com::sun::star::linguistic2; - -#define LINGUPROP_DEFLOCALE "DefaultLocale" -#define LINGUPROP_CJKLOCALE "DefaultLocale_CJK" -#define LINGUPROP_CTLLOCALE "DefaultLocale_CTL" - - -/************************************************************************/ - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -using namespace ::com::sun::star; - -/*N*/ ChartModel::ChartModel( const String& rPalettePath, SfxObjectShell* pDocSh ) : -/*N*/ SdrModel( rPalettePath, NULL, SAL_STATIC_CAST( SvPersist*, pDocSh )), -/*N*/ bClearDepth(FALSE), -/*N*/ bNewOrLoadCompleted(FALSE),//aus SchChartDocument:: -/*N*/ pDocShell(pDocSh), //aus SchChartDocument:: -/*N*/ bAttrAutoStorage(FALSE), -/*N*/ pChartDataBuffered(NULL), -/*N*/ pChartRefOutDev(NULL), -/*N*/ nChartStatus( CHS_USER_QUERY ), -/*N*/ pAutoPilot(NULL),//#46895# -/*N*/ pSdrObjList(NULL), -/*N*/ bResizePie(TRUE), -/*N*/ nPieRadius(0), -/*N*/ pOwnNumFormatter(FALSE), -/*N*/ pNumFormatter(NULL), -/*N*/ nBarPercentWidth(100), //#50116# -/*N*/ nNumLinesInColChart(0), //#50212# -/*N*/ m_nDefaultColorSet(0), //#50037# -/*N*/ pLogBook(NULL), -/*N*/ aChartRect (Rectangle ()), -/*N*/ aInitialSize (Size ()), -/*N*/ pChItemPool (new SchItemPool), -/*N*/ pScene (0), -/*N*/ aLightVec (new Vector3D (1, 1, 1)), // old: aLightVec (new Vector3D (0, 0, 1)), -/*N*/ pChartData (0), -/*N*/ fMinData (0.0), -/*N*/ fMaxData (0.0), -/*N*/ fAmbientIntensity(0.6), -/*N*/ aAmbientColor(RGBColor(COL_WHITE)), -/*N*/ fSpotIntensity (0.6), -/*N*/ aSpotColor(RGBColor(COL_WHITE)), -/*N*/ eChartStyle (CHSTYLE_2D_COLUMN), -/*N*/ eOldChartStyle (CHSTYLE_3D_XYZSYMBOLS), -/*N*/ pDefaultColors (0), -/*N*/ bTextScalable (TRUE), -/*N*/ bIsCopied (FALSE), -/*N*/ bLegendVisible (TRUE), -/*N*/ bShowAverage (FALSE), -/*N*/ eErrorKind (CHERROR_NONE), -/*N*/ eIndicate (CHINDICATE_NONE), -/*N*/ eRegression (CHREGRESS_NONE), -/*N*/ fIndicatePercent (0.0), -/*N*/ fIndicateBigError (0.0), -/*N*/ fIndicatePlus (0.0), -/*N*/ fIndicateMinus (0.0), -/*N*/ nSplineDepth (3), -/*N*/ nGranularity (20), -/*N*/ bSwitch3DColRow (FALSE), // FG: reiner Zwischenspeicher, damit die ChartScene das nicht als Parameter bekommt -/*N*/ // ist immer gleich bSwitchRowCol, das aber wird durchs Chart als Parameter -/*N*/ // durchgereicht. -/*N*/ nMarkLen (100), -/*N*/ nPieHeight (20), -/*N*/ pPieSegOfs (0), -/*N*/ nPieSegCount (0), -/*N*/ nXAngle (100), // old: nXAngle (200), -/*N*/ nYAngle (250), // old: nYAngle (350), -/*N*/ nZAngle (0), -/*N*/ bCanRebuild (TRUE), -/*N*/ bShowMainTitle (TRUE), -/*N*/ bShowSubTitle (FALSE), -/*N*/ bShowXAxisTitle (FALSE), -/*N*/ bShowYAxisTitle (FALSE), -/*N*/ bShowZAxisTitle (FALSE), -/*N*/ aMainTitle (String ()), -/*N*/ aSubTitle (String ()), -/*N*/ aXAxisTitle (String ()), -/*N*/ aYAxisTitle (String ()), -/*N*/ aZAxisTitle (String ()), -/*N*/ bShowXGridMain (TRUE), -/*N*/ bShowXGridHelp (FALSE), -/*N*/ bShowYGridMain (FALSE), -/*N*/ bShowYGridHelp (FALSE), -/*N*/ bShowZGridMain (FALSE), -/*N*/ bShowZGridHelp (FALSE), -/*N*/ bShowDataDescr(TRUE), -/*N*/ pChartXAxis(NULL), -/*N*/ pChartYAxis(NULL), -/*N*/ pChartZAxis(NULL), -/*N*/ pChartAAxis(NULL), -/*N*/ pChartBAxis(NULL), -/*N*/ pTmpXItems(NULL), -/*N*/ pTmpYItems(NULL), -/*N*/ pTmpZItems(NULL), -/*N*/ eDataDescr (CHDESCR_NONE), -/*N*/ bShowSym (FALSE), -/*N*/ bSwitchData (TRUE), -/*N*/ bNoBuildChart( FALSE ), -/*N*/ bShouldBuildChart( TRUE ), -/*N*/ bReadError (FALSE), -/*N*/ mbIsInitialized(FALSE), -/*N*/ pOutliner(NULL), -/*N*/ // FG: nMoreData >=12 -/*N*/ bFormatXAxisTextInMultipleLinesIfNecessary (TRUE), -/*N*/ bFormatYAxisTextInMultipleLinesIfNecessary (FALSE), -/*N*/ bFormatZAxisTextInMultipleLinesIfNecessary (FALSE), -/*N*/ bFormatLegendTextInMultipleLinesIfNecessary (TRUE), -/*N*/ // FG: nMoreData >=13 -/*N*/ nXAxisTextMaximumNumberOfLines(2), -/*N*/ nYAxisTextMaximumNumberOfLines(1), -/*N*/ nZAxisTextMaximumNumberOfLines(1), -/*N*/ nWidthOfFirstXAxisText (0), -/*N*/ nWidthOfLastXAxisText (0), -/*N*/ aTitleTopCenter(-1,-1), -/*N*/ aSubTitleTopCenter(-1,-1), -/*N*/ aDiagramRectangle(-1,-1,-1,-1), -/*N*/ aLastDiagramRectangle(-1,-1,-1,-1), -/*N*/ aLegendTopLeft(-1,-1), -/*N*/ aTitleXAxisPosition (-1,-1), -/*N*/ aTitleYAxisPosition(-1,-1), -/*N*/ aTitleZAxisPosition (-1,-1), -/*N*/ eAdjustXAxesTitle(CHADJUST_TOP_CENTER), -/*N*/ eAdjustYAxesTitle(CHADJUST_TOP_CENTER), -/*N*/ eAdjustZAxesTitle(CHADJUST_TOP_CENTER), -/*N*/ bUseRelativePositionsForChartGroups(FALSE), -/*N*/ bAdjustMarginsForLegend(TRUE), -/*N*/ bAdjustMarginsForMainTitle(TRUE), -/*N*/ bAdjustMarginsForSubTitle(TRUE), -/*N*/ bAdjustMarginsForXAxisTitle(TRUE), -/*N*/ bAdjustMarginsForYAxisTitle(TRUE), -/*N*/ bAdjustMarginsForZAxisTitle(TRUE), -/*N*/ bDiagramHasBeenMovedOrResized(FALSE), -/*N*/ bMainTitleHasBeenMoved(FALSE), -/*N*/ bSubTitleHasBeenMoved(FALSE), -/*N*/ bLegendHasBeenMoved(FALSE), -/*N*/ bXAxisTitleHasBeenMoved(FALSE), -/*N*/ bYAxisTitleHasBeenMoved(FALSE), -/*N*/ bZAxisTitleHasBeenMoved(FALSE), -/*N*/ aInitialSizefor3d (-1,-1), // FG: Zwischenspeicher fuer InitalSize (siehe chtmod3d.cxx, Position3DAxisTitles -/*N*/ pTestTextObj(NULL), // FG: fuer GetHeightOfnRows, ein Dummy-Textpointer -/*N*/ nXLastNumFmt(-1), -/*N*/ nYLastNumFmt(-1), -/*N*/ nBLastNumFmt(-1), -/*N*/ eLanguage( LANGUAGE_SYSTEM ), -/*N*/ eLanguageCJK( LANGUAGE_SYSTEM ), -/*N*/ eLanguageCTL( LANGUAGE_SYSTEM ), -/*N*/ eProjection(PR_PERSPECTIVE), -/*N*/ mpDocStor( NULL ), -/*N*/ m_pUndoActionFromDraw(NULL), -/*N*/ m_bDeleteUndoActionNotificationFromDraw(TRUE) -/*N*/ { -/*N*/ SdrModel::SetNotifyUndoActionHdl(LINK( this, ChartModel, NotifyUndoActionHdl )); -/*N*/ -/*N*/ if( pDocSh != NULL ) -/*N*/ { -/*N*/ // enable swapping of metafiles and bitmaps that -/*N*/ // might be in a chart as additional objects -/*N*/ SetSwapGraphics( TRUE ); -/*N*/ } -/*N*/ -/*N*/ aLightVec->Normalize (); -/*N*/ -/*N*/ SetScaleUnit(MAP_100TH_MM); -/*N*/ SetScaleFraction(Fraction(1, 1)); -/*N*/ SetDefaultFontHeight(847); // 24pt -/*N*/ -/*N*/ SfxItemPool* pPool = &GetItemPool(); -/*N*/ pPool->SetDefaultMetric(SFX_MAPUNIT_100TH_MM); -/*N*/ pPool->SetPoolDefaultItem( SfxBoolItem(EE_PARA_HYPHENATE, TRUE) ); -/*N*/ pPool->SetPoolDefaultItem(Svx3DPercentDiagonalItem (5)); -/*N*/ -/*N*/ pOwnNumFormatter = new SvNumberFormatter( ::legacy_binfilters::getLegacyProcessServiceFactory(), -/*N*/ LANGUAGE_SYSTEM ); -/*N*/ pOwnNumFormatter->ChangeStandardPrec( 15 ); -/*N*/ -/*N*/ // append pool to end of pool chain -/*N*/ for (;;) -/*N*/ { -/*N*/ SfxItemPool* pSecondary = pPool->GetSecondaryPool(); -/*N*/ if (!pSecondary) -/*N*/ break; -/*N*/ -/*N*/ pPool = pSecondary; -/*N*/ } -/*N*/ -/*N*/ pPool->SetSecondaryPool(pChItemPool); -/*N*/ -/*N*/ SfxItemPool* pMasterPool = &GetItemPool(); -/*N*/ pMasterPool->FreezeIdRanges(); -/*N*/ -/*N*/ // get current language -/*N*/ pOutliner = SdrMakeOutliner( OUTLINERMODE_TEXTOBJECT, this); -/*N*/ GetDrawOutliner(); -/*N*/ -/*N*/ try -/*N*/ { -/*N*/ // set language properties -/*N*/ SvtLinguConfig aLinguConfig; -/*N*/ SvtLinguOptions aLinguOptions; -/*N*/ -/*N*/ if( aLinguConfig.GetOptions( aLinguOptions ) ) -/*N*/ { -/*N*/ SetLanguage( aLinguOptions.nDefaultLanguage, EE_CHAR_LANGUAGE ); -/*N*/ SetLanguage( aLinguOptions.nDefaultLanguage_CJK, EE_CHAR_LANGUAGE_CJK ); -/*N*/ SetLanguage( aLinguOptions.nDefaultLanguage_CTL, EE_CHAR_LANGUAGE_CTL ); -/*N*/ } -/*N*/ } -/*N*/ catch( uno::Exception aEx ) -/*N*/ { -/*N*/ #if OSL_DEBUG_LEVEL > 1 -/*N*/ // convert ::rtl::OUString => tools String => ByteString -/*N*/ String aStr( aEx.Message ); -/*N*/ ByteString aBStr( aStr, RTL_TEXTENCODING_ASCII_US ); -/*N*/ OSL_TRACE( "LinguProperties threw exception: %s", aBStr.GetBuffer()); -/*N*/ #endif -/*N*/ } -/*N*/ -/*N*/ // init item sets for chart objects -/*N*/ pTitleAttr = new SfxItemSet(*pItemPool, nTitleWhichPairs); -/*N*/ pMainTitleAttr = new SfxItemSet(*pItemPool, nTitleWhichPairs); -/*N*/ pSubTitleAttr = new SfxItemSet(*pItemPool, nTitleWhichPairs); -/*N*/ pXAxisTitleAttr = new SfxItemSet(*pItemPool, nTitleWhichPairs); -/*N*/ pYAxisTitleAttr = new SfxItemSet(*pItemPool, nTitleWhichPairs); -/*N*/ pZAxisTitleAttr = new SfxItemSet(*pItemPool, nTitleWhichPairs); -/*N*/ pAxisAttr = new SfxItemSet(*pItemPool, nAllAxisWhichPairs); -/*N*/ pGridAttr = new SfxItemSet(*pItemPool, nGridWhichPairs); -/*N*/ pXGridMainAttr = new SfxItemSet(*pItemPool, nGridWhichPairs); -/*N*/ pYGridMainAttr = new SfxItemSet(*pItemPool, nGridWhichPairs); -/*N*/ pZGridMainAttr = new SfxItemSet(*pItemPool, nGridWhichPairs); -/*N*/ pXGridHelpAttr = new SfxItemSet(*pItemPool, nGridWhichPairs); -/*N*/ pYGridHelpAttr = new SfxItemSet(*pItemPool, nGridWhichPairs); -/*N*/ pZGridHelpAttr = new SfxItemSet(*pItemPool, nGridWhichPairs); -/*N*/ pDiagramAreaAttr = new SfxItemSet(*pItemPool, nDiagramAreaWhichPairs); -/*N*/ pDiagramWallAttr = new SfxItemSet(*pItemPool, nDiagramAreaWhichPairs); -/*N*/ pDiagramFloorAttr = new SfxItemSet(*pItemPool, nDiagramAreaWhichPairs); -/*N*/ pLegendAttr = new SfxItemSet(*pItemPool, nLegendWhichPairs); -/*N*/ pChartAttr = new SfxItemSet(*pItemPool, nChartWhichPairs); -/*N*/ pDummyAttr = new SfxItemSet(*pItemPool, nRowWhichPairs); -/*N*/ -/*N*/ pStockLineAttr = new SfxItemSet(*pItemPool, nRowWhichPairs); -/*N*/ pStockLossAttr = new SfxItemSet(*pItemPool, nRowWhichPairs); -/*N*/ pStockPlusAttr = new SfxItemSet(*pItemPool, nRowWhichPairs); -/*N*/ -/*N*/ SdrPage* pPage = GetPage(0); -/*N*/ if (pPage) aInitialSize = pPage->GetSize(); -/*N*/ -/*N*/ CreateDefaultColors (); -/*N*/ eChartLinePoints[0] = -/*N*/ eChartLinePoints[1] = -/*N*/ eChartLinePoints[2] = -/*N*/ eChartLinePoints[3] = -/*N*/ eChartLinePoints[4] = -/*N*/ eChartLinePoints[5] = -/*N*/ eChartLinePoints[6] = -/*N*/ eChartLinePoints[7] = -/*N*/ eChartLinePoints[8] = 0; -/*N*/ -/*N*/ Font aLatinFont( OutputDevice::GetDefaultFont( DEFAULTFONT_LATIN_SPREADSHEET, GetLanguage( EE_CHAR_LANGUAGE ), DEFAULTFONT_FLAGS_ONLYONE ) ); -/*N*/ SvxFontItem aSvxFontItem( aLatinFont.GetFamily(), aLatinFont.GetName(), aLatinFont.GetStyleName(), aLatinFont.GetPitch(), -/*N*/ aLatinFont.GetCharSet(), EE_CHAR_FONTINFO ); -/*N*/ -/*N*/ Font aCJKFont( OutputDevice::GetDefaultFont( DEFAULTFONT_CJK_SPREADSHEET, GetLanguage( EE_CHAR_LANGUAGE_CJK ), DEFAULTFONT_FLAGS_ONLYONE ) ); -/*N*/ SvxFontItem aSvxFontItemCJK( aCJKFont.GetFamily(), aCJKFont.GetName(), aCJKFont.GetStyleName(), aCJKFont.GetPitch(), -/*N*/ aCJKFont.GetCharSet(), EE_CHAR_FONTINFO_CJK ); -/*N*/ -/*N*/ Font aCTLFont( OutputDevice::GetDefaultFont( DEFAULTFONT_CTL_SPREADSHEET, GetLanguage( EE_CHAR_LANGUAGE_CTL ), DEFAULTFONT_FLAGS_ONLYONE ) ); -/*N*/ SvxFontItem aSvxFontItemCTL( aCTLFont.GetFamily(), aCTLFont.GetName(), aCTLFont.GetStyleName(), aCTLFont.GetPitch(), -/*N*/ aCTLFont.GetCharSet(), EE_CHAR_FONTINFO_CTL ); -/*N*/ -/*N*/ // main title -/*N*/ pTitleAttr->Put(aSvxFontItem); -/*N*/ pTitleAttr->Put(SvxFontHeightItem( 459, 100, EE_CHAR_FONTHEIGHT )); // 13pt -/*N*/ pTitleAttr->Put(aSvxFontItemCJK); -/*N*/ pTitleAttr->Put(SvxFontHeightItem( 459, 100, EE_CHAR_FONTHEIGHT_CJK )); // 13pt -/*N*/ pTitleAttr->Put(aSvxFontItemCTL); -/*N*/ pTitleAttr->Put(SvxFontHeightItem( 459, 100, EE_CHAR_FONTHEIGHT_CTL )); // 13pt -/*N*/ pTitleAttr->Put(XLineStyleItem(XLINE_NONE)); -/*N*/ pTitleAttr->Put(XFillStyleItem(XFILL_NONE)); -/*N*/ pTitleAttr->Put(SvxChartTextOrientItem(CHTXTORIENT_AUTOMATIC)); -/*N*/ pMainTitleAttr->Put(*pTitleAttr); -/*N*/ -/*N*/ // sub title -/*N*/ pTitleAttr->Put(SvxFontHeightItem( 388, 100, EE_CHAR_FONTHEIGHT )); // 11pt -/*N*/ pTitleAttr->Put(SvxFontHeightItem( 388, 100, EE_CHAR_FONTHEIGHT_CJK )); // 11pt -/*N*/ pTitleAttr->Put(SvxFontHeightItem( 388, 100, EE_CHAR_FONTHEIGHT_CTL )); // 11pt -/*N*/ pSubTitleAttr->Put(*pTitleAttr); -/*N*/ -/*N*/ // axis titles -/*N*/ pTitleAttr->Put(SvxFontHeightItem( 318, 100, EE_CHAR_FONTHEIGHT )); // 9pt -/*N*/ pTitleAttr->Put(SvxFontHeightItem( 318, 100, EE_CHAR_FONTHEIGHT_CJK )); // 9pt -/*N*/ pTitleAttr->Put(SvxFontHeightItem( 318, 100, EE_CHAR_FONTHEIGHT_CTL )); // 9pt -/*N*/ pXAxisTitleAttr->Put(*pTitleAttr); -/*N*/ pYAxisTitleAttr->Put(*pTitleAttr); -/*N*/ pZAxisTitleAttr->Put(*pTitleAttr); -/*N*/ -/*N*/ // general axis attributies: are also set in class ChartAxis() -/*N*/ // (BM) => deprecated and therefore removed here -/*N*/ -/*N*/ Color aAreaBackColor( RGBColor( COL_WHITE )); -/*N*/ pDiagramAreaAttr->Put(XLineStyleItem(XLINE_NONE)); -/*N*/ pDiagramAreaAttr->Put(XFillColorItem(String(), aAreaBackColor)); -/*N*/ -/*N*/ // set the page color (in a chart this is the color of the area) -/*N*/ // at the outliner -/*N*/ if( pOutliner ) -/*N*/ pOutliner->SetBackgroundColor( aAreaBackColor ); -/*N*/ -/*N*/ pDiagramWallAttr->Put(XLineStyleItem(XLINE_NONE)); -/*N*/ pDiagramWallAttr->Put(XFillStyleItem(XFILL_NONE)); -/*N*/ -/*N*/ pDiagramFloorAttr->Put(XLineStyleItem(XLINE_NONE)); -/*N*/ pDiagramFloorAttr->Put(XFillColorItem(String(), Color(153, 153, 153))); -/*N*/ -/*N*/ pLegendAttr->Put(aSvxFontItem); -/*N*/ pLegendAttr->Put(aSvxFontItemCJK); -/*N*/ pLegendAttr->Put(aSvxFontItemCTL); -/*N*/ pLegendAttr->Put(SvxFontHeightItem( 212, 100, EE_CHAR_FONTHEIGHT )); // 6pt #72012# -/*N*/ pLegendAttr->Put(SvxFontHeightItem( 212, 100, EE_CHAR_FONTHEIGHT_CJK )); // 6pt #72012# -/*N*/ pLegendAttr->Put(SvxFontHeightItem( 212, 100, EE_CHAR_FONTHEIGHT_CTL )); // 6pt #72012# -/*N*/ pLegendAttr->Put(XFillStyleItem(XFILL_NONE)); -/*N*/ -/*N*/ //Todo: ueberpruefen, ob noch korekkt, es wird der default-ChartTyp erzeugt und der -/*N*/ //AttrSet in pChartAttr gesetzt -/*N*/ ChartType aTyp((SvxChartStyle) CHSTYLE_2D_COLUMN); -/*N*/ aTyp.GetAttrSet(pChartAttr); -/*N*/ -/*N*/ // the dummy attribute is (mainly!) used for data row defaults -/*N*/ // so avoid setting (pool) default values here as fixed -/*N*/ pDummyAttr->Put( aSvxFontItem ); -/*N*/ pDummyAttr->Put( aSvxFontItemCJK ); -/*N*/ pDummyAttr->Put( aSvxFontItemCTL ); -/*N*/ pDummyAttr->Put(SvxFontHeightItem( 212, 100, EE_CHAR_FONTHEIGHT )); // 6pt #72012# -/*N*/ pDummyAttr->Put(SvxFontHeightItem( 212, 100, EE_CHAR_FONTHEIGHT_CJK )); // 6pt #72012# -/*N*/ pDummyAttr->Put(SvxFontHeightItem( 212, 100, EE_CHAR_FONTHEIGHT_CTL )); // 6pt #72012# -/*N*/ -/*N*/ // what are these needed for? -/*N*/ pDummyAttr->Put (SfxInt32Item (SCHATTR_DUMMY0, (INT32) eChartStyle)); -/*N*/ pDummyAttr->Put (SfxInt32Item (SCHATTR_DUMMY1, 0)); -/*N*/ -/*N*/ pStockLossAttr->Put(XFillColorItem(String(), RGBColor(COL_BLACK))); -/*N*/ pStockPlusAttr->Put(XFillColorItem(String(), RGBColor(COL_WHITE))); -/*N*/ -/*N*/ // this test object is for calculating the text height in GetHeightOfnRows -/*N*/ // (chtmode1.cxx) without creating a new object for each call. -/*N*/ pTestTextObj = new SdrRectObj (OBJ_TEXT, Rectangle(0, 0, 10, 10) /*, aTestStr*/); -/*N*/ -/*N*/ //Aus SchChartDocument:: -/*N*/ SetStyleSheetPool(new SchStyleSheetPool(*pItemPool)); -/*N*/ ((SdrOutliner*)pDrawOutliner)->SetStyleSheetPool((SfxStyleSheetPool*)pStyleSheetPool); -/*N*/ pOutliner->SetStyleSheetPool((SfxStyleSheetPool*)pStyleSheetPool); -/*N*/ -/*N*/ // Layer anlegen -/*N*/ -/*N*/ SdrLayerAdmin& rLayerAdmin = GetLayerAdmin(); -/*N*/ rLayerAdmin.NewLayer( String( SchResId( STR_LAYOUT ))); -/*N*/ rLayerAdmin.NewLayer( String( SchResId( STR_CONTROLS ))); -/*N*/ -/*N*/ -/*N*/ //Wichtig! die Achsen muessen jetzt erstellt werden, dies darf erst nach dem -/*N*/ //anlegen des ItemPools und der Defaults passieren! -/*N*/ pChartXAxis = new ChartAxis( this, CHART_AXIS_X, CHAXIS_AXIS_X ); -/*N*/ pChartYAxis = new ChartAxis( this, CHART_AXIS_Y, CHAXIS_AXIS_Y ); -/*N*/ pChartZAxis = new ChartAxis( this, CHART_AXIS_Z, CHAXIS_AXIS_Z ); -/*N*/ pChartBAxis = new ChartAxis( this, CHART_AXIS_Y, CHAXIS_AXIS_B ); -/*N*/ pChartAAxis = new ChartAxis( this, CHART_AXIS_X, CHAXIS_AXIS_A ); -/*N*/ -/*N*/ pChartYAxis->IfNoDataLookAt( CHAXIS_AXIS_B ); //Falls Achse nur ein Spiegelbild ist.... -/*N*/ pChartBAxis->IfNoDataLookAt( CHAXIS_AXIS_Y ); //d.h. keine eigenen Datenreihen besitzt -/*N*/ -/*N*/ aBarY1.Assign(this,pChartYAxis); -/*N*/ aBarY2.Assign(this,pChartBAxis); -/*N*/ -/*N*/ pChartXAxis->SetAllAxisAttr(pAxisAttr); -/*N*/ pChartYAxis->SetAllAxisAttr(pAxisAttr); -/*N*/ pChartZAxis->SetAllAxisAttr(pAxisAttr); -/*N*/ pChartAAxis->SetAllAxisAttr(pAxisAttr); -/*N*/ pChartBAxis->SetAllAxisAttr(pAxisAttr); -/*N*/ -/*N*/ pChartXAxis->SetGridAttrList(pYGridMainAttr);//XGrid->YAchse :( (u.U.) -/*N*/ pChartYAxis->SetGridAttrList(pXGridMainAttr); -/*N*/ -/*N*/ SetNumberFormatter( pOwnNumFormatter ); // sets number formatter also for all axes -/*N*/ -/*N*/ long nTmp=pNumFormatter->GetStandardFormat(NUMBERFORMAT_NUMBER, LANGUAGE_SYSTEM); -/*N*/ SetNumFmt(CHOBJID_DIAGRAM_X_AXIS,nTmp,FALSE); -/*N*/ SetNumFmt(CHOBJID_DIAGRAM_Y_AXIS,nTmp,FALSE); -/*N*/ SetNumFmt(CHOBJID_DIAGRAM_Z_AXIS,nTmp,FALSE); -/*N*/ SetNumFmt(CHOBJID_DIAGRAM_A_AXIS,nTmp,FALSE); -/*N*/ SetNumFmt(CHOBJID_DIAGRAM_B_AXIS,nTmp,FALSE); -/*N*/ -/*N*/ pChartBAxis->ShowAxis(FALSE); -/*N*/ pChartBAxis->ShowDescr(FALSE); -/*N*/ pChartAAxis->ShowAxis(FALSE); -/*N*/ pChartAAxis->ShowDescr(FALSE); -/*N*/ -/*N*/ pSdrObjList=new SdrObjList(this,NULL); -/*N*/ -/*N*/ // #99528# change auto-font color according to default diagram area -/*N*/ PageColorChanged( *pDiagramAreaAttr ); -/*N*/ } - -/************************************************************************* -|* -|* Destruktor -|* -\************************************************************************/ -void ChartModel::ClearItemSetLists() -{ - for (size_t i = 0, nCount = aDataRowAttrList.size(); i < nCount; i++) - delete aDataRowAttrList[ i ]; - aDataRowAttrList.clear(); - - for (size_t i = 0, nCount = aRegressAttrList.size(); i < nCount; i++) - delete aRegressAttrList[ i ]; - aRegressAttrList.clear(); - - for (size_t i = 0, nCount = aDataPointAttrList.size(); i < nCount; i++) - delete aDataPointAttrList[ i ]; - aDataPointAttrList.clear(); - - for (size_t i = 0, nCount = aSwitchDataPointAttrList.size(); i < nCount; i++) - delete aSwitchDataPointAttrList[ i ]; - aSwitchDataPointAttrList.clear(); - - for (size_t i = 0, nCount = aAverageAttrList.size(); i < nCount; i++) - delete aAverageAttrList[ i ]; - aAverageAttrList.clear(); - - for (size_t i = 0, nCount = aErrorAttrList.size(); i < nCount; i++) - delete aErrorAttrList[ i ]; - aErrorAttrList.clear(); - -} - -/*N*/ ChartModel::~ChartModel() -/*N*/ { -/*N*/ if(pTmpXItems) -/*N*/ delete pTmpXItems; -/*N*/ if(pTmpYItems) -/*N*/ delete pTmpYItems; -/*N*/ if(pTmpZItems) -/*N*/ delete pTmpZItems; -/*N*/ -/*N*/ if(pChartRefOutDev) -/*?*/ delete pChartRefOutDev; -/*N*/ -/*N*/ Clear();//aus SchChartDocument:: -/*N*/ -/*N*/ delete pTitleAttr; -/*N*/ delete pMainTitleAttr; -/*N*/ delete pSubTitleAttr; -/*N*/ delete pXAxisTitleAttr; -/*N*/ delete pYAxisTitleAttr; -/*N*/ delete pZAxisTitleAttr; -/*N*/ delete pAxisAttr; -/*N*/ -/*N*/ delete pChartXAxis; -/*N*/ delete pChartYAxis; -/*N*/ delete pChartZAxis; -/*N*/ delete pChartAAxis; -/*N*/ delete pChartBAxis; -/*N*/ -/*N*/ delete pGridAttr; -/*N*/ delete pXGridMainAttr; -/*N*/ delete pYGridMainAttr; -/*N*/ delete pZGridMainAttr; -/*N*/ delete pXGridHelpAttr; -/*N*/ delete pYGridHelpAttr; -/*N*/ delete pZGridHelpAttr; -/*N*/ delete pDiagramAreaAttr; -/*N*/ delete pDiagramWallAttr; -/*N*/ delete pDiagramFloorAttr; -/*N*/ delete pLegendAttr; -/*N*/ delete pChartAttr; -/*N*/ delete pDummyAttr; -/*N*/ delete aLightVec; -/*N*/ -/*N*/ delete pStockLineAttr; -/*N*/ delete pStockLossAttr; -/*N*/ delete pStockPlusAttr; -/*N*/ -/*N*/ DestroyDefaultColors(); -/*N*/ delete pOutliner; -/*N*/ ClearItemSetLists(); -/*N*/ -/*N*/ // suche nach dem ChartPool in der Poolkette, loesche alle verbindungen -/*N*/ // und vernichte den pool. vorgehen ist unabhaengig von der anzahl -/*N*/ // der vorangehendem pools. [RB] -/*N*/ SfxItemPool* pPool = &GetItemPool(); -/*N*/ -/*N*/ for (;;) -/*N*/ { -/*N*/ SfxItemPool* pSecondary = pPool->GetSecondaryPool(); -/*N*/ if (pSecondary == pChItemPool) -/*N*/ { -/*N*/ pPool->SetSecondaryPool (NULL); -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ pPool = pSecondary; -/*N*/ } -/*N*/ -/*N*/ delete pChItemPool; -/*N*/ -/*N*/ delete pOwnNumFormatter; -/*N*/ -/*N*/ delete[] pPieSegOfs; -/*N*/ -/*N*/ if(pChartData) -/*N*/ { -/*N*/ if(pChartData->DecreaseRefCount()) -/*N*/ delete pChartData; -/*N*/ pChartData=NULL; -/*N*/ } -/*N*/ -/*N*/ if (pTestTextObj != NULL) delete pTestTextObj; -/*N*/ if (pLogBook) delete pLogBook; -/*N*/ -/*N*/ -/*N*/ -/*N*/ SdrObject *pObj; -/*N*/ while(pSdrObjList->GetObjCount()) -/*?*/ if((pObj=pSdrObjList->RemoveObject(0))) -/*?*/ delete pObj; -/*N*/ delete pSdrObjList; -/*N*/ -/*N*/ if(m_pUndoActionFromDraw) delete m_pUndoActionFromDraw; -/*N*/ } -/************************************************************************* -|* -|* Das Logbuch dient zur ReAttributierung, nachdem die DataBrowseBox -|* aufgerufen und Daten hinzugefuegt wurden. Die BrowseBox setzt -|* eine -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Chart-Datenstruktur auswechseln; bisherige wird ggf. geloescht; -|* Liefert TRUE, wenn die Chart-Datenstruktur gewechselt wurde. -|* -\************************************************************************/ - -/*N*/ BOOL ChartModel::ChangeChartData(SchMemChart& rData, BOOL bNewTitles,BOOL bDontBuild) -/*N*/ { -/*N*/ if (pChartData == &rData) return FALSE; -/*N*/ else -/*N*/ { -/*N*/ SetChartData(rData, bNewTitles); -/*N*/ -/*N*/ if( pDocShell && -/*N*/ pDocShell->ISA( SchChartDocShell )) -/*N*/ { -/*N*/ chart::ChartDataChangeEvent aEvent; -/*N*/ aEvent.Type = chart::ChartDataChangeType_ALL; -/*N*/ aEvent.StartColumn = 0; -/*N*/ aEvent.EndColumn = 0; -/*N*/ aEvent.StartRow = 0; -/*N*/ aEvent.EndRow = 0; -/*N*/ SAL_STATIC_CAST( SchChartDocShell*, pDocShell )->DataModified( aEvent ); -/*N*/ } -/*N*/ -/*N*/ if(!bDontBuild) -/*N*/ BuildChart(FALSE); -/*N*/ return TRUE; -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Datenzeilen in Reihen/Spalten umschalten; -|* Liefert bei Umschaltung TRUE -|* -\************************************************************************/ - -/*N*/ BOOL ChartModel::ChangeSwitchData(BOOL bSwitch) -/*N*/ { -/*N*/ if (bSwitchData == bSwitch) return FALSE; -/*N*/ else -/*N*/ { -/*N*/ bSwitchData = bSwitch; -/*N*/ -/*N*/ #ifndef NO_56798_FIX //#56798# QuickFix 5.0-Final -/*N*/ if( IsReal3D() ) -/*N*/ { -/*?*/ bClearDepth=TRUE; -/*?*/ for( size_t i = 0, nORow = aDataRowAttrList.size(); i < nORow; i++ ) -/*?*/ aDataRowAttrList[ i ]->ClearItem(SDRATTR_3DOBJ_DEPTH); -/*?*/ SfxItemSet* pAttributes; - -/*?*/ for( size_t i = 0, nORow = aDataPointAttrList.size(); i < nORow; i++ ) -/*?*/ { -/*?*/ pAttributes = aDataPointAttrList[ i ]; -/*?*/ if (pAttributes != NULL) -/*?*/ pAttributes->ClearItem(SDRATTR_3DOBJ_DEPTH); -/*?*/ } - -/*?*/ for( size_t i = 0, nORow = aSwitchDataPointAttrList.size(); i < nORow; i++ ) -/*?*/ { -/*?*/ pAttributes = aSwitchDataPointAttrList[ i ]; -/*?*/ if (pAttributes != NULL) -/*?*/ pAttributes->ClearItem(SDRATTR_3DOBJ_DEPTH); -/*?*/ } -/*N*/ } -/*N*/ #endif -/*N*/ -/*N*/ // the number of series may change, so the attribute list -/*N*/ // must be adapted -/*N*/ InitDataAttrs(); -/*N*/ -/*N*/ // BM: #68764# -/*N*/ // if global data descriptions are on transfer them to new rows -/*N*/ if( eDataDescr != CHDESCR_NONE ) -/*N*/ { -/*?*/ ChangeDataDescr( eDataDescr, bShowSym, -1, FALSE ); -/*N*/ } -/*N*/ -/*N*/ BuildChart(FALSE); -/*N*/ return TRUE; -/*N*/ } -/*N*/ } - - - - -/** @descr Set up the line attributes of every data row. This includes - the line style, width, and color. Style is set to solid, width to - the minimal width (if the given mode is not SETLINES_COMPAT). - The color depends on the given mode. - If the chart is a stock chart then all the lines are simply switched - off (by setting line style XLINE_NONE). No other attributes are - modified. - @param nMode Specifies the line color of each data row. - SETLINES_COMPAT and SETLINES_FILLCOLOR set the line color - to the fill color. SETLINES_COMPAT does not change line - style nor width. - SETLINES_REVERSE sets the fill color to the line color. - SETLINES_BLACK sets the line color to black. -*/ -/*N*/ void ChartModel::SetupLineColors( const long nMode, long nStartIndex ) //#54870# -/*N*/ { -/*N*/ long nRow, -/*N*/ nRowCnt; -/*N*/ -/*N*/ // The Row count depends (again) on wether the data set is transposed -/*N*/ // (switched) or not. Because this returns the wrong value in case of -/*N*/ // a pie chart, then we access the raw row count without regarding the -/*N*/ // transpose switch. -/*N*/ if (IsPieChart()) -/*N*/ nRowCnt = GetColCount(); // ChartData()->GetRowCount(); -/*N*/ else -/*N*/ nRowCnt = GetRowCount(); -/*N*/ -/*N*/ long nUpperIndex = ::std::min( static_cast< ULONG >( nRowCnt ), static_cast <ULONG > (aDataRowAttrList.size() ) ); -/*N*/ -/*N*/ if( nStartIndex < nUpperIndex ) -/*N*/ { -/*N*/ if (HasStockLines()) -/*N*/ { -/*N*/ // Switch off lines for stock charts. -/*N*/ for( nRow = nStartIndex; nRow < nUpperIndex; nRow++ ) -/*N*/ aDataRowAttrList[ nRow ]->Put(XLineStyleItem(XLINE_NONE)); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // Initialize the item set that will be set to all data rows. -/*N*/ // If nMode==SETLINES_COMPAT initialization is skipped and only -/*N*/ // the line colors are set to the fill colors. -/*N*/ SfxItemSet rAttr(GetItemPool(),XATTR_START,XATTR_END); -/*N*/ if(nMode != SETLINES_COMPAT) -/*N*/ { -/*N*/ // Default values represent a solid black line of minimal width. -/*N*/ rAttr.Put(XLineStyleItem(XLINE_SOLID)); -/*N*/ rAttr.Put(XLineColorItem(String(),RGBColor(COL_BLACK))); -/*N*/ rAttr.Put(XLineWidthItem (0)); -/*N*/ } -/*N*/ -/*N*/ // Set the itemset rAttr to all data rows. Depending on nMode it is first -/*N*/ // modified so that the line color is set to the fill color or the other -/*N*/ // way round. -/*N*/ // The for loop and switch statement changed places in order to not -/*N*/ // having to execute the switch statement in every iteration. -/*N*/ switch(nMode) -/*N*/ { -/*N*/ case SETLINES_COMPAT: -/*N*/ case SETLINES_FILLCOLOR: -/*N*/ // Set the line colors to the former fill colors. -/*N*/ for( nRow = nStartIndex; nRow < nUpperIndex; nRow++ ) -/*N*/ if(IsLine(nRow)) -/*N*/ { -/*N*/ rAttr.Put(XLineColorItem(String(), -/*N*/ ((XFillColorItem &)GetDataRowAttr(nRow).Get(XATTR_FILLCOLOR)). -/*N*/ GetValue())); -/*N*/ aDataRowAttrList[ nRow ]->Put(rAttr); -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case SETLINES_REVERSE: -/*N*/ // Set the fill colors to the former line colors. -/*?*/ for( nRow = nStartIndex; nRow < nUpperIndex; nRow++ ) -/*?*/ if(IsLine(nRow)) -/*?*/ { -/*?*/ rAttr.Put(XFillColorItem(String(), -/*?*/ ((XLineColorItem &)GetDataRowAttr(nRow).Get(XATTR_LINECOLOR)). -/*?*/ GetValue())); -/*?*/ aDataRowAttrList[ nRow ]->Put(rAttr); -/*?*/ } -/*?*/ break; -/*N*/ -/*N*/ case SETLINES_BLACK: -/*N*/ // Set the default values to all data rows. -/*N*/ for( nRow = nStartIndex; nRow < nUpperIndex; nRow++ ) -/*N*/ { -/*N*/ aDataRowAttrList[ nRow ]->Put(rAttr); -/*N*/ } -/*N*/ break; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Charttyp aendern; -|* Liefert bei neuem Charttyp TRUE. -|* -\************************************************************************/ -// BM: src566b: ChangeChart doesn't execute BuildChart any more! -/*N*/ BOOL ChartModel::ChangeChart( SvxChartStyle eStyle, bool bSetDefaultAttr /* = true */ ) -/*N*/ { -/*N*/ if( eStyle == CHSTYLE_ADDIN ) -/*N*/ { -/*?*/ eChartStyle = eStyle; -/*?*/ return FALSE; -/*N*/ } -/*N*/ else if( eStyle == eChartStyle ) -/*N*/ { -/*N*/ return FALSE; -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // if chart style is reset disable addin -/*N*/ if( ! GetChartStatusFlag( CHS_KEEP_ADDIN )) -/*N*/ { -/*N*/ mxChartAddIn = NULL; -/*N*/ } -/*N*/ -/*N*/ bResizePie=TRUE; -/*N*/ -/*N*/ // OldChartStyle merken -/*N*/ eOldChartStyle = eChartStyle; -/*N*/ -/*N*/ //########### Ab hier werden defaultwerte umgesetzt:######### : -/*N*/ -/*N*/ //Wenn Linien, aber nicht 3D, dann muss evtl. bei -/*N*/ //Typwechsel die Linienfarbe neu defaultet werden! -/*N*/ -/*N*/ long nRefLine=0;//Bei StockChart 3,4 ist die erste Zeile keine Linie -/*N*/ if(GetRowCount()>1) -/*N*/ nRefLine=1; -/*N*/ -/*N*/ // #101164# a combi chart may contain lines for all but the first series -/*N*/ if( eOldChartStyle == CHSTYLE_2D_LINE_COLUMN || -/*N*/ eOldChartStyle == CHSTYLE_2D_LINE_STACKEDCOLUMN ) -/*N*/ nRefLine = 0; -/*N*/ -/*N*/ BOOL bOldIsLine=IsLine(nRefLine)&& !Is3DChart();//#54870#//Verbund-Charts OK??? -/*N*/ BOOL bOldIsStock=HasStockLines(); -/*N*/ BOOL bOldIs3D=IsReal3D(); -/*N*/ BOOL bOldHadStockBars=HasStockBars(); -/*N*/ BOOL bOldXY = IsXYChart(); -/*N*/ IsNetChart(); -/*N*/ BOOL bOldPie = IsPieChart(); -/*N*/ BOOL bOldDonut = IsDonutChart(); -/*N*/ -/*N*/ eChartStyle = eStyle; -/*N*/ -/*N*/ BOOL bNewIsLine=IsLine(nRefLine) && !Is3DChart();//#54870# -/*N*/ BOOL bNewIs3D=IsReal3D(); -/*N*/ -/*N*/ // data row attributes are used for data points in a piechart -/*N*/ // therefore these need to be initialized correctly -/*N*/ BOOL bMustInitDataAttrs = (bOldPie || IsPieChart() || IsDonutChart() || bOldDonut); -/*N*/ -/*N*/ if( eStyle == CHSTYLE_3D_PIE ) -/*N*/ { -/*?*/ for( short i = 0; i < nPieSegCount; i++ ) -/*?*/ SetPieSegOfs( i, 0 ); -/*N*/ } - -/*N*/ if( bSetDefaultAttr ) -/*?*/ { -/*?*/ // BM: use gray (15%) background (wall) for some charts -/*?*/ if( HasDefaultGrayWall() != HasDefaultGrayWall( &eOldChartStyle ) ) -/*?*/ { -/*?*/ if( HasDefaultGrayWall() ) -/*?*/ { -/*?*/ pDiagramWallAttr->Put( XFillStyleItem( XFILL_SOLID )); -/*?*/ pDiagramWallAttr->Put( XFillColorItem( String(), RGBColor( RGB_COLORDATA( 0xd9, 0xd9, 0xd9 ) )) ); -/*?*/ -/*?*/ pLegendAttr->Put( XFillStyleItem( XFILL_SOLID )); -/*?*/ pLegendAttr->Put( XFillColorItem( String(), RGBColor( RGB_COLORDATA( 0xd9, 0xd9, 0xd9 ) )) ); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ pDiagramWallAttr->Put( XFillStyleItem( XFILL_NONE )); -/*?*/ pDiagramWallAttr->Put( XFillColorItem( String(), RGBColor( COL_WHITE )) ); -/*?*/ -/*?*/ pLegendAttr->Put( XFillStyleItem( XFILL_NONE )); -/*?*/ pLegendAttr->Put( XFillColorItem( String(), RGBColor( COL_WHITE )) ); -/*?*/ } -/*?*/ } -/*?*/ -/*?*/ // BM: use gray (15%) background (area) for some charts -/*?*/ if( HasDefaultGrayArea() != HasDefaultGrayArea( &eOldChartStyle ) ) -/*?*/ { -/*?*/ if( HasDefaultGrayArea() ) -/*?*/ { -/*?*/ pDiagramAreaAttr->Put( XFillStyleItem( XFILL_SOLID )); -/*?*/ pDiagramAreaAttr->Put( XFillColorItem( String(), RGBColor( RGB_COLORDATA( 0xd9, 0xd9, 0xd9 ) )) ); -/*?*/ -/*?*/ pLegendAttr->Put( XFillStyleItem( XFILL_SOLID )); -/*?*/ pLegendAttr->Put( XFillColorItem( String(), RGBColor( RGB_COLORDATA( 0xd9, 0xd9, 0xd9 ) )) ); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ pDiagramAreaAttr->Put( XFillColorItem( String(), RGBColor( COL_WHITE )) ); -/*?*/ -/*?*/ pLegendAttr->Put( XFillStyleItem( XFILL_NONE )); -/*?*/ pLegendAttr->Put( XFillColorItem( String(), RGBColor( COL_WHITE )) ); -/*?*/ } -/*?*/ } -/*?*/ } -/*?*/ -/*N*/ if(bNewIsLine != bOldIsLine) -/*N*/ { -/*?*/ // map old line colors to new fill colors -/*?*/ if( bNewIsLine ) -/*?*/ { -/*?*/ if( bOldPie ) -/*?*/ { -/*?*/ InitDataAttrs(); -/*?*/ bMustInitDataAttrs = FALSE; -/*?*/ } -/*?*/ SetupLineColors( SETLINES_COMPAT ); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ if( IsPieChart() ) -/*?*/ { -/*?*/ InitDataAttrs(); -/*?*/ bMustInitDataAttrs = FALSE; -/*?*/ } -/*?*/ SetupLineColors( SETLINES_BLACK ); -/*?*/ } -/*?*/ -/*?*/ } - -/*N*/ if( bMustInitDataAttrs ) -/*N*/ { -/*?*/ InitDataAttrs(); -/*?*/ bMustInitDataAttrs = FALSE; -/*N*/ } -/*N*/ -/*N*/ if(bOldXY!=IsXYChart()) -/*N*/ { -/*?*/ if(bOldXY) -/*?*/ aDataRowAttrList[ 0 ]->Put(SfxInt32Item(SCHATTR_AXIS,CHART_AXIS_PRIMARY_Y));//wird evtl. unten ge?dert, s.u. StockCharts -/*?*/ else -/*?*/ aDataRowAttrList[ 0 ]->Put(SfxInt32Item(SCHATTR_AXIS,CHART_AXIS_PRIMARY_X)); -/*?*/ -/*?*/ CheckForNewAxisNumFormat(); // BM #59532# -/*N*/ } -/*N*/ -/*N*/ -/*N*/ long nRowCnt = aDataRowAttrList.size(); -/*N*/ if( (bOldIsStock && !HasStockLines()) || (bOldIs3D && !bNewIs3D) ) -/*N*/ { - long n=0; -/*?*/ for(n=0;n<nRowCnt;n++) -/*?*/ aDataRowAttrList[ n ]->Put(XLineStyleItem(XLINE_SOLID)); - -/*?*/ long nColCnt=aDataPointAttrList.size(); -/*?*/ SfxItemSet* pAttributes; -/*?*/ for(n=0;n<nColCnt;n++) -/*?*/ { -/*?*/ pAttributes = aDataPointAttrList[ n ]; -/*?*/ if (pAttributes != NULL) -/*?*/ pAttributes->ClearItem(XATTR_LINESTYLE); -/*?*/ } - -/*?*/ nColCnt=aSwitchDataPointAttrList.size(); -/*?*/ for(n=0;n<nColCnt;n++) -/*?*/ { -/*?*/ pAttributes = aSwitchDataPointAttrList[ n ]; -/*?*/ if (pAttributes != NULL) -/*?*/ pAttributes->ClearItem(XATTR_LINESTYLE); -/*?*/ } -/*?*/ } -/*N*/ if( (!bOldIsStock && HasStockLines()) || (!bOldIs3D && bNewIs3D) ) -/*N*/ { - long n=0; -/*N*/ for(n=0;n<nRowCnt;n++) -/*N*/ aDataRowAttrList[ n ]->Put(XLineStyleItem(XLINE_NONE)); - -/*N*/ long nColCnt=aDataPointAttrList.size(); -/*N*/ SfxItemSet* pAttributes; -/*N*/ for(n=0;n<nColCnt;n++) -/*N*/ { -/*N*/ pAttributes = aDataPointAttrList[ n ]; -/*N*/ if (pAttributes != NULL) -/*?*/ pAttributes->ClearItem(XATTR_LINESTYLE); -/*N*/ } - -/*N*/ nColCnt=aSwitchDataPointAttrList.size(); -/*N*/ for(n=0;n<nColCnt;n++) -/*N*/ { -/*N*/ pAttributes = aSwitchDataPointAttrList[ n ]; -/*N*/ if (pAttributes != NULL) -/*?*/ pAttributes->ClearItem(XATTR_LINESTYLE); -/*N*/ } -/*N*/ } -/*N*/ if( HasStockBars() )//Hat Balken im Hintergrund (ab jetzt oder Typ 3 <-> 4, #65070#) -/*N*/ { -/*?*/ if(nRowCnt) -/*?*/ { -/*?*/ aDataRowAttrList[ 0 ]->Put(SfxInt32Item(SCHATTR_AXIS,CHART_AXIS_PRIMARY_Y)); -/*?*/ aDataRowAttrList[ 0 ]->Put(XLineStyleItem(XLINE_SOLID)); -/*?*/ } -/*?*/ for(long n=1;n<nRowCnt;n++) -/*?*/ aDataRowAttrList[ n ]->Put(SfxInt32Item(SCHATTR_AXIS,CHART_AXIS_SECONDARY_Y)); -/*?*/ pChartBAxis->ShowAxis(TRUE); -/*?*/ pChartBAxis->ShowDescr(TRUE); -/*?*/ SfxItemSet aSet(*pItemPool,SCHATTR_AXIS_AUTO_ORIGIN,SCHATTR_AXIS_AUTO_ORIGIN); -/*?*/ aSet.Put(SfxBoolItem(SCHATTR_AXIS_AUTO_ORIGIN,TRUE)); -/*?*/ pChartBAxis->SetAttributes(aSet); -/*?*/ -/*?*/ // #100923# -/*?*/ SfxItemSet aSet2( *pItemPool, SCHATTR_AXIS_AUTO_ORIGIN, SCHATTR_AXIS_ORIGIN ); -/*?*/ aSet2.Put( SfxBoolItem( SCHATTR_AXIS_AUTO_ORIGIN, FALSE )); -/*?*/ aSet2.Put( SvxDoubleItem( 0.0, SCHATTR_Y_AXIS_ORIGIN )); -/*?*/ pChartYAxis->SetAttributes( aSet2 ); -/*?*/ } -/*?*/ -/*N*/ if(bOldHadStockBars && !HasStockBars())//hat jetzt keine Balken mehr -/*?*/ { -/*?*/ for(long n=0;n<nRowCnt;n++) -/*?*/ aDataRowAttrList[ n ]->Put(SfxInt32Item(SCHATTR_AXIS,CHART_AXIS_PRIMARY_Y)); -/*?*/ if(IsXYChart()) -/*?*/ aDataRowAttrList[ 0 ]->Put(SfxInt32Item(SCHATTR_AXIS,CHART_AXIS_PRIMARY_X)); -/*?*/ pChartBAxis->ShowAxis(FALSE); -/*?*/ pChartBAxis->ShowDescr(FALSE); -/*?*/ } - - // use default position if base type changed -/*N*/ ChartType aOldType( eOldChartStyle ); -/*N*/ ChartType aNewType( eChartStyle ); -/*N*/ -/*N*/ if( aOldType.GetBaseType() != -/*N*/ aNewType.GetBaseType() ) -/*N*/ { -/*?*/ SetUseRelativePositions( FALSE ); -/*N*/ } -/*N*/ -/*N*/ Matrix4D aTmp; -/*N*/ aSceneMatrix = aTmp; -/*N*/ if(IsPieChart() && IsReal3D() ) -/*N*/ { -/*?*/ aSceneMatrix.RotateX(-F_PI/3); -/*?*/ if(pScene) -/*?*/ pScene->NbcSetTransform(aSceneMatrix); -/*N*/ } -/*N*/ else if(pScene) -/*?*/ pScene->NbcSetTransform(aSceneMatrix); -/*N*/ -/*N*/ -/*N*/ if( IsReal3D()) //#56798# QuickFix 5.0-Final -/*N*/ { -/*N*/ bClearDepth=TRUE; -/*N*/ size_t i, nORow=aDataRowAttrList.size(); -/*N*/ for(i=0;i<nORow;i++) -/*N*/ { -/*N*/ aDataRowAttrList[ i ]->ClearItem( SDRATTR_3DOBJ_DEPTH ); -/*N*/ aDataRowAttrList[ i ]->Put( Svx3DDoubleSidedItem( TRUE )); -/*N*/ } -/*N*/ nORow=aDataPointAttrList.size(); -/*N*/ SfxItemSet* pAttributes; -/*N*/ for(i=0;i<nORow;i++) -/*N*/ { -/*N*/ pAttributes = aDataPointAttrList[ i ]; -/*N*/ if (pAttributes != NULL) -/*N*/ { -/*?*/ pAttributes->ClearItem( SDRATTR_3DOBJ_DEPTH ); -/*?*/ pAttributes->ClearItem( SDRATTR_3DOBJ_DOUBLE_SIDED ); -/*N*/ } -/*N*/ } -/*N*/ nORow=aSwitchDataPointAttrList.size(); -/*N*/ for(i=0;i<nORow;i++) -/*N*/ { -/*N*/ pAttributes = aSwitchDataPointAttrList[ i ]; -/*N*/ if (pAttributes != NULL) -/*N*/ { -/*?*/ pAttributes->ClearItem( SDRATTR_3DOBJ_DEPTH ); -/*?*/ pAttributes->ClearItem( SDRATTR_3DOBJ_DOUBLE_SIDED ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ // switch off rounded edges for: -/*N*/ // area charts -/*N*/ Svx3DPercentDiagonalItem aItem( -/*N*/ (eStyle == CHSTYLE_3D_AREA || eStyle == CHSTYLE_3D_STACKEDAREA || eStyle == CHSTYLE_3D_PERCENTAREA || -/*N*/ eStyle == CHSTYLE_3D_PIE ) -/*N*/ ? 0 : 5 ); -/*N*/ -/*N*/ // item-set for whole chart used if item in series is not set -/*N*/ pDummyAttr->Put( aItem ); -/*N*/ -/*N*/ for( i = 0; i < aDataRowAttrList.size(); i++ ) -/*N*/ { -/*N*/ aDataRowAttrList[ i ]->Put( aItem ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ // If set to xy-chart or certain stock chart variants then turn on -/*N*/ // automatic calculation of the origin for all y-axes as default. -/*N*/ // This affects the second y-axis even if it is not (yet) visible. -/*N*/ // This was previously done in the autopilot but belongs here -/*N*/ // because XML loading calls this method but not the autopilot. -/*N*/ if ( IsXYChart() -/*N*/ || (eChartStyle == CHSTYLE_2D_STOCK_1) -/*N*/ || (eChartStyle == CHSTYLE_2D_STOCK_2)) -/*N*/ { -/*?*/ SfxItemSet aAutoOrigin (*pItemPool, SCHATTR_AXIS_AUTO_ORIGIN, SCHATTR_AXIS_AUTO_ORIGIN); -/*?*/ aAutoOrigin.Put (SfxBoolItem (SCHATTR_AXIS_AUTO_ORIGIN, TRUE)); -/*?*/ pChartYAxis->SetAttributes (aAutoOrigin); -/*?*/ // The second y-axis exists (pChartBAxis!=NULL) even if it is not -/*?*/ // visible. -/*?*/ pChartBAxis->SetAttributes (aAutoOrigin); -/*N*/ } -/*N*/ -/*N*/ SetUseRelativePositions(TRUE);// New arrangement (see SID_NEW_ARRANGEMENT) -/*N*/ eOldChartStyle = eChartStyle; -/*N*/ -/*N*/ // Set the number of data series that are displayed as lines to a fixed value. -/*N*/ // This is one for the combined chart types of columns/stacked columns and lines -/*N*/ // and zero for all other chart types. -/*N*/ -/*N*/ // #104525# however the default for a combi-chart is one line. So if -/*N*/ // the setting is on 0, we have to change it to 1. -/*N*/ if( ( eStyle == CHSTYLE_2D_LINE_COLUMN -/*N*/ || eStyle == CHSTYLE_2D_LINE_STACKEDCOLUMN ) -/*N*/ && GetNumLinesColChart() == 0 ) -/*N*/ { -/*?*/ SetNumLinesColChart( 1 ); -/*N*/ } -/*N*/ -/*N*/ // broadcast UIFeature chang -/*N*/ // #85069# introduced because the 3d effect flyer has to be disabled for 2d charts -/*N*/ Broadcast( SfxSimpleHint( SFX_HINT_MODECHANGED )); -/*N*/ -/*N*/ return TRUE; -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* -\************************************************************************/ - - - -/************************************************************************* -|* -|* Language setzen -|* -\************************************************************************/ - -/*N*/ void ChartModel::SetLanguage( const LanguageType eLang, const USHORT nId ) -/*N*/ { -/*N*/ BOOL bLclChanged = FALSE; -/*N*/ -/*N*/ if( nId == EE_CHAR_LANGUAGE && eLanguage != eLang ) -/*N*/ { -/*N*/ eLanguage = eLang; -/*N*/ bLclChanged = TRUE; -/*N*/ } -/*N*/ else if( nId == EE_CHAR_LANGUAGE_CJK && eLanguageCJK != eLang ) -/*N*/ { -/*N*/ eLanguageCJK = eLang; -/*N*/ bLclChanged = TRUE; -/*N*/ } -/*N*/ else if( nId == EE_CHAR_LANGUAGE_CTL && eLanguageCTL != eLang ) -/*N*/ { -/*N*/ eLanguageCTL = eLang; -/*N*/ bLclChanged = TRUE; -/*N*/ } -/*N*/ -/*N*/ if( bLclChanged ) -/*N*/ { -/*N*/ GetDrawOutliner().SetDefaultLanguage( eLang ); -/*N*/ pOutliner->SetDefaultLanguage( eLang ); -/*N*/ pItemPool->SetPoolDefaultItem( SvxLanguageItem( eLang, nId ) ); -/*N*/ SetChanged( bLclChanged ); -/*N*/ } -/*N*/ } - - -/************************************************************************* -|* -|* Return language -|* -\************************************************************************/ - -/*N*/ LanguageType ChartModel::GetLanguage( const USHORT nId ) const -/*N*/ { -/*N*/ LanguageType eLangType = eLanguage; -/*N*/ -/*N*/ if( nId == EE_CHAR_LANGUAGE_CJK ) -/*N*/ eLangType = eLanguageCJK; -/*N*/ else if( nId == EE_CHAR_LANGUAGE_CTL ) -/*N*/ eLangType = eLanguageCTL; -/*N*/ -/*N*/ return eLangType; -/*N*/ } - -IMPL_LINK( ChartModel, NotifyUndoActionHdl, SfxUndoAction*, pUndo ) -{ - DBG_ASSERT(!m_pUndoActionFromDraw, "New UndoAction from Draw received while elder is not handled yet"); - if(m_bDeleteUndoActionNotificationFromDraw) - { - if(pUndo) - delete pUndo; - } - else - { - m_pUndoActionFromDraw = pUndo; - } - return 1; -}} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_chtscene.cxx b/binfilter/bf_sch/source/core/sch_chtscene.cxx deleted file mode 100644 index 2f7eacfe0..000000000 --- a/binfilter/bf_sch/source/core/sch_chtscene.cxx +++ /dev/null @@ -1,265 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma hdrstop -#endif - - - -#include "axisid.hxx" -#include "chtscene.hxx" -namespace binfilter { - -#ifdef _MSC_VER -#pragma optimize ("",off) -#endif - - -/*N*/ TYPEINIT1(ChartScene, E3dPolyScene); - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ ChartScene::ChartScene(ChartModel* pDocument) : -/*N*/ E3dPolyScene(), -/*N*/ pDoc(pDocument), -/*N*/ bAskForLogicRect(TRUE) -/*N*/ { -/*N*/ nSortingMode = E3D_SORT_LOOKUP_FIELD | E3D_SORT_NON_POLYOBJ | E3D_SORT_TEST_LENGTH; -/*N*/ Initialize(); -/*N*/ SetModel( pDocument ); -/*N*/ } - -/************************************************************************* -|* -|* Destruktor -|* -\************************************************************************/ - -/*N*/ ChartScene::~ChartScene () -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Einpassen der Projektion aller Szenenobjekte in das -|* umschliessende Rechteck -|* -\************************************************************************/ - -/*N*/ Volume3D ChartScene::FitInSnapRect() -/*N*/ { -/*N*/ // untransformiertes BoundVolume holen und parent rufen -/*N*/ Volume3D aNewVol = E3dScene::FitInSnapRect(); -/*N*/ -/*N*/ // Groesse etwas anpassen, umPlatz am Rand des Charts fu schaffen -/*N*/ aNewVol.MinVec () = Vector3D ( -/*N*/ aNewVol.MinVec ().X () * 1.2, -/*N*/ aNewVol.MinVec ().Y () * 1.2, -/*N*/ aNewVol.MinVec ().Z ()); -/*N*/ aNewVol.MaxVec () = Vector3D ( -/*N*/ aNewVol.MaxVec ().X () * 1.2, -/*N*/ aNewVol.MaxVec ().Y () * 1.2, -/*N*/ aNewVol.MaxVec ().Z ()); -/*N*/ -/*N*/ SetRectsDirty(FALSE); -/*N*/ return aNewVol; -/*N*/ } - -/************************************************************************* -|* -|* Erstelle die 3D-Achsenbeschriftung //war mal in globfunc.cxx -|* -\************************************************************************/ - -/*N*/ void ChartScene::InsertAllTitleText (DescrList &rList, -/*N*/ E3dObject * /*pGroup*/, -/*N*/ long nAxisId) -/*N*/ { -/*N*/ Rectangle aOldRect; -/*N*/ - for ( size_t i = 0, n = rList.size(); i < n; ++i ) - { - E3dLabelObj *pLabel = rList[ i ]; -/*N*/ Insert3DObj(pLabel); -/*N*/ pLabel->InsertUserData (new SchAxisId (nAxisId)); -/*N*/ } -/*N*/ } -/*N*/ Rectangle ChartScene::Get3DDescrRect(E3dLabelObj *p3DObj,B3dCamera& rCamSet ) -/*N*/ { -/*N*/ const SdrObject* pObj = p3DObj->Get2DLabelObj(); -/*N*/ // View- Abmessungen des Labels holen -/*N*/ Rectangle aRect = pObj->GetLogicRect(); -/*N*/ -/*N*/ // Position des Objektes in Weltkoordinaten ermitteln -/*N*/ Vector3D aObjPos = p3DObj->GetFullTransform() * p3DObj->GetPosition(); -/*N*/ aObjPos = rCamSet.WorldToViewCoor(aObjPos); -/*N*/ Point aPoint((long)(aObjPos.X() + 0.5), (long)(aObjPos.Y() + 0.5)); -/*N*/ -/*N*/ // Relative Position des Labels in View-Koordinaten -/*N*/ Point aRelPosOne = pObj->GetRelativePos(); -/*N*/ aRelPosOne += aPoint; -/*N*/ -/*N*/ aRect.SetPos(aRelPosOne); -/*N*/ return aRect; -/*N*/ } - -/*N*/ void ChartScene::ReduceDescrList(DescrList & aList) -/*N*/ { -/*N*/ -/*N*/ Rectangle aIntersect(0,0,0,0); -/*N*/ Rectangle aPrevRect(0,0,0,0); -/*N*/ Rectangle aNextRect(0,0,0,0); -/*N*/ -/*N*/ //Transformation berechnen, die sp?er im Paint ausgef?rt wird, -/*N*/ //(Derzeit sind die Labelobject-Positionen unbekannt) -/*N*/ Rectangle aBound(GetSnapRect()); -/*N*/ Volume3D aVolume = FitInSnapRect(); -/*N*/ B3dCamera& rSet = GetCameraSet(); -/*N*/ rSet.SetDeviceRectangle(aVolume.MinVec().X(), aVolume.MaxVec().X(), -/*N*/ aVolume.MinVec().Y(), aVolume.MaxVec().Y(), FALSE); -/*N*/ rSet.SetFrontClippingPlane(aVolume.MinVec().Z()); -/*N*/ rSet.SetBackClippingPlane(aVolume.MaxVec().Z()); -/*N*/ rSet.SetViewportRectangle(aBound); -/*N*/ - size_t i = 0; -/*N*/ E3dLabelObj *p3DObj = aList.empty() ? NULL : aList[ 0 ]; -/*N*/ E3dLabelObj *pOld3DObj=p3DObj; -/*N*/ BOOL bGetCurrent=FALSE; -/*N*/ -/*N*/ if(p3DObj) -/*N*/ { -/*N*/ const SdrTextObj* pObj = (const SdrTextObj*)p3DObj->Get2DLabelObj(); -/*N*/ -/*N*/ //Es reicht, die Rotation des ersten Elements zu ermitteln, -/*N*/ //alle in der Liste sind gleicherma?n gedreht -/*N*/ //GetRotateAngle() gibt 100tel, gebraucht werden 10tel Grad. -/*N*/ long nAngle = pObj->GetRotateAngle()/10; -/*N*/ -/*N*/ aPrevRect=Get3DDescrRect(p3DObj,rSet); -/*N*/ if(nAngle!=0) -/*N*/ { -/*?*/ //Um TopLeft drehen, so wie es sp?er gezeichnet wird -/*?*/ XPolygon aPoly(aPrevRect); -/*?*/ aPoly.Rotate(aPrevRect.TopLeft(),(USHORT)nAngle); -/*?*/ //und um den Koordinaten-Ursprung herum zur?kdrehen -/*?*/ //um wieder Rectangles zu erhalten (f? Intersect) -/*?*/ aPoly.Rotate(Point(0,0),(USHORT)(3600 - nAngle)); -/*?*/ aPrevRect=aPoly.GetBoundRect(); -/*N*/ } -/*N*/ -/*N*/ while(p3DObj) -/*N*/ { -/*N*/ //n?hstes Objekt holen, abh?gig davon, ob das zuletzt behandelte -/*N*/ //entfernt wurde oder nicht (bGetCurrent) -/*N*/ if(bGetCurrent) -/*N*/ { -/*?*/ p3DObj = aList[ i ]; -/*N*/ } -/*N*/ else -/*N*/ { - ++i; - p3DObj = ( i < aList.size() ) ? aList[ i ] : NULL; -/*N*/ } -/*N*/ bGetCurrent=FALSE; -/*N*/ -/*N*/ //Da insbesondere bei Remove() des letzten Objects sowohl Next() -/*N*/ //als auch GetCurObject() den alten Pointer zur?kgeben, -/*N*/ //wird getestet, ob tats?hlich verschiedene Objekte vorliegen -/*N*/ DBG_ASSERT(p3DObj!=pOld3DObj,"Chart: pointers equal in Scene:reduce..."); -/*N*/ if(p3DObj && p3DObj!=pOld3DObj) -/*N*/ { -/*N*/ pOld3DObj=p3DObj; -/*N*/ -/*N*/ aNextRect=Get3DDescrRect(p3DObj,rSet); -/*N*/ -/*N*/ if(nAngle!=0) -/*N*/ { -/*?*/ //Um TopLeft drehen (wie oben): -/*?*/ XPolygon aPoly(aNextRect); -/*?*/ aPoly.Rotate(aNextRect.TopLeft(),(USHORT)nAngle); -/*?*/ //und um den Ursprung herum zur?kdrehen -/*?*/ aPoly.Rotate(Point(0,0),(USHORT)(3600 - nAngle)); -/*?*/ aNextRect=aPoly.GetBoundRect(); -/*N*/ } -/*N*/ -/*N*/ aIntersect=aNextRect.GetIntersection(aPrevRect); -/*N*/ if( ! (aIntersect.IsEmpty()) -/*N*/ && ( (aIntersect.GetHeight()>aNextRect.GetHeight()/100) -/*N*/ ||(aIntersect.GetWidth() >aNextRect.GetHeight()/100)//2% Deckung maximal bezogen auf die Fonth?e -/*N*/ ) -/*N*/ ) -/*N*/ { -/*N*/ E3dObject* pParent=p3DObj->GetParentObj(); -/*N*/ if(pParent) -/*N*/ { -/*N*/ //aus der Page streichen -/*N*/ pParent->Remove3DObj(p3DObj); -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ OSL_TRACE("Chart:: Object has no parent (Scene)"); -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ aPrevRect=aNextRect; -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ } - -/*N*/ void ChartScene::Initialize() -/*N*/ { -/*N*/ // #66930# BM activate second light source and deactivate first one -/*N*/ // reason: the first light source is in contrast to the other seven -/*N*/ // lightsources specular by default -/*N*/ -/*N*/ // Note: Use items at the scene instead of methods at the subobjects -/*N*/ // otherwise settings get overwritten later -/*N*/ -/*N*/ // copy lightsource 1 (Base3DLight0) to lightsource 2 -/*N*/ // color -/*N*/ SetItem( Svx3DLightcolor2Item( GetLightGroup().GetIntensity( Base3DMaterialDiffuse, Base3DLight0 ))); -/*N*/ // direction -/*N*/ SetItem( Svx3DLightDirection2Item( GetLightGroup().GetDirection( Base3DLight0 ))); -/*N*/ -/*N*/ // enable light source 2 -/*N*/ SetItem( Svx3DLightOnOff2Item( TRUE )); -/*N*/ // disable light source 1 -/*N*/ SetItem( Svx3DLightOnOff1Item( FALSE )); -/*N*/ } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_datalog.cxx b/binfilter/bf_sch/source/core/sch_datalog.cxx deleted file mode 100644 index 7b893d8aa..000000000 --- a/binfilter/bf_sch/source/core/sch_datalog.cxx +++ /dev/null @@ -1,37 +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. - * - ************************************************************************/ -#include "datalog.hxx" -namespace binfilter { - -/*N*/ SchDataLogBook::~SchDataLogBook() -/*N*/ {DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_datapoin.cxx b/binfilter/bf_sch/source/core/sch_datapoin.cxx deleted file mode 100644 index a09e82139..000000000 --- a/binfilter/bf_sch/source/core/sch_datapoin.cxx +++ /dev/null @@ -1,153 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma hdrstop -#endif - -#include <bf_svx/svditer.hxx> - -#include "datapoin.hxx" -#include "glob.hxx" -#include <tools/debug.hxx> -namespace binfilter { -/************************************************************************* -|* -|* Datenpunkt ermitteln -|* -\************************************************************************/ - -/*N*/ SchDataPoint* GetDataPoint(const SdrObject& rObj) -/*N*/ {//#63904 2x Schleife (15%), 50% pData, 18% id -/*N*/ USHORT i=rObj.GetUserDataCount(); -/*N*/ while(i--) -/*N*/ { -/*N*/ SdrObjUserData *pData = rObj.GetUserData(i); -/*N*/ if (pData && pData->GetId() == SCH_DATAPOINT_ID) -/*N*/ return (SchDataPoint*)pData; -/*N*/ } -/*N*/ -/*N*/ return NULL; -/*N*/ } - -/************************************************************************* -|* -|* Objekt mit Datenpunkt-Indizes suchen; -|* liefert NULL, wenn kein Objekt gefunden wurde. -|* -\************************************************************************/ - -/*N*/ SdrObject* GetObjWithColRow(short nCol, short nRow, -/*N*/ const SdrObjList& rObjList, ULONG* pIndex) -/*N*/ { -/*N*/ ULONG nIndex = 0; -/*N*/ -/*N*/ SdrObjListIter aIterator(rObjList, IM_FLAT); -/*N*/ while (aIterator.IsMore()) -/*N*/ { -/*N*/ SdrObject* pObj = aIterator.Next(); -/*N*/ SchDataPoint* pDataPoint = GetDataPoint(*pObj); -/*N*/ if (pDataPoint && pDataPoint->GetCol() == nCol && -/*N*/ pDataPoint->GetRow() == nRow) -/*N*/ { -/*N*/ if (pIndex) -/*N*/ *pIndex = nIndex; -/*N*/ return pObj; -/*N*/ } -/*N*/ -/*N*/ nIndex++; -/*N*/ } -/*N*/ -/*N*/ return NULL; -/*N*/ } - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchDataPoint::SchDataPoint() : -/*N*/ SdrObjUserData(SchInventor, SCH_DATAPOINT_ID, 0), -/*N*/ nCol(0), -/*N*/ nRow(0) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchDataPoint::SchDataPoint(short nC, short nR) : -/*N*/ SdrObjUserData(SchInventor, SCH_DATAPOINT_ID, 0), -/*N*/ nCol(nC), -/*N*/ nRow(nR) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Kopier-Konstruktor -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Kopie erzeugen -|* -\************************************************************************/ - -/*N*/ SdrObjUserData* SchDataPoint::Clone(SdrObject *) const -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); return NULL; -/*N*/ } - -/************************************************************************* -|* -|* Daten aus Stream lesen -|* -\************************************************************************/ - -/*N*/ void SchDataPoint::ReadData(SvStream& rIn) -/*N*/ { -/*N*/ SdrObjUserData::ReadData(rIn); -/*N*/ -/*N*/ INT16 nInt16; -/*N*/ -/*N*/ rIn >> nInt16; nCol = (short)nInt16; -/*N*/ rIn >> nInt16; nRow = (short)nInt16; -/*N*/ } - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_datarow.cxx b/binfilter/bf_sch/source/core/sch_datarow.cxx deleted file mode 100644 index b59817437..000000000 --- a/binfilter/bf_sch/source/core/sch_datarow.cxx +++ /dev/null @@ -1,141 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma hdrstop -#endif -#include <bf_svx/svditer.hxx> - -#include "datarow.hxx" -#include "glob.hxx" -#include <tools/debug.hxx> -namespace binfilter { -/************************************************************************* -|* -|* Datenreihen-Index ermitteln -|* -\************************************************************************/ - -/*N*/ SchDataRow* GetDataRow(const SdrObject& rObj) -/*N*/ { -/*N*/ USHORT i=rObj.GetUserDataCount();//#63904 2x Schleife (15%), 50% pData, 18% id -/*N*/ while(i--) -/*N*/ { -/*N*/ SdrObjUserData *pData = rObj.GetUserData(i); -/*N*/ if (pData && pData->GetId() == SCH_DATAROW_ID) -/*N*/ return (SchDataRow*)pData; -/*N*/ } -/*N*/ -/*N*/ return NULL; -/*N*/ } - -/************************************************************************* -|* -|* Objekt mit Datenreihen-Index suchen; -|* liefert NULL, wenn kein Objekt gefunden wurde. -|* -\************************************************************************/ - -/*N*/ SdrObject* GetObjWithRow(short nRow, const SdrObjList& rObjList, -/*N*/ ULONG* pIndex) -/*N*/ { -/*N*/ ULONG nIndex = 0; -/*N*/ -/*N*/ SdrObjListIter aIterator(rObjList, IM_FLAT); -/*N*/ while (aIterator.IsMore()) -/*N*/ { -/*N*/ SdrObject* pObj = aIterator.Next(); -/*N*/ SchDataRow* pDataRow = GetDataRow(*pObj); -/*N*/ if (pDataRow && pDataRow->GetRow() == nRow) -/*N*/ { -/*N*/ if (pIndex) -/*N*/ *pIndex = nIndex; -/*N*/ return pObj; -/*N*/ } -/*N*/ -/*N*/ nIndex++; -/*N*/ } -/*N*/ -/*N*/ return NULL; -/*N*/ } - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchDataRow::SchDataRow() : -/*N*/ SdrObjUserData(SchInventor, SCH_DATAROW_ID, 0), -/*N*/ nRow(0) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchDataRow::SchDataRow(short nR) : -/*N*/ SdrObjUserData(SchInventor, SCH_DATAROW_ID, 0), -/*N*/ nRow(nR) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Kopie erzeugen -|* -\************************************************************************/ - -/*N*/ SdrObjUserData* SchDataRow::Clone(SdrObject *) const -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); return NULL; -/*N*/ } - -/************************************************************************* -|* -|* Daten aus Stream lesen -|* -\************************************************************************/ - -/*N*/ void SchDataRow::ReadData(SvStream& rIn) -/*N*/ { -/*N*/ SdrObjUserData::ReadData(rIn); -/*N*/ -/*N*/ INT16 nInt16; -/*N*/ -/*N*/ rIn >> nInt16; nRow = (short)nInt16; -/*N*/ } - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_glob.src b/binfilter/bf_sch/source/core/sch_glob.src deleted file mode 100644 index 1b8c35c49..000000000 --- a/binfilter/bf_sch/source/core/sch_glob.src +++ /dev/null @@ -1,507 +0,0 @@ -/************************************************************************* - * - * 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. - * - ************************************************************************/ -#define NO_LOCALIZE_EXPORT - -#include "glob.hrc" -String STR_LAYOUT -{ - Text [ de ] = "Layout" ; - Text [ en-US ] = "Layout" ; - Text[ pt ] = "Configuração"; - Text[ ru ] = "Разметка"; - Text[ el ] = "Διάταξη"; - Text[ nl ] = "Lay-out"; - Text[ fr ] = "Mise en page"; - Text[ es ] = "Diseño"; - Text[ fi ] = "Asettelu"; - Text[ ca ] = "Format"; - Text[ it ] = "Layout"; - Text[ da ] = "Layout"; - Text[ sv ] = "Layout"; - Text[ pl ] = "UkÅ‚ad"; - Text[ pt-BR ] = "Layout"; - Text[ th ] = "เค้าโครง"; - Text[ ja ] = "レイアウト"; - Text[ ko ] = "ë ˆì´ì•„웃"; - Text[ zh-CN ] = "版å¼"; - Text[ zh-TW ] = "版å¼"; - Text[ tr ] = "Sayfa düzeni"; - Text[ hi-IN ] = "अà¤à¤¿à¤¨à¥à¤¯à¤¾à¤¸"; - Text[ ar ] = "تخطيط"; - Text[ he ] = "‮פריסה‬"; -}; -String STR_CONTROLS -{ - Text [ de ] = "Controls" ; - Text [ en-US ] = "Controls" ; - Text[ pt ] = "Controlos"; - Text[ ru ] = "Ðлементы управлениÑ"; - Text[ el ] = "Στοιχεία ελÎγχου"; - Text[ nl ] = "Controls"; - Text[ fr ] = "Contrôles"; - Text[ es ] = "Controles"; - Text[ fi ] = "Ohjausobjektit"; - Text[ ca ] = "Controls"; - Text[ it ] = "Campi di controllo"; - Text[ da ] = "Kontrolelementer"; - Text[ sv ] = "Controls"; - Text[ pl ] = "Formanty"; - Text[ pt-BR ] = "Controles"; - Text[ th ] = "ตัวควบคุม"; - Text[ ja ] = "コントãƒãƒ¼ãƒ«"; - Text[ ko ] = "컨트롤"; - Text[ zh-CN ] = "控件"; - Text[ zh-TW ] = "æŽ§åˆ¶é …"; - Text[ tr ] = "Komut alanları"; - Text[ hi-IN ] = "नियंतà¥à¤°à¤£"; - Text[ ar ] = "عناصر تØكم"; - Text[ he ] = "‮פקדי×‬"; -}; -String STR_CHARTVIEWSHELL -{ - Text [ de ] = "Diagrammmodus" ; - Text [ en-US ] = "Chart mode" ; - Text[ pt ] = "Modo Gráfico"; - Text[ ru ] = "Режим диаграммы"; - Text[ el ] = "Κατάσταση διαγÏάμματος"; - Text[ nl ] = "Diagrammodus"; - Text[ fr ] = "Mode Diagramme"; - Text[ es ] = "Modo diagrama"; - Text[ fi ] = "Kaaviotila"; - Text[ ca ] = "Mode del diagrama"; - Text[ it ] = "Modo diagramma"; - Text[ da ] = "Diagrammodus"; - Text[ sv ] = "Diagramläge"; - Text[ pl ] = "Tryb wykresu"; - Text[ pt-BR ] = "Modo Gráfico"; - Text[ th ] = "โหมดà¹à¸œà¸™à¸ ูมิ"; - Text[ ja ] = "グラフ モード"; - Text[ ko ] = "차트 모드"; - Text[ zh-CN ] = "图表模å¼"; - Text[ zh-TW ] = "圖表模å¼"; - Text[ tr ] = "Åžema kipi"; - Text[ hi-IN ] = "चारà¥à¤Ÿ पà¥à¤°à¤•à¤¾à¤°"; - Text[ ar ] = "وضع الرسم البياني"; - Text[ he ] = "‮תרשי×‬"; -}; -String STR_STDOBJECTBARSHELL -{ - Text [ de ] = "Diagrammleiste" ; - Text [ en-US ] = "Chart Bar" ; - Text[ pt ] = "Barra de gráficos"; - Text[ ru ] = "Панель диаграммы"; - Text[ el ] = "ΓÏαμμή διαγÏάμματος"; - Text[ nl ] = "Diagrammenbalk"; - Text[ fr ] = "Barre de diagramme"; - Text[ es ] = "Barra de diagramas"; - Text[ fi ] = "Kaaviopalkki"; - Text[ ca ] = "Barra del diagrama"; - Text[ it ] = "Barra dei diagrammi"; - Text[ da ] = "Diagramlinje"; - Text[ sv ] = "Diagramlist"; - Text[ pl ] = "SÅ‚upek na wykresie"; - Text[ pt-BR ] = "Barra de Gráficos"; - Text[ th ] = "à¹à¸–บà¹à¸œà¸™à¸ ูมิ"; - Text[ ja ] = "グラフãƒãƒ¼"; - Text[ ko ] = "차트 모ìŒ"; - Text[ zh-CN ] = "图表æ "; - Text[ zh-TW ] = "圖表工具列"; - Text[ tr ] = "Åžema çubuÄŸu"; - Text[ hi-IN ] = "चारà¥à¤Ÿ पटà¥à¤Ÿà¥€"; - Text[ ar ] = "شريط الرسم البياني"; - Text[ he ] = "â€®×ª×¨×©×™× ×¤×¡×™×‬"; -}; -String STR_APPLICATIONOBJECTBAR -{ - Text [ de ] = "Funktionsleiste" ; - Text [ en-US ] = "Function Bar" ; - Text[ pt ] = "Barra de funções"; - Text[ ru ] = "Панель функций"; - Text[ el ] = "ΓÏαμμή λειτουÏγιών"; - Text[ nl ] = "Werkbalk"; - Text[ fr ] = "Barre de fonctions"; - Text[ es ] = "Barra de funciones"; - Text[ fi ] = "Toimintorivi"; - Text[ ca ] = "Barra de funcions"; - Text[ it ] = "Barra delle funzioni"; - Text[ da ] = "Funktionslinje"; - Text[ sv ] = "Funktionslist"; - Text[ pl ] = "Pasek funkcji"; - Text[ pt-BR ] = "Barra de Funções"; - Text[ th ] = "à¹à¸–บฟังà¸à¹Œà¸Šà¸±à¹ˆà¸™"; - Text[ ja ] = "ファンクションãƒãƒ¼"; - Text[ ko ] = "기능 모ìŒ"; - Text[ zh-CN ] = "功能æ "; - Text[ zh-TW ] = "工具列"; - Text[ tr ] = "Ä°ÅŸlev çubuÄŸu"; - Text[ hi-IN ] = "फंकà¥à¤¶à¤¨à¥ पटà¥à¤Ÿà¥€"; - Text[ ar ] = "شريط المهام"; - Text[ he ] = "‮סרגל פעולות × ×¤×•×¦×•×ªâ€¬"; -}; -String STR_TITLE_MAIN -{ - Text [ de ] = "Haupttitel" ; - Text [ en-US ] = "Main title" ; - Text[ pt ] = "TÃtulo principal"; - Text[ ru ] = "Главный заголовок"; - Text[ el ] = "ΚÏÏιος τίτλος"; - Text[ nl ] = "Hoofdtitel"; - Text[ fr ] = "Titre principal"; - Text[ es ] = "TÃtulo principal"; - Text[ fi ] = "Pääotsikko"; - Text[ ca ] = "TÃtol principal"; - Text[ it ] = "Titolo principale"; - Text[ da ] = "Overskrift"; - Text[ sv ] = "Huvudrubrik"; - Text[ pl ] = "TytuÅ‚ główny"; - Text[ pt-BR ] = "TÃtulo principal"; - Text[ th ] = "ชื่à¸à¸«à¸¥à¸±à¸"; - Text[ ja ] = "メインタイトル"; - Text[ ko ] = "주 ì œëª©"; - Text[ zh-CN ] = "ä¸»æ ‡é¢˜"; - Text[ zh-TW ] = "主標題"; - Text[ tr ] = "Ana baÅŸlık"; - Text[ hi-IN ] = "मà¥à¤–à¥à¤¯ शीरà¥à¤·à¤•"; - Text[ ar ] = "العنوان الرئيسي"; - Text[ he ] = "‮כותרת ר×שית‬"; -}; -String STR_TITLE_SUB -{ - Text [ de ] = "Untertitel" ; - Text [ en-US ] = "Subtitle" ; - Text[ pt ] = "SubtÃtulo"; - Text[ ru ] = "Подзаголовок"; - Text[ el ] = "Υπότιτλος"; - Text[ nl ] = "Subtitel"; - Text[ fr ] = "Sous-titre "; - Text[ es ] = "SubtÃtulo"; - Text[ fi ] = "Alaotsikko"; - Text[ ca ] = "SubtÃtol"; - Text[ it ] = "Sottotitolo"; - Text[ da ] = "Undertitel"; - Text[ sv ] = "Underrubrik"; - Text[ pl ] = "PodtytuÅ‚"; - Text[ pt-BR ] = "SubtÃtulo"; - Text[ th ] = "ชื่à¸à¸£à¸à¸‡"; - Text[ ja ] = "サブタイトル"; - Text[ ko ] = "ë¶€ì œ"; - Text[ zh-CN ] = "åˆ†æ ‡é¢˜"; - Text[ zh-TW ] = "分標題"; - Text[ tr ] = "Alt baÅŸlık"; - Text[ hi-IN ] = "अधीन शीरà¥à¤·à¤•"; - Text[ ar ] = "العنوان الÙرعي"; - Text[ he ] = "‮תת כותרת‬"; -}; -String STR_DIAGRAM_TITLE_X_AXIS -{ - Text [ de ] = "X-Achsentitel" ; - Text [ en-US ] = "X axis title" ; - Text[ pt ] = "TÃtulo do eixo X"; - Text[ ru ] = "Заголовок оÑи X"; - Text[ el ] = "Τίτλος άξονα Χ"; - Text[ nl ] = "Titel X-as"; - Text[ fr ] = "Titre de l'axe X"; - Text[ es ] = "TÃtulo del eje X"; - Text[ fi ] = "X-akselin otsikko"; - Text[ ca ] = "TÃtol de l'eix X"; - Text[ it ] = "Titolo asse X"; - Text[ da ] = "X-aksetitel"; - Text[ sv ] = "X-axelrubrik"; - Text[ pl ] = "TytuÅ‚ osi X"; - Text[ pt-BR ] = "TÃtulo do eixo X"; - Text[ th ] = "ชื่à¸à¹à¸à¸™ X "; - Text[ ja ] = "X軸タイトル"; - Text[ ko ] = "X 축 ì œëª©"; - Text[ zh-CN ] = "X è½´æ ‡é¢˜"; - Text[ zh-TW ] = "X-軸標題"; - Text[ tr ] = "X ekseni baÅŸlığı"; - Text[ hi-IN ] = "X अकà¥à¤·à¤°à¥‡à¤–ा शीरà¥à¤·à¤•"; - Text[ ar ] = "عنوان المØور س"; - Text[ he ] = "‮כותרת ציר X‬"; -}; -String STR_DIAGRAM_TITLE_Y_AXIS -{ - Text [ de ] = "Y-Achsentitel" ; - Text [ en-US ] = "Y axis title" ; - Text[ pt ] = "TÃtulo do eixo Y"; - Text[ ru ] = "Заголовок оÑи Y"; - Text[ el ] = "Τίτλος άξονα Y"; - Text[ nl ] = "Titel Y-as"; - Text[ fr ] = "Titre de l'axe Y"; - Text[ es ] = "TÃtulo del eje Y"; - Text[ fi ] = "Y-akselin otsikko"; - Text[ ca ] = "TÃtol de l'eix Y"; - Text[ it ] = "Titolo asse Y"; - Text[ da ] = "Y-aksetitel"; - Text[ sv ] = "Y-axelrubrik"; - Text[ pl ] = "TytuÅ‚ osi Y"; - Text[ pt-BR ] = "TÃtulo do eixo Y"; - Text[ th ] = "ชื่à¸à¹à¸à¸™ Y "; - Text[ ja ] = "Y軸タイトル"; - Text[ ko ] = "Y축 ì œëª©"; - Text[ zh-CN ] = "Y è½´æ ‡é¢˜"; - Text[ zh-TW ] = "Y-軸標題"; - Text[ tr ] = "Y ekseni baÅŸlığı"; - Text[ hi-IN ] = "Y axis title"; - Text[ ar ] = "عنوان المØور ص"; - Text[ he ] = "‮כותרת ציר Y‬"; -}; -String STR_DIAGRAM_TITLE_Z_AXIS -{ - Text [ de ] = "Z-Achsentitel" ; - Text [ en-US ] = "Z axis title" ; - Text[ pt ] = "TÃtulo do eixo Z"; - Text[ ru ] = "Заголовок оÑи Z"; - Text[ el ] = "Τίτλος άξονα Z"; - Text[ nl ] = "Titel Z-as"; - Text[ fr ] = "Titre de l'axe Z"; - Text[ es ] = "TÃtulo del eje Z"; - Text[ fi ] = "Z-akselin otsikko"; - Text[ ca ] = "TÃtol de l'eix Z"; - Text[ it ] = "Titolo asse Z"; - Text[ da ] = "Z-aksetitel"; - Text[ sv ] = "Z-axelrubrik"; - Text[ pl ] = "TytuÅ‚ osi Z"; - Text[ pt-BR ] = "TÃtulo do eixo Z"; - Text[ th ] = "ชื่à¸à¹à¸à¸™ Z "; - Text[ ja ] = "Z軸タイトル"; - Text[ ko ] = "Z축 ì œëª©"; - Text[ zh-CN ] = "Z è½´æ ‡é¢˜"; - Text[ zh-TW ] = "Z-軸標題"; - Text[ tr ] = "Z ekseni baÅŸlığı"; - Text[ hi-IN ] = "Z अकà¥à¤·à¤°à¥‡à¤–ा शीरà¥à¤·à¤•"; - Text[ ar ] = "عنوان المØور ع"; - Text[ he ] = "‮כותרת ציר Z‬"; -}; -String STR_COLUMN -{ - Text [ de ] = "Spalte $(N)" ; - Text [ x-comment ] = "the parameter $(N) is replaced by the number of a column"; - Text [ en-US ] = "Column $(N) " ; - Text[ pt ] = "Coluna $(N)"; - Text[ ru ] = "Столбец $(N)"; - Text[ el ] = "Στήλη $(N)"; - Text[ nl ] = "Kolom $(N)"; - Text[ fr ] = "Colonne $(N)"; - Text[ es ] = "Columna $(N)"; - Text[ fi ] = "Sarake $(N) "; - Text[ ca ] = "Columna $(N) "; - Text[ it ] = "Colonna $(N)"; - Text[ da ] = "Kolonne $(N)"; - Text[ sv ] = "Kolumn $(N)"; - Text[ pl ] = "Kolumna $(N)"; - Text[ pt-BR ] = "Coluna $(N) "; - Text[ th ] = "คà¸à¸¥à¸±à¸¡à¸™à¹Œ $(N) "; - Text[ ja ] = "列 $(N)"; - Text[ ko ] = "ì—´ $(N)"; - Text[ zh-CN ] = "列 $(N)"; - Text[ zh-TW ] = "欄 $(N)"; - Text[ tr ] = "Sütun $(N)"; - Text[ hi-IN ] = "सà¥à¤¤à¤‚ठ$(N)"; - Text[ ar ] = "العمود $(N)"; - Text[ he ] = "‮עמודה $(N) ‬"; -}; -String STR_ROW -{ - Text [ de ] = "Zeile $(N)" ; - Text [ x-comment ] = "the parameter $(N) is replaced by the number of a row"; - Text [ en-US ] = "Row $(N)" ; - Text[ pt ] = "Linha $(N)"; - Text[ ru ] = "Строка $(N)"; - Text[ el ] = "ΓÏαμμή $(N)"; - Text[ nl ] = "Rij $(N)"; - Text[ fr ] = "Ligne $(N)"; - Text[ es ] = "Fila $(N)"; - Text[ fi ] = "Rivi $(N)"; - Text[ ca ] = "Fila $(N)"; - Text[ it ] = "Riga $(N)"; - Text[ da ] = "Række $(N)"; - Text[ sv ] = "Rad $(N)"; - Text[ pl ] = "Wiersz $(N)"; - Text[ pt-BR ] = "Linha $(N) "; - Text[ th ] = "à¹à¸–ว $(N)"; - Text[ ja ] = "è¡Œ $(N)"; - Text[ ko ] = "í–‰$(N)"; - Text[ zh-CN ] = "è¡Œ $(N)"; - Text[ zh-TW ] = "列 $(N)"; - Text[ tr ] = "Satır $(N)"; - Text[ hi-IN ] = "Row $(N)"; - Text[ ar ] = "الص٠$(N)"; - Text[ he ] = "‮ שורה $(N)‬"; -}; -String STR_STLSHEET_TITLE_MAIN -{ - Text = "Haupttitel" ; -}; -String STR_STLSHEET_TITLE_SUB -{ - Text = "Untertitel" ; -}; -String STR_STLSHEET_TITLE_X_AXIS -{ - Text = "X-Achsentitel" ; -}; -String STR_STLSHEET_TITLE_Y_AXIS -{ - Text = "Y-Achsentitel" ; -}; -String STR_STLSHEET_TITLE_Z_AXIS -{ - Text = "Z-Achsentitel" ; -}; -String STR_STLSHEET_DATAROWS -{ - Text = "Datenzeilen" ; -}; -String STR_STLSHEET_DATACOLS -{ - Text = "Datenspalten" ; -}; -String STR_STLSHEET_DATAVALUES -{ - Text = "Datenwerte" ; -}; -String STR_STLSHEET_DATADESCR -{ - Text = "Datenbeschriftung" ; -}; -String STR_STLSHEET_LEGEND -{ - Text = "Legende" ; -}; -String STR_NO_LOGARITHMIC_MIN_VALUES -{ - Text [ de ] = "Negative und Null-Werte können nicht logarithmisch dargestellt werden." ; - Text [ en-US ] = "Negative and zero values cannot be logarithmicaly portrayed." ; - Text[ pt ] = "Valores zero e negativos não podem ser representados de forma logarÃtmica."; - Text[ ru ] = "Ðевозможно предÑтавить логарифмичеÑки отрицательные и нулевые значениÑ."; - Text[ el ] = "Δεν είναι δυνατόν να γίνει λογαÏιθμητική παÏάσταση αÏνητικών και μηδενικών τιμών."; - Text[ nl ] = "Negatieve waarden en nul-waarden kunnen niet logaritmisch worden weergegeven."; - Text[ fr ] = "Valeurs négatives et valeurs zéro ne peuvent être affichées sous forme de logarithme"; - Text[ es ] = "No es posible representar logarÃtmicamente valores cero o valores negativos."; - Text[ fi ] = "Negatiivisia arvoja ja nollaa ei voi kuvata logaritmisesti."; - Text[ ca ] = "No és possible representar logarÃtmicament valors zero o valors negatius."; - Text[ it ] = "Valori nulli e negativi non possono essere rappresentati logaritmamente."; - Text[ da ] = "Negative værdier og nulværdier kan ikke vises logaritmisk."; - Text[ sv ] = "Negativa värden och nollvärden kan inte visas logaritmiskt."; - Text[ pl ] = "WartoÅ›ci ujemne i zerowe nie mogÄ… zostać przedstawione logarytmicznie."; - Text[ pt-BR ] = "Valores nulos e negativos não podem ser apresentados de forma logarÃtmica."; - Text[ th ] = "ไม่สามารถà¸à¸˜à¸´à¸šà¸²à¸¢à¸—างลà¸à¸à¸²à¸£à¸´à¸˜à¸¶à¸¡à¸„่าลบà¹à¸¥à¸°à¸¨à¸¹à¸™à¸¢à¹Œà¹„ด้"; - Text[ ja ] = "マイナス値ã¨ã‚¼ãƒã¯å¯¾æ•°è¡¨ç¤ºã§ãã¾ã›ã‚“。"; - Text[ ko ] = "(ï¼) ë˜ëŠ” 0 ê°’ì€ ë¡œê·¸ë¡œ 표현ë 수 없습니다."; - Text[ zh-CN ] = "è´Ÿæ•°å’Œé›¶æ— æ³•ä»¥å¯¹æ•°çš„å½¢å¼è¡¨ç¤ºã€‚"; - Text[ zh-TW ] = "è² æ•¸å’Œé›¶ç„¡æ³•ä»¥å°æ•¸çš„å½¢å¼è¡¨ç¤ºã€‚"; - Text[ tr ] = "Negatif ve sıfır deÄŸerleri, logaritmik olarak görüntülenemez."; - Text[ hi-IN ] = "ऋणातà¥à¤®à¤• सखà¥à¤¯à¤¾à¤à¤“ à¤à¤µà¤‚ शà¥à¤¨à¥à¤¯ का लघà¥à¤—णक नहीं होता है।"; - Text[ ar ] = "لا يمكن عرض القيم السلبية وقيم الصÙر لوغاريتمياً."; - Text[ he ] = "â€®×œ× × ×™×ª×Ÿ להציג ×¢×¨×›×™× ×©×œ×™×œ×™×™× ×ו ×פס ×‘×ª×¨×©×™× ×œ×•×’×¨×™×ª×ž×™.‬"; -}; -String STR_NO_MIN_VALUES -{ - Text [ de ] = "Der Diagrammtyp kann keine negativen Werte darstellen." ; - Text [ en-US ] = "The selected chart type cannot portay negative values." ; - Text[ pt ] = "O tipo de gráfico não pode apresentar valor negativos."; - Text[ ru ] = "Выбранный тип диаграммы не может предÑтавить отрицательные значениÑ."; - Text[ el ] = "Ο Ï„Ïπος διαγÏάμματος δεν Îχει δυνατότητα εμφάνισης αÏνητικών τιμών."; - Text[ nl ] = "In dit diagramtype kunnen geen negatieve waarden worden weergeven."; - Text[ fr ] = "Ce type de diagramme ne peut représenter des valeurs négatives."; - Text[ es ] = "Este tipo de diagrama no puede representar valores negativos."; - Text[ fi ] = "Valittu kaaviotyyppi ei voi kuvata negatiivisia arvoja."; - Text[ ca ] = "El tipus de diagrama seleccionat no pot representar valors negatius."; - Text[ it ] = "Il tipo di diagramma non può rappresentare valori negativi."; - Text[ da ] = "Denne diagramtype kan ikke vise negative værdier."; - Text[ sv ] = "Diagramtypen kan inte visa negativa värden."; - Text[ pl ] = "Wybrany typ wykresu nie może przedstawiać wartoÅ›ci ujemnych."; - Text[ pt-BR ] = "O tipo de gráfico selecionado não pode apresentar valores negativos."; - Text[ th ] = "ชนิดขà¸à¸‡à¹à¸œà¸™à¸ ูมิที่เลืà¸à¸à¹„ม่สามารถà¸à¸˜à¸´à¸šà¸²à¸¢à¸„่าลบได้"; - Text[ ja ] = "ã“ã®ã‚°ãƒ©ãƒ•ã®ç¨®é¡žã¯ãƒžã‚¤ãƒŠã‚¹å€¤ã‚’表ã™ã“ã¨ãŒã§ãã¾ã›ã‚“。"; - Text[ ko ] = "ì„ íƒëœ ì°¨íŠ¸ì˜ ìœ í˜•ì€ (ï¼ï¼‰ê°’ì„ í‘œí˜„í• ìˆ˜ 없습니다."; - Text[ zh-CN ] = "æ¤ç±»å›¾è¡¨ä¸èƒ½æ˜¾ç¤ºè´Ÿæ•°å€¼ã€‚"; - Text[ zh-TW ] = "æ¤é¡žåœ–表ä¸èƒ½é¡¯ç¤ºè² 數值。"; - Text[ tr ] = "Bu ÅŸema tipi, negatif deÄŸerleri görüntüleyemiyor."; - Text[ hi-IN ] = "चà¥à¤¨à¤¾ हà¥à¤† चारà¥à¤Ÿ वरà¥à¤— कà¥à¤·à¤¯à¤°à¤¾à¤¶à¤¿ मूलà¥à¤¯à¥‹à¤‚ को वरà¥à¤£à¤¨ नहीं कर सकता है ।"; - Text[ ar ] = "هذا النوع من الرسوم البيانية لا يمكنه عرض القيم السلبية."; - Text[ he ] = "‮סוג ×”×ª×¨×©×™× ×”× ×‘×—×¨ ××™× ×• מסוגל להציג ×¢×¨×›×™× ×©×œ×™×œ×™×™×.‬"; -}; -String STR_ONLY_ABS_VALUES -{ - Text [ de ] = "Der Diagrammtyp kann keinen Wertebereich mit unterschiedlichem Vorzeichen darstellen.\nEs werden Absolutwerte angenommen." ; - Text [ en-US ] = "This chart type cannot portray value areas with different signs.\nThe values will be shown as absolutes without signs." ; - Text[ pt ] = "Este tipo de gráfico não pode apresentar áreas de valor com sinais diferentes.\n São aceites valores absolutos."; - Text[ ru ] = "Ðтот тип диаграммы не может предÑтавить облаÑÑ‚ÑŒ значений Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ð¼Ð¸ знаками.\nПоÑтому будут показаны абÑолютные значениÑ."; - Text[ el ] = "Ο Ï„Ïπος διαγÏάμματος δεν Îχει δυνατότητα εμφάνισης πεÏιοχής τιμών με διαφοÏετικά Ï€Ïόσημα.\nΘα αναγνωÏιστοÏν ως απόλυτες τιμÎÏ‚."; - Text[ nl ] = "In dit diagramtype kan geen waardenbereik met verschillende voortekens worden weergeven.\nEr worden absolute waarden aangenomen."; - Text[ fr ] = "Ce type de diagramme ne peut représenter des plages valeurs de signes différents.\nLes valeurs absolues seront acceptées."; - Text[ es ] = "Este tipo de diagrama no puede representar una gama de valores con signos diferentes.\nSe aceptan valores absolutos."; - Text[ fi ] = "Tässä kaaviotyypissä ei voi kuvata arvoalueita, joissa on sekä negatiivisia että positiivisia arvoja.\nArvot kuvataan itseisarvoina ilman etumerkkejä."; - Text[ ca ] = "Aquest tipus de diagrama no pot representar una gamma de valors amb signes diferents.\nS'accepten valors absoluts."; - Text[ it ] = "Il tipo di diagramma non può visualizzare aree di dati con diversi segni.\nVengono accettati solo valori assoluti."; - Text[ da ] = "Denne diagramtype kan ikke vise et værdiomrÃ¥de med forskelligt fortegn.\nVærdierne bliver vist som absolutværdier, dvs. uden hensyntagen til fortegn."; - Text[ sv ] = "Diagramtypen kan inte visa värdeomrÃ¥den med olika förtecken.\nAbsolutvärden visas."; - Text[ pl ] = "Ten typ wykresu nie może przedstawiać obszarów wartoÅ›ci o różnych znakach.\nZostanÄ… pokazane wartoÅ›ci absolutne (bez znaków)."; - Text[ pt-BR ] = "Este tipo de gráfico não pode apresentar valores de área com sinais diferentes.\n Os valores serão mostrados como valores absolutos sem sinal."; - Text[ th ] = "ชนิดà¹à¸œà¸™à¸ ูมินี้ไม่สามารถพื้นที่ขà¸à¸‡à¸„่าด้วยสัà¸à¸¥à¸±à¸à¸©à¸“์ที่ต่างà¸à¸±à¸™à¹„ด้\nค่าจะถูà¸à¹à¸ªà¸”งเป็นค่าสัมบูรณ์โดยไม่มีสัà¸à¸¥à¸±à¸à¸©à¸“์"; - Text[ ja ] = "ã“ã®ã‚°ãƒ©ãƒ•ã®ç¨®é¡žã¯ç•°ãªã‚‹ç¬¦å·ã®ä»˜ã数値ã®ç¯„囲を表示ã§ãã¾ã›ã‚“。\n絶対値ãŒæŽ¡ç”¨ã•ã‚Œã¾ã™ã€‚"; - Text[ ko ] = "ì„ íƒëœ ì°¨íŠ¸ì˜ ìœ í˜•ì€ ì—¬ëŸ¬ê°€ì§€ 부호가 ë¶™ì€ ê°’ 구ì—ì„ í‘œí˜„í• ìˆ˜ 없습니다.\nì ˆëŒ€ê°’ìœ¼ë¡œ 간주ë©ë‹ˆë‹¤."; - Text[ zh-CN ] = "æ¤å›¾è¡¨ç±»åž‹æ— 法显示å«æœ‰ä¸åŒæ£è´Ÿå·çš„数值区域。\nåªèƒ½å¤Ÿå¤„ç†ç»å¯¹å€¼ã€‚"; - Text[ zh-TW ] = "æ¤åœ–表類型無法顯示å«æœ‰ä¸åŒæ£è² 號的數值å€åŸŸã€‚\nåªæŽ¥å—絕å°å€¼ã€‚"; - Text[ tr ] = "Bu ÅŸema tipi, farklı iÅŸaretleri olan deÄŸer aralıklarını görüntüleyemiyor.\nMutlak deÄŸerler görüntülenecek."; - Text[ hi-IN ] = "चà¥à¤¨à¤¾ हà¥à¤† चारà¥à¤Ÿà¥ वरà¥à¤— मूलà¥à¤¯ वीसà¥à¤¤à¥€à¤°à¥à¤£à¥‹à¤‚ को अलग-अलग चिनà¥à¤¹ से वरà¥à¤£à¤¨ नहीं कर सकता है ।\nमूलà¥à¤¯ को चिनà¥à¤¹ रहित निशà¥à¤šà¤¿à¤¤ रूप से दिखाया जाà¤à¤—ा ।"; - Text[ ar ] = "لا يمكن لنمط الرسم البياني هذا إظهار نطاق قيم بعلامات مختلÙØ©.\nسو٠يتم قبول القيم المطلقة."; - Text[ he ] = "‮סוג ×”×ª×¨×©×™× ×”×–×” ××™× ×• מסוגל להציג ×¢×¨×›×™× ×‘×¢×œ×™ ×¡×™×ž× ×™× ×”×¤×•×›×™×.\nולכן ×”×¢×¨×›×™× ×™×•×¦×’×• ×›×¢×¨×›×™× ×ž×•×—×œ×˜×™× ×œ×œ× ×¡×™×ž× ×™×.‬"; -}; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/binfilter/bf_sch/source/core/sch_globfunc.cxx b/binfilter/bf_sch/source/core/sch_globfunc.cxx deleted file mode 100644 index b5d298172..000000000 --- a/binfilter/bf_sch/source/core/sch_globfunc.cxx +++ /dev/null @@ -1,1264 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma optimize("e",off) -#pragma hdrstop -#endif - -#define ITEMID_FONTLIST 0 -#define ITEMID_POSTURE 0 -#define ITEMID_WEIGHT 0 -#define ITEMID_UNDERLINE 0 -#define ITEMID_CROSSEDOUT 0 -#define ITEMID_SHADOWED 0 -#define ITEMID_AUTOKERN 0 -#define ITEMID_WORDLINEMODE 0 -#define ITEMID_CONTOUR 0 -#define ITEMID_PROPSIZE 0 -#define ITEMID_CHARSETCOLOR 0 -#define ITEMID_KERNING 0 -#define ITEMID_CASEMAP 0 -#define ITEMID_ESCAPEMENT 0 -#define ITEMID_LANGUAGE 0 -#define ITEMID_NOLINEBREAK 0 -#define ITEMID_NOHYPHENHERE 0 -#define ITEMID_BLINK 0 - -#define ITEMID_FONT EE_CHAR_FONTINFO -#define ITEMID_COLOR EE_CHAR_COLOR -#define ITEMID_FONTHEIGHT EE_CHAR_FONTHEIGHT -#define ITEMID_FONTWIDTH EE_CHAR_FONTWIDTH - -#include <bf_svtools/whiter.hxx> -#include <bf_svx/eeitem.hxx> - -#include "schattr.hxx" -#ifndef _SVX_CHRTITEM_HXX //autogen -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTTEXTORDER SCHATTR_TEXT_ORDER -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR - -#include <bf_svtools/eitem.hxx> -#endif - -#include <bf_svx/fhgtitem.hxx> -#include <bf_svx/svxids.hrc> -#include <globfunc.hxx> - -#include "math.h" -#include "float.h" - -#include <bf_svx/fontitem.hxx> -#include <bf_svx/wghtitem.hxx> -#include <bf_svx/udlnitem.hxx> -#include <bf_svx/crsditem.hxx> -#include <bf_svx/postitem.hxx> -#include <bf_svx/cntritem.hxx> -#include <bf_svx/shdditem.hxx> -#include <bf_svx/akrnitem.hxx> -#include <bf_svx/wrlmitem.hxx> - -#include <algorithm> -#include <functional> - -/************************************************************************* -|* -|* Objekt attributieren -|* -\************************************************************************/ -namespace binfilter { -/*N*/ SdrObject *SetObjectAttr (SdrObject *pObj, -/*N*/ UINT16 nID, -/*N*/ BOOL bProtect, -/*N*/ BOOL bResize, -/*N*/ SfxItemSet *pAttr) -/*N*/ { -/*N*/ pObj->InsertUserData (new SchObjectId (nID)); -/*N*/ pObj->SetMoveProtect (bProtect); -/*N*/ pObj->SetResizeProtect (bResize); -/*N*/ if (pAttr) -/*N*/ pObj->SetItemSet(*pAttr); -/*N*/ -/*N*/ return pObj; -/*N*/ } - -/************************************************************************* -|* -|* Objektgruppe erzeugen -|* -\************************************************************************/ - -/*N*/ SdrObjList *CreateGroup (SdrObjList &rObjList, -/*N*/ UINT16 nID, -/*N*/ ULONG nIndex) -/*N*/ { -/*N*/ SdrObjGroup *pGroup = (SdrObjGroup *) SetObjectAttr (new SchObjGroup, nID, TRUE, TRUE, 0); -/*N*/ -/*N*/ rObjList.NbcInsertObject((SdrObject *) pGroup, nIndex); -/*N*/ return pGroup->GetSubList(); -/*N*/ } - -/************************************************************************* -|* -|* Objektgruppe erzeugen -|* -\************************************************************************/ - -/*N*/ SchObjGroup *CreateSimpleGroup (UINT16 nID, -/*N*/ BOOL bProtect, -/*N*/ BOOL bResize) -/*N*/ { -/*N*/ return (SchObjGroup *) SetObjectAttr (new SchObjGroup, nID, bProtect, bResize, 0); -/*N*/ } - - -/************************************************************************* -|* -|* Berechne kub. Spline -|* -\************************************************************************/ - -/*N*/ void CubicSpline (XPolygon &pKnownPoints, -/*N*/ int n, -/*N*/ int splineSize, -/*N*/ XPolygon &pSplines) -/*N*/ { -/*N*/ double *h = new double [n + 1]; -/*N*/ double *m = new double [n + 1]; -/*N*/ double *q = new double [n + 1]; -/*N*/ double *u = new double [n + 1]; -/*N*/ -/*N*/ for (int k = 1; -/*N*/ k <= n; -/*N*/ k ++) -/*N*/ h [k] = pKnownPoints [k].X () - pKnownPoints [k - 1].X (); -/*N*/ -/*N*/ double p; -/*N*/ double lambda = 0.0; -/*N*/ double d = 0.0; -/*N*/ double mue; -/*N*/ -/*N*/ q [0] = -lambda / 2.0; -/*N*/ u [0] = d / 2.0; -/*N*/ -/*N*/ int j; -/*N*/ for (j = 1; -/*N*/ j <= n; -/*N*/ j ++) -/*N*/ { -/*N*/ mue = (j < n) -/*N*/ ? h[j] / (h [j] + h [j + 1]) -/*N*/ : 0.0; -/*N*/ p = mue * q [j - 1] + 2.0; -/*N*/ lambda = 1.0 - mue; -/*N*/ q [j] = -lambda / p; -/*N*/ d = (j < n) -/*N*/ ? 6.0 * ((pKnownPoints [j + 1].Y () - pKnownPoints [j].Y ()) / h [j + 1] - -/*N*/ (pKnownPoints [j].Y () - pKnownPoints [j - 1].Y ()) / h [j]) / (h [j] + h [j + 1]) -/*N*/ : 0.0; -/*N*/ u [j] = (d - mue * u [j - 1]) / p; -/*N*/ } -/*N*/ -/*N*/ m [n] = u [n]; -/*N*/ -/*N*/ for (j = n - 1; -/*N*/ j >= 0; -/*N*/ j --) -/*N*/ m [j] = q [j] * m [j + 1] + u [j]; -/*N*/ -/*N*/ for (j = 0; -/*N*/ j < n; -/*N*/ j ++) -/*N*/ { -/*N*/ double xStep = (pKnownPoints [j + 1].X () - pKnownPoints [j].X ()) / splineSize; -/*N*/ double x = pKnownPoints [j].X (); -/*N*/ -/*N*/ double alpha = pKnownPoints [j].Y (); -/*N*/ double gamma = m [j] / 2; -/*N*/ double beta = (pKnownPoints [j + 1].Y () - pKnownPoints [j].Y ()) / h [j + 1] - -/*N*/ ((2 * m [j] + m [j + 1]) * h [j + 1]) / 6; -/*N*/ double delta = (m [j + 1] - m [j]) / (6 * h [j + 1]); -/*N*/ -/*N*/ for (int i = 0; -/*N*/ i < splineSize; -/*N*/ i ++) -/*N*/ { -/*N*/ double xdiff = (x - pKnownPoints [j].X ()); -/*N*/ int index = j * splineSize + i; -/*N*/ -/*N*/ pSplines [(short) index].Y () = long(alpha + xdiff * (beta + xdiff * (gamma + xdiff * delta))); -/*N*/ pSplines [(short) index].X () = long(x); -/*N*/ x += xStep; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ pSplines [n * splineSize].Y () = pKnownPoints [n].Y (); -/*N*/ pSplines [n * splineSize].X () = pKnownPoints [n].X (); -/*N*/ -/*N*/ delete[] h; -/*N*/ delete[] m; -/*N*/ delete[] q; -/*N*/ delete[] u; -/*N*/ } - -/************************************************************************* -|* -|* Bestimme Knotenvektor fuer B-Spline -|* -\************************************************************************/ - -/*N*/ void TVector (int n, -/*N*/ int k, -/*N*/ double *t) -/*N*/ { -/*N*/ for (int i = 0; -/*N*/ i <= n + k; -/*N*/ i ++) -/*N*/ { -/*N*/ if (i < k) t [i] = 0; -/*N*/ else if (i <= n) t [i] = i - k + 1; -/*N*/ else t [i] = n - k + 2; -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Berechne linken Knotenvektor -|* -\************************************************************************/ - -/*N*/ double TLeft (double x, -/*N*/ int i, -/*N*/ int k, -/*N*/ double *t) -/*N*/ { -/*N*/ double deltaT = t [i + k - 1] - t [i]; -/*N*/ -/*N*/ return (deltaT == 0.0) -/*N*/ ? 0.0 -/*N*/ : (x - t [i]) / deltaT; -/*N*/ } - -/************************************************************************* -|* -|* Berechne rechten Knotenvektor -|* -\************************************************************************/ - -/*N*/ double TRight (double x, -/*N*/ int i, -/*N*/ int k, -/*N*/ double *t) -/*N*/ { -/*N*/ double deltaT = t [i + k] - t [i + 1]; -/*N*/ -/*N*/ return (deltaT == 0.0) -/*N*/ ? 0.0 -/*N*/ : (t [i + k] - x) / deltaT; -/*N*/ } - -/************************************************************************* -|* -|* Berechne Gewichtungsvektor -|* -\************************************************************************/ - -/*N*/ void BVector (double x, -/*N*/ int n, -/*N*/ int k, -/*N*/ double *b, -/*N*/ double *t) -/*N*/ { -/*N*/ for (int i = 0; -/*N*/ i <= n + k; -/*N*/ i ++) -/*N*/ b [i] = 0; -/*N*/ -/*N*/ int i0 = (int) floor (x) + k - 1; -/*N*/ b [i0] = 1; -/*N*/ -/*N*/ for (int j = 2; -/*N*/ j <= k; -/*N*/ j ++) -/*N*/ for (int i = 0; -/*N*/ i <= i0; -/*N*/ i ++) -/*N*/ b [i] = TLeft (x, i, j, t) * b [i] + TRight (x, i, j, t) * b [i + 1]; -/*N*/ } - -/************************************************************************* -|* -|* Berechne einzelnen Punkt -|* -\************************************************************************/ - -/*N*/ void BSPoint (int n, -/*N*/ Point &p1, -/*N*/ Point &p2, -/*N*/ XPolygon &pKnownPoints, -/*N*/ double *b) -/*N*/ { -/*N*/ for (int i = 0; -/*N*/ i <= n; -/*N*/ i ++) -/*N*/ { -/*N*/ p1.Y () = long(p1.Y () + b [i] * pKnownPoints [i].Y ()); -/*N*/ p2.Y () = long(p2.Y () + b [n - i] * pKnownPoints [i].Y ()); -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Berechne B-Spline -|* -\************************************************************************/ - -/*N*/ void approxMesh (int splineSize, -/*N*/ XPolygon &pSplines, -/*N*/ XPolygon &pKnownPoints, -/*N*/ int n, -/*N*/ int k) -/*N*/ { -/*N*/ int pCount = splineSize * n; -/*N*/ double *b = new double [n + k + 1]; -/*N*/ double *t = new double [n + k + 2]; -/*N*/ double xStep = ((double) n - (double) k + 2.0) / (double) pCount; -/*N*/ double dStep = ((double) pKnownPoints [n].X () - (double) pKnownPoints [0].X ()) / (double) pCount; -/*N*/ double dXUp = pKnownPoints [0].X (); -/*N*/ double dXDown = pKnownPoints [n].X (); -/*N*/ double x = 0.0; -/*N*/ int nEnd = pCount / 2 + 1; -/*N*/ -/*N*/ TVector (n, k, t); -/*N*/ -/*N*/ for (int j = 0; -/*N*/ j <= nEnd; -/*N*/ j ++) -/*N*/ { -/*N*/ Point aPoint1; -/*N*/ Point aPoint2; -/*N*/ -/*N*/ BVector (x, n, k, b, t); -/*N*/ BSPoint (n, aPoint1, aPoint2, pKnownPoints, b); -/*N*/ -/*N*/ pSplines [j].X () = (int)(floor(dXUp)+0.5); -/*N*/ pSplines [j].Y () = aPoint1.Y (); -/*N*/ pSplines [pCount - j].X () = (int)(floor(dXDown)+0.5); -/*N*/ pSplines [pCount - j].Y () = aPoint2.Y (); -/*N*/ -/*N*/ x += xStep; -/*N*/ dXUp += dStep; -/*N*/ dXDown -= dStep; -/*N*/ } -/*N*/ -/*N*/ delete[] t; -/*N*/ delete[] b; -/*N*/ } - -/************************************************************************* -|* -|* Passe untere Grenze an den Wertebereich an -|* -\************************************************************************/ - -/*N*/ double SizeBounds (double dMinValue, -/*N*/ double dMaxValue, -/*N*/ BOOL bIsMax) -/*N*/ { -/*N*/ if( (dMinValue == DBL_MIN) || -/*N*/ (dMaxValue == DBL_MIN) || -/*N*/ (dMinValue == dMaxValue) || -/*N*/ (dMinValue == 0.0) ) -/*?*/ return 0.0; -/*N*/ -/*N*/ return bIsMax? dMaxValue : dMinValue; -/*N*/ -/*N*/ // BM: I removed some very strange code here. It -/*N*/ // calculated a kind of log10 but the charts didn't -/*N*/ // really use the value calculated. -/*N*/ } - -/************************************************************************* -|* -|* Erhoehe einen Wert mit Log. -|* -\************************************************************************/ - -/*N*/ void IncValue(double &rValue, -/*N*/ double fInc, -/*N*/ BOOL bLogarithm) -/*N*/ { -/*N*/ if (bLogarithm) -/*?*/ rValue *= fInc; -/*N*/ else -/*N*/ rValue += fInc; -/*N*/ } - -/************************************************************************* -|* -|* Vermindere einen Wert mit Log. -|* -\************************************************************************/ - -/*N*/ void DecValue(double &rValue, -/*N*/ double fInc, -/*N*/ BOOL bLogarithm) -/*N*/ { -/*N*/ if (bLogarithm) rValue /= fInc; -/*N*/ else rValue -= fInc; -/*N*/ } - -/************************************************************************* -|* -|* Konvertiert in echte RGB-Farben. -|* -\************************************************************************/ - -/*N*/ Color RGBColor(ColorData nColorName) -/*N*/ { -/*N*/ Color aColor(nColorName); -/*N*/ -/*N*/ return Color(aColor.GetRed(), aColor.GetGreen(), aColor.GetBlue()); -/*N*/ } - -/************************************************************************* -|* -|* "Stapelt" den angegebenen String. -|* -\************************************************************************/ - -/*N*/ String StackString( const String& aString ) -/*N*/ { -/*N*/ String aStackStr; -/*N*/ xub_StrLen nLen = aString.Len(); -/*N*/ -/*N*/ if( nLen ) -/*N*/ { -/*N*/ // '\n' is interpreted as newline by the outliner -/*N*/ aStackStr.Fill( nLen * 2 - 1, (sal_Unicode)('\n') ); -/*N*/ -/*N*/ for( xub_StrLen posSrc=0, posDest=0; -/*N*/ posSrc < nLen; -/*N*/ posSrc++, posDest += 2 ) -/*N*/ aStackStr.SetChar( posDest, aString.GetChar( posSrc )); -/*N*/ } -/*N*/ -/*N*/ return aStackStr; -/*N*/ } - -/************************************************************************* -|* -|* Position des ungedrehten Rechtecks entsprechend der Ausrichtung anpassen -|* -\************************************************************************/ - -/*N*/ void AdjustRect(Rectangle &rRect, -/*N*/ ChartAdjust eAdjust) -/*N*/ { -/*N*/ Point aPos = rRect.TopLeft(); -/*N*/ Size aSize = rRect.GetSize(); -/*N*/ -/*N*/ switch (eAdjust) -/*N*/ { -/*N*/ case CHADJUST_TOP_LEFT: -/*N*/ -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_TOP_CENTER: -/*N*/ -/*N*/ aPos.X() -= aSize.Width() / 2; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_TOP_RIGHT: -/*N*/ -/*N*/ aPos.X() -= aSize.Width(); -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_CENTER_LEFT: -/*N*/ -/*N*/ aPos.Y() -= aSize.Height() / 2; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_CENTER_CENTER: -/*N*/ -/*?*/ aPos.X() -= aSize.Width() / 2; -/*?*/ aPos.Y() -= aSize.Height() / 2; -/*?*/ break; -/*N*/ -/*N*/ case CHADJUST_CENTER_RIGHT: -/*N*/ -/*N*/ aPos.X() -= aSize.Width(); -/*N*/ aPos.Y() -= aSize.Height() / 2; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_BOTTOM_LEFT: -/*N*/ -/*?*/ aPos.Y() -= aSize.Height(); -/*?*/ break; -/*N*/ -/*N*/ case CHADJUST_BOTTOM_CENTER: -/*N*/ -/*N*/ aPos.X() -= aSize.Width() / 2; -/*N*/ aPos.Y() -= aSize.Height(); -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_BOTTOM_RIGHT: -/*?*/ aPos.X() -= aSize.Width(); -/*?*/ aPos.Y() -= aSize.Height(); -/*N*/ -/*N*/ } -/*N*/ -/*N*/ rRect.SetPos(aPos); -/*N*/ } - -/************************************************************************* -|* -|* Position des gedrehten Rechtecks entsprechend der Ausrichtung anpassen -|* -\************************************************************************/ - -/*N*/ Size AdjustRotatedRect(const Rectangle &rOldRect, -/*N*/ ChartAdjust eAdjust, -/*N*/ const Rectangle &rNewRect) -/*N*/ { -/*N*/ -/*N*/ Size aMovement; -/*N*/ Point aOld; -/*N*/ Point aNew; -/*N*/ Point aDifference; -/*N*/ -/*N*/ switch (eAdjust) -/*N*/ { -/*?*/ case CHADJUST_TOP_LEFT: -/*?*/ -/*?*/ aOld = rOldRect.TopLeft(); -/*?*/ aNew = rNewRect.TopLeft(); -/*?*/ break; -/*?*/ -/*?*/ case CHADJUST_TOP_CENTER: -/*?*/ -/*?*/ aOld = rOldRect.TopCenter(); -/*?*/ aNew = rNewRect.TopCenter(); -/*?*/ break; -/*?*/ -/*?*/ case CHADJUST_TOP_RIGHT: -/*?*/ -/*?*/ aOld = rOldRect.TopRight(); -/*?*/ aNew = rNewRect.TopRight(); -/*?*/ break; -/*?*/ -/*?*/ case CHADJUST_CENTER_LEFT: -/*?*/ -/*N*/ aOld = rOldRect.LeftCenter(); -/*N*/ aNew = rNewRect.LeftCenter(); -/*N*/ break; -/*?*/ -/*?*/ case CHADJUST_CENTER_CENTER: -/*?*/ -/*?*/ aOld = rOldRect.Center(); -/*?*/ aNew = rNewRect.Center(); -/*?*/ break; -/*?*/ -/*?*/ case CHADJUST_CENTER_RIGHT: -/*?*/ -/*?*/ aOld = rOldRect.RightCenter(); -/*?*/ aNew = rNewRect.RightCenter(); -/*?*/ break; -/*?*/ -/*?*/ case CHADJUST_BOTTOM_LEFT: -/*?*/ -/*?*/ aOld = rOldRect.BottomLeft(); -/*?*/ aNew = rNewRect.BottomLeft(); -/*?*/ break; -/*?*/ -/*?*/ case CHADJUST_BOTTOM_CENTER: -/*?*/ -/*?*/ aOld = rOldRect.BottomCenter(); -/*?*/ aNew = rNewRect.BottomCenter(); -/*?*/ break; -/*?*/ -/*?*/ case CHADJUST_BOTTOM_RIGHT: -/*?*/ -/*?*/ aOld = rOldRect.BottomRight(); -/*?*/ aNew = rNewRect.BottomRight(); -/*?*/ break; -/*N*/ } -/*N*/ -/*N*/ aDifference = ( aOld - aNew); -/*N*/ aMovement = Size(aDifference.X(),aDifference.Y()); -/*N*/ -/*N*/ return aMovement; -/*N*/ } -//Umrechnung Textgröße in Größe des BoundRects rotierter Texte -/*N*/ Size GetRotatedTextSize(const Size& rSize,const long nDegrees) -/*N*/ { -/*N*/ if(nDegrees) -/*N*/ { -/*?*/ double fDeg,fSin,fCos; -/*?*/ fDeg=CDEG2RAD(nDegrees); -/*?*/ fSin=fabs(sin(fDeg)); -/*?*/ fCos=fabs(cos(fDeg)); -/*?*/ Size aRetSize( -/*?*/ (long)( (double)rSize.Width()*fCos + (double)rSize.Height()*fSin ), -/*?*/ (long)( (double)rSize.Width()*fSin + (double)rSize.Height()*fCos ) -/*?*/ ); -/*?*/ return aRetSize; -/*N*/ } -/*N*/ Size aRetSize(rSize); -/*N*/ return aRetSize; -/*N*/ } -/************************************************************************* -|* -|* die Rotation des Textes in Grad zurueckgeben, falls kein DEGREE-item -|* vorhanden, (z.B. 4.0-Chart) so wird das Item ergaenzt -|* -\************************************************************************/ -/*N*/ long GetTextRotation(SfxItemSet &rAttr) //Wrapper, falls eOrient noch nicht ermittelt -/*N*/ { -/*N*/ SvxChartTextOrient eOrient -/*N*/ = ((const SvxChartTextOrientItem&)rAttr.Get(SCHATTR_TEXT_ORIENT)).GetValue(); -/*N*/ return GetTextRotation(rAttr,eOrient); -/*N*/ } - -/*N*/ long GetTextRotation(SfxItemSet &rAttr,SvxChartTextOrient eOrient) -/*N*/ { -/*N*/ -/*N*/ const SfxPoolItem* pPoolItem = NULL; -/*N*/ long nDegrees = 0; -/*N*/ -/*N*/ // the attribute is set: use it -/*N*/ if( rAttr.GetItemState( SCHATTR_TEXT_DEGREES, TRUE, &pPoolItem ) == SFX_ITEM_SET ) -/*N*/ { -/*?*/ nDegrees = ((const SfxInt32Item*)pPoolItem)->GetValue(); -/*?*/ return nDegrees; -/*N*/ } -/*N*/ -/*N*/ // otherwise use orientation to set default rotation -/*N*/ switch( eOrient ) -/*N*/ { -/*N*/ case CHTXTORIENT_BOTTOMTOP: -/*N*/ nDegrees = 9000; // 90 deg -/*N*/ break; -/*N*/ -/*N*/ case CHTXTORIENT_TOPBOTTOM: -/*?*/ nDegrees = 27000; // 270 deg -/*?*/ break; -/*N*/ -/*N*/ case CHTXTORIENT_STANDARD: -/*N*/ case CHTXTORIENT_STACKED: -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ return nDegrees; -/*N*/ } - - -/************************************************************************* -|* -|* Ausrichtung entsprechend der Orientierung anpassen -|* -\************************************************************************/ - -/*N*/ void SetAdjust(ChartAdjust &rAdjust, -/*N*/ SvxChartTextOrient eOrient) -/*N*/ { -/*N*/ switch (eOrient) -/*N*/ { -/*N*/ case CHTXTORIENT_BOTTOMTOP: -/*N*/ switch (rAdjust) -/*N*/ { -/*N*/ case CHADJUST_TOP_LEFT: -/*N*/ rAdjust = CHADJUST_TOP_RIGHT; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_TOP_CENTER: -/*N*/ rAdjust = CHADJUST_CENTER_RIGHT; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_TOP_RIGHT: -/*N*/ rAdjust = CHADJUST_BOTTOM_RIGHT; -/*N*/ -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_CENTER_LEFT: -/*N*/ rAdjust = CHADJUST_TOP_CENTER; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_CENTER_RIGHT: -/*N*/ rAdjust = CHADJUST_BOTTOM_CENTER; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_BOTTOM_LEFT: -/*N*/ rAdjust = CHADJUST_TOP_LEFT; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_BOTTOM_CENTER: -/*N*/ rAdjust = CHADJUST_CENTER_LEFT; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_BOTTOM_RIGHT: -/*N*/ rAdjust = CHADJUST_BOTTOM_LEFT; -/*N*/ break; -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case CHTXTORIENT_TOPBOTTOM: -/*N*/ switch (rAdjust) -/*N*/ { -/*N*/ case CHADJUST_TOP_LEFT: -/*N*/ rAdjust = CHADJUST_BOTTOM_LEFT; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_TOP_CENTER: -/*N*/ rAdjust = CHADJUST_CENTER_LEFT; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_TOP_RIGHT: -/*N*/ rAdjust = CHADJUST_TOP_LEFT; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_CENTER_LEFT: -/*N*/ rAdjust = CHADJUST_BOTTOM_CENTER; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_CENTER_RIGHT: -/*N*/ rAdjust = CHADJUST_TOP_CENTER; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_BOTTOM_LEFT: -/*N*/ rAdjust = CHADJUST_BOTTOM_RIGHT; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_BOTTOM_CENTER: -/*N*/ rAdjust = CHADJUST_CENTER_RIGHT; -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_BOTTOM_RIGHT: -/*N*/ rAdjust = CHADJUST_TOP_RIGHT; -/*N*/ break; -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ break; -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Textobjekt positionieren -|* -\************************************************************************/ -/*N*/ void SetTextPos(SdrTextObj &rTextObj, -/*N*/ const Point &rPos,SfxItemSet* pAttr) -/*N*/ { -/*N*/ SchObjectAdjust *pObjAdjust = GetObjectAdjust(rTextObj); -/*N*/ ChartAdjust eAdjust = pObjAdjust->GetAdjust(); -/*N*/ double fVal; -/*N*/ SvxChartTextOrient eOrient = pObjAdjust->GetOrient(); -/*N*/ -/*N*/ switch (eOrient) -/*N*/ { -/*N*/ case CHTXTORIENT_BOTTOMTOP: -/*N*/ case CHTXTORIENT_TOPBOTTOM: -/*N*/ { -/*N*/ long nAng = 36000 - rTextObj.GetRotateAngle(); -/*N*/ fVal = nAng * nPi180; -/*N*/ rTextObj.NbcRotate(rPos, nAng, sin(fVal), cos(fVal)); -/*N*/ break; -/*N*/ } -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ Rectangle aRect = rTextObj.GetLogicRect(); -/*N*/ aRect.SetPos(rPos); -/*N*/ AdjustRect(aRect, eAdjust); -/*N*/ rTextObj.NbcSetLogicRect(aRect); -/*N*/ -/*N*/ switch (eOrient) -/*N*/ { -/*N*/ case CHTXTORIENT_BOTTOMTOP: -/*N*/ case CHTXTORIENT_TOPBOTTOM: -/*N*/ { -/*N*/ long nDegrees = GetTextRotation(*pAttr,eOrient); -/*N*/ Rectangle aOldBoundRect=rTextObj.GetBoundRect(); -/*N*/ fVal = nDegrees * nPi180; -/*N*/ rTextObj.NbcRotate(rPos, nDegrees, sin(fVal), cos(fVal)); -/*N*/ Rectangle aNewBoundRect=rTextObj.GetBoundRect(); -/*N*/ rTextObj.NbcMove( AdjustRotatedRect(aOldBoundRect, eAdjust, aNewBoundRect)); -/*N*/ } -/*N*/ default: -/*N*/ break; -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Textobjekt-Groesse entsprechend der Ausrichtung anpassen -|* -\************************************************************************/ - -/*N*/ void AdjustTextSize(SdrTextObj &rTextObj, -/*N*/ const Size &rTextSize) -/*N*/ { -/*N*/ Rectangle aRect = rTextObj.GetLogicRect(); -/*N*/ -/*N*/ if (aRect.GetSize() != rTextSize) -/*N*/ { -/*N*/ SchObjectAdjust *pObjAdjust = GetObjectAdjust(rTextObj); -/*N*/ ChartAdjust eAdjust = pObjAdjust->GetAdjust(); -/*N*/ SvxChartTextOrient eOrient = pObjAdjust->GetOrient(); -/*N*/ -/*N*/ SetAdjust(eAdjust, eOrient); -/*N*/ -/*N*/ Point aOldPos = aRect.TopLeft(); -/*N*/ -/*N*/ switch (eAdjust) -/*N*/ { -/*N*/ case CHADJUST_TOP_CENTER: -/*N*/ aRect.Left() = aRect.Left() + aRect.GetWidth() / 2 - rTextSize.Width() / 2; -/*N*/ aRect.Right() = aRect.Left() + rTextSize.Width(); -/*N*/ aRect.Bottom() = aRect.Top() + rTextSize.Height(); -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_TOP_RIGHT: -/*N*/ aRect.Left() = aRect.Right() - rTextSize.Width(); -/*N*/ aRect.Bottom() = aRect.Top() + rTextSize.Height(); -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_CENTER_LEFT: -/*N*/ aRect.Right() = aRect.Left() + rTextSize.Width(); -/*N*/ aRect.Top() = aRect.Top() + aRect.GetHeight() / 2 - rTextSize.Height() / 2; -/*N*/ aRect.Bottom() = aRect.Top() + rTextSize.Height(); -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_CENTER_CENTER: -/*N*/ aRect.Left() = aRect.Left() + aRect.GetWidth() / 2 - rTextSize.Width() / 2; -/*N*/ aRect.Right() = aRect.Left() + rTextSize.Width(); -/*N*/ aRect.Top() = aRect.Top() + aRect.GetHeight() / 2 - rTextSize.Height() / 2; -/*N*/ aRect.Bottom() = aRect.Top() + rTextSize.Height(); -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_CENTER_RIGHT: -/*N*/ aRect.Left() = aRect.Right() - rTextSize.Width(); -/*N*/ aRect.Top() = aRect.Top() + aRect.GetHeight() / 2 - rTextSize.Height() / 2; -/*N*/ aRect.Bottom() = aRect.Top() + rTextSize.Height(); -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_BOTTOM_LEFT: -/*N*/ aRect.Right() = aRect.Left() + rTextSize.Width(); -/*N*/ aRect.Top() = aRect.Bottom() - rTextSize.Height(); -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_BOTTOM_CENTER: -/*N*/ aRect.Left() = aRect.Left() + aRect.GetWidth() / 2 - rTextSize.Width() / 2; -/*N*/ aRect.Right() = aRect.Left() + rTextSize.Width(); -/*N*/ aRect.Top() = aRect.Bottom() - rTextSize.Height(); -/*N*/ break; -/*N*/ -/*N*/ case CHADJUST_BOTTOM_RIGHT: -/*N*/ aRect.Left() = aRect.Right() - rTextSize.Width(); -/*N*/ aRect.Top() = aRect.Bottom() - rTextSize.Height(); -/*N*/ break; -/*N*/ -/*N*/ default: -/*N*/ aRect.Right() = aRect.Left() + rTextSize.Width(); -/*N*/ aRect.Bottom() = aRect.Top() + rTextSize.Height(); -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ Point aNewPos = aRect.TopLeft(); -/*N*/ -/*N*/ if (aNewPos != aOldPos) -/*N*/ { -/*N*/ long nArc = rTextObj.GetRotateAngle(); -/*N*/ -/*N*/ if (nArc) -/*N*/ { -/*N*/ double fVal = nArc * nPi180; -/*N*/ RotatePoint(aNewPos, aOldPos, sin(fVal), cos(fVal)); -/*N*/ aRect.SetPos(aNewPos); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ rTextObj.SetLogicRect(aRect); -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Ausgabegroesse ermitteln -|* -\************************************************************************/ - -/*N*/ Size GetOutputSize(SdrTextObj& rTextObj) -/*N*/ { -/*N*/ return (rTextObj.GetBoundRect().GetSize()); -/*N*/ } - -/************************************************************************* -|* -|* Erstelle eine Gruppe und die Sublist fuer ein Chart -|* -\************************************************************************/ - -/*N*/ void CreateChartGroup( SchObjGroup* &pGroup, -/*N*/ SdrObjList* &pList ) -/*N*/ { -/*N*/ pGroup = new SchObjGroup; -/*N*/ pList = pGroup->GetSubList(); -/*N*/ pGroup->InsertUserData( new SchObjectId( CHOBJID_DIAGRAM )); -/*N*/ } - - - -/************************************************************************* -|* -|* Beseitige alle Statistikattrs -|* -\************************************************************************/ - - -/*N*/ const long nOffX = SCHATTR_AXIS_AUTO_MIN - SCHATTR_X_AXIS_AUTO_MIN; -/*N*/ const long nOffY = SCHATTR_AXIS_AUTO_MIN - SCHATTR_Y_AXIS_AUTO_MIN; -/*N*/ const long nOffZ = SCHATTR_AXIS_AUTO_MIN - SCHATTR_Z_AXIS_AUTO_MIN; - -//alte in neue Achsenattr konvertieren -/*N*/ void AxisAttrOld2New(SfxItemSet &rDestSet,BOOL bClear,long nId) -/*N*/ { -/*N*/ -/*N*/ double f; -/*N*/ BOOL b; -/*N*/ SfxItemSet aSet(rDestSet); //Kopie -/*N*/ -/*N*/ SfxWhichIter aIter (aSet); -/*N*/ USHORT nWhich = aIter.FirstWhich (); -/*N*/ -/*N*/ while (nWhich) -/*N*/ { -/*N*/ switch(nWhich) -/*N*/ { -/*N*/ case SCHATTR_X_AXIS_AUTO_MIN: -/*N*/ case SCHATTR_X_AXIS_AUTO_MAX: -/*N*/ case SCHATTR_X_AXIS_AUTO_STEP_MAIN: -/*N*/ case SCHATTR_X_AXIS_AUTO_STEP_HELP: -/*N*/ case SCHATTR_X_AXIS_LOGARITHM: -/*N*/ case SCHATTR_X_AXIS_AUTO_ORIGIN: -/*N*/ -/*N*/ if(nId==CHOBJID_DIAGRAM_X_AXIS) -/*N*/ { -/*N*/ b=((const SfxBoolItem&)rDestSet.Get(nWhich)).GetValue(); -/*N*/ rDestSet.Put(SfxBoolItem(nWhich+USHORT(nOffX),b)); -/*N*/ if(bClear) -/*N*/ rDestSet.ClearItem(nWhich); -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case SCHATTR_X_AXIS_MIN: -/*N*/ case SCHATTR_X_AXIS_MAX: -/*N*/ case SCHATTR_X_AXIS_STEP_MAIN: -/*N*/ case SCHATTR_X_AXIS_STEP_HELP: -/*N*/ case SCHATTR_X_AXIS_ORIGIN: -/*N*/ -/*N*/ if(nId==CHOBJID_DIAGRAM_X_AXIS) -/*N*/ { -/*N*/ f=((const SvxDoubleItem&)rDestSet.Get(nWhich)).GetValue(); -/*N*/ rDestSet.Put(SvxDoubleItem(f,nWhich+USHORT(nOffX))); -/*N*/ if(bClear) -/*N*/ rDestSet.ClearItem(nWhich); -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case SCHATTR_Y_AXIS_AUTO_MIN: -/*N*/ case SCHATTR_Y_AXIS_AUTO_MAX: -/*N*/ case SCHATTR_Y_AXIS_AUTO_STEP_MAIN: -/*N*/ case SCHATTR_Y_AXIS_AUTO_STEP_HELP: -/*N*/ case SCHATTR_Y_AXIS_LOGARITHM: -/*N*/ case SCHATTR_Y_AXIS_AUTO_ORIGIN: -/*N*/ -/*N*/ if(nId==CHOBJID_DIAGRAM_Y_AXIS) -/*N*/ { -/*N*/ b=((const SfxBoolItem&)rDestSet.Get(nWhich)).GetValue(); -/*N*/ rDestSet.Put(SfxBoolItem(nWhich+USHORT(nOffY),b)); -/*N*/ if(bClear) -/*N*/ rDestSet.ClearItem(nWhich); -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case SCHATTR_Y_AXIS_MIN: -/*N*/ case SCHATTR_Y_AXIS_MAX: -/*N*/ case SCHATTR_Y_AXIS_STEP_MAIN: -/*N*/ case SCHATTR_Y_AXIS_STEP_HELP: -/*N*/ case SCHATTR_Y_AXIS_ORIGIN: -/*N*/ -/*N*/ if(nId==CHOBJID_DIAGRAM_Y_AXIS) -/*N*/ { -/*N*/ f=((const SvxDoubleItem&)rDestSet.Get(nWhich)).GetValue(); -/*N*/ rDestSet.Put(SvxDoubleItem(f,nWhich+USHORT(nOffY))); -/*N*/ if(bClear) -/*N*/ rDestSet.ClearItem(nWhich); -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case SCHATTR_Z_AXIS_AUTO_MIN: -/*N*/ case SCHATTR_Z_AXIS_AUTO_MAX: -/*N*/ case SCHATTR_Z_AXIS_AUTO_STEP_MAIN: -/*N*/ case SCHATTR_Z_AXIS_AUTO_STEP_HELP: -/*N*/ case SCHATTR_Z_AXIS_LOGARITHM: -/*N*/ case SCHATTR_Z_AXIS_AUTO_ORIGIN: -/*N*/ -/*N*/ if(nId==CHOBJID_DIAGRAM_Z_AXIS) -/*N*/ { -/*N*/ b=((const SfxBoolItem&)rDestSet.Get(nWhich)).GetValue(); -/*N*/ rDestSet.Put(SfxBoolItem(nWhich+USHORT(nOffZ),b)); -/*N*/ if(bClear) -/*N*/ rDestSet.ClearItem(nWhich); -/*N*/ } -/*N*/ break; -/*N*/ -/*N*/ case SCHATTR_Z_AXIS_MIN: -/*N*/ case SCHATTR_Z_AXIS_MAX: -/*N*/ case SCHATTR_Z_AXIS_STEP_MAIN: -/*N*/ case SCHATTR_Z_AXIS_STEP_HELP: -/*N*/ case SCHATTR_Z_AXIS_ORIGIN: -/*N*/ -/*N*/ if(nId==CHOBJID_DIAGRAM_Z_AXIS) -/*N*/ { -/*N*/ f=((const SvxDoubleItem&)rDestSet.Get(nWhich)).GetValue(); -/*N*/ rDestSet.Put(SvxDoubleItem(f,nWhich+USHORT(nOffZ))); -/*N*/ if(bClear) -/*N*/ rDestSet.ClearItem(nWhich); -/*N*/ } -/*N*/ break; -/*N*/ } -/*N*/ nWhich = aIter.NextWhich(); -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Pruefe zwei ItemSets und vernichte paarweise verschiedene Items -|* -\************************************************************************/ - - -/*N*/ void IntersectSets( const SfxItemSet & rSource, SfxItemSet & rDest ) -/*N*/ { -/*N*/ SfxWhichIter aIter( rSource ); -/*N*/ SfxItemState aSrcState; -/*N*/ -/*N*/ for( USHORT nWhich = aIter.FirstWhich(); nWhich != 0; nWhich = aIter.NextWhich() ) -/*N*/ { -/*N*/ aSrcState = rSource.GetItemState( nWhich ); -/*N*/ -/*N*/ if( // one item is (may be) set but the other one isn't -/*N*/ ( aSrcState != rDest.GetItemState( nWhich ) ) -/*N*/ || -/*N*/ // both items are set, but their content differs -/*N*/ // (if aSrcState is set it follows that also aDestState is set) -/*N*/ ( ( aSrcState == SFX_ITEM_SET ) -/*N*/ && -/*N*/ ( rSource.Get( nWhich ) != rDest.Get( nWhich ) ) ) ) -/*N*/ { -/*N*/ rDest.InvalidateItem( nWhich ); -/*N*/ } -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Setze je nach Ausrichtungsinformation den Punkt um den ausgerichtet wird -|* -|* Das wird hauptsaechlich von chtmode4 aufgerufen um zu wissen welche -|* Position des Textes man sich merken muss, um dne wird dann mit moeglicherweise -|* veraenderter Schriftgroesse ausgegeben. -|* -\************************************************************************/ - -/*N*/ Point SetPointOfRectangle (const Rectangle& rRect, ChartAdjust eAdjust) -/*N*/ { -/*N*/ switch (eAdjust) -/*N*/ { -/*?*/ case CHADJUST_TOP_LEFT: -/*?*/ return (rRect.TopLeft()); -/*?*/ case CHADJUST_TOP_RIGHT: -/*?*/ return (rRect.TopRight()); -/*N*/ case CHADJUST_TOP_CENTER: -/*N*/ return (rRect.TopCenter()); -/*N*/ case CHADJUST_CENTER_LEFT: -/*N*/ return (rRect.LeftCenter()); -/*?*/ case CHADJUST_CENTER_RIGHT: -/*?*/ return (rRect.RightCenter()); -/*?*/ case CHADJUST_CENTER_CENTER: -/*?*/ return (rRect.Center()); -/*?*/ case CHADJUST_BOTTOM_LEFT: -/*?*/ return (rRect.BottomLeft()); -/*?*/ case CHADJUST_BOTTOM_CENTER: -/*N*/ return (rRect.BottomCenter()); -/*?*/ case CHADJUST_BOTTOM_RIGHT: -/*?*/ return (rRect.BottomRight()); -/*?*/ default: -/*?*/ ; -/*?*/ } -/*?*/ Point aPoint(-1,-1); -/*?*/ return aPoint; // Das ist das Default für die Plazierungsinformation von Chart-Texten -/*N*/ } - -//!!! Es werden NICHT ALLE Attr ausgewertet, nur Größen-relevante! -/*N*/ void ItemsToFont(const SfxItemSet& rSet,Font& rFont) -/*N*/ { -/*N*/ const SfxPoolItem* pItem = NULL; -/*N*/ if( rSet.GetItemState( EE_CHAR_FONTINFO, TRUE, &pItem )) -/*N*/ { -/*N*/ SvxFontItem* pFontItem = (SvxFontItem*)pItem; -/*N*/ -/*N*/ rFont.SetStyleName(pFontItem->GetStyleName() ); -/*N*/ rFont.SetName( pFontItem->GetFamilyName()); -/*N*/ rFont.SetCharSet( pFontItem->GetCharSet()); -/*N*/ rFont.SetFamily( pFontItem->GetFamily()); -/*N*/ rFont.SetPitch( pFontItem->GetPitch()); -/*N*/ } -/*N*/ -/*N*/ // Scale the font's horizontal size like the vertical size. Assume that the original size is -/*N*/ // 7pt. The scaling is done here because the item EE_CHAR_FONTWIDTH holds a horizontal scaling -/*N*/ // factor. The horizontal size can therefore not be stored there. But as the font is scaled -/*N*/ // uniformly, the horizontal size depends uniquely on the vertical size. -/*N*/ long nFontHeight = static_cast<const SvxFontHeightItem&>(rSet.Get(EE_CHAR_FONTHEIGHT)).GetHeight(); -/*N*/ long nFontWidth = 0; // #89001# use default font width -/*N*/ rFont.SetSize (Size (nFontWidth, nFontHeight)); -/*N*/ -/*N*/ rFont.SetWeight( ((const SvxWeightItem&)rSet.Get( EE_CHAR_WEIGHT )).GetWeight() ); -/*N*/ rFont.SetUnderline( ((const SvxUnderlineItem&)rSet.Get( EE_CHAR_UNDERLINE )).GetUnderline() ); -/*N*/ rFont.SetStrikeout( ((const SvxCrossedOutItem&)rSet.Get( EE_CHAR_STRIKEOUT )).GetStrikeout() ); -/*N*/ rFont.SetItalic( ((const SvxPostureItem&)rSet.Get( EE_CHAR_ITALIC )).GetPosture() ); -/*N*/ rFont.SetOutline( ((const SvxContourItem&)rSet.Get( EE_CHAR_OUTLINE )).GetValue() ); -/*N*/ rFont.SetShadow( ((const SvxShadowedItem&)rSet.Get( EE_CHAR_SHADOW )).GetValue() ); -/*N*/ rFont.SetKerning( ((const SvxAutoKernItem&)rSet.Get( EE_CHAR_PAIRKERNING )).GetValue() ); -/*N*/ rFont.SetWordLineMode( ((const SvxWordLineModeItem&)rSet.Get( EE_CHAR_WLM )).GetValue() ); -/*N*/ } - - -} //namespace binfilter -#ifdef DBG_UTIL - -// ==================== DEBUG SfxItemSets ==================== - -#include <bf_svtools/itempool.hxx> -#include <bf_svtools/itemiter.hxx> - -#include <cstdio> // for snprintf -#include <cstring> // for strncat -namespace binfilter { -/*N*/ void Dbg_DebugItems( SfxItemSet& rSet, ChartModel* pModel ) -/*N*/ { -/*N*/ SfxItemPool *pItemPool=&( pModel->GetItemPool() ); -/*N*/ -/*N*/ char pBuf[ 512 ] = ""; -/*N*/ char pSmallBuf[ 128 ] = ""; -/*N*/ -/*N*/ const USHORT* pRanges = rSet.GetRanges(); -/*N*/ for( long n = 0; pRanges[ n ] && n<32; n+=2 ) -/*N*/ { -/*N*/ snprintf( pSmallBuf, sizeof(pSmallBuf), "[%"SAL_PRIdINT32"; %"SAL_PRIdINT32"] ", (sal_uInt32)pRanges[ n ], (sal_uInt32)pRanges[ n+1 ] ); -/*N*/ strncat( pBuf, pSmallBuf, sizeof(pBuf) - strlen(pBuf) - 1 ); -/*N*/ } -/*N*/ -/*N*/ OSL_TRACE( "SCH:ItemDBG - Ranges: %s", pBuf ); -/*N*/ -/*N*/ pBuf[ 0 ] = '\0'; -/*N*/ -/*N*/ long nInv = 0, nCnt = 0, nCnv = 0, nCns = 0; -/*N*/ SfxItemIter aIterator( rSet ); -/*N*/ -/*N*/ const SfxPoolItem* pItem; -/*N*/ USHORT nWhich, nNewWhich; -/*N*/ -/*N*/ pItem = aIterator.FirstItem(); -/*N*/ while( pItem ) -/*N*/ { -/*N*/ if( ! IsInvalidItem( pItem ) ) -/*N*/ { -/*N*/ nWhich= pItem->Which(); -/*N*/ -/*N*/ nCnt++; -/*N*/ if( nWhich < SCHATTR_END ) -/*N*/ nCns++; -/*N*/ if( nCnt < 100 ) -/*N*/ { -/*N*/ snprintf( pSmallBuf, sizeof(pSmallBuf), "%"SAL_PRIdINT32", ", (sal_uInt32) nWhich ); -/*N*/ strncat( pBuf, pSmallBuf, sizeof(pBuf) - strlen(pBuf) - 1 ); -/*N*/ } -/*N*/ -/*N*/ nNewWhich = pItemPool->GetWhich( nWhich ); -/*N*/ if( nWhich != nNewWhich ) -/*?*/ nCnv++; -/*N*/ } -/*N*/ else -/*?*/ nInv++; -/*N*/ -/*N*/ pItem = aIterator.NextItem(); -/*N*/ } -/*N*/ -/*N*/ OSL_TRACE( "SCH:ItemDBG - List: %s", pBuf ); -/*N*/ -/*N*/ long nColor = -1; -/*N*/ long nMat = -1; -/*N*/ const SfxPoolItem *pPoolItem; -/*N*/ -/*N*/ if( SFX_ITEM_SET == rSet.GetItemState(XATTR_FILLCOLOR,TRUE,&pPoolItem ) ) -/*N*/ { -/*N*/ Color aColor( ( ( const XFillColorItem* ) pPoolItem )->GetValue() ); -/*N*/ nColor=aColor.GetRGBColor(); -/*N*/ } -/*N*/ if( SFX_ITEM_SET == rSet.GetItemState( SDRATTR_3DOBJ_MAT_COLOR, TRUE, &pPoolItem ) ) -/*N*/ { -/*N*/ Color aNew( ((const SvxColorItem*) pPoolItem )->GetValue() ); -/*N*/ nMat=aNew.GetRGBColor(); -/*N*/ } -/*N*/ -/*N*/ -/*N*/ long r=COLORDATA_RED(nColor),g=COLORDATA_GREEN(nColor),b=COLORDATA_BLUE(nColor); -/*N*/ -/*N*/ OSL_TRACE( "SCH:ItemDBG - Info: this=%lx, #=%ld, WID-able=%ld, invalid=%ld", (long)pModel, nCnt, nCnv, nInv ); -/*N*/ OSL_TRACE( "... Chart=%ld, RGB=(%d, %d, %d), Mat=%ld", nCns, r, g, b, nMat ); -/*N*/ } -} //namespace binfilter -#endif - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_itempool.cxx b/binfilter/bf_sch/source/core/sch_itempool.cxx deleted file mode 100644 index d23dcb87a..000000000 --- a/binfilter/bf_sch/source/core/sch_itempool.cxx +++ /dev/null @@ -1,486 +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. - * - ************************************************************************/ - - -#ifdef _MSC_VER -#pragma hdrstop -#endif - -#include <bf_sfx2/sfxsids.hrc> -#include "schattr.hxx" -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR -#define ITEMID_CHARTLEGENDPOS SCHATTR_LEGEND_POS -#define ITEMID_CHARTTEXTORDER SCHATTR_TEXT_ORDER -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTINDICATE SCHATTR_STAT_INDICATE -#define ITEMID_CHARTKINDERROR SCHATTR_STAT_KIND_ERROR -#define ITEMID_CHARTREGRESSION SCHATTR_STAT_REGRESSTYPE - -#ifndef _SVX_CHRTITEM_HXX //autogen - -#include <bf_svtools/eitem.hxx> - -#endif - -// header for class SvXMLAttrContainerItem -#include <bf_svx/xmlcnitm.hxx> - -#ifndef _SVX_BRSHITEM_HXX //autogen -#define ITEMID_BRUSH SCHATTR_SYMBOL_BRUSH -#include <bf_svx/brshitem.hxx> -#endif -#ifndef _SVX_SIZEITEM_HXX //autogen -#define ITEMID_SIZE 0 -#include <bf_svx/sizeitem.hxx> -#endif - -#include "itempool.hxx" -#include "chaxis.hxx" -namespace binfilter { - - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchItemPool::SchItemPool(): -/*N*/ SfxItemPool( String( RTL_CONSTASCII_USTRINGPARAM( "SchItemPool" )), SCHATTR_START, SCHATTR_END, NULL, NULL ) -/*N*/ { - /************************************************************************** - * PoolDefaults - **************************************************************************/ -/*N*/ ppPoolDefaults = new SfxPoolItem*[SCHATTR_END - SCHATTR_START + 1]; -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_DATADESCR_DESCR - SCHATTR_START] = new SvxChartDataDescrItem; -/*N*/ ppPoolDefaults[SCHATTR_DATADESCR_SHOW_SYM - SCHATTR_START] = new SfxBoolItem(SCHATTR_DATADESCR_SHOW_SYM); -/*N*/ ppPoolDefaults[SCHATTR_LEGEND_POS - SCHATTR_START] = new SvxChartLegendPosItem( CHLEGEND_RIGHT ); -/*N*/ ppPoolDefaults[SCHATTR_TEXT_ORIENT - SCHATTR_START] = new SvxChartTextOrientItem; -/*N*/ ppPoolDefaults[SCHATTR_TEXT_ORDER - SCHATTR_START] = new SvxChartTextOrderItem; -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_MIN - SCHATTR_START] = new SfxBoolItem(SCHATTR_Y_AXIS_AUTO_MIN); -/*N*/ ppPoolDefaults[SCHATTR_Y_AXIS_MIN - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_Y_AXIS_MIN); -/*N*/ ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_MAX - SCHATTR_START] = new SfxBoolItem(SCHATTR_Y_AXIS_AUTO_MAX); -/*N*/ ppPoolDefaults[SCHATTR_Y_AXIS_MAX - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_Y_AXIS_MAX); -/*N*/ ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_STEP_MAIN - SCHATTR_START] = new SfxBoolItem(SCHATTR_Y_AXIS_AUTO_STEP_MAIN); -/*N*/ ppPoolDefaults[SCHATTR_Y_AXIS_STEP_MAIN - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_Y_AXIS_STEP_MAIN); -/*N*/ ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_STEP_HELP - SCHATTR_START] = new SfxBoolItem(SCHATTR_Y_AXIS_AUTO_STEP_HELP); -/*N*/ ppPoolDefaults[SCHATTR_Y_AXIS_STEP_HELP - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_Y_AXIS_STEP_HELP); -/*N*/ ppPoolDefaults[SCHATTR_Y_AXIS_LOGARITHM - SCHATTR_START] = new SfxBoolItem(SCHATTR_Y_AXIS_LOGARITHM); -/*N*/ ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_ORIGIN - SCHATTR_START] = new SfxBoolItem(SCHATTR_Y_AXIS_AUTO_ORIGIN); -/*N*/ ppPoolDefaults[SCHATTR_Y_AXIS_ORIGIN - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_Y_AXIS_ORIGIN); -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_X_AXIS_AUTO_MIN - SCHATTR_START] = new SfxBoolItem(SCHATTR_X_AXIS_AUTO_MIN); -/*N*/ ppPoolDefaults[SCHATTR_X_AXIS_MIN - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_X_AXIS_MIN); -/*N*/ ppPoolDefaults[SCHATTR_X_AXIS_AUTO_MAX - SCHATTR_START] = new SfxBoolItem(SCHATTR_X_AXIS_AUTO_MAX); -/*N*/ ppPoolDefaults[SCHATTR_X_AXIS_MAX - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_X_AXIS_MAX); -/*N*/ ppPoolDefaults[SCHATTR_X_AXIS_AUTO_STEP_MAIN - SCHATTR_START] = new SfxBoolItem(SCHATTR_X_AXIS_AUTO_STEP_MAIN); -/*N*/ ppPoolDefaults[SCHATTR_X_AXIS_STEP_MAIN - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_X_AXIS_STEP_MAIN); -/*N*/ ppPoolDefaults[SCHATTR_X_AXIS_AUTO_STEP_HELP - SCHATTR_START] = new SfxBoolItem(SCHATTR_X_AXIS_AUTO_STEP_HELP); -/*N*/ ppPoolDefaults[SCHATTR_X_AXIS_STEP_HELP - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_X_AXIS_STEP_HELP); -/*N*/ ppPoolDefaults[SCHATTR_X_AXIS_LOGARITHM - SCHATTR_START] = new SfxBoolItem(SCHATTR_X_AXIS_LOGARITHM); -/*N*/ ppPoolDefaults[SCHATTR_X_AXIS_AUTO_ORIGIN - SCHATTR_START] = new SfxBoolItem(SCHATTR_X_AXIS_AUTO_ORIGIN); -/*N*/ ppPoolDefaults[SCHATTR_X_AXIS_ORIGIN - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_X_AXIS_ORIGIN); -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_MIN - SCHATTR_START] = new SfxBoolItem(SCHATTR_Z_AXIS_AUTO_MIN); -/*N*/ ppPoolDefaults[SCHATTR_Z_AXIS_MIN - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_Z_AXIS_MIN); -/*N*/ ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_MAX - SCHATTR_START] = new SfxBoolItem(SCHATTR_Z_AXIS_AUTO_MAX); -/*N*/ ppPoolDefaults[SCHATTR_Z_AXIS_MAX - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_Z_AXIS_MAX); -/*N*/ ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_STEP_MAIN - SCHATTR_START] = new SfxBoolItem(SCHATTR_Z_AXIS_AUTO_STEP_MAIN); -/*N*/ ppPoolDefaults[SCHATTR_Z_AXIS_STEP_MAIN - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_Z_AXIS_STEP_MAIN); -/*N*/ ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_STEP_HELP - SCHATTR_START] = new SfxBoolItem(SCHATTR_Z_AXIS_AUTO_STEP_HELP); -/*N*/ ppPoolDefaults[SCHATTR_Z_AXIS_STEP_HELP - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_Z_AXIS_STEP_HELP); -/*N*/ ppPoolDefaults[SCHATTR_Z_AXIS_LOGARITHM - SCHATTR_START] = new SfxBoolItem(SCHATTR_Z_AXIS_LOGARITHM); -/*N*/ ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_ORIGIN - SCHATTR_START] = new SfxBoolItem(SCHATTR_Z_AXIS_AUTO_ORIGIN); -/*N*/ ppPoolDefaults[SCHATTR_Z_AXIS_ORIGIN - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_Z_AXIS_ORIGIN); -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_AXISTYPE - SCHATTR_START] = new SfxInt32Item(SCHATTR_AXISTYPE, CHART_AXIS_X); -/*N*/ ppPoolDefaults[SCHATTR_DUMMY0 - SCHATTR_START] = new SfxInt32Item(SCHATTR_DUMMY0, 0); -/*N*/ ppPoolDefaults[SCHATTR_DUMMY1 - SCHATTR_START] = new SfxInt32Item(SCHATTR_DUMMY1, 0); -/*N*/ ppPoolDefaults[SCHATTR_DUMMY2 - SCHATTR_START] = new SfxInt32Item(SCHATTR_DUMMY2, 0); -/*N*/ ppPoolDefaults[SCHATTR_DUMMY3 - SCHATTR_START] = new SfxInt32Item(SCHATTR_DUMMY3, 0); -/*N*/ ppPoolDefaults[SCHATTR_DUMMY_END - SCHATTR_START] = new SfxInt32Item(SCHATTR_DUMMY_END, 0); -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_STAT_AVERAGE - SCHATTR_START] = new SfxBoolItem (SCHATTR_STAT_AVERAGE); -/*N*/ ppPoolDefaults[SCHATTR_STAT_KIND_ERROR - SCHATTR_START] = new SfxInt32Item (SCHATTR_STAT_KIND_ERROR, 0); -/*N*/ ppPoolDefaults[SCHATTR_STAT_PERCENT - SCHATTR_START] = new SvxDoubleItem (0.0, SCHATTR_STAT_PERCENT); -/*N*/ ppPoolDefaults[SCHATTR_STAT_BIGERROR - SCHATTR_START] = new SvxDoubleItem (0.0, SCHATTR_STAT_BIGERROR); -/*N*/ ppPoolDefaults[SCHATTR_STAT_CONSTPLUS - SCHATTR_START] = new SvxDoubleItem (0.0, SCHATTR_STAT_CONSTPLUS); -/*N*/ ppPoolDefaults[SCHATTR_STAT_CONSTMINUS - SCHATTR_START] = new SvxDoubleItem (0.0, SCHATTR_STAT_CONSTMINUS); -/*N*/ ppPoolDefaults[SCHATTR_STAT_REGRESSTYPE - SCHATTR_START] = new SfxInt32Item (SCHATTR_STAT_REGRESSTYPE, 0); -/*N*/ ppPoolDefaults[SCHATTR_STAT_INDICATE - SCHATTR_START] = new SfxInt32Item (SCHATTR_STAT_INDICATE, 0); -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_TEXT_DEGREES - SCHATTR_START] = new SfxInt32Item(SCHATTR_TEXT_DEGREES, 0); -/*N*/ ppPoolDefaults[SCHATTR_TEXT_OVERLAP - SCHATTR_START] = new SfxBoolItem(SCHATTR_TEXT_OVERLAP,FALSE); -/*N*/ ppPoolDefaults[SCHATTR_TEXT_DUMMY0 - SCHATTR_START] = new SfxInt32Item(SCHATTR_TEXT_DUMMY0, 0); -/*N*/ ppPoolDefaults[SCHATTR_TEXT_DUMMY1 - SCHATTR_START] = new SfxInt32Item(SCHATTR_TEXT_DUMMY1, 0); -/*N*/ ppPoolDefaults[SCHATTR_TEXT_DUMMY2 - SCHATTR_START] = new SfxInt32Item(SCHATTR_TEXT_DUMMY2, 0); -/*N*/ ppPoolDefaults[SCHATTR_TEXT_DUMMY3 - SCHATTR_START] = new SfxInt32Item(SCHATTR_TEXT_DUMMY3, 0); -/*N*/ -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_STYLE_DEEP - SCHATTR_START] = new SfxBoolItem (SCHATTR_STYLE_DEEP, 0); -/*N*/ ppPoolDefaults[SCHATTR_STYLE_3D - SCHATTR_START] = new SfxBoolItem (SCHATTR_STYLE_3D, 0); -/*N*/ ppPoolDefaults[SCHATTR_STYLE_VERTICAL - SCHATTR_START] = new SfxBoolItem (SCHATTR_STYLE_VERTICAL, 0); -/*N*/ ppPoolDefaults[SCHATTR_STYLE_BASETYPE - SCHATTR_START] = new SfxInt32Item(SCHATTR_STYLE_BASETYPE, 0); -/*N*/ ppPoolDefaults[SCHATTR_STYLE_LINES - SCHATTR_START] = new SfxBoolItem (SCHATTR_STYLE_LINES, 0); -/*N*/ ppPoolDefaults[SCHATTR_STYLE_PERCENT - SCHATTR_START] = new SfxBoolItem (SCHATTR_STYLE_PERCENT, 0); -/*N*/ ppPoolDefaults[SCHATTR_STYLE_STACKED - SCHATTR_START] = new SfxBoolItem (SCHATTR_STYLE_STACKED, 0); -/*N*/ ppPoolDefaults[SCHATTR_STYLE_SPLINES - SCHATTR_START] = new SfxInt32Item (SCHATTR_STYLE_SPLINES, 0); //Bug: war Bool! ->Fileformat testen (betrifft nur 5er) -/*N*/ ppPoolDefaults[SCHATTR_STYLE_SYMBOL - SCHATTR_START] = new SfxInt32Item (SCHATTR_STYLE_SYMBOL, 0); -/*N*/ ppPoolDefaults[SCHATTR_STYLE_SHAPE - SCHATTR_START] = new SfxInt32Item (SCHATTR_STYLE_SHAPE, 0); -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_AXIS - SCHATTR_START] = new SfxInt32Item(SCHATTR_AXIS,2); //2 = Y-Achse!!! -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_AXIS_AUTO_MIN - SCHATTR_START] = new SfxBoolItem(SCHATTR_AXIS_AUTO_MIN); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_MIN - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_AXIS_MIN); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_AUTO_MAX - SCHATTR_START] = new SfxBoolItem(SCHATTR_AXIS_AUTO_MAX); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_MAX - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_AXIS_MAX); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_AUTO_STEP_MAIN - SCHATTR_START] = new SfxBoolItem(SCHATTR_AXIS_AUTO_STEP_MAIN); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_STEP_MAIN - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_AXIS_STEP_MAIN); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_AUTO_STEP_HELP - SCHATTR_START] = new SfxBoolItem(SCHATTR_AXIS_AUTO_STEP_HELP); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_STEP_HELP - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_AXIS_STEP_HELP); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_LOGARITHM - SCHATTR_START] = new SfxBoolItem(SCHATTR_AXIS_LOGARITHM); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_AUTO_ORIGIN - SCHATTR_START] = new SfxBoolItem(SCHATTR_AXIS_AUTO_ORIGIN); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_ORIGIN - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_AXIS_ORIGIN); -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_AXIS_TICKS - SCHATTR_START] = new SfxInt32Item(SCHATTR_AXIS_TICKS,CHAXIS_MARK_OUTER); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_HELPTICKS - SCHATTR_START] = new SfxInt32Item(SCHATTR_AXIS_HELPTICKS,0); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_NUMFMT - SCHATTR_START] = new SfxUInt32Item(SCHATTR_AXIS_NUMFMT,0); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_NUMFMTPERCENT - SCHATTR_START] = new SfxUInt32Item(SCHATTR_AXIS_NUMFMTPERCENT,11); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_SHOWAXIS - SCHATTR_START] = new SfxBoolItem(SCHATTR_AXIS_SHOWAXIS,0); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_SHOWDESCR - SCHATTR_START] = new SfxBoolItem(SCHATTR_AXIS_SHOWDESCR,0); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_SHOWMAINGRID - SCHATTR_START] = new SfxBoolItem(SCHATTR_AXIS_SHOWMAINGRID,0); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_SHOWHELPGRID - SCHATTR_START] = new SfxBoolItem(SCHATTR_AXIS_SHOWHELPGRID,0); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_TOPDOWN - SCHATTR_START] = new SfxBoolItem(SCHATTR_AXIS_TOPDOWN,0); -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_AXIS_DUMMY0 - SCHATTR_START] = new SfxInt32Item(SCHATTR_AXIS_DUMMY0,0); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_DUMMY1 - SCHATTR_START] = new SfxInt32Item(SCHATTR_AXIS_DUMMY1,0); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_DUMMY2 - SCHATTR_START] = new SfxInt32Item(SCHATTR_AXIS_DUMMY2,0); -/*N*/ ppPoolDefaults[SCHATTR_AXIS_DUMMY3 - SCHATTR_START] = new SfxInt32Item(SCHATTR_AXIS_DUMMY3,0); -/*N*/ ppPoolDefaults[SCHATTR_BAR_OVERLAP - SCHATTR_START] = new SfxInt32Item(SCHATTR_BAR_OVERLAP,0); -/*N*/ ppPoolDefaults[SCHATTR_BAR_GAPWIDTH - SCHATTR_START] = new SfxInt32Item(SCHATTR_BAR_GAPWIDTH,0); -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_SYMBOL_BRUSH - SCHATTR_START] = new SvxBrushItem(SCHATTR_SYMBOL_BRUSH); -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_STOCK_VOLUME - SCHATTR_START] = new SfxBoolItem(SCHATTR_STOCK_VOLUME,0); -/*N*/ ppPoolDefaults[SCHATTR_STOCK_UPDOWN - SCHATTR_START] = new SfxBoolItem(SCHATTR_STOCK_UPDOWN,0); -/*N*/ -/*N*/ ppPoolDefaults[SCHATTR_SYMBOL_SIZE - SCHATTR_START] = new SvxSizeItem(SCHATTR_SYMBOL_SIZE,Size(0,0)); -/*N*/ ppPoolDefaults[SCHATTR_USER_DEFINED_ATTR - SCHATTR_START] = new SvXMLAttrContainerItem( SCHATTR_USER_DEFINED_ATTR ); -/*N*/ - /************************************************************************** - * ItemInfos - **************************************************************************/ -/*N*/ pItemInfos = new SfxItemInfo[SCHATTR_END - SCHATTR_START + 1]; -/*N*/ -/*N*/ USHORT i; -/*N*/ for( i = SCHATTR_START; i <= SCHATTR_END; i++ ) -/*N*/ { -/*N*/ pItemInfos[i - SCHATTR_START]._nSID = 0; -/*N*/ pItemInfos[i - SCHATTR_START]._nFlags = SFX_ITEM_POOLABLE; -/*N*/ } -/*N*/ -/*N*/ // non-persistent items -/*N*/ for( i = SCHATTR_NONPERSISTENT_START; i <= SCHATTR_NONPERSISTENT_END; i++ ) -/*N*/ { -/*N*/ pItemInfos[ i - SCHATTR_START ]._nFlags = 0; -/*N*/ } -/*N*/ -/*N*/ // slot ids differing from which ids -/*N*/ pItemInfos[SCHATTR_LEGEND_POS - SCHATTR_START]._nSID = CHATTR_LEGEND_POS; -/*N*/ pItemInfos[SCHATTR_SYMBOL_BRUSH - SCHATTR_START]._nSID = SID_ATTR_BRUSH; -/*N*/ pItemInfos[SCHATTR_STYLE_SYMBOL - SCHATTR_START]._nSID = SID_ATTR_SYMBOLTYPE; -/*N*/ pItemInfos[SCHATTR_SYMBOL_SIZE - SCHATTR_START]._nSID = SID_ATTR_SYMBOLSIZE; -/*N*/ -/*N*/ SetDefaults(ppPoolDefaults); -/*N*/ SetItemInfos(pItemInfos); -/*N*/ } - -/************************************************************************* -|* -|* Kopier-Konstruktor, sorgt dafuer, dass die static defaults geclont -|* werden (Parameter 2 = TRUE) -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Destruktor -|* -\************************************************************************/ - -/*N*/ SchItemPool::~SchItemPool() -/*N*/ { -/*N*/ Delete(); -/*N*/ -/*N*/ delete[] pItemInfos; -/*N*/ -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_DATADESCR_DESCR - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_DATADESCR_DESCR - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_DATADESCR_SHOW_SYM - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_DATADESCR_SHOW_SYM - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_LEGEND_POS - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_LEGEND_POS - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_TEXT_ORIENT - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_TEXT_ORIENT - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_TEXT_ORDER - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_TEXT_ORDER - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_TEXT_DEGREES - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_TEXT_DEGREES - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_TEXT_OVERLAP - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_TEXT_OVERLAP - SCHATTR_START]; -/*N*/ -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_MIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_MIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Y_AXIS_MIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Y_AXIS_MIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_MAX - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_MAX - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Y_AXIS_MAX - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Y_AXIS_MAX - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_STEP_MAIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_STEP_MAIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Y_AXIS_STEP_MAIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Y_AXIS_STEP_MAIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_STEP_HELP - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_STEP_HELP - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Y_AXIS_STEP_HELP - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Y_AXIS_STEP_HELP - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Y_AXIS_LOGARITHM - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Y_AXIS_LOGARITHM - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_ORIGIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Y_AXIS_AUTO_ORIGIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Y_AXIS_ORIGIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Y_AXIS_ORIGIN - SCHATTR_START]; -/*N*/ -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_X_AXIS_AUTO_MIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_X_AXIS_AUTO_MIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_X_AXIS_MIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_X_AXIS_MIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_X_AXIS_AUTO_MAX - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_X_AXIS_AUTO_MAX - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_X_AXIS_MAX - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_X_AXIS_MAX - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_X_AXIS_AUTO_STEP_MAIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_X_AXIS_AUTO_STEP_MAIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_X_AXIS_STEP_MAIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_X_AXIS_STEP_MAIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_X_AXIS_AUTO_STEP_HELP - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_X_AXIS_AUTO_STEP_HELP - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_X_AXIS_STEP_HELP - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_X_AXIS_STEP_HELP - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_X_AXIS_LOGARITHM - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_X_AXIS_LOGARITHM - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_X_AXIS_AUTO_ORIGIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_X_AXIS_AUTO_ORIGIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_X_AXIS_ORIGIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_X_AXIS_ORIGIN - SCHATTR_START]; -/*N*/ -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_MIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_MIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Z_AXIS_MIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Z_AXIS_MIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_MAX - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_MAX - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Z_AXIS_MAX - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Z_AXIS_MAX - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_STEP_MAIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_STEP_MAIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Z_AXIS_STEP_MAIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Z_AXIS_STEP_MAIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_STEP_HELP - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_STEP_HELP - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Z_AXIS_STEP_HELP - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Z_AXIS_STEP_HELP - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Z_AXIS_LOGARITHM - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Z_AXIS_LOGARITHM - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_ORIGIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Z_AXIS_AUTO_ORIGIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_Z_AXIS_ORIGIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_Z_AXIS_ORIGIN - SCHATTR_START]; -/*N*/ -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXISTYPE - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXISTYPE - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_DUMMY0 - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_DUMMY0 - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_DUMMY1 - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_DUMMY1 - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_DUMMY2 - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_DUMMY2 - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_DUMMY3 - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_DUMMY3 - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_DUMMY_END - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_DUMMY_END - SCHATTR_START]; -/*N*/ -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STAT_AVERAGE - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_STAT_AVERAGE - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STAT_KIND_ERROR - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_STAT_KIND_ERROR - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STAT_PERCENT - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_STAT_PERCENT - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STAT_BIGERROR - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_STAT_BIGERROR - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STAT_CONSTPLUS - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_STAT_CONSTPLUS - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STAT_CONSTMINUS - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_STAT_CONSTMINUS - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STAT_INDICATE - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_STAT_INDICATE - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STAT_REGRESSTYPE - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_STAT_REGRESSTYPE - SCHATTR_START]; -/*N*/ -/*N*/ -/*N*/ -/*N*/ -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STYLE_DEEP - SCHATTR_START],0); -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STYLE_3D - SCHATTR_START],0); -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STYLE_VERTICAL - SCHATTR_START],0); -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STYLE_BASETYPE - SCHATTR_START],0); -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STYLE_LINES - SCHATTR_START],0); -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STYLE_PERCENT - SCHATTR_START],0); -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STYLE_STACKED - SCHATTR_START],0); -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STYLE_SPLINES - SCHATTR_START],0); -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STYLE_SYMBOL - SCHATTR_START],0); -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STYLE_SHAPE - SCHATTR_START],0); -/*N*/ -/*N*/ delete ppPoolDefaults[SCHATTR_STYLE_DEEP - SCHATTR_START]; -/*N*/ delete ppPoolDefaults[SCHATTR_STYLE_3D - SCHATTR_START]; -/*N*/ delete ppPoolDefaults[SCHATTR_STYLE_VERTICAL - SCHATTR_START]; -/*N*/ delete ppPoolDefaults[SCHATTR_STYLE_BASETYPE - SCHATTR_START]; -/*N*/ delete ppPoolDefaults[SCHATTR_STYLE_LINES - SCHATTR_START]; -/*N*/ delete ppPoolDefaults[SCHATTR_STYLE_PERCENT - SCHATTR_START]; -/*N*/ delete ppPoolDefaults[SCHATTR_STYLE_STACKED - SCHATTR_START]; -/*N*/ delete ppPoolDefaults[SCHATTR_STYLE_SPLINES - SCHATTR_START]; -/*N*/ delete ppPoolDefaults[SCHATTR_STYLE_SYMBOL - SCHATTR_START]; -/*N*/ delete ppPoolDefaults[SCHATTR_STYLE_SHAPE - SCHATTR_START]; -/*N*/ -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_TEXT_DUMMY0 - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_TEXT_DUMMY0 - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_TEXT_DUMMY1 - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_TEXT_DUMMY1 - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_TEXT_DUMMY2 - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_TEXT_DUMMY2 - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_TEXT_DUMMY3 - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_TEXT_DUMMY3 - SCHATTR_START]; -/*N*/ -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_AUTO_MIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_AUTO_MIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_MIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_MIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_AUTO_MAX - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_AUTO_MAX - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_MAX - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_MAX - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_AUTO_STEP_MAIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_AUTO_STEP_MAIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_STEP_MAIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_STEP_MAIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_AUTO_STEP_HELP - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_AUTO_STEP_HELP - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_STEP_HELP - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_STEP_HELP - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_LOGARITHM - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_LOGARITHM - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_AUTO_ORIGIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_AUTO_ORIGIN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_ORIGIN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_ORIGIN - SCHATTR_START]; -/*N*/ -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_TICKS - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_TICKS - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_HELPTICKS - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_HELPTICKS - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_NUMFMT - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_NUMFMT - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_NUMFMTPERCENT - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_NUMFMTPERCENT - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_SHOWAXIS - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_SHOWAXIS - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_SHOWDESCR - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_SHOWDESCR - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_SHOWMAINGRID - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_SHOWMAINGRID - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_SHOWHELPGRID - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_SHOWHELPGRID - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_TOPDOWN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_TOPDOWN - SCHATTR_START]; -/*N*/ -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_DUMMY0 - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_DUMMY0 - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_DUMMY1 - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_DUMMY1 - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_DUMMY2 - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_DUMMY2 - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_AXIS_DUMMY3 - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_AXIS_DUMMY3 - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_BAR_OVERLAP - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_BAR_OVERLAP - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_BAR_GAPWIDTH - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_BAR_GAPWIDTH - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_SYMBOL_BRUSH - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_SYMBOL_BRUSH - SCHATTR_START]; -/*N*/ -/*N*/ -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STOCK_UPDOWN - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_STOCK_UPDOWN - SCHATTR_START]; -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_STOCK_VOLUME - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_STOCK_VOLUME - SCHATTR_START]; -/*N*/ -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_SYMBOL_SIZE - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_SYMBOL_SIZE - SCHATTR_START]; -/*N*/ -/*N*/ SetRefCount(*ppPoolDefaults[SCHATTR_USER_DEFINED_ATTR - SCHATTR_START], 0); -/*N*/ delete ppPoolDefaults[SCHATTR_USER_DEFINED_ATTR - SCHATTR_START]; -/*N*/ -/*N*/ delete[] ppPoolDefaults; -/*N*/ } - -/************************************************************************* -|* -|* Clone() -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Liefert fuer alle Which-Ids 100TH_MM als MapUnit -|* -\************************************************************************/ - - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_memchrt.cxx b/binfilter/bf_sch/source/core/sch_memchrt.cxx deleted file mode 100644 index 953e5ae9a..000000000 --- a/binfilter/bf_sch/source/core/sch_memchrt.cxx +++ /dev/null @@ -1,1376 +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. - * - ************************************************************************/ - -#ifndef _STREAM_HXX -// enable stream operators >>/<< for UniString (8 Bit !) -//#ifndef ENABLE_STRING_STREAM_OPERATORS -//#define ENABLE_STRING_STREAM_OPERATORS -//#endif -#endif - -#ifndef _ZFORLIST_HXX //autogen -#ifndef _ZFORLIST_DECLARE_TABLE -#define _ZFORLIST_DECLARE_TABLE -#endif -#include <bf_svtools/zforlist.hxx> -#endif - -#include <tools/tenccvt.hxx> - -#include <float.h> -#include <math.h> -#include "schiocmp.hxx" -#include "memchrt.hxx" - -#include "schresid.hxx" -#include "glob.hrc" - -#include <functional> -#include <algorithm> -namespace binfilter { - -// ======================================== -// Helper objects -// ======================================== - -/** unary function that escapes backslashes and single quotes in a sal_Unicode - array (which you can get from an OUString with getStr()) and puts the result - into the OUStringBuffer given in the CTOR - */ -/*N*/ class lcl_Escape : public ::std::unary_function< sal_Unicode, void > -/*N*/ { -/*N*/ public: -/*N*/ lcl_Escape( ::rtl::OUStringBuffer & aResultBuffer ) : m_aResultBuffer( aResultBuffer ) {} -/*N*/ void operator() ( sal_Unicode aChar ) -/*N*/ { -/*N*/ static const sal_Unicode m_aQuote( '\'' ); -/*N*/ static const sal_Unicode m_aBackslash( '\\' ); -/*N*/ -/*N*/ if( aChar == m_aQuote || -/*N*/ aChar == m_aBackslash ) -/*N*/ m_aResultBuffer.append( m_aBackslash ); -/*N*/ m_aResultBuffer.append( aChar ); -/*N*/ } -/*N*/ -/*N*/ private: -/*N*/ ::rtl::OUStringBuffer & m_aResultBuffer; -/*N*/ }; - -/** unary function that removes backslash escapes in a sal_Unicode array (which - you can get from an OUString with getStr()) and puts the result into the - OUStringBuffer given in the CTOR - */ -/*N*/ class lcl_UnEscape : public ::std::unary_function< sal_Unicode, void > -/*N*/ { -/*N*/ public: -/*N*/ lcl_UnEscape( ::rtl::OUStringBuffer & aResultBuffer ) : m_aResultBuffer( aResultBuffer ) {} -/*N*/ void operator() ( sal_Unicode aChar ) -/*N*/ { -/*N*/ static const sal_Unicode m_aBackslash( '\\' ); -/*N*/ -/*N*/ if( aChar != m_aBackslash ) -/*N*/ m_aResultBuffer.append( aChar ); -/*N*/ } -/*N*/ -/*N*/ private: -/*N*/ ::rtl::OUStringBuffer & m_aResultBuffer; -/*N*/ }; - - - -#define MIN(a,b) ( ((a)<(b))? (a) : (b) ) -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchMemChart::SchMemChart(ChartDataId nMyID) : -/*N*/ nLastSelInfoReturn(0), -/*N*/ nRefCount (0), -/*N*/ mpColNameBuffer(NULL), -/*N*/ mpRowNameBuffer(NULL), -/*N*/ nTranslated(TRANS_NONE), -/*N*/ nRowCnt (0), -/*N*/ nColCnt (0), -/*N*/ eDataType(NUMBERFORMAT_NUMBER), -/*N*/ pData (0), -/*N*/ pColText (0), -/*N*/ pRowText (0), -/*N*/ myID (nMyID), -/*N*/ mpNumFormatter(NULL), -/*N*/ pRowNumFmtId(NULL), -/*N*/ pColNumFmtId(NULL), -/*N*/ pRowTable(NULL), -/*N*/ pColTable(NULL), -/*N*/ bReadOnly(FALSE) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchMemChart::SchMemChart(short nCols, short nRows) : -/*N*/ nLastSelInfoReturn(0), -/*N*/ nRefCount (0), -/*N*/ mpColNameBuffer(NULL), -/*N*/ mpRowNameBuffer(NULL), -/*N*/ nTranslated(TRANS_NONE), -/*N*/ eDataType(NUMBERFORMAT_NUMBER), -/*N*/ pData (0), -/*N*/ pColText (0), -/*N*/ pRowText (0), -/*N*/ myID (CHDATAID_MEMCHART_PLUS), -/*N*/ mpNumFormatter(NULL), -/*N*/ pRowNumFmtId(NULL), -/*N*/ pColNumFmtId(NULL), -/*N*/ pRowTable(NULL), -/*N*/ pColTable(NULL), -/*N*/ bReadOnly(FALSE) -/*N*/ { -/*N*/ nRowCnt = nRows; -/*N*/ nColCnt = nCols; -/*N*/ pData = new double[nColCnt * nRowCnt]; -/*N*/ -/*N*/ pRowNumFmtId= new sal_Int32 [nRowCnt]; -/*N*/ pColNumFmtId= new sal_Int32 [nColCnt]; -/*N*/ InitNumFmt(); -/*N*/ -/*N*/ pRowTable = new sal_Int32 [nRowCnt]; -/*N*/ pColTable = new sal_Int32 [nColCnt]; -/*N*/ ResetTranslation(pRowTable,nRowCnt); -/*N*/ ResetTranslation(pColTable,nColCnt); -/*N*/ -/*N*/ if (pData) -/*N*/ { -/*N*/ double *pFill = pData; -/*N*/ -/*N*/ for (short i = 0; i < nColCnt; i++) -/*N*/ for (short j = 0; j < nRowCnt; j++) -/*N*/ *(pFill ++) = 0.0; -/*N*/ } -/*N*/ -/*N*/ pColText = new String[nColCnt]; -/*N*/ pRowText = new String[nRowCnt]; -/*N*/ } -/************************************************************************* -|* -|* Kopiere alles ausser den numerischen Daten (d.h. Texte!) -|* -\************************************************************************/ -/*N*/ void SchMemChart::SetNonNumericData(const SchMemChart &rMemChart) -/*N*/ { -/*N*/ aMainTitle = rMemChart.aMainTitle; -/*N*/ aSubTitle = rMemChart.aSubTitle; -/*N*/ aXAxisTitle = rMemChart.aXAxisTitle; -/*N*/ aYAxisTitle = rMemChart.aYAxisTitle; -/*N*/ aZAxisTitle = rMemChart.aZAxisTitle; -/*N*/ eDataType = rMemChart.eDataType; -/*N*/ aSomeData1 = ((SchMemChart&) rMemChart).SomeData1 (); -/*N*/ aSomeData2 = ((SchMemChart&) rMemChart).SomeData2 (); -/*N*/ aSomeData3 = ((SchMemChart&) rMemChart).SomeData3 (); -/*N*/ aSomeData4 = ((SchMemChart&) rMemChart).SomeData4 (); -/*N*/ -/*N*/ long nCols=MIN(nColCnt,rMemChart.nColCnt); -/*N*/ long nRows=MIN(nRowCnt,rMemChart.nRowCnt); -/*N*/ -/*N*/ short i; -/*N*/ for (i = 0; i < nCols; i++) -/*N*/ pColText[i] = rMemChart.pColText[i]; -/*N*/ for (i = 0; i < nRows; i++) -/*N*/ pRowText[i] = rMemChart.pRowText[i]; -/*N*/ -/*N*/ // copy chart range -/*N*/ SetChartRange( rMemChart.GetChartRange()); -/*N*/ } -/************************************************************************* -|* -|* Kopier-Konstruktor -|* -\************************************************************************/ - -/*N*/ SchMemChart::SchMemChart(const SchMemChart& rMemChart) : -/*N*/ nRefCount (0), -/*N*/ mpColNameBuffer(NULL), -/*N*/ mpRowNameBuffer(NULL), -/*N*/ nTranslated(TRANS_NONE), -/*N*/ myID (CHDATAID_MEMCHART_PLUS), -/*N*/ mpNumFormatter(NULL), -/*N*/ pRowNumFmtId(NULL), -/*N*/ pColNumFmtId(NULL), -/*N*/ pRowTable(NULL), -/*N*/ pColTable(NULL) -/*N*/ { -/*N*/ nColCnt = rMemChart.nColCnt; -/*N*/ nRowCnt = rMemChart.nRowCnt; -/*N*/ aMainTitle = rMemChart.aMainTitle; -/*N*/ aSubTitle = rMemChart.aSubTitle; -/*N*/ aXAxisTitle = rMemChart.aXAxisTitle; -/*N*/ aYAxisTitle = rMemChart.aYAxisTitle; -/*N*/ aZAxisTitle = rMemChart.aZAxisTitle; -/*N*/ eDataType = rMemChart.eDataType; -/*N*/ aSomeData1 = ((SchMemChart&) rMemChart).SomeData1 (); -/*N*/ aSomeData2 = ((SchMemChart&) rMemChart).SomeData2 (); -/*N*/ aSomeData3 = ((SchMemChart&) rMemChart).SomeData3 (); -/*N*/ aSomeData4 = ((SchMemChart&) rMemChart).SomeData4 (); -/*N*/ pData = new double[nColCnt * nRowCnt]; -/*N*/ -/*N*/ pRowNumFmtId= new sal_Int32 [nRowCnt]; -/*N*/ pColNumFmtId= new sal_Int32 [nColCnt]; -/*N*/ pRowTable = new sal_Int32 [nRowCnt]; -/*N*/ pColTable = new sal_Int32 [nColCnt]; -/*N*/ -/*N*/ aAppLink = rMemChart.aAppLink; -/*N*/ nLastSelInfoReturn = rMemChart.nLastSelInfoReturn; -/*N*/ -/*N*/ nTranslated = rMemChart.nTranslated; -/*N*/ for(long i=0;i<nColCnt;i++) -/*N*/ { -/*N*/ pColTable[i] = rMemChart.pColTable[i]; -/*N*/ pColNumFmtId[i] = rMemChart.pColNumFmtId[i]; -/*N*/ } -/*N*/ for(long i=0;i<nRowCnt;i++) -/*N*/ { -/*N*/ pRowTable[i] = rMemChart.pRowTable[i]; -/*N*/ pRowNumFmtId[i] = rMemChart.pRowNumFmtId[i]; -/*N*/ } -/*N*/ mpNumFormatter=rMemChart.mpNumFormatter; -/*N*/ -/*N*/ if (pData) -/*N*/ { -/*N*/ double *pDest = pData; -/*N*/ double *pSource = rMemChart.pData; -/*N*/ -/*N*/ for (short i = 0; i < nColCnt; i++) -/*N*/ for (short j = 0; j < nRowCnt; j++) -/*N*/ *(pDest ++) = *(pSource ++); -/*N*/ } -/*N*/ -/*N*/ pColText = new String[nColCnt]; -/*N*/ -/*N*/ for (long i = 0; i < nColCnt; i++) -/*N*/ pColText[i] = rMemChart.pColText[i]; -/*N*/ -/*N*/ pRowText = new String[nRowCnt]; -/*N*/ -/*N*/ for (long i = 0; i < nRowCnt; i++) -/*N*/ pRowText[i] = rMemChart.pRowText[i]; -/*N*/ -/*N*/ bReadOnly = rMemChart.bReadOnly; // bm #69410# -/*N*/ -/*N*/ // copy address members -/*N*/ maCategoriesRangeAddress = rMemChart.maCategoriesRangeAddress; -/*N*/ maSeriesAddresses = rMemChart.maSeriesAddresses; -/*N*/ -/*N*/ // copy chart range -/*N*/ SetChartRange( rMemChart.GetChartRange()); -/*N*/ } - -//Überprüft, ob die Umordnung/Translation OK ist, Fehlerfall, wenn : -// a) Spaltenumordnung aber Reihen vertauscht (FALSE,TRANS_ERROR) -// b) Reihenumordnung aber Spalten vertauscht (FALSE,TRANS_ERROR) -// c) keine Umordnung, Reihen oder Spalten vertauscht (FALSE,TRANS_ERROR) -// d) Umordnungsflag gesetzt (auf TRANS_ROW,TRANS_COL oder TRANS_ERROR) aber -// keine Umordnung (mehr) vorhanden (FALSE,TRANS_NONE) -// sonst wird TRUE zurückgegeben - -#if OSL_DEBUG_LEVEL > 0 -/*N*/ BOOL SchMemChart::VerifyTranslation() -/*N*/ { -/*N*/ //Fehler ? -/*N*/ if(nTranslated!=TRANS_COL) -/*N*/ { -/*N*/ for(long nCol=0;nCol<nColCnt;nCol++) -/*N*/ { -/*N*/ if(pColTable[nCol]!=nCol) -/*N*/ { -/*?*/ //nTranslated=TRANS_ERROR; -/*?*/ if(nTranslated==TRANS_NONE) -/*?*/ { -/*?*/ OSL_FAIL("SchMemChart::Correcting Translationmode"); -/*?*/ nTranslated=TRANS_COL; -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ OSL_FAIL("fatal error in SchMemChart-translation"); -/*?*/ return FALSE; -/*?*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ if(nTranslated!=TRANS_ROW) -/*N*/ { -/*N*/ for(long nRow=0;nRow<nRowCnt;nRow++) -/*N*/ { -/*N*/ if(pRowTable[nRow]!=nRow) -/*N*/ { -/*?*/ //nTranslated=TRANS_ERROR; -/*?*/ if(nTranslated==TRANS_NONE) -/*?*/ { -/*?*/ OSL_FAIL("SchMemChart::Correcting Translationmode"); -/*?*/ nTranslated=TRANS_ROW; -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ OSL_FAIL("fatal error in SchMemChart-translation"); -/*?*/ return FALSE; -/*?*/ } -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ // Sortierung besteht noch ? -/*N*/ if(nTranslated==TRANS_ROW) -/*N*/ { -/*?*/ for(long nRow=0;nRow<nRowCnt;nRow++) -/*?*/ { -/*?*/ if(pRowTable[nRow]!=nRow) -/*?*/ return TRUE; -/*?*/ } -/*N*/ } -/*N*/ if(nTranslated==TRANS_COL) -/*N*/ { -/*?*/ for(long nCol=0;nCol<nColCnt;nCol++) -/*?*/ { -/*?*/ if(pColTable[nCol]!=nCol) -/*?*/ return TRUE; -/*?*/ } -/*N*/ } -/*N*/ -/*N*/ if(nTranslated!=TRANS_NONE) -/*N*/ { -/*?*/ nTranslated=TRANS_NONE; -/*?*/ return FALSE; -/*N*/ } -/*N*/ return TRUE; -/*N*/ -/*N*/ } -#endif - -/*N*/ double SchMemChart::GetTransData(long nCol,long nRow) -/*N*/ { -/*N*/ DBG_ASSERT(VerifyTranslation(), "Translation table corrupted in MemChart"); -/*N*/ return GetData( (short)pColTable[nCol], (short)pRowTable[nRow]); -/*N*/ } -/*N*/ double SchMemChart::GetTransDataInPercent(long nCol, long nRow, BOOL bRowData) const -/*N*/ { -/*N*/ DBG_ASSERT(((SchMemChart*)this)->VerifyTranslation(), "Translation table corrupted in MemChart"); -/*N*/ return GetDataInPercent( (short)pColTable[nCol], (short)pRowTable[nRow], bRowData); -/*N*/ } -/*N*/ const String& SchMemChart::GetTransColText(long nCol) const -/*N*/ { -/*N*/ DBG_ASSERT(((SchMemChart*)this)->VerifyTranslation(), "Translation table corrupted in MemChart"); -/*N*/ return GetColText( (short)pColTable[nCol] ); -/*N*/ } -/*N*/ const String& SchMemChart::GetTransRowText(long nRow) const -/*N*/ { -/*N*/ DBG_ASSERT(((SchMemChart*)this)->VerifyTranslation(), "Translation table corrupted in MemChart"); -/*N*/ return GetRowText( (short)pRowTable[nRow] ); -/*N*/ } -/*N*/ long SchMemChart::GetTransNumFormatIdRow(const long nRow) const -/*N*/ { -/*N*/ DBG_ASSERT(((SchMemChart*)this)->VerifyTranslation(), "Translation table corrupted in MemChart"); -/*N*/ return ( nTranslated == TRANS_ROW )? pRowNumFmtId[ pRowTable[ nRow ]]: pRowNumFmtId[ nRow ]; -/*N*/ } -/*N*/ long SchMemChart::GetTransNumFormatIdCol(const long nCol) const -/*N*/ { -/*N*/ DBG_ASSERT(((SchMemChart*)this)->VerifyTranslation(), "Translation table corrupted in MemChart"); -/*N*/ return ( nTranslated == TRANS_COL ) ? pColNumFmtId[ pColTable[ nCol ]]: pColNumFmtId[ nCol ]; -/*N*/ } - - -/************************************************************************* -|* -|* Wie GetData, aber in Prozentwerten -|* Optimierungsvorschlag: fTotal fuer jede Zeile und Spalte buffern, -|* dazu muessen alle Schnittstellen bekannt sein, -|* die Daten am MemChart veraendern koennen. -|* -\************************************************************************/ -/*N*/ double SchMemChart::GetDataInPercent(const short nCol , const short nRow, const BOOL bRowData) const -/*N*/ { -/*N*/ double fTotal=0.0,fTemp,fData; -/*N*/ short i; -/*N*/ -/*N*/ fData = GetData(nCol,nRow); -/*N*/ -/*N*/ if(bRowData) -/*N*/ { -/*N*/ for(i=0;i<nRowCnt;i++) -/*N*/ { -/*N*/ fTemp=GetData(nCol,i); -/*N*/ -/*N*/ if(fTemp != DBL_MIN) fTotal += fabs(fTemp); -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ for(i=0;i<nColCnt;i++) -/*N*/ { -/*N*/ fTemp=GetData(i,nRow); -/*N*/ -/*N*/ if(fTemp != DBL_MIN) fTotal += fabs(fTemp); -/*N*/ } -/*N*/ -/*N*/ } -/*N*/ return fTotal ? ( (fabs(fData) / fTotal) * 100.0 ) : DBL_MIN; -/*N*/ } - -/************************************************************************* -|* -|* Inserter fuer SvStream zum Speichern -|* -\************************************************************************/ - -/*N*/ SvStream& operator << (SvStream& rOut, const SchMemChart& rMemChart) -/*N*/ { -/*N*/ CharSet aSysCharSet = static_cast< CharSet >( ::GetSOStoreTextEncoding( gsl_getSystemTextEncoding(), -/*N*/ (USHORT)rOut.GetVersion()) ); -/*N*/ rOut.SetStreamCharSet( aSysCharSet ); -/*N*/ -/*N*/ //Version 1: Abspeichern der pRow,pColTable (long-array) -/*N*/ SchIOCompat aIO(rOut, STREAM_WRITE, 2); -/*N*/ -/*N*/ rOut << (INT16)rMemChart.nColCnt; -/*N*/ rOut << (INT16)rMemChart.nRowCnt; -/*N*/ -/*N*/ double *pOut = rMemChart.pData; -/*N*/ -/*N*/ short i; -/*N*/ for (i = 0; i < rMemChart.nColCnt; i++) -/*N*/ for (short j = 0; j < rMemChart.nRowCnt; j++) -/*N*/ rOut << *(pOut ++); -/*N*/ -/*N*/ rOut << (INT16)aSysCharSet; -/*N*/ rOut.WriteByteString( rMemChart.aMainTitle ); -/*N*/ rOut.WriteByteString( rMemChart.aSubTitle ); -/*N*/ rOut.WriteByteString( rMemChart.aXAxisTitle ); -/*N*/ rOut.WriteByteString( rMemChart.aYAxisTitle ); -/*N*/ rOut.WriteByteString( rMemChart.aZAxisTitle ); -/*N*/ -/*N*/ for (i = 0; i < rMemChart.nColCnt; i++) -/*N*/ rOut.WriteByteString( rMemChart.pColText[ i ] ); -/*N*/ -/*N*/ for (i = 0; i < rMemChart.nRowCnt; i++) -/*N*/ rOut.WriteByteString( rMemChart.pRowText[ i ] ); -/*N*/ -/*N*/ rOut << (INT16)rMemChart.eDataType; -/*N*/ -/*N*/ //IOVersion = 1 -/*N*/ long nIndex; -/*N*/ for (nIndex = 0; nIndex < rMemChart.nColCnt; nIndex++) -/*N*/ rOut << rMemChart.pColTable[nIndex]; -/*N*/ -/*N*/ for (nIndex = 0; nIndex < rMemChart.nRowCnt; nIndex++) -/*N*/ rOut << rMemChart.pRowTable[nIndex]; -/*N*/ -/*N*/ //IOVersion = 2 -/*N*/ rOut << rMemChart.nTranslated; -/*N*/ -/*N*/ -/*N*/ return rOut; -/*N*/ } - -/************************************************************************* -|* -|* Extractor fuer SvStream zum Laden -|* -\************************************************************************/ - -/*N*/ SvStream& operator >> (SvStream& rIn, SchMemChart& rMemChart) -/*N*/ { -/*N*/ INT16 nInt16; -/*N*/ -/*N*/ SchIOCompat aIO(rIn, STREAM_READ); -/*N*/ -/*N*/ rIn >> nInt16; rMemChart.nColCnt = (short)nInt16; -/*N*/ rIn >> nInt16; rMemChart.nRowCnt = (short)nInt16; -/*N*/ -/*N*/ rMemChart.pData = new double[rMemChart.nColCnt * rMemChart.nRowCnt]; -/*N*/ -/*N*/ double *pIn = rMemChart.pData; -/*N*/ -/*N*/ for (short i = 0; i < rMemChart.nColCnt; i++) -/*N*/ for (short j = 0; j < rMemChart.nRowCnt; j++) -/*N*/ rIn >> *(pIn ++); -/*N*/ -/*N*/ INT16 nCharSet; -/*N*/ rIn >> nCharSet; -/*N*/ -/*N*/ rtl_TextEncoding aCharSet = ::GetSOLoadTextEncoding( static_cast< rtl_TextEncoding >( nCharSet ), -/*N*/ (USHORT)rIn.GetVersion()); -/*N*/ rIn.SetStreamCharSet( aCharSet ); -/*N*/ -/*N*/ rIn.ReadByteString( rMemChart.aMainTitle ); -/*N*/ rIn.ReadByteString( rMemChart.aSubTitle ); -/*N*/ rIn.ReadByteString( rMemChart.aXAxisTitle ); -/*N*/ rIn.ReadByteString( rMemChart.aYAxisTitle ); -/*N*/ rIn.ReadByteString( rMemChart.aZAxisTitle ); -/*N*/ -/*N*/ rMemChart.pColText = new String[rMemChart.nColCnt]; -/*N*/ -/*N*/ for (short i = 0; i < rMemChart.nColCnt; i++) -/*N*/ { -/*N*/ rIn.ReadByteString( rMemChart.pColText[ i ] ); -/*N*/ } -/*N*/ -/*N*/ rMemChart.pRowText = new String[rMemChart.nRowCnt]; -/*N*/ -/*N*/ for (short i = 0; i < rMemChart.nRowCnt; i++) -/*N*/ { -/*N*/ rIn.ReadByteString( rMemChart.pRowText[ i ] ); -/*N*/ } -/*N*/ -/*N*/ rIn >> nInt16; rMemChart.eDataType = (short)nInt16; -/*N*/ -/*N*/ rMemChart.pRowNumFmtId = new sal_Int32 [rMemChart.nRowCnt]; -/*N*/ rMemChart.pColNumFmtId = new sal_Int32 [rMemChart.nColCnt]; -/*N*/ rMemChart.pRowTable = new sal_Int32 [rMemChart.nRowCnt]; -/*N*/ rMemChart.pColTable = new sal_Int32 [rMemChart.nColCnt]; -/*N*/ -/*N*/ if(aIO.GetVersion()>=1) -/*N*/ { -/*N*/ for (long i = 0; i < rMemChart.nColCnt; i++) -/*N*/ rIn >> rMemChart.pColTable[i]; -/*N*/ -/*N*/ for (long i = 0; i < rMemChart.nRowCnt; i++) -/*N*/ rIn >> rMemChart.pRowTable[i]; -/*N*/ -/*N*/ if(aIO.GetVersion()>=2) -/*N*/ rIn >> rMemChart.nTranslated; -/*N*/ -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ rMemChart.ResetTranslation(rMemChart.pRowTable,rMemChart.nRowCnt); -/*?*/ rMemChart.ResetTranslation(rMemChart.pColTable,rMemChart.nColCnt); -/*N*/ } -/*N*/ -/*N*/ rMemChart.InitNumFmt(); //ab IOVersion 2 (ToDo:) -/*N*/ -/*N*/ return rIn; -/*N*/ } - -/************************************************************************* -|* -|* QuickSort ueber Spalten -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* QuickSort ueber Zeilen -|* -\************************************************************************/ - - -/*N*/ void SchMemChart::InitNumFmt() -/*N*/ { -/*N*/ long i; -/*N*/ for(i=0;i<nColCnt;i++) -/*N*/ pColNumFmtId[i]=-1; //uninitialised! -/*N*/ -/*N*/ for(i=0;i<nRowCnt;i++) -/*N*/ pRowNumFmtId[i]=-1; -/*N*/ } - -/************************************************************************* -|* -|* QuickSort ueber Spalten -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* QuickSort ueber Zeilen -|* -\************************************************************************/ - - -/*N*/ String SchMemChart::GetDefaultColumnText( sal_Int32 nCol ) const -/*N*/ { -/*N*/ if( !mpColNameBuffer ) -/*N*/ { -/*N*/ // initialize resource string -/*N*/ mpColNameBuffer = new String[ 2 ]; -/*N*/ DBG_ASSERT( mpColNameBuffer, "couldn't create two strings!" ); -/*N*/ String aResStr( SchResId( STR_COLUMN )); -/*N*/ xub_StrLen nPos = aResStr.SearchAscii( "$(N)" ); -/*N*/ if( nPos != STRING_NOTFOUND ) -/*N*/ { -/*N*/ mpColNameBuffer[ 0 ] = String( aResStr, 0, nPos ); -/*N*/ mpColNameBuffer[ 1 ] = String( aResStr, nPos + sizeof( "$(N)" ) - 1, STRING_LEN ); -/*N*/ } -/*N*/ else -/*?*/ mpColNameBuffer[ 0 ] = aResStr; -/*N*/ } -/*N*/ -/*N*/ if( mpColNameBuffer ) -/*N*/ { -/*N*/ String aResult( mpColNameBuffer[ 0 ] ); -/*N*/ aResult.Append( String::CreateFromInt32( nCol + 1 )); -/*N*/ aResult.Append( mpColNameBuffer[ 1 ] ); -/*N*/ return aResult; -/*N*/ } -/*N*/ else -/*?*/ return String(); -/*N*/ } - -/*N*/ String SchMemChart::GetDefaultRowText( sal_Int32 nRow ) const -/*N*/ { -/*N*/ if( !mpRowNameBuffer ) -/*N*/ { -/*N*/ // initialize resource string -/*N*/ mpRowNameBuffer = new String[ 2 ]; -/*N*/ DBG_ASSERT( mpRowNameBuffer, "couldn't create two strings!" ); -/*N*/ String aResStr( SchResId( STR_ROW )); -/*N*/ xub_StrLen nPos = aResStr.SearchAscii( "$(N)" ); -/*N*/ if( nPos != STRING_NOTFOUND ) -/*N*/ { -/*N*/ mpRowNameBuffer[ 0 ] = String( aResStr, 0, nPos ); -/*N*/ mpRowNameBuffer[ 1 ] = String( aResStr, nPos + sizeof( "$(N)" ) - 1, STRING_LEN ); -/*N*/ } -/*N*/ else -/*?*/ mpRowNameBuffer[ 0 ] = aResStr; -/*N*/ } -/*N*/ -/*N*/ if( mpRowNameBuffer ) -/*N*/ { -/*N*/ String aResult( mpRowNameBuffer[ 0 ] ); -/*N*/ aResult.Append( String::CreateFromInt32( nRow + 1 )); -/*N*/ aResult.Append( mpRowNameBuffer[ 1 ] ); -/*N*/ return aResult; -/*N*/ } -/*N*/ else -/*?*/ return String(); -/*N*/ } - -using namespace ::com::sun::star; - -// ======================================== - -/*N*/ ::rtl::OUStringBuffer SchMemChart::getXMLStringForCellAddress( const SchCellAddress& rCell ) -/*N*/ { -/*N*/ ::rtl::OUStringBuffer aBuffer; -/*N*/ ::std::vector< SchSingleCell >::const_iterator aIter; -/*N*/ const ::std::vector< SchSingleCell >::const_iterator aEndIter = rCell.maCells.end(); -/*N*/ -/*N*/ for( aIter = rCell.maCells.begin(); aIter != aEndIter; aIter++ ) -/*N*/ { -/*N*/ sal_Int32 nCol = aIter->mnColumn; -/*N*/ aBuffer.append( (sal_Unicode)'.' ); -/*N*/ if( ! aIter->mbRelativeColumn ) -/*N*/ aBuffer.append( (sal_Unicode)'$' ); -/*N*/ -/*N*/ // get A, B, C, ..., AA, AB, ... representation of column number -/*N*/ if( nCol < 26 ) -/*N*/ aBuffer.append( (sal_Unicode)('A' + nCol) ); -/*N*/ else if( nCol < 702 ) -/*N*/ { -/*?*/ aBuffer.append( (sal_Unicode)('A' + nCol / 26 - 1 )); -/*?*/ aBuffer.append( (sal_Unicode)('A' + nCol % 26) ); -/*N*/ } -/*N*/ else // works for nCol <= 18,278 -/*N*/ { -/*?*/ aBuffer.append( (sal_Unicode)('A' + nCol / 702 - 1 )); -/*?*/ aBuffer.append( (sal_Unicode)('A' + (nCol % 702) / 26 )); -/*?*/ aBuffer.append( (sal_Unicode)('A' + nCol % 26) ); -/*N*/ } -/*N*/ -/*N*/ // write row number as number -/*N*/ if( ! aIter->mbRelativeRow ) -/*N*/ aBuffer.append( (sal_Unicode)'$' ); -/*N*/ aBuffer.append( aIter->mnRow + (sal_Int32)1 ); -/*N*/ } -/*N*/ -/*N*/ return aBuffer; -/*N*/ } - -/*N*/ void SchMemChart::getSingleCellAddressFromXMLString( -/*N*/ const ::rtl::OUString& rXMLString, -/*N*/ sal_Int32 nStartPos, sal_Int32 nEndPos, -/*N*/ SchSingleCell& rSingleCell ) -/*N*/ { -/*N*/ // expect "\$?[a-zA-Z]+\$?[1-9][0-9]*" -/*N*/ static const sal_Unicode aDollar( '$' ); -/*N*/ static const sal_Unicode aLetterA( 'A' ); -/*N*/ -/*N*/ ::rtl::OUString aCellStr = rXMLString.copy( nStartPos, nEndPos - nStartPos + 1 ).toAsciiUpperCase(); -/*N*/ const sal_Unicode* pStrArray = aCellStr.getStr(); -/*N*/ sal_Int32 nLength = aCellStr.getLength(); -/*N*/ sal_Int32 i = nLength - 1, nColumn = 0; -/*N*/ -/*N*/ // parse number for row -/*N*/ while( CharClass::isAsciiDigit( pStrArray[ i ] ) && i >= 0 ) -/*N*/ i--; -/*N*/ rSingleCell.mnRow = (aCellStr.copy( i + 1 )).toInt32() - 1; -/*N*/ // a dollar in XML means absolute (whereas in UI it means relative) -/*N*/ if( pStrArray[ i ] == aDollar ) -/*N*/ { -/*N*/ i--; -/*N*/ rSingleCell.mbRelativeRow = sal_False; -/*N*/ } -/*N*/ else -/*N*/ rSingleCell.mbRelativeRow = sal_True; -/*N*/ -/*N*/ // parse rest for column -/*N*/ sal_Int32 nPower = 1; -/*N*/ while( CharClass::isAsciiAlpha( pStrArray[ i ] )) -/*N*/ { -/*N*/ nColumn += (pStrArray[ i ] - aLetterA + 1) * nPower; -/*N*/ i--; -/*N*/ nPower *= 26; -/*N*/ } -/*N*/ rSingleCell.mnColumn = nColumn - 1; -/*N*/ -/*N*/ rSingleCell.mbRelativeColumn = sal_True; -/*N*/ if( i >= 0 && -/*N*/ pStrArray[ i ] == aDollar ) -/*N*/ rSingleCell.mbRelativeColumn = sal_False; -/*N*/ } - -/*N*/ bool SchMemChart::getCellAddressFromXMLString( -/*N*/ const ::rtl::OUString& rXMLString, -/*N*/ sal_Int32 nStartPos, sal_Int32 nEndPos, -/*N*/ SchCellAddress& rOutCell, -/*N*/ ::rtl::OUString& rOutTableName ) -/*N*/ { -/*N*/ static const sal_Unicode aDot( '.' ); -/*N*/ static const sal_Unicode aQuote( '\'' ); -/*N*/ static const sal_Unicode aBackslash( '\\' ); -/*N*/ -/*N*/ sal_Int32 nNextDelimiterPos = nStartPos; -/*N*/ -/*N*/ sal_Int32 nDelimiterPos = nStartPos; -/*N*/ bool bInQuotation = false; -/*N*/ // parse table name -/*N*/ while( nDelimiterPos < nEndPos && -/*N*/ ( bInQuotation || rXMLString[ nDelimiterPos ] != aDot )) -/*N*/ { -/*N*/ // skip escaped characters (with backslash) -/*N*/ if( rXMLString[ nDelimiterPos ] == aBackslash ) -/*N*/ ++nDelimiterPos; -/*N*/ // toggle quotation mode when finding single quotes -/*N*/ else if( rXMLString[ nDelimiterPos ] == aQuote ) -/*N*/ bInQuotation = ! bInQuotation; -/*N*/ -/*N*/ ++nDelimiterPos; -/*N*/ } -/*N*/ -/*N*/ if( nDelimiterPos == -1 || -/*N*/ nDelimiterPos >= nEndPos ) -/*N*/ { -/*N*/ #if OSL_DEBUG_LEVEL > 1 -/*N*/ String aStr( rXMLString.copy( nStartPos, nEndPos - nStartPos + 1 )); -/*N*/ ByteString aBstr( aStr, RTL_TEXTENCODING_ASCII_US ); -/*N*/ OSL_TRACE( "Invalid Cell Address <%s> found in XML file", aBstr.GetBuffer()); -/*N*/ #endif -/*N*/ return false; -/*N*/ } -/*N*/ if( nDelimiterPos > nStartPos ) -/*N*/ { -/*N*/ // there is a table name before the address -/*N*/ -/*N*/ ::rtl::OUStringBuffer aTableNameBuffer; -/*N*/ const sal_Unicode * pTableName = rXMLString.getStr(); -/*N*/ -/*N*/ // remove escapes from table name -/*N*/ ::std::for_each( pTableName + nStartPos, -/*N*/ pTableName + nDelimiterPos, -/*N*/ lcl_UnEscape( aTableNameBuffer )); -/*N*/ -/*N*/ // unquote quoted table name -/*N*/ const sal_Unicode * pBuf = aTableNameBuffer.getStr(); -/*N*/ if( pBuf[ 0 ] == aQuote && -/*N*/ pBuf[ aTableNameBuffer.getLength() - 1 ] == aQuote ) -/*N*/ { -/*N*/ ::rtl::OUString aName = aTableNameBuffer.makeStringAndClear(); -/*N*/ rOutTableName = aName.copy( 1, aName.getLength() - 2 ); -/*N*/ } -/*N*/ else -/*N*/ rOutTableName = aTableNameBuffer.makeStringAndClear(); -/*N*/ } -/*N*/ -/*N*/ for( sal_Int32 i = 0; -/*N*/ nNextDelimiterPos < nEndPos; -/*N*/ nDelimiterPos = nNextDelimiterPos, i++ ) -/*N*/ { -/*N*/ nNextDelimiterPos = rXMLString.indexOf( aDot, nDelimiterPos + 1 ); -/*N*/ if( nNextDelimiterPos == -1 || -/*N*/ nNextDelimiterPos > nEndPos ) -/*N*/ nNextDelimiterPos = nEndPos + 1; -/*N*/ -/*N*/ rOutCell.maCells.resize( i + 1 ); -/*N*/ getSingleCellAddressFromXMLString( rXMLString, -/*N*/ nDelimiterPos + 1, nNextDelimiterPos - 1, -/*N*/ rOutCell.maCells[ i ] ); -/*N*/ } -/*N*/ -/*N*/ return true; -/*N*/ } - -/*N*/ bool SchMemChart::getCellRangeAddressFromXMLString( -/*N*/ const ::rtl::OUString& rXMLString, -/*N*/ sal_Int32 nStartPos, sal_Int32 nEndPos, -/*N*/ SchCellRangeAddress& rOutRange ) -/*N*/ { -/*N*/ bool bResult = true; -/*N*/ static const sal_Unicode aColon( ':' ); -/*N*/ static const sal_Unicode aQuote( '\'' ); -/*N*/ static const sal_Unicode aBackslash( '\\' ); -/*N*/ -/*N*/ sal_Int32 nDelimiterPos = nStartPos; -/*N*/ bool bInQuotation = false; -/*N*/ // parse table name -/*N*/ while( nDelimiterPos < nEndPos && -/*N*/ ( bInQuotation || rXMLString[ nDelimiterPos ] != aColon )) -/*N*/ { -/*N*/ // skip escaped characters (with backslash) -/*N*/ if( rXMLString[ nDelimiterPos ] == aBackslash ) -/*N*/ ++nDelimiterPos; -/*N*/ // toggle quotation mode when finding single quotes -/*N*/ else if( rXMLString[ nDelimiterPos ] == aQuote ) -/*N*/ bInQuotation = ! bInQuotation; -/*N*/ -/*N*/ ++nDelimiterPos; -/*N*/ } -/*N*/ -/*N*/ if( nDelimiterPos <= nStartPos || // includes == and 'not found' (==-1) -/*N*/ nDelimiterPos >= nEndPos ) -/*N*/ { -/*N*/ #if OSL_DEBUG_LEVEL > 0 -/*N*/ String aStr( rXMLString.copy( nStartPos, nEndPos - nStartPos + 1 )); -/*N*/ ByteString aBstr( aStr, RTL_TEXTENCODING_ASCII_US ); -/*N*/ OSL_TRACE( "Invalid Cell Range <%s> found in XML file", aBstr.GetBuffer()); -/*N*/ #endif -/*N*/ return false; -/*N*/ } -/*N*/ bResult = getCellAddressFromXMLString( rXMLString, nStartPos, nDelimiterPos - 1, -/*N*/ rOutRange.maUpperLeft, -/*N*/ rOutRange.msTableName ); -/*N*/ ::rtl::OUString sTableSecondName; -/*N*/ if( bResult ) -/*N*/ { -/*N*/ bResult = getCellAddressFromXMLString( rXMLString, nDelimiterPos + 1, nEndPos, -/*N*/ rOutRange.maLowerRight, -/*N*/ sTableSecondName ); -/*N*/ } -/*N*/ DBG_ASSERT( sTableSecondName.getLength() == 0 || -/*N*/ sTableSecondName.equals( rOutRange.msTableName ), -/*N*/ "Cell Range must be inside the same sheet" ); -/*N*/ return bResult; -/*N*/ } - -/// interpret maChartRange and fill XML string with that -/*N*/ ::rtl::OUString SchMemChart::getXMLStringForChartRange() -/*N*/ { -/*N*/ static const sal_Unicode aSpace( ' ' ); -/*N*/ static const sal_Unicode aQuote( '\'' ); -/*N*/ -/*N*/ ::rtl::OUStringBuffer aBuffer; -/*N*/ ::std::vector< SchCellRangeAddress >::iterator aIter; -/*N*/ const ::std::vector< SchCellRangeAddress >::iterator aEndIter = maChartRange.maRanges.end(); -/*N*/ -/*N*/ for( aIter = maChartRange.maRanges.begin(); aIter != aEndIter; /* increment done in body */ ) -/*N*/ { -/*?*/ if( (aIter->msTableName).getLength()) -/*?*/ { -/*?*/ bool bNeedsEscaping = ( aIter->msTableName.indexOf( aQuote ) > -1 ); -/*?*/ bool bNeedsQuoting = bNeedsEscaping || ( aIter->msTableName.indexOf( aSpace ) > -1 ); -/*?*/ -/*?*/ // quote table name if it contains spaces or quotes -/*?*/ if( bNeedsQuoting ) -/*?*/ {DBG_BF_ASSERT(0, "STRIP"); -/*?*/ } -/*?*/ else -/*?*/ aBuffer.append( aIter->msTableName ); -/*?*/ } -/*?*/ aBuffer.append( getXMLStringForCellAddress( aIter->maUpperLeft )); -/*?*/ -/*?*/ if( aIter->maLowerRight.maCells.size()) -/*?*/ { -/*?*/ // we have a range (not a single cell) -/*?*/ aBuffer.append( sal_Unicode( ':' )); -/*?*/ aBuffer.append( getXMLStringForCellAddress( aIter->maLowerRight )); -/*?*/ } -/*?*/ -/*?*/ aIter++; -/*?*/ // separator for more than one range -/*?*/ if( aIter != aEndIter ) -/*?*/ aBuffer.append( sal_Unicode( ' ' )); -/*N*/ } -/*N*/ -/*N*/ return aBuffer.makeStringAndClear(); -/*N*/ } - -/// parse String and put results into maChartRange -/*N*/ void SchMemChart::getChartRangeForXMLString( const ::rtl::OUString& rXMLString ) -/*N*/ { -/*N*/ static const sal_Unicode aSpace( ' ' ); -/*N*/ static const sal_Unicode aQuote( '\'' ); -/*N*/ static const sal_Unicode aDollar( '$' ); -/*N*/ static const sal_Unicode aBackslash( '\\' ); -/*N*/ -/*N*/ sal_Int32 nStartPos = 0; -/*N*/ sal_Int32 nEndPos = nStartPos; -/*N*/ const sal_Int32 nLength = rXMLString.getLength(); -/*N*/ -/*N*/ // reset -/*N*/ maChartRange.maRanges.clear(); -/*N*/ -/*N*/ // iterate over different ranges -/*N*/ for( sal_Int32 i = 0; -/*N*/ nEndPos < nLength; -/*N*/ nStartPos = ++nEndPos, i++ ) -/*N*/ { -/*N*/ // find start point of next range -/*N*/ -/*N*/ // ignore leading '$' -/*N*/ if( rXMLString[ nEndPos ] == aDollar) -/*N*/ nEndPos++; -/*N*/ -/*N*/ bool bInQuotation = false; -/*N*/ // parse range -/*N*/ while( nEndPos < nLength && -/*N*/ ( bInQuotation || rXMLString[ nEndPos ] != aSpace )) -/*N*/ { -/*N*/ // skip escaped characters (with backslash) -/*N*/ if( rXMLString[ nEndPos ] == aBackslash ) -/*N*/ ++nEndPos; -/*N*/ // toggle quotation mode when finding single quotes -/*N*/ else if( rXMLString[ nEndPos ] == aQuote ) -/*N*/ bInQuotation = ! bInQuotation; -/*N*/ -/*N*/ ++nEndPos; -/*N*/ } -/*N*/ -/*N*/ maChartRange.maRanges.resize( i + 1 ); -/*N*/ if( ! getCellRangeAddressFromXMLString( -/*N*/ rXMLString, -/*N*/ nStartPos, nEndPos - 1, -/*N*/ maChartRange.maRanges[ i ] )) -/*N*/ { -/*N*/ // if an error occurred, bail out -/*N*/ maChartRange.maRanges.clear(); -/*N*/ break; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ #if OSL_DEBUG_LEVEL > 0 -/*N*/ // output result -/*N*/ OSL_TRACE( -/*N*/ ::rtl::OUStringToOString( -/*N*/ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Ranges retrieved from XML-String: \"" )) + -/*N*/ rXMLString + -/*N*/ ::rtl::OUString( sal_Unicode( '\"' )), -/*N*/ RTL_TEXTENCODING_ASCII_US ).getStr() ); -/*N*/ OSL_TRACE( "Size: %d", maChartRange.maRanges.size() ); -/*N*/ for( ::std::vector< SchCellRangeAddress >::const_iterator aIter = maChartRange.maRanges.begin(); -/*N*/ aIter != maChartRange.maRanges.end(); -/*N*/ ++aIter ) -/*N*/ { -/*N*/ OSL_TRACE( " Cell Address found:" ); -/*N*/ OSL_TRACE( " Upper-Left: " ); -/*N*/ for( ::std::vector< SchSingleCell >::const_iterator aIter2 = (*aIter).maUpperLeft.maCells.begin(); -/*N*/ aIter2 != (*aIter).maUpperLeft.maCells.end(); -/*N*/ ++aIter2 ) -/*N*/ { -/*N*/ OSL_TRACE( " Column: %d, Row: %d, Rel-Col: %s, Rel-Row: %s", -/*N*/ (*aIter2).mnColumn, (*aIter2).mnRow, -/*N*/ (*aIter2).mbRelativeColumn ? "true" : "false", -/*N*/ (*aIter2).mbRelativeRow ? "true" : "false" ); -/*N*/ } -/*N*/ OSL_TRACE( " Lower-Right: " ); -/*N*/ for( ::std::vector< SchSingleCell >::const_iterator aIter3 = (*aIter).maLowerRight.maCells.begin(); -/*N*/ aIter3 != (*aIter).maLowerRight.maCells.end(); -/*N*/ ++aIter3 ) -/*N*/ { -/*N*/ OSL_TRACE( " Column: %d, Row: %d, Rel-Col: %s, Rel-Row: %s", -/*N*/ (*aIter3).mnColumn, (*aIter3).mnRow, -/*N*/ (*aIter3).mbRelativeColumn ? "true" : "false", -/*N*/ (*aIter3).mbRelativeRow ? "true" : "false" ); -/*N*/ } -/*N*/ OSL_TRACE( -/*N*/ ::rtl::OUStringToOString( -/*N*/ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( " Table-Name: \"" )) + -/*N*/ (*aIter).msTableName + -/*N*/ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "\", Number: " )) + -/*N*/ ::rtl::OUString::valueOf( (*aIter).mnTableNumber ), -/*N*/ RTL_TEXTENCODING_ASCII_US ).getStr() ); -/*N*/ } -/*N*/ #endif -/*N*/ } - -/** this is needed for export of charts embedded in calc - for saving an XML document in old binary format -*/ -/*N*/ ::rtl::OUString SchMemChart::createTableNumberList() -/*N*/ { -/*N*/ ::rtl::OUStringBuffer aBuffer; -/*N*/ ::std::vector< SchCellRangeAddress >::iterator aIter; -/*N*/ const ::std::vector< SchCellRangeAddress >::iterator aEndIter = maChartRange.maRanges.end(); -/*N*/ sal_Bool bStarted = sal_False; -/*N*/ -/*N*/ for( aIter = maChartRange.maRanges.begin(); aIter != aEndIter; aIter++ ) -/*N*/ { -/*N*/ if( aIter->mnTableNumber != -1 ) -/*N*/ { -/*N*/ if( bStarted ) -/*?*/ aBuffer.append( (sal_Unicode)' ' ); -/*N*/ else -/*N*/ bStarted = sal_True; -/*N*/ -/*N*/ aBuffer.append( aIter->mnTableNumber ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ return aBuffer.makeStringAndClear(); -/*N*/ } - -// prerequisite: maChartRange must be set and have the correct dimension -// for all table numbers to fit in -/*N*/ void SchMemChart::parseTableNumberList( const ::rtl::OUString& aList ) -/*N*/ { -/*N*/ static const sal_Unicode aSpace( ' ' ); -/*N*/ sal_Int32 nChartRangeSize = maChartRange.maRanges.size(); -/*N*/ sal_Int32 nStartPos = 0, nEndPos; -/*N*/ sal_Int32 nLength = aList.getLength(); -/*N*/ sal_Int32 nRangeNumber = 0; -/*N*/ -/*N*/ while( nStartPos < nLength ) -/*N*/ { -/*N*/ nEndPos = aList.indexOf( aSpace, nStartPos ); -/*N*/ if( nEndPos == -1 ) -/*N*/ nEndPos = nLength; -/*N*/ -/*N*/ if( nStartPos != nEndPos ) // there were more than one space -/*N*/ { -/*N*/ if( nRangeNumber < nChartRangeSize ) -/*N*/ { -/*N*/ maChartRange.maRanges[ nRangeNumber++ ].mnTableNumber = -/*N*/ aList.copy( nStartPos, (nEndPos - nStartPos)).toInt32(); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ OSL_FAIL( "SchMemChart::parseTableNumberList: Too many table numbers for chart range" ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ nStartPos = nEndPos + 1; -/*N*/ } -/*N*/ } - - -// methods to modify SchChartRange -// ------------------------------- - -/*N*/ static sal_Int32 lcl_GetWriterBoxNum( String& rStr, BOOL bInFirst ) -/*N*/ { -/*N*/ sal_Int32 nRet = 0; -/*N*/ xub_StrLen nPos = 0; -/*N*/ if( bInFirst ) -/*N*/ { -/*N*/ // the first box starts with a letter -/*N*/ sal_Unicode cChar; -/*N*/ BOOL bFirst = TRUE; -/*N*/ while( 0 != ( cChar = rStr.GetChar( nPos )) && -/*N*/ ( (cChar >= 'A' && cChar <= 'Z') || -/*N*/ (cChar >= 'a' && cChar <= 'z') ) ) -/*N*/ { -/*N*/ if( (cChar -= 'A') >= 26 ) -/*N*/ cChar -= 'a' - '['; -/*N*/ if( bFirst ) -/*N*/ bFirst = FALSE; -/*N*/ else -/*N*/ ++nRet; -/*N*/ nRet = nRet * 52 + cChar; -/*N*/ ++nPos; -/*N*/ } -/*N*/ rStr.Erase( 0, nPos ); // remove the read characters -/*N*/ } -/*N*/ else if( STRING_NOTFOUND == ( nPos = rStr.Search( ':' ) )) -/*N*/ { -/*N*/ nRet = rStr.ToInt32(); -/*N*/ rStr.Erase(); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ nRet = rStr.Copy( 0, nPos ).ToInt32(); -/*N*/ rStr.Erase( 0, nPos+1 ); -/*N*/ } -/*N*/ return nRet; -/*N*/ } - -/*N*/ static void lcl_GetWriterTblBox( const String& rStr, -/*N*/ SchCellAddress& rToFill ) -/*N*/ { -/*N*/ BOOL bFirst = TRUE; -/*N*/ String sNm( rStr ); -/*N*/ while( sNm.Len() ) -/*N*/ { -/*N*/ SchSingleCell aCell; -/*N*/ aCell.mnColumn = ::binfilter::lcl_GetWriterBoxNum( sNm, bFirst ); -/*N*/ bFirst = FALSE; -/*N*/ aCell.mnRow = ::binfilter::lcl_GetWriterBoxNum( sNm, bFirst ); -/*N*/ rToFill.maCells.push_back( aCell ); -/*N*/ } -/*N*/ } - -/*N*/ String lcl_GetWriterBoxName( const SchCellAddress& rCell ) -/*N*/ { -/*N*/ String sNm; -/*N*/ -/*N*/ ::std::vector< SchSingleCell >::const_iterator aIter = rCell.maCells.begin(); -/*N*/ const ::std::vector< SchSingleCell >::const_iterator aEnd = rCell.maCells.end(); -/*N*/ BOOL bFirst = TRUE; -/*N*/ for( ; aIter != aEnd; aIter++ ) -/*N*/ { -/*N*/ String sTmp( String::CreateFromInt32( aIter->mnRow )); -/*N*/ if( sNm.Len() ) -/*N*/ sNm.Insert( '.', 0 ).Insert( sTmp, 0 ); -/*N*/ else -/*N*/ sNm = sTmp; -/*N*/ -/*N*/ if( bFirst ) -/*N*/ { -/*N*/ const sal_Int32 coDiff = 52; // 'A'-'Z' 'a' - 'z' -/*N*/ register sal_Int32 nCalc, nCol = aIter->mnColumn; -/*N*/ -/*N*/ do { -/*N*/ nCalc = nCol % coDiff; -/*N*/ if( nCalc >= 26 ) -/*N*/ sNm.Insert( sal_Unicode('a' - 26 + nCalc ), 0 ); -/*N*/ else -/*N*/ sNm.Insert( sal_Unicode('A' + nCalc ), 0 ); -/*N*/ -/*N*/ if( !(nCol -= nCalc) ) -/*N*/ break; -/*N*/ nCol /= coDiff; -/*N*/ --nCol; -/*N*/ } while( 1 ); -/*N*/ bFirst = FALSE; -/*N*/ } -/*N*/ else -/*N*/ sNm.Insert( '.', 0 ).Insert( -/*N*/ String::CreateFromInt32( aIter->mnColumn ), 0 ); -/*N*/ } -/*N*/ return sNm; -/*N*/ } - - -/// convert SomeData string(s) to SchChartRange and vice versa for Writer -/*N*/ bool SchMemChart::ConvertChartRangeForWriter( BOOL bOldToNew ) -/*N*/ { -/*N*/ if( bOldToNew ) // convert SomeData1 to SchChartRange -/*N*/ { -/*N*/ SchChartRange aRange; -/*N*/ if( 2 < aSomeData1.Len() ) -/*N*/ { -/*N*/ // spitze Klammern am Anfang & Ende enfernen -/*N*/ String sBox( aSomeData1 ); -/*N*/ if( '<' == sBox.GetChar( 0 ) ) sBox.Erase( 0, 1 ); -/*N*/ if( '>' == sBox.GetChar( sBox.Len()-1 ) ) sBox.Erase( sBox.Len()-1 ); -/*N*/ -/*N*/ xub_StrLen nTrenner = sBox.Search( ':' ); - if( STRING_NOTFOUND == nTrenner ) - return false; - -/*N*/ // DBG_ASSERT( STRING_NOTFOUND != nTrenner, "no valid selection" ); -/*N*/ -/*N*/ SchCellRangeAddress aCRA; -/*N*/ ::binfilter::lcl_GetWriterTblBox( sBox.Copy( 0, nTrenner ), aCRA.maUpperLeft ); -/*N*/ ::binfilter::lcl_GetWriterTblBox( sBox.Copy( nTrenner+1 ), aCRA.maLowerRight ); -/*N*/ aRange.maRanges.push_back( aCRA ); -/*N*/ } -/*N*/ if( aSomeData2.Len() ) -/*N*/ { -/*N*/ aRange.mbFirstRowContainsLabels = '1' == aSomeData2.GetChar(0); -/*N*/ aRange.mbFirstColumnContainsLabels = '1' == aSomeData2.GetChar(1); -/*N*/ } -/*N*/ SetChartRange( aRange ); -/*N*/ } -/*N*/ else // convert SchChartRange to SomeData1 -/*N*/ { -/*N*/ String sData1, sData2; -/*N*/ const SchChartRange& rRg = GetChartRange(); -/*N*/ if( rRg.maRanges.size() ) -/*N*/ { -/*N*/ ::std::vector< SchCellRangeAddress >::const_iterator -/*N*/ aIter = rRg.maRanges.begin(); -/*N*/ sData1.Assign( '<' ) -/*N*/ .Append( ::binfilter::lcl_GetWriterBoxName( aIter->maUpperLeft )) -/*N*/ .Append( ':' ) -/*N*/ .Append( ::binfilter::lcl_GetWriterBoxName( aIter->maLowerRight )) -/*N*/ .Append( '>' ); -/*N*/ -/*N*/ sData2.Assign( rRg.mbFirstRowContainsLabels ? '1' : '0' ) -/*N*/ .Append( rRg.mbFirstColumnContainsLabels ? '1' : '0' ); -/*N*/ } -/*N*/ aSomeData1 = sData1; -/*N*/ aSomeData2 = sData2; -/*N*/ } - return true; -/*N*/ } - -/// convert SomeData string(s) to SchChartRange and vice versa for Calc -/*N*/ bool SchMemChart::ConvertChartRangeForCalc( BOOL bOldToNew ) -/*N*/ { -/*N*/ if( bOldToNew ) -/*N*/ { // convert SomeData1/2/3 to SchChartRange - if( ! SomeData1().Len() || ! SomeData2().Len() || ! SomeData3().Len()) - return false; -/*N*/ // DBG_ASSERT( SomeData1().Len() && SomeData2().Len() && SomeData3().Len(), -/*N*/ // "ConvertChartRangeForCalc: can't convert old to new" ); -/*N*/ SchChartRange aChartRange; -/*N*/ const sal_Unicode cTok = ';'; -/*N*/ xub_StrLen nToken; -/*N*/ String aPos = SomeData1(); -/*N*/ if ( (nToken = aPos.GetTokenCount( cTok )) >= 5) -/*N*/ { -/*N*/ aChartRange.mbKeepCopyOfData = sal_False; -/*N*/ String aOpt = SomeData2(); -/*N*/ xub_StrLen nOptToken = aOpt.GetTokenCount( cTok ); -/*N*/ BOOL bNewChart = (nOptToken >= 4); // as of 341/342 -/*N*/ DBG_ASSERT( SomeData3().Len(), "ConvertChartRangeForCalc: no sheet names" ); -/*N*/ String aSheetNames = SomeData3(); // as of 638m -/*N*/ USHORT nCol1, nRow1, nTab1, nCol2, nRow2, nTab2; -/*N*/ xub_StrLen nInd = 0; -/*N*/ xub_StrLen nSheetInd = 0; -/*N*/ for ( xub_StrLen j=0; j < nToken; j+=5 ) -/*N*/ { -/*N*/ xub_StrLen nInd2 = nInd; - // #i73906#, #144135# if table number is -1 avoid conversion to 65535 - { - sal_Int32 nTableNum = aPos.GetToken( 0, cTok, nInd ).ToInt32(); - nTab1 = (nTableNum<0 ? 0: static_cast< USHORT >( nTableNum )); - } -/*N*/ // To make old versions (<341/342) skip it, the token separator -/*N*/ // is a ',' -/*N*/ if ( bNewChart ) - { - // #i73906#, #144135# if table number is -1 avoid conversion to 65535 - sal_Int32 nTableNum = aPos.GetToken( 1, ',', nInd2 ).ToInt32(); - nTab2 = (nTableNum<0 ? 0: static_cast< USHORT >( nTableNum )); - } -/*N*/ else -/*N*/ nTab2 = nTab1; -/*N*/ nCol1 = (USHORT) aPos.GetToken( 0, cTok, nInd ).ToInt32(); -/*N*/ nRow1 = (USHORT) aPos.GetToken( 0, cTok, nInd ).ToInt32(); -/*N*/ nCol2 = (USHORT) aPos.GetToken( 0, cTok, nInd ).ToInt32(); -/*N*/ nRow2 = (USHORT) aPos.GetToken( 0, cTok, nInd ).ToInt32(); -/*N*/ for ( USHORT nTab = nTab1; nTab <= nTab2; ++nTab ) -/*N*/ { -/*N*/ SchCellRangeAddress aCellRangeAddress; -/*N*/ SchSingleCell aCell; -/*N*/ aCell.mnColumn = nCol1; -/*N*/ aCell.mnRow = nRow1; -/*N*/ aCellRangeAddress.maUpperLeft.maCells.push_back( aCell ); -/*N*/ aCell.mnColumn = nCol2; -/*N*/ aCell.mnRow = nRow2; -/*N*/ aCellRangeAddress.maLowerRight.maCells.push_back( aCell ); -/*N*/ aCellRangeAddress.mnTableNumber = nTab; -/*N*/ String aName( aSheetNames.GetToken( 0, cTok, nSheetInd ) ); -/*N*/ aCellRangeAddress.msTableName = aName; -/*N*/ aChartRange.maRanges.push_back( aCellRangeAddress ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ if ( aOpt.Len() >= 2 ) -/*N*/ { -/*N*/ aChartRange.mbFirstRowContainsLabels = ( aOpt.GetChar(0) != '0' ); -/*N*/ aChartRange.mbFirstColumnContainsLabels = ( aOpt.GetChar(1) != '0' ); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ aChartRange.mbFirstColumnContainsLabels = sal_False; -/*N*/ aChartRange.mbFirstRowContainsLabels = sal_False; -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ aChartRange.mbFirstColumnContainsLabels = sal_False; -/*N*/ aChartRange.mbFirstRowContainsLabels = sal_False; -/*N*/ aChartRange.mbKeepCopyOfData = sal_True; -/*N*/ } -/*N*/ SetChartRange( aChartRange ); -/*N*/ } -/*N*/ else -/*N*/ { // convert SchChartRange to SomeData1/2/3 -/*N*/ const sal_Unicode cTok = ';'; -/*N*/ String aRef, aSheetNames; -/*N*/ const SchChartRange& rChartRange = GetChartRange(); -/*N*/ ::std::vector< SchCellRangeAddress >::const_iterator iRange = -/*N*/ rChartRange.maRanges.begin(); -/*N*/ DBG_ASSERT( iRange != rChartRange.maRanges.end(), -/*N*/ "ConvertChartRangeForCalc: no SchCellRangeAddress vector" ); -/*N*/ for ( ; iRange != rChartRange.maRanges.end(); ++iRange ) -/*N*/ { -/*N*/ const SchSingleCell& rAddr1 = iRange->maUpperLeft.maCells[0]; -/*N*/ const SchSingleCell& rAddr2 = iRange->maLowerRight.maCells[0]; -/*N*/ sal_Int32 nTab = iRange->mnTableNumber; - // #i73906#, #144135# do not export -1 as table number - if( nTab < 0 ) - nTab = 0; -/*N*/ if ( aRef.Len() ) -/*N*/ aRef += cTok; -/*N*/ aRef += String::CreateFromInt32( nTab ); -/*N*/ // here ',' as TokenSep so old versions (<341/342) will ignore it -/*N*/ aRef += ','; aRef += String::CreateFromInt32( nTab ); -/*N*/ aRef += cTok; aRef += String::CreateFromInt32( rAddr1.mnColumn ); -/*N*/ aRef += cTok; aRef += String::CreateFromInt32( rAddr1.mnRow ); -/*N*/ aRef += cTok; aRef += String::CreateFromInt32( rAddr2.mnColumn ); -/*N*/ aRef += cTok; aRef += String::CreateFromInt32( rAddr2.mnRow ); -/*N*/ if ( aSheetNames.Len() ) -/*N*/ aSheetNames += cTok; -/*N*/ aSheetNames += String( iRange->msTableName ); -/*N*/ } -/*N*/ -/*N*/ String aFlags = rChartRange.mbFirstRowContainsLabels ? '1' : '0'; -/*N*/ aFlags += rChartRange.mbFirstColumnContainsLabels ? '1' : '0'; -/*N*/ -/*N*/ SomeData1() = aRef; -/*N*/ SomeData2() = aFlags; -/*N*/ SomeData3() = aSheetNames; -/*N*/ } - return true; -/*N*/ } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_objadj.cxx b/binfilter/bf_sch/source/core/sch_objadj.cxx deleted file mode 100644 index 31a6eeedb..000000000 --- a/binfilter/bf_sch/source/core/sch_objadj.cxx +++ /dev/null @@ -1,126 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma hdrstop -#endif - -#include "objadj.hxx" -#include "glob.hxx" - -#include <tools/debug.hxx> - -namespace binfilter { - - - - -/************************************************************************* -|* -|* Objekt-Ausrichting ermitteln -|* -\************************************************************************/ - -/*N*/ SchObjectAdjust* GetObjectAdjust(const SdrObject& rObj) -/*N*/ { -/*N*/ for (USHORT i = 0; i < rObj.GetUserDataCount(); i++) -/*N*/ { -/*N*/ SdrObjUserData *pData = rObj.GetUserData(i); -/*N*/ if (pData && pData->GetId() == SCH_OBJECTADJUST_ID) -/*N*/ return (SchObjectAdjust*)pData; -/*N*/ } -/*N*/ -/*?*/ return NULL; -/*N*/ } - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchObjectAdjust::SchObjectAdjust() : -/*N*/ SdrObjUserData(SchInventor, SCH_OBJECTADJUST_ID, 1), -/*N*/ eAdjust(CHADJUST_TOP_LEFT), -/*N*/ eOrient(CHTXTORIENT_STANDARD) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchObjectAdjust::SchObjectAdjust(ChartAdjust eAdj, -/*N*/ SvxChartTextOrient eOr) : -/*N*/ SdrObjUserData(SchInventor, SCH_OBJECTADJUST_ID, 1), -/*N*/ eAdjust(eAdj), -/*N*/ eOrient(eOr) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Kopie erzeugen -|* -\************************************************************************/ - -/*N*/ SdrObjUserData* SchObjectAdjust::Clone(SdrObject *) const -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); return NULL; -/*N*/ } - -/************************************************************************* -|* -|* Daten aus Stream lesen -|* -\************************************************************************/ - -/*N*/ void SchObjectAdjust::ReadData(SvStream& rIn) -/*N*/ { -/*N*/ SdrObjUserData::ReadData(rIn); -/*N*/ -/*N*/ INT16 nInt16; -/*N*/ -/*N*/ rIn >> nInt16; eAdjust = (ChartAdjust)nInt16; -/*N*/ -/*N*/ if (nVersion < 1) -/*?*/ eOrient = CHTXTORIENT_STANDARD; -/*N*/ else -/*N*/ { -/*N*/ rIn >> nInt16; eOrient = (SvxChartTextOrient)nInt16; -/*N*/ } -/*N*/ -/*N*/ } - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_objfac.cxx b/binfilter/bf_sch/source/core/sch_objfac.cxx deleted file mode 100644 index 756f5ec50..000000000 --- a/binfilter/bf_sch/source/core/sch_objfac.cxx +++ /dev/null @@ -1,114 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma hdrstop -#endif - -#include "axisid.hxx" -#include "schgroup.hxx" -#include "objfac.hxx" -#include "objid.hxx" -#include "objadj.hxx" -#include "datarow.hxx" -#include "datapoin.hxx" -#include "glob.hxx" -namespace binfilter { - - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchObjFactory::SchObjFactory() : -/*N*/ bInserted(FALSE) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Chart-interne Objekte erzeugen -|* -\************************************************************************/ - -/*N*/ IMPL_LINK( SchObjFactory, MakeObject, SdrObjFactory*, pObjFactory) -/*N*/ { -/*N*/ if (pObjFactory->nInventor == SchInventor && -/*N*/ pObjFactory->nIdentifier == SCH_OBJGROUP_ID) -/*N*/ pObjFactory->pNewObj = new SchObjGroup; -/*N*/ -/*N*/ return 0; -/*N*/ } - -/************************************************************************* -|* -|* Chart-Userdata erzeugen -|* -\************************************************************************/ - -/*N*/ IMPL_LINK( SchObjFactory, MakeUserData, SdrObjFactory* ,pObjFactory) -/*N*/ { -/*N*/ if (pObjFactory->nInventor == SchInventor) -/*N*/ switch (pObjFactory->nIdentifier) -/*N*/ { -/*N*/ case SCH_OBJECTID_ID: -/*N*/ pObjFactory->pNewData = new SchObjectId; -/*N*/ break; -/*N*/ -/*N*/ case SCH_OBJECTADJUST_ID: -/*N*/ pObjFactory->pNewData = new SchObjectAdjust; -/*N*/ break; -/*N*/ -/*N*/ case SCH_DATAROW_ID: -/*N*/ pObjFactory->pNewData = new SchDataRow; -/*N*/ break; -/*N*/ -/*N*/ case SCH_DATAPOINT_ID: -/*N*/ pObjFactory->pNewData = new SchDataPoint; -/*N*/ break; -/*N*/ -/*N*/ case SCH_LIGHTFACTOR_ID: -/*?*/ {DBG_BF_ASSERT(0, "STRIP");} -/*?*/ OSL_FAIL("SCH_LIGHTFACTOR_ID no longer available"); -/*?*/ break; -/*N*/ -/*N*/ case SCH_AXIS_ID : -/*N*/ pObjFactory->pNewData = new SchAxisId; -/*N*/ break; -/*N*/ } -/*N*/ -/*N*/ return 0; -/*N*/ } - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_objid.cxx b/binfilter/bf_sch/source/core/sch_objid.cxx deleted file mode 100644 index ff0aaa1b4..000000000 --- a/binfilter/bf_sch/source/core/sch_objid.cxx +++ /dev/null @@ -1,144 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma hdrstop -#endif - -#include "objid.hxx" -#include "glob.hxx" - -#include "defines.hxx" - -#include <tools/debug.hxx> -namespace binfilter { -/************************************************************************* -|* -|* Objekt-Id ermitteln; -|* Liefert -1, wenn das Objekt keine Id hat -|* -\************************************************************************/ - -/*N*/ SchObjectId* GetObjectId(const SdrObject& rObj) -/*N*/ { -/*N*/ for (USHORT i = 0; i < rObj.GetUserDataCount(); i++) -/*N*/ { -/*N*/ SdrObjUserData *pData = rObj.GetUserData(i); -/*N*/ if (pData && pData->GetId() == SCH_OBJECTID_ID) -/*N*/ return (SchObjectId*)pData; -/*N*/ } -/*N*/ -/*N*/ return NULL; -/*N*/ } - - -/************************************************************************* -|* -|* Objekt mit Id suchen; -|* liefert NULL, wenn kein Objekt gefunden wurde. -|* -\************************************************************************/ - -/*N*/ SdrObject* GetObjWithId(UINT16 nObjId, const SdrObjList& rObjList, -/*N*/ ULONG* pIndex, SdrIterMode eMode) -/*N*/ { -/*N*/ ULONG nIndex = 0; -/*N*/ -/*N*/ SdrObjListIter aIterator(rObjList, eMode); -/*N*/ while (aIterator.IsMore()) -/*N*/ { -/*N*/ SdrObject* pObj = aIterator.Next(); -/*N*/ SchObjectId* pObjId = GetObjectId(*pObj); -/*N*/ if (pObjId && pObjId->GetObjId() == nObjId) -/*N*/ { -/*N*/ if (pIndex) -/*?*/ *pIndex = nIndex; -/*N*/ return pObj; -/*N*/ } -/*N*/ -/*N*/ nIndex++; -/*N*/ } -/*N*/ -/*N*/ return NULL; -/*N*/ } - -/************************************************************************* -|* -|* Alle Objekt mit Id=nObjId Attributieren, -|* -\************************************************************************/ -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchObjectId::SchObjectId() : -/*N*/ SdrObjUserData(SchInventor, SCH_OBJECTID_ID, 0), -/*N*/ nObjId(0) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchObjectId::SchObjectId(UINT16 nId) : -/*N*/ SdrObjUserData(SchInventor, SCH_OBJECTID_ID, 0), -/*N*/ nObjId(nId) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Kopie erzeugen -|* -\************************************************************************/ - -/*N*/ SdrObjUserData* SchObjectId::Clone(SdrObject *) const -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); return NULL; -/*N*/ } - -/************************************************************************* -|* -|* Daten aus Stream lesen -|* -\************************************************************************/ - -/*N*/ void SchObjectId::ReadData(SvStream& rIn) -/*N*/ { -/*N*/ SdrObjUserData::ReadData(rIn); -/*N*/ -/*N*/ rIn >> nObjId; -/*N*/ } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_schgroup.cxx b/binfilter/bf_sch/source/core/sch_schgroup.cxx deleted file mode 100644 index a5657f099..000000000 --- a/binfilter/bf_sch/source/core/sch_schgroup.cxx +++ /dev/null @@ -1,235 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma hdrstop -#endif - - -#include "glob.hxx" -#include "schgroup.hxx" -#include <math.h> -namespace binfilter { - -/*N*/ TYPEINIT1(SchObjGroup, SdrObjGroup); - - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*N*/ SchObjGroup::SchObjGroup(ChartModel *pChmodel) : -/*N*/ SdrObjGroup(), -/*N*/ bAskForLogicRect(TRUE), -/*N*/ mbUseChartInventor( true ) -/*N*/ { -/*N*/ // FG: Damit soll es Objekten im chart ermoeglicht werden sich wie ein -/*N*/ // Objekt im Draw zu verhalten falls gewünscht. Nicht alles was -/*N*/ // prinzipiell geht soll man auch koennen. -/*N*/ aInfo.bResizeFreeAllowed = TRUE; -/*N*/ aInfo.bResizePropAllowed = TRUE; -/*N*/ aInfo.bRotateFreeAllowed = TRUE; -/*N*/ aInfo.bRotate90Allowed = TRUE; -/*N*/ aInfo.bMirrorFreeAllowed = FALSE; -/*N*/ aInfo.bMirror45Allowed = FALSE; -/*N*/ aInfo.bMirror90Allowed = FALSE; -/*N*/ aInfo.bShearAllowed = TRUE; -/*N*/ -/*N*/ eChartGroupType = NOTHING; -/*N*/ pChartmodel = pChmodel; -/*N*/ SetModel( pChartmodel ); -/*N*/ } - -/************************************************************************* -|* -|* Destruktor -|* -\************************************************************************/ - -/*N*/ SchObjGroup::~SchObjGroup() -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Identifier zurueckgeben -|* -\************************************************************************/ - -/*N*/ UINT32 SchObjGroup::GetObjInventor() const -/*N*/ { -/*N*/ if( mbUseChartInventor ) -/*N*/ return SchInventor; -/*N*/ else -/*?*/ return SdrInventor; -/*N*/ } - -/************************************************************************* -|* -|* Identifier zurueckgeben -|* -\************************************************************************/ - -/*N*/ UINT16 SchObjGroup::GetObjIdentifier() const -/*N*/ { -/*N*/ return SCH_OBJGROUP_ID; -/*N*/ } - -/************************************************************************* -|* -|* Handle-Anzahl bestimmen -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Handle erzeugen -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Handle-Liste fuellen -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Identifier zurueckgeben -|* -\************************************************************************/ - - - -/************************************************************************* -|* -|* Faehigkeiten der Chart-Gruppe feststellen -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Faehigkeiten der Chart-Gruppe zuweisen -|* -\************************************************************************/ - -/*N*/ void SchObjGroup::SetObjInfo(SdrObjTransformInfoRec aMyInfo) -/*N*/ { -/*N*/ // FG: Damit soll es Objekten im chart ermoeglicht werden sich wie ein -/*N*/ // Objekt im Draw zu verhalten falls gewünscht. -/*N*/ aInfo.bResizeFreeAllowed = aMyInfo.bResizeFreeAllowed; -/*N*/ aInfo.bResizePropAllowed = aMyInfo.bResizePropAllowed; -/*N*/ aInfo.bRotateFreeAllowed = aMyInfo.bRotateFreeAllowed; -/*N*/ aInfo.bRotate90Allowed = aMyInfo.bRotate90Allowed; -/*N*/ aInfo.bMirrorFreeAllowed = aMyInfo.bMirrorFreeAllowed; -/*N*/ aInfo.bMirror45Allowed = aMyInfo.bMirror45Allowed; -/*N*/ aInfo.bMirror90Allowed = aMyInfo.bMirror90Allowed; -/*N*/ aInfo.bShearAllowed = aMyInfo.bShearAllowed; -/*N*/ } - -/************************************************************************* -|* -|* Wirkliches Resize einer Chart-Gruppe (ohne Broadcast) -|* Bei manchen Chart-Gruppen ist eine Neuberechnung bei einem Resize -|* besser als ein hartes Resize. -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Um das Verhalten bei einem Resize in Abhaehngigkeit des selektierten -|* Objektes zu ernoeglichen. Bei Diagramme werden nicht die Teilobjekte -|* Resized sondern das Chart in den neuen Grenzen aufgebaut. -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Um mitzubekommen welche Objekte bewegt werden. Leider wird das -|* nicht nur vom Benutzer verursacht. -|* -\************************************************************************/ - -/*N*/ void SchObjGroup::Move(const Size& rSiz) -/*N*/ { -/*N*/ -/*N*/ if (eChartGroupType == DIAGRAM) -/*N*/ { -/*?*/ DBG_ASSERT( pChartmodel, "No Model" ); -/*?*/ if (pChartmodel != NULL) -/*?*/ { -/*?*/ Rectangle aRectChart = pChartmodel->GetChartRect(); -/*?*/ Rectangle aRect = GetBoundRect(); -/*?*/ Point aPointBottomLeftRectChart = aRectChart.BottomLeft(); -/*?*/ Point aPointBottomLeftBoundRect = aRect.BottomLeft(); -/*?*/ Point aPointTopRightRectChart = aRectChart.TopRight(); -/*?*/ Point aPointTopRightBoundRect = aRect.TopRight(); -/*?*/ Point aDifferenceLeftBottom = aPointBottomLeftRectChart - aPointBottomLeftBoundRect; -/*?*/ Point aDifferenceTopRight = aPointTopRightRectChart - aPointTopRightBoundRect; -/*?*/ aRect.Left() += rSiz.Width(); -/*?*/ aRect.Right() += rSiz.Width(); -/*?*/ aRect.Top() += rSiz.Height(); -/*?*/ aRect.Bottom() += rSiz.Height(); -/*?*/ bAskForLogicRect = FALSE; -/*?*/ aRect.Left() += aDifferenceLeftBottom.X(); -/*?*/ aRect.Bottom() += aDifferenceLeftBottom.Y(); -/*?*/ aRect.Right() += aDifferenceTopRight.X(); -/*?*/ aRect.Top() += aDifferenceTopRight.Y(); -/*?*/ pChartmodel->SetDiagramRectangle(aRect); -/*?*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ SdrObjGroup::Move(rSiz); -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* Um mitzubekommen welche Objekte bewegt werden. Leider wird das -|* nicht nur vom Benutzer verursacht. -|* -\************************************************************************/ - - -/*N*/ void SchObjGroup::SetUseChartInventor( bool bUseChartInventor ) -/*N*/ { -/*N*/ mbUseChartInventor = bUseChartInventor; -/*N*/ } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_schiocmp.cxx b/binfilter/bf_sch/source/core/sch_schiocmp.cxx deleted file mode 100644 index df97d183b..000000000 --- a/binfilter/bf_sch/source/core/sch_schiocmp.cxx +++ /dev/null @@ -1,61 +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. - * - ************************************************************************/ - -#include <tools/debug.hxx> -#include "schiocmp.hxx" -namespace binfilter { - - -// CTOR: writes/reads version number - -/*N*/ SchIOCompat::SchIOCompat( SvStream& rNewStream, USHORT nNewMode, -/*N*/ UINT16 nVer ) : -/*N*/ SdrDownCompat( rNewStream, nNewMode, TRUE ), -/*N*/ nVersion( nVer ) -/*N*/ { -/*N*/ switch( nNewMode ) -/*N*/ { -/*N*/ case STREAM_WRITE: -/*N*/ DBG_ASSERT( nVer != SCHIOCOMPAT_VERSIONDONTKNOW, -/*N*/ "Requesting writing of unknown File Version" ); -/*N*/ rNewStream << nVersion; -/*N*/ break; -/*N*/ -/*N*/ case STREAM_READ: -/*N*/ DBG_ASSERT( nVer == SCHIOCOMPAT_VERSIONDONTKNOW, -/*N*/ "Requesting reading of unknown File Version" ); -/*N*/ rNewStream >> nVersion; -/*N*/ break; -/*N*/ } -/*N*/ } - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_stlpool.cxx b/binfilter/bf_sch/source/core/sch_stlpool.cxx deleted file mode 100644 index a784bcd81..000000000 --- a/binfilter/bf_sch/source/core/sch_stlpool.cxx +++ /dev/null @@ -1,86 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma hdrstop -#endif - - -#include "stlpool.hxx" -#include "stlsheet.hxx" -namespace binfilter { - - -/************************************************************************* -|* -|* Ctor -|* -\************************************************************************/ - -/*N*/ SchStyleSheetPool::SchStyleSheetPool(SfxItemPool& rInPool) : -/*N*/ SfxStyleSheetPool(rInPool), -/*N*/ pActualStyleSheet(NULL) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Dtor -|* -\************************************************************************/ - -/*N*/ SchStyleSheetPool::~SchStyleSheetPool() -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Vorlage erzeugen -|* -\************************************************************************/ - -/*N*/ SfxStyleSheetBase* SchStyleSheetPool::Create(const String& rName, -/*N*/ SfxStyleFamily eFamily, -/*N*/ USHORT nInMask ) -/*N*/ { -/*N*/ return new SchStyleSheet(rName, *this, eFamily, nInMask); -/*N*/ } - - -/************************************************************************* -|* -|* Vorlage nach Vorbild erzeugen -|* -\************************************************************************/ - - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/core/sch_stlsheet.cxx b/binfilter/bf_sch/source/core/sch_stlsheet.cxx deleted file mode 100644 index a628162ff..000000000 --- a/binfilter/bf_sch/source/core/sch_stlsheet.cxx +++ /dev/null @@ -1,153 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma hdrstop -#endif - -#include <bf_svx/eeitem.hxx> - -#include <bf_svx/xdef.hxx> - - -#include <bf_svtools/itemset.hxx> - -#include <bf_svtools/smplhint.hxx> - -#include "stlsheet.hxx" -namespace binfilter { - -/*N*/ TYPEINIT1(SchStyleSheet, SfxStyleSheet); - - -/************************************************************************* -|* -|* Ctor -|* -\************************************************************************/ - -/*N*/ SchStyleSheet::SchStyleSheet(const String& rName, SfxStyleSheetBasePool& rInPool, -/*N*/ SfxStyleFamily eFamily, USHORT nInMask) : -/*N*/ SfxStyleSheet(rName, rInPool, eFamily, nInMask) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Dtor -|* -\************************************************************************/ - -/*N*/ SchStyleSheet::~SchStyleSheet() -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Load -|* -\************************************************************************/ - -/*N*/ void SchStyleSheet::Load (SvStream&, USHORT) -/*N*/ { -/*N*/ } - -/************************************************************************* -|* -|* Parent setzen -|* -\************************************************************************/ - -/*N*/ BOOL SchStyleSheet::SetParent(const String& rParentName) -/*N*/ { -/*N*/ if (SfxStyleSheet::SetParent(rParentName)) -/*N*/ { -/*N*/ SfxStyleSheetBase* pStyle = rPool.Find(rParentName, nFamily); -/*N*/ -/*N*/ if (pStyle) -/*N*/ { -/*?*/ SfxItemSet& rParentSet = pStyle->GetItemSet(); -/*?*/ GetItemSet().SetParent(&rParentSet); -/*?*/ Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED)); -/*?*/ -/*?*/ return TRUE; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ return FALSE; -/*N*/ } - -/************************************************************************* -|* -|* ItemSet ggfs. erzeugen und herausreichen -|* -\************************************************************************/ - -/*N*/ SfxItemSet& SchStyleSheet::GetItemSet() -/*N*/ { -/*N*/ if (!pSet) -/*N*/ { -/*N*/ USHORT nWhichPairTable[] = { XATTR_LINE_FIRST, XATTR_LINE_LAST, -/*N*/ XATTR_FILL_FIRST, XATTR_FILL_LAST, -/*N*/ EE_PARA_START, EE_CHAR_END, -/*N*/ (USHORT)0 }; -/*N*/ -/*N*/ pSet = new SfxItemSet(GetPool().GetPool(), nWhichPairTable); -/*N*/ bMySet = TRUE; //Eigentum erklaeren, damit der DTor der Basisklasse den -/*N*/ //Set wieder abraeumt. -/*N*/ } -/*N*/ -/*N*/ return *pSet; -/*N*/ } - -/************************************************************************* -|* -|* IsUsed(), wird an Listeners erkannt -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/filter/xml/makefile.mk b/binfilter/bf_sch/source/filter/xml/makefile.mk deleted file mode 100644 index c81f6d048..000000000 --- a/binfilter/bf_sch/source/filter/xml/makefile.mk +++ /dev/null @@ -1,44 +0,0 @@ -#************************************************************************* -# -# 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. -# -#************************************************************************* - -PRJ = ..$/..$/..$/.. -BFPRJ = ..$/..$/.. -PRJNAME = binfilter -TARGET = sch_xml -ENABLE_EXCEPTIONS = TRUE - -# --- Settings ----------------------------------------------------- -.INCLUDE : settings.mk -INC+= -I$(PRJ)$/inc$/bf_sch -# --- Files -------------------------------------------------------- - -SLOFILES = $(SLO)$/sch_SchXMLWrapper.obj - -# --- Targets -------------------------------------------------------------- - -.INCLUDE : target.mk - diff --git a/binfilter/bf_sch/source/filter/xml/sch_SchXMLWrapper.cxx b/binfilter/bf_sch/source/filter/xml/sch_SchXMLWrapper.cxx deleted file mode 100644 index 727a87426..000000000 --- a/binfilter/bf_sch/source/filter/xml/sch_SchXMLWrapper.cxx +++ /dev/null @@ -1,270 +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. - * - ************************************************************************/ - -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/task/XStatusIndicatorSupplier.hpp> -#include <com/sun/star/document/XImporter.hpp> -#include <com/sun/star/document/XFilter.hpp> -#include <com/sun/star/document/XExporter.hpp> - -#include <bf_sfx2/docfile.hxx> -#include <bf_svtools/sfxecode.hxx> - -#include "SchXMLWrapper.hxx" - -#include <unotools/streamwrap.hxx> -#include <bf_svx/xmlgrhlp.hxx> -#include <tools/debug.hxx> - -#include <comphelper/genericpropertyset.hxx> - -#include <bf_svtools/saveopt.hxx> - -#include <com/sun/star/xml/sax/XParser.hpp> -#include <com/sun/star/io/XActiveDataSource.hpp> -#include <com/sun/star/xml/sax/SAXParseException.hpp> -#include <com/sun/star/packages/zip/ZipIOException.hpp> - -#include <legacysmgr/legacy_binfilters_smgr.hxx> -namespace binfilter { - -#define XML_STRING(i, x) sal_Char const i[sizeof(x)] = x -#define MAP_LEN(x) x, sizeof(x) - 1 - -XML_STRING( sXML_metaStreamName, "meta.xml"); -XML_STRING( sXML_styleStreamName, "styles.xml" ); -XML_STRING( sXML_contentStreamName, "content.xml" ); -XML_STRING( sXML_oldContentStreamName, "Content.xml" ); - -XML_STRING( sXML_export_chart_meta_service, "com.sun.star.comp.Chart.XMLMetaExporter" ); -XML_STRING( sXML_export_chart_styles_service, "com.sun.star.comp.Chart.XMLStylesExporter" ); -XML_STRING( sXML_export_chart_content_service, "com.sun.star.comp.Chart.XMLContentExporter" ); -XML_STRING( sXML_export_chart_old_content_service, "com.sun.star.office.sax.exporter.Chart" ); - -XML_STRING( sXML_import_chart_meta_service, "com.sun.star.comp.Chart.XMLMetaImporter" ); -XML_STRING( sXML_import_chart_styles_service, "com.sun.star.comp.Chart.XMLStylesImporter" ); -XML_STRING( sXML_import_chart_content_service, "com.sun.star.comp.Chart.XMLContentImporter" ); -XML_STRING( sXML_import_chart_old_content_service, "com.sun.star.office.sax.importer.Chart" ); - -using namespace ::com::sun::star; -using namespace ::rtl; -using namespace comphelper; - -/*N*/ SchXMLWrapper::SchXMLWrapper( uno::Reference< frame::XModel >& xModel, -/*N*/ SvStorage& rStorage, -/*N*/ sal_Bool bShowProgress ) : -/*N*/ mxModel( xModel ), -/*N*/ mrStorage( rStorage ), -/*N*/ mbShowProgress( bShowProgress ) -/*N*/ {} - -// ----------------------------------------------------------------------------- - -/*N*/ sal_Bool SchXMLWrapper::ExportStream( -/*N*/ const ::rtl::OUString& rsStreamName, -/*N*/ const ::rtl::OUString& rsServiceName, -/*N*/ uno::Reference< io::XActiveDataSource >& xDataSource, -/*N*/ uno::Reference< lang::XMultiServiceFactory>& xServiceFactory, -/*N*/ uno::Sequence< uno::Any >& aArgs ) -/*N*/ { -/*N*/ sal_Bool bRet = sal_False; -/*N*/ -/*N*/ try -/*N*/ { -/*N*/ // create output stream -/*N*/ SvStorageStreamRef rOutputStream( mrStorage.OpenStream( -/*N*/ String( rsStreamName ), STREAM_WRITE | STREAM_SHARE_DENYWRITE | STREAM_TRUNC )); -/*N*/ -/*N*/ ::rtl::OUString sMIMEType( RTL_CONSTASCII_USTRINGPARAM( "text/xml" ) ); -/*N*/ uno::Any aAny; -/*N*/ aAny <<= sMIMEType; -/*N*/ rOutputStream->SetProperty( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MediaType" )), aAny ); -/*N*/ -/*N*/ // "Encrypted" means "Encryptable". Has to be set for all but the meta stream (which doesn't exist in charts) -/*N*/ aAny <<= (sal_Bool)(sal_True); -/*N*/ rOutputStream->SetProperty( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Encrypted" )), aAny ); -/*N*/ -/*N*/ rOutputStream->SetBufferSize( 0x4000 ); // 16*1024 -/*N*/ -/*N*/ if( xDataSource.is()) -/*N*/ xDataSource->setOutputStream( new ::utl::OOutputStreamWrapper( *rOutputStream )); -/*N*/ -/*N*/ uno::Reference< document::XFilter > xFilter( -/*N*/ xServiceFactory->createInstanceWithArguments( rsServiceName, aArgs ), -/*N*/ uno::UNO_QUERY ); -/*N*/ -/*N*/ if( xFilter.is()) -/*N*/ { -/*N*/ uno::Reference< document::XExporter > xExporter( xFilter, uno::UNO_QUERY ); -/*N*/ if( xExporter.is()) -/*N*/ { -/*N*/ uno::Reference< lang::XComponent > xModelComponent( mxModel, uno::UNO_QUERY ); -/*N*/ xExporter->setSourceDocument( xModelComponent ); -/*N*/ } -/*N*/ -/*N*/ // empty Descriptior (formerly FileName was given) -/*N*/ uno::Sequence< beans::PropertyValue > aEmptyDescriptor( 0 ); -/*N*/ bRet = xFilter->filter( aEmptyDescriptor ); -/*N*/ -/*N*/ if( bRet && rOutputStream.Is()) -/*N*/ rOutputStream->Commit(); -/*N*/ } -/*N*/ } -/*N*/ catch( uno::Exception aEx ) -/*N*/ { -/*N*/ #if OSL_DEBUG_LEVEL > 1 -/*N*/ // convert ::rtl::OUString => tools String => ByteString -/*?*/ String aStr( aEx.Message ); -/*?*/ ByteString aBStr( aStr, RTL_TEXTENCODING_ASCII_US ); -/*?*/ ByteString aBStrStreamName = ByteString( String( rsStreamName ), RTL_TEXTENCODING_ASCII_US ); -/*?*/ OSL_TRACE( "Exception caught during Export of \"%s\" stream(): %s", -/*?*/ aBStrStreamName.GetBuffer(), -/*?*/ aBStr.GetBuffer()); -/*N*/ #endif -/*N*/ } -/*N*/ -/*N*/ return bRet; -/*N*/ } - -/*N*/ sal_Bool SchXMLWrapper::Export() -/*N*/ { -/*N*/ sal_Bool bRet = sal_False; -/*N*/ -/*N*/ try -/*N*/ { -/*N*/ if( !mxModel.is() ) -/*N*/ { -/*N*/ OSL_FAIL("Got NO Model in XMLExport"); -/*N*/ return sal_False; -/*N*/ } -/*N*/ -/*N*/ uno::Reference< lang::XServiceInfo > xServiceInfo( mxModel, uno::UNO_QUERY ); -/*N*/ -/*N*/ if( ! xServiceInfo.is() || !xServiceInfo->supportsService( -/*N*/ OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartDocument" ) ) ) ) -/*N*/ { -/*N*/ OSL_FAIL( "Model is no ChartDocument in XMLExport" ); -/*N*/ return sal_False; -/*N*/ } -/*N*/ -/*N*/ uno::Reference< lang::XMultiServiceFactory> xServiceFactory( ::legacy_binfilters::getLegacyProcessServiceFactory() ); -/*N*/ -/*N*/ if( !xServiceFactory.is() ) -/*N*/ { -/*N*/ OSL_FAIL( "got no service manager" ); -/*N*/ return sal_False; -/*N*/ } -/*N*/ -/*N*/ uno::Reference< uno::XInterface > xWriter( xServiceFactory->createInstance( -/*N*/ OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.sax.Writer" ) ) ) ); -/*N*/ -/*N*/ if( !xWriter.is() ) -/*N*/ { -/*N*/ OSL_FAIL( "com.sun.star.xml.sax.Writer service missing" ); -/*N*/ return sal_False; -/*N*/ } -/*N*/ uno::Reference<xml::sax::XDocumentHandler > xHandler( xWriter, uno::UNO_QUERY ); -/*N*/ uno::Sequence< beans::PropertyValue > aEmptyDescriptor( 0 ); -/*N*/ -/*N*/ -/*N*/ /** property map for export info set */ -/*N*/ PropertyMapEntry aExportInfoMap[] = -/*N*/ { -/*N*/ { MAP_LEN( "UsePrettyPrinting"),0, &::getBooleanCppuType(), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0}, -/*N*/ { NULL, 0, 0, NULL, 0, 0 } -/*N*/ }; -/*N*/ -/*N*/ uno::Reference< beans::XPropertySet > xInfoSet( GenericPropertySet_CreateInstance( new PropertySetInfo( aExportInfoMap ) ) ); -/*N*/ -/*N*/ SvtSaveOptions aSaveOpt; -/*N*/ OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting")); -/*N*/ sal_Bool bUsePrettyPrinting( aSaveOpt.IsPrettyPrinting() ); -/*N*/ xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny( bUsePrettyPrinting ) ); -/*N*/ -/*N*/ -/*N*/ SvXMLGraphicHelper* pGraphicHelper = SvXMLGraphicHelper::Create( mrStorage, GRAPHICHELPER_MODE_WRITE, sal_False ); -/*N*/ uno::Reference< document::XGraphicObjectResolver > xGraphObjResolver( pGraphicHelper ); -/*N*/ uno::Reference< io::XActiveDataSource > xDataSource( xWriter, uno::UNO_QUERY ); -/*N*/ -/*N*/ // there is no meta info needed in charts - they are always OLE objects -/*N*/ // export meta -/*N*/ // uno::Sequence< uno::Any > aMetaArgs( 1 ); -/*N*/ // aMetaArgs[ 0 ] <<= xHandler; -/*N*/ // bRet = ExportStream( -/*N*/ // ::rtl::OUString::createFromAscii( sXML_metaStreamName ), -/*N*/ // ::rtl::OUString::createFromAscii( sXML_export_chart_meta_service ), -/*N*/ // xDataSource, xServiceFactory, aMetaArgs ); -/*N*/ -/*N*/ // prepare arguments: document handler / status indicator and graphics resolver -/*N*/ sal_Int32 nArgs = 2; -/*N*/ if( mxStatusIndicator.is()) -/*N*/ nArgs++; -/*N*/ if( xGraphObjResolver.is()) -/*N*/ nArgs++; -/*N*/ -/*N*/ uno::Sequence< uno::Any > aArgs( nArgs ); -/*N*/ -/*N*/ nArgs = 0; -/*N*/ aArgs[ nArgs++ ] <<= xHandler; -/*N*/ aArgs[ nArgs++ ] <<= xInfoSet; -/*N*/ -/*N*/ if( mxStatusIndicator.is()) -/*?*/ aArgs[ nArgs++ ] <<= mxStatusIndicator; -/*N*/ if( xGraphObjResolver.is()) -/*N*/ aArgs[ nArgs++ ] <<= xGraphObjResolver; -/*N*/ -/*N*/ // styles export -/*N*/ bRet = ExportStream( -/*N*/ ::rtl::OUString::createFromAscii( sXML_styleStreamName ), -/*N*/ ::rtl::OUString::createFromAscii( sXML_export_chart_styles_service ), -/*N*/ xDataSource, xServiceFactory, aArgs ); -/*N*/ -/*N*/ // content export -/*N*/ bRet = ExportStream( -/*N*/ ::rtl::OUString::createFromAscii( sXML_contentStreamName ), -/*N*/ ::rtl::OUString::createFromAscii( sXML_export_chart_content_service ), -/*N*/ xDataSource, xServiceFactory, aArgs ); -/*N*/ -/*N*/ // graphics resolver has to be destroyed this way! -/*N*/ SvXMLGraphicHelper::Destroy( pGraphicHelper ); -/*N*/ } -/*N*/ catch( uno::Exception aEx ) -/*N*/ { -/*N*/ #if OSL_DEBUG_LEVEL > 1 -/*?*/ // convert ::rtl::OUString => tools String => ByteString -/*?*/ String aStr( aEx.Message ); -/*?*/ ByteString aBStr( aStr, RTL_TEXTENCODING_ASCII_US ); -/*?*/ OSL_TRACE( "Exception caught during Export of : %s", aBStr.GetBuffer()); -/*N*/ #endif -/*N*/ } -/*N*/ -/*N*/ return bRet; -/*N*/ } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/makefile.mk b/binfilter/bf_sch/source/makefile.mk deleted file mode 100644 index 6a5a65b73..000000000 --- a/binfilter/bf_sch/source/makefile.mk +++ /dev/null @@ -1,66 +0,0 @@ -#************************************************************************* -# -# 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. -# -#************************************************************************* - -PRJ=..$/.. -BFPRJ=.. - -PROJECTPCH=sch -PROJECTPCHSOURCE=$(BFPRJ)$/util\sch_sch - -PRJNAME=binfilter -TARGET=sch - -NO_HIDS=TRUE - -LIBTARGET=NO - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk -INC+= -I$(PRJ)$/inc$/bf_sch -.IF "$(GUI)$(COM)" == "WINMSC" -LIBFLAGS+=/PAGE:128 -.ENDIF - - -# --- Files -------------------------------------------------------- - -# --- ui Lib - -LIB1TARGET= $(SLB)$/ui.lib -LIB1FILES= \ - $(SLB)$/app.lib \ - $(SLB)$/dlg.lib \ - $(SLB)$/docshell.lib \ - $(SLB)$/func.lib \ - $(SLB)$/view.lib \ - $(SLB)$/chxchart.lib - - -# --- Targets ------------------------------------------------------- - -.INCLUDE : target.mk diff --git a/binfilter/bf_sch/source/ui/app/makefile.mk b/binfilter/bf_sch/source/ui/app/makefile.mk deleted file mode 100644 index 6d91f93fe..000000000 --- a/binfilter/bf_sch/source/ui/app/makefile.mk +++ /dev/null @@ -1,90 +0,0 @@ -#************************************************************************* -# -# 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. -# -#************************************************************************* - -PRJ=..$/..$/..$/.. -BFPRJ=..$/..$/.. - -PROJECTPCH=sch -PROJECTPCHSOURCE=$(BFPRJ)$/util$/sch_sch - -PRJNAME=binfilter -TARGET=sch_app - -NO_HIDS=TRUE - -BMP_OUT=$(RES) -BMP_IN =$(BFPRJ)$/res - -# --- Settings ----------------------------------------------------- -.INCLUDE : settings.mk -alllangiso=en-US -INC+= -I$(PRJ)$/inc$/bf_sch -# --- Files -------------------------------------------------------- - -SRS1NAME=$(TARGET) -SRC1FILES = sch_app.src \ - sch_strings.src - -DEPOBJFILES = \ - $(SLO)$/sch_schlib.obj - -SLOFILES = \ - $(SLO)$/sch_schdll.obj \ - $(SLO)$/sch_schmod.obj \ - $(SLO)$/sch_schresid.obj \ - $(SLO)$/sch_schopt.obj \ - $(SLO)$/sch_globopt.obj - -LIB2TARGET = $(SLB)$/bf_ysch.lib -LIB2ARCHIV = $(LB)$/libbf_ysch.a -LIB2OBJFILES = $(SLO)$/sch_schlib.obj - - -.IF "$(GUI)" == "WNT" -NOOPTFILES=\ - $(SLO)$/sch_schdll.obj -.ENDIF - - - -# --- Targets ------------------------------------------------------- - -.INCLUDE : target.mk - -$(INCCOM)$/schlib.hxx: makefile.mk -.IF "$(GUI)"=="UNX" - $(RM) $@ - echo \#define DLL_NAME \"libbf_sch$(DLLPOSTFIX)$(DLLPOST)\" >$@ -.ELSE - echo $(EMQ)#define DLL_NAME $(EMQ)"bf_sch$(DLLPOSTFIX)$(DLLPOST)$(EMQ)" >$@ -.ENDIF - -$(SRS)$/sch_app.srs: $(PRJ)$/inc$/bf_svx$/globlmn.hrc - -$(SLO)$/sch_schlib.obj : $(INCCOM)$/schlib.hxx - - diff --git a/binfilter/bf_sch/source/ui/app/sch_app.src b/binfilter/bf_sch/source/ui/app/sch_app.src deleted file mode 100644 index d4e41a082..000000000 --- a/binfilter/bf_sch/source/ui/app/sch_app.src +++ /dev/null @@ -1,66 +0,0 @@ -/************************************************************************* - * - * 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. - * - ************************************************************************/ -#define NO_LOCALIZE_EXPORT - - -/* StarView ressource file */ - -#include <bf_svx/globlmn.hrc> -#include "app.hrc" -#include "res_bmp.hrc" -#include "bf_svx/dialogs.hrc" -#include "schhids.h" -String RID_DRAW_TOOLBOX -{ - Text [ de ] = "Werkzeugleiste" ; - Text [ en-US ] = "Main Toolbar" ; - Text [ x-comment ] = " "; - Text[ pt ] = "Barra de ferramentas"; - Text[ ru ] = "Ð“Ð»Ð°Ð²Ð½Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ инÑтрументов"; - Text[ el ] = "ΓÏαμμή εÏγαλείων"; - Text[ nl ] = "Werktuigbalk"; - Text[ fr ] = "Barre d'instruments"; - Text[ es ] = "Barra de herramientas"; - Text[ fi ] = "Päätyökalurivi"; - Text[ ca ] = "Barra d'eines principal"; - Text[ it ] = "Barra degli strumenti"; - Text[ da ] = "Værktøjslinje"; - Text[ sv ] = "Verktygslist"; - Text[ pl ] = "Główny pasek narzÄ™dzi"; - Text[ pt-BR ] = "Barra de Ferramentas Principal"; - Text[ th ] = "à¹à¸–บเครื่à¸à¸‡à¸¡à¸·à¸à¸«à¸¥à¸±à¸"; - Text[ ja ] = "標準ツールãƒãƒ¼"; - Text[ ko ] = "주 ë„구 모ìŒ"; - Text[ zh-CN ] = "主工具æ "; - Text[ zh-TW ] = "主工具列"; - Text[ tr ] = "Ana araç çubuÄŸu"; - Text[ hi-IN ] = "पà¥à¤°à¤§à¤¾à¤¨ औज़ार पटà¥à¤Ÿà¥€"; - Text[ ar ] = "شريط الأدوات"; - Text[ he ] = "‮סרגל ר×שי‬"; -}; - - diff --git a/binfilter/bf_sch/source/ui/app/sch_globopt.cxx b/binfilter/bf_sch/source/ui/app/sch_globopt.cxx deleted file mode 100644 index 80559247b..000000000 --- a/binfilter/bf_sch/source/ui/app/sch_globopt.cxx +++ /dev/null @@ -1,111 +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. - * - ************************************************************************/ -#include "globopt.hxx" - -#include <stdio.h> - -#include <bf_svtools/syslocale.hxx> -#include <unotools/configitem.hxx> -namespace binfilter { - -// ================================================================================ - -/*N*/ namespace -/*N*/ { -/*N*/ -/*N*/ bool IsMetric() -/*N*/ { -/*N*/ SvtSysLocale aSysLocale; -/*N*/ const LocaleDataWrapper* pLocWrapper = aSysLocale.GetLocaleDataPtr(); -/*N*/ MeasurementSystem eSys = pLocWrapper->getMeasurementSystemEnum(); -/*N*/ -/*N*/ return ( eSys == MEASURE_METRIC ); -/*N*/ } - -// ---------------------------------------- - -/*N*/ class CalcConfigItem : public ::utl::ConfigItem -/*N*/ { -/*N*/ public: -/*N*/ CalcConfigItem() : -/*N*/ ConfigItem( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Office.Calc/Layout" ))) -/*N*/ {} -/*N*/ -/*N*/ FieldUnit GetMeasureUnit(); - void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); - void Commit(); -/*N*/ }; - -/*N*/ FieldUnit CalcConfigItem::GetMeasureUnit() -/*N*/ { -/*N*/ FieldUnit eResult( FUNIT_CM ); -/*N*/ -/*N*/ ::com::sun::star::uno::Sequence< ::rtl::OUString > aNames( 1 ); -/*N*/ if( IsMetric() ) -/*N*/ aNames[ 0 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Other/MeasureUnit/Metric" )); -/*N*/ else -/*N*/ aNames[ 0 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Other/MeasureUnit/NonMetric" )); -/*N*/ -/*N*/ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > aResult( -/*N*/ GetProperties( aNames )); -/*N*/ -/*N*/ if( aResult[ 0 ].hasValue() ) -/*N*/ { -/*N*/ sal_Int32 nValue(0); -/*N*/ aResult[ 0 ] >>= nValue; -/*N*/ eResult = static_cast< FieldUnit >( nValue ); -/*N*/ } -/*N*/ -/*N*/ return eResult; -/*N*/ } - -void CalcConfigItem::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& /*rPropertyNames*/ ) {} -void CalcConfigItem::Commit() {} - - -} // anonymous namespace - -// ================================================================================ - -namespace sch -{ - -namespace util -{ - -/*N*/ FieldUnit GetMeasureUnit() -/*N*/ { -/*N*/ static CalcConfigItem aCfgItem; -/*N*/ return aCfgItem.GetMeasureUnit(); -/*N*/ } - -} // namespace util -} // namespace sch -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/app/sch_menuids.src b/binfilter/bf_sch/source/ui/app/sch_menuids.src deleted file mode 100644 index ed5744277..000000000 --- a/binfilter/bf_sch/source/ui/app/sch_menuids.src +++ /dev/null @@ -1,180 +0,0 @@ -/************************************************************************* - * - * 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. - * - ************************************************************************/ -#define NO_LOCALIZE_EXPORT - - -#include "app.hrc" - - -#define MN_ROW_POSITION \ -MenuItem\ -{\ - Identifier = SID_ROW_POSITION ; \ - HelpID = SID_ROW_POSITION;\ - Text [ de ] = "A~nordnung" ; \ - Text [ en-US ] = "A~rrangement" ; \ - Text[ pt ] = "~Disposição";\ - Text[ ru ] = "РаÑположение";\ - Text[ el ] = "Τακτοποίηση";\ - Text[ nl ] = "~Rangschikking";\ - Text[ fr ] = "~Disposition";\ - Text[ es ] = "~Disposición";\ - Text[ fi ] = "J~ärjestys";\ - Text[ ca ] = "~Organitza";\ - Text[ it ] = "~Disponi";\ - Text[ da ] = "Placering";\ - Text[ sv ] = "~Placering";\ - Text[ pl ] = "~Rozmieszczenie";\ - Text[ pt-BR ] = "Dis~posição";\ - Text[ th ] = "จั~ดเรียง";\ - Text[ ja ] = "é…ç½®(~R)";\ - Text[ ko ] = "배치(~R)";\ - Text[ zh-CN ] = "排åº(~R)";\ - Text[ zh-TW ] = "排åº(~R)";\ - Text[ tr ] = "Düzenleme";\ - Text[ hi-IN ] = "A~rrangement";\ - Text[ ar ] = "الترتيب";\ - Text[ he ] = "A~nordnung";\ - SubMenu = Menu\ - {\ - ItemList = \ - {\ - MenuItem\ - {\ - Identifier = SID_ROW_MOREFRONT ; \ - HelpID = SID_ROW_MOREFRONT;\ - Text [ de ] = "W~eiter nach vorn" ; \ - Text [ en-US ] = "Bring ~Forward" ; \ - Text [ x-comment ] = " ";\ - Text[ pt ] = "~Mais para a frente";\ - Text[ ru ] = "ПеремеÑтить ~вперед";\ - Text[ el ] = "Îœ~εταφοÏά Îνα επίπεδο εμπÏός";\ - Text[ nl ] = "Naar v~oren";\ - Text[ fr ] = "V~ers l'avant";\ - Text[ es ] = "Traer ~adelante";\ - Text[ fi ] = "Siirrä ~eteenpäin";\ - Text[ ca ] = "Porta al ~davant";\ - Text[ it ] = "Porta più avanti";\ - Text[ da ] = "Længere ~fremad";\ - Text[ sv ] = "Längre fra~m";\ - Text[ pl ] = "P~rzesuÅ„ do przodu";\ - Text[ pt-BR ] = "A~vançar";\ - Text[ th ] = "นำไป~ข้างหน้า";\ - Text[ ja ] = "å‰æ–¹ã«ç§»å‹•(~F)";\ - Text[ ko ] = "앞으로 ì´ë™(~F)";\ - Text[ zh-CN ] = "上移一层(~F)";\ - Text[ zh-TW ] = "上移一層(~F)";\ - Text[ tr ] = "~Bir öne getir";\ - Text[ hi-IN ] = "~आगे पà¥à¤°à¤¸à¥à¤¤à¥à¤¤ करना";\ - Text[ ar ] = "Ø¥Øضار أماماً";\ - Text[ he ] = "W~eiter nach vorn";\ - };\ - MenuItem\ - {\ - Identifier = SID_ROW_MOREBACK ; \ - HelpID = SID_ROW_MOREBACK;\ - Text [ de ] = "Weiter ~nach hinten" ; \ - Text [ en-US ] = "Send Back~ward" ; \ - Text [ x-comment ] = " ";\ - Text[ pt ] = "Mais para o f~undo";\ - Text[ ru ] = "ПеремеÑтить ~назад";\ - Text[ el ] = "~ΜεταφοÏά πίσω";\ - Text[ nl ] = "Naar a~chteren";\ - Text[ fr ] = "~Vers l'arrière";\ - Text[ es ] = "Enviar a~trás";\ - Text[ fi ] = "Siirrä taakse~päin";\ - Text[ ca ] = "Envia cap ~enrere";\ - Text[ it ] = "Porta più i~ndietro";\ - Text[ da ] = "Længere ~tilbage";\ - Text[ sv ] = "Längre ba~k";\ - Text[ pl ] = "Pr~zesuÅ„ do tyÅ‚u";\ - Text[ pt-BR ] = "Rec~uar";\ - Text[ th ] = "ส่งà¸à¸¥à¸±à¸šà¸‚้าง~หลัง";\ - Text[ ja ] = "後方ã«ç§»å‹•(~W)";\ - Text[ ko ] = "뒤로 ì´ë™(~W)";\ - Text[ zh-CN ] = "下移一层(~W)";\ - Text[ zh-TW ] = "下移一層(~W)";\ - Text[ tr ] = "Bir alta gönder";\ - Text[ hi-IN ] = "पिछली ~ओर à¤à¥‡à¤œà¥‹";\ - Text[ ar ] = "إرسال خلÙاً";\ - Text[ he ] = "Weiter ~nach hinten";\ - };\ - };\ - };\ -} - \ - -#define MN_TRANSFORM \ - MenuItem\ - {\ - Identifier = SID_ATTR_TRANSFORM ; \ - HelpID = SID_ATTR_TRANSFORM ; \ - Text [ de ] = "P~osition und Größe..." ; \ - Text [ en-US ] = "Position and Si~ze..." ; \ - Text [ x-comment ] = " ";\ - Text[ pt ] = "P~osição e tamanho...";\ - Text[ ru ] = "~ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð¸ размер...";\ - Text[ el ] = "ΘÎση και μÎγεθ~ος...";\ - Text[ nl ] = "~Positie en grootte...";\ - Text[ fr ] = "P~osition et taille...";\ - Text[ es ] = "P~osición y tamaño...";\ - Text[ fi ] = "Sijainti ja ko~ko";\ - Text[ ca ] = "Position and Si~ze...";\ - Text[ it ] = "P~osizione e dimensione...";\ - Text[ da ] = "Pla~cering og størrelse...";\ - Text[ sv ] = "P~osition och storlek...";\ - Text[ pl ] = "~Pozycja i rozmiar...";\ - Text[ pt-BR ] = "P~osi??o e Tamanho...";\ - Text[ th ] = "ตำà¹à¸«à¸™à¹ˆà¸‡à¹à¸¥à¸°à¸‚~นาด...";\ - Text[ ja ] = "ä½ç½®ã¨ã‚µã‚¤ã‚º(~Z)...";\ - Text[ ko ] = "위치 ë° í¬ê¸°(~Z)...";\ - Text[ zh-CN ] = "ä½ç½®å’Œå¤§å°(~Z)...";\ - Text[ zh-TW ] = "ä½ç½®å’Œå¤§å°(~Z)...";\ - Text[ tr ] = "Konum ve ~Boyut";\ - Text[ hi-IN ] = "Position and Si~ze...";\ - Text[ ar ] = "...الموضع والØجم~";\ - Text[ he ] = "P~osition und Größe...";\ - } - -// EOF - - - - - - - - - - - - - - - - - diff --git a/binfilter/bf_sch/source/ui/app/sch_schdll.cxx b/binfilter/bf_sch/source/ui/app/sch_schdll.cxx deleted file mode 100644 index 3caa2225c..000000000 --- a/binfilter/bf_sch/source/ui/app/sch_schdll.cxx +++ /dev/null @@ -1,303 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma hdrstop -#endif - -#include <bf_svx/svxids.hrc> - -#include "docshell.hxx" -#include "schmod.hxx" -#include "app.hrc" -#include "schresid.hxx" -#include "memchrt.hxx" -#include "res_bmp.hrc" // contains define for RID_MENU, RID_ACCEL - -#include "globopt.hxx" -namespace binfilter { - -/************************************************************************* -|* -|* Initialisierung aus SfxApplicaton::Init() -|* -\************************************************************************/ - -/*N*/ void SchDLL::Init() -/*N*/ { -/*N*/ // called directly after loading the DLL -/*N*/ // do whatever you want, you may use Sd-DLL too -/*N*/ -/*N*/ // the SchModule must be created (may loaded by doc-fac or direct) -/*N*/ SchModuleDummy** ppShlPtr = (SchModuleDummy**) GetAppData(BF_SHL_SCH); -/*N*/ if ( (*ppShlPtr)->IsLoaded() ) return; -/*N*/ -/*N*/ SvFactory* pFact = PTR_CAST(SvFactory,(*ppShlPtr)->pSchChartDocShellFactory); -/*N*/ -/*N*/ delete (*ppShlPtr); -/*N*/ (*ppShlPtr) = new SchModule(pFact); -/*N*/ -/*N*/ SfxModule* pMod = SCH_MOD(); -/*N*/ -/*N*/ pMod->PutItem( SfxUInt16Item( SID_ATTR_METRIC, ::binfilter::sch::util::GetMeasureUnit() )); -/*N*/ } - -/************************************************************************* -|* -|* Deinitialisierung -|* -\************************************************************************/ - -/*N*/ void SchDLL::Exit() -/*N*/ { -/*N*/ // the SchModule must be destroyed -/*N*/ SchModuleDummy** ppShlPtr = (SchModuleDummy**) GetAppData(BF_SHL_SCH); -/*N*/ delete (*ppShlPtr); -/*N*/ (*ppShlPtr) = NULL; -/*N*/ } - - -/*N*/ extern_c void __LOADONCALLAPI SchSetTransparent( SvInPlaceObjectRef, BOOL ) -/*N*/ {DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - -/*N*/ extern_c void __LOADONCALLAPI SchUpdate( SvInPlaceObjectRef aIPObj, -/*N*/ SchMemChart* pData, OutputDevice* /*pOut*/ ) -/*N*/ { -/*N*/ SchChartDocShellRef aSchChartDocShellRef = &aIPObj; -/*N*/ -/*N*/ if( aSchChartDocShellRef.Is() ) -/*N*/ { -/*N*/ #ifdef DBG_UTIL -/*N*/ if( !pData ) -/*N*/ OSL_TRACE( "SchUpdate was called without MemChart" ); -/*N*/ #endif -/*N*/ ChartModel& rDoc = aSchChartDocShellRef->GetDoc(); -/*N*/ -/*N*/ if( pData ) -/*N*/ { -/*N*/ rDoc.SetChartDataBuffered( *pData, FALSE ); // don't update titles. This can't be done via SchUpdate -/*N*/ rDoc.CheckForNewAxisNumFormat(); -/*N*/ rDoc.SetChanged(); // #72576# -/*N*/ -/*N*/ ::com::sun::star::chart::ChartDataChangeEvent aEvent; -/*N*/ aEvent.Type = ::com::sun::star::chart::ChartDataChangeType_ALL; -/*N*/ aEvent.StartColumn = 0; -/*N*/ aEvent.EndColumn = 0; -/*N*/ aEvent.StartRow = 0; -/*N*/ aEvent.EndRow = 0; -/*N*/ -/*N*/ aSchChartDocShellRef->DataModified( aEvent ); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ rDoc.BuildChart( FALSE ); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ aIPObj->SendViewChanged(); -/*N*/ } - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - -/*N*/ extern_c void __LOADONCALLAPI SchUpdateAttr( SvInPlaceObjectRef aIPObj, -/*N*/ SchMemChart* pData, -/*N*/ const SfxItemSet& rAttr, -/*N*/ OutputDevice* pOut ) -/*N*/ { -/*N*/ DBG_ASSERT(pData, "Kein Chart-Datenobjekt angegeben!"); -/*N*/ if(!pData)return; -/*N*/ -/*N*/ SchChartDocShellRef aSchChartDocShellRef = &aIPObj; -/*N*/ -/*N*/ if (aSchChartDocShellRef.Is()) -/*N*/ { -/*N*/ -/*N*/ ChartModel& rDoc = aSchChartDocShellRef->GetDoc(); -/*N*/ -/*N*/ rDoc.SetChartData(*new SchMemChart(*pData)); -/*N*/ rDoc.PutAttr(rAttr); -/*N*/ -/*N*/ if( pOut ) -/*N*/ {DBG_BF_ASSERT(0, "STRIP");} -/*N*/ else -/*N*/ rDoc.BuildChart(TRUE); -/*N*/ } -/*N*/ -/*N*/ aIPObj->SendViewChanged(); -/*N*/ } - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - -/*N*/ extern_c SchMemChart* __LOADONCALLAPI SchGetChartData (SvInPlaceObjectRef aIPObj) -/*N*/ { -/*N*/ SchChartDocShellRef aSchChartDocShellRef = &aIPObj; -/*N*/ -/*N*/ if (aSchChartDocShellRef.Is()) -/*N*/ { -/*N*/ ChartModel& rDoc = aSchChartDocShellRef->GetDoc(); -/*N*/ SchMemChart* pMemChart = rDoc.GetChartData (); -/*N*/ -/*N*/ if (pMemChart) -/*N*/ { -/*N*/ pMemChart->SetMainTitle(rDoc.MainTitle()); -/*N*/ pMemChart->SetSubTitle(rDoc.SubTitle()); -/*N*/ pMemChart->SetXAxisTitle(rDoc.XAxisTitle()); -/*N*/ pMemChart->SetYAxisTitle(rDoc.YAxisTitle()); -/*N*/ pMemChart->SetZAxisTitle(rDoc.ZAxisTitle()); -/*N*/ } -/*N*/ -/*N*/ return pMemChart; -/*N*/ } -/*N*/ else return 0; -/*N*/ } - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - -/*N*/ extern_c SchMemChart* __LOADONCALLAPI SchNewMemChartNone () -/*N*/ { -/*N*/ DBG_BF_ASSERT(0, "STRIP");return NULL; -/*N*/ } - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - -/*N*/ extern_c SchMemChart* __LOADONCALLAPI SchNewMemChartXY (short nCols, short nRows) -/*N*/ { -/*N*/ return new SchMemChart (nCols, nRows); -/*N*/ } - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - -/*N*/ extern_c SchMemChart* __LOADONCALLAPI SchNewMemChartCopy (const SchMemChart &) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); return NULL; -/*N*/ } - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - -/*N*/ extern_c ChartModel* __LOADONCALLAPI SchGetModel (SvInPlaceObjectRef) -/*N*/ {DBG_BF_ASSERT(0, "STRIP"); return 0; -/*N*/ } - -/*N*/ extern_c void __LOADONCALLAPI SchGetDefaultForColumnText( -/*N*/ const SchMemChart& rMemChart, sal_Int32 nCol, String& aResult ) -/*N*/ { -/*N*/ aResult = rMemChart.GetDefaultColumnText( nCol ); -/*N*/ } - -/*N*/ extern_c void __LOADONCALLAPI SchGetDefaultForRowText( -/*N*/ const SchMemChart& rMemChart, sal_Int32 nRow, String& aResult ) -/*N*/ { -/*N*/ aResult = rMemChart.GetDefaultRowText( nRow ); -/*N*/ } - -/*N*/ extern_c void __LOADONCALLAPI SchConvertChartRangeForWriter( -/*N*/ SchMemChart& rMemChart, BOOL bOldToNew ) -/*N*/ { -/*N*/ rMemChart.ConvertChartRangeForWriter( bOldToNew ); -/*N*/ } - -/*N*/ extern_c void __LOADONCALLAPI SchConvertChartRangeForCalc( SchMemChart&, BOOL ) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } - -/*N*/ extern_c void __LOADONCALLAPI SchMemChartResetTranslation( SchMemChart&, long *,long ) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } - -/*N*/ extern_c void __LOADONCALLAPI SchMemChartUpdateTranslation( SchMemChart&, long *, long ) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } - -/*N*/ extern_c void __LOADONCALLAPI SchMemChartInsertCols( SchMemChart& rMemChart, -/*N*/ short nAtCol, short nCount) -/*N*/ { -/*N*/ rMemChart.InsertCols( nAtCol, nCount ); -/*N*/ } - -/*N*/ extern_c void __LOADONCALLAPI SchMemChartRemoveCols( SchMemChart&, short, short) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } - -/*N*/ extern_c void __LOADONCALLAPI SchMemChartInsertRows( SchMemChart& rMemChart, short nAtRow, short nCount) -/*N*/ { -/*N*/ rMemChart.InsertRows( nAtRow, nCount ); -/*N*/ } - -/*N*/ extern_c void __LOADONCALLAPI SchMemChartRemoveRows( SchMemChart&, short, short) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } - -/*N*/ extern_c void __LOADONCALLAPI SchMemChartSwapCols( SchMemChart&, int, int) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } - -/*N*/ extern_c void __LOADONCALLAPI SchMemChartSwapRows( SchMemChart&, int, int ) -/*N*/ { -/*?*/ DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/app/sch_schlib.cxx b/binfilter/bf_sch/source/ui/app/sch_schlib.cxx deleted file mode 100644 index 97c04de77..000000000 --- a/binfilter/bf_sch/source/ui/app/sch_schlib.cxx +++ /dev/null @@ -1,339 +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. - * - ************************************************************************/ - -#ifdef _MSC_VER -#pragma optimize("",off) -#endif - - -#include <bf_sfx2/docfilt.hxx> - -#include <bf_sfx2/app.hxx> - -#include <comphelper/classids.hxx> - -#include <sot/formats.hxx> -#include "schmod.hxx" -#include "docshell.hxx" -#include "schlib.hxx" - -class ValueSet; - -#include "res_bmp.hrc" -namespace binfilter { - -#define SCH_FORMAT_STR_50_FORMAT String( RTL_CONSTASCII_USTRINGPARAM( "StarChart 5.0" )) - -/*?*/ TYPEINIT1( SchModuleDummy, SfxModule ); - -extern "C" { static void SAL_CALL thisModule() {} } - -/*?*/ SFX_IMPL_OBJECTFACTORY_LIB( SchChartDocShell, SFXOBJECTSHELL_STD_NORMAL, schart, - SvGlobalName(BF_SO3_SCH_CLASSID), Sch, String( RTL_CONSTASCII_USTRINGPARAM( DLL_NAME )) ) -// from macro: void SchChartDocShell::InitFactory() -/*?*/ { -/*?*/ SfxObjectFactory& rFactory = (SfxObjectFactory&)Factory(); -/*?*/ rFactory.SetDocumentServiceName(String::CreateFromAscii("com.sun.star.chart.ChartDocument")); -/*?*/ } - -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ - -/*?*/ SchDLL::SchDLL() -/*?*/ { -/*?*/ } - -/************************************************************************* -|* -|* Destruktor -|* -\************************************************************************/ - -/*?*/ SchDLL::~SchDLL() -/*?*/ { -/*?*/ } - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - - -/*?*/ void SchDLL::LibInit() -/*?*/ { -/*?*/ // Das Anlegen des ResMgr ist nur fuer die obige Filter-Registierung -/*?*/ // notwendig. Sobald dort kein SdResId mehr notwendig ist, kann das -/*?*/ // Anlegen entfallen -/*?*/ SchChartDocShell::RegisterFactory(SDT_SCH_DOCFACTPRIO); -/*?*/ -/*?*/ SCH_MOD() = (SchModule *) new SchModuleDummy(NULL, TRUE, &SchChartDocShell::Factory() ); -/*?*/ } - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - - -/*?*/ void SchDLL::LibExit() -/*?*/ { -/*?*/ FreeLibSch(); -/*?*/ -/*?*/ // destroy the dummy-module with Object-Factory-Pointer -/*?*/ DELETEZ( SCH_MOD() ); -/*?*/ } - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - - -/*N*/ void SchDLL::Update( SvInPlaceObjectRef aIPObj, SchMemChart* pData, OutputDevice* pOut ) -/*N*/ { -/*N*/ void (__LOADONCALLAPI*fp)(SvInPlaceObjectRef, SchMemChart*, OutputDevice*); -/*N*/ -/*N*/ fp = (void (__LOADONCALLAPI*)(SvInPlaceObjectRef, SchMemChart*, OutputDevice*))GetFuncSch("SchUpdate"); -/*N*/ -/*N*/ if (fp) -/*N*/ { -/*N*/ fp(aIPObj, pData, pOut); -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - - -/*N*/ SchMemChart* SchDLL::GetChartData (SvInPlaceObjectRef aIPObj) -/*N*/ { -/*N*/ SchMemChart* (__LOADONCALLAPI*fp)(SvInPlaceObjectRef); -/*N*/ -/*N*/ fp = (SchMemChart* (__LOADONCALLAPI*)(SvInPlaceObjectRef aIPObj))GetFuncSch("SchGetChartData"); -/*N*/ -/*N*/ return fp -/*N*/ ? fp (aIPObj) -/*N*/ : 0; -/*N*/ } - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - -/*N*/ SchMemChart* SchDLL::NewMemChart (short nCols, short nRows) -/*N*/ { -/*N*/ SchMemChart* (__LOADONCALLAPI*fp)(short, short); -/*N*/ -/*N*/ fp = (SchMemChart* (__LOADONCALLAPI*)(short, short))GetFuncSch("SchNewMemChartXY"); -/*N*/ -/*N*/ if (fp) -/*N*/ { -/*N*/ return fp(nCols, nRows); -/*N*/ } -/*N*/ else return 0; -/*N*/ } - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - -/*N*/ void SchDLL::GetDefaultForColumnText( const SchMemChart& rMemChart, sal_Int32 nCol, String& aResult ) -/*N*/ { -/*N*/ void (__LOADONCALLAPI*fp)( const SchMemChart&, sal_Int32, String& ); -/*N*/ -/*N*/ fp = (void (__LOADONCALLAPI*)( const SchMemChart&, sal_Int32, String& ))GetFuncSch("SchGetDefaultForColumnText"); -/*N*/ -/*N*/ if( fp ) -/*N*/ { -/*N*/ fp( rMemChart, nCol, aResult ); -/*N*/ } -/*N*/ } - -/*N*/ void SchDLL::GetDefaultForRowText( const SchMemChart& rMemChart, sal_Int32 nRow, String& aResult ) -/*N*/ { -/*N*/ void (__LOADONCALLAPI*fp)( const SchMemChart&, sal_Int32, String& ); -/*N*/ -/*N*/ fp = (void (__LOADONCALLAPI*)( const SchMemChart&, sal_Int32, String& ))GetFuncSch("SchGetDefaultForRowText"); -/*N*/ -/*N*/ if( fp ) -/*N*/ { -/*N*/ fp( rMemChart, nRow, aResult ); -/*N*/ } -/*N*/ } - -/*N*/ void SchDLL::ConvertChartRangeForWriter( SchMemChart& rMemChart, -/*N*/ BOOL bOldToNew ) -/*N*/ { -/*N*/ void (__LOADONCALLAPI* fp )( SchMemChart&, BOOL ) -/*N*/ = (void (__LOADONCALLAPI*)( SchMemChart&, BOOL )) -/*N*/ GetFuncSch("SchConvertChartRangeForWriter"); -/*N*/ if( fp ) -/*N*/ fp( rMemChart, bOldToNew ); -/*N*/ } - -/*N*/ void SchDLL::MemChartInsertCols( SchMemChart& rMemChart, -/*N*/ short nAtCol, short nCount) -/*N*/ { -/*N*/ void (__LOADONCALLAPI* fp )( SchMemChart&, short, short ) -/*N*/ = (void (__LOADONCALLAPI*)( SchMemChart&, short, short )) -/*N*/ GetFuncSch("SchMemChartInsertCols"); -/*N*/ if( fp ) -/*N*/ fp( rMemChart, nAtCol, nCount ); -/*N*/ } -/*?*/ void SchDLL::MemChartRemoveCols( SchMemChart& rMemChart, -/*?*/ short nAtCol, short nCount) -/*?*/ { -/*?*/ void (__LOADONCALLAPI* fp )( SchMemChart&, short, short ) -/*?*/ = (void (__LOADONCALLAPI*)( SchMemChart&, short, short )) -/*?*/ GetFuncSch("SchMemChartRemoveCols"); -/*?*/ if( fp ) -/*?*/ fp( rMemChart, nAtCol, nCount ); -/*?*/ } - -/*N*/ void SchDLL::MemChartInsertRows( SchMemChart& rMemChart, -/*N*/ short nAtRow, short nCount ) -/*N*/ { -/*N*/ void (__LOADONCALLAPI* fp )( SchMemChart&, short, short ) -/*N*/ = (void (__LOADONCALLAPI*)( SchMemChart&, short, short )) -/*N*/ GetFuncSch("SchMemChartInsertRows"); -/*N*/ if( fp ) -/*N*/ fp( rMemChart, nAtRow, nCount ); -/*N*/ } -/*?*/ void SchDLL::MemChartRemoveRows( SchMemChart& rMemChart, -/*?*/ short nAtRow, short nCount ) -/*?*/ { -/*?*/ void (__LOADONCALLAPI* fp )( SchMemChart&, short, short ) -/*?*/ = (void (__LOADONCALLAPI*)( SchMemChart&, short, short )) -/*?*/ GetFuncSch("SchMemChartRemoveRows"); -/*?*/ if( fp ) -/*?*/ fp( rMemChart, nAtRow, nCount ); -/*?*/ } - -/************************************************************************* -|* -|* Lade Module von aussen -|* -\************************************************************************/ - -/*?*/ SfxModule *SchModuleDummy::Load() -/*?*/ { -/*?*/ return (LoadLibSch() ? SCH_MOD() : NULL); -/*?*/ } - -/************************************************************************* -|* -|* Bestimme die GUID abh. von der Version -|* -\************************************************************************/ - -/*?*/ const SvGlobalName SchModuleDummy::GetID (USHORT nFileFormat) -/*?*/ { -/*?*/ SvGlobalName aName; -/*?*/ -/*?*/ switch (nFileFormat) -/*?*/ { -/*?*/ case SOFFICE_FILEFORMAT_60: -/*?*/ { -/*?*/ aName = SvGlobalName(BF_SO3_SCH_CLASSID_60); -/*?*/ } -/*?*/ break; -/*?*/ -/*?*/ case SOFFICE_FILEFORMAT_50: -/*?*/ { -/*?*/ aName = SvGlobalName(BF_SO3_SCH_CLASSID_50); -/*?*/ } -/*?*/ break; -/*?*/ -/*?*/ case SOFFICE_FILEFORMAT_40: -/*?*/ { -/*?*/ aName = SvGlobalName(BF_SO3_SCH_CLASSID_40); -/*?*/ } -/*?*/ break; -/*?*/ -/*?*/ case SOFFICE_FILEFORMAT_31: -/*?*/ { -/*?*/ aName = SvGlobalName(BF_SO3_SCH_CLASSID_30); -/*?*/ } -/*?*/ break; -/*?*/ -/*?*/ default: -/*?*/ { -/*?*/ OSL_FAIL( "Unknown file format" ); -/*?*/ } -/*?*/ break; -/*?*/ } -/*?*/ -/*?*/ return aName; -/*?*/ } - -/************************************************************************* -|* -|* Bestimme die Version aus der GUID -|* -\************************************************************************/ - -/*?*/ USHORT SchModuleDummy::HasID (const SvGlobalName &rName) -/*?*/ { -/*?*/ USHORT nRet = 0; -/*?*/ -/*?*/ if (GetID(SOFFICE_FILEFORMAT_31) == rName) -/*?*/ { -/*?*/ nRet = SOFFICE_FILEFORMAT_31; -/*?*/ } -/*?*/ else if (GetID(SOFFICE_FILEFORMAT_40) == rName) -/*?*/ { -/*?*/ nRet = SOFFICE_FILEFORMAT_40; -/*?*/ } -/*?*/ else if (GetID(SOFFICE_FILEFORMAT_50) == rName) -/*?*/ { -/*?*/ nRet = SOFFICE_FILEFORMAT_50; -/*?*/ } -/*?*/ else if (GetID(SOFFICE_FILEFORMAT_60) == rName) -/*?*/ { -/*?*/ nRet = SOFFICE_FILEFORMAT_60; -/*?*/ } -/*?*/ -/*?*/ return(nRet); -/*?*/ } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/app/sch_schmod.cxx b/binfilter/bf_sch/source/ui/app/sch_schmod.cxx deleted file mode 100644 index d1572ab9e..000000000 --- a/binfilter/bf_sch/source/ui/app/sch_schmod.cxx +++ /dev/null @@ -1,142 +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. - * - ************************************************************************/ - -#define ITEMID_SEARCH SID_SEARCH_ITEM - -#ifdef _MSC_VER -#pragma hdrstop -#endif - - -#include <bf_svx/svxids.hrc> -#include <bf_sfx2/app.hxx> -#include <vcl/status.hxx> -#include <bf_svx/svdobj.hxx> - -#define _SCH_DLL // fuer SD_MOD() -#include "schmod.hxx" -#include "schresid.hxx" - -#include "app.hrc" -#include "glob.hrc" -#include "strings.hrc" -#include "res_bmp.hrc" - -namespace binfilter { - -/*N*/ TYPEINIT1( SchModuleDummy, SfxModule ); -/*N*/ TYPEINIT1( SchModule, SchModuleDummy ); - -/************************************************************************* -|* -|* Ctor -|* -\************************************************************************/ - -/*N*/ SchModule::SchModule(SvFactory* pObjFact) : -/*N*/ SchModuleDummy(SFX_APP()->CreateResManager("bf_sch"), FALSE, pObjFact), -/*N*/ pXOutDevPool( NULL ), -/*N*/ pDragData( NULL ), -/*N*/ pClipboardData( NULL ), -/*N*/ mpTransferDragDrop( NULL ), -/*N*/ mpTransferClipboard( NULL ), -/*N*/ mpTransferSelectionClipbd( NULL ), -/*N*/ pChartOptions( NULL ) -/*N*/ { -/*N*/ pSchObjFactory = new SchObjFactory(); -/*N*/ -/*N*/ if (!pSchObjFactory->GetInserted()) -/*N*/ { -/*N*/ SdrObjFactory::InsertMakeObjectHdl(LINK(pSchObjFactory, SchObjFactory, MakeObject)); -/*N*/ SdrObjFactory::InsertMakeUserDataHdl(LINK(pSchObjFactory, SchObjFactory, MakeUserData)); -/*N*/ -/*N*/ pSchObjFactory->SetInserted(TRUE); -/*N*/ } -/*N*/ -/*N*/ // #62493# this factory exists already -/*N*/ //pE3dFactory = new E3dObjFactory(); -/*N*/ //SdrObjFactory::InsertMakeObjectHdl(LINK(pE3dFactory, E3dObjFactory, MakeObject)); -/*N*/ -/*N*/ SetName( String( RTL_CONSTASCII_USTRINGPARAM( "StarChart" )) ); -/*N*/ -/*N*/ // establish listener, so that the module is informed -/*N*/ // right before the application is going to be shut down -/*N*/ StartListening( *SFX_APP() ); -/*N*/ } - -/************************************************************************* -|* -|* Dtor -|* -\************************************************************************/ - -/*N*/ SchModule::~SchModule() -/*N*/ { -/*N*/ if (pSchObjFactory) -/*N*/ { -/*N*/ if (pSchObjFactory->GetInserted()) -/*N*/ { -/*N*/ SdrObjFactory::RemoveMakeObjectHdl(LINK(pSchObjFactory, SchObjFactory, MakeObject)); -/*N*/ SdrObjFactory::RemoveMakeUserDataHdl(LINK(pSchObjFactory, SchObjFactory, MakeUserData)); -/*N*/ } -/*N*/ -/*N*/ delete pSchObjFactory; -/*N*/ } -/*N*/ } - - -/*?*/ SfxModule *SchModuleDummy::Load() -/*?*/ { -/*?*/ return NULL; -/*?*/ } - -/*N*/ SchOptions* SchModule::GetSchOptions() -/*N*/ { -/*N*/ if( ! pChartOptions ) -/*N*/ pChartOptions = new SchOptions(); -/*N*/ -/*N*/ return pChartOptions; -/*N*/ } - -/************************************************************************* -|* -|* get notifications -|* -\************************************************************************/ - -/*N*/ void SchModule::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint ) -/*N*/ { -/*N*/ if( rHint.ISA( SfxSimpleHint ) && -/*N*/ ( (SfxSimpleHint&) rHint ).GetId() == SFX_HINT_DEINITIALIZING ) -/*N*/ { -/*N*/ delete pChartOptions, pChartOptions = NULL; -/*N*/ } -/*N*/ } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/app/sch_schopt.cxx b/binfilter/bf_sch/source/ui/app/sch_schopt.cxx deleted file mode 100644 index a0cf0952a..000000000 --- a/binfilter/bf_sch/source/ui/app/sch_schopt.cxx +++ /dev/null @@ -1,177 +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. - * - ************************************************************************/ - -#include <com/sun/star/uno/Sequence.hxx> -// header for SvStream -// header for SAL_STATIC_CAST -#include <sal/types.h> - -#include "schopt.hxx" - -#include "schresid.hxx" -#include "strings.hrc" -namespace binfilter { - -using namespace ::com::sun::star; - -#define SCH_OPTIONS_VERSION_001 USHORT( 1 ) - - -// -------------------- -// class SchColorTable -// -------------------- -/*N*/ SchColorTable::SchColorTable() -/*N*/ { -/*N*/ } - - -/*N*/ BOOL SchColorTable::Insert( ULONG nKey, XColorEntry* pEntry ) -/*N*/ { -/*N*/ return Table::Insert( nKey, (void*)pEntry ); -/*N*/ } - - - -/*N*/ void SchColorTable::ClearAndDestroy() -/*N*/ { -/*N*/ for( ULONG i = Count(); i; ) -/*N*/ delete Get( --i ); -/*N*/ Clear(); -/*N*/ } - -/*N*/ XColorEntry* SchColorTable::Get( ULONG nKey ) const -/*N*/ { -/*N*/ return SAL_STATIC_CAST( XColorEntry*, Table::Get( nKey ) ); -/*N*/ } - -/*N*/ Color SchColorTable::GetColor( ULONG nKey ) const -/*N*/ { -/*N*/ XColorEntry* pEntry = Get( nKey ); -/*N*/ if( pEntry ) -/*N*/ return pEntry->GetColor(); -/*N*/ -/*N*/ return COL_BLACK; -/*N*/ } - -/*N*/ ColorData SchColorTable::GetColorData( ULONG nKey ) const -/*N*/ { -/*N*/ return GetColor( nKey ).GetRGBColor(); -/*N*/ } - - -// ==================== -// class SchOptions -// ==================== - -/*N*/ SchOptions::SchOptions() : -/*N*/ ::utl::ConfigItem( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Office.Chart" ))), -/*N*/ mbIsInitialized( FALSE ) -/*N*/ { -/*N*/ maPropertyNames.realloc( 1 ); -/*N*/ maPropertyNames[ 0 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultColor/Series" )); -/*N*/ } - -/*N*/ SchOptions::~SchOptions() -/*N*/ { -/*N*/ maDefColors.ClearAndDestroy(); -/*N*/ } - -/*N*/ const SchColorTable& SchOptions::GetDefaultColors() -/*N*/ { -/*N*/ if( ! mbIsInitialized ) -/*N*/ { -/*N*/ mbIsInitialized = RetrieveOptions(); -/*N*/ } -/*N*/ -/*N*/ return maDefColors; -/*N*/ } - - -/*N*/ BOOL SchOptions::RetrieveOptions() -/*N*/ { -/*N*/ // get sequence containing all properties -/*N*/ -/*N*/ uno::Sequence< ::rtl::OUString > aNames = GetPropertyNames(); -/*N*/ uno::Sequence< uno::Any > aProperties( aNames.getLength()); -/*N*/ aProperties = GetProperties( aNames ); -/*N*/ -/*N*/ if( aProperties.getLength() == aNames.getLength()) -/*N*/ { -/*N*/ // 1. default colors for series -/*N*/ maDefColors.ClearAndDestroy(); -/*N*/ uno::Sequence< sal_Int64 > aColorSeq; -/*N*/ aProperties[ 0 ] >>= aColorSeq; -/*N*/ -/*N*/ sal_Int32 nCount = aColorSeq.getLength(); -/*N*/ Color aCol; -/*N*/ -/*N*/ // create strings for entry names -/*N*/ String aResName( SchResId( STR_DIAGRAM_ROW )); -/*N*/ String aPrefix, aPostfix, aName; -/*N*/ xub_StrLen nPos = aResName.SearchAscii( "$(ROW)" ); -/*N*/ if( nPos != STRING_NOTFOUND ) -/*N*/ { -/*N*/ aPrefix = String( aResName, 0, nPos ); -/*N*/ aPostfix = String( aResName, nPos + sizeof( "$(ROW)" ) - 1, STRING_LEN ); -/*N*/ } -/*N*/ else -/*?*/ aPrefix = aResName; -/*N*/ -/*N*/ // set color values -/*N*/ for( sal_Int32 i=0; i < nCount; i++ ) -/*N*/ { -/*N*/ aCol.SetColor( SAL_STATIC_CAST( ColorData, aColorSeq[ i ] )); -/*N*/ -/*N*/ aName = aPrefix; -/*N*/ aName.Append( String::CreateFromInt32( i + 1 )); -/*N*/ aName.Append( aPostfix ); -/*N*/ -/*N*/ maDefColors.Insert( i, new XColorEntry( aCol, aName ) ); -/*N*/ } -/*N*/ return TRUE; -/*N*/ } -/*N*/ return FALSE; -/*N*/ } - -void SchOptions::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& /*rPropertyNames*/ ) {} -void SchOptions::Commit() {} - - -// -------------------- -// class SchColorTableItem -// -------------------- - - - - - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/app/sch_schresid.cxx b/binfilter/bf_sch/source/ui/app/sch_schresid.cxx deleted file mode 100644 index 5a5e038e7..000000000 --- a/binfilter/bf_sch/source/ui/app/sch_schresid.cxx +++ /dev/null @@ -1,55 +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. - * - ************************************************************************/ - - -#ifdef _MSC_VER -#pragma hdrstop -#endif - -#include "schmod.hxx" -#include "schresid.hxx" -namespace binfilter { - - -/************************************************************************* -|* -|* Funktionsbeschreibung -|* -\************************************************************************/ - -/*N*/ SchResId::SchResId(USHORT nId) : -/*N*/ ResId( nId, *SCH_MOD1()->GetResMgr() ) -/*N*/ { -/*N*/ } - - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/app/sch_strings.src b/binfilter/bf_sch/source/ui/app/sch_strings.src deleted file mode 100644 index 67946f8ee..000000000 --- a/binfilter/bf_sch/source/ui/app/sch_strings.src +++ /dev/null @@ -1,1058 +0,0 @@ -/************************************************************************* - * - * 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. - * - ************************************************************************/ -#define NO_LOCALIZE_EXPORT - -#include "strings.hrc" -String RID_BUILDVERSION -{ - Text [ de ] = UPDVER ; - Text [ en-US ] = UPDVER ; -}; -String STR_AREA -{ - Text [ de ] = "Fläche" ; - Text [ en-US ] = "Area" ; - Text[ pt ] = "Preenchimento"; - Text[ ru ] = "ОблаÑÑ‚ÑŒ"; - Text[ el ] = "Επιφάνεια"; - Text[ nl ] = "Vlak"; - Text[ fr ] = "Remplissage"; - Text[ es ] = "Ãrea"; - Text[ fi ] = "Alue"; - Text[ ca ] = "Àrea"; - Text[ it ] = "Area"; - Text[ da ] = "OmrÃ¥de"; - Text[ sv ] = "Yta"; - Text[ pl ] = "Obszar"; - Text[ pt-BR ] = "Ãrea"; - Text[ th ] = "พื้นที่"; - Text[ ja ] = "エリア"; - Text[ ko ] = "ì˜ì—"; - Text[ zh-CN ] = "å……å¡«å¹³é¢"; - Text[ zh-TW ] = "å……å¡«å¹³é¢"; - Text[ tr ] = "Yüzey"; - Text[ hi-IN ] = "विसà¥à¤¤à¥€à¤°à¥à¤£"; - Text[ ar ] = "تعبئة الكائن"; - Text[ he ] = "Fläche"; -}; -String STR_LINE -{ - Text [ de ] = "Linie" ; - Text [ en-US ] = "Line" ; - Text[ pt ] = "Linha"; - Text[ ru ] = "ЛиниÑ"; - Text[ el ] = "ΓÏαμμή"; - Text[ nl ] = "Lijn"; - Text[ fr ] = "Ligne"; - Text[ es ] = "LÃnea"; - Text[ fi ] = "Viiva"; - Text[ ca ] = "LÃnia"; - Text[ it ] = "Linea"; - Text[ da ] = "Linje"; - Text[ sv ] = "Linje"; - Text[ pl ] = "Linia"; - Text[ pt-BR ] = "Linha"; - Text[ th ] = "บรรทัด"; - Text[ ja ] = "折れ線"; - Text[ ko ] = "ì„ "; - Text[ zh-CN ] = "线æ¡"; - Text[ zh-TW ] = "ç·šæ¢"; - Text[ tr ] = "Çizgi"; - Text[ hi-IN ] = "Line"; - Text[ ar ] = "خط"; - Text[ he ] = "Linie"; -}; -String STR_LINES -{ - Text [ de ] = "Linien" ; - Text [ en-US ] = "Lines" ; - Text[ pt ] = "Linhas"; - Text[ ru ] = "Линии"; - Text[ el ] = "ΓÏαμμÎÏ‚"; - Text[ nl ] = "Lijnen"; - Text[ fr ] = "Lignes"; - Text[ es ] = "LÃneas"; - Text[ fi ] = "Rivit"; - Text[ ca ] = "LÃnies"; - Text[ it ] = "Linee"; - Text[ da ] = "Linjer"; - Text[ sv ] = "Linjer"; - Text[ pl ] = "Linie"; - Text[ pt-BR ] = "Linhas"; - Text[ th ] = "บรรทัด"; - Text[ ja ] = "折れ線"; - Text[ ko ] = "ì„ "; - Text[ zh-CN ] = "线æ¡"; - Text[ zh-TW ] = "ç·šæ¢"; - Text[ tr ] = "Çizgi"; - Text[ hi-IN ] = "Lines"; - Text[ ar ] = "خطوط"; - Text[ he ] = "Linien"; -}; -String STR_COLUMNS -{ - Text [ de ] = "Säulen" ; - Text [ en-US ] = "Columns" ; - Text[ pt ] = "Barras"; - Text[ ru ] = "ГиÑтограмма"; - Text[ el ] = "Στήλες"; - Text[ nl ] = "kolommen"; - Text[ fr ] = "Colonnes"; - Text[ es ] = "Columnas"; - Text[ fi ] = "Pylväs"; - Text[ ca ] = "Columnes"; - Text[ it ] = "Colonne"; - Text[ da ] = "Søjler"; - Text[ sv ] = "Staplar"; - Text[ pl ] = "Kolumny"; - Text[ pt-BR ] = "Colunas"; - Text[ th ] = "คà¸à¸¥à¸±à¸¡à¸™à¹Œà¹Œ"; - Text[ ja ] = "縦棒"; - Text[ ko ] = "단"; - Text[ zh-CN ] = "柱"; - Text[ zh-TW ] = "柱"; - Text[ tr ] = "Sütun"; - Text[ hi-IN ] = "सà¥à¤¤à¤‚à¤"; - Text[ ar ] = "أعمدة"; - Text[ he ] = "‮טורי×‬"; -}; -String STR_BARS -{ - Text [ de ] = "Balken" ; - Text [ en-US ] = "Bars" ; - Text [ x-comment ] = "èëè: Ïîëîñû - -"; - Text[ pt ] = "Barras"; - Text[ ru ] = "ЛинейчатаÑ"; - Text[ el ] = "Ράβδοι"; - Text[ nl ] = "balken"; - Text[ fr ] = "Barres"; - Text[ es ] = "Barras"; - Text[ fi ] = "Palkit"; - Text[ ca ] = "Barres"; - Text[ it ] = "Barre"; - Text[ da ] = "Liggende søjler"; - Text[ sv ] = "Liggande staplar"; - Text[ pl ] = "SÅ‚upki"; - Text[ pt-BR ] = "Barras"; - Text[ th ] = "à¹à¸–บ"; - Text[ ja ] = "横棒"; - Text[ ko ] = "ë°”"; - Text[ zh-CN ] = "æ¡"; - Text[ zh-TW ] = "æ¢"; - Text[ tr ] = "Çubuk"; - Text[ hi-IN ] = "पटà¥à¤Ÿà¥€"; - Text[ ar ] = "أعمدة"; - Text[ he ] = "Balken"; -}; -String STR_AREAS -{ - Text [ de ] = "Flächen" ; - Text [ en-US ] = "Areas" ; - Text[ pt ] = "Ãreas"; - Text[ ru ] = "ОблаÑти"; - Text[ el ] = "Επιφάνειες"; - Text[ nl ] = "vlakken"; - Text[ fr ] = "Zones"; - Text[ es ] = "Ãreas"; - Text[ fi ] = "Alueet"; - Text[ ca ] = "Àrees"; - Text[ it ] = "Aree"; - Text[ da ] = "OmrÃ¥der"; - Text[ sv ] = "Ytor"; - Text[ pl ] = "Obszary"; - Text[ pt-BR ] = "Ãreas"; - Text[ th ] = "พื้นที่"; - Text[ ja ] = "エリア"; - Text[ ko ] = "ë©´"; - Text[ zh-CN ] = "å¹³é¢"; - Text[ zh-TW ] = "å¹³é¢"; - Text[ tr ] = "Yüzey"; - Text[ hi-IN ] = "विसà¥à¤¤à¥€à¤°à¥à¤£"; - Text[ ar ] = "مناطق"; - Text[ he ] = "Flächen"; -}; -String STR_CIRCLES -{ - Text [ de ] = "Kreise" ; - Text [ en-US ] = "Pies" ; - Text[ pt ] = "Sectores"; - Text[ ru ] = "КруговаÑ"; - Text[ el ] = "ΚÏκλοι"; - Text[ nl ] = "cirkels"; - Text[ fr ] = "Secteurs"; - Text[ es ] = "CÃrculos"; - Text[ fi ] = "Ympyräkaaviot"; - Text[ ca ] = "Diagrames de sectors"; - Text[ it ] = "Torta"; - Text[ da ] = "Cirkler"; - Text[ sv ] = "Cirklar"; - Text[ pl ] = "KoÅ‚a"; - Text[ pt-BR ] = "Pizzas"; - Text[ th ] = "พาย"; - Text[ ja ] = "円"; - Text[ ko ] = "ì›í˜•"; - Text[ zh-CN ] = "圆"; - Text[ zh-TW ] = "圓"; - Text[ tr ] = "Daire"; - Text[ hi-IN ] = "वृतखणà¥à¤¡"; - Text[ ar ] = "دوائر"; - Text[ he ] = "Kreise"; -}; -String STR_XY -{ - Text [ de ] = "XY-Diagramm" ; - Text [ en-US ] = "XY Chart" ; - Text[ pt ] = "Gráfico XY"; - Text[ ru ] = "Диаграмма XY"; - Text[ el ] = "ΔιάγÏαμμα XY"; - Text[ nl ] = "XY-diagram"; - Text[ fr ] = "Diagramme XY"; - Text[ es ] = "Diagrama XY"; - Text[ fi ] = "XY-kaavio"; - Text[ ca ] = "Diagrama XY"; - Text[ it ] = "Diagramma XY"; - Text[ da ] = "XY-diagram"; - Text[ sv ] = "XY-diagram"; - Text[ pl ] = "Wykres XY"; - Text[ pt-BR ] = "Gráfico XY"; - Text[ th ] = "à¹à¸œà¸™à¸ ูมิXY "; - Text[ ja ] = "散布図"; - Text[ ko ] = "XY 차트"; - Text[ zh-CN ] = "XY 图表"; - Text[ zh-TW ] = "XY-圖表"; - Text[ tr ] = "XY ÅŸeması"; - Text[ hi-IN ] = "XY चारà¥à¤Ÿ"; - Text[ ar ] = "رسم بياني س ص"; - Text[ he ] = "XY-Diagramm"; -}; -String STR_XYZ -{ - Text [ de ] = "XYZ-Diagramm" ; - Text [ en-US ] = "XYZ Chart" ; - Text[ pt ] = "Gráfico XYZ"; - Text[ ru ] = "Диаграмма XYZ"; - Text[ el ] = "ΔιάγÏαμμα XYZ"; - Text[ nl ] = "XYZ-diagram"; - Text[ fr ] = "Diagramme XYZ"; - Text[ es ] = "Diagrama XYZ"; - Text[ fi ] = "XYZ-kaavio"; - Text[ ca ] = "Diagrama XYZ"; - Text[ it ] = "Diagramma XYZ"; - Text[ da ] = "XYZ-diagram"; - Text[ sv ] = "XYZ-diagram"; - Text[ pl ] = "Wykres XYZ"; - Text[ pt-BR ] = "Gráfico XYZ"; - Text[ th ] = "à¹à¸œà¸™à¸ ูมิXYZ "; - Text[ ja ] = "XYZ軸図表"; - Text[ ko ] = "XYZ 차트"; - Text[ zh-CN ] = "XYZ 图表"; - Text[ zh-TW ] = "XYZ-圖表"; - Text[ tr ] = "XYZ ÅŸeması"; - Text[ hi-IN ] = "XYZ चारà¥à¤Ÿ "; - Text[ ar ] = "رسم بياني س ص ع"; - Text[ he ] = "XYZ-Diagramm"; -}; -String STR_NORMAL -{ - Text [ de ] = "Normal" ; - Text [ en-US ] = "Normal" ; - Text[ pt ] = "Normal"; - Text[ ru ] = "ОбычнаÑ"; - Text[ el ] = "Κανονικά"; - Text[ nl ] = "Normaal"; - Text[ fr ] = "Normal"; - Text[ es ] = "Normal"; - Text[ fi ] = "Normaali"; - Text[ ca ] = "Normal"; - Text[ it ] = "Normale"; - Text[ da ] = "Normal"; - Text[ sv ] = "Normal"; - Text[ pl ] = "ZwykÅ‚y"; - Text[ pt-BR ] = "Normal"; - Text[ th ] = "ปà¸à¸•à¸´"; - Text[ ja ] = "標準"; - Text[ ko ] = "표준"; - Text[ zh-CN ] = "一般"; - Text[ zh-TW ] = "一般"; - Text[ tr ] = "Normal"; - Text[ hi-IN ] = "नॉरà¥à¤®à¤²à¥"; - Text[ ar ] = "عادية"; - Text[ he ] = "Normal"; -}; -String STR_STACKED -{ - Text [ de ] = "Gestapelt" ; - Text [ en-US ] = "Stacked" ; - Text[ pt ] = "Empilhado"; - Text[ ru ] = "С накоплением"; - Text[ el ] = "Σε στοίβα"; - Text[ nl ] = "Gestapeld"; - Text[ fr ] = "Empilé"; - Text[ es ] = "En pilas"; - Text[ fi ] = "Pinottuna"; - Text[ ca ] = "Apilat"; - Text[ it ] = "Sovrapposto"; - Text[ da ] = "Stablet"; - Text[ sv ] = "Staplat"; - Text[ pl ] = "Skumulowany"; - Text[ pt-BR ] = "Empilhado"; - Text[ th ] = "à¸à¸à¸‡à¸‹à¹‰à¸à¸™"; - Text[ ja ] = "ç©ã¿ä¸Šã’"; - Text[ ko ] = "누ì ëœ"; - Text[ zh-CN ] = "é‡å "; - Text[ zh-TW ] = "é‡ç–Š"; - Text[ tr ] = "Yığılmış"; - Text[ hi-IN ] = "Stacked"; - Text[ ar ] = "متراكمة"; - Text[ he ] = "Gestapelt"; -}; -String STR_PERCENT -{ - Text [ de ] = "Prozent" ; - Text [ en-US ] = "Percent" ; - Text[ pt ] = "Percentual"; - Text[ ru ] = "ПроцентнаÑ"; - Text[ el ] = "Ποσοστό (%)"; - Text[ nl ] = "Procent"; - Text[ fr ] = "Pourcentage"; - Text[ es ] = "Porcentaje"; - Text[ fi ] = "Prosenttia"; - Text[ ca ] = "Percentatge"; - Text[ it ] = "Percentuale"; - Text[ da ] = "Procent"; - Text[ sv ] = "Procent"; - Text[ pl ] = "Procent"; - Text[ pt-BR ] = "Percentual"; - Text[ th ] = "เปà¸à¸£à¹Œà¹€à¸‹à¹‡à¸™à¸•à¹Œ"; - Text[ ja ] = "パーセント"; - Text[ ko ] = "백분율"; - Text[ zh-CN ] = "百分比"; - Text[ zh-TW ] = "百分比"; - Text[ tr ] = "Yüzde"; - Text[ hi-IN ] = "पà¥à¤°à¤¤à¤¿à¤¶à¤¤"; - Text[ ar ] = "النسبة المئوية"; - Text[ he ] = "Prozent"; -}; - -String STR_DEEP -{ - Text [ de ] = "Tief" ; - Text [ en-US ] = "Deep" ; - Text[ pt ] = "Fundo"; - Text[ ru ] = "Глубина"; - Text[ el ] = "Σε βάθος"; - Text[ nl ] = "met diepte"; - Text[ fr ] = "Profond"; - Text[ es ] = "Profundidad"; - Text[ fi ] = "Syvyys"; - Text[ ca ] = "Profund"; - Text[ it ] = "In profondità "; - Text[ da ] = "Dyb"; - Text[ sv ] = "Djup"; - Text[ pl ] = "GÅ‚Ä™boki"; - Text[ pt-BR ] = "Profundo"; - Text[ th ] = "ลึà¸"; - Text[ ja ] = "奥行ãã‚ã‚Š"; - Text[ ko ] = "깊ì´"; - Text[ zh-CN ] = "深度"; - Text[ zh-TW ] = "深度"; - Text[ tr ] = "Derin"; - Text[ hi-IN ] = "गहरा"; - Text[ ar ] = "عميقة"; - Text[ he ] = "Tief"; -}; - -String STR_2D -{ - Text [ de ] = "2D-" ; - Text [ en-US ] = "2D " ; - Text[ pt ] = "2D-"; - Text[ ru ] = "ДвумернаÑ"; - Text[ el ] = "2Δ-"; - Text[ nl ] = "2D-"; - Text[ fr ] = "2D-"; - Text[ es ] = "2D-"; - Text[ fi ] = "Kaksiulotteinen "; - Text[ ca ] = "2D "; - Text[ it ] = "2D-"; - Text[ da ] = "2D-"; - Text[ sv ] = "2D-"; - Text[ pl ] = "2D"; - Text[ pt-BR ] = "2D-"; - Text[ th ] = "2มิติ "; - Text[ ja ] = "2D"; - Text[ ko ] = "2D"; - Text[ zh-CN ] = "2 ç»´"; - Text[ zh-TW ] = "å¹³é¢"; - Text[ tr ] = "2B-"; - Text[ hi-IN ] = "2D "; - Text[ ar ] = "ثنائي الأبعاد"; - Text[ he ] = "2D-"; -}; -String STR_3D -{ - Text [ de ] = "3D-" ; - Text [ en-US ] = "3D " ; - Text[ pt ] = "3D-"; - Text[ ru ] = "ТрехмернаÑ"; - Text[ el ] = "3Δ-"; - Text[ nl ] = "3D-"; - Text[ fr ] = "3D-"; - Text[ es ] = "3D-"; - Text[ fi ] = "Kolmiulotteisuus "; - Text[ ca ] = "3D "; - Text[ it ] = "3D-"; - Text[ da ] = "3D-"; - Text[ sv ] = "3D-"; - Text[ pl ] = "3D"; - Text[ pt-BR ] = "3D-"; - Text[ th ] = "3มิติ "; - Text[ ja ] = "3D"; - Text[ ko ] = "3D"; - Text[ zh-CN ] = "3 ç»´"; - Text[ zh-TW ] = "3D"; - Text[ tr ] = "3B-"; - Text[ hi-IN ] = "3D "; - Text[ ar ] = "ثلاثي الأبعاد"; - Text[ he ] = "3D-"; -}; -String STR_DIAGRAM -{ - Text [ de ] = "Diagramm" ; - Text [ en-US ] = "Chart" ; - Text[ pt ] = "Gráfico"; - Text[ ru ] = "Диаграмма"; - Text[ el ] = "ΔιάγÏαμμα"; - Text[ nl ] = "Diagram"; - Text[ fr ] = "Diagramme"; - Text[ es ] = "Diagrama"; - Text[ fi ] = "Kaavio"; - Text[ ca ] = "Diagrama"; - Text[ it ] = "Diagramma"; - Text[ da ] = "Diagram"; - Text[ sv ] = "Diagram"; - Text[ pl ] = "Wykres"; - Text[ pt-BR ] = "Gráfico"; - Text[ th ] = "à¹à¸œà¸™à¸ ูมิ"; - Text[ ja ] = "グラフ"; - Text[ ko ] = "차트"; - Text[ zh-CN ] = "图表"; - Text[ zh-TW ] = "圖表"; - Text[ tr ] = "Åžema"; - Text[ hi-IN ] = "चारà¥à¤Ÿ "; - Text[ ar ] = "رسم بياني"; - Text[ he ] = "‮תרשי×‬"; -}; -String STR_DIAGRAM_ROW -{ - // $(ROW) can be a number or the caption of the row in quotes - Text [ de ] = "Datenreihe $(ROW)" ; - Text [ en-US ] = "Data Series $(ROW)" ; - Text[ pt ] = "Série de dados $(ROW)"; - Text[ ru ] = "Ð Ñд данных $(ROW)"; - Text[ el ] = "ΓÏαμμή δεδομÎνων $(ROW)"; - Text[ nl ] = "Gegevensreeks $(ROW)"; - Text[ fr ] = "Série de données $(ROW)"; - Text[ es ] = "Serie de datos $(ROW)"; - Text[ fi ] = "Tietojoukot $(ROW)"; - Text[ ca ] = "Sèrie de dades $(ROW)"; - Text[ it ] = "Serie di dati $(ROW)"; - Text[ da ] = "Dataserie $(ROW)"; - Text[ sv ] = "Dataserie $(ROW)"; - Text[ pl ] = "Seria danych $(ROW)"; - Text[ pt-BR ] = "Série de Dados $(ROW)"; - Text[ th ] = "ชุดข้à¸à¸¡à¸¹à¸¥ $(ROW)"; - Text[ ja ] = "系列$(ROW)"; - Text[ ko ] = "ì—°ì† ë°ì´í„° $(ROW)"; - Text[ zh-CN ] = "æ•°æ®ç»„ $(ROW)"; - Text[ zh-TW ] = "資料欄 $(ROW)"; - Text[ tr ] = "Veri dizisi $(ROW)"; - Text[ hi-IN ] = "ड़ॉटा शà¥à¤°à¥ƒà¤‚खला $(पकà¥à¤¤à¤¿à¤‚)"; - Text[ ar ] = "ص٠البيانات $(ROW)"; - Text[ he ] = "Datenreihe $(ROW)"; -}; - - - -String STR_DEFAULTVIEW -{ - Text [ de ] = "Default" ; - Text [ en-US ] = "Default" ; - Text[ pt ] = "Padrão"; - Text[ ru ] = "Стандарт"; - Text[ el ] = "Î Ïοεπιλογή"; - Text[ nl ] = "Standaard"; - Text[ fr ] = "Défaut"; - Text[ es ] = "Predeterminado"; - Text[ fi ] = "Oletus"; - Text[ ca ] = "Per defecte"; - Text[ it ] = "Predefinito"; - Text[ da ] = "Standard"; - Text[ sv ] = "Standard"; - Text[ pl ] = "DomyÅ›lnie"; - Text[ pt-BR ] = "Padrão"; - Text[ th ] = "ค่าเริ่มต้น"; - Text[ ja ] = "標準"; - Text[ ko ] = "기본값"; - Text[ zh-CN ] = "默认"; - Text[ zh-TW ] = "默èª"; - Text[ tr ] = "Standart"; - Text[ hi-IN ] = "अनà¥à¤ªà¤¸à¥à¤¥à¤¿à¤¤à¤¿"; - Text[ ar ] = "اÙتراضي"; - Text[ he ] = "‮ברירת מחדל‬"; -}; - -String STR_OPEN_DOCUMENT -{ - Text [ de ] = "Dokument laden" ; - Text [ en-US ] = "Load document" ; - Text[ pt ] = "Carregar documento"; - Text[ ru ] = "Загрузить документ"; - Text[ el ] = "ΦόÏτωση εγγÏάφου"; - Text[ nl ] = "Document laden"; - Text[ fr ] = "Charger un document"; - Text[ es ] = "Cargar documento"; - Text[ fi ] = "Lataa asiakirja"; - Text[ ca ] = "Carrega el document"; - Text[ it ] = "Apri documento"; - Text[ da ] = "Indlæs dokument"; - Text[ sv ] = "Ladda dokument"; - Text[ pl ] = "Åaduj dokument"; - Text[ pt-BR ] = "Carregar documento"; - Text[ th ] = "โหลดเà¸à¸à¸ªà¸²à¸£"; - Text[ ja ] = "ドã‚ュメントをèªã¿è¾¼ã‚€"; - Text[ ko ] = "문서 로드"; - Text[ zh-CN ] = "装入文档"; - Text[ zh-TW ] = "載入文件"; - Text[ tr ] = "Belge yükle"; - Text[ hi-IN ] = "Load document"; - Text[ ar ] = "تØميل المستند"; - Text[ he ] = "â€®×˜×¢×™× ×ª מסמך‬"; -}; -String STR_SAVE_DOCUMENT -{ - Text [ en-US ] = "Save document"; - Text [ de ] = "Dokument speichern" ; - Text [ en-US ] = "Save document" ; - Text [ de ] = "Dokument speichern" ; - Text[ pt ] = "Guardar documento"; - Text[ ru ] = "Сохранить документ"; - Text[ el ] = "Αποθήκευση εγγÏάφου"; - Text[ nl ] = "Document opslaan"; - Text[ fr ] = "Enregistrer le document"; - Text[ es ] = "Guardar documento"; - Text[ fi ] = "Tallenna asiakirja"; - Text[ ca ] = "Desa el document"; - Text[ it ] = "Salva documento"; - Text[ da ] = "Gem dokument"; - Text[ sv ] = "Spara dokument"; - Text[ pl ] = "Zapisz dokument"; - Text[ pt-BR ] = "Salvar documento"; - Text[ th ] = "บันทึà¸à¹€à¸à¸à¸ªà¸²à¸£"; - Text[ ja ] = "ドã‚ュメントã®ä¿å˜"; - Text[ ko ] = "문서 ì €ìž¥"; - Text[ zh-CN ] = "å˜ç›˜æ–‡æ¡£"; - Text[ zh-TW ] = "儲å˜æ–‡ä»¶"; - Text[ tr ] = "Belgeyi kaydet"; - Text[ hi-IN ] = "लेखपतà¥à¤° संचित करो"; - Text[ ar ] = "ØÙظ المستند"; - Text[ he ] = "Dokument speichern"; -}; -String STR_GRAPHIC -{ - Text [ de ] = "Chart" ; - Text [ en-US ] = "Chart" ; - Text[ pt ] = "Chart"; - Text[ ru ] = "Диаграмма"; - Text[ el ] = "ΔιάγÏαμμα"; - Text[ nl ] = "Chart"; - Text[ fr ] = "Diagramme"; - Text[ es ] = "Diagrama"; - Text[ fi ] = "Kaavio"; - Text[ ca ] = "Diagrama"; - Text[ it ] = "Diagramma"; - Text[ da ] = "Diagram"; - Text[ sv ] = "Chart"; - Text[ pl ] = "Wykres"; - Text[ pt-BR ] = "Gráfico"; - Text[ th ] = "à¹à¸œà¸™à¸ ูมิ"; - Text[ ja ] = "グラフ"; - Text[ ko ] = "차트"; - Text[ zh-CN ] = "图表"; - Text[ zh-TW ] = "圖表"; - Text[ tr ] = "Åžema"; - Text[ hi-IN ] = "चारà¥à¤Ÿ"; - Text[ ar ] = "رسم بياني"; - Text[ he ] = "‮תרשי×‬"; -}; -String STR_CHART_DOCUMENT -{ - Text [ de ] = "Diagramm" ; - Text [ en-US ] = "Chart" ; - Text[ pt ] = "Gráfico"; - Text[ ru ] = "Диаграмма"; - Text[ el ] = "ΔιάγÏαμμα"; - Text[ nl ] = "Diagram"; - Text[ fr ] = "Diagramme"; - Text[ es ] = "Diagrama"; - Text[ fi ] = "Kaavio"; - Text[ ca ] = "Diagrama"; - Text[ it ] = "Diagramma"; - Text[ da ] = "Diagram"; - Text[ sv ] = "Diagram"; - Text[ pl ] = "Wykres"; - Text[ pt-BR ] = "Gráfico"; - Text[ th ] = "à¹à¸œà¸™à¸ ูมิ"; - Text[ ja ] = "グラフ"; - Text[ ko ] = "차트"; - Text[ zh-CN ] = "图表"; - Text[ zh-TW ] = "圖表"; - Text[ tr ] = "Åžema"; - Text[ hi-IN ] = "चारà¥à¤Ÿ"; - Text[ ar ] = "رسم بياني"; - Text[ he ] = "‮תרשי×‬"; -}; -String STR_CHART_DOCUMENT_FULLTYPE_60 -{ - Text [ de ] = "%PRODUCTNAME 6.0 Diagramm" ; - Text [ en-US ] = "%PRODUCTNAME 6.0 Chart" ; - Text[ pt ] = "%PRODUCTNAME 6.0 Gráfico"; - Text[ ru ] = "Диаграмма %PRODUCTNAME 6.0"; - Text[ el ] = "%PRODUCTNAME 6.0 ΔιάγÏαμμα"; - Text[ nl ] = "%PRODUCTNAME 6.0 Diagram"; - Text[ fr ] = "%PRODUCTNAME 6.0 Diagramme"; - Text[ es ] = "%PRODUCTNAME 6.0 - Diagrama"; - Text[ fi ] = "%PRODUCTNAME 6.0 Chart"; - Text[ ca ] = "%PRODUCTNAME 6.0 Diagrama"; - Text[ it ] = "%PRODUCTNAME 6.0 Diagramma"; - Text[ da ] = "%PRODUCTNAME 6.0-diagram"; - Text[ sv ] = "%PRODUCTNAME 6.0 Diagram"; - Text[ pl ] = "%PRODUCTNAME 6.0 Chart"; - Text[ pt-BR ] = "%PRODUCTNAME 6.0 Chart"; - Text[ th ] = "à¹à¸œà¸™à¸ ูมิ%PRODUCTNAME 6.0 "; - Text[ ja ] = "%PRODUCTNAME 6.0 グラフ"; - Text[ ko ] = "%PRODUCTNAME 6.0 차트"; - Text[ zh-CN ] = "%PRODUCTNAME 6.0 图表"; - Text[ zh-TW ] = "%PRODUCTNAME 6.0 圖表"; - Text[ tr ] = "%PRODUCTNAME 6.0 Çizelgesi"; - Text[ hi-IN ] = "%PRODUCTNAME 6.0 चारà¥à¤Ÿ"; - Text[ ar ] = "رسم بياني %PRODUCTNAME 6.0"; - Text[ he ] = "%PRODUCTNAME 6.0 Diagramm"; -}; -String STR_CHART_DOCUMENT_FULLTYPE_50 -{ - Text [ de ] = "%PRODUCTNAME 5.0 Diagramm" ; - Text [ en-US ] = "%PRODUCTNAME 5.0 Chart" ; - Text[ pt ] = "Gráfico (%PRODUCTNAME 5.0)"; - Text[ ru ] = "Диаграмма %PRODUCTNAME 5.0"; - Text[ el ] = "ΔιάγÏαμμα (%PRODUCTNAME 5.0)"; - Text[ nl ] = "%PRODUCTNAME 5.0 diagram"; - Text[ fr ] = "%PRODUCTNAME 5.0 Diagramme"; - Text[ es ] = "%PRODUCTNAME 5.0 - Diagrama"; - Text[ fi ] = "%PRODUCTNAME 5.0 Chart"; - Text[ ca ] = "%PRODUCTNAME 5.0 Diagrama"; - Text[ it ] = "Diagramma %PRODUCTNAME 5.0"; - Text[ da ] = "%PRODUCTNAME 5.0 diagram"; - Text[ sv ] = "%PRODUCTNAME 5.0 Diagram"; - Text[ pl ] = "%PRODUCTNAME 5.0 Chart"; - Text[ pt-BR ] = "%PRODUCTNAME 5.0 Chart"; - Text[ th ] = "à¹à¸œà¸™à¸ ูมิ%PRODUCTNAME 5.0 "; - Text[ ja ] = "%PRODUCTNAME 5.0 グラフ"; - Text[ ko ] = "%PRODUCTNAME 5.0 차트"; - Text[ zh-CN ] = "%PRODUCTNAME 5.0 图表"; - Text[ zh-TW ] = "%PRODUCTNAME 5.0 圖表"; - Text[ tr ] = "%PRODUCTNAME 5.0 ÅŸeması"; - Text[ hi-IN ] = "%PRODUCTNAME 5.0 चारà¥à¤Ÿ"; - Text[ ar ] = "رسم بياني %PRODUCTNAME 5.0"; - Text[ he ] = "%PRODUCTNAME 5.0 Diagramm"; -}; -String STR_CHART_DOCUMENT_FULLTYPE_40 -{ - Text [ de ] = "%PRODUCTNAME 4.0 Diagramm" ; - Text [ en-US ] = "%PRODUCTNAME 4.0 Chart" ; - Text[ pt ] = "Gráfico (%PRODUCTNAME 4.0)"; - Text[ ru ] = "Диаграмма %PRODUCTNAME 4.0"; - Text[ el ] = "ΔιάγÏαμμα (%PRODUCTNAME 4.0)"; - Text[ nl ] = "%PRODUCTNAME 4.0 diagram"; - Text[ fr ] = "%PRODUCTNAME 4.0 Diagramme"; - Text[ es ] = "%PRODUCTNAME 4.0 - Diagrama"; - Text[ fi ] = "%PRODUCTNAME 4.0 Chart"; - Text[ ca ] = "%PRODUCTNAME 4.0 Diagrama"; - Text[ it ] = "Diagramma %PRODUCTNAME 4.0"; - Text[ da ] = "%PRODUCTNAME 4.0 diagram"; - Text[ sv ] = "%PRODUCTNAME 4.0 Diagram"; - Text[ pl ] = "%PRODUCTNAME 4.0 Chart"; - Text[ pt-BR ] = "%PRODUCTNAME 4.0 Chart"; - Text[ th ] = "à¹à¸œà¸™à¸ ูมิ%PRODUCTNAME 4.0 "; - Text[ ja ] = "%PRODUCTNAME 4.0 グラフ"; - Text[ ko ] = "%PRODUCTNAME 4.0 차트"; - Text[ zh-CN ] = "%PRODUCTNAME 4.0 图表"; - Text[ zh-TW ] = "%PRODUCTNAME 4.0 圖表"; - Text[ tr ] = "%PRODUCTNAME 4.0 ÅŸeması"; - Text[ hi-IN ] = "%PRODUCTNAME 4.0 चारà¥à¤Ÿ"; - Text[ ar ] = "رسم بياني %PRODUCTNAME 4.0"; - Text[ he ] = "%PRODUCTNAME 4.0 Diagramm"; -}; -String STR_CHART_DOCUMENT_FULLTYPE_31 -{ - Text [ de ] = "%PRODUCTNAME 3.0 Diagramm" ; - Text [ en-US ] = "%PRODUCTNAME 3.0 Chart" ; - Text[ pt ] = "Gráfico (%PRODUCTNAME 3.0)"; - Text[ ru ] = "Диаграмма %PRODUCTNAME 3.0"; - Text[ el ] = "ΔιάγÏαμμα (%PRODUCTNAME 3.0)"; - Text[ nl ] = "%PRODUCTNAME 3.0 diagram"; - Text[ fr ] = "%PRODUCTNAME 3.0 Diagramme"; - Text[ es ] = "%PRODUCTNAME 3.0 - Diagrama"; - Text[ fi ] = "%PRODUCTNAME 3.0 Chart"; - Text[ ca ] = "%PRODUCTNAME 3.0 Diagrama"; - Text[ it ] = "Diagramma %PRODUCTNAME 3.0"; - Text[ da ] = "%PRODUCTNAME 3.0 diagram"; - Text[ sv ] = "%PRODUCTNAME 3.0 Diagram"; - Text[ pl ] = "%PRODUCTNAME 3.0 Chart"; - Text[ pt-BR ] = "%PRODUCTNAME 3.0 Chart"; - Text[ th ] = "à¹à¸œà¸™à¸ ูมิ%PRODUCTNAME 3.0 "; - Text[ ja ] = "%PRODUCTNAME 3.0 グラフ"; - Text[ ko ] = "%PRODUCTNAME 3.0 차트"; - Text[ zh-CN ] = "%PRODUCTNAME 3.0 图表"; - Text[ zh-TW ] = "%PRODUCTNAME 3.0 圖表"; - Text[ tr ] = "%PRODUCTNAME 3.0 ÅŸeması"; - Text[ hi-IN ] = "%PRODUCTNAME 3.0 चारà¥à¤Ÿ"; - Text[ ar ] = "رسم بياني %PRODUCTNAME 3.0"; - Text[ he ] = "%PRODUCTNAME 3.0 Diagramm"; -}; -String STR_BAD_PASSWORD_OR_FILE_CORRUPTED -{ - Text [ de ] = "Das Kennwort ist falsch oder die Datei beschädigt." ; - Text [ en-US ] = "The password is incorrect or the file is damaged." ; - Text[ pt ] = "Ou a senha está incorrecta ou o ficheiro danificado."; - Text[ ru ] = "Ðеправильный пароль или файл поврежден."; - Text[ el ] = "Ο κωδικός Ï€Ïόσβασης είναι εσφαλμÎνος ή το αÏχείο ελαττωματικό."; - Text[ nl ] = "Het wachtwoord is niet juist of het bestand is beschadigd"; - Text[ fr ] = "Le mot de passe est incorrect ou le fichier est défectueux."; - Text[ es ] = "La contraseña no es válida o el archivo está dañado."; - Text[ fi ] = "Salasana on virheellinen tai tiedosto on vahingoittunut."; - Text[ ca ] = "La contrasenya no és correcta o el fitxer està danyat."; - Text[ it ] = "La password è errata o il file è danneggiato."; - Text[ da ] = "Adgangskoden er forkert eller filen er beskadiget."; - Text[ sv ] = "Lösenordet är felaktigt eller filen skadad."; - Text[ pl ] = "NieprawidÅ‚owe hasÅ‚o lub uszkodzony plik."; - Text[ pt-BR ] = "A senha é invalida ou o arquivo está corrompido."; - Text[ th ] = "รหัสผ่านไม่ถูà¸à¸•à¹‰à¸à¸‡à¸«à¸£à¸·à¸à¹à¸Ÿà¹‰à¸¡à¹€à¸ªà¸µà¸¢à¸«à¸²à¸¢"; - Text[ ja ] = "パスワードãŒé–“é•ã£ã¦ã„ã‚‹ã‹ã€ã¾ãŸã¯ãƒ•ã‚¡ã‚¤ãƒ«ã«å•é¡ŒãŒã‚ã‚Šã¾ã™ã€‚"; - Text[ ko ] = "암호가 틀리거나 파ì¼ì´ ì†ìƒë˜ì—ˆìŠµë‹ˆë‹¤."; - Text[ zh-CN ] = "æ— æ•ˆçš„å¯†ç 或文件已ç»è¢«æŸå。"; - Text[ zh-TW ] = "無效的密碼或檔案已經被æ壞。"; - Text[ tr ] = "Åžifre yanlış veya dosya zarar görmüş."; - Text[ hi-IN ] = "The password is incorrect or the file is damaged."; - Text[ ar ] = "إما أن كلمة السر غير صØÙŠØØ© أو أن المل٠تالÙ."; - Text[ he ] = "Das Kennwort ist falsch oder die Datei beschädigt."; -}; - - -String STR_REGRESSION_LINEAR -{ - Text [ de ] = "Lineare Regression" ; - Text [ en-US ] = "Linear regression" ; - Text[ pt ] = "Regressão linear"; - Text[ ru ] = "Ð›Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ñ€ÐµÐ³Ñ€ÐµÑÑиÑ"; - Text[ el ] = "ΓÏαμμική παλινδÏόμηση"; - Text[ nl ] = "Lineaire regressie"; - Text[ fr ] = "Régression linéaire"; - Text[ es ] = "Regresión lineal"; - Text[ fi ] = "Lineaarinen regressio"; - Text[ ca ] = "Regressió lineal"; - Text[ it ] = "Regressione lineare"; - Text[ da ] = "Lineær regression"; - Text[ sv ] = "Linjär regression"; - Text[ pl ] = "Regresja liniowa"; - Text[ pt-BR ] = "Regressão linear"; - Text[ th ] = "ถดถà¸à¸¢à¹à¸šà¸šà¹€à¸ªà¹‰à¸™à¸•à¸£à¸‡"; - Text[ ja ] = "線形回帰"; - Text[ ko ] = "ì„ íšŒê·€ì„ "; - Text[ zh-CN ] = "ç‰å·®å›žå½’"; - Text[ zh-TW ] = "ç‰å·®å›žæ¸"; - Text[ tr ] = "DoÄŸrusal regresyon"; - Text[ hi-IN ] = "Linear regression"; - Text[ ar ] = "انØدار خطي"; - Text[ he ] = "Lineare Regression"; -}; -String STR_REGRESSION_LOG -{ - Text [ de ] = "Logarithmische Regression" ; - Text [ en-US ] = "Logarithm regression" ; - Text[ pt ] = "Regressão logarÃtmica"; - Text[ ru ] = "ЛогарифмичеÑÐºÐ°Ñ Ñ€ÐµÐ³Ñ€ÐµÑÑиÑ"; - Text[ el ] = "ΛογαÏιθμική παλινδÏόμηση"; - Text[ nl ] = "Logaritmische regressie"; - Text[ fr ] = "Régression logarithmique"; - Text[ es ] = "Regresión logarÃtmica"; - Text[ fi ] = "Logaritminen regressio"; - Text[ ca ] = "Regressió logarÃtmica"; - Text[ it ] = "Regressione logaritmica"; - Text[ da ] = "Logaritmisk regression"; - Text[ sv ] = "Logaritmisk regression"; - Text[ pl ] = "Regresja logarytmiczna"; - Text[ pt-BR ] = "Regressão logarÃtmica"; - Text[ th ] = "ถดถà¸à¸¢à¹à¸šà¸šà¸¥à¸à¸à¸²à¸£à¸´à¸˜à¸¶à¸¡"; - Text[ ja ] = "対数ã®å›žå¸°"; - Text[ ko ] = "로그 íšŒê·€ì„ "; - Text[ zh-CN ] = "对数回归"; - Text[ zh-TW ] = "å°æ•¸å›žæ¸"; - Text[ tr ] = "Logaritmik regresyon"; - Text[ hi-IN ] = "लघà¥à¤—णक रिगà¥à¤°à¥‡à¤¶à¥à¤¯à¤¨"; - Text[ ar ] = "انØدار لوغاريتمي"; - Text[ he ] = "Logarithmische Regression"; -}; -String STR_REGRESSION_EXP -{ - Text [ de ] = "Exponentielle Regression" ; - Text [ en-US ] = "Exponential Regression" ; - Text[ pt ] = "Regressão exponencial"; - Text[ ru ] = "ÐкÑÐ¿Ð¾Ð½ÐµÐ½Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð°Ñ Ñ€ÐµÐ³Ñ€ÐµÑÑиÑ"; - Text[ el ] = "Εκθετική παλινδÏόμηση"; - Text[ nl ] = "Exponentiële regressie"; - Text[ fr ] = "Régression exponentielle"; - Text[ es ] = "Regresión exponencial"; - Text[ fi ] = "Eksponentiaalinen regressio"; - Text[ ca ] = "Regressió exponencial"; - Text[ it ] = "Regressione esponenziale"; - Text[ da ] = "Eksponentiel regression"; - Text[ sv ] = "Exponentiell regression"; - Text[ pl ] = "Regresja wykÅ‚adnicza"; - Text[ pt-BR ] = "Regressão exponencial"; - Text[ th ] = "ถดถà¸à¸¢à¹à¸šà¸šà¹€à¸à¹‡à¸à¸‹à¹Œà¹‚ปเนนเชียล"; - Text[ ja ] = "指数ã®å›žå¸°"; - Text[ ko ] = "지수 íšŒê·€ì„ "; - Text[ zh-CN ] = "指数回归"; - Text[ zh-TW ] = "指數回æ¸"; - Text[ tr ] = "Ãœstel regresyon"; - Text[ hi-IN ] = "Exponential Regression"; - Text[ ar ] = "انØدار أسي"; - Text[ he ] = "Exponentielle Regression"; -}; -String STR_REGRESSION_POWER -{ - Text [ de ] = "Potenzielle Regression" ; - Text [ en-US ] = "Power regression" ; - Text[ pt ] = "Regressão potencial"; - Text[ ru ] = "ÐŸÐ¾Ñ‚ÐµÐ½Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð°Ñ Ñ€ÐµÐ³Ñ€ÐµÑÑиÑ"; - Text[ el ] = "Δυναμική παλινδÏόμηση"; - Text[ nl ] = "Potentiële regressie"; - Text[ fr ] = "Régression potentielle"; - Text[ es ] = "Regresión potencial"; - Text[ fi ] = "Polynomiregressio"; - Text[ ca ] = "Regressió potencial"; - Text[ it ] = "Regressione potenziale"; - Text[ da ] = "Potentiel regression"; - Text[ sv ] = "Potentiell regression"; - Text[ pl ] = "Regresja potÄ™gowa"; - Text[ pt-BR ] = "Regressão de potência"; - Text[ th ] = "à¸à¸³à¸¥à¸±à¸‡à¸à¸²à¸£à¸–ดถà¸à¸¢"; - Text[ ja ] = "乗羃ã®å›žå¸°"; - Text[ ko ] = "í¼í…ì…œíšŒê·€ì„ "; - Text[ zh-CN ] = "ä½èƒ½å›žå½’"; - Text[ zh-TW ] = "指數回æ¸"; - Text[ tr ] = "Kuvvet regresyonu"; - Text[ hi-IN ] = "पवर रिगà¥à¤°à¥‡à¤¶à¥à¤¯à¤¨"; - Text[ ar ] = "انØدار القدرة"; - Text[ he ] = "Potenzielle Regression"; -}; - -String STR_STATISTICS_IN_LEGEND -{ - // comment - Text [ x-comment ] = "BM: This determines how a statistics string (STR_REGRESSION_...) appears in the legend, e.g. in german \"Lineare Regression, Spalte 3\" will appear for \"$(STATTYP), $(ROWNAME)\""; - // comment - Text [ de ] = "$(STATTYP), $(ROWNAME)"; - Text [ en-US ] = "$(STATTYP), $(ROWNAME) " ; - Text[ pt ] = "$(STATTYP), $(ROWNAME)"; - Text[ ru ] = "$(STATTYP), $(ROWNAME)"; - Text[ el ] = "$(STATTYP), $(ROWNAME)"; - Text[ nl ] = "$(STATTYP), $(ROWNAME)"; - Text[ fr ] = "$(STATTYP), $(ROWNAME)"; - Text[ es ] = "$(STATTYP), $(ROWNAME)"; - Text[ fi ] = "$(STATTYP), $(ROWNAME) "; - Text[ ca ] = "$(STATTYP), $(ROWNAME) "; - Text[ it ] = "$(STATTYP), $(ROWNAME)"; - Text[ da ] = "$(STATTYP), $(ROWNAME)"; - Text[ sv ] = "$(STATTYP), $(ROWNAME)"; - Text[ pl ] = "$(STATTYP), $(ROWNAME)"; - Text[ pt-BR ] = "$(STATTYP), $(ROWNAME)"; - Text[ th ] = "$(STATTYP), $(ROWNAME) "; - Text[ ja ] = "$(STATTYP)ã€$(ROWNAME)"; - Text[ ko ] = "$(STATTYP), $(ROWNAME)"; - Text[ zh-CN ] = "$(STATTYP), $(ROWNAME)"; - Text[ zh-TW ] = "$(STATTYP), $(ROWNAME)"; - Text[ tr ] = "$(STATTYP), $(ROWNAME)"; - Text[ hi-IN ] = "$(STATTYP), $(ROWNAME) "; - Text[ ar ] = "$(STATTYP), $(ROWNAME)"; - Text[ he ] = "$(STATTYP), $(ROWNAME) "; -}; - - - - - -//----------------------------------- - -//----------------------------------- - -//----------------------------------- - -//----------------------------------- -//----------------------------------- -//----------------------------------- - - -// some strings merged using arguments now - - - - -// some more strings for QuickHelp - - - - - - - - - - - -//----------------------------------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/binfilter/bf_sch/source/ui/app/sch_typemap.cxx b/binfilter/bf_sch/source/ui/app/sch_typemap.cxx deleted file mode 100644 index 2d2aa2174..000000000 --- a/binfilter/bf_sch/source/ui/app/sch_typemap.cxx +++ /dev/null @@ -1,117 +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. - * - ************************************************************************/ - - -#ifdef _MSC_VER -#pragma hdrstop -#endif - -#include <bf_svx/eeitem.hxx> - -#include "eetext.hxx" -#include <bf_svx/fontitem.hxx> -#include <bf_svx/postitem.hxx> -#include <bf_svx/wghtitem.hxx> -#include <bf_svx/shdditem.hxx> -#include <bf_svx/cntritem.hxx> -#include <bf_svx/crsditem.hxx> -#include <bf_svx/udlnitem.hxx> -#include <bf_svx/fhgtitem.hxx> -#include <bf_svx/colritem.hxx> - -#include <bf_svx/svxids.hrc> - -#define ITEMID_FMTSPLIT 0 -#define ITEMID_PAGEMODEL 0 -#include "eetext.hxx" - -#define ITEMID_LINE 0 -#define ITEMID_BRUSH 0 -#define ITEMID_FMTBREAK 0 -#define ITEMID_FMTKEEP 0 -#define ITEMID_SIZE 0 -#include <bf_svx/sizeitem.hxx> - -#define ITEMID_PAGE 0 - - -#include <bf_svtools/stritem.hxx> - -#define ITEMID_AUTHOR 0 -#define ITEMID_DATE 0 -#define ITEMID_TEXT 0 - -#define ITEMID_SEARCH 0 - -#define ITEMID_HORJUSTIFY 0 -#define ITEMID_VERJUSTIFY 0 -#define ITEMID_ORIENTATION 0 - -#include <bf_svx/zoomitem.hxx> - -#define ITEMID_CHARTSTYLE 0 -#include <bf_svx/chrtitem.hxx> - -#include <bf_sfx2/msg.hxx> - -namespace binfilter { - -/*?*/ typedef SfxVoidItem CharSetItem; -/*?*/ typedef SfxVoidItem FontFamilyItem; -/*?*/ typedef SfxVoidItem FontPitchItem; -/*?*/ typedef SfxVoidItem FontAlignItem; -/*?*/ typedef SfxVoidItem FontWeightItem; -/*?*/ typedef SfxVoidItem FontUnderlineItem; -/*?*/ typedef SfxVoidItem FontStrikeoutItem; -/*?*/ typedef SfxVoidItem FontItalicItem; -/*?*/ typedef SfxVoidItem SvxDbTypeItem; -/*?*/ typedef SfxVoidItem SvxLineSpaceItem; -/*?*/ typedef SfxVoidItem SvxInterLineSpaceItem; -/*?*/ typedef SfxVoidItem SvxBreakItem; -/*?*/ typedef SfxVoidItem BrushStyleItem; -/*?*/ typedef SfxVoidItem SvxNumTypeItem; -/*?*/ typedef SfxVoidItem SvxShadowLocationItem; -/*?*/ typedef SfxVoidItem SvxChooseControlEnumItem; -/*?*/ typedef SfxVoidItem SvxDrawToolEnumItem; -/*?*/ typedef SfxVoidItem SvxChooseControlItem; -/*?*/ typedef SfxVoidItem SvxDrawToolItem; -/*?*/ typedef SfxVoidItem SvxCellHorJustifyEnumItem; -/*?*/ typedef SfxVoidItem SvxCellVerJustifyEnumItem; -/*?*/ typedef SfxVoidItem SvxCellOrientationEnumItem; -/*?*/ typedef SfxEnumItem SvxStyleTypeItem; - -#define SFX_TYPEMAP -#include "schslots.hxx" - - - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/docshell/makefile.mk b/binfilter/bf_sch/source/ui/docshell/makefile.mk deleted file mode 100644 index f16c08b0a..000000000 --- a/binfilter/bf_sch/source/ui/docshell/makefile.mk +++ /dev/null @@ -1,60 +0,0 @@ -#************************************************************************* -# -# 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. -# -#************************************************************************* - -PRJ=..$/..$/..$/.. -BFPRJ=..$/..$/.. - -PROJECTPCH=sch -PROJECTPCHSOURCE=$(BFPRJ)$/util$/sch_sch - -PRJNAME=binfilter -TARGET=sch_docshell - -NO_HIDS=TRUE - -ENABLE_EXCEPTIONS = TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk -INC+= -I$(PRJ)$/inc$/bf_sch - -# --- Files -------------------------------------------------------- - -CXXFILES = $(BFPRJ)$/util$/sch_sch.cxx \ - sch_docshell.cxx \ - sch_docshel1.cxx - -SLOFILES = \ - $(SLO)$/sch_docshell.obj \ - $(SLO)$/sch_docshel1.obj - - -# --- Targets ------------------------------------------------------- - -.INCLUDE : target.mk - diff --git a/binfilter/bf_sch/source/ui/docshell/sch_docshel1.cxx b/binfilter/bf_sch/source/ui/docshell/sch_docshel1.cxx deleted file mode 100644 index 9109aef33..000000000 --- a/binfilter/bf_sch/source/ui/docshell/sch_docshel1.cxx +++ /dev/null @@ -1,192 +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. - * - ************************************************************************/ - -#ifndef _SVX_SVXIDS_HRC -#define ITEMID_FONTLIST SID_ATTR_CHAR_FONTLIST -#define ITEMID_NUMBERINFO SID_ATTR_NUMBERFORMAT_INFO -#define ITEMID_COLOR_TABLE SID_COLOR_TABLE -#define ITEMID_GRADIENT_LIST SID_GRADIENT_LIST -#define ITEMID_HATCH_LIST SID_HATCH_LIST -#define ITEMID_BITMAP_LIST SID_BITMAP_LIST -#define ITEMID_DASH_LIST SID_DASH_LIST -#define ITEMID_LINEEND_LIST SID_LINEEND_LIST -#include <bf_svx/svxids.hrc> -#endif - -#include <bf_sfx2/app.hxx> - -#include "app.hrc" -#include "strings.hrc" -#include "res_bmp.hrc" -#include "docshell.hxx" - -namespace binfilter { - -/************************************************************************* -|* -|* Zeichnen der DocShell (mittels der Hilfsklasse SchViewSpecial) -|* -\************************************************************************/ - - - - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Bitmap der StyleFamily zurueckgeben (zunaechst Dummy) -|* -\************************************************************************/ - -/*N*/ SfxStyleSheetBasePool* SchChartDocShell::GetStyleSheetPool() throw() -/*N*/ { -/*N*/ return (SfxStyleSheetBasePool*)pChDoc->GetStyleSheetPool(); -/*N*/ } - -/************************************************************************* -|* -|* Vorlage einfuegen (zunaechst nur Dummy) -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Vorlage entfernen (zunaechst nur Dummy) -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* Chart updaten -|* -\************************************************************************/ - - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - -/*N*/ Rectangle SchChartDocShell::GetVisArea(USHORT nAspect) const throw() -/*N*/ { -/*N*/ return SfxInPlaceObject::GetVisArea((nAspect == ASPECT_THUMBNAIL) ? -/*N*/ ASPECT_CONTENT : nAspect); -/*N*/ } - -/************************************************************************* -|* -|* VisArea fuer InPlace setzen -|* -\************************************************************************/ - -/*N*/ void SchChartDocShell::SetVisArea(const Rectangle& rRect) throw() -/*N*/ { -/*N*/ Rectangle aRect(rRect); -/*N*/ aRect.SetPos(Point(0, 0)); -/*N*/ -/*N*/ if( GetCreateMode() == SFX_CREATE_MODE_EMBEDDED ) -/*N*/ { -/*N*/ // sets the modified flag -/*N*/ SfxInPlaceObject::SetVisArea( rRect ); -/*N*/ -/*N*/ // #107434# propagate modified status to changed status at model -/*N*/ if( pChDoc && IsModified() ) -/*N*/ pChDoc->SetChanged( TRUE ); -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ // does not set the modified flag -/*?*/ SvEmbeddedObject::SetVisArea( rRect ); -/*N*/ } -/*N*/ -/*N*/ if( GetCreateMode() != SFX_CREATE_MODE_INTERNAL ) -/*N*/ { -/*N*/ Size aSize; -/*N*/ -/*N*/ if (rRect.IsEmpty ()) -/*N*/ aSize = Size (); -/*N*/ else -/*N*/ aSize = GetVisArea(ASPECT_CONTENT).GetSize(); -/*N*/ -/*N*/ SdrPage* pPage = pChDoc->GetPage(0); -/*N*/ -/*N*/ if(aSize.Width() > 0 && aSize.Height() > 0) -/*N*/ { -/*N*/ if( !pPage || aSize != pPage->GetSize() ) -/*N*/ { -/*N*/ pChDoc->ResizePage(aSize); -/*N*/ -/*N*/ // notify the controller -/*N*/ // note: the controller is only available in in-place -/*N*/ // Broadcast( SchVisAreaChangedHint( rRect ) ); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } - -/************************************************************************* -|* -|* OLE-Status -|* -\************************************************************************/ - -/*N*/ ULONG SchChartDocShell::GetMiscStatus() const throw() -/*N*/ { -/*N*/ // Chart soll stets selber resizen -/*N*/ ULONG nStatus = SfxInPlaceObject::GetMiscStatus() | -/*N*/ SVOBJ_MISCSTATUS_SERVERRESIZE | -/*N*/ SVOBJ_MISCSTATUS_RESIZEONPRINTERCHANGE; -/*N*/ -/*N*/ return nStatus; -/*N*/ } - -/*N*/ void SchChartDocShell::SetModified( BOOL bModified ) throw() -/*N*/ { -/*N*/ if( IsEnableSetModified() ) -/*N*/ { -/*N*/ SfxInPlaceObject::SetModified( bModified ); -/*N*/ DBG_ASSERT( pChDoc, "Invalid ChartModel" ); -/*N*/ if( ! pChDoc->IsLockedBuild()) -/*N*/ Broadcast( SfxSimpleHint( SFX_HINT_DOCCHANGED ) ); -/*N*/ } -/*N*/ } - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/docshell/sch_docshell.cxx b/binfilter/bf_sch/source/ui/docshell/sch_docshell.cxx deleted file mode 100644 index d0116264e..000000000 --- a/binfilter/bf_sch/source/ui/docshell/sch_docshell.cxx +++ /dev/null @@ -1,685 +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. - * - ************************************************************************/ - -#define ITEMID_FONTLIST SID_ATTR_CHAR_FONTLIST -#define ITEMID_NUMBERINFO SID_ATTR_NUMBERFORMAT_INFO -#define ITEMID_COLOR_TABLE SID_COLOR_TABLE -#define ITEMID_GRADIENT_LIST SID_GRADIENT_LIST -#define ITEMID_HATCH_LIST SID_HATCH_LIST -#define ITEMID_BITMAP_LIST SID_BITMAP_LIST -#define ITEMID_DASH_LIST SID_DASH_LIST -#define ITEMID_LINEEND_LIST SID_LINEEND_LIST - -#include <sot/formats.hxx> -#include <bf_sfx2/app.hxx> -#include <bf_svx/svxids.hrc> -#include <comphelper/classids.hxx> -#include <bf_sfx2/printer.hxx> -#include <bf_svtools/ctrltool.hxx> -#include <bf_sfx2/progress.hxx> -#include <bf_svtools/sfxecode.hxx> -#include <bf_svx/drawitem.hxx> -#include <bf_svtools/style.hxx> -#include <bf_svtools/saveopt.hxx> -#include <bf_svtools/pathoptions.hxx> -#include <bf_svx/svxids.hrc> -#include <rtl/logfile.hxx> - -#include "app.hrc" -#include "strings.hrc" -#include "res_bmp.hrc" -#include "schresid.hxx" -#include "schview.hxx" -#include "schmod.hxx" - -#include "ChXChartDocument.hxx" -#include "ChXChartData.hxx" -#include "SchXMLWrapper.hxx" -#include "memchrt.hxx" - -namespace binfilter { - -#define POOL_BUFFER_SIZE (USHORT)32768 -#define BASIC_BUFFER_SIZE (USHORT)8192 -#define DOCUMENT_BUFFER_SIZE (USHORT)32768 - -#define SCH_STYLE_SHEET_NAME String( RTL_CONSTASCII_USTRINGPARAM( "SfxStyleSheets" )) - -#define SCH_DEFAULT_CHART_SIZE_WIDTH 8000 -#define SCH_DEFAULT_CHART_SIZE_HEIGHT 7000 - -using namespace ::com::sun::star::uno; - - -// STATIC DATA ----------------------------------------------------------- - -static const String aStarChartDoc = String( RTL_CONSTASCII_USTRINGPARAM( "StarChartDocument" )); - -//---------------------------------------------------------------------- - -/************************************************************************* -|* -|* SFX-Slotmaps und -Definitionen -|* -\************************************************************************/ - - -namespace -{ - -/** This class sets EnableSetModified( TRUE ) in the CTOR, and - EnableSetModified( FALSE ) in the DTOR. Thus, this can be used to safeld do - changes at the model without resulting in a modification. - */ -class lcl_NoModificationGuard -{ -public: - lcl_NoModificationGuard( SvPersist * pPersist ) : - m_pPersist( pPersist ), - m_bModifyingWasEnabled( pPersist ? pPersist->IsEnableSetModified() : FALSE ) - { - if( m_bModifyingWasEnabled && - m_pPersist ) - m_pPersist->EnableSetModified( FALSE ); - } - - ~lcl_NoModificationGuard() - { - if( m_bModifyingWasEnabled && - m_pPersist ) - m_pPersist->EnableSetModified( TRUE ); - } - -private: - SvPersist * m_pPersist; - BOOL m_bModifyingWasEnabled; -}; -} - -using namespace ::com::sun::star; - -/*N*/ SFX_IMPL_OBJECTFACTORY_DLL(SchChartDocShell, schart, -/*N*/ SvGlobalName(BF_SO3_SCH_CLASSID), Sch) - -/*N*/ TYPEINIT1(SchChartDocShell, SfxObjectShell); - -/************************************************************************* -|* -|* shared construction - used by internal CTOR and InitNew -|* -\************************************************************************/ - -/*N*/ void SchChartDocShell::Construct() throw() -/*N*/ { -/*N*/ DBG_ASSERT( pChDoc, "SchChartDocShell::Construct() called with no valid model!" ); -/*N*/ //Wird fuer die ModelCollection benoetigt -/*N*/ SetPool(&pChDoc->GetItemPool()); -/*N*/ if( pUndoManager ) -/*?*/ delete pUndoManager; -/*N*/ pUndoManager = new SfxUndoManager; -/*N*/ -/*N*/ // Listen, bzw. Tables im ItemSet der DocShell anlegen -/*N*/ UpdateTablePointers(); -/*N*/ -/*N*/ if (pChDoc->GetPageCount() == 0L) -/*N*/ { -/*N*/ // Seite einfuegen -/*N*/ SdrPage* pPage = pChDoc->AllocPage(FALSE); -/*N*/ pPage->SetSize(GetVisArea(ASPECT_CONTENT).GetSize()); -/*N*/ pChDoc->InsertPage(pPage); -/*N*/ } -/*N*/ -/*N*/ // #i2914# remove menu item for 'Save Copy as...' -/*N*/ SvVerbList * pVerbList = new SvVerbList( GetVerbList() ); -/*N*/ -/*N*/ ULONG nCount = pVerbList->Count(); -/*N*/ ULONG i = 0; -/*N*/ for( ; i < nCount; ++i ) -/*N*/ { -/*N*/ // The Id 3 is the verb for 'Save Copy as...' -/*N*/ if( pVerbList->GetObject( i ).GetId() == 3 ) -/*N*/ { -/*N*/ pVerbList->Remove( i ); -/*N*/ break; -/*N*/ } -/*N*/ } -/*N*/ SetVerbList( pVerbList, TRUE ); -/*N*/ -/*N*/ } - -/*N*/ void SchChartDocShell::DataModified( chart::ChartDataChangeEvent& aEvent ) throw() -/*N*/ { -/*N*/ uno::Reference< chart::XChartDocument > xChartDoc( GetModel(), uno::UNO_QUERY ); -/*N*/ if( xChartDoc.is() ) -/*N*/ { -/*N*/ uno::Reference< chart::XChartData > xData = xChartDoc->getData(); -/*N*/ if( xData.is() ) -/*N*/ { -/*N*/ ChXChartData* pChXData = ChXChartData::getImplementation( xData ); -/*N*/ if( pChXData ) -/*N*/ { -/*N*/ pChXData->DataModified( aEvent ); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } - - -/************************************************************************* -|* -|* Default CTOR - this one is called by the factory from SFX -|* -\************************************************************************/ - -/*N*/ SchChartDocShell::SchChartDocShell(SfxObjectCreateMode eMode) throw() : -/*N*/ SfxObjectShell(eMode), -/*N*/ pChDoc(NULL), -/*N*/ pUndoManager(NULL), -/*N*/ pPrinter(NULL), -/*N*/ pFontList(NULL), -/*N*/ bInitNewNoNewDoc(FALSE), -/*N*/ bOwnPrinter(FALSE), -/*N*/ mbClipboardExport( FALSE ) -/*N*/ { -/*N*/ CHART_TRACE( "SchChartDocShell::SchChartDocShell(SfxObjectCreateMode)" ); -/*N*/ SetShell(this); -/*N*/ SetModel( new ChXChartDocument( this )); -/*N*/ } - -/************************************************************************* -|* -|* Destruktor -|* -\************************************************************************/ - -/*N*/ SchChartDocShell::~SchChartDocShell() throw() -/*N*/ { -/*N*/ CHART_TRACE( "SchChartDocShell::~SchChartDocShell" ); -/*N*/ -/*N*/ delete pFontList; -/*N*/ -/*N*/ delete pUndoManager; -/*N*/ -/*N*/ if( pChDoc ) -/*N*/ { -/*N*/ pChDoc->ClearUndoBuffer(); // clear draw undo actions -/*N*/ pChDoc->SetMaxUndoActionCount( 1 ); // don't add further undo actions -/*N*/ } -/*N*/ -/*N*/ if(bOwnPrinter) -/*N*/ delete pPrinter; -/*N*/ -/*N*/ delete pChDoc; -/*N*/ } - -/*N*/ SfxUndoManager* SchChartDocShell::GetUndoManager() throw() -/*N*/ { -/*N*/ return pUndoManager; -/*N*/ } - -/************************************************************************* -|* -|* SfxPrinter ggf. erzeugen und zurueckgeben -|* -\************************************************************************/ -/*N*/ SfxPrinter* SchChartDocShell::GetPrinter() throw() -/*N*/ { -/*N*/ if (!pPrinter) -/*N*/ { -/*N*/ SfxBoolItem aItem(SID_PRINTER_NOTFOUND_WARN, TRUE); -/*N*/ // ItemSet mit speziellem Poolbereich anlegen -/*N*/ SfxItemSet* pSet = new SfxItemSet(GetPool(), -/*N*/ SID_PRINTER_NOTFOUND_WARN, -/*N*/ SID_PRINTER_NOTFOUND_WARN, 0); -/*N*/ pSet->Put(aItem); -/*N*/ pPrinter = new SfxPrinter(pSet); -/*N*/ bOwnPrinter = TRUE; -/*N*/ -/*N*/ MapMode aMapMode = pPrinter->GetMapMode(); -/*N*/ aMapMode.SetMapUnit(MAP_100TH_MM); -/*N*/ pPrinter->SetMapMode(aMapMode); -/*N*/ -/*N*/ if (pChDoc) -/*N*/ { -/*N*/ if (pPrinter != pChDoc->GetRefDevice()) -/*N*/ pChDoc->SetRefDevice(pPrinter); -/*N*/ -/*N*/ if (pPrinter != pChDoc->GetOutliner()->GetRefDevice()) -/*N*/ pChDoc->GetOutliner()->SetRefDevice(pPrinter); -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ return pPrinter; -/*N*/ } - - -/************************************************************************* -|* -|* neuen SfxPrinter setzen -|* -\************************************************************************/ -/*N*/ void SchChartDocShell::SetPrinter( SfxPrinter* pNewPrinter, BOOL bIsDeletedHere ) throw() -/*N*/ { -/*N*/ bool bFirstTimeSettingPrinter = ( pPrinter == NULL ); -/*N*/ -/*N*/ // Printer may only be used, if the MapUnit is correct -/*N*/ if( pNewPrinter && -/*N*/ pNewPrinter->GetMapMode().GetMapUnit() == MAP_100TH_MM ) -/*N*/ { -/*N*/ if (pPrinter && bOwnPrinter && (pPrinter != pNewPrinter)) -/*N*/ { -/*?*/ delete pPrinter; -/*?*/ bOwnPrinter = FALSE; -/*N*/ } -/*N*/ -/*N*/ bOwnPrinter = bIsDeletedHere; -/*N*/ -/*N*/ pPrinter = pNewPrinter; -/*N*/ if(pFontList)delete pFontList; -/*N*/ OutputDevice* pOut = Application::GetDefaultDevice(); // #67730# -/*N*/ pFontList = new FontList( pPrinter, pOut, FALSE ); -/*N*/ PutItem(SvxFontListItem(pFontList)); -/*N*/ } -/*N*/ else -/*?*/ if( bIsDeletedHere ) -/*?*/ delete pNewPrinter; -/*N*/ -/*N*/ OutputDevice * pRefDev = GetRefDevice(); -/*N*/ if( pChDoc && -/*N*/ pRefDev && -/*N*/ pRefDev->GetMapMode().GetMapUnit() == MAP_100TH_MM ) -/*N*/ { -/*N*/ // set ref device at document at its outliner as well -/*N*/ OutputDevice * pLclRefDev = GetRefDevice(); -/*N*/ if( pLclRefDev && pLclRefDev->GetMapMode().GetMapUnit() == MAP_100TH_MM ) -/*N*/ { -/*N*/ pChDoc->SetRefDevice( pLclRefDev ); -/*N*/ pChDoc->GetOutliner()->SetRefDevice( pLclRefDev ); -/*N*/ -/*N*/ // re-render chart with new ref-device -/*N*/ -/*N*/ // call EnableSetModified( FALSE ) temporarily and safely -/*N*/ lcl_NoModificationGuard aNoModGuard( this ); -/*N*/ -/*N*/ if( ! bFirstTimeSettingPrinter && -/*N*/ pChDoc->IsInitialized() ) -/*N*/ { -/*?*/ pChDoc->BuildChart( FALSE ); -/*N*/ } -/*N*/ } -/*N*/ } -/*N*/ } - -/************************************************************************/ -/*N*/ void SchChartDocShell::OnDocumentPrinterChanged(Printer* pNewPrinter) throw() -/*N*/ { -/*N*/ // we have no rtti, thus assert that we have an SfxPrinter -/*N*/ SetPrinter( reinterpret_cast< SfxPrinter * >( pNewPrinter ) ); -/*N*/ } - -/*N*/ OutputDevice * SchChartDocShell::GetRefDevice() -/*N*/ { -/*N*/ if ( GetProtocol().IsInPlaceActive() || -/*N*/ SFX_CREATE_MODE_EMBEDDED == GetCreateMode() ) -/*N*/ { -/*N*/ OutputDevice* pOutDev = GetDocumentRefDev(); -/*N*/ if ( pOutDev ) -/*N*/ return pOutDev; -/*N*/ } -/*N*/ -/*N*/ return GetPrinter(); -/*N*/ } - -/************************************************************************* -|* -|* InitNew, (Dokument wird neu erzeugt): Streams oeffnen -|* -\************************************************************************/ - -/*N*/ BOOL SchChartDocShell::InitNew( SvStorage * pStor ) throw() -/*N*/ { -/*N*/ CHART_TRACE1( "SchChartDocShell::InitNew pModel=%lx", (long)pChDoc ); -/*N*/ -/*N*/ if( SfxInPlaceObject::InitNew( pStor )) -/*N*/ { -/*N*/ if(!pChDoc) -/*N*/ { -/*N*/ pChDoc = new ChartModel( SvtPathOptions().GetPalettePath(), this ); -/*N*/ // set new model at ChXChartDocument -/*N*/ ChXChartDocument* pImpl = ChXChartDocument::getImplementation( GetModel() ); -/*N*/ if( pImpl ) -/*N*/ pImpl->SetChartModel( pChDoc ); -/*N*/ Construct(); -/*N*/ } -/*N*/ if( pChDoc ) -/*N*/ { -/*N*/ if(bInitNewNoNewDoc) -/*?*/ pChDoc->NewOrLoadCompleted(DOC_LOADED); -/*N*/ else -/*N*/ pChDoc->NewOrLoadCompleted(NEW_DOC); -/*N*/ } -/*N*/ -/*N*/ SetVisArea(Rectangle(Point(0, 0), Size( SCH_DEFAULT_CHART_SIZE_WIDTH, SCH_DEFAULT_CHART_SIZE_HEIGHT ))); -/*N*/ -/*N*/ return TRUE; -/*N*/ } -/*N*/ -/*N*/ return FALSE; -/*N*/ } - -/************************************************************************* -|* -|* Load: Pools und Dokument laden -|* -\************************************************************************/ - -/*N*/ BOOL SchChartDocShell::Load(SvStorage * pStor) throw() -/*N*/ { -/*N*/ RTL_LOGFILE_CONTEXT_AUTHOR (context, "sch", "af119097", "::SchChartDocShell::Load"); -/*N*/ -/*N*/ CHART_TRACE( "SchChartDocShell::Load" ); -/*N*/ -/*N*/ BOOL bRet = FALSE; -/*N*/ -/*N*/ pChDoc = new ChartModel( SvtPathOptions().GetPalettePath(), this ); -/*N*/ SetPool( &pChDoc->GetItemPool()); -/*N*/ ChXChartDocument* pImpl = ChXChartDocument::getImplementation( GetModel() ); -/*N*/ if( pImpl ) -/*?*/ pImpl->SetChartModel( pChDoc ); -/*N*/ -/*N*/ sal_Bool bIsXML = pStor->GetVersion() >= SOFFICE_FILEFORMAT_60; -/*N*/ -/*N*/ if( bIsXML ) -/*N*/ { -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ ULONG nStorFmt = pStor->GetFormat(); -/*N*/ RTL_LOGFILE_CONTEXT_TRACE1 (context, "binary format %lu", nStorFmt); -/*N*/ -/*N*/ // do some initializations -/*N*/ Construct(); -/*N*/ -/*N*/ pProgress = NULL; -/*N*/ -/*N*/ if ( nStorFmt == SOT_FORMATSTR_ID_STARCHART_50 || -/*N*/ nStorFmt == SOT_FORMATSTR_ID_STARCHART_40 || -/*N*/ nStorFmt == SOT_FORMATSTR_ID_STARCHART || -/*N*/ nStorFmt == SOT_FORMATSTR_ID_STARCHARTDOCUMENT_50 -/*N*/ ) -/*N*/ { -/*N*/ if( GetCreateMode() != SFX_CREATE_MODE_EMBEDDED ) -/*N*/ pProgress = new SfxProgress( this, String( SchResId( STR_OPEN_DOCUMENT )), 100 ); -/*N*/ -/*N*/ if( pProgress ) -/*N*/ pProgress->SetState( 0, 100 ); -/*N*/ -/*N*/ bRet = SfxInPlaceObject::Load( pStor ); -/*N*/ -/*N*/ if( pProgress ) -/*N*/ pProgress->SetState( 30 ); -/*N*/ -/*N*/ if( bRet ) -/*N*/ { -/*N*/ SetWaitCursor( TRUE ); -/*N*/ -/*N*/ // Pool und StyleSheet Pool laden -/*N*/ String aStyleSheetsStr( SCH_STYLE_SHEET_NAME ); -/*N*/ -/*N*/ if (pStor->IsStream(aStyleSheetsStr)) -/*N*/ { -/*N*/ ULONG nError; -/*N*/ SvStorageStreamRef rPoolStream = pStor->OpenStream( aStyleSheetsStr ); -/*N*/ rPoolStream->SetVersion( pStor->GetVersion()); -/*N*/ if( ! rPoolStream->GetError()) -/*N*/ { -/*N*/ rPoolStream->SetBufferSize( POOL_BUFFER_SIZE ); -/*N*/ nError = rPoolStream->GetError(); -/*N*/ GetPool().SetFileFormatVersion( (USHORT)pStor->GetVersion ()); -/*N*/ GetPool().Load( *rPoolStream ); -/*N*/ nError = rPoolStream->GetError(); -/*N*/ if( nError ) -/*N*/ { -/*?*/ OSL_TRACE( "Errorcode 0x%x loading Pool", nError ); -/*?*/ rPoolStream->ResetError(); -/*?*/ SetError( ERRCODE_WARNING_MASK | nError ); -/*N*/ } -/*N*/ GetStyleSheetPool()->Load( *rPoolStream ); -/*N*/ nError = rPoolStream->GetError(); -/*N*/ if( nError ) -/*N*/ { -/*?*/ OSL_TRACE( "Errorcode 0x%x loading StyleSheet-Pool", nError ); -/*?*/ rPoolStream->ResetError(); -/*?*/ SetError( ERRCODE_WARNING_MASK | nError ); -/*N*/ } -/*N*/ rPoolStream->SetBufferSize( 0 ); -/*N*/ } -/*N*/ else bRet = FALSE; -/*N*/ } -/*N*/ else bRet = FALSE; -/*N*/ -/*N*/ if( pProgress ) -/*N*/ pProgress->SetState( 70 ); -/*N*/ -/*N*/ // wenn gewuenscht, das Dokument laden -/*N*/ if (bRet && (GetCreateMode() != SFX_CREATE_MODE_ORGANIZER)) -/*N*/ { -/*N*/ // Model der Drawing Engine laden -/*N*/ if (pStor->IsStream( aStarChartDoc )) -/*N*/ { -/*N*/ SvStorageStreamRef rDocumentStream = pStor->OpenStream( aStarChartDoc ); -/*N*/ rDocumentStream->SetVersion( pStor->GetVersion()); -/*N*/ GetPool().SetFileFormatVersion ( (USHORT)pStor->GetVersion()); -/*N*/ if( ! rDocumentStream->GetError()) -/*N*/ { -/*N*/ rDocumentStream->SetBufferSize( DOCUMENT_BUFFER_SIZE ); -/*N*/ rDocumentStream->SetCryptMaskKey( pStor->GetKey()); // set password -/*N*/ -/*N*/ // read ChartModel -/*N*/ *rDocumentStream >> *pChDoc; -/*N*/ -/*N*/ bRet = ( rDocumentStream->GetError() == 0 ); -/*N*/ -/*N*/ // garbled with password? -/*N*/ if( ! bRet ) -/*N*/ { -/*?*/ if( pStor->GetKey().Len() == 0 ) -/*?*/ { -/*?*/ // no password set => cannot load -/*?*/ SetError( ERRCODE_SFX_DOLOADFAILED ); -/*?*/ } -/*?*/ else -/*?*/ { -/*?*/ // password was set, but obviously wrong -/*?*/ SetError( ERRCODE_SFX_WRONGPASSWORD ); -/*?*/ } -/*N*/ } -/*N*/ -/*N*/ rDocumentStream->SetBufferSize( 0 ); -/*N*/ } -/*N*/ else bRet = FALSE; -/*N*/ } -/*N*/ else bRet = FALSE; -/*N*/ } -/*N*/ -/*N*/ if( pProgress ) -/*N*/ pProgress->SetState( 100 ); -/*N*/ -/*N*/ // (noch) keine ungesicherten Aenderungen im Model -/*N*/ if (bRet) -/*N*/ { - - // #i39672# convert range strings to new XML compatible format - - // Note: Formerly, the parent storage was queried to - // find out whether it is a Writer or a Calc. This - // worked, because it was done in SaveAs(). It is - // better to do the conversion right after loading, - // however here we have no parent. So both conversions - // are called. This works, because the things written - // to the SomeData strings is so different, that both - // routines won't convert the data for the wrong - // format. (Note: only the conversion from old to new, - // i.e. the call with parameter TRUE, work like this, as - // the new format is the same for both) - - // try Writer - bool bConverted = - pChDoc->GetChartData()->ConvertChartRangeForWriter( TRUE ); - - // try Calc - if( ! bConverted ) - { - SchMemChart* pData = pChDoc->GetChartData(); - if( pData && - pData->SomeData3().Len() > 0 && - (pData->GetChartRange().maRanges.size() == 0) ) - bConverted = pData->ConvertChartRangeForCalc( TRUE ); - } - -/*N*/ pChDoc->SetChanged( FALSE ); -/*N*/ pChDoc->NewOrLoadCompleted( DOC_LOADED ); -/*N*/ } -/*N*/ -/*N*/ SetWaitCursor( FALSE ); -/*N*/ } -/*N*/ -/*N*/ if( pProgress ) -/*N*/ pProgress->SetState( 100 ); -/*N*/ -/*N*/ if (bRet) -/*N*/ { -/*N*/ UpdateTablePointers(); -/*N*/ FinishedLoading( SFX_LOADED_ALL ); -/*N*/ } -/*N*/ } -/*N*/ else -/*N*/ { -/*?*/ pStor->SetError( SVSTREAM_WRONGVERSION ); -/*N*/ } -/*N*/ -/*N*/ if( pProgress ) -/*N*/ { -/*N*/ delete pProgress; -/*N*/ pProgress = NULL; -/*N*/ } -/*N*/ } -/*N*/ -/*N*/ return bRet; -/*N*/ } - -/************************************************************************* -|* -|* Tabellenzeiger auffrischen -|* -\************************************************************************/ -/*N*/ void SchChartDocShell::UpdateTablePointers() throw() -/*N*/ { -/*N*/ PutItem(SvxColorTableItem(pChDoc->GetColorTable())); -/*N*/ PutItem(SvxGradientListItem(pChDoc->GetGradientList())); -/*N*/ PutItem(SvxHatchListItem(pChDoc->GetHatchList())); -/*N*/ PutItem(SvxBitmapListItem(pChDoc->GetBitmapList())); -/*N*/ PutItem(SvxDashListItem(pChDoc->GetDashList())); -/*N*/ PutItem(SvxLineEndListItem(pChDoc->GetLineEndList())); -/*N*/ -/*N*/ if(pFontList)delete pFontList; -/*N*/ -/*N*/ if ( GetCreateMode() == SFX_CREATE_MODE_EMBEDDED && !pPrinter ) -/*N*/ { -/*N*/ // OLE-Objekt: kein Printer anlegen -/*?*/ pFontList = new FontList( Application::GetDefaultDevice(), NULL, FALSE ); // #67730# -/*N*/ } -/*N*/ else -/*N*/ { -/*N*/ pFontList = new FontList(GetPrinter(), NULL, FALSE); -/*N*/ } -/*N*/ -/*N*/ SvxFontListItem aFontListItem(pFontList); -/*N*/ PutItem(aFontListItem); -/*N*/ -/*N*/ // PutItem(SvxNumberInfoItem(pChDoc->GetNumFormatter())); -/*N*/ } - -/************************************************************************* -|* -|* FillClass -|* -\************************************************************************/ - -/*N*/ void SchChartDocShell::FillClass(SvGlobalName* pClassName, -/*N*/ ULONG* pFormat, -/*N*/ String* pAppName, -/*N*/ String* pFullTypeName, -/*N*/ String* pShortTypeName, -/*N*/ long nFileFormat) const throw() -/*N*/ { -/*N*/ SfxInPlaceObject::FillClass(pClassName, pFormat, pAppName, pFullTypeName, -/*N*/ pShortTypeName, nFileFormat); -/*N*/ -/*N*/ if (nFileFormat == SOFFICE_FILEFORMAT_31) -/*N*/ { -/*N*/ *pClassName = SvGlobalName(BF_SO3_SCH_CLASSID_30); -/*N*/ *pFormat = SOT_FORMATSTR_ID_STARCHART; -/*N*/ (*pAppName).AssignAscii( RTL_CONSTASCII_STRINGPARAM( "Schart 3.1" )); -/*N*/ *pFullTypeName = String(SchResId(STR_CHART_DOCUMENT_FULLTYPE_31)); -/*N*/ *pShortTypeName = String(SchResId(STR_CHART_DOCUMENT)); -/*N*/ } -/*N*/ else if (nFileFormat == SOFFICE_FILEFORMAT_40) -/*N*/ { -/*N*/ *pClassName = SvGlobalName(BF_SO3_SCH_CLASSID_40); -/*N*/ *pFormat = SOT_FORMATSTR_ID_STARCHART_40; -/*N*/ *pFullTypeName = String(SchResId(STR_CHART_DOCUMENT_FULLTYPE_40)); -/*N*/ *pShortTypeName = String(SchResId(STR_CHART_DOCUMENT)); -/*N*/ } -/*N*/ else if (nFileFormat == SOFFICE_FILEFORMAT_50) -/*N*/ { -/*N*/ *pClassName = SvGlobalName(BF_SO3_SCH_CLASSID_50); - - // for binfilter, we need the FormatIDs to be set. Not setting them - // has always been an error (!) - *pFormat = SOT_FORMATSTR_ID_STARCHART_50; - -/*N*/ *pFullTypeName = String(SchResId(STR_CHART_DOCUMENT_FULLTYPE_50)); -/*N*/ *pShortTypeName = String(SchResId(STR_CHART_DOCUMENT)); -/*N*/ } -/*N*/ else if (nFileFormat == SOFFICE_FILEFORMAT_60) -/*N*/ { -/*N*/ *pClassName = SvGlobalName(BF_SO3_SCH_CLASSID_60); - - // for binfilter, we need the FormatIDs to be set. Not setting them - // has always been an error (!) - *pFormat = SOT_FORMATSTR_ID_STARCHART_60; - -/*N*/ *pFullTypeName = String(SchResId(STR_CHART_DOCUMENT_FULLTYPE_60)); -/*N*/ *pShortTypeName = String(SchResId(STR_CHART_DOCUMENT)); -/*N*/ } -/*N*/ } - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/ChXChartData.hxx b/binfilter/bf_sch/source/ui/inc/ChXChartData.hxx deleted file mode 100644 index 586ccb1c4..000000000 --- a/binfilter/bf_sch/source/ui/inc/ChXChartData.hxx +++ /dev/null @@ -1,167 +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. - * - ************************************************************************/ - -#ifndef _CHART_DATA_HXX -#define _CHART_DATA_HXX - -#include <cppuhelper/implbase4.hxx> -// header for OInterfaceContainerHelper -#include <cppuhelper/interfacecontainer.hxx> - -#include <com/sun/star/chart/XChartDataArray.hpp> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/lang/XUnoTunnel.hpp> -#include <com/sun/star/lang/XComponent.hpp> -namespace binfilter { - -class ChartModel; - -// ---------------------------------------- -// ChXChartData -// ---------------------------------------- - -class ChXChartData : public cppu::WeakImplHelper4< - ::com::sun::star::chart::XChartData, - ::com::sun::star::lang::XServiceInfo, - ::com::sun::star::lang::XEventListener, - ::com::sun::star::lang::XUnoTunnel > -{ -private: - ::osl::Mutex maMutex; - cppu::OInterfaceContainerHelper maListeners; - -protected: - ChartModel* mpModel; - -public: - // the model is used for listening for the 'death' of the ChartModel - ChXChartData( ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > xModel, - ChartModel* pModel ); - virtual ~ChXChartData(); - - ::osl::Mutex& GetMutex() { return maMutex; } - - virtual void DataModified( ::com::sun::star::chart::ChartDataChangeEvent& ); - - static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); - static ChXChartData* getImplementation( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > ) throw(); - - // XChartData - virtual void SAL_CALL addChartDataChangeEventListener( - const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XChartDataChangeEventListener >& aListener ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removeChartDataChangeEventListener( - const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XChartDataChangeEventListener >& aListener ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual double SAL_CALL getNotANumber() throw( ::com::sun::star::uno::RuntimeException ); - virtual sal_Bool SAL_CALL isNotANumber( double nNumber ) throw( ::com::sun::star::uno::RuntimeException ); - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL getImplementationName() - throw( ::com::sun::star::uno::RuntimeException ); - virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() - throw( ::com::sun::star::uno::RuntimeException ); - - // XUnoTunnel - virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) - throw( ::com::sun::star::uno::RuntimeException ); - - // XEventListener listens to disposing of XModel - virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) - throw( ::com::sun::star::uno::RuntimeException ); -}; - - -// ---------------------------------------- -// ChXChartDataArray -// ---------------------------------------- - -class ChXChartDataArray : - public ChXChartData, - public ::com::sun::star::chart::XChartDataArray -{ -private: - static ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > maTypeSequence; - -public: - // the model is used for listening for the 'death' of the ChartModel - ChXChartDataArray( ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > xModel, - ChartModel* pModel ); - virtual ~ChXChartDataArray(); - - // XInterface - virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL acquire() throw(); - virtual void SAL_CALL release() throw(); - - // XTypeProvider - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() - throw( ::com::sun::star::uno::RuntimeException ); - - // XChartDataArray - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > > SAL_CALL getData() - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setData( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& aData ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getRowDescriptions() - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setRowDescriptions( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRowDescriptions ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getColumnDescriptions() - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setColumnDescriptions( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aColumnDescriptions ) - throw( ::com::sun::star::uno::RuntimeException ); - - // XChartData ( ::XChartDataArray ) - virtual void SAL_CALL addChartDataChangeEventListener( - const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XChartDataChangeEventListener >& aListener ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removeChartDataChangeEventListener( - const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XChartDataChangeEventListener >& aListener ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual double SAL_CALL getNotANumber() throw( ::com::sun::star::uno::RuntimeException ); - virtual sal_Bool SAL_CALL isNotANumber( double nNumber ) throw( ::com::sun::star::uno::RuntimeException ); - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL getImplementationName() - throw( ::com::sun::star::uno::RuntimeException ); - virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() - throw( ::com::sun::star::uno::RuntimeException ); -}; - -} //namespace binfilter -#endif // _CHART_DATA_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/ChXChartDataChangeEventListener.hxx b/binfilter/bf_sch/source/ui/inc/ChXChartDataChangeEventListener.hxx deleted file mode 100644 index a07d44ec1..000000000 --- a/binfilter/bf_sch/source/ui/inc/ChXChartDataChangeEventListener.hxx +++ /dev/null @@ -1,72 +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. - * - ************************************************************************/ - -#ifndef _CHXCHARTDATACHANGEEVENTLISTENER_HXX -#define _CHXCHARTDATACHANGEEVENTLISTENER_HXX - -#include <cppuhelper/implbase1.hxx> // helper for implementations - -#include <com/sun/star/chart/XChartDataChangeEventListener.hpp> -namespace binfilter { - -class ChXChartDocument; - -class ChXChartDataChangeEventListener : - public cppu::WeakImplHelper1< ::com::sun::star::chart::XChartDataChangeEventListener > -{ -private: - ChXChartDocument *mpXDoc; - -public: - ChXChartDataChangeEventListener(); - virtual ~ChXChartDataChangeEventListener(){}; - - void Reset() throw(); - void SetOwner( ChXChartDocument* pXDoc ) throw(); - - // XChartDataChangeEventListener - virtual void SAL_CALL chartDataChanged( const ::com::sun::star::chart::ChartDataChangeEvent& aEvent ) - throw( ::com::sun::star::uno::RuntimeException ); - - // XEventListener - virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) - throw( ::com::sun::star::uno::RuntimeException ); - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL getImplementationName() - throw( ::com::sun::star::uno::RuntimeException ); - virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() - throw( ::com::sun::star::uno::RuntimeException ); -}; - -} //namespace binfilter -#endif // _CHXCHARTDATACHANGEEVENTLISTENER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/ChXChartDrawPage.hxx b/binfilter/bf_sch/source/ui/inc/ChXChartDrawPage.hxx deleted file mode 100644 index e7147e03e..000000000 --- a/binfilter/bf_sch/source/ui/inc/ChXChartDrawPage.hxx +++ /dev/null @@ -1,105 +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. - * - ************************************************************************/ -#ifndef _CHXCHARTDRAWPAGE_HXX_ -#define _CHXCHARTDRAWPAGE_HXX_ - -#include <bf_svx/unopage.hxx> -#include <com/sun/star/beans/XPropertySet.hpp> - -// header for SvxItemPropertySet -#include <bf_svx/unoprov.hxx> -namespace binfilter { - -class ChartModel; - -class ChXChartDrawPage : - public ::com::sun::star::beans::XPropertySet, - public SvxDrawPage -{ -private: - ChartModel* mpModel; - SvxItemPropertySet maPropSet; - - ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > maTypeSequence; - -public: - ChXChartDrawPage( ChartModel* pModel ); - virtual ~ChXChartDrawPage() throw(); - - // XInterface - virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL acquire() throw(); - virtual void SAL_CALL release() throw(); - - // XTypeProvider - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() - throw( ::com::sun::star::uno::RuntimeException ); - - // XPropertySet - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Any& aValue ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::beans::PropertyVetoException, - ::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); -}; - -} //namespace binfilter -#endif // _CHXCHARTDRAWPAGE_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/ChXChartObject.hxx b/binfilter/bf_sch/source/ui/inc/ChXChartObject.hxx deleted file mode 100644 index 8ecb5d5dc..000000000 --- a/binfilter/bf_sch/source/ui/inc/ChXChartObject.hxx +++ /dev/null @@ -1,230 +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. - * - ************************************************************************/ - -#ifndef _CHXCHART_OBJECT_HXX -#define _CHXCHART_OBJECT_HXX - -#include <cppuhelper/implbase8.hxx> - -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/beans/XMultiPropertySet.hpp> -#include <com/sun/star/beans/XPropertyState.hpp> -#include <com/sun/star/beans/XMultiPropertyStates.hpp> -#include <com/sun/star/drawing/XShape.hpp> -#include <com/sun/star/lang/XComponent.hpp> -#include <com/sun/star/lang/XUnoTunnel.hpp> -#include <cppuhelper/interfacecontainer.hxx> - -// header for SvxServiceInfoHelper, SvxItemPropertySet -#include <bf_svx/unoprov.hxx> -namespace binfilter { - -class ChartModel; -class SdrObject; - -class ChXChartObject : public cppu::WeakImplHelper8< - ::com::sun::star::beans::XPropertySet, - ::com::sun::star::beans::XMultiPropertySet, - ::com::sun::star::beans::XPropertyState, - ::com::sun::star::beans::XMultiPropertyStates, - ::com::sun::star::drawing::XShape, - ::com::sun::star::lang::XComponent, - ::com::sun::star::lang::XServiceInfo, - ::com::sun::star::lang::XUnoTunnel > -{ -protected: - SvxItemPropertySet maPropSet; - ChartModel* mpModel; - long mnWhichId; - long mnIndex; // typically a data row index - -public: - ChXChartObject( long _MapId, ChartModel* _Model, long _WhichId, long _Index = -1 ); - virtual ~ChXChartObject(); - - virtual long GetId() const; - SdrObject* GetCurrentSdrObject() const; - static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); - - // XPropertySet - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Any& aValue ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::beans::PropertyVetoException, - ::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - - // XMultiPropertySet - virtual void SAL_CALL setPropertyValues ( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, - const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aValues ) - throw ( ::com::sun::star::beans::PropertyVetoException, - ::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > SAL_CALL getPropertyValues ( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) - throw ( ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL addPropertiesChangeListener ( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) - throw ( ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL removePropertiesChangeListener ( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) - throw ( ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL firePropertiesChangeEvent ( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) - throw ( ::com::sun::star::uno::RuntimeException); - - - // XPropertyState - virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( const ::rtl::OUString& PropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL getPropertyStates( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( const ::rtl::OUString& aPropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - - // XMultiPropertyStates -/* virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL getPropertyStates ( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyName ) - throw ( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException); -*/ virtual void SAL_CALL setAllPropertiesToDefault (void) - throw ( ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setPropertiesToDefault ( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) - throw ( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > SAL_CALL getPropertyDefaults ( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) - throw ( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException); - - // XShape - virtual ::com::sun::star::awt::Point SAL_CALL getPosition() throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setPosition( const ::com::sun::star::awt::Point& aPosition ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::awt::Size SAL_CALL getSize() throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setSize( const ::com::sun::star::awt::Size& aSize ) - throw( ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::uno::RuntimeException ); - - // XComponent - virtual void SAL_CALL dispose() throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) - throw( ::com::sun::star::uno::RuntimeException ); - - // XServiceInfo - virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) - throw( ::com::sun::star::uno::RuntimeException ); - - // XUnoTunnel - virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) - throw( ::com::sun::star::uno::RuntimeException ); - - -protected: - /** @descr In an array of SfxItemPropertyMap entries advance from the position pointed to - by pProperty to that property that has the name given by pPropertyName. If the - property list does not contain such an entry an UnknownPropertyException is thrown. - @param pProperty Pointer into an array of properties. It is modified such that after - the methods returns it points to a property with the same name as pPropertyName. - @param pPropertyName Name of the property that is searched for. - */ - void AdvanceToName (const SfxItemPropertyMap *& pProperty, - const ::rtl::OUString * pPropertyName); - - /** @descr Creates an item set and fill it with the models default values. - If derived classes need other than the default which ranges, the have to overload - this method. - @return Returns a pointer to an item set. The caller is responsible for deleting it. - */ - virtual SfxItemSet * CreateItemSet (void); - - /** @descr Retrieve the value of the property specified by rProperty from the item set given - by rAttributes and put it into rValue. - @param rProperty Specifies the property in question. - @param rValue The property's value is stored into this argument. - @param rAttributes The item set that contains all relevant items from which the property - value is extracted. - */ - virtual void GetPropertyValue (const SfxItemPropertyMap & rProperty, - ::com::sun::star::uno::Any & rValue, - SfxItemSet & rAttributes); - -private: - /// List of listeners for the XComponent interface. - ::cppu::OInterfaceContainerHelper maListenerList; - - /// Mutex used by the interface container. - ::osl::Mutex maMutex; -}; - -} //namespace binfilter -#endif // _CHXCHART_OBJECT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/ChXDataPoint.hxx b/binfilter/bf_sch/source/ui/inc/ChXDataPoint.hxx deleted file mode 100644 index 85bb2232d..000000000 --- a/binfilter/bf_sch/source/ui/inc/ChXDataPoint.hxx +++ /dev/null @@ -1,144 +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. - * - ************************************************************************/ - -#ifndef _SCH_DATA_POINT_HXX -#define _SCH_DATA_POINT_HXX - -#include <cppuhelper/implbase5.hxx> - -#include <com/sun/star/drawing/XShapeDescriptor.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/beans/XPropertyState.hpp> -#include <com/sun/star/lang/XUnoTunnel.hpp> - -// header for SvxItemPropertySet -#include <bf_svx/unoprov.hxx> -namespace binfilter { - -class ChartModel; - -class ChXDataPoint : public cppu::WeakImplHelper5< - ::com::sun::star::beans::XPropertySet, - ::com::sun::star::beans::XPropertyState, - ::com::sun::star::drawing::XShapeDescriptor, - ::com::sun::star::lang::XServiceInfo, - ::com::sun::star::lang::XUnoTunnel > -{ -private: - SvxItemPropertySet maPropSet; - ChartModel* mpModel; - - sal_Int32 mnCol, mnRow; - - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > getStatisticsProperties( const sal_Int32 nId ) const; - void AddDataPointAttr( SfxItemSet& rOutAttributes ); - -public: - ChXDataPoint( sal_Int32 _Col, sal_Int32 _Row, ChartModel* _Model = NULL ); - virtual ~ChXDataPoint(); - - sal_Int32 GetCol() const { return mnCol; } - sal_Int32 GetRow() const { return mnRow; } - - static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); - - // XTypeProvider - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() - throw( ::com::sun::star::uno::RuntimeException ); - - // XPropertySet - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Any& aValue ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::beans::PropertyVetoException, - ::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - - // XPropertyState - virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( const ::rtl::OUString& PropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL getPropertyStates( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( const ::rtl::OUString& aPropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - - // XShapeDescriptor - virtual ::rtl::OUString SAL_CALL getShapeType() throw( ::com::sun::star::uno::RuntimeException ); - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL getImplementationName() - throw( ::com::sun::star::uno::RuntimeException ); - virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() - throw( ::com::sun::star::uno::RuntimeException ); - - // XUnoTunnel - virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) - throw( ::com::sun::star::uno::RuntimeException ); -}; - -} //namespace binfilter -#endif // _SCH_DATA_POINT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/ChXDataRow.hxx b/binfilter/bf_sch/source/ui/inc/ChXDataRow.hxx deleted file mode 100644 index d31fa7a0b..000000000 --- a/binfilter/bf_sch/source/ui/inc/ChXDataRow.hxx +++ /dev/null @@ -1,138 +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. - * - ************************************************************************/ - -#ifndef _SCH_DATA_ROW_HXX -#define _SCH_DATA_ROW_HXX - -#include <cppuhelper/implbase5.hxx> - -#include <com/sun/star/drawing/XShapeDescriptor.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/beans/XPropertyState.hpp> -#include <com/sun/star/lang/XUnoTunnel.hpp> - -// header for SvxItemPropertySet -#include <bf_svx/unoprov.hxx> -namespace binfilter { - -class ChartModel; - -class ChXDataRow : public cppu::WeakImplHelper5< - ::com::sun::star::beans::XPropertySet, - ::com::sun::star::beans::XPropertyState, - ::com::sun::star::drawing::XShapeDescriptor, - ::com::sun::star::lang::XServiceInfo, - ::com::sun::star::lang::XUnoTunnel > -{ -private: - SvxItemPropertySet maPropSet; - ChartModel* mpModel; - - sal_Int32 mnRow; - - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > getStatisticsProperties( sal_Int32 nId ) const; - -public: - ChXDataRow( sal_Int32 _Row, ChartModel* _Model = NULL ); - virtual ~ChXDataRow(); - - sal_Int32 GetRow() const { return mnRow; } - - static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); - - // XPropertySet - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Any& aValue ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::beans::PropertyVetoException, - ::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - - // XPropertyState - virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( const ::rtl::OUString& PropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL getPropertyStates( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( const ::rtl::OUString& aPropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - - // XShapeDescriptor - virtual ::rtl::OUString SAL_CALL getShapeType() throw( ::com::sun::star::uno::RuntimeException ); - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL getImplementationName() - throw( ::com::sun::star::uno::RuntimeException ); - virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() - throw( ::com::sun::star::uno::RuntimeException ); - - // XUnoTunnel - virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) - throw( ::com::sun::star::uno::RuntimeException ); -}; - -} //namespace binfilter -#endif // _SCH_DATA_ROW_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/ChXDiagram.hxx b/binfilter/bf_sch/source/ui/inc/ChXDiagram.hxx deleted file mode 100644 index b24bde785..000000000 --- a/binfilter/bf_sch/source/ui/inc/ChXDiagram.hxx +++ /dev/null @@ -1,474 +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. - * - ************************************************************************/ - -#ifndef _CHART_DIAGRAM_HXX -#define _CHART_DIAGRAM_HXX - -#include <cppuhelper/implbase.hxx> - -#include <com/sun/star/chart/XDiagram.hpp> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/chart/XTwoAxisXSupplier.hpp> -#include <com/sun/star/chart/XTwoAxisYSupplier.hpp> -#include <com/sun/star/chart/XAxisZSupplier.hpp> -#include <com/sun/star/chart/XStatisticDisplay.hpp> -#include <com/sun/star/chart/X3DDisplay.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/beans/XMultiPropertySet.hpp> -#include <com/sun/star/beans/XPropertyState.hpp> -#include <com/sun/star/beans/XMultiPropertyStates.hpp> -#include <com/sun/star/lang/XUnoTunnel.hpp> -#include <com/sun/star/lang/IndexOutOfBoundsException.hpp> -#include <com/sun/star/lang/XComponent.hpp> -#include <com/sun/star/lang/XEventListener.hpp> -#include <cppuhelper/interfacecontainer.hxx> - -// header for class SvxItemPropertySet -#include <bf_svx/unoipset.hxx> -namespace binfilter { - -class ChartModel; -class SchChartDocShell; -} //namespace binfilter -// GrP gcc 2.95.2 on Mac OS X chokes on this huge template class. -// Expand the template by hand. -//#if ! (defined(MACOSX) && ( __GNUC__ < 3 )) -#if 1 - -// Construct a WeakImplHelper14 with the emphasis on 14. -// Fourteen interfaces are two to many to use the newer template definition -// of WeakImplHelper. -#define __IFC14 Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10,\ - Ifc11, Ifc12, Ifc13, Ifc14 -#define __CLASS_IFC14 class Ifc1, class Ifc2, class Ifc3, class Ifc4, \ - class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9, class Ifc10,\ - class Ifc11, class Ifc12, class Ifc13, class Ifc14 -#define __PUBLIC_IFC14 public Ifc1, public Ifc2, public Ifc3, public Ifc4,\ - public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9,\ - public Ifc10, public Ifc11, public Ifc12, public Ifc13, public Ifc14 - -__DEF_IMPLHELPER_PRE(14) - __IFC_WRITEOFFSET(1) __IFC_WRITEOFFSET(2) __IFC_WRITEOFFSET(3)\ - __IFC_WRITEOFFSET(4) __IFC_WRITEOFFSET(5) __IFC_WRITEOFFSET(6)\ - __IFC_WRITEOFFSET(7) __IFC_WRITEOFFSET(8) __IFC_WRITEOFFSET(9)\ - __IFC_WRITEOFFSET(10) __IFC_WRITEOFFSET(11) __IFC_WRITEOFFSET(12)\ - __IFC_WRITEOFFSET(13) __IFC_WRITEOFFSET(14) -__DEF_IMPLHELPER_POST(14) - -// !defined(MACOSX) -#else -// defined(MACOSX) && (__GNUC__ < 3 ) - -namespace cppu { - struct ClassData14 : public ClassDataBase - { - Type_Offset arType2Offset[ 14 ]; - ClassData14( ) SAL_THROW( () ) - : ClassDataBase( 14 ) - {} - }; - - class SAL_NO_VTABLE ImplHelperBase14 - : public ::com::sun::star::lang::XTypeProvider - , public ::com::sun::star::chart::XDiagram, - public ::com::sun::star::chart::XAxisZSupplier, - public ::com::sun::star::chart::XTwoAxisXSupplier, - public ::com::sun::star::chart::XTwoAxisYSupplier, - public ::com::sun::star::chart::XStatisticDisplay, - public ::com::sun::star::chart::X3DDisplay, - public ::com::sun::star::beans::XPropertySet, - public ::com::sun::star::beans::XMultiPropertySet, - public ::com::sun::star::beans::XPropertyState, - public ::com::sun::star::beans::XMultiPropertyStates, - public ::com::sun::star::lang::XServiceInfo, - public ::com::sun::star::lang::XUnoTunnel, - public ::com::sun::star::lang::XComponent, - public ::com::sun::star::lang::XEventListener - { - protected: - ClassData & SAL_CALL getClassData( ClassDataBase & s_aCD ) SAL_THROW( () ) - { - ClassData & rCD = * static_cast< ClassData * >( &s_aCD ); - if (! rCD.bOffsetsInit) - { - ::osl::MutexGuard aGuard( getImplHelperInitMutex() ); - if (! rCD.bOffsetsInit) - { - char * pBase = (char *)this; - rCD.writeTypeOffset( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XDiagram > *)0 ), - (char *)(::com::sun::star::chart::XDiagram *)this - pBase ); - rCD.writeTypeOffset( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XAxisZSupplier > *)0 ), - (char *)(::com::sun::star::chart::XAxisZSupplier *)this - pBase ); - rCD.writeTypeOffset( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XTwoAxisXSupplier > *)0 ), - (char *)(::com::sun::star::chart::XTwoAxisXSupplier *)this - pBase ); - rCD.writeTypeOffset( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XTwoAxisYSupplier > *)0 ), - (char *)(::com::sun::star::chart::XTwoAxisYSupplier *)this - pBase ); - rCD.writeTypeOffset( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::chart::XStatisticDisplay > *)0 ), - (char *)(::com::sun::star::chart::XStatisticDisplay *)this - pBase ); - rCD.writeTypeOffset( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::chart::X3DDisplay > *)0 ), - (char *)(::com::sun::star::chart::X3DDisplay *)this - pBase ); - rCD.writeTypeOffset( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > *)0 ), - (char *)(::com::sun::star::beans::XPropertySet *)this - pBase ); - rCD.writeTypeOffset( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XMultiPropertySet > *)0 ), - (char *)(::com::sun::star::beans::XMultiPropertySet *)this - pBase ); - rCD.writeTypeOffset( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyState > *)0 ), - (char *)(::com::sun::star::beans::XPropertyState *)this - pBase ); - rCD.writeTypeOffset( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XMultiPropertyStates > *)0 ), - (char *)(::com::sun::star::beans::XMultiPropertyStates *)this - pBase ); - rCD.writeTypeOffset( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XServiceInfo > *)0 ), - (char *)(::com::sun::star::lang::XServiceInfo *)this - pBase ); - rCD.writeTypeOffset( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XUnoTunnel > *)0 ), - (char *)(::com::sun::star::lang::XUnoTunnel *)this - pBase ); - rCD.writeTypeOffset( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > *)0 ), - (char *)(::com::sun::star::lang::XComponent *)this - pBase ); - rCD.writeTypeOffset( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener > *)0 ), - (char *)(::com::sun::star::lang::XEventListener *)this - pBase ); - rCD.bOffsetsInit = sal_True; - } - } - return rCD; - } - }; - - - class SAL_NO_VTABLE ImplHelper14 - : public ImplHelperBase14 - { - static ClassData14 s_aCD; - public: - virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw (::com::sun::star::uno::RuntimeException) - { return getClassData( s_aCD ).query( rType, (ImplHelperBase14 *)this ); } - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException) - { return getClassData( s_aCD ).getTypes(); } - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException) - { return getClassData( s_aCD ).getImplementationId(); } - }; - - - class SAL_NO_VTABLE WeakImplHelper14 - : public ::cppu::OWeakObject - , public ImplHelperBase14 - { - static ClassData14 s_aCD; - public: - virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw (::com::sun::star::uno::RuntimeException) - { - ::com::sun::star::uno::Any aRet( getClassData( s_aCD ).query( rType, (ImplHelperBase14 *)this ) ); - return (aRet.hasValue() ? aRet : OWeakObject::queryInterface( rType )); - } - virtual void SAL_CALL acquire() throw () - { OWeakObject::acquire(); } - virtual void SAL_CALL release() throw () - { OWeakObject::release(); } - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException) - { return getClassData( s_aCD ).getTypes(); } - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException) - { return getClassData( s_aCD ).getImplementationId(); } - }; - - // namespace ::cppu -} - -#endif -namespace binfilter { - class ChXDiagram : public ::cppu::WeakImplHelper14 - < - ::com::sun::star::chart::XDiagram, - ::com::sun::star::chart::XAxisZSupplier, - ::com::sun::star::chart::XTwoAxisXSupplier, // : XAxisXSupplier - ::com::sun::star::chart::XTwoAxisYSupplier, // : XAxisYSupplier - ::com::sun::star::chart::XStatisticDisplay, - ::com::sun::star::chart::X3DDisplay, - ::com::sun::star::beans::XPropertySet, - ::com::sun::star::beans::XMultiPropertySet, - ::com::sun::star::beans::XPropertyState, - ::com::sun::star::beans::XMultiPropertyStates, - ::com::sun::star::lang::XServiceInfo, - ::com::sun::star::lang::XUnoTunnel, - ::com::sun::star::lang::XComponent, - ::com::sun::star::lang::XEventListener - > -{ -private: - ::rtl::OUString maServiceName; - sal_Int32 mnBaseType; - ChartModel* mpModel; - SvxItemPropertySet maPropSet; - - // some shape references (ChXChartObjects) - ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mxXAxisTitle; - ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mxYAxisTitle; - ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mxZAxisTitle; - - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxXAxis; - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxYAxis; - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxZAxis; - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxSecXAxis; - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxSecYAxis; - - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxMajorGridX; - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxMajorGridY; - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxMajorGridZ; - - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxMinorGridX; - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxMinorGridY; - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxMinorGridZ; - - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxMinMaxLine; - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxUpBar; - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxDownBar; - - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxWall; - ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxFloor; - - - ::com::sun::star::uno::Any GetAnyByItem( SfxItemSet& aSet, const SfxItemPropertyMap* pMap ); - -public: - ChXDiagram( SchChartDocShell* pShell, sal_Bool bPreInit = sal_True ); - virtual ~ChXDiagram(); - - void SetServiceName( const ::rtl::OUString& u ) throw() { maServiceName = u; } - const ::rtl::OUString& getServiceName() throw() { return maServiceName; } - sal_Bool SetDocShell( SchChartDocShell* pDocShell, sal_Bool bKeepModel = sal_False ) throw(); - - static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); - static ChXDiagram* getImplementation( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > ) throw(); - - // XDiagram - virtual ::rtl::OUString SAL_CALL getDiagramType() throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getDataRowProperties( sal_Int32 Row ) - throw( ::com::sun::star::uno::RuntimeException, - ::com::sun::star::lang::IndexOutOfBoundsException ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getDataPointProperties( sal_Int32 Column, sal_Int32 Row ) - throw( ::com::sun::star::uno::RuntimeException, - ::com::sun::star::lang::IndexOutOfBoundsException ); - - // XShape ( ::XDiagram ) - virtual ::com::sun::star::awt::Size SAL_CALL getSize() - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setSize( const ::com::sun::star::awt::Size& ) - throw( ::com::sun::star::beans::PropertyVetoException, - ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::awt::Point SAL_CALL getPosition() - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setPosition( const ::com::sun::star::awt::Point& ) - throw( ::com::sun::star::uno::RuntimeException ); - - // XShapeDescriptor ( ::XShape ::XDiagram ) - virtual ::rtl::OUString SAL_CALL getShapeType() throw( ::com::sun::star::uno::RuntimeException ); - - - // XAxisXSupplier, XAxisYSupplier, XAxisZSupplier, - // XTwoAxisXSupplier, XTwoAxisYSupplier - virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > SAL_CALL getXAxisTitle() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > SAL_CALL getYAxisTitle() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > SAL_CALL getZAxisTitle() - throw( ::com::sun::star::uno::RuntimeException ); - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getXAxis() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getYAxis() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getZAxis() - throw( ::com::sun::star::uno::RuntimeException ); - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getSecondaryXAxis() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getSecondaryYAxis() - throw( ::com::sun::star::uno::RuntimeException ); - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getXMainGrid() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getYMainGrid() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getZMainGrid() - throw( ::com::sun::star::uno::RuntimeException ); - - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getXHelpGrid() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getYHelpGrid() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getZHelpGrid() - throw( ::com::sun::star::uno::RuntimeException ); - - - // XStatisticDisplay - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getMinMaxLine() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getUpBar() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getDownBar() - throw( ::com::sun::star::uno::RuntimeException ); - - - // X3DDisplay - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getWall() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL getFloor() - throw( ::com::sun::star::uno::RuntimeException ); - - // XPropertySet - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Any& aValue ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::beans::PropertyVetoException, - ::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - - // XMultiPropertySet - virtual void SAL_CALL setPropertyValues ( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, - const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aValues ) - throw (::com::sun::star::beans::PropertyVetoException, - ::com::sun::star::lang::IllegalArgumentException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > SAL_CALL getPropertyValues ( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL addPropertiesChangeListener ( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL removePropertiesChangeListener ( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL firePropertiesChangeEvent ( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) - throw (::com::sun::star::uno::RuntimeException); - - // XPropertyState - virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( const ::rtl::OUString& PropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL getPropertyStates( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( const ::rtl::OUString& aPropertyName ) - throw( ::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException ); - - // XMultiPropertyStates - // getPropertyStates already part of interface XPropertyState - virtual void SAL_CALL setAllPropertiesToDefault (void) - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setPropertiesToDefault ( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) - throw (::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > SAL_CALL getPropertyDefaults ( - const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) - throw (::com::sun::star::beans::UnknownPropertyException, - ::com::sun::star::lang::WrappedTargetException, - ::com::sun::star::uno::RuntimeException); - - // XServiceInfo - // supportsService is handled by SvxServiceInfoHelper - virtual ::rtl::OUString SAL_CALL getImplementationName() - throw( ::com::sun::star::uno::RuntimeException ); - virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() - throw( ::com::sun::star::uno::RuntimeException ); - - - // XUnoTunnel - virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) - throw( ::com::sun::star::uno::RuntimeException ); - - // XComponent - virtual void SAL_CALL dispose() throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) - throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) - throw( ::com::sun::star::uno::RuntimeException ); - - // XEventListener - virtual void SAL_CALL disposing (const ::com::sun::star::lang::EventObject & Source) - throw (::com::sun::star::uno::RuntimeException); - -protected: - /** @descr In an array of SfxItemPropertyMap entries advance from the position pointed to - by pProperty to that property that has the name given by pPropertyName. If the - property list does not contain such an entry an UnknownPropertyException is thrown. - @param pProperty Pointer into an array of properties. It is modified such that after - the methods returns it points to a property with the same name as pPropertyName. - @param pPropertyName Name of the property that is searched for. - */ - void AdvanceToName (const SfxItemPropertyMap *& pProperty, - const ::rtl::OUString * pPropertyName) - throw (::com::sun::star::beans::UnknownPropertyException); - -private: - /// Mutex used by the interface container. - ::osl::Mutex maMutex; - - /// List of listeners for the XComponent interface. - ::cppu::OInterfaceContainerHelper maListenerList; -}; - -} //namespace binfilter -#endif // _CHART_DIAGRAM_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/ChartArea.hxx b/binfilter/bf_sch/source/ui/inc/ChartArea.hxx deleted file mode 100644 index 49ff1c541..000000000 --- a/binfilter/bf_sch/source/ui/inc/ChartArea.hxx +++ /dev/null @@ -1,65 +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. - * - ************************************************************************/ -#ifndef _CHARTAREA_HXX_ -#define _CHARTAREA_HXX_ - -#include "ChXChartObject.hxx" -namespace binfilter { - -class ChartArea : public ChXChartObject -{ -public: - ChartArea( ChartModel* pModel, sal_Int32 nObjectId ); - virtual ~ChartArea(); - - // helpers for XUnoTunnel - static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL getImplementationName() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() - throw( ::com::sun::star::uno::RuntimeException ); - - // XTypeProvider - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() - throw( ::com::sun::star::uno::RuntimeException ); - - // XShapeDescriptor - virtual ::rtl::OUString SAL_CALL getShapeType() throw( ::com::sun::star::uno::RuntimeException ); - - // XUnoTunnel - virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) - throw( ::com::sun::star::uno::RuntimeException ); - -}; - -} //namespace binfilter -#endif // _CHARTAREA_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/ChartGrid.hxx b/binfilter/bf_sch/source/ui/inc/ChartGrid.hxx deleted file mode 100644 index 6f1b31bdf..000000000 --- a/binfilter/bf_sch/source/ui/inc/ChartGrid.hxx +++ /dev/null @@ -1,65 +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. - * - ************************************************************************/ -#ifndef _CHARTGRID_HXX_ -#define _CHARTGRID_HXX_ - -#include "ChXChartObject.hxx" -namespace binfilter { - -class ChartGrid : public ChXChartObject -{ -public: - ChartGrid( ChartModel* pModel, sal_Int32 nObjectId ); - virtual ~ChartGrid(); - - // helpers for XUnoTunnel - static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL getImplementationName() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() - throw( ::com::sun::star::uno::RuntimeException ); - - // XTypeProvider - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() - throw( ::com::sun::star::uno::RuntimeException ); - - // XShapeDescriptor - virtual ::rtl::OUString SAL_CALL getShapeType() throw( ::com::sun::star::uno::RuntimeException ); - - // XUnoTunnel - virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) - throw( ::com::sun::star::uno::RuntimeException ); - -}; - -} //namespace binfilter -#endif // _CHARTGRID_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/ChartLegend.hxx b/binfilter/bf_sch/source/ui/inc/ChartLegend.hxx deleted file mode 100644 index e6f6bff55..000000000 --- a/binfilter/bf_sch/source/ui/inc/ChartLegend.hxx +++ /dev/null @@ -1,65 +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. - * - ************************************************************************/ -#ifndef _CHARTLEGEND_HXX_ -#define _CHARTLEGEND_HXX_ - -#include "ChXChartObject.hxx" -namespace binfilter { - -class ChartLegend : public ChXChartObject -{ -public: - ChartLegend( ChartModel* pModel ); - virtual ~ChartLegend(); - - // helpers for XUnoTunnel - static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL getImplementationName() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() - throw( ::com::sun::star::uno::RuntimeException ); - - // XTypeProvider - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() - throw( ::com::sun::star::uno::RuntimeException ); - - // XShapeDescriptor - virtual ::rtl::OUString SAL_CALL getShapeType() throw( ::com::sun::star::uno::RuntimeException ); - - // XUnoTunnel - virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) - throw( ::com::sun::star::uno::RuntimeException ); - -}; - -} //namespace binfilter -#endif // _CHARTLEGEND_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/ChartLine.hxx b/binfilter/bf_sch/source/ui/inc/ChartLine.hxx deleted file mode 100644 index babbd6646..000000000 --- a/binfilter/bf_sch/source/ui/inc/ChartLine.hxx +++ /dev/null @@ -1,65 +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. - * - ************************************************************************/ -#ifndef _CHARTLINE_HXX_ -#define _CHARTLINE_HXX_ - -#include "ChXChartObject.hxx" -namespace binfilter { - -class ChartLine : public ChXChartObject -{ -public: - ChartLine( ChartModel* pModel, sal_Int32 nObjectId, sal_Int32 nIndex = -1 ); - virtual ~ChartLine(); - - // helpers for XUnoTunnel - static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL getImplementationName() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() - throw( ::com::sun::star::uno::RuntimeException ); - - // XTypeProvider - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() - throw( ::com::sun::star::uno::RuntimeException ); - - // XShapeDescriptor - virtual ::rtl::OUString SAL_CALL getShapeType() throw( ::com::sun::star::uno::RuntimeException ); - - // XUnoTunnel - virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) - throw( ::com::sun::star::uno::RuntimeException ); - -}; - -} //namespace binfilter -#endif // _CHARTLINE_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/ChartTitle.hxx b/binfilter/bf_sch/source/ui/inc/ChartTitle.hxx deleted file mode 100644 index 3f51b107a..000000000 --- a/binfilter/bf_sch/source/ui/inc/ChartTitle.hxx +++ /dev/null @@ -1,70 +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. - * - ************************************************************************/ -#ifndef _CHARTTITLE_HXX_ -#define _CHARTTITLE_HXX_ - -#include "ChXChartObject.hxx" -namespace binfilter { - -class ChartTitle : public ChXChartObject -{ -public: - ChartTitle( ChartModel* pModel, sal_Int32 nObjectId ); - virtual ~ChartTitle(); - - // helpers for XUnoTunnel - static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); - - /// special handling of title specific properties. Sub of getPropertyValues() - void GetPropertyValue( const SfxItemPropertyMap & rProperty, - ::com::sun::star::uno::Any & rValue, - SfxItemSet & rAttributes ); - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL getImplementationName() - throw( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() - throw( ::com::sun::star::uno::RuntimeException ); - - // XTypeProvider - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() - throw( ::com::sun::star::uno::RuntimeException ); - - // XShapeDescriptor - virtual ::rtl::OUString SAL_CALL getShapeType() throw( ::com::sun::star::uno::RuntimeException ); - - // XUnoTunnel - virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) - throw( ::com::sun::star::uno::RuntimeException ); - -}; - -} //namespace binfilter -#endif // _CHARTTITLE_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/SchTransferable.hxx b/binfilter/bf_sch/source/ui/inc/SchTransferable.hxx deleted file mode 100644 index 0587bcd0e..000000000 --- a/binfilter/bf_sch/source/ui/inc/SchTransferable.hxx +++ /dev/null @@ -1,72 +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. - * - ************************************************************************/ -#ifndef _SCH_TRANSFERABLE_HXX_ -#define _SCH_TRANSFERABLE_HXX_ - -#include <bf_svtools/transfer.hxx> - -/*N*/ #include <tools/debug.hxx> //for stripping -class Graphic; -class VirtualDevice; -namespace binfilter { -class SdrModel; -class SdrExchangeView; - -class SchTransferable : - public TransferableHelper -{ -private: - SdrExchangeView * mpSourceView; - -protected: - - // implementation of TransferableHelper methods - -public: - - /** CTOR for clipboard, drag and drop and selection clipboard - @param pObjModel the model containing all objects for the clipboard. - The transferable becomes the owner of this model. - @param pSrcView the view for drag and drop and the selection clipboard - The transferable does not care about destruction of this view - @param rObjDesc A descriptor object that holds properties like the starting - position of a drag action - @param bLateInit If true, the actual data is created in GetData (on paste), - else data is created on construction - */ - SchTransferable( SdrModel* pObjModel, - SdrExchangeView* pSrcView, - const TransferableObjectDescriptor& rObjDesc, - sal_Bool bLateInit = sal_False ); - const SdrExchangeView* GetView() throw() { return mpSourceView; } -}; - -} //namespace binfilter -#endif // _SCH_TRANSFERABLE_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/dlgctrls.hxx b/binfilter/bf_sch/source/ui/inc/dlgctrls.hxx deleted file mode 100644 index be1d70797..000000000 --- a/binfilter/bf_sch/source/ui/inc/dlgctrls.hxx +++ /dev/null @@ -1,57 +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. - * - ************************************************************************/ - - -#ifndef SD_DLGCTRLS_HXX -#define SD_DLGCTRLS_HXX - -#include <vcl/lstbox.hxx> -#include <vcl/window.hxx> - -#include "schresid.hxx" -namespace binfilter { - -/************************************************************************* -|* -|* FadeEffectLB -|* -\************************************************************************/ -class FadeEffectLB : public ListBox -{ - -public: - FadeEffectLB( Window* pParent, SchResId Id ) : ListBox( pParent, Id ) {} - FadeEffectLB( Window* pParent, WinBits aWB ) : ListBox( pParent, aWB ) {} - - virtual void Fill(); -}; - -} //namespace binfilter -#endif // SD_DLGCTRLS_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/fudrarea.hxx b/binfilter/bf_sch/source/ui/inc/fudrarea.hxx deleted file mode 100644 index 3b5ea2d2c..000000000 --- a/binfilter/bf_sch/source/ui/inc/fudrarea.hxx +++ /dev/null @@ -1,52 +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. - * - ************************************************************************/ - -#ifndef _SCH_FUDRAREA_HXX -#define _SCH_FUDRAREA_HXX - -#include "fupoor.hxx" -namespace binfilter { - -class SchFuDrawingArea : public SchFuPoor -{ - public: - SchFuDrawingArea(SchViewShell* pViewSh, SchWindow* pWin, - SchView* pView, ChartModel* pDoc, - SfxRequest& rReq); - - virtual ~SchFuDrawingArea(); - - virtual void Activate() {} - virtual void Deactivate() {} -}; - -} //namespace binfilter -#endif // _SCH_FUDRAREA_HXX - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/fudraw.hxx b/binfilter/bf_sch/source/ui/inc/fudraw.hxx deleted file mode 100644 index 18d12f2fb..000000000 --- a/binfilter/bf_sch/source/ui/inc/fudraw.hxx +++ /dev/null @@ -1,184 +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. - * - ************************************************************************/ - -#ifndef _SCH_FUDRAW_HXX -#define _SCH_FUDRAW_HXX - -#include "fupoor.hxx" -namespace binfilter { - -/************************************************************************* -|* -|* Basisklasse fuer alle Drawmodul-spezifischen Funktionen -|* -\************************************************************************/ - -class SdrObject; - -class SchFuDraw : public SchFuPoor -{ -protected: - Pointer aNewPointer; - Pointer aOldPointer; - BOOL bMBDown; - - /** possible directions in which to select objects - */ - enum lcl_Selection_Direction - { - lcl_SELECT_PREVIOUS, - lcl_SELECT_NEXT, - lcl_SELECT_FIRST, - lcl_SELECT_LAST - }; - - /** possible directions in which to move an object - */ - enum lcl_Movement_Direction - { - lcl_MOVE_LEFT, - lcl_MOVE_RIGHT, - lcl_MOVE_UP, - lcl_MOVE_DOWN - }; - - /** marks the next/previous/first or last object in the current - group of chart objects. - - @param eDirection determines in which direction to travel - - @param nDepth is to prevent a loop in recursion. When - selecting a new object, this may be invalid. In this - case the method tries the next object. If the last - object is reached without success, the first is - selected using a recursive call. If no valid objects - are available at all this parameter avoids a loop - (which should normally never occur). - - @param bEnterDiagram determines if during navigation the - diagram should be ignored as group and its content - rather be treated as top-level objects. This parameter - is especially needed so that the diagram can still be - selected (without entering). - - @returns TRUE, if an object could be marked - */ - - /** moves an object in one of the four directions given in - lcl_Movement_Direction. This is only possible for top-level - chart objects, i.e., titles, legend and diagram - - @param eDirection the direction in which to move. If an - object is too close to the edge, the object is not - moved. - - @param nAmount the amount of units to be moved about. The - unit can be 100th of a mm or pixels depending on what - bPixel is set to. - - @param bPixel If true, the amount nAmount is treated as pixels - in the current window, otherwise the current logical - unit is used, which in a chart is always 100th of a mm. - - @returns TRUE, if the object could be moved - */ - - /** resizes an object by the amount given into the larger of width - and height. In the smaller extent the amount is calculated - such that the resize is proportional. - - @param nAmount the amount by which the object will be resized. - The amount will be added to the larger extent (width or - height). The resize is proportional in the other - direction. - - @param bPixel If true, the amount nAmount is treated as pixels - in the current window for the larger of width and - height. Otherwise the current logical unit is used, - which in a chart is always 100th of a mm. - - @returns TRUE, if the object could be resized - */ - - /** moves a pie segment by the given amount in percent - - @param bOut if true increases the offset, otherwise decreases - the offset. The offset stays always between 0 and 100. - - @param nAmount the amount of percent by which the pie segment - is dragged. - - @returns TRUE, if the object was a pie and could be moved - */ - - /** determines if the object currently selected is valid, i.e. it - may be selected in the UI for making changes. - - @returns true, if a valid object is selected. - */ - - /** For some objects only the 8 green handles of the group are - shown, for others a special handling is required, e.g. bars in - a bar chart. This is done here for the currently selected - object. - */ - - /** Some groups in a chart may not be entered, e.g. an axis - object. Otherwise you would be able to select all tick-mark - objects or labels. - - @returns true, if the currently selected object is a group - that may be entered, e.g. a data series object. - */ - - /** get the object which is currently selected in the UI. In the - chart this can only be one object at a time. - */ - - /** after move or resize there have to be some things set at chart - objects and the model. It is called by MoveMarkedObject. - */ - -public: - - SchFuDraw(SchViewShell* pViewSh, SchWindow* pWin, SchView* pView, - ChartModel* pDoc, SfxRequest& rReq); - virtual ~SchFuDraw(); - - - virtual void Activate(); - - virtual void ForcePointer(const MouseEvent* pMEvt = NULL); - -}; - -} //namespace binfilter -#endif // _SCH_FUDRAW_HXX - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/fupoor.hxx b/binfilter/bf_sch/source/ui/inc/fupoor.hxx deleted file mode 100644 index 5cd79ac58..000000000 --- a/binfilter/bf_sch/source/ui/inc/fupoor.hxx +++ /dev/null @@ -1,106 +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. - * - ************************************************************************/ - -#ifndef _SCH_FUPOOR_HXX -#define _SCH_FUPOOR_HXX -//------------------------------------------------------------------ -// -// dieses Define dient nur zum Testen und darf auf keinen Fall aktiv bleiben -// Bei Umstellungen alle Files nach SIG_CHARTMODELDEFSCHDOC durchsuchen -// #define ChartModel SchChartDocument -//------------------------------------------------------------------ - -#include <vcl/dialog.hxx> - -#include "objid.hxx" -namespace binfilter { - -class SchView; -class SchViewShell; -class SchWindow; -class ChartModel; -class SfxRequest; - -#define HITPIX 2 // Hit-Toleranz in Pixel -#define DRGPIX 2 // Drag MinMove in Pixel - - -/************************************************************************* -|* -|* Basisklasse fuer alle Funktionen -|* -\************************************************************************/ - -class SchFuPoor -{ -protected: - SchView* pView; - SchViewShell* pViewShell; - SchWindow* pWindow; - ChartModel* pChDoc; - - USHORT nSlotId; - USHORT nSlotValue; - - Dialog* pDialog; - - Timer aDragTimer; // fuer Drag&Drop - DECL_LINK(DragHdl, Timer*); - BOOL bIsInDragMode; - Point aMDPos; // Position von MouseButtonDown - - SdrObject *pMarkedObj; - SchObjectId *pMarkedObjId; - UINT16 nMarkedID; - - BOOL bFirstMouseMove; - - -public: - - SchFuPoor(SchViewShell* pViewSh, SchWindow* pWin, SchView* pView, - ChartModel* pDoc, SfxRequest& rReq); - virtual ~SchFuPoor(); - - - // Mouse- & Key-Events; Returnwert=TRUE: Event wurde bearbeitet - - virtual void Activate(); // Function aktivieren - virtual void Deactivate(); // Function deaktivieren - - - - USHORT GetSlotID() const { return( nSlotId ); } - -}; - -} //namespace binfilter -#endif // _SCH_FUPOOR_HXX - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/fuscale.hxx b/binfilter/bf_sch/source/ui/inc/fuscale.hxx deleted file mode 100644 index 1bcaa52fc..000000000 --- a/binfilter/bf_sch/source/ui/inc/fuscale.hxx +++ /dev/null @@ -1,50 +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. - * - ************************************************************************/ - - -#ifndef _SCH_FUSCALE_HXX -#define _SCH_FUSCALE_HXX - -#include "fupoor.hxx" -namespace binfilter { - -class SchFuScale : public SchFuPoor -{ - public: - SchFuScale(SchViewShell* pViewSh, SchWindow* pWin, SchView* pView, - ChartModel* pDoc, SfxRequest& rReq); - virtual ~SchFuScale(); - - virtual void Activate(); // Function aktivieren - virtual void Deactivate(); // Function deaktivieren -}; - -} //namespace binfilter -#endif // _SCH_FUSCALE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/fusel.hxx b/binfilter/bf_sch/source/ui/inc/fusel.hxx deleted file mode 100644 index 44b85d68b..000000000 --- a/binfilter/bf_sch/source/ui/inc/fusel.hxx +++ /dev/null @@ -1,69 +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. - * - ************************************************************************/ - -#ifndef _SCH_FUSEL_HXX -#define _SCH_FUSEL_HXX - - -#include "fudraw.hxx" -namespace binfilter { - -class SdrDragMethod; -class SdrCircObj; - -/************************************************************************* -|* -|* Basisklasse fuer alle Funktionen -|* -\************************************************************************/ - -class SchFuSelection : public SchFuDraw -{ -protected: - BOOL bWasSelected; - BOOL bVCAction; - SdrDragMethod* pDragMethod; - - -public: - - SchFuSelection(SchViewShell* pViewSh, SchWindow* pWin, SchView* pView, - ChartModel* pDoc, SfxRequest& rReq); - - virtual ~SchFuSelection(); - - - virtual void Activate(); - virtual void Deactivate(); -}; - -} //namespace binfilter -#endif // _SCH_FUSEL_HXX - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/fuzoom.hxx b/binfilter/bf_sch/source/ui/inc/fuzoom.hxx deleted file mode 100644 index ac998999c..000000000 --- a/binfilter/bf_sch/source/ui/inc/fuzoom.hxx +++ /dev/null @@ -1,71 +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. - * - ************************************************************************/ - -#ifndef _SCH_FUZOOM_HXX -#define _SCH_FUZOOM_HXX - - -#include "fupoor.hxx" -namespace binfilter { - -/************************************************************************* -|* -|* Funktion Zoom -|* -\************************************************************************/ - -class SchFuZoom : public SchFuPoor -{ - protected: - Point aBeginPos; - Rectangle aZoomRect; - BOOL bVisible; - BOOL bStartDrag; - Pointer aPtr; - - public: - SchFuZoom(SchViewShell* pViewSh, SchWindow* pWin, SchView* pView, - ChartModel* pDoc, SfxRequest& rReq); - - virtual ~SchFuZoom(); - // Mouse- & Key-Events - virtual BOOL KeyInput(const KeyEvent& rKEvt); - virtual BOOL MouseMove(const MouseEvent& rMEvt); - virtual BOOL MouseButtonUp(const MouseEvent& rMEvt); - virtual BOOL MouseButtonDown(const MouseEvent& rMEvt); - - virtual void Activate(); // Function aktivieren - virtual void Deactivate(); // Function deaktivieren -}; - - - -} //namespace binfilter -#endif // _SCH_FUZOOM_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/globopt.hxx b/binfilter/bf_sch/source/ui/inc/globopt.hxx deleted file mode 100644 index 9319a3a17..000000000 --- a/binfilter/bf_sch/source/ui/inc/globopt.hxx +++ /dev/null @@ -1,58 +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. - * - ************************************************************************/ -#ifndef _SCH_GLOBOPT_HXX -#define _SCH_GLOBOPT_HXX - -#include <tools/fldunit.hxx> -namespace binfilter { - -namespace sch -{ - -namespace util -{ - -/** @descr Retrieve the FieldUnit to be used for the UI. This unit is retrieved - from the registry settings of the Calc application. - - If this setting can not be found there is a fallback to cm which is the most - common setting worldwide (or not?) - - @return the FieldUnit enum. See <vcl/fldunit.hxx> for definition - */ -FieldUnit GetMeasureUnit(); - -} // namespace util -} // namespace sch - - -// _SCH_GLOBOPT_HXX -} //namespace binfilter -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/guiutil.hxx b/binfilter/bf_sch/source/ui/inc/guiutil.hxx deleted file mode 100644 index 89621557f..000000000 --- a/binfilter/bf_sch/source/ui/inc/guiutil.hxx +++ /dev/null @@ -1,45 +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. - * - ************************************************************************/ - -#ifndef _SCH_GUI_UTIL_HXX -#define _SCH_GUI_UTIL_HXX - -#include <bf_svtools/bf_solar.h> -namespace binfilter { -class ChartModel; - -class GuiUtilities -{ -public: - static USHORT GetObjectNameResId(UINT16 nObjId, ChartModel& rDoc); -}; - -} //namespace binfilter -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/res_bmp.hrc b/binfilter/bf_sch/source/ui/inc/res_bmp.hrc deleted file mode 100644 index ddd968c8d..000000000 --- a/binfilter/bf_sch/source/ui/inc/res_bmp.hrc +++ /dev/null @@ -1,54 +0,0 @@ -/************************************************************************* - * - * 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. - * - ************************************************************************/ -#include <bf_sfx2/sfx.hrc> - - -//#define RID_APP_START 30000 -#define RID_DRAW_TOOLBOX (RID_SCH_START + 1) -#define RID_STATUSBAR (RID_APP_START + 10002) -//#define RID_ALIGNMENT (RID_APP_START + 3) -//#define RID_ZOOM (RID_APP_START + 4) -//#define RID_CONTROLS (RID_APP_START + 5) -//#define RID_TEXT_TOOLBOX (RID_APP_START + 6) - - - - - -#define RID_ACCEL (RID_APP_START + 80) -#define RID_MENU (RID_APP_START + 81) -#define RID_PORTAL_MENU (RID_APP_START + 82) - - - - - - -// Popup-Menus - - -//*** diff --git a/binfilter/bf_sch/source/ui/inc/res_hc_bmp.hrc b/binfilter/bf_sch/source/ui/inc/res_hc_bmp.hrc deleted file mode 100644 index fdb4a0146..000000000 --- a/binfilter/bf_sch/source/ui/inc/res_hc_bmp.hrc +++ /dev/null @@ -1,126 +0,0 @@ -/************************************************************************* - * - * 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. - * - ************************************************************************/ -#include <bf_svtools/solar.hrc> - -// RID_SCH_START is 30512 (see svtools/solar.hrc) - -// chart types - -#define BMP_AREAS_2D_HC ( RID_SCH_START + 0 ) -#define BMP_AREAS_2D_1_HC ( RID_SCH_START + 1 ) -#define BMP_AREAS_2D_3_HC ( RID_SCH_START + 2 ) -#define BMP_AREAS_3D_HC ( RID_SCH_START + 3 ) -#define BMP_AREAS_3D_1_HC ( RID_SCH_START + 4 ) -#define BMP_AREAS_3D_2_HC ( RID_SCH_START + 5 ) -#define BMP_BARS_2D_HC ( RID_SCH_START + 6 ) -#define BMP_BARS_2D_1_HC ( RID_SCH_START + 7 ) -#define BMP_BARS_2D_2_HC ( RID_SCH_START + 8 ) -#define BMP_BARS_2D_3_HC ( RID_SCH_START + 9 ) -#define BMP_BARS_3D_HC ( RID_SCH_START + 10 ) -#define BMP_BARS_3D_1_HC ( RID_SCH_START + 11 ) -#define BMP_BARS_3D_2_HC ( RID_SCH_START + 12 ) -#define BMP_BARS_3D_3_HC ( RID_SCH_START + 13 ) -#define BMP_CIRCLES_2D_HC ( RID_SCH_START + 14 ) -#define BMP_CIRCLES_2D_1_HC ( RID_SCH_START + 15 ) -#define BMP_CIRCLES_2D_2_HC ( RID_SCH_START + 16 ) -#define BMP_CIRCLES_3D_HC ( RID_SCH_START + 17 ) -#define BMP_COLUMNS_2D_HC ( RID_SCH_START + 18 ) -#define BMP_COLUMNS_2D_1_HC ( RID_SCH_START + 19 ) -#define BMP_COLUMNS_2D_2_HC ( RID_SCH_START + 20 ) -#define BMP_COLUMNS_2D_3_HC ( RID_SCH_START + 21 ) -#define BMP_COLUMNS_2D_4_HC ( RID_SCH_START + 22 ) -#define BMP_COLUMNS_3D_HC ( RID_SCH_START + 23 ) -#define BMP_COLUMNS_3D_1_HC ( RID_SCH_START + 24 ) -#define BMP_COLUMNS_3D_2_HC ( RID_SCH_START + 25 ) -#define BMP_COLUMNS_3D_3_HC ( RID_SCH_START + 26 ) -#define BMP_DONUT1_2D_HC ( RID_SCH_START + 27 ) -#define BMP_KEGELQ_3D_1_HC ( RID_SCH_START + 28 ) -#define BMP_KEGELQ_3D_2_HC ( RID_SCH_START + 29 ) -#define BMP_KEGELQ_3D_3_HC ( RID_SCH_START + 30 ) -#define BMP_KEGELQ_3D_4_HC ( RID_SCH_START + 31 ) -#define BMP_KEGEL_3D_1_HC ( RID_SCH_START + 32 ) -#define BMP_KEGEL_3D_2_HC ( RID_SCH_START + 33 ) -#define BMP_KEGEL_3D_3_HC ( RID_SCH_START + 34 ) -#define BMP_KEGEL_3D_4_HC ( RID_SCH_START + 35 ) -#define BMP_LINESYMB_2D_HC ( RID_SCH_START + 36 ) -#define BMP_LINESYMB_2D_1_HC ( RID_SCH_START + 37 ) -#define BMP_LINESYMB_2D_2_HC ( RID_SCH_START + 38 ) -#define BMP_LINESYMB_2D_3_HC ( RID_SCH_START + 39 ) -#define BMP_LINES_2D_HC ( RID_SCH_START + 40 ) -#define BMP_LINES_2D_1_HC ( RID_SCH_START + 41 ) -#define BMP_LINES_2D_2_HC ( RID_SCH_START + 42 ) -#define BMP_LINES_2D_3_HC ( RID_SCH_START + 43 ) -#define BMP_LINES_3D_HC ( RID_SCH_START + 44 ) -#define BMP_NETSYMB_2D_HC ( RID_SCH_START + 45 ) -#define BMP_NETSYMB_2D_PERCENT_HC ( RID_SCH_START + 46 ) -#define BMP_NETSYMB_2D_STACK_HC ( RID_SCH_START + 47 ) -#define BMP_NET_2D_HC ( RID_SCH_START + 48 ) -#define BMP_NET_2D_PERCENT_HC ( RID_SCH_START + 49 ) -#define BMP_NET_2D_STACK_HC ( RID_SCH_START + 50 ) -#define BMP_PYRAMIDQ_3D_1_HC ( RID_SCH_START + 51 ) -#define BMP_PYRAMIDQ_3D_2_HC ( RID_SCH_START + 52 ) -#define BMP_PYRAMIDQ_3D_3_HC ( RID_SCH_START + 53 ) -#define BMP_PYRAMIDQ_3D_4_HC ( RID_SCH_START + 54 ) -#define BMP_PYRAMID_3D_1_HC ( RID_SCH_START + 55 ) -#define BMP_PYRAMID_3D_2_HC ( RID_SCH_START + 56 ) -#define BMP_PYRAMID_3D_3_HC ( RID_SCH_START + 57 ) -#define BMP_PYRAMID_3D_4_HC ( RID_SCH_START + 58 ) -#define BMP_ROEHRE_3D_1_HC ( RID_SCH_START + 59 ) -#define BMP_ROEHRE_3D_2_HC ( RID_SCH_START + 60 ) -#define BMP_ROEHRE_3D_3_HC ( RID_SCH_START + 61 ) -#define BMP_ROEHRE_3D_4_HC ( RID_SCH_START + 62 ) -#define BMP_SAEULE_3D_1_HC ( RID_SCH_START + 63 ) -#define BMP_SAEULE_3D_2_HC ( RID_SCH_START + 64 ) -#define BMP_SAEULE_3D_3_HC ( RID_SCH_START + 65 ) -#define BMP_SAEULE_3D_4_HC ( RID_SCH_START + 66 ) -#define BMP_SPLINE_B_HC ( RID_SCH_START + 67 ) -#define BMP_SPLINE_B_SYMBOL_HC ( RID_SCH_START + 68 ) -#define BMP_SPLINE_CUBIC_HC ( RID_SCH_START + 69 ) -#define BMP_SPLINE_CUBIC_SYMBOL_HC ( RID_SCH_START + 70 ) -#define BMP_STOCK_1_HC ( RID_SCH_START + 71 ) -#define BMP_STOCK_2_HC ( RID_SCH_START + 72 ) -#define BMP_STOCK_3_HC ( RID_SCH_START + 73 ) -#define BMP_STOCK_4_HC ( RID_SCH_START + 74 ) -#define BMP_SURF_3D_HC ( RID_SCH_START + 75 ) -#define BMP_XYSYMB_2D_HC ( RID_SCH_START + 76 ) -#define BMP_XYZSYMB_3D_HC ( RID_SCH_START + 77 ) -#define BMP_XYZ_3D_HC ( RID_SCH_START + 78 ) -#define BMP_XY_2D_HC ( RID_SCH_START + 79 ) -#define BMP_COLUMNS_2D_5_HC ( RID_SCH_START + 80 ) - -// statistics - -#define BMP_INDICATE_NONE_HC ( RID_SCH_START + 81 ) -#define BMP_INDICATE_BOTH_HC ( RID_SCH_START + 82 ) -#define BMP_INDICATE_UP_HC ( RID_SCH_START + 83 ) -#define BMP_INDICATE_DOWN_HC ( RID_SCH_START + 84 ) - -#define BMP_REGRESSION_NONE_HC ( RID_SCH_START + 85 ) -#define BMP_REGRESSION_LINEAR_HC ( RID_SCH_START + 86 ) -#define BMP_REGRESSION_LOG_HC ( RID_SCH_START + 87 ) -#define BMP_REGRESSION_EXP_HC ( RID_SCH_START + 88 ) -#define BMP_REGRESSION_POWER_HC ( RID_SCH_START + 89 ) diff --git a/binfilter/bf_sch/source/ui/inc/schhids.h b/binfilter/bf_sch/source/ui/inc/schhids.h deleted file mode 100644 index d24b7712f..000000000 --- a/binfilter/bf_sch/source/ui/inc/schhids.h +++ /dev/null @@ -1,93 +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. - * - ************************************************************************/ - - - -#include <bf_svtools/solar.hrc> - -#define HID_SCH_DATA_ROW (HID_SCH_START + 0) -#define HID_SCH_DATA_LINE (HID_SCH_START + 1) -#define HID_SCH_DATA_POINT (HID_SCH_START + 2) -#define HID_SCH_DIAGRAM_X_AXIS (HID_SCH_START + 3) - -#define HID_SCH_ALIGNMENT (HID_SCH_START + 4) -#define HID_SCH_LEGEND_POS (HID_SCH_START + 5) -#define HID_SCH_DATA_DESCR (HID_SCH_START + 6) -#define HID_SCH_SCALE_Y (HID_SCH_START + 7) -#define HID_SCH_STAT (HID_SCH_START + 8) -#define HID_SCH_WIN_DOCUMENT (HID_SCH_START + 9) -#define HID_SCH_CTL_DATA (HID_SCH_START + 10) -#define HID_SCH_CT_INDICATE (HID_SCH_START + 11) -#define HID_SCH_CT_REGRESS (HID_SCH_START + 12) -#define HID_SCH_CT_1_CHARTTYPE (HID_SCH_START + 13) -#define HID_SCH_CT_2_CHARTVARIANT (HID_SCH_START + 14) -#define HID_SCH_CTL_TYPE (HID_SCH_START + 15) -#define HID_SCH_CTL_VARIANT (HID_SCH_START + 16) -#define HID_SCH_CTL_LIGHT (HID_SCH_START + 17) -#define HID_SCH_CT_INDICATE2 (HID_SCH_START + 18) -#define HID_SCH_CT_REGRESS2 (HID_SCH_START + 19) -#define HID_SCH_TBI_EDIT_CANCEL (HID_SCH_START + 20) -#define HID_SCH_TBI_EDIT_ACCEPT (HID_SCH_START + 21) -#define HID_SCH_TBI_DATA_TRANSFER (HID_SCH_START + 22) -#define HID_SCH_TBI_DATA_INSERT_ROW (HID_SCH_START + 23) -#define HID_SCH_TBI_DATA_INSERT_COL (HID_SCH_START + 24) -#define HID_SCH_TBI_DATA_DELETE_ROW (HID_SCH_START + 25) -#define HID_SCH_TBI_DATA_DELETE_COL (HID_SCH_START + 26) -#define HID_SCH_TBI_DATA_SWAP_COL (HID_SCH_START + 27) -#define HID_SCH_TBI_DATA_SWAP_ROW (HID_SCH_START + 28) -#define HID_SCH_TBI_DATA_SORT_ROW (HID_SCH_START + 29) -#define HID_SCH_TBI_DATA_SORT_COL (HID_SCH_START + 30) -#define HID_SCH_TBI_DATA_SORT_TABLE_ROW (HID_SCH_START + 31) -#define HID_SCH_TBI_DATA_SORT_TABLE_COL (HID_SCH_START + 32) - -#define HID_SCH_TBX_EDIT (HID_SCH_START + 33) -#define HID_SCH_TBX_DATA (HID_SCH_START + 34) - - -#define HID_SCH_ALIGNMENT_CTR_DIAL (HID_SCH_START + 35) -#define HID_SCH_ALIGNMENT_STACKED (HID_SCH_START + 36) -#define HID_SCH_ALIGNMENT_DEGREES (HID_SCH_START + 37) - -#define HID_SCH_LAYOUT (HID_SCH_START + 38) - -#define HID_SCH_TBX_EDIT_FIELD (HID_SCH_START + 39) -#define HID_SCH_DIAGRAM_Y_AXIS (HID_SCH_START + 40)//war mal 3 - -#define HID_SCH_DEF_COLOR (HID_SCH_START + 41) -#define HID_SCH_TP_AXIS_LABEL (HID_SCH_START + 42) - -#define HID_SCH_NUM_OF_LINES (HID_SCH_START + 43) - -#define HID_SCH_CHART_AUTO_FORMAT (HID_SCH_START + 44) - -// HID_SCH_START should be 63280 (checked 25.Nov 2002) - -// 453 == SCH_IF_CHARTVIEWSHELL, da SFX_INTERFACE_LIB kein -// Define sondern neuerdings ein Enum ist -#define HID_SCH_VIEWSHELL_DOCUMENT (453) -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/sdvcbrw.hxx b/binfilter/bf_sch/source/ui/inc/sdvcbrw.hxx deleted file mode 100644 index 209cc45e6..000000000 --- a/binfilter/bf_sch/source/ui/inc/sdvcbrw.hxx +++ /dev/null @@ -1,71 +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. - * - ************************************************************************/ - -#ifndef _SDVCBRW_HXX -#define _SDVCBRW_HXX -/* -#include <bf_svx/vcbrw.hxx> -*/ -#include <bf_svtools/brdcst.hxx> - -#include <bf_svtools/lstner.hxx> -namespace binfilter { - -class SdrView; - -/************************************************************************* -|* -|* Klasse fuer Browser -|* -\************************************************************************/ -class SdVCBrowser : public VCBrowser //, public SfxListener, public SfxBroadcaster -{ -protected: - SdrView* pView; - BOOL bUpdate; - - BOOL Close(); - - virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType, - const SfxHint& rHint, const TypeId& rHintType ); - void Modify(); - - -public: - SdVCBrowser( Window* pParent ); - - void Update( SdrView* pView ); -}; - - - - -} //namespace binfilter -#endif // _SDVCBRW_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/inc/tbx_ww.hxx b/binfilter/bf_sch/source/ui/inc/tbx_ww.hxx deleted file mode 100644 index c5e9c6c59..000000000 --- a/binfilter/bf_sch/source/ui/inc/tbx_ww.hxx +++ /dev/null @@ -1,61 +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. - * - ************************************************************************/ - - - -#ifndef _SCH_TBX_WW_HXX -#define _SCH_TBX_WW_HXX - -#include <vcl/toolbox.hxx> -#include <bf_sfx2/tbxctrl.hxx> - - -#include "schresid.hxx" -namespace binfilter { - -//------------------------------------------------------------------------ - -class SchPopupWindowTbx : public SfxPopupWindow -{ -private: - ToolBox aTbx; - -public: - SchPopupWindowTbx( USHORT nId, SfxToolBoxControl* pTbxCtl, - SchResId aRIdWin, SchResId aRIdTbx, - SfxBindings& rBindings ); - ~SchPopupWindowTbx() {} - - void StartSelection() { aTbx.StartSelection(); } - void SelectHdl( void* p ); -}; - -} //namespace binfilter -#endif // _SCH_TBX_WW_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartAxis.xml b/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartAxis.xml deleted file mode 100644 index 83090d61c..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartAxis.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd"> -<module-description xmlns:xlink="http://www.w3.org/1999/xlink"> - <module-name>sch</module-name> - <component-description> - <author>Bjoern Milcke</author> - <name>com.sun.star.comp.office.ChXChartAxis</name> - <description> - This component provides access to axis objects of a chart -</description> - <loader-name>com.sun.star.loader.SharedLibrary</loader-name> - <language>c++</language> - <status value="final"/> - <supported-service>com.sun.star.chart.ChartAxis</supported-service> - <supported-service>com.sun.star.drawing.LineProperties</supported-service> - <supported-service>com.sun.star.style.CharacterProperties</supported-service> - <supported-service>com.sun.star.xml.UserDefinedAttributeSupplier</supported-service> - </component-description> -</module-description> diff --git a/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartData.xml b/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartData.xml deleted file mode 100644 index ca50925fa..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartData.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd"> -<module-description xmlns:xlink="http://www.w3.org/1999/xlink"> - <module-name>sch</module-name> - <component-description> - <author>Bjoern Milcke</author> - <name>com.sun.star.comp.office.ChXChartData</name> - <description> - This component yields access to the data of a chart -</description> - <loader-name>com.sun.star.loader.SharedLibrary</loader-name> - <language>c++</language> - <status value="final"/> - <supported-service>com.sun.star.chart.ChartData</supported-service> - </component-description> -</module-description> diff --git a/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartDataArray.xml b/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartDataArray.xml deleted file mode 100644 index 431a44fc5..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartDataArray.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd"> -<module-description xmlns:xlink="http://www.w3.org/1999/xlink"> - <module-name>sch</module-name> - <component-description> - <author>Bjoern Milcke</author> - <name>com.sun.star.comp.office.ChXChartDataArray</name> - <description> - With this component you can retrieve or alter the data of a chart -</description> - <loader-name>com.sun.star.loader.SharedLibrary</loader-name> - <language>c++</language> - <status value="final"/> - <supported-service>com.sun.star.chart.ChartData</supported-service> - <supported-service>com.sun.star.chart.ChartDataArray</supported-service> - </component-description> -</module-description> diff --git a/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartDocument.xml b/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartDocument.xml deleted file mode 100644 index 08ae9a42f..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartDocument.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd"> -<module-description xmlns:xlink="http://www.w3.org/1999/xlink"> - <module-name>sch</module-name> - <component-description> - <author>Bjoern Milcke</author> - <name>com.sun.star.comp.office.ChXChartDocument</name> - <description> - This component represents the document (XModel) that - contains a chart -</description> - <loader-name>com.sun.star.loader.SharedLibrary</loader-name> - <language>c++</language> - <status value="final"/> - <supported-service>com.sun.star.chart.ChartDocument</supported-service> - <supported-service>com.sun.star.chart.ChartTableAddressSupplier</supported-service> - <supported-service>com.sun.star.xml.UserDefinedAttributeSupplier</supported-service> - </component-description> -</module-description> diff --git a/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartView.xml b/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartView.xml deleted file mode 100644 index 79a9d9c1a..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/descr/ChXChartView.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd"> -<module-description xmlns:xlink="http://www.w3.org/1999/xlink"> - <module-name>sch</module-name> - <component-description> - <author>Bjoern Milcke</author> - <name>com.sun.star.comp.office.ChXChartView</name> - <description> - This component provides access to the view of a chart document. - It can be used to select objects inside the chart as if clicked - using the mouse. -</description> - <loader-name>com.sun.star.loader.SharedLibrary</loader-name> - <language>c++</language> - <status value="final"/> - <supported-service>com.sun.star.view.OfficeDocumentView</supported-service> - </component-description> -</module-description> diff --git a/binfilter/bf_sch/source/ui/unoidl/descr/ChXDataPoint.xml b/binfilter/bf_sch/source/ui/unoidl/descr/ChXDataPoint.xml deleted file mode 100644 index 69b167ea5..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/descr/ChXDataPoint.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd"> -<module-description xmlns:xlink="http://www.w3.org/1999/xlink"> - <module-name>sch</module-name> - <component-description> - <author>Bjoern Milcke</author> - <name>com.sun.star.comp.office.ChXDataPoint</name> - <description> - This component bears properties for data point objects of - a chart -</description> - <loader-name>com.sun.star.loader.SharedLibrary</loader-name> - <language>c++</language> - <status value="final"/> - <supported-service>com.sun.star.chart.ChartDataPointProperties</supported-service> - <supported-service>com.sun.star.drawing.LineProperties</supported-service> - <supported-service>com.sun.star.drawing.FillProperties</supported-service> - <supported-service>com.sun.star.style.CharacterProperties</supported-service> - <supported-service>com.sun.star.xml.UserDefinedAttributeSupplier</supported-service> - </component-description> -</module-description> diff --git a/binfilter/bf_sch/source/ui/unoidl/descr/ChXDataRow.xml b/binfilter/bf_sch/source/ui/unoidl/descr/ChXDataRow.xml deleted file mode 100644 index 18487050d..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/descr/ChXDataRow.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd"> -<module-description xmlns:xlink="http://www.w3.org/1999/xlink"> - <module-name>sch</module-name> - <component-description> - <author>Bjoern Milcke</author> - <name>com.sun.star.comp.office.ChXDataRow</name> - <description> - This component provides properties for a series of a chart, - i.e. a group of corresponding data points -</description> - <loader-name>com.sun.star.loader.SharedLibrary</loader-name> - <language>c++</language> - <status value="final"/> - <supported-service>com.sun.star.chart.ChartDataPointProperties</supported-service> - <supported-service>com.sun.star.chart.ChartDataRowProperties</supported-service> - <supported-service>com.sun.star.chart.ChartStatistics</supported-service> - <supported-service>com.sun.star.drawing.LineProperties</supported-service> - <supported-service>com.sun.star.drawing.FillProperties</supported-service> - <supported-service>com.sun.star.style.CharacterProperties</supported-service> - <supported-service>com.sun.star.xml.UserDefinedAttributeSupplier</supported-service> - </component-description> -</module-description> diff --git a/binfilter/bf_sch/source/ui/unoidl/descr/ChXDiagram.xml b/binfilter/bf_sch/source/ui/unoidl/descr/ChXDiagram.xml deleted file mode 100644 index e567ffeb8..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/descr/ChXDiagram.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd"> -<module-description xmlns:xlink="http://www.w3.org/1999/xlink"> - <module-name>sch</module-name> - <component-description> - <author>Bjoern Milcke</author> - <name>com.sun.star.comp.office.ChXDiagram</name> - <description> - This component provides access to the plotting area of the chart, - i.e. the object where the chart data is represented graphically. -</description> - <loader-name>com.sun.star.loader.SharedLibrary</loader-name> - <language>c++</language> - <status value="final"/> - <supported-service>com.sun.star.chart.Diagram</supported-service> - <supported-service>com.sun.star.chart.LineDiagram</supported-service> - <supported-service>com.sun.star.chart.ChartAxisXSupplier</supported-service> - <supported-service>com.sun.star.chart.ChartAxisYSupplier</supported-service> - <supported-service>com.sun.star.chart.ChartTwoAxisXSupplier</supported-service> - <supported-service>com.sun.star.chart.ChartTwoAxisYSupplier</supported-service> - <supported-service>com.sun.star.chart.StackableDiagram</supported-service> - <supported-service>com.sun.star.chart.Dim3DDiagram</supported-service> - <supported-service>com.sun.star.chart.AreaDiagram</supported-service> - <supported-service>com.sun.star.chart.BarDiagram</supported-service> - <supported-service>com.sun.star.chart.PieDiagram</supported-service> - <supported-service>com.sun.star.chart.DonutDiagram</supported-service> - <supported-service>com.sun.star.chart.XYDiagram</supported-service> - <supported-service>com.sun.star.chart.NetDiagram</supported-service> - <supported-service>com.sun.star.chart.StockDiagram</supported-service> - <supported-service>com.sun.star.xml.UserDefinedAttributeSupplier</supported-service> - </component-description> -</module-description> diff --git a/binfilter/bf_sch/source/ui/unoidl/descr/ChartArea.xml b/binfilter/bf_sch/source/ui/unoidl/descr/ChartArea.xml deleted file mode 100644 index 285472f67..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/descr/ChartArea.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd"> -<module-description xmlns:xlink="http://www.w3.org/1999/xlink"> - <module-name>sch</module-name> - <component-description> - <author>Bjoern Milcke</author> - <name>com.sun.star.comp.office.ChartArea</name> - <description> - This component represents the background object of the entire - chart region. -</description> - <loader-name>com.sun.star.loader.SharedLibrary</loader-name> - <language>c++</language> - <status value="final"/> - <supported-service>com.sun.star.chart.ChartArea</supported-service> - <supported-service>com.sun.star.drawing.FillProperties</supported-service> - <supported-service>com.sun.star.drawing.LineProperties</supported-service> - <supported-service>com.sun.star.xml.UserDefinedAttributeSupplier</supported-service> - </component-description> -</module-description> diff --git a/binfilter/bf_sch/source/ui/unoidl/descr/ChartGrid.xml b/binfilter/bf_sch/source/ui/unoidl/descr/ChartGrid.xml deleted file mode 100644 index 0652b89f6..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/descr/ChartGrid.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd"> -<module-description xmlns:xlink="http://www.w3.org/1999/xlink"> - <module-name>sch</module-name> - <component-description> - <author>Bjoern Milcke</author> - <name>com.sun.star.comp.office.ChartGrid</name> - <description> - This component provides access to the line objects representing - grids inside the plot area of a chart -</description> - <loader-name>com.sun.star.loader.SharedLibrary</loader-name> - <language>c++</language> - <status value="final"/> - <supported-service>com.sun.star.chart.ChartGrid</supported-service> - <supported-service>com.sun.star.drawing.LineProperties</supported-service> - <supported-service>com.sun.star.xml.UserDefinedAttributeSupplier</supported-service> - </component-description> -</module-description> diff --git a/binfilter/bf_sch/source/ui/unoidl/descr/ChartLegend.xml b/binfilter/bf_sch/source/ui/unoidl/descr/ChartLegend.xml deleted file mode 100644 index de8c69cf8..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/descr/ChartLegend.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd"> -<module-description xmlns:xlink="http://www.w3.org/1999/xlink"> - <module-name>sch</module-name> - <component-description> - <author>Bjoern Milcke</author> - <name>com.sun.star.comp.office.ChartLegend</name> - <description> - This component provides access to the legend object of a chart -</description> - <loader-name>com.sun.star.loader.SharedLibrary</loader-name> - <language>c++</language> - <status value="final"/> - <supported-service>com.sun.star.chart.ChartLegend</supported-service> - <supported-service>com.sun.star.style.CharacterProperties</supported-service> - <supported-service>com.sun.star.drawing.FillProperties</supported-service> - <supported-service>com.sun.star.drawing.LineProperties</supported-service> - <supported-service>com.sun.star.xml.UserDefinedAttributeSupplier</supported-service> - </component-description> -</module-description> diff --git a/binfilter/bf_sch/source/ui/unoidl/descr/ChartLine.xml b/binfilter/bf_sch/source/ui/unoidl/descr/ChartLine.xml deleted file mode 100644 index 4e03597f6..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/descr/ChartLine.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd"> -<module-description xmlns:xlink="http://www.w3.org/1999/xlink"> - <module-name>sch</module-name> - <component-description> - <author>Bjoern Milcke</author> - <name>com.sun.star.comp.office.ChartLine</name> - <description> - This component provides line properties of several linear objects - in a chart like a mean-value-line or a regression curve -</description> - <loader-name>com.sun.star.loader.SharedLibrary</loader-name> - <language>c++</language> - <status value="final"/> - <supported-service>com.sun.star.chart.ChartLine</supported-service> - <supported-service>com.sun.star.drawing.LineProperties</supported-service> - <supported-service>com.sun.star.xml.UserDefinedAttributeSupplier</supported-service> - </component-description> -</module-description> diff --git a/binfilter/bf_sch/source/ui/unoidl/descr/ChartTitle.xml b/binfilter/bf_sch/source/ui/unoidl/descr/ChartTitle.xml deleted file mode 100644 index 8972f3c97..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/descr/ChartTitle.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd"> -<module-description xmlns:xlink="http://www.w3.org/1999/xlink"> - <module-name>sch</module-name> - <component-description> - <author>Bjoern Milcke</author> - <name>com.sun.star.comp.office.ChartTitle</name> - <description> - This component provides main-/subtitle of the chart and - titles of axis objects -</description> - <loader-name>com.sun.star.loader.SharedLibrary</loader-name> - <language>c++</language> - <status value="final"/> - <supported-service>com.sun.star.chart.ChartTitle</supported-service> - <supported-service>com.sun.star.drawing.Shape</supported-service> - <supported-service>com.sun.star.style.CharacterProperties</supported-service> - <supported-service>com.sun.star.xml.UserDefinedAttributeSupplier</supported-service> - </component-description> -</module-description> diff --git a/binfilter/bf_sch/source/ui/unoidl/makefile.mk b/binfilter/bf_sch/source/ui/unoidl/makefile.mk deleted file mode 100644 index 98fa1ce94..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/makefile.mk +++ /dev/null @@ -1,89 +0,0 @@ -#************************************************************************* -# -# 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. -# -#************************************************************************* - -PRJ=..$/..$/..$/.. -BFPRJ=..$/..$/.. - -PRJNAME = binfilter -PROJECTPCH = sch -PROJECTPCHSOURCE = $(BFPRJ)$/util$/sch_sch -TARGET = sch_chxchart -ENABLE_EXCEPTIONS = TRUE -BOOTSTRAP_SERVICE = FALSE - -# --- Settings ----------------------------------------------------- -.INCLUDE : settings.mk -INC+= -I$(PRJ)$/inc$/bf_sch - -.IF "$(GUI)" == "WNT" -CFLAGS+=-Zm500 -.ENDIF - -# --- Files -------------------------------------------------------- - -CXXFILES = \ - sch_ChXChartAxis.cxx \ - sch_ChXChartData.cxx \ - sch_ChXChartDataChangeEventListener.cxx \ - sch_ChXChartDocument.cxx \ - sch_ChXChartObject.cxx \ - sch_ChXDataPoint.cxx \ - sch_ChXDataRow.cxx \ - sch_ChXDiagram.cxx \ - sch_mapprov.cxx \ - sch_ChXChartDrawPage.cxx \ - sch_ChartLegend.cxx \ - sch_ChartTitle.cxx \ - sch_ChartLegend.cxx \ - sch_ChartArea.cxx \ - sch_ChartLine.cxx \ - sch_ChartGrid.cxx \ - sch_register.cxx \ - sch_unodoc.cxx - -SLOFILES = \ - $(SLO)$/sch_ChXChartAxis.obj \ - $(SLO)$/sch_ChXChartData.obj \ - $(SLO)$/sch_ChXChartDataChangeEventListener.obj \ - $(SLO)$/sch_ChXChartDocument.obj \ - $(SLO)$/sch_ChXChartObject.obj \ - $(SLO)$/sch_ChXDataPoint.obj \ - $(SLO)$/sch_ChXDataRow.obj \ - $(SLO)$/sch_ChXDiagram.obj \ - $(SLO)$/sch_mapprov.obj \ - $(SLO)$/sch_ChXChartDrawPage.obj \ - $(SLO)$/sch_ChartLegend.obj \ - $(SLO)$/sch_ChartTitle.obj \ - $(SLO)$/sch_ChartArea.obj \ - $(SLO)$/sch_ChartLine.obj \ - $(SLO)$/sch_ChartGrid.obj \ - $(SLO)$/sch_register.obj \ - $(SLO)$/sch_unodoc.obj - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartAxis.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartAxis.cxx deleted file mode 100644 index afdce0077..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartAxis.cxx +++ /dev/null @@ -1,901 +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. - * - ************************************************************************/ - -#include "ChXChartAxis.hxx" -#include "schattr.hxx" - -// header for class OGuard -// header for class Application -#include <vcl/svapp.hxx> -#include <rtl/uuid.h> -#include <rtl/memory.h> -#include <rtl/ustring.h> - -// header for SvxDoubleItem -#ifndef _SVX_CHRTITEM_HXX -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTTEXTORDER SCHATTR_TEXT_ORDER -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT - -#include <bf_svtools/eitem.hxx> - -#endif -#include "charttyp.hxx" -// header for SvxUnoTextRangeBase -// for OWN_ATTR_... -#include <bf_svx/unoshprp.hxx> -// for SID_ATTR_... -#include <bf_svx/svxids.hrc> -#include <bf_svx/unoshape.hxx> - -#include <com/sun/star/chart/ChartAxisArrangeOrderType.hpp> - -#include "chaxis.hxx" -#include "mapprov.hxx" -#include "pairs.hxx" - -#include "unonames.hxx" - -namespace binfilter { - -using namespace ::rtl; -using namespace ::com::sun::star; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::beans; - - -ChXChartAxis::ChXChartAxis( ChartModel* _Model, long _WhichId ) : - ChXChartObject( CHMAP_AXIS, _Model, _WhichId ) -{ -} - -ChXChartAxis::~ChXChartAxis() -{} - - -::rtl::OUString SAL_CALL ChXChartAxis::getImplementationName() -throw( uno::RuntimeException ) -{ - return SCH_ASCII_TO_OU( "ChXChartAxis" ); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChXChartAxis::getSupportedServiceNames() - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - uno::Sequence< ::rtl::OUString > aSeq( 4 ); - aSeq[ 0 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartAxis" )); - aSeq[ 1 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.LineProperties" )); - aSeq[ 2 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.style.CharacterProperties" )); - aSeq[ 3 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.UserDefinedAttributeSupplier" )); - - return aSeq; -} - -// generate a unique Id -const uno::Sequence< sal_Int8 > & ChXChartAxis::getUnoTunnelId() throw() -{ - static uno::Sequence< sal_Int8 > * pSeq = 0; - if( !pSeq ) - { - osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); - if( !pSeq ) - { - static uno::Sequence< sal_Int8 > aSeq( 16 ); - rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); - pSeq = &aSeq; - } - } - return *pSeq; -} - -void ChXChartAxis::InitNumberFormatter() throw( uno::RuntimeException ) -{ - if( ! rNumberFormatter.is()) - { - if( mpModel ) - rNumberFormatter = new SvNumberFormatsSupplierObj( mpModel->GetNumFormatter() ); - else - rNumberFormatter = new SvNumberFormatsSupplierObj(); - } - - if( ! rNumberFormatter.is()) - throw uno::RuntimeException(); -} - -// XNumberFormatsSupplier -uno::Reference< beans::XPropertySet > SAL_CALL ChXChartAxis::getNumberFormatSettings() throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - InitNumberFormatter(); - - return rNumberFormatter.get()->getNumberFormatSettings(); -} - -uno::Reference< util::XNumberFormats > SAL_CALL ChXChartAxis::getNumberFormats() throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - InitNumberFormatter(); - - return rNumberFormatter.get()->getNumberFormats(); -} - -// XInterface -uno::Any SAL_CALL ChXChartAxis::queryInterface( const uno::Type & rType ) - throw ( uno::RuntimeException ) -{ - uno::Any aAny = ChXChartObject::queryInterface( rType ); - - if( ! aAny.hasValue() ) - { - InitNumberFormatter(); - aAny = rNumberFormatter.get()->queryInterface( rType ); - } - - return aAny; -} - -void SAL_CALL ChXChartAxis::acquire() throw() -{ - ChXChartObject::acquire(); -} - -void SAL_CALL ChXChartAxis::release() throw() -{ - ChXChartObject::release(); -} - -// XTypeProvider -uno::Sequence< uno::Type > SAL_CALL ChXChartAxis::getTypes() throw( uno::RuntimeException ) -{ - if( maTypeSequence.getLength() == 0 ) - { - const uno::Sequence< uno::Type > aBaseTypes( ChXChartObject::getTypes() ); - const sal_Int32 nBaseTypes = aBaseTypes.getLength(); - const uno::Type* pBaseTypes = aBaseTypes.getConstArray(); - - maTypeSequence.realloc( nBaseTypes + 1 ); // Note: Keep the size updated !! - uno::Type* pTypes = maTypeSequence.getArray(); - - *pTypes++ = ::getCppuType((const uno::Reference< util::XNumberFormatsSupplier >*)0); - - for( sal_Int32 nType = 0; nType < nBaseTypes; nType++ ) - *pTypes++ = *pBaseTypes++; - } - - return maTypeSequence; -} - -uno::Sequence< sal_Int8 > SAL_CALL ChXChartAxis::getImplementationId() throw( uno::RuntimeException ) -{ - static uno::Sequence< sal_Int8 > aId; - if( aId.getLength() == 0 ) - { - aId.realloc( 16 ); - rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True ); - } - return aId; -} - -// XShapeDescriptor -::rtl::OUString SAL_CALL ChXChartAxis::getShapeType() - throw( uno::RuntimeException ) -{ - return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartAxis" )); -} - -// XUnoTunnel -sal_Int64 SAL_CALL ChXChartAxis::getSomething( const uno::Sequence< sal_Int8 >& aIdentifier ) - throw( uno::RuntimeException ) -{ - if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), - aIdentifier.getConstArray(), 16 ) ) - { - return (sal_Int64)this; - } - return 0; -} - -// XPropertySet -uno::Any SAL_CALL ChXChartAxis::getPropertyValue( const ::rtl::OUString& PropertyName ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - if( mpModel ) - { - uno::Any aAny; - if( PropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( UNONAME_TEXT_ORDER ))) - { - SfxItemSet aSet( mpModel->GetItemPool(), SCHATTR_TEXT_ORDER, SCHATTR_TEXT_ORDER ); - mpModel->GetAttr( mnWhichId, aSet ); - - chart::ChartAxisArrangeOrderType eArrOrder; - SvxChartTextOrder eTextOrder = - ((const SvxChartTextOrderItem&)(aSet.Get( SCHATTR_TEXT_ORDER ))).GetValue(); - - switch( eTextOrder ) - { - case CHTXTORDER_SIDEBYSIDE: - eArrOrder = chart::ChartAxisArrangeOrderType_SIDE_BY_SIDE; break; - case CHTXTORDER_DOWNUP: - eArrOrder = chart::ChartAxisArrangeOrderType_STAGGER_EVEN; break; - case CHTXTORDER_UPDOWN: - eArrOrder = chart::ChartAxisArrangeOrderType_STAGGER_ODD; break; - case CHTXTORDER_AUTO: - default: - eArrOrder = chart::ChartAxisArrangeOrderType_AUTO; break; - } - aAny <<= eArrOrder; - return aAny; - } - else if( PropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( UNONAME_NUMBERFORMAT ))) - { - // if we have a percent chart use the correct number format item - ChartType aType( mpModel ); - if( aType.IsPercent()) - { - SfxItemSet aSet( mpModel->GetItemPool(), SCHATTR_AXIS_NUMFMTPERCENT, SCHATTR_AXIS_NUMFMTPERCENT ); - mpModel->GetAttr( mnWhichId, aSet ); - - aAny <<= (sal_Int32)(((const SfxUInt32Item&)(aSet.Get( SCHATTR_AXIS_NUMFMTPERCENT ))).GetValue()); - return aAny; - } - } - } - - return ChXChartObject::getPropertyValue( PropertyName ); -} - -void SAL_CALL ChXChartAxis::setPropertyValue( const ::rtl::OUString& aPropertyName, const uno::Any& aValue ) - throw( beans::UnknownPropertyException, - beans::PropertyVetoException, - lang::IllegalArgumentException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - if( mpModel && mnWhichId != CHOBJID_ANY ) - { - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( aPropertyName ); - - if( pMap && pMap->nWID ) - { - if( pMap->nFlags & beans::PropertyAttribute::READONLY ) - throw beans::PropertyVetoException(); - - USHORT nWID = pMap->nWID; - - // create item set that contains nWID and maybe more - USHORT nAutoWid = 0; - SfxItemSet* pSet = NULL; - switch( nWID ) - { - // min/max/stepmain/stephelp/origin need to disable the auto-settings - case SCHATTR_AXIS_MIN: - nAutoWid = SCHATTR_AXIS_AUTO_MIN; - break; - case SCHATTR_AXIS_MAX: - nAutoWid = SCHATTR_AXIS_AUTO_MAX; - break; - case SCHATTR_AXIS_STEP_MAIN: - nAutoWid = SCHATTR_AXIS_AUTO_STEP_MAIN; - break; - case SCHATTR_AXIS_STEP_HELP: - nAutoWid = SCHATTR_AXIS_AUTO_STEP_HELP; - break; - case SCHATTR_AXIS_ORIGIN: - nAutoWid = SCHATTR_AXIS_AUTO_ORIGIN; - break; - - case SCHATTR_AXIS_LOGARITHM: - pSet = new SfxItemSet( mpModel->GetItemPool(), nWID, nWID, - SCHATTR_AXIS_AUTO_STEP_MAIN, SCHATTR_AXIS_AUTO_STEP_MAIN, - SCHATTR_AXIS_MIN, SCHATTR_AXIS_MIN, - SCHATTR_AXIS_MAX, SCHATTR_AXIS_MAX, 0 ); - break; - case SCHATTR_AXIS_AUTO_STEP_MAIN: - pSet = new SfxItemSet( mpModel->GetItemPool(), nWID, nWID, - SCHATTR_AXIS_STEP_MAIN, SCHATTR_AXIS_STEP_MAIN, 0 ); - break; - case SCHATTR_AXIS_AUTO_STEP_HELP: - pSet = new SfxItemSet( mpModel->GetItemPool(), nWID, nWID, - SCHATTR_AXIS_STEP_HELP, SCHATTR_AXIS_STEP_HELP, 0 ); - break; - - case XATTR_LINEEND: - case XATTR_LINESTART: - case XATTR_LINEDASH: - // there is a special handling done in the base class for this - ChXChartObject::setPropertyValue( aPropertyName, aValue ); - return; // RETURN ! - - case SCHATTR_AXIS_NUMFMT: - { - ChartType aType( mpModel ); - if( aType.IsPercent()) - { - nWID = SCHATTR_AXIS_NUMFMTPERCENT; - } - } - // intentionally not breaking ! (nWID just changed) - default: - pSet = new SfxItemSet( mpModel->GetItemPool(), nWID, nWID ); - } - if( nAutoWid ) - pSet = new SfxItemSet( mpModel->GetItemPool(), nWID, nWID, - nAutoWid, nAutoWid, 0 ); - DBG_ASSERT( pSet, "ItemSet was not created!" ); - - mpModel->GetAttr( mnWhichId, *pSet ); - - if( pSet->GetItemState( nWID ) != SFX_ITEM_SET ) - { - // get default from ItemPool - if( mpModel->GetItemPool().IsWhich( nWID )) - { - pSet->Put( mpModel->GetItemPool().GetDefaultItem( nWID )); - } - else if( nWID != SID_ATTR_NUMBERFORMAT_SOURCE ) - { -#if OSL_DEBUG_LEVEL > 1 - String aTmpString( aPropertyName ); - ByteString aProp( aTmpString, RTL_TEXTENCODING_ASCII_US ); - OSL_TRACE( "ChartAxis: Property %s has an invalid ID (%d)", aProp.GetBuffer(), nWID ); -#endif - } - } - - // special treatment for some properties - switch( nWID ) - { - case SCHATTR_TEXT_ORDER: - { - SvxChartTextOrder eTextOrder; - chart::ChartAxisArrangeOrderType eArrOrder; - if( ! ( aValue >>= eArrOrder )) - { - // basic might give us an int instead of the enum type - sal_Int32 nIntVal = 0; - if( aValue >>= nIntVal ) - { - eArrOrder = SAL_STATIC_CAST( chart::ChartAxisArrangeOrderType, nIntVal ); - } - } - switch( eArrOrder ) - { - case chart::ChartAxisArrangeOrderType_SIDE_BY_SIDE: - eTextOrder = CHTXTORDER_SIDEBYSIDE; break; - case chart::ChartAxisArrangeOrderType_STAGGER_EVEN: - eTextOrder = CHTXTORDER_DOWNUP; break; - case chart::ChartAxisArrangeOrderType_STAGGER_ODD: - eTextOrder = CHTXTORDER_UPDOWN; break; - case chart::ChartAxisArrangeOrderType_AUTO: - default: - eTextOrder = CHTXTORDER_AUTO; break; - } - pSet->Put( SvxChartTextOrderItem( eTextOrder )); - } - break; - case SCHATTR_TEXT_ORIENT: - { - sal_Bool bVal = sal_False; - if( aValue >>= bVal ) - { - pSet->Put( SvxChartTextOrientItem( - bVal - ? CHTXTORIENT_STACKED - : CHTXTORIENT_AUTOMATIC )); - } - } - break; - case SCHATTR_AXIS_AUTO_STEP_MAIN: - case SCHATTR_AXIS_AUTO_STEP_HELP: - { - sal_Bool bVal(sal_False); - aValue >>= bVal; - if( ! bVal ) - { - USHORT nStepWID = ( (nWID == SCHATTR_AXIS_AUTO_STEP_MAIN) ? - SCHATTR_AXIS_STEP_MAIN : - SCHATTR_AXIS_STEP_HELP ); - - BOOL bLog = FALSE; - ChartAxis* pAxis = mpModel->GetAxis( mnWhichId ); - if( pAxis ) - bLog = pAxis->IsLogarithm(); - const SfxPoolItem* pPoolItem = NULL; - if( pSet->GetItemState( nStepWID, TRUE, &pPoolItem ) == SFX_ITEM_SET ) - { - double fOld = ((const SvxDoubleItem*)pPoolItem)->GetValue(); - if( fOld <= (bLog? 1.0: 0.0) ) - pSet->Put( SvxDoubleItem( bLog? 10.0 : 1.0, nStepWID ) ); - } - } - maPropSet.setPropertyValue( pMap, aValue, *pSet ); - } - break; - case SCHATTR_AXIS_LOGARITHM: - { - sal_Bool bVal(sal_False); - aValue >>= bVal; - if( bVal ) - { - // for logarithmic scale always use automatic steps - pSet->Put( SfxBoolItem( SCHATTR_AXIS_AUTO_STEP_MAIN, TRUE ) ); - - const SfxPoolItem* pPoolItem = NULL; - double fMin = 0.0; - if( pSet->GetItemState( SCHATTR_AXIS_MIN, TRUE, &pPoolItem ) == SFX_ITEM_SET ) - { - fMin = ((const SvxDoubleItem*)pPoolItem)->GetValue(); - if( fMin <= 0.0 ) - pSet->Put( SvxDoubleItem( 1.0, SCHATTR_AXIS_MIN ) ); - } - if( pSet->GetItemState( SCHATTR_AXIS_MAX, TRUE, &pPoolItem ) == SFX_ITEM_SET ) - { - if( ((const SvxDoubleItem*)pPoolItem)->GetValue() <= fMin ) - pSet->Put( SvxDoubleItem( fMin * 10.0, SCHATTR_AXIS_MAX )); - } - } - maPropSet.setPropertyValue( pMap, aValue, *pSet ); - } - break; - - case SCHATTR_AXIS_STEP_MAIN: - case SCHATTR_AXIS_STEP_HELP: - { - BOOL bLog = FALSE; - ChartAxis* pAxis = mpModel->GetAxis( mnWhichId ); - if( pAxis ) - bLog = pAxis->IsLogarithm(); - double fVal(0.0); - aValue >>= fVal; - if( fVal <= bLog? 1.0: 0.0 ) - throw lang::IllegalArgumentException(); - - pSet->Put( SfxBoolItem( nAutoWid, FALSE )); - maPropSet.setPropertyValue( pMap, aValue, *pSet ); - } - break; - - case SCHATTR_AXIS_MIN: - case SCHATTR_AXIS_MAX: - { - ChartAxis* pAxis = mpModel->GetAxis( mnWhichId ); - double fVal(0.0); - aValue >>= fVal; - if( pAxis && - pAxis->IsLogarithm() && fVal <= 0.0 ) - throw lang::IllegalArgumentException(); - - pSet->Put( SfxBoolItem( nAutoWid, FALSE )); - maPropSet.setPropertyValue( pMap, aValue, *pSet ); - } - break; - - case SCHATTR_AXIS_ORIGIN: - pSet->Put( SfxBoolItem( nAutoWid, FALSE )); - maPropSet.setPropertyValue( pMap, aValue, *pSet ); - break; - - case SCHATTR_AXIS_NUMFMTPERCENT: - // was mapped from SCHATTR_AXIS_NUMFMT, so don't use standard mechanism - { - sal_Int32 nFmt(0); - aValue >>= nFmt; - pSet->Put( SfxUInt32Item( nWID, nFmt )); - } - break; - - case SID_ATTR_NUMBERFORMAT_SOURCE: - // this is not a which id (>4999) - { - sal_Bool bUseSource = sal_False; - aValue >>= bUseSource; - pSet->Put( SfxBoolItem( nWID, bUseSource )); - } - break; - - default: - // CL: convert special character properties - if( !SvxUnoTextRangeBase::SetPropertyValueHelper( *pSet, pMap, aValue, *pSet )) - maPropSet.setPropertyValue( pMap, aValue, *pSet ); - break; - } - - if( pSet->Count() ) - mpModel->ChangeAttr( *pSet, mnWhichId ); - else - throw beans::UnknownPropertyException(); - - delete pSet; - } - else - { - throw beans::UnknownPropertyException(); - } - } -} - - - -/* - In contrast to calling the method setPropertyValue (singular) for every given property name - the implementation of this method exploits the following properties: - 1: Both the given sequence of property names and the member property map are sorted according - to the property names. - 2: The item set which gathers all items changed by setting the properties is created only once. - 3: The solar mutex is acquired only once. -*/ -void SAL_CALL ChXChartAxis::setPropertyValues ( - const Sequence<OUString > & aPropertyNames, - const Sequence<Any > & aValues ) - throw ( beans::PropertyVetoException, - lang::IllegalArgumentException, - lang::WrappedTargetException, - uno::RuntimeException) -{ - SolarMutexGuard aGuard; - - if (mpModel == NULL || mnWhichId == CHOBJID_ANY) - return; - - // Get pointers to first elements of lists. - const SfxItemPropertyMap * pProperty = maPropSet.getPropertyMap (); - const OUString * pPropertyName = aPropertyNames.getConstArray (); - const Any * pValue = aValues.getConstArray (); - - USHORT nWID, nAutoWID; - - // Create the item which collects all items modified by setting a property. - SfxItemSet aAttributes (mpModel->GetItemPool(), nAxisWhichPairs); - mpModel->GetAttr (mnWhichId, aAttributes); - - // Iterate over all the given property names. - sal_Int32 nCounter = aPropertyNames.getLength(); - while (nCounter-- > 0) - { - AdvanceToName (pProperty, pPropertyName); - - nWID = pProperty->nWID; - - if (pProperty == NULL || pProperty->nWID == 0) - { - OUString sMessage = OUString (RTL_CONSTASCII_USTRINGPARAM ( "ChXChartAxis::setPropertyValues: unknown property ")); - sMessage += *pPropertyName; - throw UnknownPropertyException (sMessage, (::cppu::OWeakObject*)this); - } - - // If the item that internally represents the property is not set, then get it's - // default value. - if (aAttributes.GetItemState(nWID) != SFX_ITEM_SET) - { - // Get default from the model's item pool. - if (mpModel->GetItemPool().IsWhich (nWID)) - aAttributes.Put (mpModel->GetItemPool().GetDefaultItem(nWID)); -#if OSL_DEBUG_LEVEL > 1 - else if (nWID != SID_ATTR_NUMBERFORMAT_SOURCE) - { - String aTmpString (*pPropertyName); - ByteString aProp( aTmpString, RTL_TEXTENCODING_ASCII_US ); - OSL_TRACE( "ChartAxis: Property %s has an invalid ID (%d)", aProp.GetBuffer(), nWID ); - } -#endif - } - - // Set the property's new value and handle some special cases. - switch (nWID) - { - case SCHATTR_TEXT_ORDER: - { - SvxChartTextOrder eTextOrder; - chart::ChartAxisArrangeOrderType eArrOrder; - if ( ! ( *pValue >>= eArrOrder )) - { - // basic might give us an int instead of the enum type - sal_Int32 nIntVal = 0; - if( *pValue >>= nIntVal ) - eArrOrder = SAL_STATIC_CAST (chart::ChartAxisArrangeOrderType, nIntVal); - } - switch( eArrOrder ) - { - case chart::ChartAxisArrangeOrderType_SIDE_BY_SIDE: - eTextOrder = CHTXTORDER_SIDEBYSIDE; - break; - case chart::ChartAxisArrangeOrderType_STAGGER_EVEN: - eTextOrder = CHTXTORDER_DOWNUP; - break; - case chart::ChartAxisArrangeOrderType_STAGGER_ODD: - eTextOrder = CHTXTORDER_UPDOWN; - break; - case chart::ChartAxisArrangeOrderType_AUTO: - default: - eTextOrder = CHTXTORDER_AUTO; - break; - } - aAttributes.Put (SvxChartTextOrderItem( eTextOrder)); - } - break; - - case SCHATTR_TEXT_ORIENT: - { - sal_Bool bVal = sal_False; - if( *pValue >>= bVal ) - { - aAttributes.Put( SvxChartTextOrientItem( - bVal - ? CHTXTORIENT_STACKED - : CHTXTORIENT_AUTOMATIC )); - } - } - break; - - case SCHATTR_AXIS_AUTO_STEP_MAIN: - case SCHATTR_AXIS_AUTO_STEP_HELP: - { - sal_Bool bVal(sal_False); - *pValue >>= bVal; - if( ! bVal ) - { - USHORT nStepWID = ( (nWID == SCHATTR_AXIS_AUTO_STEP_MAIN) ? - SCHATTR_AXIS_STEP_MAIN : - SCHATTR_AXIS_STEP_HELP ); - - BOOL bLog = FALSE; - ChartAxis* pAxis = mpModel->GetAxis( mnWhichId ); - if( pAxis ) - bLog = pAxis->IsLogarithm(); - const SfxPoolItem* pPoolItem = NULL; - if( aAttributes.GetItemState( nStepWID, TRUE, &pPoolItem ) == SFX_ITEM_SET ) - { - double fOld = ((const SvxDoubleItem*)pPoolItem)->GetValue(); - if( fOld <= (bLog? 1.0: 0.0) ) - aAttributes.Put( SvxDoubleItem( bLog? 10.0 : 1.0, nStepWID ) ); - } - } - maPropSet.setPropertyValue( pProperty, *pValue, aAttributes ); - } - break; - - case SCHATTR_AXIS_LOGARITHM: - { - sal_Bool bVal(sal_False); - *pValue >>= bVal; - if( bVal ) - { - // for logarithmic scale always use automatic steps - aAttributes.Put( SfxBoolItem( SCHATTR_AXIS_AUTO_STEP_MAIN, TRUE ) ); - - const SfxPoolItem* pPoolItem = NULL; - double fMin = 0.0; - if( aAttributes.GetItemState( SCHATTR_AXIS_MIN, TRUE, &pPoolItem ) == SFX_ITEM_SET ) - { - fMin = ((const SvxDoubleItem*)pPoolItem)->GetValue(); - if( fMin <= 0.0 ) - aAttributes.Put( SvxDoubleItem( 1.0, SCHATTR_AXIS_MIN ) ); - } - if( aAttributes.GetItemState( SCHATTR_AXIS_MAX, TRUE, &pPoolItem ) == SFX_ITEM_SET ) - { - if( ((const SvxDoubleItem*)pPoolItem)->GetValue() <= fMin ) - aAttributes.Put( SvxDoubleItem( fMin * 10.0, SCHATTR_AXIS_MAX )); - } - } - maPropSet.setPropertyValue( pProperty, *pValue, aAttributes ); - } - break; - - case SCHATTR_AXIS_STEP_MAIN: - case SCHATTR_AXIS_STEP_HELP: - { - BOOL bLog = FALSE; - ChartAxis* pAxis = mpModel->GetAxis( mnWhichId ); - if( pAxis ) - bLog = pAxis->IsLogarithm(); - double fVal(0.0); - *pValue >>= fVal; - if( fVal <= bLog? 1.0: 0.0 ) - throw lang::IllegalArgumentException(); - - if (nWID == SCHATTR_AXIS_STEP_MAIN) - nAutoWID = SCHATTR_AXIS_AUTO_STEP_MAIN; - else - nAutoWID = SCHATTR_AXIS_AUTO_STEP_HELP; - aAttributes.Put( SfxBoolItem( nAutoWID, FALSE )); - maPropSet.setPropertyValue( pProperty, *pValue, aAttributes ); - } - break; - - case SCHATTR_AXIS_MIN: - case SCHATTR_AXIS_MAX: - { - ChartAxis* pAxis = mpModel->GetAxis( mnWhichId ); - double fVal(0.0); - *pValue >>= fVal; - if ( pAxis - && pAxis->IsLogarithm() - && fVal <= 0.0) - throw lang::IllegalArgumentException(); - if (nWID == SCHATTR_AXIS_MIN) - nAutoWID = SCHATTR_AXIS_AUTO_MIN; - else - nAutoWID = SCHATTR_AXIS_AUTO_MAX; - - aAttributes.Put( SfxBoolItem( nAutoWID, FALSE )); - maPropSet.setPropertyValue (pProperty, *pValue, aAttributes); - } - break; - - case SCHATTR_AXIS_ORIGIN: - aAttributes.Put (SfxBoolItem (SCHATTR_AXIS_AUTO_ORIGIN, FALSE)); - maPropSet.setPropertyValue (pProperty, *pValue, aAttributes); - break; - - case SCHATTR_AXIS_NUMFMTPERCENT: - // was mapped from SCHATTR_AXIS_NUMFMT, so don't use standard mechanism - { - sal_Int32 nFmt(0); - *pValue >>= nFmt; - aAttributes.Put( SfxUInt32Item( nWID, nFmt )); - } - break; - - case SID_ATTR_NUMBERFORMAT_SOURCE: - // this is not a which id (>4999) - { - sal_Bool bUseSource = sal_False; - *pValue >>= bUseSource; - aAttributes.Put (SfxBoolItem( nWID, bUseSource)); - } - break; - - case XATTR_LINEEND: - case XATTR_LINESTART: - case XATTR_LINEDASH: - if (pProperty->nMemberId == MID_NAME ) - { - ::rtl::OUString aString; - if (*pValue >>= aString) - SvxShape::SetFillAttribute (nWID, aString, aAttributes, mpModel); - break; - } - // note: this fall-through is intended - - default: - // CL: convert special character properties - if( !SvxUnoTextRangeBase::SetPropertyValueHelper ( - aAttributes, pProperty, *pValue, aAttributes)) - maPropSet.setPropertyValue (pProperty, *pValue, aAttributes); - break; - } - - // Advance to the next property, property name and value. - pPropertyName++; - pValue++; - } - - // Finally set the modified item set to the axis. - mpModel->ChangeAttr (aAttributes, mnWhichId); -} - - - - -/* -Sequence<PropertyState > SAL_CALL ChXChartAxis::getPropertyStates( - const Sequence<OUString > & aPropertyNames) - throw( UnknownPropertyException, - RuntimeException ) -{ - SolarMutexGuard aGuard; - - const sal_Int32 nCount = aPropertyNames.getLength(); - const ::rtl::OUString * pName = aPropertyNames.getConstArray(); - Sequence<PropertyState > aStates (nCount); - PropertyState * pState = aStates.getArray(); - - if (mpModel == NULL) - return aStates; - - for (sal_Int32 nIdx = 0; nIdx < nCount; nIdx++) - pState[nIdx] = getPropertyState (pName[nIdx]); - - return aStates; -} -*/ - - -//===== protected methods ======================================================================= - -SfxItemSet * ChXChartAxis::CreateItemSet (void) -{ - SfxItemSet * pAttributes = new SfxItemSet (mpModel->GetItemPool(), nAxisWhichPairs); - mpModel->GetAttr (mnWhichId, *pAttributes, mnIndex); - return pAttributes; -} - - - -void ChXChartAxis::GetPropertyValue (const SfxItemPropertyMap & rProperty, - ::com::sun::star::uno::Any & rValue, - SfxItemSet & rAttributes) -{ - switch (rProperty.nWID) - { - case SCHATTR_TEXT_ORDER: - { - chart::ChartAxisArrangeOrderType eArrOrder; - - switch (((const SvxChartTextOrderItem&)(rAttributes.Get( SCHATTR_TEXT_ORDER ))).GetValue()) - { - case CHTXTORDER_SIDEBYSIDE: - eArrOrder = chart::ChartAxisArrangeOrderType_SIDE_BY_SIDE; - break; - case CHTXTORDER_DOWNUP: - eArrOrder = chart::ChartAxisArrangeOrderType_STAGGER_EVEN; - break; - case CHTXTORDER_UPDOWN: - eArrOrder = chart::ChartAxisArrangeOrderType_STAGGER_ODD; - break; - case CHTXTORDER_AUTO: - default: - eArrOrder = chart::ChartAxisArrangeOrderType_AUTO; - break; - } - rValue <<= eArrOrder; - break; - } - case SCHATTR_AXIS_NUMFMT: - { - // if we have a percent chart use the correct number format item - ChartType aType( mpModel ); - if( aType.IsPercent()) - { - rValue <<= (sal_Int32)(((const SfxUInt32Item&)(rAttributes.Get( SCHATTR_AXIS_NUMFMTPERCENT ))).GetValue()); - } - else - { - rValue <<= (sal_Int32)(((const SfxUInt32Item&)(rAttributes.Get( SCHATTR_AXIS_NUMFMT ))).GetValue()); - } - } - break; - - - default: - ChXChartObject::GetPropertyValue (rProperty, rValue, rAttributes); - } -} - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartData.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartData.cxx deleted file mode 100644 index c867d1ef9..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartData.cxx +++ /dev/null @@ -1,479 +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. - * - ************************************************************************/ - -#include "ChXChartData.hxx" - -// header for SvxServiceInfoHelper -#include <bf_svx/unoprov.hxx> -// header for class OGuard -// header for rtl_createUuid -#include <rtl/uuid.h> -// header for class Application -#include <vcl/svapp.hxx> - -#include "chtmodel.hxx" -#include "memchrt.hxx" -namespace binfilter { - -#ifndef SCH_ASCII_TO_OU -#define SCH_ASCII_TO_OU( s ) ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( s ) ) -#endif - -using namespace ::com::sun::star; - -#define SCH_BIN_MIN(a,b) ( ((a)<(b))? (a) : (b) ) - -// ---------------------------------------- -// class ChXChartData -// ---------------------------------------- - -ChXChartData::ChXChartData( uno::Reference< lang::XComponent > xModel, - ChartModel* pModel ) : - maListeners( GetMutex() ), - mpModel( pModel ) -{ - if( xModel.is()) - { - uno::Reference< lang::XEventListener > xListener = this; - xModel->addEventListener( xListener ); - } - - DBG_WARNING( "Parameter pModel is NULL." ); -} - -ChXChartData::~ChXChartData() -{} - -void ChXChartData::DataModified( chart::ChartDataChangeEvent& aEvent ) -{ - if( !maListeners.getLength() ) return; - - uno::Reference< uno::XInterface > xSrc( SAL_STATIC_CAST( cppu::OWeakObject*, this ), uno::UNO_QUERY ); - if( xSrc.is() ) - aEvent.Source = xSrc; - - cppu::OInterfaceIteratorHelper aIter( maListeners ); - - while( aIter.hasMoreElements() ) - { - uno::Reference< chart::XChartDataChangeEventListener > xListener( aIter.next(), uno::UNO_QUERY ); - xListener->chartDataChanged( aEvent ); - } -} - -// generate a uniqueId -const uno::Sequence< sal_Int8 > & ChXChartData::getUnoTunnelId() throw() -{ - static uno::Sequence< sal_Int8 > * pSeq = 0; - if( !pSeq ) - { - osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); - if( !pSeq ) - { - static uno::Sequence< sal_Int8 > aSeq( 16 ); - rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); - pSeq = &aSeq; - } - } - return *pSeq; -} - -ChXChartData* ChXChartData::getImplementation( uno::Reference< uno::XInterface > xData ) throw() -{ - uno::Reference< lang::XUnoTunnel > xUT( xData, uno::UNO_QUERY ); - if( xUT.is() ) - return reinterpret_cast< ChXChartData * >( xUT->getSomething( ChXChartData::getUnoTunnelId() )); - else - return NULL; -} - -// XChartData -void SAL_CALL ChXChartData::addChartDataChangeEventListener( - const uno::Reference< chart::XChartDataChangeEventListener >& aListener ) - throw( uno::RuntimeException ) -{ - uno::Reference< uno::XInterface > xIntf( aListener, uno::UNO_QUERY ); - if( xIntf.is() ) - maListeners.addInterface( xIntf ); -} - -void SAL_CALL ChXChartData::removeChartDataChangeEventListener( - const uno::Reference< chart::XChartDataChangeEventListener >& aListener ) - throw( uno::RuntimeException ) -{ - uno::Reference< uno::XInterface > xIntf( aListener, uno::UNO_QUERY ); - if( xIntf.is() ) - maListeners.removeInterface( xIntf ); -} - -double SAL_CALL ChXChartData::getNotANumber() throw( ::com::sun::star::uno::RuntimeException ) -{ - return DBL_MIN; -} - -sal_Bool SAL_CALL ChXChartData::isNotANumber( double nNumber ) throw( ::com::sun::star::uno::RuntimeException ) -{ - return (nNumber == getNotANumber()); -} - - -// XServiceInfo -::rtl::OUString SAL_CALL ChXChartData::getImplementationName() - throw( uno::RuntimeException ) -{ - return SCH_ASCII_TO_OU( "ChXChartData" ); -} - -sal_Bool SAL_CALL ChXChartData::supportsService( const ::rtl::OUString& ServiceName ) - throw( uno::RuntimeException ) -{ - return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() ); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChXChartData::getSupportedServiceNames() - throw( uno::RuntimeException ) -{ - uno::Sequence< ::rtl::OUString > aSeq; - SvxServiceInfoHelper::addToSequence( aSeq, 1, "com.sun.star.chart.ChartData"); - return aSeq; -} - -// XUnoTunnel -sal_Int64 SAL_CALL ChXChartData::getSomething( const uno::Sequence< sal_Int8 >& aIdentifier ) - throw( uno::RuntimeException ) -{ - if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), - aIdentifier.getConstArray(), 16 ) ) - { - return reinterpret_cast< sal_Int64 >( this ); - } - return 0; -} - -// XEventListener listens to disposing of XModel -void SAL_CALL ChXChartData::disposing( const lang::EventObject& /*Source*/ ) throw( uno::RuntimeException ) -{ - // XModel is disposed -> mpModel is invalid now - mpModel = NULL; -} - -// ---------------------------------------- -// class ChXChartDataArray -// ---------------------------------------- -uno::Sequence< uno::Type > ChXChartDataArray::maTypeSequence; - -ChXChartDataArray::ChXChartDataArray( uno::Reference< lang::XComponent > xModel, - ChartModel* pModel ) : - ChXChartData( xModel, pModel ) -{} - -ChXChartDataArray::~ChXChartDataArray() -{} - -// XInterface -uno::Any SAL_CALL ChXChartDataArray::queryInterface( const uno::Type& aType ) - throw( uno::RuntimeException ) -{ - if( aType == ::getCppuType((const uno::Reference< chart::XChartDataArray >*)0) ) - return uno::makeAny( uno::Reference< chart::XChartDataArray >(this)); - else - return ChXChartData::queryInterface( aType ); -} - -void SAL_CALL ChXChartDataArray::acquire() throw() -{ - ChXChartData::acquire(); -} - -void SAL_CALL ChXChartDataArray::release() throw() -{ - ChXChartData::release(); -} - - -// XTypeProvider -uno::Sequence< uno::Type > SAL_CALL ChXChartDataArray::getTypes() throw( uno::RuntimeException ) -{ - if( maTypeSequence.getLength() == 0 ) - { - uno::Sequence< uno::Type > aBaseTypes( ChXChartData::getTypes() ); - uno::Type* pBaseTypes = aBaseTypes.getArray(); - - maTypeSequence.realloc( aBaseTypes.getLength() + 1 ); // keep updated!! - uno::Type* pTypes = maTypeSequence.getArray(); - - // additional interfaces (1) - *pTypes++ = ::getCppuType((const uno::Reference< chart::XChartDataArray >*)0); - - for( sal_Int32 nType = aBaseTypes.getLength(); nType; nType-- ) - *pTypes++ = *pBaseTypes++; - } - return maTypeSequence; -} - -uno::Sequence< sal_Int8 > SAL_CALL ChXChartDataArray::getImplementationId() throw( uno::RuntimeException ) -{ - static uno::Sequence< sal_Int8 > aId; - if( aId.getLength() == 0 ) - { - aId.realloc( 16 ); - rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True ); - } - return aId; -} - - -// XChartDataArray -uno::Sequence< uno::Sequence< double > > SAL_CALL ChXChartDataArray::getData() throw( uno::RuntimeException ) -{ - DBG_ASSERT( mpModel, "No Model" ); - if( ! mpModel ) - return uno::Sequence< uno::Sequence< double > >(); - - SolarMutexGuard aGuard; - - double *pData; - - // get MemChart: - SchMemChart* pDocData = mpModel->GetChartData(); - - // number of rows and columns - sal_Int32 nCol, nColCnt = pDocData->GetColCount(); - sal_Int32 nRow, nRowCnt = pDocData->GetRowCount(); - - // create array - uno::Sequence< uno::Sequence< double > > aSequence( nRowCnt ); - uno::Sequence< double >* pSeqArray = aSequence.getArray(); - for( nRow = 0; nRow < nRowCnt; nRow++ ) - { - pSeqArray[ nRow ].realloc( nColCnt ); - } - - // copy data from MemChart to the array: - for( nRow = 0; nRow < nRowCnt; nRow++ ) - { - pData = pSeqArray[ nRow ].getArray(); // get row - for( nCol = 0; nCol < nColCnt; nCol++ ) - { - pData[ nCol ] = pDocData->GetData( (short)nCol, (short)nRow ); // copy data to column - } - } - return aSequence; -} - -void SAL_CALL ChXChartDataArray::setData( const uno::Sequence< uno::Sequence< double > >& aData ) - throw( uno::RuntimeException ) -{ - DBG_ASSERT( mpModel, "No Model" ); - if( ! mpModel ) - return; - - SolarMutexGuard aGuard; - - // get number of rows/columns - const uno::Sequence< double >* pSequence = aData.getConstArray(); - sal_Int32 nRow, nRowCnt = aData.getLength(); - sal_Int32 nCol, nColCnt = 0; - - const double* pData = NULL; - if( nRowCnt ) - { - pData = pSequence[ 0 ].getConstArray(); - nColCnt = pSequence->getLength(); - } - - // compare size to the size of the existing MemChart - SchMemChart* pDocData = mpModel->GetChartData(); - - if( nColCnt != (sal_Int32)pDocData->GetColCount() || - nRowCnt != (sal_Int32)pDocData->GetRowCount() ) - { // change size, i.e. create new MemChart - pDocData = new SchMemChart( (short)nColCnt, (short)nRowCnt ); - // save as much as possible (title, ...) - pDocData->SetNonNumericData( *(mpModel->GetChartData()) ); - } - - // copy data - for( nRow = 0; nRow < nRowCnt; nRow++ ) - { - pData = pSequence[ nRow ].getConstArray(); - for( nCol = 0; nCol < nColCnt; nCol++ ) - { - pDocData->SetData( (short)nCol, (short)nRow,pData[ nCol ] ); - } - } - - // data is only changed if new MemChart was created (otherwise everything is already in the chart) - // (Wird nur gewechselt, wenn neues erzeugt wurde (sonst ist schon alles im Chart)) - mpModel->ChangeChartData( *pDocData, FALSE ); - - // call listeners - chart::ChartDataChangeEvent aEvent; - aEvent.Type = chart::ChartDataChangeType_ALL; - aEvent.StartColumn = 0; - aEvent.EndColumn = 0; - aEvent.StartRow = 0; - aEvent.EndRow = 0; - - DataModified( aEvent ); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChXChartDataArray::getRowDescriptions() throw( uno::RuntimeException ) -{ - DBG_ASSERT( mpModel, "No Model" ); - if( ! mpModel ) - return uno::Sequence< ::rtl::OUString >(); - - SolarMutexGuard aGuard; - - SchMemChart* pDocData = mpModel->GetChartData(); - sal_Int32 nRow, nRowCnt = pDocData->GetRowCount(); - - uno::Sequence< ::rtl::OUString > aResult( nRowCnt ); - - ::rtl::OUString* pResultArray = aResult.getArray(); - for( nRow = 0; nRow < nRowCnt; nRow++ ) - { - pResultArray[ nRow ] = pDocData->GetRowText( (short)nRow ); - } - - return aResult; -} - -void SAL_CALL ChXChartDataArray::setRowDescriptions( const uno::Sequence< ::rtl::OUString >& aRowDescriptions ) - throw( uno::RuntimeException ) -{ - DBG_ASSERT( mpModel, "No Model" ); - if( ! mpModel ) - return; - - SolarMutexGuard aGuard; - - SchMemChart* pDocData = mpModel->GetChartData(); - sal_Int32 nRow, nRowCnt = SCH_BIN_MIN( (sal_Int32)pDocData->GetRowCount(), aRowDescriptions.getLength() ); - ::rtl::OUString* pString = ( (uno::Sequence< ::rtl::OUString >&)aRowDescriptions ).getArray(); - - for( nRow = 0; nRow < nRowCnt; nRow++ ) - { - pDocData->SetRowText( (short)nRow, pString[ nRow ] ); - } - mpModel->BuildChart( FALSE ); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChXChartDataArray::getColumnDescriptions() throw( uno::RuntimeException ) -{ - DBG_ASSERT( mpModel, "No Model" ); - if( ! mpModel ) - return uno::Sequence< ::rtl::OUString >(); - - SolarMutexGuard aGuard; - - SchMemChart* pDocData = mpModel->GetChartData(); - sal_Int32 nCol, nColCnt = pDocData->GetColCount(); - uno::Sequence< ::rtl::OUString > aResult( nColCnt ); - - ::rtl::OUString *pResultArray = aResult.getArray(); - for( nCol = 0; nCol < nColCnt; nCol++ ) - { - pResultArray[ nCol ] = pDocData->GetColText( (short)nCol); - } - return aResult; -} - - void SAL_CALL ChXChartDataArray::setColumnDescriptions( const uno::Sequence< ::rtl::OUString >& aColumnDescriptions ) - throw( uno::RuntimeException ) -{ - DBG_ASSERT( mpModel, "No Model" ); - if( ! mpModel ) - return; - - SolarMutexGuard aGuard; - - SchMemChart* pDocData = mpModel->GetChartData(); - sal_Int32 nCol, nColCnt = SCH_BIN_MIN( (sal_Int32)pDocData->GetColCount(), aColumnDescriptions.getLength() ); - - ::rtl::OUString* pString = ( (uno::Sequence< ::rtl::OUString >&)aColumnDescriptions ).getArray(); - - for( nCol = 0; nCol < nColCnt; nCol++ ) - { - pDocData->SetColText( (short)nCol, pString[ nCol ] ); - } - mpModel->BuildChart( FALSE ); -} - - -// XChartData - void SAL_CALL ChXChartDataArray::addChartDataChangeEventListener( - const uno::Reference< chart::XChartDataChangeEventListener >& aListener ) - throw( uno::RuntimeException ) -{ - ChXChartData::addChartDataChangeEventListener( aListener ); -} - -void SAL_CALL ChXChartDataArray::removeChartDataChangeEventListener( - const uno::Reference< chart::XChartDataChangeEventListener >& aListener ) - throw( uno::RuntimeException ) -{ - ChXChartData::removeChartDataChangeEventListener( aListener ); -} - -double SAL_CALL ChXChartDataArray::getNotANumber() throw( uno::RuntimeException ) -{ - return ChXChartData::getNotANumber(); -} - -sal_Bool SAL_CALL ChXChartDataArray::isNotANumber( double nNumber ) throw( uno::RuntimeException ) -{ - return ChXChartData::isNotANumber( nNumber ); -} - - -// XServiceInfo -::rtl::OUString SAL_CALL ChXChartDataArray::getImplementationName() - throw( uno::RuntimeException ) -{ - return SCH_ASCII_TO_OU( "ChXChartDataArray" ); -} - -sal_Bool SAL_CALL ChXChartDataArray::supportsService( const ::rtl::OUString& ServiceName ) - throw( uno::RuntimeException ) -{ - return ChXChartData::supportsService( ServiceName ); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChXChartDataArray::getSupportedServiceNames() - throw( uno::RuntimeException ) -{ - uno::Sequence< ::rtl::OUString > aSeq( ChXChartData::getSupportedServiceNames() ); - SvxServiceInfoHelper::addToSequence( aSeq, 1, "com.sun.star.chart.ChartDataArray" ); - return aSeq; -} - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDataChangeEventListener.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDataChangeEventListener.cxx deleted file mode 100644 index 84ae28448..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDataChangeEventListener.cxx +++ /dev/null @@ -1,106 +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. - * - ************************************************************************/ - -#include <vcl/svapp.hxx> -#include <osl/mutex.hxx> - -#include "ChXChartDataChangeEventListener.hxx" -#include "ChXChartDocument.hxx" -namespace binfilter { - -#ifndef SCH_ASCII_TO_OU -#define SCH_ASCII_TO_OU( s ) ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( s ) ) -#endif - -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::lang; -using namespace ::com::sun::star; -using ::rtl::OUString; - -ChXChartDataChangeEventListener::ChXChartDataChangeEventListener() -{ - mpXDoc = NULL; -} - -void ChXChartDataChangeEventListener::SetOwner( ChXChartDocument* pXDoc ) throw() -{ - SolarMutexGuard aGuard; - - mpXDoc = pXDoc; -} - -void ChXChartDataChangeEventListener::Reset() throw() -{ - SolarMutexGuard aGuard; - mpXDoc = NULL; -} - -// XChartDataChangeEventListener -void SAL_CALL ChXChartDataChangeEventListener::chartDataChanged( const chart::ChartDataChangeEvent& aEvent ) - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if( mpXDoc ) - mpXDoc->RefreshData( aEvent ); -} - -// XEventListener -void SAL_CALL ChXChartDataChangeEventListener::disposing( const lang::EventObject& /*Source*/ ) throw( uno::RuntimeException ) -{ - Reset(); -} - -// XServiceInfo -::rtl::OUString SAL_CALL ChXChartDataChangeEventListener::getImplementationName() throw( uno::RuntimeException ) -{ - return SCH_ASCII_TO_OU( "ChXChartDataChangeEventListener" ); -} - -sal_Bool SAL_CALL ChXChartDataChangeEventListener::supportsService( const OUString& ServiceName ) - throw( uno::RuntimeException ) -{ - uno::Sequence< OUString > aSNL = getSupportedServiceNames(); - const OUString * pArray = aSNL.getConstArray(); - for( INT32 i = 0; i < aSNL.getLength(); i++ ) - if( pArray[i] == ServiceName ) - return TRUE; - return FALSE; -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChXChartDataChangeEventListener::getSupportedServiceNames() - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - uno::Sequence< OUString > aServSeq( 0 ); - return aServSeq; -} - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDocument.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDocument.cxx deleted file mode 100644 index 732c97e79..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDocument.cxx +++ /dev/null @@ -1,1680 +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. - * - ************************************************************************/ - -#include "ChXChartDocument.hxx" -#include "ChXDiagram.hxx" -#include "ChXChartData.hxx" -#include "ChXChartDataChangeEventListener.hxx" -#include "ChXChartDrawPage.hxx" - -#include "ChartLegend.hxx" -#include "ChartTitle.hxx" -#include "ChartArea.hxx" - - -#include <bf_svx/UnoNamespaceMap.hxx> -#include <bf_svx/xmlgrhlp.hxx> - -#include "mapprov.hxx" -// header for SvxChartLegendPosItem -#ifndef _SVX_CHRTITEM_HXX -#include "schattr.hxx" -#define ITEMID_CHARTLEGENDPOS SCHATTR_LEGEND_POS - -#include <bf_svtools/eitem.hxx> - -#endif -#include "docshell.hxx" -#include "objid.hxx" - -#include "schgroup.hxx" - -// for access to table addresses -#include "memchrt.hxx" - -// header for SvNumberFormatsSupplierObj -#include <bf_svtools/numuno.hxx> - -// header for class OGuard -// header for class Application -#include <vcl/svapp.hxx> -#include <bf_svx/unofill.hxx> -#include <bf_svx/unoshcol.hxx> - -#include <com/sun/star/lang/XInitialization.hpp> -#include <com/sun/star/lang/XServiceName.hpp> -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include "unonames.hxx" -#include <rtl/uuid.h> - -namespace binfilter { - -extern SchUnoPropertyMapProvider aSchMapProvider; - -using namespace ::com::sun::star; -using ::rtl::OUString; - -sal_Int32 ChXChartDocument::mnInstanceCounter = 0; -SchAddInCollection * ChXChartDocument::mpAddInCollection = NULL; - -SchAddInCollection& ChXChartDocument::GetAddInCollection() -{ - if( mpAddInCollection == NULL ) - mpAddInCollection = new SchAddInCollection(); - - return *mpAddInCollection; -} - -ChXChartDocument::ChXChartDocument( SchChartDocShell* pShell ) : - SfxBaseModel( pShell ), - m_pModel( NULL ), - m_aPropSet( aSchMapProvider.GetMap( CHMAP_DOC, NULL )) -{ - if( pShell ) - { - SolarMutexGuard aSolarGuard; - - m_pDocShell = pShell; - if( m_pDocShell->GetModelPtr()) - SetChartModel( m_pDocShell->GetModelPtr()); - } - else - DBG_WARNING( "Parameter pShell is NULL." ); - - ++mnInstanceCounter; -} - -ChXChartDocument::~ChXChartDocument() -{ - if( m_rXDiagram.is() ) - { - osl::Guard< osl::Mutex > aGuard( GetMutex()); - ChXDiagram* pDiagram = ChXDiagram::getImplementation( m_rXDiagram ); - if( pDiagram ) - pDiagram->SetDocShell( NULL ); - uno::Reference<lang::XComponent> xComponent (m_rXDiagram,uno::UNO_QUERY); - if (xComponent.is()) - { - try - { - xComponent->removeEventListener (this); - xComponent->dispose(); - } - catch( uno::RuntimeException & aEx ) - { - OSL_TRACE( "Exception caught in DTOR: %s", - ::rtl::OUStringToOString( aEx.Message, RTL_TEXTENCODING_ASCII_US ).getStr() ); - } - } - } - if( --mnInstanceCounter == 0 ) - { - delete mpAddInCollection; - mpAddInCollection = NULL; - } -} - -// public methods -void ChXChartDocument::setDiagramType( const ::rtl::OUString& aType, - sal_Bool bKeepAddin /* = sal_False */ ) throw() -{ - SolarMutexGuard aGuard; - - if( ! m_pModel ) - return; - - // never show sorting dialog - m_pModel->SetChartStatusFlag( CHS_USER_NOQUERY ); - - // disable AddIn if requested - if( bKeepAddin ) - m_pModel->SetChartStatusFlag( CHS_KEEP_ADDIN ); - else - m_pModel->ResetChartStatusFlag( CHS_KEEP_ADDIN ); - - // all chart types start with the prefix com.sun.star.chart - if( 0 == aType.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE ))) - { - // get postfix using copy( beginIndex ) - ::rtl::OUString aPostfix = aType.copy( RTL_CONSTASCII_LENGTH( SCH_X_STR_CHTYPE_NAMESPACE )); - - if( aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_LINE )) == 0 ) - m_pModel->SetBaseType( CHTYPE_LINE ); - else if( aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_AREA )) == 0 ) - m_pModel->SetBaseType( CHTYPE_AREA ); - else if( aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_PIE )) == 0 ) - m_pModel->SetBaseType( CHTYPE_CIRCLE); - else if( aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_BAR )) == 0 ) - m_pModel->SetBaseType( CHTYPE_BAR); - else if( aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_XY )) == 0 ) - m_pModel->SetBaseType( CHTYPE_XY ); - else if( aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_NET )) == 0 ) - m_pModel->SetBaseType( CHTYPE_NET ); - else if( aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_DONUT )) == 0 ) - m_pModel->SetBaseType( CHTYPE_DONUT ); - else if( aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_STOCK )) == 0 ) - m_pModel->SetBaseType( CHTYPE_STOCK ); - } -} - -sal_Bool ChXChartDocument::setBaseDiagramType( sal_Bool bSet ) throw() -{ - if( bSet ) - { - if( maBaseDiagramType.getLength()) - { - // 2nd param: keep reference to AddIn in model - setDiagramType( maBaseDiagramType, sal_True ); - return sal_True; - } - } - else // unset - { - if( m_pModel ) - m_pModel->SetBaseType( CHTYPE_ADDIN ); - return sal_True; - } - - return sal_False; -} - -void ChXChartDocument::SetChartModel( ChartModel* pModel ) throw() -{ - osl::Guard< osl::Mutex > aGuard( GetMutex()); - - m_pModel = pModel; - m_aPropSet = SvxItemPropertySet( aSchMapProvider.GetMap( CHMAP_DOC, m_pModel )); -} - -void ChXChartDocument::RefreshData( const chart::ChartDataChangeEvent& /*aEvent*/ ) throw() -{ - osl::Guard< osl::Mutex > aGuard( GetMutex()); - - // copy new data ( in member m_xChartData ) - if( m_xChartData.is() ) - { - // get XChartDataArray representation of m_xChartData - uno::Reference< chart::XChartDataArray > xDataArray( m_xChartData, uno::UNO_QUERY ); - - if( xDataArray.is() ) - { - // new data object using own doc shell - uno::Reference< lang::XComponent > xComp( SAL_STATIC_CAST( SfxBaseModel*, this )); - ChXChartDataArray* pNewDataArray = new ChXChartDataArray( xComp, m_pModel ); - chart::XChartDataArray* pSrcArray = xDataArray.get(); - - // the get-methods re-retrieve the (changed) data from the SchMemChart - pNewDataArray->setData( pSrcArray->getData() ); - pNewDataArray->setRowDescriptions( pSrcArray->getRowDescriptions() ); - pNewDataArray->setColumnDescriptions( pSrcArray->getColumnDescriptions() ); - - // remember the new data as member - m_xChartData = SAL_STATIC_CAST( ChXChartData*, pNewDataArray ); - } - } -} - -// generate a uniqueId -const uno::Sequence< sal_Int8 > & ChXChartDocument::getUnoTunnelId() throw() -{ - static uno::Sequence< sal_Int8 > * pSeq = 0; - if( !pSeq ) - { - osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); - if( !pSeq ) - { - static uno::Sequence< sal_Int8 > aSeq( 16 ); - rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); - pSeq = &aSeq; - } - } - return *pSeq; -} - -ChXChartDocument* ChXChartDocument::getImplementation( uno::Reference< uno::XInterface > xData ) throw() -{ - uno::Reference< lang::XUnoTunnel > xUT( xData, uno::UNO_QUERY ); - if( xUT.is() ) - return (ChXChartDocument*)xUT->getSomething( ChXChartDocument::getUnoTunnelId() ); - else - return NULL; -} - - -// XInterface -uno::Any SAL_CALL ChXChartDocument::queryInterface( const uno::Type & rType ) - throw( uno::RuntimeException ) -{ - uno::Any aAny = SfxBaseModel::queryInterface( rType ); - if( aAny.hasValue() ) - return aAny; - - return ::cppu::queryInterface( - rType, - ( lang::XMultiServiceFactory* )this, - ( beans::XPropertySet* )this, - ( chart::XChartDocument* )this, - ( lang::XServiceInfo* )this, - ( util::XNumberFormatsSupplier* )this, - ( drawing::XDrawPageSupplier* )this, - ( lang::XUnoTunnel* )this ); -} - -void SAL_CALL ChXChartDocument::acquire() throw() -{ - SfxBaseModel::acquire(); -} - -void SAL_CALL ChXChartDocument::release() throw() -{ - SfxBaseModel::release(); -} - -// XMultiServiceFactory -uno::Reference< uno::XInterface > SAL_CALL ChXChartDocument::createInstance( const ::rtl::OUString& aServiceSpecifier ) - throw( uno::Exception, uno::RuntimeException ) -{ - bool bServiceFound = false; - uno::Reference< uno::XInterface > xResult; - - // 1. create a new built-in diagram type - if( 0 == aServiceSpecifier.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE ))) - { - ::rtl::OUString aPostfix = aServiceSpecifier.copy( RTL_CONSTASCII_LENGTH( SCH_X_STR_CHTYPE_NAMESPACE )); - - if( 0 == aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_LINE )) || - 0 == aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_AREA )) || - 0 == aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_BAR )) || - 0 == aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_PIE )) || - 0 == aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_XY )) || - 0 == aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_NET )) || - 0 == aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_DONUT )) || - 0 == aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_STOCK ))) - { - ChXDiagram* pDiagram = new ChXDiagram( m_pDocShell, FALSE ); - pDiagram->SetServiceName( aServiceSpecifier ); - - xResult.set( static_cast< cppu::OWeakObject * >( pDiagram ) ); - bServiceFound = true; - } - } - // 2. create drawing services for XML - else if( 0 == aServiceSpecifier.compareToAscii( RTL_CONSTASCII_STRINGPARAM( "com.sun.star.drawing." ))) - { - ::rtl::OUString aPostfix = aServiceSpecifier.copy( RTL_CONSTASCII_LENGTH( "com.sun.star.drawing." )); - - bServiceFound = true; - - // get a table for XML ex-/import - if( 0 == aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( "DashTable" ))) - { - if( ! xDashTable.is()) - xDashTable = SvxUnoDashTable_createInstance( m_pModel ); - xResult = xDashTable; - } - else if( 0 == aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( "GradientTable" ))) - { - if( ! xGradientTable.is()) - xGradientTable = SvxUnoGradientTable_createInstance( m_pModel ); - xResult = xGradientTable; - } - else if( 0 == aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( "HatchTable" ))) - { - if( ! xHatchTable.is()) - xHatchTable = SvxUnoHatchTable_createInstance( m_pModel ); - xResult = xHatchTable; - } - else if( 0 == aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( "BitmapTable" ))) - { - if( ! xBitmapTable.is()) - xBitmapTable = SvxUnoBitmapTable_createInstance( m_pModel ); - xResult = xBitmapTable; - } - else if( 0 == aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( "TransparencyGradientTable" ))) - { - if( ! xTransparencyGradientTable.is()) - xTransparencyGradientTable = SvxUnoTransGradientTable_createInstance( m_pModel ); - xResult = xTransparencyGradientTable; - } - else if( 0 == aPostfix.compareToAscii( RTL_CONSTASCII_STRINGPARAM( "MarkerTable" ))) - { - if( ! xMarkerTable.is()) - xMarkerTable = SvxUnoMarkerTable_createInstance( m_pModel ); - xResult = xMarkerTable; - } - else - bServiceFound = false; - } - - // 3. XML namespace-map for alien attributes - if( ! bServiceFound && - 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM( "com.sun.star.xml.NamespaceMap") ) ) - { - static sal_uInt16 aWhichIds[] = { SCHATTR_USER_DEFINED_ATTR, 0 }; - xResult = svx::NamespaceMap_createInstance( aWhichIds, &m_pModel->GetPool() ); - bServiceFound = true; - } - - // 4. graphics resolver - if( ! bServiceFound && - 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM( "com.sun.star.document.ExportGraphicObjectResolver") ) ) - { - xResult = static_cast< ::cppu::OWeakObject * >( new SvXMLGraphicHelper( GRAPHICHELPER_MODE_WRITE )); - bServiceFound = true; - } - if( ! bServiceFound && - 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM( "com.sun.star.document.ImportGraphicObjectResolver") ) ) - { - xResult = static_cast< ::cppu::OWeakObject * >( new SvXMLGraphicHelper( GRAPHICHELPER_MODE_READ )); - bServiceFound = true; - } - - // 5. embedded object resolver - if( ! bServiceFound && - ( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM( "com.sun.star.document.ExportEmbeddedObjectResolver" )) - || 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM( "com.sun.star.document.ImportEmbeddedObjectResolver" )))) - { - // Charts do not support EmbeddedObjectResolvers, so they return an empty - // reference, but as the request is well known, no assertion is printed - bServiceFound = true; - } - - // 6. create a shape - if( ! bServiceFound ) - { - // try to get a shape - try - { - xResult = SvxUnoDrawMSFactory::createInstance( aServiceSpecifier ); - bServiceFound = true; - } - catch( const uno::Exception& aEx ) - { - // couldn't create shape - } - } - - // 7. try to create an AddIn - if( ! bServiceFound ) - { - uno::Reference< util::XRefreshable > xAddIn = GetAddInCollection().GetAddInByName( aServiceSpecifier ); - if( xAddIn.is()) - { - xResult = xAddIn; - bServiceFound = true; - } - } - - OSL_ENSURE( bServiceFound, - ::rtl::OUStringToOString( - ::rtl::OUString( - RTL_CONSTASCII_USTRINGPARAM( - "createInstance() failed in creating the service " )) + - aServiceSpecifier, - RTL_TEXTENCODING_ASCII_US ).getStr() ); - - return xResult; -} - -uno::Reference< uno::XInterface > SAL_CALL ChXChartDocument::createInstanceWithArguments( - const ::rtl::OUString& ServiceSpecifier, const uno::Sequence< uno::Any >& Arguments ) - throw( uno::Exception, uno::RuntimeException ) -{ - if( 0 == ServiceSpecifier.compareToAscii( RTL_CONSTASCII_STRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE ))) - { - if( Arguments.getLength() ) - throw lang::IllegalArgumentException(); - else - return createInstance( ServiceSpecifier ); - } - - return SvxUnoDrawMSFactory::createInstanceWithArguments( ServiceSpecifier, Arguments ); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChXChartDocument::getAvailableServiceNames() - throw( uno::RuntimeException ) -{ - ::std::vector< OUString > aServices; - - // chart types - aServices.push_back( OUString(RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_LINE ))); - aServices.push_back( OUString(RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_AREA ))); - aServices.push_back( OUString(RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_BAR ))); - aServices.push_back( OUString(RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_PIE ))); - aServices.push_back( OUString(RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_XY ))); - aServices.push_back( OUString(RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_NET ))); - aServices.push_back( OUString(RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_DONUT ))); - aServices.push_back( OUString(RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_STOCK ))); - - // style tables (for XML) - aServices.push_back( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.DashTable" ))); - aServices.push_back( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.GradientTable" ))); - aServices.push_back( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.HatchTable" ))); - aServices.push_back( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.BitmapTable" ))); - aServices.push_back( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.TransparencyGradientTable" ))); - aServices.push_back( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.MarkerTable" ))); - - // XML namespacemap / object resolver - aServices.push_back( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.NamespaceMap" ))); - aServices.push_back( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.ExportGraphicObjectResolver" ))); - aServices.push_back( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.ImportGraphicObjectResolver" ))); - - // shapes - uno::Sequence< OUString > aDrawServices( SvxUnoDrawMSFactory::getAvailableServiceNames() ); - const OUString * pArr = aDrawServices.getConstArray(); - aServices.insert( aServices.end(), pArr, pArr + aDrawServices.getLength() ); - - // add-ins - uno::Sequence< OUString > aAddIns( GetAddInCollection().GetAddInNames() ); - pArr = aAddIns.getConstArray(); - aServices.insert( aServices.end(), pArr, pArr + aAddIns.getLength() ); - - return uno::Sequence< OUString >( &(* aServices.begin()), aServices.size() ); -} - - -// XPropertySet -uno::Reference< beans::XPropertySetInfo > SAL_CALL ChXChartDocument::getPropertySetInfo() - throw( uno::RuntimeException ) -{ - return m_aPropSet.getPropertySetInfo(); -} - -void SAL_CALL ChXChartDocument::setPropertyValue( const ::rtl::OUString& aPropertyName, const uno::Any& aValue ) - throw( beans::UnknownPropertyException, - beans::PropertyVetoException, - lang::IllegalArgumentException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - if( m_pModel ) - { - const SfxItemPropertyMap* pMap = m_aPropSet.getPropertyMapEntry( aPropertyName ); - if( pMap && pMap->nWID ) - { - if( pMap->nFlags & beans::PropertyAttribute::READONLY ) - throw beans::PropertyVetoException(); - - USHORT nWID = pMap->nWID; - - switch( nWID ) - { - case CHATTR_DIAGRAM_START: // dummy id for "HasLegend" - { - sal_Bool bVal(sal_False); - aValue >>= bVal; - m_pModel->SetShowLegend( bVal ); - m_pModel->SetLegendHasBeenMoved( FALSE ); - m_pModel->BuildChart( FALSE ); - } - break; - - case CHATTR_ADDR_CATEGORIES: - case CHATTR_ADDR_SERIES: - case CHATTR_ADDR_CHART: - case CHATTR_TABLE_NUMBER_LIST: - case CHATTR_EXPORT_TABLE: - case CHATTR_FIRST_COL_LABELS: - case CHATTR_FIRST_ROW_LABELS: - { - SchMemChart* pData = m_pModel->GetChartData(); - if( pData ) - { - switch( nWID ) - { - case CHATTR_ADDR_CATEGORIES: - { - ::rtl::OUString aCatAddr; - aValue >>= aCatAddr; - pData->SetCategoriesRangeAddress( aCatAddr ); - } - break; - case CHATTR_ADDR_SERIES: - { - uno::Sequence< chart::ChartSeriesAddress > aSeriesAddresses; - aValue >>= aSeriesAddresses; - pData->SetSeriesAddresses( aSeriesAddresses ); - } - break; - case CHATTR_ADDR_CHART: - { - ::rtl::OUString aAddr; - aValue >>= aAddr; - pData->getChartRangeForXMLString( aAddr ); - } - break; - case CHATTR_TABLE_NUMBER_LIST: - { - ::rtl::OUString aList; - aValue >>= aList; - pData->parseTableNumberList( aList ); - } - break; - case CHATTR_EXPORT_TABLE: - { - sal_Bool bValueToSet(sal_False); - aValue >>= bValueToSet; - - SchChartRange aRange = pData->GetChartRange(); - if( aRange.mbKeepCopyOfData != bValueToSet ) - { - aRange.mbKeepCopyOfData = bValueToSet; - pData->SetChartRange( aRange ); - } - } - break; - case CHATTR_FIRST_COL_LABELS: - { - sal_Bool bValueToSet(sal_False); - aValue >>= bValueToSet; - - SchChartRange aRange = pData->GetChartRange(); - if( aRange.mbFirstColumnContainsLabels != bValueToSet ) - { - aRange.mbFirstColumnContainsLabels = bValueToSet; - pData->SetChartRange( aRange ); - } - } - break; - case CHATTR_FIRST_ROW_LABELS: - { - sal_Bool bValueToSet(sal_False); - aValue >>= bValueToSet; - - SchChartRange aRange = pData->GetChartRange(); - if( aRange.mbFirstRowContainsLabels != bValueToSet ) - { - aRange.mbFirstRowContainsLabels = bValueToSet; - pData->SetChartRange( aRange ); - } - } - break; - } - } - else - OSL_FAIL( "invalid SchMemChart" ); - } - break; - - case CHATTR_TRANSLATED_COLS: - case CHATTR_TRANSLATED_ROWS: - { - SchMemChart* pData = m_pModel->GetChartData(); - if( pData ) - { - uno::Sequence< sal_Int32 > aSeq; - aValue >>= aSeq; - - if( ! SetTransSequence( pData, CHATTR_TRANSLATED_COLS == nWID, aSeq )) - { - ::rtl::OUString aMsg( - RTL_CONSTASCII_STRINGPARAM( "Conflict on setting row-/col translation" ), - RTL_TEXTENCODING_ASCII_US ); - uno::RuntimeException aExcept( aMsg, static_cast< ::cppu::OWeakObject* >( this )); - throw aExcept; - } - } - else - OSL_FAIL( "invalid SchMemChart" ); - } - break; - - default: - { - SfxItemSet aSet( m_pModel->GetPool(), nWID, nWID ); - m_pModel->GetAttr( aSet ); - - if( ! aSet.Count() ) - { - // get default from ItemPool - if( m_pModel->GetItemPool().IsWhich( nWID ) ) - { - aSet.Put( m_pModel->GetItemPool().GetDefaultItem( pMap->nWID ) ); - } - else - { -#if OSL_DEBUG_LEVEL > 1 - String aTmpString( aPropertyName ); - ByteString aProp( aTmpString, RTL_TEXTENCODING_ASCII_US ); - OSL_TRACE( "Diagram: Property %s has an invalid ID (%d)", aProp.GetBuffer(), nWID ); -#endif - } - } - if( aSet.Count()) - { - m_aPropSet.setPropertyValue( pMap, aValue, aSet ); - m_pModel->PutAttr( aSet ); - m_pModel->BuildChart( FALSE ); - } - else - { - throw beans::UnknownPropertyException(); - } - } - break; - } - } - else if( aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "BaseDiagram" ) )) - { - aValue >>= maBaseDiagramType; - setBaseDiagramType( sal_True ); - } - else if( aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "ExportForClipboard" ))) - { - sal_Bool bBool(sal_False); - aValue >>= bBool; - m_pDocShell->SetClipboardExport( bBool ); - } - else - { - throw beans::UnknownPropertyException(); - } - } - else - DBG_WARNING( "No Model" ); -} - -uno::Any SAL_CALL ChXChartDocument::getPropertyValue( const ::rtl::OUString& aPropertyName ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - uno::Any aAny; - if( m_pModel ) - { - const SfxItemPropertyMap* pMap = m_aPropSet.getPropertyMapEntry( aPropertyName ); - if( pMap && pMap->nWID ) - { - USHORT nWID = pMap->nWID; - - switch( nWID ) - { - case CHATTR_ADDITIONAL_SHAPES: - aAny <<= GetAdditionalShapes(); - return aAny; // RETURN - - case CHATTR_DIAGRAM_START: // dummy id for "HasLegend" - { - SfxItemSet rSet( m_pModel->GetFullLegendAttr() ); - const SfxPoolItem *pPoolItem = NULL; - SvxChartLegendPos ePos = CHLEGEND_RIGHT; - if( rSet.GetItemState( SCHATTR_LEGEND_POS, TRUE, &pPoolItem ) == SFX_ITEM_SET ) - { - ePos = ((const SvxChartLegendPosItem*)pPoolItem)->GetValue(); - } - aAny <<= sal_Bool( ePos != CHLEGEND_NONE ); - } - break; - - case CHATTR_ADDR_CATEGORIES: - case CHATTR_ADDR_SERIES: - case CHATTR_ADDR_CHART: - case CHATTR_TABLE_NUMBER_LIST: - case CHATTR_EXPORT_TABLE: - case CHATTR_FIRST_COL_LABELS: - case CHATTR_FIRST_ROW_LABELS: - { - SchMemChart* pData = m_pModel->GetChartData(); - if( pData ) - { - switch( nWID ) - { - case CHATTR_ADDR_CATEGORIES: - aAny <<= pData->GetCategoriesRangeAddress(); - break; - case CHATTR_ADDR_SERIES: - aAny <<= pData->GetSeriesAddresses(); - break; - case CHATTR_ADDR_CHART: - aAny <<= pData->getXMLStringForChartRange(); - break; - case CHATTR_TABLE_NUMBER_LIST: - aAny <<= pData->createTableNumberList(); - break; - case CHATTR_EXPORT_TABLE: - { - // data table is always exported for standalone charts - // if container (Calc/Writer) has set the property not - // to export the data then do so - DBG_ASSERT( pData, "Invalid MemChart" ); - const SchChartRange& rRange = pData->GetChartRange(); - sal_Bool bResult = rRange.mbKeepCopyOfData; - - // if export was set to false it might nontheless be - // necessary to export data for inserting the chart into - // a different container from clipboard - if( !bResult && m_pDocShell ) - aAny <<= m_pDocShell->GetClipboardExport(); - - aAny <<= bResult; - } - break; - case CHATTR_FIRST_COL_LABELS: - { - const SchChartRange& rRange = pData->GetChartRange(); - aAny <<= (sal_Bool)(rRange.mbFirstColumnContainsLabels); - } - break; - case CHATTR_FIRST_ROW_LABELS: - { - const SchChartRange& rRange = pData->GetChartRange(); - aAny <<= (sal_Bool)(rRange.mbFirstRowContainsLabels); - } - break; - } - } - else - OSL_FAIL( "invalid SchMemChart" ); - } - break; - - case CHATTR_HAS_TRANSLATED_COLS: - case CHATTR_HAS_TRANSLATED_ROWS: - case CHATTR_TRANSLATED_COLS: - case CHATTR_TRANSLATED_ROWS: - { - SchMemChart* pData = m_pModel->GetChartData(); - if( pData ) - { - long nTranslation = pData->GetTranslation(); - switch( nWID ) - { - case CHATTR_HAS_TRANSLATED_COLS: - aAny <<= (sal_Bool)( nTranslation == TRANS_COL ); - break; - case CHATTR_HAS_TRANSLATED_ROWS: - aAny <<= (sal_Bool)( nTranslation == TRANS_ROW ); - break; - case CHATTR_TRANSLATED_COLS: - case CHATTR_TRANSLATED_ROWS: - aAny <<= GetTransSequence( pData, (CHATTR_TRANSLATED_COLS == nWID)); - break; - } - } - else - OSL_FAIL( "invalid SchMemChart" ); - } - break; - - default: - { - SfxItemSet aSet( m_pModel->GetPool(), nWID, nWID ); - m_pModel->GetAttr( aSet ); - - if( ! aSet.Count() ) - { - // get default from ItemPool - if( m_pModel->GetItemPool().IsWhich( nWID ) ) - { - aSet.Put( m_pModel->GetItemPool().GetDefaultItem( pMap->nWID ) ); - } - else - { -#if OSL_DEBUG_LEVEL > 1 - String aTmpString( aPropertyName ); - ByteString aProp( aTmpString, RTL_TEXTENCODING_ASCII_US ); - OSL_TRACE( "Diagram: Property %s has an invalid ID (%d)", aProp.GetBuffer(), nWID ); -#endif - } - } - if( aSet.Count() ) - aAny = m_aPropSet.getPropertyValue( pMap, aSet ); - else - throw beans::UnknownPropertyException(); - - if( *pMap->pType != aAny.getValueType() ) - { - // since the sfx uint16 item now exports a sal_Int32, we may have to fix this here - if( ( *pMap->pType == ::getCppuType((const sal_Int16*)0)) && aAny.getValueType() == ::getCppuType((const sal_Int32*)0) ) - { - sal_Int32 nValue(sal_False); - aAny >>= nValue; - aAny <<= static_cast< sal_Int16 >( nValue ); - } - else - { - OSL_FAIL( "getPropertyValue(): wrong Type!" ); - } - } - } - } - } - else if( aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "BaseDiagram" ) )) - { - aAny <<= maBaseDiagramType; - } - else if( aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "AddIn" ) )) - { - if( m_pModel ) - { - uno::Reference< util::XRefreshable > xAddIn = m_pModel->GetChartAddIn(); - aAny <<= xAddIn; - } - } - else - throw beans::UnknownPropertyException(); - } - else - DBG_WARNING( "No Model" ); - - return aAny; -} - -void SAL_CALL ChXChartDocument::addPropertyChangeListener( const ::rtl::OUString& /*aPropertyName*/, - const uno::Reference< beans::XPropertyChangeListener >& /*xListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXChartDocument::removePropertyChangeListener( const ::rtl::OUString& /*aPropertyName*/, - const uno::Reference< beans::XPropertyChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXChartDocument::addVetoableChangeListener( const ::rtl::OUString& /*PropertyName*/, - const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXChartDocument::removeVetoableChangeListener( const ::rtl::OUString& /*PropertyName*/, - const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -// XChartDocument - -uno::Reference< drawing::XShape > SAL_CALL ChXChartDocument::getTitle() throw( uno::RuntimeException ) -{ - osl::Guard< osl::Mutex > aGuard( GetMutex()); - if( ! mxMainTitle.is()) - { - mxMainTitle = new ChartTitle( m_pModel, CHOBJID_TITLE_MAIN ); - uno::Reference<lang::XComponent> xComponent (mxMainTitle, uno::UNO_QUERY); - if (xComponent.is()) - xComponent->addEventListener (this); - } - - return mxMainTitle; -} - -uno::Reference< drawing::XShape > SAL_CALL ChXChartDocument::getSubTitle() throw( uno::RuntimeException ) -{ - osl::Guard< osl::Mutex > aGuard( GetMutex()); - if( ! mxSubTitle.is()) - { - mxSubTitle = new ChartTitle( m_pModel, CHOBJID_TITLE_SUB ); - uno::Reference<lang::XComponent> xComponent (mxSubTitle, uno::UNO_QUERY); - if (xComponent.is()) - xComponent->addEventListener (this); - } - - return mxSubTitle; -} - -uno::Reference< drawing::XShape > SAL_CALL ChXChartDocument::getLegend() throw( uno::RuntimeException ) -{ - osl::Guard< osl::Mutex > aGuard( GetMutex()); - if( ! mxLegend.is()) - { - mxLegend = new ChartLegend( m_pModel ); - uno::Reference<lang::XComponent> xComponent (mxLegend, uno::UNO_QUERY); - if (xComponent.is()) - xComponent->addEventListener (this); - } - - return mxLegend; -} - -uno::Reference< beans::XPropertySet > SAL_CALL ChXChartDocument::getArea() throw( uno::RuntimeException ) -{ - osl::Guard< osl::Mutex > aGuard( GetMutex()); - if( ! mxArea.is()) - { - mxArea = new ChartArea( m_pModel, CHOBJID_DIAGRAM_AREA ); - uno::Reference<lang::XComponent> xComponent (mxArea, uno::UNO_QUERY); - if (xComponent.is()) - xComponent->addEventListener (this); - } - - return mxArea; -} - -uno::Reference< chart::XDiagram > SAL_CALL ChXChartDocument::getDiagram() throw( uno::RuntimeException ) -{ - osl::Guard< osl::Mutex > aGuard( GetMutex()); - if( ! m_rXDiagram.is() ) - { - m_rXDiagram = new ChXDiagram( m_pDocShell ); - uno::Reference<lang::XComponent> xComponent (m_rXDiagram, uno::UNO_QUERY); - if (xComponent.is()) - xComponent->addEventListener (this); - } - - return m_rXDiagram; -} - -void SAL_CALL ChXChartDocument::setDiagram( const uno::Reference< chart::XDiagram >& _NewDiagram ) - throw( uno::RuntimeException ) -{ - if( _NewDiagram == m_rXDiagram ) - return; - - osl::Guard< osl::Mutex > aGuard( GetMutex()); - - uno::Reference< util::XRefreshable > xAddIn( _NewDiagram, uno::UNO_QUERY ); - if( xAddIn.is()) - { - // use AddIn - if( m_pModel ) - { - SolarMutexGuard aLclGuard; - m_pModel->SetChartAddIn( xAddIn ); - - // initialize AddIn with this as chart document - uno::Reference< lang::XInitialization > xInit( xAddIn, uno::UNO_QUERY ); - if( xInit.is()) - { - uno::Any aParam; - uno::Reference< chart::XChartDocument > xDoc( (chart::XChartDocument*)this, uno::UNO_QUERY ); - aParam <<= xDoc; - uno::Sequence< uno::Any > aSeq( &aParam, 1 ); - xInit->initialize( aSeq ); - } - - // remember service name in member ChXDiagram instance - uno::Reference< lang::XServiceName > xServiceName( xAddIn, uno::UNO_QUERY ); - if( xServiceName.is()) - { - uno::Reference<lang::XComponent> xComponent (m_rXDiagram,uno::UNO_QUERY); - if (xComponent.is()) - { - xComponent->removeEventListener (this); - xComponent->dispose(); - } - - ChXDiagram* pDiagram = new ChXDiagram( m_pDocShell, TRUE ); - pDiagram->SetServiceName( xServiceName->getServiceName() ); - m_rXDiagram = pDiagram; - xComponent = uno::Reference<lang::XComponent>(m_rXDiagram, uno::UNO_QUERY); - if (xComponent.is()) - xComponent->addEventListener (this); - } - } - else - { - OSL_FAIL( "No Model - Couldn't attach AddIn" ); - } - } - else - { - // the new diagram is only set here - // when you have an addin the old diagram is kept as - // 'parent diagram' - - // clear addin - if( m_pModel ) - { - SolarMutexGuard aLclGuard; - uno::Reference< util::XRefreshable > xRefreshable; - m_pModel->SetChartAddIn( xRefreshable ); - } - - // invalidate and release old diagram - if( m_rXDiagram.is()) - { - uno::Reference<lang::XComponent> xComponent (m_rXDiagram,uno::UNO_QUERY); - if (xComponent.is()) - { - xComponent->removeEventListener (this); - xComponent->dispose(); - } - - ChXDiagram* pDiagram = ChXDiagram::getImplementation( m_rXDiagram ); - if( pDiagram ) - pDiagram->SetDocShell( SchChartDocShellRef() ); - } - - // set new diagram - if( _NewDiagram.is() ) - { - ChXDiagram* pDiagram = ChXDiagram::getImplementation( _NewDiagram ); - if( pDiagram ) - { - if( m_pDocShell ) - { - if( pDiagram->SetDocShell( m_pDocShell, sal_True )) // keep model (is copied) - { - // update local model - if( m_pModel ) - { - SolarMutexGuard aLclGuard; - m_pModel = m_pDocShell->GetModelPtr(); - } - } - else - { - // model was invalid - // so set correct chart type to current model - setDiagramType( pDiagram->getServiceName()); - } - } - } - uno::Reference<lang::XComponent> xComponent (m_rXDiagram, uno::UNO_QUERY); - if (xComponent.is()) - xComponent->removeEventListener (this); - m_rXDiagram = _NewDiagram; - xComponent = uno::Reference<lang::XComponent>(m_rXDiagram, uno::UNO_QUERY); - if (xComponent.is()) - xComponent->addEventListener (this); - } - } -} - -uno::Reference< chart::XChartData > SAL_CALL ChXChartDocument::getData() throw( uno::RuntimeException ) -{ - osl::Guard< osl::Mutex > aGuard( GetMutex()); - if( ! m_xChartData.is()) - { - uno::Reference< lang::XComponent > xComp( SAL_STATIC_CAST( SfxBaseModel*, this )); - // XChartData is inherited twice - m_xChartData = SAL_STATIC_CAST( chart::XChartDataArray*, - new ChXChartDataArray( xComp, m_pModel )); - } - - return m_xChartData; -} - -void SAL_CALL ChXChartDocument::attachData( const uno::Reference< chart::XChartData >& _Data ) - throw( uno::RuntimeException ) -{ - osl::ClearableGuard< osl::Mutex > aGuard( GetMutex()); - - if( ! _Data.is() ) - return; - - if( ! m_xEventListener.is() ) - { - ChXChartDataChangeEventListener *pEvtListener = new ChXChartDataChangeEventListener; - if( pEvtListener ) - { - pEvtListener->Reset(); // Reset not implemented yet - pEvtListener->SetOwner( this ); // become owner of event listener - m_xEventListener = pEvtListener; // remember Listener as member - } - } - - // add listener to XChartDataArray - uno::Reference< chart::XChartDataArray > xChDataArray( _Data, uno::UNO_QUERY ); - - if( xChDataArray.is() ) - xChDataArray->addChartDataChangeEventListener( m_xEventListener ); - - // copy new Data - m_xChartData = _Data; - aGuard.clear(); - - chart::ChartDataChangeEvent aEvent; - - aEvent.Type = chart::ChartDataChangeType_ALL; - aEvent.StartColumn = 0; - aEvent.EndColumn = 0; - aEvent.StartRow = 0; - aEvent.EndRow = 0; - - RefreshData( aEvent ); // set initial data -} - - -// XModel ( ::SfxBaseModel ) -sal_Bool SAL_CALL ChXChartDocument::attachResource( const ::rtl::OUString& aURL, - const uno::Sequence< beans::PropertyValue >& aArgs ) - throw( uno::RuntimeException ) -{ - return SfxBaseModel::attachResource( aURL, aArgs ); -} - -::rtl::OUString SAL_CALL ChXChartDocument::getURL() throw( uno::RuntimeException ) -{ - return SfxBaseModel::getURL(); -} - -uno::Sequence< beans::PropertyValue > SAL_CALL ChXChartDocument::getArgs() throw( uno::RuntimeException ) -{ - return SfxBaseModel::getArgs(); -} - -void SAL_CALL ChXChartDocument::connectController( const uno::Reference< frame::XController >& xController ) - throw( uno::RuntimeException ) -{ - SfxBaseModel::connectController( xController ); -} - -void SAL_CALL ChXChartDocument::disconnectController( const uno::Reference< frame::XController >& xController ) - throw( uno::RuntimeException ) -{ - SfxBaseModel::disconnectController( xController ); -} - -uno::Reference< frame::XController > SAL_CALL ChXChartDocument::getCurrentController() throw( uno::RuntimeException ) -{ - return SfxBaseModel::getCurrentController(); -} - -void SAL_CALL ChXChartDocument::setCurrentController( const uno::Reference< frame::XController >& xController ) - throw( container::NoSuchElementException, uno::RuntimeException ) -{ - SfxBaseModel::setCurrentController( xController ); -} - -uno::Reference< uno::XInterface > SAL_CALL ChXChartDocument::getCurrentSelection() throw( uno::RuntimeException ) -{ - return SfxBaseModel::getCurrentSelection(); -} - -void SAL_CALL ChXChartDocument::lockControllers() throw( uno::RuntimeException ) -{ - if( m_pModel ) - { - SolarMutexGuard aGuard; - m_pModel->LockBuild(); - } - else - throw uno::RuntimeException(); -} - -void SAL_CALL ChXChartDocument::unlockControllers() throw( uno::RuntimeException ) -{ - if( m_pModel ) - { - SolarMutexGuard aGuard; - m_pModel->UnlockBuild(); - } - else - throw uno::RuntimeException(); -} - -sal_Bool SAL_CALL ChXChartDocument::hasControllersLocked() throw( uno::RuntimeException ) -{ - if( m_pModel ) - { - SolarMutexGuard aGuard; - return m_pModel->IsLockedBuild(); - } - else - return sal_False; -} - -// XTypeProvider ( ::SfxBaseModel ) -uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL ChXChartDocument::getTypes() - throw( uno::RuntimeException ) -{ - if( maTypeSequence.getLength() == 0 ) - { - osl::Guard< osl::Mutex > aGuard( GetMutex()); - - const uno::Sequence< uno::Type > aBaseTypes( SfxBaseModel::getTypes() ); - const sal_Int32 nBaseTypes = aBaseTypes.getLength(); - const uno::Type* pBaseTypes = aBaseTypes.getConstArray(); - - maTypeSequence.realloc( nBaseTypes + 7 ); // Note: Keep the size updated !! - uno::Type* pTypes = maTypeSequence.getArray(); - - *pTypes++ = ::getCppuType((const uno::Reference< lang::XMultiServiceFactory >*)0); - *pTypes++ = ::getCppuType((const uno::Reference< beans::XPropertySet >*)0); - *pTypes++ = ::getCppuType((const uno::Reference< chart::XChartDocument >*)0); - *pTypes++ = ::getCppuType((const uno::Reference< lang::XServiceInfo >*)0); - *pTypes++ = ::getCppuType((const uno::Reference< util::XNumberFormatsSupplier >*)0); - *pTypes++ = ::getCppuType((const uno::Reference< drawing::XDrawPageSupplier >*)0); - *pTypes++ = ::getCppuType((const uno::Reference< lang::XUnoTunnel >*)0); - - for( sal_Int32 nType = 0; nType < nBaseTypes; nType++ ) - *pTypes++ = *pBaseTypes++; - } - - return maTypeSequence; -} - -uno::Sequence< sal_Int8 > SAL_CALL ChXChartDocument::getImplementationId() - throw( uno::RuntimeException ) -{ - static uno::Sequence< sal_Int8 > aId; - if( aId.getLength() == 0 ) - { - aId.realloc( 16 ); - rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True ); - } - return aId; -} - - - - -// XComponent ( ::XModel ::SfxModel ) -void SAL_CALL ChXChartDocument::dispose() throw( uno::RuntimeException ) -{ - osl::Guard< osl::Mutex > aGuard( GetMutex()); - - uno::Reference<lang::XComponent> xComponent; - if (mxMainTitle.is()) - { - xComponent = uno::Reference<lang::XComponent>(mxMainTitle,uno::UNO_QUERY); - if (xComponent.is()) - { - xComponent->removeEventListener (this); - xComponent->dispose (); - mxMainTitle = NULL; - } - } - if (mxSubTitle.is()) - { - xComponent = uno::Reference<lang::XComponent>(mxSubTitle,uno::UNO_QUERY); - if (xComponent.is()) - { - xComponent->removeEventListener (this); - xComponent->dispose (); - mxSubTitle = NULL; - } - } - if (mxLegend.is()) - { - xComponent = uno::Reference<lang::XComponent>(mxLegend,uno::UNO_QUERY); - if (xComponent.is()) - { - xComponent->removeEventListener (this); - xComponent->dispose (); - mxLegend = NULL; - } - } - if (mxArea.is()) - { - xComponent = uno::Reference<lang::XComponent>(mxArea,uno::UNO_QUERY); - if (xComponent.is()) - { - xComponent->removeEventListener (this); - xComponent->dispose (); - mxArea = NULL; - } - } - - if( m_rXDiagram.is()) - { - ChXDiagram* pDiagram = ChXDiagram::getImplementation( m_rXDiagram ); - if( pDiagram ) - pDiagram->SetDocShell( NULL ); - xComponent = uno::Reference<lang::XComponent>(m_rXDiagram,uno::UNO_QUERY); - if (xComponent.is()) - { - xComponent->removeEventListener (this); - xComponent->dispose(); - m_rXDiagram = NULL; - } - } - m_pModel = NULL; - - SfxBaseModel::dispose(); -} - - - - -void SAL_CALL ChXChartDocument::addEventListener( const uno::Reference< lang::XEventListener >& xListener ) - throw( uno::RuntimeException ) -{ - SfxBaseModel::addEventListener( xListener ); -} - -void SAL_CALL ChXChartDocument::removeEventListener( const uno::Reference< lang::XEventListener >& aListener ) - throw( uno::RuntimeException ) -{ - SfxBaseModel::removeEventListener( aListener ); -} - -// XNumberFormatsSupplier -void ChXChartDocument::InitNumberFormatter() throw( uno::RuntimeException ) -{ - osl::Guard< osl::Mutex > aGuard( GetMutex()); - if( ! mrNumberFormatter.is()) - { - if( m_pModel ) - { - SolarMutexGuard aLclGuard; - mrNumberFormatter = new SvNumberFormatsSupplierObj( m_pModel->GetNumFormatter() ); - } - else - mrNumberFormatter = new SvNumberFormatsSupplierObj(); - } - - if( ! mrNumberFormatter.is()) - throw uno::RuntimeException(); -} - -uno::Reference< beans::XPropertySet > SAL_CALL ChXChartDocument::getNumberFormatSettings() throw( uno::RuntimeException ) -{ - if( ! mrNumberFormatter.is()) - InitNumberFormatter(); - - return mrNumberFormatter.get()->getNumberFormatSettings(); -} - -uno::Reference< util::XNumberFormats > SAL_CALL ChXChartDocument::getNumberFormats() throw( uno::RuntimeException ) -{ - if( ! mrNumberFormatter.is()) - InitNumberFormatter(); - - return mrNumberFormatter.get()->getNumberFormats(); -} - -// XServiceInfo -::rtl::OUString SAL_CALL ChXChartDocument::getImplementationName() - throw( uno::RuntimeException ) -{ - return SCH_ASCII_TO_OU( "ChXChartDocument" ); -} - -sal_Bool SAL_CALL ChXChartDocument::supportsService( const ::rtl::OUString& ServiceName ) - throw( uno::RuntimeException ) -{ - return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() ); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChXChartDocument::getSupportedServiceNames() - throw( uno::RuntimeException ) -{ - uno::Sequence< ::rtl::OUString > aSeq( 4 ); - ::rtl::OUString* pStr = aSeq.getArray(); - pStr[ 0 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.OfficeDocument" )); - pStr[ 1 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartDocument" )); - pStr[ 2 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartTableAddressSupplier" )); - pStr[ 3 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.UserDefinedAttributeSupplier" )); - - return aSeq; -} - -// XDrawPageSupplier -uno::Reference< drawing::XDrawPage > SAL_CALL ChXChartDocument::getDrawPage() - throw( uno::RuntimeException ) -{ - osl::Guard< osl::Mutex > aGuard( GetMutex()); - - if( ! mrDrawPage.is() && m_pModel ) - { - mrDrawPage = new ChXChartDrawPage( m_pModel ); - uno::WeakReference< uno::XInterface > xPage( mrDrawPage ); - // set page wrapper (member can be used as this class is declared as friend) - m_pModel->GetPage( 0 )->mxUnoPage = xPage; - } - - return mrDrawPage; -} - -// XUnoTunnel -sal_Int64 SAL_CALL ChXChartDocument::getSomething( const uno::Sequence< sal_Int8 >& aIdentifier ) - throw( uno::RuntimeException ) -{ - if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), - aIdentifier.getConstArray(), 16 ) ) - { - return (sal_Int64)this; - } - - // in XML the implementation of the XNumberFormatsSupplier (SvNumberFormatsSupplierObj) is queried - // so return this member here - - if( ! mrNumberFormatter.is()) - InitNumberFormatter(); - - uno::Reference< lang::XUnoTunnel > xUnoTunnel( mrNumberFormatter, uno::UNO_QUERY ); - if( xUnoTunnel.is()) - return xUnoTunnel->getSomething( aIdentifier ); - - return 0; -} - - - -// XEeventListener -//virtual -void SAL_CALL ChXChartDocument::disposing (const lang::EventObject & Source) - throw (uno::RuntimeException) -{ - sal_Bool bChangeProperty = sal_False; - ::rtl::OUString aProperty; - - if (Source.Source == m_rXDiagram) - m_rXDiagram = NULL; - else if (Source.Source == mxMainTitle) - { - mxMainTitle = NULL; - aProperty = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( UNONAME_TITLE_SHOW_MAIN )); - bChangeProperty = sal_True; - } - else if (Source.Source == mxSubTitle) - { - mxSubTitle = NULL; - aProperty = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( UNONAME_TITLE_SHOW_SUB )); - bChangeProperty = sal_True; - } - else if (Source.Source == mxLegend) - { - mxLegend = NULL; - aProperty = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( UNONAME_HASLEGEND )); - bChangeProperty = sal_True; - } - else if (Source.Source == mxArea) - { - mxArea = NULL; - } - - if ( ! bChangeProperty) - return; - - // Inform the document shell of the disposing of Source.Source. - SolarMutexGuard aGuard; - - SchChartDocShell* pDocSh = (SchChartDocShell*)GetObjectShell(); - if (pDocSh == NULL) - return; - uno::Reference< beans::XPropertySet > xDocProp( pDocSh->GetBaseModel(), uno::UNO_QUERY ); - if( xDocProp.is()) - { - uno::Any aFalseBool; - aFalseBool <<= (sal_Bool)(sal_False); - try - { - xDocProp->setPropertyValue( aProperty, aFalseBool ); - } - catch( beans::UnknownPropertyException ) - { - DBG_WARNING( "cannot set property to false" ); - } - } - - SfxBaseModel::disposing( Source ); -} - -// get additional non-chart shapes for XML export -uno::Reference< drawing::XShapes > ChXChartDocument::GetAdditionalShapes() -{ - uno::Reference< drawing::XShapes > xFoundShapes; - - if( m_pModel == NULL ) - return xFoundShapes; - - // iterate 'flat' over all top-level objects - // and determine all that are no chart objects - // i.e. which have no SchObjectId set as user data - ::std::vector< uno::Reference< drawing::XShape > > aShapeVector; - SdrObjListIter aIter( *(m_pModel->GetPage( 0 )), IM_FLAT ); - SdrObject* pObj; - while( aIter.IsMore()) - { - pObj = aIter.Next(); - - if( GetObjectId( *pObj ) != NULL ) - continue; - - // we have no chart user data, i.e. a non-chart object - - // check if chart is inventor. This has to be changed for XML exportability - if( pObj->GetObjInventor() == SchInventor && - pObj->ISA( SchObjGroup )) - { - static_cast< SchObjGroup* >( pObj )->SetUseChartInventor( false ); - } - - uno::Reference< drawing::XShape > xShape( pObj->getUnoShape(), uno::UNO_QUERY ); - if( xShape.is() ) - aShapeVector.push_back( xShape ); - } - if( ! aShapeVector.empty()) - { - // create a shape collection - xFoundShapes = uno::Reference< drawing::XShapes >( SvxShapeCollection_NewInstance(), uno::UNO_QUERY ); - - DBG_ASSERT( xFoundShapes.is(), "Couldn't create a shape collection!" ); - if( xFoundShapes.is()) - { - ::std::vector< uno::Reference< drawing::XShape > >::iterator aLclIter; - for( aLclIter = aShapeVector.begin(); aLclIter != aShapeVector.end(); ++aLclIter ) - xFoundShapes->add( *aLclIter ); - } - } - - return xFoundShapes; -} - -uno::Sequence< sal_Int32 > ChXChartDocument::GetTransSequence( SchMemChart* pData, bool bColumns ) -{ - uno::Sequence< sal_Int32 > aResult; - - if( pData ) - { - long nTranslation = pData->GetTranslation(); - - if( bColumns ) - { - short nColCount = pData->GetColCount(); - aResult.realloc( nColCount ); - sal_Int32* pSeq = aResult.getArray(); - const sal_Int32* pTransArray = pData->GetColTranslation(); - sal_Int32 i; - - if( nTranslation == TRANS_COL && - pTransArray != NULL ) - { - for( i = 0; i < nColCount; ++i ) - pSeq[ i ] = pTransArray[ i ]; - } - else - { - // identity sequence - for( i = 0; i < nColCount; ++i ) - pSeq[ i ] = i; - } - } - else // rows - { - short nRowCount = pData->GetRowCount(); - aResult.realloc( nRowCount ); - sal_Int32* pSeq = aResult.getArray(); - const sal_Int32* pTransArray = pData->GetRowTranslation(); - sal_Int32 i; - - if( nTranslation == TRANS_ROW && - pTransArray != NULL ) - { - for( i = 0; i < nRowCount; ++i ) - pSeq[ i ] = pTransArray[ i ]; - } - else - { - // identity sequence - for( i = 0; i < nRowCount; ++i ) - pSeq[ i ] = i; - } - } - } - else - { - OSL_FAIL( "Invalid MemChart" ); - } - - return aResult; -} - -bool ChXChartDocument::SetTransSequence( SchMemChart* pData, bool bColumns, const uno::Sequence< sal_Int32 >& rSeq ) -{ - bool bResult = false; - - if( pData ) - { - long nTranslation = pData->GetTranslation(); - - if( bColumns ) - { - if( nTranslation != TRANS_ROW && - pData->GetColCount() == rSeq.getLength() ) - { - pData->SetTranslation( TRANS_COL ); - pData->SetColTranslation( rSeq.getConstArray()); - bResult = true; - } - } - else // rows - { - if( nTranslation != TRANS_COL && - pData->GetRowCount() == rSeq.getLength() ) - { - pData->SetTranslation( TRANS_ROW ); - pData->SetRowTranslation( rSeq.getConstArray()); - bResult = true; - } - } - - } - else - { - OSL_FAIL( "Invalid MemChart" ); - } - - return bResult; -} -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDrawPage.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDrawPage.cxx deleted file mode 100644 index fa78e1db5..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartDrawPage.cxx +++ /dev/null @@ -1,252 +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. - * - ************************************************************************/ -#include "ChXChartDrawPage.hxx" -#include "chtmodel.hxx" - -// header for class OGuard -// header for class Application -#include <vcl/svapp.hxx> -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <rtl/uuid.h> -namespace binfilter { - - -using namespace ::com::sun::star; - -#define CHART_DRAW_PAGE_WIDTH_ID 1 -#define CHART_DRAW_PAGE_HEIGHT_ID 2 - -const SfxItemPropertyMap* ImplGetChartDrawPageMap() -{ - // Propertymap fuer einen Outliner Text - static const SfxItemPropertyMap aChartDrawPage[] = - { - { MAP_CHAR_LEN( "Width" ), CHART_DRAW_PAGE_WIDTH_ID, &::getCppuType((const sal_Int32*)0), 0, 0 }, - { MAP_CHAR_LEN( "Height" ), CHART_DRAW_PAGE_HEIGHT_ID, &::getCppuType((const sal_Int32*)0), 0, 0 }, - { 0,0,0,0,0,0 } - }; - - return aChartDrawPage; -} - -ChXChartDrawPage::ChXChartDrawPage( ChartModel* pInModel ) : - SvxDrawPage( pInModel? pInModel->GetPage( 0 ): NULL ), - mpModel( pInModel ), - maPropSet( ImplGetChartDrawPageMap() ) -{ - DBG_ASSERT( pInModel != NULL, "ChXChartDrawPage: Invalid model (=> invalid page)" ); -} - -ChXChartDrawPage::~ChXChartDrawPage() throw() -{} - - -// XInterface -uno::Any SAL_CALL ChXChartDrawPage::queryInterface( const uno::Type & rType ) - throw( uno::RuntimeException ) -{ - uno::Any aAny = SvxDrawPage::queryInterface( rType ); - if( aAny.hasValue() ) - return aAny; - - return ::cppu::queryInterface( - rType, - ( beans::XPropertySet* )this ); -} - -void SAL_CALL ChXChartDrawPage::acquire() throw() -{ - SvxDrawPage::acquire(); -} - -void SAL_CALL ChXChartDrawPage::release() throw() -{ - SvxDrawPage::release(); -} - -// XTypeProvider -uno::Sequence< uno::Type > SAL_CALL ChXChartDrawPage::getTypes() throw( uno::RuntimeException ) -{ - if( maTypeSequence.getLength() == 0 ) - { - const uno::Sequence< uno::Type > aBaseTypes( SvxDrawPage::getTypes() ); - const sal_Int32 nBaseTypes = aBaseTypes.getLength(); - const uno::Type* pBaseTypes = aBaseTypes.getConstArray(); - - maTypeSequence.realloc( nBaseTypes + 1 ); // Note: Keep the size updated !! - uno::Type* pTypes = maTypeSequence.getArray(); - - *pTypes++ = ::getCppuType((const uno::Reference< beans::XPropertySet >*)0); - - for( sal_Int32 nType = 0; nType < nBaseTypes; nType++ ) - *pTypes++ = *pBaseTypes++; - } - - return maTypeSequence; -} - -uno::Sequence< sal_Int8 > SAL_CALL ChXChartDrawPage::getImplementationId() throw( uno::RuntimeException ) -{ - static uno::Sequence< sal_Int8 > aId; - if( aId.getLength() == 0 ) - { - aId.realloc( 16 ); - rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True ); - } - return aId; -} - -// XPropertySet -uno::Reference< beans::XPropertySetInfo > SAL_CALL ChXChartDrawPage::getPropertySetInfo() - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - return maPropSet.getPropertySetInfo(); -} - -void SAL_CALL ChXChartDrawPage::setPropertyValue( const ::rtl::OUString& aPropertyName, const uno::Any& aValue ) - throw( beans::UnknownPropertyException, - beans::PropertyVetoException, - lang::IllegalArgumentException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( aPropertyName ); - if( mpModel && - pMap && pMap->nWID ) - { - if( pMap->nFlags & beans::PropertyAttribute::READONLY ) - throw beans::PropertyVetoException(); - - switch( pMap->nWID ) - { - case CHART_DRAW_PAGE_WIDTH_ID: - { - const SdrPage* pLclPage = mpModel->GetPage( 0 ); - if( pLclPage ) - { - sal_Int32 nWidth(0); - aValue >>= nWidth; - Size aSize = pLclPage->GetSize(); - aSize.setWidth( nWidth ); - - mpModel->ResizePage( aSize ); - } - } - break; - case CHART_DRAW_PAGE_HEIGHT_ID: - { - const SdrPage* pLclPage = mpModel->GetPage( 0 ); - if( pLclPage ) - { - sal_Int32 nHeight(0); - aValue >>= nHeight; - Size aSize = pLclPage->GetSize(); - aSize.setHeight( nHeight ); - - mpModel->ResizePage( aSize ); - } - } - break; - } - } -} - -uno::Any SAL_CALL ChXChartDrawPage::getPropertyValue( const ::rtl::OUString& aPropertyName ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - uno::Any aResult; - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( aPropertyName ); - - if( mpModel && - pMap && pMap->nWID ) - { - switch( pMap->nWID ) - { - case CHART_DRAW_PAGE_WIDTH_ID: - { - const SdrPage* pLclPage = mpModel->GetPage( 0 ); - if( pLclPage ) - { - Size aSize = pLclPage->GetSize(); - aResult <<= aSize.getWidth(); - } - } - break; - case CHART_DRAW_PAGE_HEIGHT_ID: - { - const SdrPage* pLclPage = mpModel->GetPage( 0 ); - if( pLclPage ) - { - Size aSize = pLclPage->GetSize(); - aResult <<= aSize.getHeight(); - } - } - break; - } - } - return aResult; -} - -void SAL_CALL ChXChartDrawPage::addPropertyChangeListener( const ::rtl::OUString& /*aPropertyName*/, - const uno::Reference< beans::XPropertyChangeListener >& /*xListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXChartDrawPage::removePropertyChangeListener( const ::rtl::OUString& /*aPropertyName*/, - const uno::Reference< beans::XPropertyChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXChartDrawPage::addVetoableChangeListener( const ::rtl::OUString& /*PropertyName*/, - const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXChartDrawPage::removeVetoableChangeListener( const ::rtl::OUString& /*PropertyName*/, - const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartObject.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartObject.cxx deleted file mode 100644 index c535b2d8b..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_ChXChartObject.cxx +++ /dev/null @@ -1,1392 +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. - * - ************************************************************************/ - -#include "ChXChartObject.hxx" -#include "schattr.hxx" - -// header for class OGuard -// header for class Application -#include <vcl/svapp.hxx> - -// header for SvxUnoTextRangeBase -// for OWN_ATTR_... -#include <bf_svx/unoshprp.hxx> -// for SID_ATTR_... -#include <bf_svx/svxids.hrc> -#include <bf_svx/unoshape.hxx> - -#include <rtl/uuid.h> -#include <rtl/memory.h> - -#ifndef _SVX_CHRTITEM_HXX //autogen -#define ITEMID_DOUBLE 0 -#define ITEMID_CHARTTEXTORDER SCHATTR_TEXT_ORDER -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT -#define ITEMID_CHARTLEGENDPOS SCHATTR_LEGEND_POS -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR - -#include <bf_svtools/eitem.hxx> - -#endif -#include <bf_svx/xflbstit.hxx> -#include <bf_svx/xflbmtit.hxx> - -#include "app.hrc" // for SID_TEXTBREAK - -#include "mapprov.hxx" -#include "globfunc.hxx" // for GlobalGenerate3DAttrDefaultItem - -#include <com/sun/star/chart/ChartLegendPosition.hpp> - -// header for any2enum -#include <comphelper/extract.hxx> - -#include <memory> -#include "unonames.hxx" -namespace binfilter { - - -extern SchUnoPropertyMapProvider aSchMapProvider; - -using namespace ::com::sun::star; -using namespace ::rtl; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::beans; - -ChXChartObject::ChXChartObject( long _MapId, ChartModel* _Model, long _WhichId, long _Index ) : - maPropSet( aSchMapProvider.GetMap( (short)_MapId, _Model )), - mpModel( _Model ), - mnWhichId( _WhichId? _WhichId: CHOBJID_ANY ), - mnIndex( _Index ), - maListenerList (maMutex) -{} - -ChXChartObject::~ChXChartObject() -{} - -long ChXChartObject::GetId() const -{ - return mnWhichId; -} - -// XShape - -// the following 'Hack' methods are copied from bf_svx/unodraw/unoshape.cxx -// they are needed as long as the drawing layer requires this - -sal_Bool needLogicRectHack( SdrObject* pObj ) -{ - if( pObj->GetObjInventor() == SdrInventor) - { - switch(pObj->GetObjIdentifier()) - { - case OBJ_GRUP: - case OBJ_LINE: - case OBJ_POLY: - case OBJ_PLIN: - case OBJ_PATHLINE: - case OBJ_PATHFILL: - case OBJ_FREELINE: - case OBJ_FREEFILL: - case OBJ_SPLNLINE: - case OBJ_SPLNFILL: - case OBJ_EDGE: - case OBJ_PATHPOLY: - case OBJ_PATHPLIN: - case OBJ_MEASURE: - return sal_True; - } - } - return sal_False; -} - -Rectangle getLogicRectHack( SdrObject* pObj ) -{ - if(needLogicRectHack(pObj)) - { - return pObj->GetSnapRect(); - } - else - { - return pObj->GetLogicRect(); - } -} - -void setLogicRectHack( SdrObject* pObj, const Rectangle& rRect ) -{ - if(needLogicRectHack(pObj)) - { - pObj->SetSnapRect( rRect ); - } - else - { - pObj->SetLogicRect( rRect ); - } -} - -SdrObject* ChXChartObject::GetCurrentSdrObject() const -{ - SolarMutexGuard aGuard; - - SdrObject* pResult = NULL; - if( mpModel ) - pResult = mpModel->GetObjectWithId( mnWhichId ); - - // use first subobject for axes - if( pResult && - pResult->ISA( SdrObjGroup ) && - ( mnWhichId == CHOBJID_DIAGRAM_X_AXIS || - mnWhichId == CHOBJID_DIAGRAM_Y_AXIS || - mnWhichId == CHOBJID_DIAGRAM_Z_AXIS || - mnWhichId == CHOBJID_DIAGRAM_A_AXIS || - mnWhichId == CHOBJID_DIAGRAM_B_AXIS )) - { - pResult = pResult->GetSubList()->GetObj( 0 ); - } - - return pResult; -} - -// XShape interface methods -awt::Point SAL_CALL ChXChartObject::getPosition() throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - SdrObject* pObj = GetCurrentSdrObject(); - if( pObj ) - { - Rectangle aRect( getLogicRectHack( pObj )); - Point aPt( aRect.Left(), aRect.Top() ); - - // Position is relative to anchor - calculate absoulte position - aPt -= pObj->GetAnchorPos(); - - return awt::Point( aPt.X(), aPt.Y() ); - } - else - OSL_FAIL( "Couldn't get position due to invalid SdrObject" ); - - return awt::Point(); -} - -void SAL_CALL ChXChartObject::setPosition( const awt::Point& aPosition ) throw( uno::RuntimeException ) -{ - switch( mnWhichId ) - { - // the following objects can not be positioned - case CHOBJID_DIAGRAM_X_AXIS: - case CHOBJID_DIAGRAM_Y_AXIS: - case CHOBJID_DIAGRAM_Z_AXIS: - case CHOBJID_DIAGRAM_AREA: - case CHOBJID_DIAGRAM_WALL: - OSL_FAIL( "Cannot set position of this object" ); - return; - } - - SolarMutexGuard aGuard; - - SdrObject* pObj = GetCurrentSdrObject(); - if( pObj ) - { - Rectangle aRect( getLogicRectHack( pObj ) ); - Point aLocalPos( aPosition.X, aPosition.Y ); - - // Position is absolute - position relative to anchor is required - aLocalPos -= pObj->GetAnchorPos(); - - long nDX = aLocalPos.X() - aRect.Left(); - long nDY = aLocalPos.Y() - aRect.Top(); - - if( nDX != 0 || nDY != 0 ) - { - pObj->Move( Size( nDX, nDY ) ); - if( mpModel ) - { - mpModel->SetChanged(); - - mpModel->SetUseRelativePositions( TRUE ); - mpModel->SetHasBeenMoved( mnWhichId ); - } - } - } - else - OSL_FAIL( "Couldn't set position due to invalid SdrObject" ); -} - -awt::Size SAL_CALL ChXChartObject::getSize() throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - SdrObject* pObj = GetCurrentSdrObject(); - if( pObj ) - { - Rectangle aRect( getLogicRectHack( pObj )); - Size aObjSize( aRect.GetWidth(), aRect.GetHeight() ); - return awt::Size( aObjSize.getWidth(), aObjSize.getHeight() ); - } - else - OSL_FAIL( "Couldn't get size due to invalid SdrObject" ); - - return awt::Size(); -} - -void SAL_CALL ChXChartObject::setSize( const awt::Size& /*aSize*/ ) - throw( beans::PropertyVetoException, uno::RuntimeException ) -{ - // set size is not supported by any chart object except - // the diagram which is covered by ChXDiagram - - OSL_FAIL( "Size of chart objects cannot be changed" ); -} - -// XPropertySet -uno::Reference< beans::XPropertySetInfo > SAL_CALL ChXChartObject::getPropertySetInfo() throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - return maPropSet.getPropertySetInfo(); -} - -void SAL_CALL ChXChartObject::setPropertyValue( const ::rtl::OUString& aPropertyName, const uno::Any& aValue ) - throw( beans::UnknownPropertyException, - beans::PropertyVetoException, - lang::IllegalArgumentException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - if( mpModel && mnWhichId != CHOBJID_ANY ) - { - if( aPropertyName.compareToAscii( UNONAME_TEXT_STRING ) == 0 ) - { - ::rtl::OUString aStr; - aValue >>= aStr; - mpModel->SetTitle( mnWhichId, aStr ); - mpModel->BuildChart( FALSE ); - return; - } - - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( aPropertyName ); - - if( pMap && pMap->nWID ) - { - if( pMap->nFlags & beans::PropertyAttribute::READONLY ) - throw beans::PropertyVetoException(); - - USHORT nWID = pMap->nWID; - - // create itemset capable of holding necessary items - SfxItemSet* pSet = NULL; - switch( nWID ) - { - case OWN_ATTR_FILLBMP_MODE: - pSet = new SfxItemSet( mpModel->GetItemPool(), - XATTR_FILLBMP_STRETCH, XATTR_FILLBMP_STRETCH, - XATTR_FILLBMP_TILE, XATTR_FILLBMP_TILE, 0 ); - break; - - default: - pSet = new SfxItemSet( mpModel->GetItemPool(), nWID, nWID ); - break; - } - - // special handling - switch( nWID ) - { - case SCHATTR_LEGEND_POS: - if( mnWhichId == CHOBJID_LEGEND ) - { - chart::ChartLegendPosition ePos; - cppu::any2enum< chart::ChartLegendPosition >( ePos, aValue ); - //ToDo: NONE shouldn't be used to disable the legend. There should be a way - // to set the position to 'unanchored' plus a flag for - // 'vertically|horizontally' extending - mpModel->SetShowLegend( ePos != chart::ChartLegendPosition_NONE ); - mpModel->SetLegendHasBeenMoved( FALSE ); - // note: SetShowLegend sets pos to CHLEGEND_RIGHT - pSet->Put( SvxChartLegendPosItem( - SAL_STATIC_CAST( SvxChartLegendPos, SAL_STATIC_CAST( int, ePos )))); - } - break; - - case SCHATTR_TEXT_ORIENT: - { - sal_Bool bVal = sal_False; - if( aValue >>= bVal ) - { - pSet->Put( SvxChartTextOrientItem( - bVal - ? CHTXTORIENT_STACKED - : CHTXTORIENT_AUTOMATIC )); - } - } - break; - - case OWN_ATTR_FILLBMP_MODE: - do - { - drawing::BitmapMode eMode; - if(!(aValue >>= eMode) ) - { - sal_Int32 nMode = 0; - if(!(aValue >>= nMode)) - break; - - eMode = (drawing::BitmapMode)nMode; - } - pSet->Put( XFillBmpStretchItem( eMode == drawing::BitmapMode_STRETCH ) ); - pSet->Put( XFillBmpTileItem( eMode == drawing::BitmapMode_REPEAT ) ); - } - while(0); - break; - - case XATTR_FILLBITMAP: - case XATTR_FILLGRADIENT: - case XATTR_FILLHATCH: - case XATTR_FILLFLOATTRANSPARENCE: - case XATTR_LINEEND: - case XATTR_LINESTART: - case XATTR_LINEDASH: - if( pMap->nMemberId == MID_NAME ) - { - ::rtl::OUString aStr; - if( aValue >>= aStr ) - SvxShape::SetFillAttribute( nWID, aStr, *pSet, mpModel ); - break; - } - // note: this fall-through is intended - - default: - // some item is required for cloning - mpModel->GetAttr( mnWhichId, *pSet, mnIndex ); - - if( ! pSet->Count() && - mpModel->GetItemPool().IsWhich( nWID ) && - ! (( OWN_ATTR_VALUE_START <= nWID ) && ( nWID <= OWN_ATTR_VALUE_END ))) - { - pSet->Put( mpModel->GetItemPool().GetDefaultItem( nWID )); - } - - // CL: convert special character properties - if( ! SvxUnoTextRangeBase::SetPropertyValueHelper( *pSet, pMap, aValue, *pSet )) - { - // standard mapping of any to item - maPropSet.setPropertyValue( pMap, aValue, *pSet ); - } - break; - } - - if( pSet->Count() ) - mpModel->ChangeAttr( *pSet, mnWhichId, mnIndex ); - - delete pSet; - } - } - else - { - throw beans::UnknownPropertyException(); - } -} - -uno::Any SAL_CALL ChXChartObject::getPropertyValue( const ::rtl::OUString& PropertyName ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - uno::Any aResultaAny; - sal_Bool bPropertyUnknown = sal_False; - - if( mpModel && mnWhichId != CHOBJID_ANY ) - { - // titles - if( PropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( UNONAME_TEXT_STRING ))) - { - aResultaAny <<= ::rtl::OUString( mpModel->GetTitle( mnWhichId )); - return aResultaAny; - } - - // legend alignment - if( mnWhichId == CHOBJID_LEGEND && - PropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( UNONAME_CHARTLEGENDALIGN ))) - { - SfxItemSet rSet = mpModel->GetLegendAttr(); - const SfxPoolItem *pPoolItem = NULL; - SvxChartLegendPos ePos = - rSet.GetItemState( SCHATTR_LEGEND_POS,TRUE, &pPoolItem) == SFX_ITEM_SET - ? ((const SvxChartLegendPosItem*)pPoolItem)->GetValue() - : CHLEGEND_RIGHT; - chart::ChartLegendPosition ePosition = (chart::ChartLegendPosition)ePos; - aResultaAny <<= ePosition; - return aResultaAny; - } - - // properties using map - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName ); - if( pMap && pMap->nWID ) - { - USHORT nWID = pMap->nWID; - - if( nWID == OWN_ATTR_FILLBMP_MODE ) - { - SfxItemSet aSet( mpModel->GetItemPool(), - XATTR_FILLBMP_STRETCH, XATTR_FILLBMP_STRETCH, - XATTR_FILLBMP_TILE, XATTR_FILLBMP_TILE, 0 ); - - // get 'full attributes', ie some members are copied to the set - mpModel->GetAttr( mnWhichId, aSet, mnIndex ); - - XFillBmpStretchItem* pStretchItem = (XFillBmpStretchItem*)&aSet.Get( XATTR_FILLBMP_STRETCH ); - XFillBmpTileItem* pTileItem = (XFillBmpTileItem*)&aSet.Get( XATTR_FILLBMP_TILE ); - - if( pTileItem && pTileItem->GetValue() ) - { - aResultaAny <<= drawing::BitmapMode_REPEAT; - } - else if( pStretchItem && pStretchItem->GetValue() ) - { - aResultaAny <<= drawing::BitmapMode_STRETCH; - } - else - { - aResultaAny <<= drawing::BitmapMode_NO_REPEAT; - } - return aResultaAny; - } - - std::auto_ptr<SfxItemSet> aSet; - switch (nWID) - { - case SCHATTR_TEXT_DEGREES: - // Needing the text orientation for adapting - // CHTXTORIENT_AUTOMATIC to corresponging degrees. - aSet = std::auto_ptr<SfxItemSet> (new SfxItemSet (mpModel->GetItemPool(), - nWID, nWID, - SCHATTR_TEXT_ORIENT,SCHATTR_TEXT_ORIENT, - 0)); - break; - - default: - // Just interested in the single item. - aSet = std::auto_ptr<SfxItemSet> (new SfxItemSet (mpModel->GetItemPool(), - nWID, nWID)); - } - - // get 'full attributes', ie some members are copied to the set - mpModel->GetAttr( mnWhichId, *aSet, mnIndex ); - - if( SvxUnoTextRangeBase::GetPropertyValueHelper( *aSet, pMap, aResultaAny )) - return aResultaAny; - - // item is not set => use default - if( !aSet->Count() ) - { - // get default value from pool - if( mpModel->GetItemPool().IsWhich( nWID ) ) - { - if( ! ( OWN_ATTR_VALUE_START <= nWID && nWID <= OWN_ATTR_VALUE_END )) // 'private' properties from SvxShape - { - aSet->Put( mpModel->GetItemPool().GetDefaultItem( nWID ) ); - } - } - else if( nWID == SID_TEXTBREAK ) - { - aSet->Put( SfxBoolItem( SID_TEXTBREAK, - ( mnWhichId == CHOBJID_DIAGRAM_X_AXIS || - mnWhichId == CHOBJID_DIAGRAM_A_AXIS ))); - } - else if( nWID == SID_ATTR_NUMBERFORMAT_SOURCE ) - { - aSet->Put( SfxBoolItem( SID_ATTR_NUMBERFORMAT_SOURCE, TRUE )); - } - else - { -#if OSL_DEBUG_LEVEL > 1 - String aTmpString( PropertyName ); - ByteString aProp( aTmpString, RTL_TEXTENCODING_ASCII_US ); - OSL_TRACE( "Diagram: Property %s has an invalid ID (%d)", aProp.GetBuffer(), nWID ); -#endif - } - } - - // item or default has been set - if( aSet->Count() ) - { - // Special case: Axis title rotation angle. - if (nWID == SCHATTR_TEXT_DEGREES) - { - // Automatic text orientation is changed into corresponding - // rotation angle. - SvxChartTextOrient eOrientation = - ((const SvxChartTextOrientItem&)aSet->Get( - SCHATTR_TEXT_ORIENT)).GetValue(); - if (eOrientation == CHTXTORIENT_AUTOMATIC) - { - switch (mnWhichId) - { - case CHOBJID_DIAGRAM_TITLE_X_AXIS: - if (mpModel->IsXVertikal()) - eOrientation = CHTXTORIENT_BOTTOMTOP; - else - eOrientation = CHTXTORIENT_AUTOMATIC; - break; - - case CHOBJID_DIAGRAM_TITLE_Y_AXIS: - if (mpModel->IsXVertikal()) - eOrientation = CHTXTORIENT_AUTOMATIC; - else - eOrientation = CHTXTORIENT_BOTTOMTOP; - break; - - case CHOBJID_DIAGRAM_TITLE_Z_AXIS: - if (mpModel->IsXVertikal()) - eOrientation = CHTXTORIENT_TOPBOTTOM; - else - eOrientation = CHTXTORIENT_AUTOMATIC; - break; - - default: - eOrientation = CHTXTORIENT_AUTOMATIC; - break; - } - long nAngle = GetTextRotation (*aSet, eOrientation); - aSet->Put (SfxInt32Item (SCHATTR_TEXT_DEGREES, nAngle)); - } - } - - if( nWID == SCHATTR_TEXT_ORIENT ) - { - // map enum to bool: only stacked or not stacked is interesting - SvxChartTextOrient eOrientation = - ((const SvxChartTextOrientItem&)aSet->Get( - SCHATTR_TEXT_ORIENT)).GetValue(); - aResultaAny <<= static_cast< sal_Bool >( eOrientation == CHTXTORIENT_STACKED ); - } - else - { - // get value from ItemSet - aResultaAny = maPropSet.getPropertyValue( pMap, *aSet ); - if( *pMap->pType != aResultaAny.getValueType() ) - { - // since the sfx uint16 item now exports a sal_Int32, we may have to fix this here - if( ( *pMap->pType == ::getCppuType((const sal_Int16*)0)) && aResultaAny.getValueType() == ::getCppuType((const sal_Int32*)0) ) - { - sal_Int32 nValue(0); - aResultaAny >>= nValue; - aResultaAny <<= static_cast< sal_Int16 >( nValue ); - } - else - { - OSL_FAIL( "getPropertyValue(): wrong Type!" ); - } - } - } - } - else - { - bPropertyUnknown = sal_True; - } - } - else - { - bPropertyUnknown = sal_True; - } - - if( bPropertyUnknown ) - { - ::rtl::OUString aMessage( RTL_CONSTASCII_USTRINGPARAM( "Chart Object: Unknown Property " )); - aMessage += PropertyName; - beans::UnknownPropertyException aExcpt( aMessage, (::cppu::OWeakObject*)this ); - throw aExcpt; - } - } - - return aResultaAny; -} - -void SAL_CALL ChXChartObject::addPropertyChangeListener( const ::rtl::OUString& /*aPropertyName*/, - const uno::Reference< beans::XPropertyChangeListener >& /*xListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXChartObject::removePropertyChangeListener( const ::rtl::OUString& /*aPropertyName*/, - const uno::Reference< beans::XPropertyChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXChartObject::addVetoableChangeListener( const ::rtl::OUString& /*PropertyName*/, - const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXChartObject::removeVetoableChangeListener( const ::rtl::OUString& /*PropertyName*/, - const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - - - -//===== XMultiPropertySet =================================================== - -/* - In contrast to calling the method setPropertyValue (singular) for every given property name - the implementation of this method exploits the following properties: - 1: Both the given sequence of property names and the member property map are sorted according - to the property names. - 2: The item set which gathers all items changed by setting the properties is created only once. - 3: The solar mutex is acquired only once. -*/ -void SAL_CALL ChXChartObject::setPropertyValues ( - const uno::Sequence< ::rtl::OUString >& aPropertyNames, - const uno::Sequence< uno::Any >& aValues ) - throw ( beans::PropertyVetoException, - lang::IllegalArgumentException, - lang::WrappedTargetException, - uno::RuntimeException) -{ - SolarMutexGuard aGuard; - - // Get pointers to first elements of lists. - const SfxItemPropertyMap * pProperty = maPropSet.getPropertyMap (); - const OUString * pPropertyName = aPropertyNames.getConstArray (); - const Any * pValue = aValues.getConstArray (); - - // Check preconditions. - if (mpModel == NULL) - throw UnknownPropertyException (OUString(RTL_CONSTASCII_USTRINGPARAM( - "ChXChartObject::setPropertyValues: no model")), (::cppu::OWeakObject*)this); - if (mnWhichId == CHOBJID_ANY) - throw UnknownPropertyException (OUString(RTL_CONSTASCII_USTRINGPARAM( - "ChXChartObject::setPropertyValues: invalid object")), (::cppu::OWeakObject*)this); - if (pProperty == NULL || pProperty->pName == NULL) - throw UnknownPropertyException (OUString(RTL_CONSTASCII_USTRINGPARAM( - "ChXChartObject::setPropertyValues: empty property list")), (::cppu::OWeakObject*)this); - - // Some variables used in the following loop. - USHORT nWID; - - // Item set used to collect all modifications from the individual properties to set. - SfxItemSet aModifications (mpModel->GetItemPool()); - mpModel->GetAttr (mnWhichId, aModifications, mnIndex); - - // Iterate over all the given property names. - sal_Int32 nCounter = aPropertyNames.getLength(); - while (nCounter-- > 0) - { - AdvanceToName (pProperty, pPropertyName); - - // Handle the properties in the property map. The case statements handle - // the special cases while the default statement handles all remaining cases. - switch (nWID = pProperty->nWID) - { - case CHATTR_TITLE_MAIN: - // Handle special cases of title objects. - { - OUString aString; - *pValue >>= aString; - mpModel->SetTitle (mnWhichId, aString); - mpModel->BuildChart (FALSE); - } - break; - - case SCHATTR_LEGEND_POS: - // This one is only valid if this object is a legend. - if (mnWhichId == CHOBJID_LEGEND) - { - chart::ChartLegendPosition ePos; - cppu::any2enum< chart::ChartLegendPosition >(ePos, *pValue); - // ToDo: NONE shouldn't be used to disable the legend. There should - // be a way to set the position to 'unanchored' plus a flag for - // 'vertically|horizontally' extending - mpModel->SetShowLegend (ePos != chart::ChartLegendPosition_NONE); - mpModel->SetLegendHasBeenMoved (FALSE); - // note: SetShowLegend sets pos to CHLEGEND_RIGHT - aModifications.Put (SvxChartLegendPosItem ( - SAL_STATIC_CAST (SvxChartLegendPos, - SAL_STATIC_CAST (int, ePos)))); - } - break; - - case SCHATTR_TEXT_ORIENT: - { - sal_Bool bVal = sal_False; - if( *pValue >>= bVal ) - { - aModifications.Put( SvxChartTextOrientItem( - bVal - ? CHTXTORIENT_STACKED - : CHTXTORIENT_AUTOMATIC )); - } - } - break; - - case OWN_ATTR_FILLBMP_MODE: - { - drawing::BitmapMode eMode; - if ( ! (*pValue >>= eMode)) - { - sal_Int32 nMode = 0; - if ( ! (*pValue >>= nMode)) - break; - eMode = (drawing::BitmapMode)nMode; - } - aModifications.Put (XFillBmpStretchItem (eMode==drawing::BitmapMode_STRETCH)); - aModifications.Put (XFillBmpTileItem (eMode==drawing::BitmapMode_REPEAT)); - } - break; - - case XATTR_FILLBITMAP: - case XATTR_FILLGRADIENT: - case XATTR_FILLHATCH: - case XATTR_FILLFLOATTRANSPARENCE: - case XATTR_LINEEND: - case XATTR_LINESTART: - case XATTR_LINEDASH: - if (pProperty->nMemberId == MID_NAME ) - { - ::rtl::OUString aString; - if (*pValue >>= aString) - SvxShape::SetFillAttribute (nWID, aString, aModifications, mpModel); - break; - } - // note: this fall-through is intended - - default: -/* if ( aModifications.Count() == 0 - && mpModel->GetItemPool().IsWhich (nWID) - && ! ((nWID >= OWN_ATTR_VALUE_START) && (nWID <= OWN_ATTR_VALUE_END))) - { - aModifications.Put (mpModel->GetItemPool().GetDefaultItem (nWID)); - } -*/ - // First look if we are looking at a special character property. - if ( ! SvxUnoTextRangeBase::SetPropertyValueHelper (aModifications, pProperty, - *pValue, aModifications)) - { - // Not a special character property. - // Convert the given property value to an item and set it. - maPropSet.setPropertyValue (pProperty, *pValue, aModifications); - } - break; - } - - // Advance to the next property, property name and value. - pPropertyName++; - pValue++; - } - // Propagate the modified item set to the chart model. - if (aModifications.Count() > 0) - mpModel->ChangeAttr (aModifications, mnWhichId, mnIndex); -} - - - -/* - Again three facts are exploited: - 1. Getting the solar mutex once outside the main loop. - 2. Using the sorting of both the given list of property names and of the list of properties. - 3. Creating and filling once of the model's item set. - - This method uses two methods to make it usable in a generic way by derived classes. - 1. CreateItemSet creates and fills an item set with all known items which is used to set the - requested properties. - 2. GetPropertyValue is used to retrieve the individual values. - Both methods can be overloaded to implement class specific behaviour. - -*/ -uno::Sequence< uno::Any > SAL_CALL ChXChartObject::getPropertyValues ( - const uno::Sequence< ::rtl::OUString >& aPropertyNames ) - throw ( uno::RuntimeException) -{ - SolarMutexGuard aGuard; - - // This sequence is filled with the requested values for the given property names. - Sequence<Any> aResult (aPropertyNames.getLength()); - - // Get pointers to first elements of lists. - const SfxItemPropertyMap * pProperty = maPropSet.getPropertyMap (); - const OUString * pPropertyName = aPropertyNames.getConstArray (); - Any * pValue = aResult.getArray (); - - // Check preconditions. - if (mpModel == NULL || mnWhichId == CHOBJID_ANY) - return aResult; - - // Get the models attributes. - SfxItemSet * pAttributes = CreateItemSet(); - - // Iterate over all given property names. - sal_Int32 nCounter = aPropertyNames.getLength(); - while (nCounter-- > 0) - { - AdvanceToName (pProperty, pPropertyName); - - GetPropertyValue (*pProperty, *pValue, *pAttributes); - - // Advance to the next property, property name and value. - pPropertyName++; - pValue++; - } - - delete pAttributes; - return aResult; -} - - - - -void SAL_CALL ChXChartObject::addPropertiesChangeListener ( - const uno::Sequence< ::rtl::OUString >& /*aPropertyNames*/, - const uno::Reference< beans::XPropertiesChangeListener >& /*xListener*/ ) - throw ( uno::RuntimeException) -{ - // Not implemented. -} - - - - -void SAL_CALL ChXChartObject::removePropertiesChangeListener ( - const uno::Reference< beans::XPropertiesChangeListener >& /*xListener*/ ) - throw ( uno::RuntimeException) -{ - // Not implemented. -} - - - - -void SAL_CALL ChXChartObject::firePropertiesChangeEvent ( - const uno::Sequence< ::rtl::OUString >& /*aPropertyNames*/, - const uno::Reference< beans::XPropertiesChangeListener >& /*xListener*/ ) - throw ( uno::RuntimeException) -{ - // Not implemented. -} - - - -// XPropertyState -beans::PropertyState SAL_CALL ChXChartObject::getPropertyState( const ::rtl::OUString& PropertyName ) - throw( beans::UnknownPropertyException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName ); - - if( mpModel && - pMap && pMap->nWID ) - { - USHORT nWID = pMap->nWID; - - if( mnWhichId == CHOBJID_LEGEND && - nWID == CHATTR_LEGEND_POS ) - { - const SfxItemSet& rSet = mpModel->GetLegendAttr(); - SfxItemState aState = rSet.GetItemState( SCHATTR_LEGEND_POS, sal_False ); - - if( aState == SFX_ITEM_DEFAULT ) - return beans::PropertyState_DEFAULT_VALUE; - else - return beans::PropertyState_DIRECT_VALUE; - } - else if( nWID == CHATTR_TITLE_MAIN || // property 'String' for ALL titles - nWID == SID_TEXTBREAK ) // x, y and z axis have different defaults - { - return beans::PropertyState_DIRECT_VALUE; - } - else if( pMap->nWID == OWN_ATTR_FILLBMP_MODE ) - { - SfxItemSet aSet( mpModel->GetItemPool(), - XATTR_FILLBMP_STRETCH, XATTR_FILLBMP_STRETCH, - XATTR_FILLBMP_TILE, XATTR_FILLBMP_TILE, 0 ); - mpModel->GetAttr( mnWhichId, aSet, mnIndex ); - - if( aSet.GetItemState( XATTR_FILLBMP_STRETCH, false ) == SFX_ITEM_SET || - aSet.GetItemState( XATTR_FILLBMP_TILE, false ) == SFX_ITEM_SET ) - return beans::PropertyState_DIRECT_VALUE; - else - return beans::PropertyState_DEFAULT_VALUE; - } - else - { - SfxItemSet aSet( mpModel->GetItemPool(), nWID, nWID ); - mpModel->GetAttr( mnWhichId, aSet, mnIndex ); - - switch( aSet.GetItemState( nWID, sal_False ) ) - { - case SFX_ITEM_DONTCARE: - case SFX_ITEM_DISABLED: - return beans::PropertyState_AMBIGUOUS_VALUE; - case SFX_ITEM_READONLY: - case SFX_ITEM_SET: - return beans::PropertyState_DIRECT_VALUE; - case SFX_ITEM_DEFAULT: - return beans::PropertyState_DEFAULT_VALUE; - case SFX_ITEM_UNKNOWN: - default: - throw beans::UnknownPropertyException(); - } - } - } - - return beans::PropertyState_DIRECT_VALUE; -} - -uno::Sequence< beans::PropertyState > SAL_CALL ChXChartObject::getPropertyStates( - const uno::Sequence< ::rtl::OUString > & aPropertyNames) - throw( beans::UnknownPropertyException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - // Get pointers to first elements of lists. - const SfxItemPropertyMap * pProperty = maPropSet.getPropertyMap (); - const sal_Int32 nCount = aPropertyNames.getLength(); - const OUString * pPropertyName = aPropertyNames.getConstArray(); - Sequence<PropertyState > aStates (nCount); - PropertyState * pState = aStates.getArray(); - - // Check precondition. - if (mpModel == NULL) - return aStates; - - // Get the models attributes. - SfxItemSet aAttributes (mpModel->GetItemPool(), - mpModel->GetAttr (mnWhichId, mnIndex).GetRanges()); - mpModel->GetAttr (mnWhichId, aAttributes, mnIndex); - - // Some variables used in the following loop. - USHORT nWID; - - // Iterate over all given property names. - sal_Int32 nCounter = aPropertyNames.getLength(); - while (nCounter-- > 0) - { - AdvanceToName (pProperty, pPropertyName); - - switch (nWID = pProperty->nWID) - { - case CHATTR_LEGEND_POS: - if (mnWhichId == CHOBJID_LEGEND) - { - const SfxItemSet& rSet = mpModel->GetLegendAttr(); - SfxItemState aState = rSet.GetItemState( SCHATTR_LEGEND_POS, sal_False ); - - if( aState == SFX_ITEM_DEFAULT ) - *pState = PropertyState_DEFAULT_VALUE; - else - *pState = PropertyState_DIRECT_VALUE; - } - break; - - case CHATTR_TITLE_MAIN: // property 'String' for ALL titles - case SID_TEXTBREAK: // x, y and z axis have different defaults - *pState = PropertyState_DIRECT_VALUE; - break; - - case OWN_ATTR_FILLBMP_MODE: - if ( aAttributes.GetItemState( XATTR_FILLBMP_STRETCH, false ) == SFX_ITEM_SET - || aAttributes.GetItemState( XATTR_FILLBMP_TILE, false ) == SFX_ITEM_SET ) - *pState = PropertyState_DIRECT_VALUE; - else - *pState = PropertyState_DEFAULT_VALUE; - break; - - case SID_ATTR_NUMBERFORMAT_SOURCE: - if( aAttributes.GetItemState( SID_ATTR_NUMBERFORMAT_SOURCE ) != SFX_ITEM_SET ) - *pState = PropertyState_DEFAULT_VALUE; - else - *pState = PropertyState_DIRECT_VALUE; - break; - - default: - switch (aAttributes.GetItemState( nWID, sal_False )) - { - case SFX_ITEM_DONTCARE: - case SFX_ITEM_DISABLED: - *pState = PropertyState_AMBIGUOUS_VALUE; - break; - - case SFX_ITEM_READONLY: - case SFX_ITEM_SET: - *pState = PropertyState_DIRECT_VALUE; - break; - - case SFX_ITEM_DEFAULT: - *pState = PropertyState_DEFAULT_VALUE; - break; - - case SFX_ITEM_UNKNOWN: - default: - { - OUString aMessage (RTL_CONSTASCII_USTRINGPARAM ( "Chart Object: Unknown Property " )); - aMessage += *pPropertyName; - throw UnknownPropertyException (aMessage, (::cppu::OWeakObject*)this ); - } - } - } - pPropertyName ++; - pState ++; - } - - return aStates; -} - -void SAL_CALL ChXChartObject::setPropertyToDefault( const ::rtl::OUString& PropertyName ) - throw( beans::UnknownPropertyException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName ); - - if( mpModel ) - { - // set an empty item to change attribute to default - SfxItemSet aSet( mpModel->GetItemPool(), pMap->nWID, pMap->nWID ); - mpModel->ChangeAttr( aSet, mnWhichId, mnIndex ); - } -} - -uno::Any SAL_CALL ChXChartObject::getPropertyDefault( const ::rtl::OUString& aPropertyName ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( aPropertyName ); - SfxItemSet aSet( mpModel->GetItemPool(), pMap->nWID, pMap->nWID ); - - if( mpModel->GetItemPool().IsWhich( pMap->nWID )) - { - aSet.Put( mpModel->GetItemPool().GetDefaultItem( pMap->nWID )); - } - else if( pMap->nWID == SID_TEXTBREAK ) - { - // default for x axis is true, false for y/z - BOOL bTextBreak = - ( mnWhichId == CHOBJID_DIAGRAM_X_AXIS || - mnWhichId == CHOBJID_DIAGRAM_A_AXIS ); - aSet.Put( SfxBoolItem( SID_TEXTBREAK, bTextBreak )); - } - else - throw beans::UnknownPropertyException(); - - uno::Any aAny = maPropSet.getPropertyValue( pMap, aSet ); - - if( *pMap->pType != aAny.getValueType() ) - { - // since the sfx uint16 item now exports a sal_Int32, we may have to fix this here - if( ( *pMap->pType == ::getCppuType((const sal_Int16*)0)) && aAny.getValueType() == ::getCppuType((const sal_Int32*)0) ) - { - sal_Int32 nValue(0); - aAny >>= nValue; - aAny <<= static_cast< sal_Int16 >( nValue ); - } - else - { - OSL_FAIL( "getPropertyDefault(): wrong Type!" ); - } - } - - return aAny; -} - - - - -// XMultiPropertyStates - -// ChXChartObject::getPropertyStates is also part of XPropertyState and is defined above. - - - -void SAL_CALL ChXChartObject::setAllPropertiesToDefault (void) - throw ( uno::RuntimeException) -{ - OSL_FAIL("ChXChartObject::setAllPropertiesToDefault"); -} - - - - -void SAL_CALL ChXChartObject::setPropertiesToDefault ( - const uno::Sequence< ::rtl::OUString >& aPropertyNames ) - throw ( beans::UnknownPropertyException, - uno::RuntimeException) -{ - for (sal_Int32 i=0; i<aPropertyNames.getLength(); i++) - { - setPropertyToDefault (aPropertyNames[i]); - } -} - - - - -uno::Sequence< uno::Any > SAL_CALL ChXChartObject::getPropertyDefaults ( - const uno::Sequence< ::rtl::OUString >& aPropertyNames ) - throw ( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException) -{ - uno::Sequence<uno::Any> aResult (aPropertyNames.getLength()); - - for (sal_Int32 i=0; i<aPropertyNames.getLength(); i++) - { - aResult[i] = getPropertyDefault (aPropertyNames[i]); - } - - return aResult; -} - - - -// XComponent -void SAL_CALL ChXChartObject::dispose() throw( uno::RuntimeException ) -{ - ::com::sun::star::lang::EventObject aEvent (*this); - maListenerList.disposeAndClear (aEvent); -} - -void SAL_CALL ChXChartObject::addEventListener( const uno::Reference< lang::XEventListener >& xListener ) - throw( uno::RuntimeException ) -{ - maListenerList.addInterface (xListener); -} - -void SAL_CALL ChXChartObject::removeEventListener( const uno::Reference< lang::XEventListener >& xListener ) - throw( uno::RuntimeException ) -{ - maListenerList.removeInterface (xListener); -} - -// XServiceInfo -sal_Bool SAL_CALL ChXChartObject::supportsService( const ::rtl::OUString& ServiceName ) - throw( uno::RuntimeException ) -{ - return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() ); -} - - -// generate a uniqueId -const uno::Sequence< sal_Int8 > & ChXChartObject::getUnoTunnelId() throw() -{ - static uno::Sequence< sal_Int8 > * pSeq = 0; - if( !pSeq ) - { - osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); - if( !pSeq ) - { - static uno::Sequence< sal_Int8 > aSeq( 16 ); - rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); - pSeq = &aSeq; - } - } - return *pSeq; -} - -// XUnoTunnel -sal_Int64 SAL_CALL ChXChartObject::getSomething( const uno::Sequence< sal_Int8 >& aIdentifier ) - throw( uno::RuntimeException ) -{ - if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), - aIdentifier.getConstArray(), 16 ) ) - { - return (sal_Int64)this; - } - return 0; -} - - - -//===== protected methods ======================================================================= - -void ChXChartObject::AdvanceToName (const SfxItemPropertyMap *& pProperty, - const OUString * pPropertyName) -{ - sal_Int32 nComparisonResult; - - // Advance over the property list to the property with the current name. - while ((nComparisonResult=pPropertyName->compareToAscii (pProperty->pName)) > 0) - { - pProperty++; - if (pProperty->pName == NULL) - { - // We reached the end of the property list. Therefore all remaining given - // property names can not be found. - OUString sMessage = OUString (RTL_CONSTASCII_USTRINGPARAM ( "ChXChartObject::setPropertyValues: unknown property ")); - sMessage += *pPropertyName; - throw UnknownPropertyException (sMessage, (::cppu::OWeakObject*)this); - } - } - if (nComparisonResult < 0) - { - // All remaining given property names can not match (because they lie - // alphabetically before) the remaining properties => Error - OUString sMessage = OUString (RTL_CONSTASCII_USTRINGPARAM ( "ChXChartObject::setPropertyValues: unknown property ")); - sMessage += *pPropertyName; - throw UnknownPropertyException (sMessage, (::cppu::OWeakObject*)this); - } - - // If we get here then we have found the propert with the name pProperty->pName. -} - - - -SfxItemSet * ChXChartObject::CreateItemSet (void) -{ - SfxItemSet * pAttributes = new SfxItemSet (mpModel->GetItemPool()); - mpModel->GetAttr (mnWhichId, *pAttributes, mnIndex); - return pAttributes; -} - - - - -void ChXChartObject::GetPropertyValue (const SfxItemPropertyMap & rProperty, - Any & rValue, - SfxItemSet & rAttributes) -{ - USHORT nWID = rProperty.nWID; - - switch (nWID) - { - case CHATTR_TITLE_MAIN: - rValue <<= OUString( mpModel->GetTitle( mnWhichId )); - break; - - case SCHATTR_LEGEND_POS: - if (mnWhichId == CHOBJID_LEGEND) - { - SfxItemSet rSet = mpModel->GetLegendAttr(); - const SfxPoolItem *pPoolItem = NULL; - SvxChartLegendPos ePos = - rSet.GetItemState( SCHATTR_LEGEND_POS,TRUE, &pPoolItem) == SFX_ITEM_SET - ? ((const SvxChartLegendPosItem*)pPoolItem)->GetValue() - : CHLEGEND_RIGHT; - chart::ChartLegendPosition ePosition = (chart::ChartLegendPosition)ePos; - rValue <<= ePosition; - } - break; - - case OWN_ATTR_FILLBMP_MODE: - { - XFillBmpStretchItem * pStretchItem = (XFillBmpStretchItem*)&rAttributes.Get ( - XATTR_FILLBMP_STRETCH ); - XFillBmpTileItem * pTileItem = (XFillBmpTileItem*)&rAttributes.Get ( - XATTR_FILLBMP_TILE ); - - if( pTileItem && pTileItem->GetValue() ) - rValue <<= drawing::BitmapMode_REPEAT; - else if( pStretchItem && pStretchItem->GetValue() ) - rValue <<= drawing::BitmapMode_STRETCH; - else - rValue <<= drawing::BitmapMode_NO_REPEAT; - } - break; - - case SCHATTR_TEXT_ORIENT: - rValue <<= static_cast< sal_Bool >( - CHTXTORIENT_STACKED == - static_cast< const SvxChartTextOrientItem & >( rAttributes.Get( SCHATTR_TEXT_ORIENT )).GetValue() ); - break; - - default : - // Handle some special properties. - if (SvxUnoTextRangeBase::GetPropertyValueHelper (rAttributes, &rProperty, rValue)) - break; - - // item is not set => use default - switch (rAttributes.GetItemState (nWID, FALSE)) - { - case SFX_ITEM_UNKNOWN: - { - OUString sMessage (RTL_CONSTASCII_USTRINGPARAM ( "ChXChartObject::getPropertyValues: unknown property ")); - sMessage += OUString::createFromAscii(rProperty.pName); - throw UnknownPropertyException (sMessage, (::cppu::OWeakObject*)this); - } - - case SFX_ITEM_DEFAULT: - // Get default value from the item pool. - if ( mpModel->GetItemPool().IsWhich( nWID ) - && (nWID < OWN_ATTR_VALUE_START || nWID > OWN_ATTR_VALUE_END)) - { - // `Private' properties from SvxShape. - rAttributes.Put( mpModel->GetItemPool().GetDefaultItem( nWID ) ); - } - else if( nWID == SID_TEXTBREAK ) - { - rAttributes.Put( SfxBoolItem( SID_TEXTBREAK, - ( mnWhichId == CHOBJID_DIAGRAM_X_AXIS - || mnWhichId == CHOBJID_DIAGRAM_A_AXIS ))); - } - else if( nWID == SID_ATTR_NUMBERFORMAT_SOURCE ) - { - rAttributes.Put( SfxBoolItem( SID_ATTR_NUMBERFORMAT_SOURCE, TRUE )); - } - else - { -#if OSL_DEBUG_LEVEL > 1 - OSL_TRACE( "Diagram: Property %s has an invalid ID (%d)", - rProperty.pName, nWID ); -#endif - } - // Fall through. - - default : - rValue = maPropSet.getPropertyValue( &rProperty, rAttributes ); - if( *rProperty.pType != rValue.getValueType() ) - { - // since the sfx uint16 item now exports a sal_Int32, we may have to fix this here - if( ( *rProperty.pType == ::getCppuType((const sal_Int16*)0)) && rValue.getValueType() == ::getCppuType((const sal_Int32*)0) ) - { - sal_Int32 nValue(0); - rValue >>= nValue; - rValue <<= static_cast< sal_Int16 >( nValue ); - } - else - { - OSL_FAIL( "GetPropertyValue(): wrong Type!" ); - } - } - } - } -} -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXDataPoint.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXDataPoint.cxx deleted file mode 100644 index 86b4cab2e..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_ChXDataPoint.cxx +++ /dev/null @@ -1,876 +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. - * - ************************************************************************/ - -#include "ChXDataPoint.hxx" -#include "mapprov.hxx" - -// header for SvxServiceInfoHelper -// header for class OGuard -// header for class Application -#include <vcl/svapp.hxx> -// header for SvxUnoTextRangeBase -// for OWN_ATTR_... -#include <bf_svx/unoshprp.hxx> -// for SID_ATTR_... -#include <bf_svx/svxids.hrc> -#include <bf_svx/unoshape.hxx> -#include <rtl/uuid.h> -#include <rtl/memory.h> - -#include "schattr.hxx" - -#ifndef _SVX_BRSHITEM_HXX -#define ITEMID_BRUSH SCHATTR_SYMBOL_BRUSH -#include <bf_svx/brshitem.hxx> -#endif -// header for SVX_SYMBOLTYPE_BRUSHITEM -#include <bf_svx/tabline.hxx> -#include <bf_svx/unoapi.hxx> - -#include <bf_svx/xflbstit.hxx> -#include <bf_svx/xflbmtit.hxx> - -#include <com/sun/star/chart/ChartDataCaption.hpp> - -// header for SvxChartDataDescrItem -#ifndef _SVX_CHRTITEM_HXX -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR -#endif - -#include "globfunc.hxx" // for GlobalGenerate3DAttrDefaultItem -#include "unonames.hxx" -namespace binfilter { - - -extern SchUnoPropertyMapProvider aSchMapProvider; - -using namespace ::com::sun::star; - -ChXDataPoint::ChXDataPoint( sal_Int32 _Col, sal_Int32 _Row, ChartModel* _Model ) : - maPropSet( aSchMapProvider.GetMap( _Model? CHMAP_DATAPOINT: CHMAP_NONE, _Model )), - mpModel( _Model ), - mnCol( _Col ), - mnRow( _Row ) -{} - -ChXDataPoint::~ChXDataPoint() -{} - - -// generate a uniqueId -const uno::Sequence< sal_Int8 > & ChXDataPoint::getUnoTunnelId() throw() -{ - static uno::Sequence< sal_Int8 > * pSeq = 0; - if( !pSeq ) - { - osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); - if( !pSeq ) - { - static uno::Sequence< sal_Int8 > aSeq( 16 ); - rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); - pSeq = &aSeq; - } - } - return *pSeq; -} - -// XTypeProvider -uno::Sequence< sal_Int8 > SAL_CALL ChXDataPoint::getImplementationId() - throw( uno::RuntimeException ) -{ - static uno::Sequence< sal_Int8 > aId; - if( aId.getLength() == 0 ) - { - aId.realloc( 16 ); - rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True ); - } - return aId; -} - -// XPropertySet -uno::Reference< beans::XPropertySetInfo > SAL_CALL ChXDataPoint::getPropertySetInfo() throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - return maPropSet.getPropertySetInfo(); -} - -void ChXDataPoint::AddDataPointAttr( SfxItemSet& rOutAttributes ) -{ - if( mpModel->IsPieChart()) - rOutAttributes.Put( mpModel->GetFullDataPointAttr( mnCol, 0 )); - else - rOutAttributes.Put( mpModel->GetDataPointAttr( mnCol, mnRow )); -} - -void SAL_CALL ChXDataPoint::setPropertyValue( const ::rtl::OUString& aPropertyName, const uno::Any& aValue ) - throw( beans::UnknownPropertyException, - beans::PropertyVetoException, - lang::IllegalArgumentException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - sal_Bool bPropertyUnknown = sal_False; - - if( mpModel ) - { - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( aPropertyName ); - - if( pMap && pMap->nWID ) - { - if( pMap->nFlags & beans::PropertyAttribute::READONLY ) - throw beans::PropertyVetoException(); - - USHORT nWID = pMap->nWID; - SfxItemSet* pSet; - - if( nWID == SCHATTR_DATADESCR_DESCR || nWID == SCHATTR_DATADESCR_SHOW_SYM ) - { - pSet = new SfxItemSet( mpModel->GetItemPool(), - SCHATTR_DATADESCR_DESCR, SCHATTR_DATADESCR_DESCR, - SCHATTR_DATADESCR_SHOW_SYM, SCHATTR_DATADESCR_SHOW_SYM, 0 ); - } - else if( nWID == CHATTR_PIE_SEGMENT_OFFSET ) // member of ChartModel rather than property - { - sal_Int32 nVal(0); - aValue >>= nVal; - short nValToSet = (short)(abs( nVal ) % 101); // cast long->short is ok (range 0..100) - - mpModel->SetPieSegOfs( mnCol, nValToSet ); - SvxChartStyle& rStyle = mpModel->ChartStyle(); - if( rStyle == CHSTYLE_2D_PIE_SEGOF1 || - rStyle == CHSTYLE_2D_PIE_SEGOFALL ) - rStyle = CHSTYLE_2D_PIE; - - mpModel->BuildChart( FALSE ); - return; // RETURN - } - else if( nWID == OWN_ATTR_FILLBMP_MODE ) - { - SfxItemSet aSet( mpModel->GetItemPool(), - XATTR_FILLBMP_STRETCH, XATTR_FILLBMP_STRETCH, - XATTR_FILLBMP_TILE, XATTR_FILLBMP_TILE, 0 ); - - do - { - drawing::BitmapMode eMode; - if(!(aValue >>= eMode) ) - { - sal_Int32 nMode = 0; - if(!(aValue >>= nMode)) - break; - - eMode = (drawing::BitmapMode)nMode; - } - aSet.Put( XFillBmpStretchItem( eMode == drawing::BitmapMode_STRETCH ) ); - aSet.Put( XFillBmpTileItem( eMode == drawing::BitmapMode_REPEAT ) ); - } - while(0); - mpModel->PutDataPointAttr( mnCol, mnRow, aSet ); - mpModel->BuildChart( FALSE ); - - return; - } - else if( nWID == SCHATTR_SYMBOL_BRUSH ) - pSet = new SfxItemSet( mpModel->GetItemPool(), nWID, nWID, - SCHATTR_STYLE_SYMBOL, SCHATTR_STYLE_SYMBOL, 0 ); - else - { - pSet = new SfxItemSet( mpModel->GetItemPool(), nWID, nWID ); - } - - pSet->Put( mpModel->GetFullDataPointAttr( mnCol, mnRow )); - - if( ! pSet->Count() ) - { - // get default from ItemPool - if( mpModel->GetItemPool().IsWhich( nWID )) - { - if( ! ( OWN_ATTR_VALUE_START <= nWID && nWID <= OWN_ATTR_VALUE_END )) - { - pSet->Put( mpModel->GetItemPool().GetDefaultItem( nWID )); - } - } - else - { -#if OSL_DEBUG_LEVEL > 1 - String aTmpString( aPropertyName ); - ByteString aProp( aTmpString, RTL_TEXTENCODING_ASCII_US ); - OSL_TRACE( "Diagram: Property %s has an invalid ID (%d)", aProp.GetBuffer(), nWID ); -#endif - } - } - - if( pSet->Count() ) - { - sal_Int32 nVal(0); - switch( nWID ) - { - case SCHATTR_STAT_KIND_ERROR: - case SCHATTR_STAT_INDICATE: - case SCHATTR_STAT_REGRESSTYPE: - // property is enum, but item is INT32 - aValue >>= nVal; - pSet->Put( SfxInt32Item( nWID, nVal ) ); - break; - // BM: theese two SCHATTRs are merged into one INT32, so extract them from aValue - case SCHATTR_DATADESCR_DESCR: - case SCHATTR_DATADESCR_SHOW_SYM: - { - // symbol - aValue >>= nVal; - pSet->Put( SfxBoolItem( SCHATTR_DATADESCR_SHOW_SYM, - ((nVal & chart::ChartDataCaption::SYMBOL) != 0))); - - // display text, percent or both or value - SvxChartDataDescr eDescr = CHDESCR_NONE; - if( nVal & chart::ChartDataCaption::TEXT ) - { - if( nVal & chart::ChartDataCaption::PERCENT ) - eDescr = CHDESCR_TEXTANDPERCENT; - else if( (nVal & chart::ChartDataCaption::VALUE) ) - eDescr = CHDESCR_TEXTANDVALUE; - else - eDescr = CHDESCR_TEXT; - } - else if( (nVal & chart::ChartDataCaption::VALUE) ) - { - eDescr = CHDESCR_VALUE; - } - else - { - if( (nVal & chart::ChartDataCaption::PERCENT) ) - eDescr = CHDESCR_PERCENT; - } - - // chart::ChartDataCaption::FORMAT (missing) - - pSet->Put( SvxChartDataDescrItem( eDescr ) ); - } - break; - case SCHATTR_SYMBOL_BRUSH: - { - ::rtl::OUString aURL; - aValue >>= aURL; - BfGraphicObject aGraphObj = CreateGraphicObjectFromURL( aURL ); - SvxBrushItem aItem( SCHATTR_SYMBOL_BRUSH ); - aItem.SetGraphic( aGraphObj.GetGraphic() ); - pSet->Put( aItem ); - } - break; - - case XATTR_FILLBITMAP: - case XATTR_FILLGRADIENT: - case XATTR_FILLHATCH: - case XATTR_FILLFLOATTRANSPARENCE: - case XATTR_LINEEND: - case XATTR_LINESTART: - case XATTR_LINEDASH: - if( pMap->nMemberId == MID_NAME ) - { - ::rtl::OUString aStr; - if( aValue >>= aStr ) - SvxShape::SetFillAttribute( nWID, aStr, *pSet, mpModel ); - break; - } - // note: this fall-through is intended - - default: - // CL: convert special character properties - if( ! SvxUnoTextRangeBase::SetPropertyValueHelper( *pSet, pMap, aValue, *pSet )) - maPropSet.setPropertyValue( pMap, aValue, *pSet ); - break; - } - mpModel->PutDataPointAttr( mnCol, mnRow, *pSet ); - - mpModel->BuildChart( FALSE ); - } - else - { - bPropertyUnknown = sal_True; - } - if( pSet ) - delete pSet; - } - else - { - bPropertyUnknown = sal_True; - } - } - else - { - DBG_WARNING( "No Model" ); - } - - if( bPropertyUnknown ) - { - ::rtl::OUString aMessage( RTL_CONSTASCII_USTRINGPARAM( "Data Point: Unknown Property " )); - aMessage += aPropertyName; - beans::UnknownPropertyException aExcpt( aMessage, (::cppu::OWeakObject*)this ); - throw aExcpt; - } -} - -uno::Any SAL_CALL ChXDataPoint::getPropertyValue( const ::rtl::OUString& PropertyName ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - uno::Any aAny; - - if( mpModel ) - { - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName ); - - if( pMap && pMap->nWID ) - { - SfxItemSet* pSet; - USHORT nWID = pMap->nWID; - - if( nWID == SCHATTR_STYLE_SHAPE && - ! mpModel->IsReal3D()) - return aAny; - - if( nWID == SCHATTR_DATADESCR_DESCR || nWID == SCHATTR_DATADESCR_SHOW_SYM ) - { - pSet = new SfxItemSet( mpModel->GetItemPool(), - SCHATTR_DATADESCR_DESCR, SCHATTR_DATADESCR_DESCR, - SCHATTR_DATADESCR_SHOW_SYM, SCHATTR_DATADESCR_SHOW_SYM, 0 ); - } - else if( nWID == CHATTR_PIE_SEGMENT_OFFSET ) - { - sal_Int32 nVal = mpModel->PieSegOfs( mnCol ); - aAny <<= nVal; - return aAny; // RETURN - } - else if( nWID == OWN_ATTR_FILLBMP_MODE ) - { - SfxItemSet aSet( mpModel->GetItemPool(), - XATTR_FILLBMP_STRETCH, XATTR_FILLBMP_STRETCH, - XATTR_FILLBMP_TILE, XATTR_FILLBMP_TILE, 0 ); - - aSet.Put( mpModel->GetFullDataPointAttr( mnCol, mnRow )); - - XFillBmpStretchItem* pStretchItem = (XFillBmpStretchItem*)&aSet.Get( XATTR_FILLBMP_STRETCH ); - XFillBmpTileItem* pTileItem = (XFillBmpTileItem*)&aSet.Get( XATTR_FILLBMP_TILE ); - - if( pTileItem && pTileItem->GetValue() ) - { - aAny <<= drawing::BitmapMode_REPEAT; - } - else if( pStretchItem && pStretchItem->GetValue() ) - { - aAny <<= drawing::BitmapMode_STRETCH; - } - else - { - aAny <<= drawing::BitmapMode_NO_REPEAT; - } - return aAny; - } - else - { - pSet = new SfxItemSet( mpModel->GetItemPool(), nWID, nWID ); - } - pSet->Put( mpModel->GetFullDataPointAttr( mnCol, mnRow )); - - if( ! pSet->Count() ) - { - // get default from pool - if( mpModel->GetItemPool().IsWhich( nWID )) - { - if( OWN_ATTR_VALUE_START > nWID || nWID > OWN_ATTR_VALUE_END ) - { - pSet->Put( mpModel->GetItemPool().GetDefaultItem( nWID ) ); - } - } - else - { -#if OSL_DEBUG_LEVEL > 1 - String aTmpString( PropertyName ); - ByteString aProp( aTmpString, RTL_TEXTENCODING_ASCII_US ); - OSL_TRACE( "Diagram: Property %s has an invalid ID (%d)", aProp.GetBuffer(), nWID ); -#endif - } - } - - if( pSet->Count() ) - { - // get value from ItemSet - - // theese two SCHATTRs have to be merged into one INT32 in aAny - if( nWID == SCHATTR_DATADESCR_DESCR || nWID == SCHATTR_DATADESCR_SHOW_SYM ) - { - BOOL bShowSymbol = ((const SfxBoolItem&) - (pSet->Get(SCHATTR_DATADESCR_SHOW_SYM))).GetValue(); - SvxChartDataDescr eDescr = ((const SvxChartDataDescrItem&) - (pSet->Get(SCHATTR_DATADESCR_DESCR))).GetValue(); - - sal_Int32 nVal = 0; - switch( eDescr ) - { - case CHDESCR_NONE: - nVal = chart::ChartDataCaption::NONE; - break; - case CHDESCR_VALUE: - nVal = chart::ChartDataCaption::VALUE; - break; - case CHDESCR_PERCENT: - nVal = chart::ChartDataCaption::PERCENT; - break; - case CHDESCR_TEXT: - nVal = chart::ChartDataCaption::TEXT; - break; - case CHDESCR_TEXTANDPERCENT: - nVal = chart::ChartDataCaption::PERCENT | chart::ChartDataCaption::TEXT; - break; - case CHDESCR_TEXTANDVALUE: - nVal = chart::ChartDataCaption::VALUE | chart::ChartDataCaption::TEXT; - break; - default: - break; - } - if( bShowSymbol ) nVal |= chart::ChartDataCaption::SYMBOL; - - aAny <<= nVal; - } - else if( nWID == SCHATTR_SYMBOL_BRUSH ) - { - ::rtl::OUString aURL; - const BfGraphicObject* pGraphObj = - ((const SvxBrushItem &)(pSet->Get( nWID ))).GetGraphicObject(); - if( pGraphObj ) - { - aURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( UNO_NAME_GRAPHOBJ_URLPREFIX )); - aURL += ::rtl::OUString::createFromAscii( pGraphObj->GetUniqueID().GetBuffer()); - } - aAny <<= aURL; - } - else - { - aAny = maPropSet.getPropertyValue( pMap, *pSet ); - if( *pMap->pType != aAny.getValueType() ) - { - // since the sfx uint16 item now exports a sal_Int32, we may have to fix this here - if( ( *pMap->pType == ::getCppuType((const sal_Int16*)0)) && aAny.getValueType() == ::getCppuType((const sal_Int32*)0) ) - { - sal_Int32 nValue(0); - aAny >>= nValue; - aAny <<= static_cast< sal_Int16 >( nValue ); - } - else - { - OSL_FAIL( "getPropertyValue(): wrong Type!" ); - } - } - } - } - else - { - throw beans::UnknownPropertyException(); - } - if( pSet ) - delete pSet; - } - else - { - throw beans::UnknownPropertyException(); - } - } - - return aAny; -} - -void SAL_CALL ChXDataPoint::addPropertyChangeListener( const ::rtl::OUString& /*aPropertyName*/, - const uno::Reference< beans::XPropertyChangeListener >& /*xListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXDataPoint::removePropertyChangeListener( const ::rtl::OUString& /*aPropertyName*/, - const uno::Reference< beans::XPropertyChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXDataPoint::addVetoableChangeListener( const ::rtl::OUString& /*PropertyName*/, - const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXDataPoint::removeVetoableChangeListener( const ::rtl::OUString& /*PropertyName*/, - const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -// XPropertyState -beans::PropertyState SAL_CALL ChXDataPoint::getPropertyState( const ::rtl::OUString& PropertyName ) - throw( beans::UnknownPropertyException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName ); - - if( mpModel && - pMap && pMap->nWID ) - { - if( pMap->nWID == CHATTR_PIE_SEGMENT_OFFSET ) - { - sal_Int32 nOffset(0); - uno::Any aAny = getPropertyValue( PropertyName ); - aAny >>= nOffset; - if( nOffset ) - return beans::PropertyState_DIRECT_VALUE; - else - return beans::PropertyState_DEFAULT_VALUE; - } - else if( pMap->nWID == SCHATTR_DATADESCR_DESCR ) - { - SfxItemSet aSet( mpModel->GetItemPool(), - SCHATTR_DATADESCR_DESCR, SCHATTR_DATADESCR_DESCR, - SCHATTR_DATADESCR_SHOW_SYM, SCHATTR_DATADESCR_SHOW_SYM, 0 ); - AddDataPointAttr( aSet ); - - SfxItemState eState1 = aSet.GetItemState( SCHATTR_DATADESCR_DESCR ); - SfxItemState eState2 = aSet.GetItemState( SCHATTR_DATADESCR_SHOW_SYM ); - if( eState1 == SFX_ITEM_DEFAULT && - eState2 == SFX_ITEM_DEFAULT ) - return beans::PropertyState_DEFAULT_VALUE; - else if( eState1 < SFX_ITEM_DEFAULT && - eState2 < SFX_ITEM_DEFAULT ) - return beans::PropertyState_AMBIGUOUS_VALUE; - else - return beans::PropertyState_DIRECT_VALUE; - } - else if( pMap->nWID == OWN_ATTR_FILLBMP_MODE ) - { - SfxItemSet aSet( mpModel->GetItemPool(), - XATTR_FILLBMP_STRETCH, XATTR_FILLBMP_STRETCH, - XATTR_FILLBMP_TILE, XATTR_FILLBMP_TILE, 0 ); - AddDataPointAttr( aSet ); - - if( aSet.GetItemState( XATTR_FILLBMP_STRETCH, false ) == SFX_ITEM_SET || - aSet.GetItemState( XATTR_FILLBMP_TILE, false ) == SFX_ITEM_SET ) - return beans::PropertyState_DIRECT_VALUE; - else - return beans::PropertyState_DEFAULT_VALUE; - } - else - { - SfxItemSet aSet( mpModel->GetItemPool(), pMap->nWID, pMap->nWID ); - AddDataPointAttr( aSet ); - - SfxItemState eState = aSet.GetItemState( pMap->nWID ); - if( eState == SFX_ITEM_DEFAULT ) - return beans::PropertyState_DEFAULT_VALUE; - else if( eState < SFX_ITEM_DEFAULT ) - return beans::PropertyState_AMBIGUOUS_VALUE; - else - return beans::PropertyState_DIRECT_VALUE; - } - } - - return beans::PropertyState_DIRECT_VALUE; -} - -/* -uno::Sequence< beans::PropertyState > SAL_CALL ChXDataPoint::getPropertyStates( - const uno::Sequence< ::rtl::OUString >& aPropertyName ) - throw( beans::UnknownPropertyException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - const sal_Int32 nCount = aPropertyName.getLength(); - const ::rtl::OUString* pNames = aPropertyName.getConstArray(); - - uno::Sequence< beans::PropertyState > aRet( nCount ); - beans::PropertyState* pState = aRet.getArray(); - - for( sal_Int32 nIdx = 0; nIdx < nCount; nIdx++ ) - pState[ nIdx ] = getPropertyState( pNames[ nIdx ] ); - - return aRet; -} -*/ - -uno::Sequence< beans::PropertyState > SAL_CALL - ChXDataPoint::getPropertyStates ( - const uno::Sequence< ::rtl::OUString > & aPropertyName) - throw (beans::UnknownPropertyException, - uno::RuntimeException) -{ - SolarMutexGuard aGuard; - - const sal_Int32 nCount = aPropertyName.getLength(); - const ::rtl::OUString* pNames = aPropertyName.getConstArray(); - - uno::Sequence<beans::PropertyState> aResult (nCount); - beans::PropertyState * pStateArray = aResult.getArray(); - - // for pie charts data point attributes are stored in data rows - // which are returned by GetDataPointAttr() if no explicit - // arguments exist - if (mpModel->IsDataPointAttrSet (mnCol, mnRow) || - (mpModel->IsPieChart())) - { - uno::Any aAny; - SfxAllItemSet aSet( mpModel->GetItemPool() ); - SfxItemState eState1,eState2; - const SfxItemPropertyMap * pMap; - - AddDataPointAttr( aSet ); - - for (sal_Int32 nIndex=0; nIndex<nCount; nIndex++) - { - pMap = maPropSet.getPropertyMapEntry (pNames[nIndex]); - - if (mpModel && pMap && pMap->nWID) - { - switch (pMap->nWID) - { - case CHATTR_PIE_SEGMENT_OFFSET: - if( mpModel->IsPieChart() ) - { - pStateArray[nIndex] = (mpModel->PieSegOfs (mnCol) != 0) - ? beans::PropertyState_DIRECT_VALUE - : beans::PropertyState_DEFAULT_VALUE; - } - else - { - pStateArray[nIndex] = beans::PropertyState_DEFAULT_VALUE; - } - break; - - case SCHATTR_DATADESCR_DESCR: - eState1 = aSet.GetItemState (SCHATTR_DATADESCR_DESCR); - eState2 = aSet.GetItemState (SCHATTR_DATADESCR_SHOW_SYM); - if (eState1 == SFX_ITEM_DEFAULT && eState2 == SFX_ITEM_DEFAULT) - pStateArray[nIndex] = beans::PropertyState_DEFAULT_VALUE; - else if (eState1 < SFX_ITEM_DEFAULT && eState2 < SFX_ITEM_DEFAULT) - pStateArray[nIndex] = beans::PropertyState_AMBIGUOUS_VALUE; - else - pStateArray[nIndex] = beans::PropertyState_DIRECT_VALUE; - break; - - case OWN_ATTR_FILLBMP_MODE: - eState1 = aSet.GetItemState( XATTR_FILLBMP_STRETCH, false ); - eState2 = aSet.GetItemState( XATTR_FILLBMP_TILE, false ); - if (eState1 == SFX_ITEM_SET || eState2 == SFX_ITEM_SET) - pStateArray[nIndex] = beans::PropertyState_DIRECT_VALUE; - else - pStateArray[nIndex] = beans::PropertyState_DEFAULT_VALUE; - break; - - default: - switch (aSet.GetItemState (pMap->nWID)) - { - case SFX_ITEM_DEFAULT: // 0x0020 - pStateArray[nIndex] = beans::PropertyState_DEFAULT_VALUE; - break; - - case SFX_ITEM_UNKNOWN: // 0x0000 - case SFX_ITEM_DISABLED: // 0x0001 - case SFX_ITEM_READONLY: // 0x0002 - case SFX_ITEM_DONTCARE: // 0x0010 - pStateArray[nIndex] = beans::PropertyState_AMBIGUOUS_VALUE; - break; - - default: - // SFX_ITEM_SET 0x0030 - pStateArray[nIndex] = beans::PropertyState_DIRECT_VALUE; - } - } - } - else - pStateArray[nIndex] = beans::PropertyState_DEFAULT_VALUE; -// pStateArray[nIndex] = beans::PropertyState_DIRECT_VALUE; - } - } - else - for (sal_Int32 nIndex=0; nIndex<nCount; nIndex++) - pStateArray[nIndex] = beans::PropertyState_DEFAULT_VALUE; - - return aResult; -} - - - - -void SAL_CALL ChXDataPoint::setPropertyToDefault( const ::rtl::OUString& PropertyName ) - throw( beans::UnknownPropertyException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName ); - - if( mpModel && pMap && pMap->nWID ) - { - if( pMap->nWID == CHATTR_PIE_SEGMENT_OFFSET ) - { - mpModel->SetPieSegOfs( mnCol, 0 ); - } - else if( pMap->nWID == SCHATTR_DATADESCR_DESCR ) - { - SfxItemSet aSet( mpModel->GetItemPool(), - SCHATTR_DATADESCR_DESCR, SCHATTR_DATADESCR_DESCR, - SCHATTR_DATADESCR_SHOW_SYM, SCHATTR_DATADESCR_SHOW_SYM, 0 ); - - aSet.ClearItem( SCHATTR_DATADESCR_DESCR ); - aSet.ClearItem( SCHATTR_DATADESCR_SHOW_SYM ); - mpModel->PutDataPointAttr( mnCol, mnRow, aSet ); - } - else - { - SfxItemSet aSet( mpModel->GetItemPool(), pMap->nWID, pMap->nWID ); - - aSet.ClearItem( pMap->nWID ); - mpModel->PutDataPointAttr( mnCol, mnRow, aSet ); - } - } -} - -uno::Any SAL_CALL ChXDataPoint::getPropertyDefault( const ::rtl::OUString& aPropertyName ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - uno::Any aAny; - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( aPropertyName ); - - if( mpModel && ! mpModel->GetItemPool().IsWhich( pMap->nWID )) - throw beans::UnknownPropertyException(); - - if( mpModel && pMap && pMap->nWID ) - { - if( pMap->nWID == CHATTR_PIE_SEGMENT_OFFSET ) - { - aAny <<= (sal_Int32)0; - } - else if( pMap->nWID == SCHATTR_DATADESCR_DESCR ) - { - SfxItemSet aSet( mpModel->GetItemPool(), - SCHATTR_DATADESCR_DESCR, SCHATTR_DATADESCR_DESCR, - SCHATTR_DATADESCR_SHOW_SYM, SCHATTR_DATADESCR_SHOW_SYM, 0 ); - - aSet.Put( mpModel->GetItemPool().GetDefaultItem( SCHATTR_DATADESCR_DESCR )); - aSet.Put( mpModel->GetItemPool().GetDefaultItem( SCHATTR_DATADESCR_SHOW_SYM )); - aAny = maPropSet.getPropertyValue( pMap, aSet ); - } - else - { - SfxItemSet aSet( mpModel->GetItemPool(), pMap->nWID, pMap->nWID ); - aSet.Put( mpModel->GetItemPool().GetDefaultItem( pMap->nWID )); - aAny = maPropSet.getPropertyValue( pMap, aSet ); - } - - if( *pMap->pType != aAny.getValueType() ) - { - // since the sfx uint16 item now exports a sal_Int32, we may have to fix this here - if( ( *pMap->pType == ::getCppuType((const sal_Int16*)0)) && aAny.getValueType() == ::getCppuType((const sal_Int32*)0) ) - { - sal_Int32 nValue(0); - aAny >>= nValue; - aAny <<= static_cast< sal_Int16 >( nValue ); - } - else - { - OSL_FAIL( "getPropertyDefault(): wrong Type!" ); - } - } - } - - return aAny; -} - - -// XShapeDescriptor ( ::XShape ::XDiagram ) -::rtl::OUString SAL_CALL ChXDataPoint::getShapeType() throw( uno::RuntimeException ) -{ - return SCH_ASCII_TO_OU( "com.sun.star.chart.ChartDataPoint" ); -} - - -// XServiceInfo -::rtl::OUString SAL_CALL ChXDataPoint::getImplementationName() throw( uno::RuntimeException ) -{ - return SCH_ASCII_TO_OU( "ChXDataPoint" ); -} - -sal_Bool SAL_CALL ChXDataPoint::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException ) -{ - return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() ); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChXDataPoint::getSupportedServiceNames() throw( uno::RuntimeException ) -{ - uno::Sequence< ::rtl::OUString > aSeq; - SvxServiceInfoHelper::addToSequence( - aSeq, 5, - "com.sun.star.chart.ChartDataPointProperties", - "com.sun.star.drawing.LineProperties", - "com.sun.star.drawing.FillProperties", - "com.sun.star.style.CharacterProperties", - "com.sun.star.xml.UserDefinedAttributeSupplier" ); - - if( mpModel ) - { - long nType = mpModel->GetBaseType(); - if( mpModel->Is3DChart() && (nType == CHTYPE_BAR || nType == CHTYPE_COLUMN) ) - SvxServiceInfoHelper::addToSequence( aSeq, 1, "com.sun.star.chart.Chart3DBarProperties" ); - else if( ! mpModel->Is3DChart() && nType == CHTYPE_CIRCLE ) - SvxServiceInfoHelper::addToSequence( aSeq, 1, "com.sun.star.chart.ChartPieSegmentProperties" ); - } - - return aSeq; -} - -// XUnoTunnel -sal_Int64 SAL_CALL ChXDataPoint::getSomething( const uno::Sequence< sal_Int8 >& aIdentifier ) - throw( uno::RuntimeException ) -{ - if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), - aIdentifier.getConstArray(), 16 ) ) - { - return (sal_Int64)this; - } - return 0; -} - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXDataRow.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXDataRow.cxx deleted file mode 100644 index e82712488..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_ChXDataRow.cxx +++ /dev/null @@ -1,811 +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. - * - ************************************************************************/ - -#include "ChXDataRow.hxx" -#include "mapprov.hxx" -#include "ChartLine.hxx" - -// header for SvxServiceInfoHelper -// header for class OGuard -// header for class Application -#include <vcl/svapp.hxx> -// header for SvxUnoTextRangeBase -// for OWN_ATTR_... -#include <bf_svx/unoshprp.hxx> -// for SID_ATTR_... -#include <bf_svx/svxids.hrc> -#include <bf_svx/unoshape.hxx> -#include <rtl/uuid.h> -#include <rtl/memory.h> - -#include "schattr.hxx" - -#ifndef _SVX_BRSHITEM_HXX -#define ITEMID_BRUSH SCHATTR_SYMBOL_BRUSH -#include <bf_svx/brshitem.hxx> -#endif -// header for SVX_SYMBOLTYPE_BRUSHITEM -#include <bf_svx/tabline.hxx> -#include <bf_svx/unoapi.hxx> - -#include <com/sun/star/chart/ChartDataCaption.hpp> -#include <com/sun/star/chart/ChartAxisAssign.hpp> -#include <comphelper/extract.hxx> - -#include <bf_svx/xflbstit.hxx> -#include <bf_svx/xflbmtit.hxx> - -// header for SvxChartDataDescrItem -#ifndef _SVX_CHRTITEM_HXX -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR -#endif - -#include "globfunc.hxx" // for GlobalGenerate3DAttrDefaultItem -#include "unonames.hxx" -namespace binfilter { - -extern SchUnoPropertyMapProvider aSchMapProvider; - -using namespace ::com::sun::star; - -ChXDataRow::ChXDataRow( sal_Int32 _Row, ChartModel* _Model ) : - maPropSet( aSchMapProvider.GetMap( _Model? CHMAP_DATAROW: CHMAP_NONE, _Model )), - mpModel( _Model ), - mnRow( _Row ) -{} - -ChXDataRow::~ChXDataRow() -{} - -// generate a uniqueId -const uno::Sequence< sal_Int8 > & ChXDataRow::getUnoTunnelId() throw() -{ - static uno::Sequence< sal_Int8 > * pSeq = 0; - if( !pSeq ) - { - osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); - if( !pSeq ) - { - static uno::Sequence< sal_Int8 > aSeq( 16 ); - rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); - pSeq = &aSeq; - } - } - return *pSeq; -} - -uno::Reference< beans::XPropertySet > ChXDataRow::getStatisticsProperties( sal_Int32 nId ) const -{ - SolarMutexGuard aGuard; - - if( mpModel ) - { - beans::XPropertySet* pObj = new ChartLine( mpModel, nId, mnRow ); - uno::Reference< beans::XPropertySet > xObj( pObj ); - if( xObj.is() ) - return xObj; - } - else - { - OSL_FAIL( "No Model" ); - } - - return uno::Reference< beans::XPropertySet >(); -} - - -// XPropertySet -uno::Reference< beans::XPropertySetInfo > SAL_CALL ChXDataRow::getPropertySetInfo() throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - return maPropSet.getPropertySetInfo(); -} - -void SAL_CALL ChXDataRow::setPropertyValue( const ::rtl::OUString& aPropertyName, const uno::Any& aValue ) - throw( beans::UnknownPropertyException, - beans::PropertyVetoException, - lang::IllegalArgumentException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - sal_Bool bPropertyUnknown = sal_False; - - if( mpModel ) - { - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( aPropertyName ); - - if( pMap && pMap->nWID ) - { - if( pMap->nFlags & beans::PropertyAttribute::READONLY ) - throw beans::PropertyVetoException(); - - USHORT nWID = pMap->nWID; - SfxItemSet* pSet; - - if( nWID == SCHATTR_DATADESCR_DESCR || nWID == SCHATTR_DATADESCR_SHOW_SYM ) - { - pSet = new SfxItemSet( mpModel->GetItemPool(), - SCHATTR_DATADESCR_DESCR, SCHATTR_DATADESCR_DESCR, - SCHATTR_DATADESCR_SHOW_SYM, SCHATTR_DATADESCR_SHOW_SYM, 0 ); - } - else if( nWID == CHATTR_PIE_SEGMENT_OFFSET ) // member of ChartModel rather than property - { - // (not fully supported yet. problem: getPropertyValue) - sal_Int32 nVal(0); - aValue >>= nVal; - short nValToSet = (short)(abs( nVal ) % 101); // cast long->short is ok (range 0..100) - - if( mnRow == 0 ) // must be first row - { - long nCount = mpModel->GetColCount(), i; - for( i=0; i<nCount; i++ ) - mpModel->SetPieSegOfs( i, nValToSet ); - } - SvxChartStyle& rStyle = mpModel->ChartStyle(); - if( rStyle == CHSTYLE_2D_PIE_SEGOF1 || - rStyle == CHSTYLE_2D_PIE_SEGOFALL ) - rStyle = CHSTYLE_2D_PIE; - - mpModel->BuildChart( FALSE ); - return; // RETURN - } - else if( nWID == OWN_ATTR_FILLBMP_MODE ) - { - SfxItemSet aSet( mpModel->GetItemPool(), - XATTR_FILLBMP_STRETCH, XATTR_FILLBMP_STRETCH, - XATTR_FILLBMP_TILE, XATTR_FILLBMP_TILE, 0 ); - - do - { - drawing::BitmapMode eMode; - if(!(aValue >>= eMode) ) - { - sal_Int32 nMode = 0; - if(!(aValue >>= nMode)) - break; - - eMode = (drawing::BitmapMode)nMode; - } - aSet.Put( XFillBmpStretchItem( eMode == drawing::BitmapMode_STRETCH ) ); - aSet.Put( XFillBmpTileItem( eMode == drawing::BitmapMode_REPEAT ) ); - } - while(0); - mpModel->PutDataRowAttr( mnRow, aSet ); - mpModel->BuildChart( FALSE ); - - return; - } - else if( nWID == SCHATTR_SYMBOL_BRUSH ) - pSet = new SfxItemSet( mpModel->GetItemPool(), nWID, nWID, - SCHATTR_STYLE_SYMBOL, SCHATTR_STYLE_SYMBOL, 0 ); - else - { - pSet = new SfxItemSet( mpModel->GetItemPool(), nWID, nWID ); - } - DBG_ASSERT( pSet, "Itemset is invalid!" ); - - pSet->Put( mpModel->GetDataRowAttr( mnRow )); - - if( ! pSet->Count() ) - { - // get default from ItemPool - if( mpModel->GetItemPool().IsWhich( nWID )) - { - if( ! ( OWN_ATTR_VALUE_START <= nWID && nWID <= OWN_ATTR_VALUE_END )) - { - pSet->Put( mpModel->GetItemPool().GetDefaultItem( nWID )); - } - } - else - { -#if OSL_DEBUG_LEVEL > 1 - String aTmpString( aPropertyName ); - ByteString aProp( aTmpString, RTL_TEXTENCODING_ASCII_US ); - OSL_TRACE( "Diagram: Property %s has an invalid ID (%d)", aProp.GetBuffer(), nWID ); -#endif - } - } - - if( pSet->Count() ) - { - sal_Int32 nVal(0); - switch( nWID ) - { - case SCHATTR_STAT_KIND_ERROR: - case SCHATTR_STAT_INDICATE: - case SCHATTR_STAT_REGRESSTYPE: - // property is enum, but item is INT32 - cppu::enum2int( nVal, aValue ); - pSet->Put( SfxInt32Item( nWID, nVal ) ); - break; - // BM: theese two SCHATTRs are merged into one INT32, so extract them from aValue - case SCHATTR_DATADESCR_DESCR: - case SCHATTR_DATADESCR_SHOW_SYM: - { - // symbol - aValue >>= nVal; - pSet->Put( SfxBoolItem( SCHATTR_DATADESCR_SHOW_SYM, - ((nVal & chart::ChartDataCaption::SYMBOL) != 0 ))); - - // display text, percent or both or value - SvxChartDataDescr eDescr = CHDESCR_NONE; - if( nVal & chart::ChartDataCaption::TEXT ) - { - if( nVal & chart::ChartDataCaption::PERCENT ) - eDescr = CHDESCR_TEXTANDPERCENT; - else if( (nVal & chart::ChartDataCaption::VALUE) ) - eDescr = CHDESCR_TEXTANDVALUE; - else - eDescr = CHDESCR_TEXT; - } - else if( (nVal & chart::ChartDataCaption::VALUE) ) - { - eDescr = CHDESCR_VALUE; - } - else - { - if( (nVal & chart::ChartDataCaption::PERCENT) ) - eDescr = CHDESCR_PERCENT; - } - - // chart::ChartDataCaption::FORMAT (missing) - - pSet->Put( SvxChartDataDescrItem( eDescr ) ); - } - break; - case SCHATTR_SYMBOL_BRUSH: - { - ::rtl::OUString aURL; - aValue >>= aURL; - BfGraphicObject aGraphObj = CreateGraphicObjectFromURL( aURL ); - SvxBrushItem aItem( SCHATTR_SYMBOL_BRUSH ); - aItem.SetGraphic( aGraphObj.GetGraphic() ); - pSet->Put( aItem ); - } - break; - - case XATTR_FILLBITMAP: - case XATTR_FILLGRADIENT: - case XATTR_FILLHATCH: - case XATTR_FILLFLOATTRANSPARENCE: - case XATTR_LINEEND: - case XATTR_LINESTART: - case XATTR_LINEDASH: - if( pMap->nMemberId == MID_NAME ) - { - ::rtl::OUString aStr; - if( aValue >>= aStr ) - SvxShape::SetFillAttribute( nWID, aStr, *pSet, mpModel ); - break; - } - maPropSet.setPropertyValue( pMap, aValue, *pSet ); - break; - - case SCHATTR_AXIS: - aValue >>= nVal; - if( nVal != chart::ChartAxisAssign::PRIMARY_Y && - nVal != chart::ChartAxisAssign::SECONDARY_Y ) - { - throw lang::IllegalArgumentException(); - } - maPropSet.setPropertyValue( pMap, aValue, *pSet ); - break; - - default: - // CL: convert special character properties - if( ! SvxUnoTextRangeBase::SetPropertyValueHelper( *pSet, pMap, aValue, *pSet )) - maPropSet.setPropertyValue( pMap, aValue, *pSet ); - break; - } - - mpModel->PutDataRowAttr( mnRow, *pSet ); - - if( SCHATTR_DATADESCR_START <= nWID && nWID <= SCHATTR_DATADESCR_END ) - { - SfxItemSet rAttr( mpModel->GetDataRowAttr( mnRow )); - SvxChartDataDescr eNewDataDescr(CHDESCR_NONE); - BOOL bNewShowSym(FALSE); - const SfxPoolItem *pPoolItem; - - if( rAttr.GetItemState( SCHATTR_DATADESCR_DESCR, TRUE, &pPoolItem ) == SFX_ITEM_SET ) - eNewDataDescr = ((const SvxChartDataDescrItem*)pPoolItem)->GetValue(); - - if( rAttr.GetItemState( SCHATTR_DATADESCR_SHOW_SYM, TRUE, &pPoolItem ) == SFX_ITEM_SET ) - bNewShowSym = ((const SfxBoolItem*)pPoolItem)->GetValue(); - - mpModel->ChangeDataDescr( eNewDataDescr, bNewShowSym, mnRow, FALSE ); - } - - mpModel->BuildChart( FALSE ); - } - else - { - bPropertyUnknown = sal_True; - } - if( pSet ) - delete pSet; - } - else - { - bPropertyUnknown = sal_True; - } - } - else - { - DBG_WARNING( "No Model" ); - } - - if( bPropertyUnknown ) - { - ::rtl::OUString aMessage( RTL_CONSTASCII_USTRINGPARAM( "Data Row: Unknown Property " )); - aMessage += aPropertyName; - beans::UnknownPropertyException aExcpt( aMessage, (::cppu::OWeakObject*)this ); - throw aExcpt; - } -} - -uno::Any SAL_CALL ChXDataRow::getPropertyValue( const ::rtl::OUString& PropertyName ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - uno::Any aAny; - - if( mpModel ) - { - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName ); - - if( pMap && pMap->nWID ) - { - SfxItemSet* pSet; - USHORT nWID = pMap->nWID; - - if( nWID == SCHATTR_STYLE_SHAPE && - ! mpModel->IsReal3D()) - return aAny; - - if( nWID == SCHATTR_DATADESCR_DESCR || nWID == SCHATTR_DATADESCR_SHOW_SYM ) - { - pSet = new SfxItemSet( mpModel->GetItemPool(), - SCHATTR_DATADESCR_DESCR, SCHATTR_DATADESCR_DESCR, - SCHATTR_DATADESCR_SHOW_SYM, SCHATTR_DATADESCR_SHOW_SYM, 0 ); - } - else if( nWID == OWN_ATTR_FILLBMP_MODE ) - { - SfxItemSet aSet( mpModel->GetItemPool(), - XATTR_FILLBMP_STRETCH, XATTR_FILLBMP_STRETCH, - XATTR_FILLBMP_TILE, XATTR_FILLBMP_TILE, 0 ); - - aSet.Put( mpModel->GetDataRowAttr( mnRow )); - - XFillBmpStretchItem* pStretchItem = (XFillBmpStretchItem*)&aSet.Get( XATTR_FILLBMP_STRETCH ); - XFillBmpTileItem* pTileItem = (XFillBmpTileItem*)&aSet.Get( XATTR_FILLBMP_TILE ); - - if( pTileItem && pTileItem->GetValue() ) - { - aAny <<= drawing::BitmapMode_REPEAT; - } - else if( pStretchItem && pStretchItem->GetValue() ) - { - aAny <<= drawing::BitmapMode_STRETCH; - } - else - { - aAny <<= drawing::BitmapMode_NO_REPEAT; - } - return aAny; - } - else - { - pSet = new SfxItemSet( mpModel->GetItemPool(), nWID, nWID ); - } - - switch( nWID ) - { - case CHATTR_REGRESSION_PROPS: - { - uno::Reference< beans::XPropertySet > xProps = getStatisticsProperties( CHOBJID_DIAGRAM_REGRESSION ); - aAny <<= xProps; - return aAny; // RETURN - } - - case CHATTR_ERROR_PROPS: - { - uno::Reference< beans::XPropertySet > xProps = getStatisticsProperties( CHOBJID_DIAGRAM_ERROR ); - aAny <<= xProps; - return aAny; // RETURN - } - - case CHATTR_AVERAGE_PROPS: - { - uno::Reference< beans::XPropertySet > xProps = getStatisticsProperties( CHOBJID_DIAGRAM_AVERAGEVALUE ); - aAny <<= xProps; - return aAny; // RETURN - } - - default: - pSet->Put( mpModel->GetDataRowAttr( mnRow )); - } - - if( ! pSet->Count() ) - { - // Default aus ItemPool holen - if( mpModel->GetItemPool().IsWhich( nWID )) - { - if( OWN_ATTR_VALUE_START > nWID || nWID > OWN_ATTR_VALUE_END ) - { - pSet->Put( mpModel->GetItemPool().GetDefaultItem( nWID ) ); - } - } - else - { -#if OSL_DEBUG_LEVEL > 1 - String aTmpString( PropertyName ); - ByteString aProp( aTmpString, RTL_TEXTENCODING_ASCII_US ); - OSL_TRACE( "Diagram: Property %s has an invalid ID (%d)", aProp.GetBuffer(), nWID ); -#endif - } - } - - if( pSet->Count() ) - { - // get value from ItemSet - - // theese two SCHATTRs have to be merged into one INT32 in aAny - if( nWID == SCHATTR_DATADESCR_DESCR || nWID == SCHATTR_DATADESCR_SHOW_SYM ) - { - BOOL bShowSymbol = ((const SfxBoolItem&) - (pSet->Get(SCHATTR_DATADESCR_SHOW_SYM))).GetValue(); - SvxChartDataDescr eDescr = ((const SvxChartDataDescrItem&) - (pSet->Get(SCHATTR_DATADESCR_DESCR))).GetValue(); - - sal_Int32 nVal = 0; - switch( eDescr ) - { - case CHDESCR_NONE: - nVal = chart::ChartDataCaption::NONE; - break; - case CHDESCR_VALUE: - nVal = chart::ChartDataCaption::VALUE; - break; - case CHDESCR_PERCENT: - nVal = chart::ChartDataCaption::PERCENT; - break; - case CHDESCR_TEXT: - nVal = chart::ChartDataCaption::TEXT; - break; - case CHDESCR_TEXTANDPERCENT: - nVal = chart::ChartDataCaption::PERCENT | chart::ChartDataCaption::TEXT; - break; - case CHDESCR_TEXTANDVALUE: - nVal = chart::ChartDataCaption::VALUE | chart::ChartDataCaption::TEXT; - break; - default: - break; - } - if( bShowSymbol ) nVal |= chart::ChartDataCaption::SYMBOL; - - aAny <<= nVal; - } - else if( nWID == SCHATTR_SYMBOL_BRUSH ) - { - ::rtl::OUString aURL; - const BfGraphicObject* pGraphObj = - ((const SvxBrushItem &)(pSet->Get( nWID ))).GetGraphicObject(); - if( pGraphObj ) - { - aURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( UNO_NAME_GRAPHOBJ_URLPREFIX )); - aURL += ::rtl::OUString::createFromAscii( pGraphObj->GetUniqueID().GetBuffer()); - } - aAny <<= aURL; - } - else - { - aAny = maPropSet.getPropertyValue( pMap, *pSet ); - if( *pMap->pType != aAny.getValueType() ) - { - // since the sfx uint16 item now exports a sal_Int32, we may have to fix this here - if( ( *pMap->pType == ::getCppuType((const sal_Int16*)0)) && aAny.getValueType() == ::getCppuType((const sal_Int32*)0) ) - { - sal_Int32 nValue(0); - aAny >>= nValue; - aAny <<= static_cast< sal_Int16 >( nValue ); - } - else - { - OSL_FAIL( "getPropertyValue(): wrong Type!" ); - } - } - } - } - else - { - throw beans::UnknownPropertyException(); - } - if( pSet ) - delete pSet; - } - else - { - throw beans::UnknownPropertyException(); - } - } - - return aAny; -} - -void SAL_CALL ChXDataRow::addPropertyChangeListener( const ::rtl::OUString& /*aPropertyName*/, - const uno::Reference< beans::XPropertyChangeListener >& /*xListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXDataRow::removePropertyChangeListener( const ::rtl::OUString& /*aPropertyName*/, - const uno::Reference< beans::XPropertyChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXDataRow::addVetoableChangeListener( const ::rtl::OUString& /*PropertyName*/, - const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXDataRow::removeVetoableChangeListener( const ::rtl::OUString& /*PropertyName*/, - const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -// XPropertyState -beans::PropertyState SAL_CALL ChXDataRow::getPropertyState( const ::rtl::OUString& PropertyName ) - throw( beans::UnknownPropertyException, uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName ); - - if( mpModel && - pMap && pMap->nWID ) - { - if( pMap->nWID == SCHATTR_DATADESCR_DESCR ) - { - SfxItemSet aSet( mpModel->GetItemPool(), - SCHATTR_DATADESCR_DESCR, SCHATTR_DATADESCR_DESCR, - SCHATTR_DATADESCR_SHOW_SYM, SCHATTR_DATADESCR_SHOW_SYM, 0 ); - aSet.Put( mpModel->GetDataRowAttr( mnRow )); - - SfxItemState eState1 = aSet.GetItemState( SCHATTR_DATADESCR_DESCR ); - SfxItemState eState2 = aSet.GetItemState( SCHATTR_DATADESCR_SHOW_SYM ); - if( eState1 == SFX_ITEM_DEFAULT && - eState2 == SFX_ITEM_DEFAULT ) - return beans::PropertyState_DEFAULT_VALUE; - else if( eState1 < SFX_ITEM_DEFAULT && - eState2 < SFX_ITEM_DEFAULT ) - return beans::PropertyState_AMBIGUOUS_VALUE; - else - return beans::PropertyState_DIRECT_VALUE; - } - else if( pMap->nWID == OWN_ATTR_FILLBMP_MODE ) - { - SfxItemSet aSet( mpModel->GetItemPool(), - XATTR_FILLBMP_STRETCH, XATTR_FILLBMP_STRETCH, - XATTR_FILLBMP_TILE, XATTR_FILLBMP_TILE, 0 ); - aSet.Put( mpModel->GetDataRowAttr( mnRow )); - - if( aSet.GetItemState( XATTR_FILLBMP_STRETCH, false ) == SFX_ITEM_SET || - aSet.GetItemState( XATTR_FILLBMP_TILE, false ) == SFX_ITEM_SET ) - return beans::PropertyState_DIRECT_VALUE; - else - return beans::PropertyState_DEFAULT_VALUE; - } - else - { - SfxItemSet aSet( mpModel->GetItemPool(), pMap->nWID, pMap->nWID ); - aSet.Put( mpModel->GetDataRowAttr( mnRow )); - - SfxItemState eState = aSet.GetItemState( pMap->nWID ); - if( eState == SFX_ITEM_DEFAULT ) - return beans::PropertyState_DEFAULT_VALUE; - else if( eState < SFX_ITEM_DEFAULT ) - return beans::PropertyState_AMBIGUOUS_VALUE; - else - return beans::PropertyState_DIRECT_VALUE; - } - } - - return beans::PropertyState_DIRECT_VALUE; -} - -uno::Sequence< beans::PropertyState > SAL_CALL ChXDataRow::getPropertyStates( - const uno::Sequence< ::rtl::OUString >& aPropertyName ) - throw( beans::UnknownPropertyException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - const sal_Int32 nCount = aPropertyName.getLength(); - const ::rtl::OUString* pNames = aPropertyName.getConstArray(); - - uno::Sequence< beans::PropertyState > aRet( nCount ); - beans::PropertyState* pState = aRet.getArray(); - - for( sal_Int32 nIdx = 0; nIdx < nCount; nIdx++ ) - pState[ nIdx ] = getPropertyState( pNames[ nIdx ] ); - - return aRet; -} - -void SAL_CALL ChXDataRow::setPropertyToDefault( const ::rtl::OUString& PropertyName ) - throw( beans::UnknownPropertyException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName ); - - if( mpModel && pMap && pMap->nWID ) - { - if( pMap->nWID == SCHATTR_DATADESCR_DESCR ) - { - SfxItemSet aSet( mpModel->GetItemPool(), - SCHATTR_DATADESCR_DESCR, SCHATTR_DATADESCR_DESCR, - SCHATTR_DATADESCR_SHOW_SYM, SCHATTR_DATADESCR_SHOW_SYM, 0 ); - - aSet.ClearItem( SCHATTR_DATADESCR_DESCR ); - aSet.ClearItem( SCHATTR_DATADESCR_SHOW_SYM ); - mpModel->PutDataRowAttr( mnRow, aSet ); - } - else - { - SfxItemSet aSet( mpModel->GetItemPool(), pMap->nWID, pMap->nWID ); - - aSet.ClearItem( pMap->nWID ); - mpModel->PutDataRowAttr( mnRow, aSet ); - } - } -} - -uno::Any SAL_CALL ChXDataRow::getPropertyDefault( const ::rtl::OUString& aPropertyName ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - uno::Any aAny; - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( aPropertyName ); - - if( mpModel && ! mpModel->GetItemPool().IsWhich( pMap->nWID )) - throw beans::UnknownPropertyException(); - - if( mpModel && pMap && pMap->nWID ) - { - if( pMap->nWID == CHATTR_PIE_SEGMENT_OFFSET ) - { - aAny <<= (sal_Int32)0; - } - else if( pMap->nWID == SCHATTR_DATADESCR_DESCR ) - { - SfxItemSet aSet( mpModel->GetItemPool(), - SCHATTR_DATADESCR_DESCR, SCHATTR_DATADESCR_DESCR, - SCHATTR_DATADESCR_SHOW_SYM, SCHATTR_DATADESCR_SHOW_SYM, 0 ); - - aSet.Put( mpModel->GetItemPool().GetDefaultItem( SCHATTR_DATADESCR_DESCR )); - aSet.Put( mpModel->GetItemPool().GetDefaultItem( SCHATTR_DATADESCR_SHOW_SYM )); - aAny = maPropSet.getPropertyValue( pMap, aSet ); - } - else - { - SfxItemSet aSet( mpModel->GetItemPool(), pMap->nWID, pMap->nWID ); - aSet.Put( mpModel->GetItemPool().GetDefaultItem( pMap->nWID )); - aAny = maPropSet.getPropertyValue( pMap, aSet ); - } - - if( *pMap->pType != aAny.getValueType() ) - { - // since the sfx uint16 item now exports a sal_Int32, we may have to fix this here - if( ( *pMap->pType == ::getCppuType((const sal_Int16*)0)) && aAny.getValueType() == ::getCppuType((const sal_Int32*)0) ) - { - sal_Int32 nValue(0); - aAny >>= nValue; - aAny <<= static_cast< sal_Int16 >( nValue ); - } - else - { - OSL_FAIL( "getPropertyDefault(): wrong Type!" ); - } - } - } - - return aAny; -} - -// XShapeDescriptor -::rtl::OUString SAL_CALL ChXDataRow::getShapeType() throw( uno::RuntimeException ) -{ - return SCH_ASCII_TO_OU( "com.sun.star.chart.ChartDataRow" ); -} - -// XServiceInfo -::rtl::OUString SAL_CALL ChXDataRow::getImplementationName() throw( uno::RuntimeException ) -{ - return SCH_ASCII_TO_OU( "ChXDataRow" ); -} - -sal_Bool SAL_CALL ChXDataRow::supportsService( const ::rtl::OUString& ServiceName ) - throw( uno::RuntimeException ) -{ - return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() ); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChXDataRow::getSupportedServiceNames() - throw( uno::RuntimeException ) -{ - uno::Sequence< ::rtl::OUString > aSeq; - SvxServiceInfoHelper::addToSequence( - aSeq, 7, - "com.sun.star.chart.ChartDataPointProperties", - "com.sun.star.chart.ChartDataRowProperties", - "com.sun.star.chart.ChartStatistics", - "com.sun.star.drawing.LineProperties", - "com.sun.star.drawing.FillProperties", - "com.sun.star.style.CharacterProperties", - "com.sun.star.xml.UserDefinedAttributeSupplier" ); - - if( mpModel && mpModel->Is3DChart() ) - { - long nType = mpModel->GetBaseType(); - if( nType == CHTYPE_BAR || nType == CHTYPE_COLUMN ) - SvxServiceInfoHelper::addToSequence( aSeq, 1, "com.sun.star.chart.Chart3DBarProperties" ); - } - - return aSeq; -} - -// XUnoTunnel -sal_Int64 SAL_CALL ChXDataRow::getSomething( const uno::Sequence< sal_Int8 >& aIdentifier ) - throw( uno::RuntimeException ) -{ - if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), - aIdentifier.getConstArray(), 16 ) ) - { - return (sal_Int64)this; - } - return 0; -} - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChXDiagram.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChXDiagram.cxx deleted file mode 100644 index 8eb24e302..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_ChXDiagram.cxx +++ /dev/null @@ -1,2069 +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. - * - ************************************************************************/ - -// header for class OGuard -// header for class Application -#include <vcl/svapp.hxx> - -#include "schattr.hxx" -#ifndef _SVX_BRSHITEM_HXX -#define ITEMID_BRUSH SCHATTR_SYMBOL_BRUSH -#include <bf_svx/brshitem.hxx> -#endif -// header for CreateGraphicObjectFromURL -#include <bf_svx/unoapi.hxx> -// header for SvxChartDataDescrItem -#ifndef _SVX_CHRTITEM_HXX -#define ITEMID_CHARTDATADESCR SCHATTR_DATADESCR_DESCR - -#include <bf_svtools/eitem.hxx> - -#endif - -#include "ChXDiagram.hxx" -#include "ChXChartAxis.hxx" -#include "ChXDataRow.hxx" -#include "ChXDataPoint.hxx" -#include "ChartTitle.hxx" -#include "ChartLine.hxx" -#include "ChartArea.hxx" -#include "ChartGrid.hxx" - -#include "mapprov.hxx" - -#include "schattr.hxx" -#include "charttyp.hxx" -#include "chtscene.hxx" -#include "docshell.hxx" - -#include <bf_svx/unoshape.hxx> -// for OWN_ATTR_... -#include <bf_svx/unoshprp.hxx> -// for SID_ATTR_... -#include <bf_svx/svxids.hrc> -#include <rtl/uuid.h> -#include <rtl/memory.h> -// header for any2enum -#include <comphelper/extract.hxx> - -#include <com/sun/star/chart/ChartDataRowSource.hpp> -#include <com/sun/star/chart/ChartErrorCategory.hpp> -#include <com/sun/star/chart/ChartErrorIndicatorType.hpp> -#include <com/sun/star/chart/ChartRegressionCurveType.hpp> -#include <com/sun/star/chart/ChartDataCaption.hpp> - -#include <rtl/logfile.hxx> - -#include "pairs.hxx" -#include "unonames.hxx" - -namespace -{ -::binfilter::ChartScene * lcl_GetScene( ::binfilter::ChartModel * pModel ) -{ - ::binfilter::ChartScene * pScene = NULL; - - if( pModel && pModel->IsReal3D() ) - { - if( ! pModel->IsInitialized()) - pModel->Initialize(); - pScene = pModel->GetScene(); - } - - return pScene; -} -} // anonymous namespace - - -namespace binfilter { - -using namespace ::com::sun::star; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::beans; - -using rtl::OUString; - -extern SchUnoPropertyMapProvider aSchMapProvider; - -#if defined(MACOSX) && ( __GNUC__ < 3 ) -static cppu::ClassData14 cppu::ImplHelper14::s_aCD; -static cppu::ClassData14 cppu::WeakImplHelper14::s_aCD; -#endif - -#define MATRIX4D_TO_HOMOGEN_MATRIX( m, h ) \ - h.Line1.Column1 = m[0][0]; \ - h.Line1.Column2 = m[0][1]; \ - h.Line1.Column3 = m[0][2]; \ - h.Line1.Column4 = m[0][3]; \ - h.Line2.Column1 = m[1][0]; \ - h.Line2.Column2 = m[1][1]; \ - h.Line2.Column3 = m[1][2]; \ - h.Line2.Column4 = m[1][3]; \ - h.Line3.Column1 = m[2][0]; \ - h.Line3.Column2 = m[2][1]; \ - h.Line3.Column3 = m[2][2]; \ - h.Line3.Column4 = m[2][3]; \ - h.Line4.Column1 = m[3][0]; \ - h.Line4.Column2 = m[3][1]; \ - h.Line4.Column3 = m[3][2]; \ - h.Line4.Column4 = m[3][3] - -#define HOMOGEN_MATRIX_TO_MATRIX4D( h, m ) \ - m[0][0] = h.Line1.Column1; \ - m[0][1] = h.Line1.Column2; \ - m[0][2] = h.Line1.Column3; \ - m[0][3] = h.Line1.Column4; \ - m[1][0] = h.Line2.Column1; \ - m[1][1] = h.Line2.Column2; \ - m[1][2] = h.Line2.Column3; \ - m[1][3] = h.Line2.Column4; \ - m[2][0] = h.Line3.Column1; \ - m[2][1] = h.Line3.Column2; \ - m[2][2] = h.Line3.Column3; \ - m[2][3] = h.Line3.Column4; \ - m[3][0] = h.Line4.Column1; \ - m[3][1] = h.Line4.Column2; \ - m[3][2] = h.Line4.Column3; \ - m[3][3] = h.Line4.Column4 - -#define CALL(object,interface,method) {uno::Reference<interface>x(object,uno::UNO_QUERY); if(x.is())x.method();} -#define CALL1(object,interface,method,arg1) {uno::Reference<interface>x(object,uno::UNO_QUERY); if(x.is())x.method(arg1);} - -inline void add_listener (uno::Reference<uno::XInterface> xObject, ChXDiagram * p) -{ - if ( ! xObject.is()) - return; - uno::Reference<lang::XComponent> xComponent (xObject, uno::UNO_QUERY); - if (xComponent.is()) - xComponent->addEventListener (p); -} - -ChXDiagram::ChXDiagram( SchChartDocShell* pDocShell, sal_Bool bPreInit ) : - mnBaseType( -1 ), - mpModel( NULL ), - maPropSet( aSchMapProvider.GetMap( CHMAP_CHART, NULL )), - maListenerList (maMutex) -{ - if( bPreInit ) - { - DBG_ASSERT( pDocShell, "Cannot do PreInit when using invalid DocShell." ); - SetDocShell( pDocShell ); - } -} - -ChXDiagram::~ChXDiagram() {} - -// bKeepModel = sal_True => try to keep model. If model is invalid take the one from DocShell -sal_Bool ChXDiagram::SetDocShell( SchChartDocShell* pDocShell, sal_Bool bKeepModel ) throw() -{ - SolarMutexGuard aGuard; - sal_Bool bModelKept = sal_False; - - if( pDocShell ) - { - if( bKeepModel && mpModel ) - { - // copy current model - ChartModel* pModel = SAL_STATIC_CAST( ChartModel*, mpModel->AllocModel()); - if( pModel ) - { - pDocShell->SetModelPtr( pModel ); - if( ! pModel->SetObjectShell( pDocShell )) - { - OSL_FAIL( "Couldn't set docshell" ); - } - - delete mpModel; - mpModel = pModel; - bModelKept = sal_True; - } - } - else - { - // use model of new DocShell - mpModel = pDocShell->GetModelPtr(); - if( ! bKeepModel && mpModel ) - { - maPropSet = SvxItemPropertySet( aSchMapProvider.GetMap( CHMAP_CHART, mpModel )); - maServiceName = getDiagramType(); - } - } - } - else - mpModel = NULL; - - return bModelKept; -} - -// generate a uniqueId -const uno::Sequence< sal_Int8 > & ChXDiagram::getUnoTunnelId() throw() -{ - static uno::Sequence< sal_Int8 > * pSeq = 0; - if( !pSeq ) - { - osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); - if( !pSeq ) - { - static uno::Sequence< sal_Int8 > aSeq( 16 ); - rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); - pSeq = &aSeq; - } - } - return *pSeq; -} - -ChXDiagram* ChXDiagram::getImplementation( uno::Reference< uno::XInterface > xData ) throw() -{ - uno::Reference< lang::XUnoTunnel > xUT( xData, uno::UNO_QUERY ); - if( xUT.is() ) - return (ChXDiagram*)xUT->getSomething( ChXDiagram::getUnoTunnelId() ); - else - return NULL; -} - -uno::Any ChXDiagram::GetAnyByItem( SfxItemSet& aSet, const SfxItemPropertyMap* pMap ) -{ - DBG_ASSERT( pMap, "GetAnyByItem: invalid Map!" ); - DBG_ASSERT( mpModel, "GetAnyByItem: invalid Model!" ); - - uno::Any aAny; - - switch( pMap->nWID ) - { - case CHATTR_DATA_SWITCH: // BM: SwitchData is enum now - { - sal_Bool bIsOn = SAL_STATIC_CAST( const SfxBoolItem&, aSet.Get( CHATTR_DATA_SWITCH ) ).GetValue(); - chart::ChartDataRowSource eRowSource = - bIsOn ? chart::ChartDataRowSource_COLUMNS : chart::ChartDataRowSource_ROWS; - aAny <<= eRowSource; - } - break; - - case SCHATTR_STYLE_SHAPE: - aAny <<= SAL_STATIC_CAST( sal_Int32, mpModel->GetChartShapeType() ); - break; - - case SCHATTR_DATADESCR_DESCR: - { - BOOL bShowSymbol = ((const SfxBoolItem&) - (aSet.Get(SCHATTR_DATADESCR_SHOW_SYM))).GetValue(); - SvxChartDataDescr eDescr = ((const SvxChartDataDescrItem&) - (aSet.Get(SCHATTR_DATADESCR_DESCR))).GetValue(); - - sal_Int32 nVal = 0; - switch( eDescr ) - { - case CHDESCR_NONE: - nVal = chart::ChartDataCaption::NONE; - break; - case CHDESCR_VALUE: - nVal = chart::ChartDataCaption::VALUE; - break; - case CHDESCR_PERCENT: - nVal = chart::ChartDataCaption::PERCENT; - break; - case CHDESCR_TEXT: - nVal = chart::ChartDataCaption::TEXT; - break; - case CHDESCR_TEXTANDPERCENT: - nVal = chart::ChartDataCaption::PERCENT | chart::ChartDataCaption::TEXT; - break; - case CHDESCR_TEXTANDVALUE: - nVal = chart::ChartDataCaption::VALUE | chart::ChartDataCaption::TEXT; - break; - default: - break; - } - if( bShowSymbol ) nVal |= chart::ChartDataCaption::SYMBOL; - - aAny <<= nVal; - } - break; - - case SCHATTR_SYMBOL_BRUSH: - { - ::rtl::OUString aURL; - const BfGraphicObject* pGraphObj = - ((const SvxBrushItem &)(aSet.Get( SCHATTR_SYMBOL_BRUSH ))).GetGraphicObject(); - if( pGraphObj ) - { - aURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( UNO_NAME_GRAPHOBJ_URLPREFIX )); - aURL += ::rtl::OUString::createFromAscii( pGraphObj->GetUniqueID().GetBuffer()); - } - aAny <<= aURL; - } - break; - - default: - aAny = maPropSet.getPropertyValue( pMap, aSet ); - - if( *pMap->pType != aAny.getValueType() ) - { - // since the sfx uint16 item now exports a sal_Int32, we may have to fix this here - if( ( *pMap->pType == ::getCppuType((const sal_Int16*)0)) && aAny.getValueType() == ::getCppuType((const sal_Int32*)0) ) - { - sal_Int32 nValue(0); - aAny >>= nValue; - aAny <<= static_cast< sal_Int16 >( nValue ); - } - else if( ( *pMap->pType == ::getCppuType((const sal_uInt16*)0)) && aAny.getValueType() == ::getCppuType((const sal_Int32*)0) ) - { - sal_Int32 nValue(0); - aAny >>= nValue; - aAny <<= static_cast< sal_uInt16 >( nValue ); - } - else - { - OSL_TRACE( "GetAnyByItem(): wrong Type!" ); - OSL_FAIL( "GetAnyByItem(): wrong Type!" ); - } - } - } - return aAny; -} - -// XDiagram -::rtl::OUString SAL_CALL ChXDiagram::getDiagramType() throw( uno::RuntimeException ) -{ - if( maServiceName.getLength() && - mpModel && - mnBaseType == mpModel->GetBaseType() ) - { - return maServiceName; - } - - SolarMutexGuard aGuard; - - if( mpModel ) - { - mnBaseType = mpModel->GetBaseType(); - switch( mnBaseType ) - { - case CHTYPE_LINE: - maServiceName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_LINE )); - break; - case CHTYPE_AREA: - maServiceName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_AREA )); - break; - case CHTYPE_DONUT : - maServiceName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_DONUT )); - break; - case CHTYPE_COLUMN: // is also treated as (vertical) bar chart - case CHTYPE_BAR : - maServiceName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_BAR )); - break; - case CHTYPE_CIRCLE : - maServiceName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_PIE )); - break; - case CHTYPE_XY : - maServiceName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_XY )); - break; - case CHTYPE_NET : - maServiceName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_NET )); - break; - case CHTYPE_STOCK : - maServiceName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SCH_X_STR_CHTYPE_NAMESPACE SCH_X_STR_CHTYPE_STOCK )); - break; - case CHTYPE_ADDIN : - // when we get here we know that maServiceName.getLength() == 0 - OSL_FAIL( "Addin with empty name !" ); - break; - } - return maServiceName; - } - else - { - OSL_FAIL( "No Model" ); - } - return SCH_ASCII_TO_OU( "UnknownChartType" ); -} - -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getDataRowProperties( sal_Int32 Row ) - throw( uno::RuntimeException, lang::IndexOutOfBoundsException ) -{ - SolarMutexGuard aGuard; - - if( mpModel ) - { - if( Row >= 0 && - Row < mpModel->GetRowCount() ) - { - ChXDataRow* pRet = new ChXDataRow( Row, mpModel ); - return uno::Reference< beans::XPropertySet >( SAL_STATIC_CAST( beans::XPropertySet*, pRet )); - } - else - { - ::rtl::OUString aMessage( RTL_CONSTASCII_USTRINGPARAM( "DataRowProperties: Invalid Index " )); - aMessage += ::rtl::OUString::valueOf( Row ); - lang::IndexOutOfBoundsException aEx( aMessage, (::cppu::OWeakObject*)this ); - throw aEx; - } - } - else - { - OSL_FAIL( "No Model" ); - } - - return uno::Reference< beans::XPropertySet >(); -} - -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getDataPointProperties( sal_Int32 Column, sal_Int32 Row ) - throw( uno::RuntimeException, lang::IndexOutOfBoundsException ) -{ - SolarMutexGuard aGuard; - - if( mpModel ) - { - if( Row >= 0 && Column >= 0 && - (Row < mpModel->GetRowCount()) && - (Column < mpModel->GetColCount()) ) - { - ChXDataPoint* pRet = new ChXDataPoint( Column, Row, mpModel ); - return uno::Reference< beans::XPropertySet >( SAL_STATIC_CAST( beans::XPropertySet*, pRet )); - } - else - { - ::rtl::OUString aMessage( RTL_CONSTASCII_USTRINGPARAM( "DataPointProperties: Invalid Index (col, row): " )); - aMessage += ::rtl::OUString::valueOf( Column ); - aMessage += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ", " )); - aMessage += ::rtl::OUString::valueOf( Row ); - lang::IndexOutOfBoundsException aEx( aMessage, (::cppu::OWeakObject*)this ); - throw aEx; - } - } - else - { - OSL_FAIL( "No Model" ); - } - - return uno::Reference< beans::XPropertySet >(); -} - -// XShape ( ::XDiagram) -awt::Size SAL_CALL ChXDiagram::getSize() throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - if( mpModel ) - { - Size aSize = mpModel->GetChartRect().GetSize(); - return awt::Size( aSize.Width(), aSize.Height() ); - } - else - return awt::Size( 0, 0 ); -} - -void SAL_CALL ChXDiagram::setSize( const awt::Size& aSize ) - throw( uno::RuntimeException, - beans::PropertyVetoException ) -{ - SolarMutexGuard aGuard; - if( mpModel ) - { - Rectangle aRect = mpModel->GetChartRect(); - Size aOldSize = aRect.GetSize(); - if( aOldSize.Width() != aSize.Width || - aOldSize.Height() != aSize.Height ) - { - mpModel->SetUseRelativePositions( TRUE ); - mpModel->SetDiagramHasBeenMovedOrResized( TRUE ); - aRect.SetSize( Size( aSize.Width, aSize.Height ) ); - mpModel->SetChartRect( aRect ); - mpModel->BuildChart( FALSE ); - } - } - else - { - OSL_FAIL( "No Model" ); - } -} - -awt::Point SAL_CALL ChXDiagram::getPosition() throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - if( mpModel ) - { - Point aPoint = mpModel->GetChartRect().TopLeft(); - return awt::Point( aPoint.X(), aPoint.Y() ); - } - else - { - OSL_FAIL( "No Model" ); - } - return awt::Point( 0, 0 ); -} - -void SAL_CALL ChXDiagram::setPosition( const awt::Point& aPosition ) throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - if( mpModel ) - { - Rectangle aRect=mpModel->GetChartRect(); - Point aUpperLeft = aRect.TopLeft(); - if( aUpperLeft.X() != aPosition.X || - aUpperLeft.Y() != aPosition.Y ) - { - mpModel->SetUseRelativePositions( TRUE ); - mpModel->SetDiagramHasBeenMovedOrResized( TRUE ); - aRect.SetPos( Point( aPosition.X, aPosition.Y ) ); - mpModel->SetChartRect( aRect ); - mpModel->BuildChart( FALSE ); - } - } - else - { - OSL_FAIL( "No Model" ); - } -} - -// XShapeDescriptor ( ::XShape ::XDiagram ) -::rtl::OUString SAL_CALL ChXDiagram::getShapeType() throw( uno::RuntimeException ) -{ - return SCH_ASCII_TO_OU( "com.sun.star.chart.Diagram" ); -} - -// XAxisXSupplier, XAxisYSupplier, XAxisZSupplier, -// XTwoAxisXSupplier, XTwoAxisYSupplier -uno::Reference< drawing::XShape > SAL_CALL ChXDiagram::getXAxisTitle() - throw( uno::RuntimeException ) -{ - if( ! mxXAxisTitle.is()) - { - mxXAxisTitle = new ChartTitle( mpModel, CHOBJID_DIAGRAM_TITLE_X_AXIS ); - add_listener (mxXAxisTitle, this); - } - - return mxXAxisTitle; -} - -uno::Reference< drawing::XShape > SAL_CALL ChXDiagram::getYAxisTitle() - throw( uno::RuntimeException ) -{ - if( ! mxYAxisTitle.is()) - { - mxYAxisTitle = new ChartTitle( mpModel, CHOBJID_DIAGRAM_TITLE_Y_AXIS ); - add_listener (mxYAxisTitle, this); - } - - return mxYAxisTitle; -} - -uno::Reference< drawing::XShape > SAL_CALL ChXDiagram::getZAxisTitle() - throw( uno::RuntimeException ) -{ - if( ! mxZAxisTitle.is()) - { - mxZAxisTitle = new ChartTitle( mpModel, CHOBJID_DIAGRAM_TITLE_Z_AXIS ); - add_listener (mxZAxisTitle, this); - } - - return mxZAxisTitle; -} - -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getXAxis() throw( ::com::sun::star::uno::RuntimeException ) -{ - if( ! mxXAxis.is()) - { - mxXAxis = new ChXChartAxis( mpModel, CHOBJID_DIAGRAM_X_AXIS ); - add_listener (mxXAxis, this); - } - - return mxXAxis; -} -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getYAxis() throw( ::com::sun::star::uno::RuntimeException ) -{ - if( ! mxYAxis.is()) - { - mxYAxis = new ChXChartAxis( mpModel, CHOBJID_DIAGRAM_Y_AXIS ); - add_listener (mxYAxis, this); - } - - return mxYAxis; -} -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getZAxis() throw( ::com::sun::star::uno::RuntimeException ) -{ - if( ! mxZAxis.is()) - { - mxZAxis = new ChXChartAxis( mpModel, CHOBJID_DIAGRAM_Z_AXIS ); - add_listener (mxZAxis, this); - } - - return mxZAxis; -} -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getSecondaryXAxis() throw( ::com::sun::star::uno::RuntimeException ) -{ - if( ! mxSecXAxis.is()) - { - mxSecXAxis = new ChXChartAxis( mpModel, CHOBJID_DIAGRAM_A_AXIS ); - add_listener (mxSecXAxis, this); - } - - return mxSecXAxis; -} -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getSecondaryYAxis() throw( ::com::sun::star::uno::RuntimeException ) -{ - if( ! mxSecYAxis.is()) - { - mxSecYAxis = new ChXChartAxis( mpModel, CHOBJID_DIAGRAM_B_AXIS ); - add_listener (mxSecYAxis, this); - } - - return mxSecYAxis; -} -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getXMainGrid() throw( ::com::sun::star::uno::RuntimeException ) -{ - // attention: x and y grids are interchanged - if( ! mxMajorGridX.is()) - { - mxMajorGridX = new ChartGrid( mpModel, CHOBJID_DIAGRAM_Y_GRID_MAIN_GROUP ); - add_listener (mxMajorGridX, this); - } - - return mxMajorGridX; -} -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getYMainGrid() throw( ::com::sun::star::uno::RuntimeException ) -{ - // attention: x and y grids are interchanged - if( ! mxMajorGridY.is()) - { - mxMajorGridY = new ChartGrid( mpModel, CHOBJID_DIAGRAM_X_GRID_MAIN_GROUP ); - add_listener (mxMajorGridY, this); - } - - return mxMajorGridY; -} -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getZMainGrid() throw( ::com::sun::star::uno::RuntimeException ) -{ - if( ! mxMajorGridZ.is()) - { - mxMajorGridZ = new ChartGrid( mpModel, CHOBJID_DIAGRAM_Z_GRID_MAIN_GROUP ); - add_listener (mxMajorGridZ, this); - } - - return mxMajorGridZ; -} -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getXHelpGrid() throw( ::com::sun::star::uno::RuntimeException ) -{ - // attention: x and y grids are interchanged - if( ! mxMinorGridX.is()) - { - mxMinorGridX = new ChartGrid( mpModel, CHOBJID_DIAGRAM_Y_GRID_HELP_GROUP ); - add_listener (mxMinorGridX, this); - } - - return mxMinorGridX; -} -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getYHelpGrid() throw( ::com::sun::star::uno::RuntimeException ) -{ - // attention: x and y grids are interchanged - if( ! mxMinorGridY.is()) - { - mxMinorGridY = new ChartGrid( mpModel, CHOBJID_DIAGRAM_X_GRID_HELP_GROUP ); - add_listener (mxMinorGridY, this); - } - - return mxMinorGridY; -} -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getZHelpGrid() throw( ::com::sun::star::uno::RuntimeException ) -{ - if( ! mxMinorGridZ.is()) - { - mxMinorGridZ = new ChartGrid( mpModel, CHOBJID_DIAGRAM_Z_GRID_HELP_GROUP ); - add_listener (mxMinorGridZ, this); - } - - return mxMinorGridZ; -} - -// XStatisticDisplay -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getMinMaxLine() throw( ::com::sun::star::uno::RuntimeException ) -{ - if( ! mxMinMaxLine.is()) - { - mxMinMaxLine = new ChartLine( mpModel, CHOBJID_DIAGRAM_STOCKLINE_GROUP ); - add_listener (mxMinMaxLine, this); - } - - return mxMinMaxLine; -} -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getUpBar() throw( ::com::sun::star::uno::RuntimeException ) -{ - if( ! mxUpBar.is()) - { - mxUpBar = new ChartArea( mpModel, CHOBJID_DIAGRAM_STOCKPLUS_GROUP ); - add_listener (mxUpBar, this); - } - - return mxUpBar; -} -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getDownBar() throw( ::com::sun::star::uno::RuntimeException ) -{ - if( ! mxDownBar.is()) - { - mxDownBar = new ChartArea( mpModel, CHOBJID_DIAGRAM_STOCKLOSS_GROUP ); - add_listener (mxDownBar, this); - } - - return mxDownBar; -} - -// X3DDisplay -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getFloor() throw( ::com::sun::star::uno::RuntimeException ) -{ - if( ! mxFloor.is()) - { - mxFloor = new ChartArea( mpModel, CHOBJID_DIAGRAM_FLOOR ); - add_listener (mxFloor, this); - } - - return mxFloor; -} -// note: this method is also valid for 2d charts -uno::Reference< beans::XPropertySet > SAL_CALL ChXDiagram::getWall() throw( ::com::sun::star::uno::RuntimeException ) -{ - if( ! mxWall.is()) - { - mxWall = new ChartArea( mpModel, CHOBJID_DIAGRAM_WALL ); - add_listener (mxWall, this); - } - - return mxWall; -} - - -// XPropertySet -uno::Reference< beans::XPropertySetInfo > SAL_CALL ChXDiagram::getPropertySetInfo() throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - return maPropSet.getPropertySetInfo(); -} - -// needed for camera geometry -struct ImpRememberTransAndRect -{ - Matrix4D maMat; - Rectangle maRect; -}; - -void SAL_CALL ChXDiagram::setPropertyValue( const ::rtl::OUString& aPropertyName, const uno::Any& aValue ) - throw( beans::UnknownPropertyException, - beans::PropertyVetoException, - lang::IllegalArgumentException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - if( mpModel ) - { - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( aPropertyName ); - - if( pMap && pMap->nWID ) - { - if( pMap->nFlags & PropertyAttribute::READONLY ) - throw PropertyVetoException(); - - USHORT nWID = pMap->nWID; - sal_Int32 nVal(0); - - SfxItemSet* pSet; - switch( nWID ) - { - case SCHATTR_DATADESCR_DESCR: - case SCHATTR_DATADESCR_SHOW_SYM: - // the Property DataCaption needs two Which Ids - pSet = new SfxItemSet( mpModel->GetItemPool(), - SCHATTR_DATADESCR_DESCR, SCHATTR_DATADESCR_DESCR, - SCHATTR_DATADESCR_SHOW_SYM, SCHATTR_DATADESCR_SHOW_SYM, 0 ); - break; - - case CHATTR_NUM_OF_LINES_FOR_BAR: - { - aValue >>= nVal; - if( mpModel->GetBaseType() == CHTYPE_COLUMN ) - mpModel->SetNumLinesColChart( nVal, TRUE ); - mpModel->BuildChart( FALSE ); - return; // RETURN - } - - case CHATTR_SPLINE_ORDER: - { - aValue >>= nVal; - // for some reason the value internally is one more - // ie order 1 is linear but is stores as 2 in the core - ++nVal; - mpModel->SplineDepth() = nVal; - if( mpModel->IsSplineChart()) - mpModel->BuildChart( FALSE ); - return; // RETURN - } - - case CHATTR_SPLINE_RESOLUTION: - { - aValue >>= nVal; - mpModel->Granularity() = nVal; - if( mpModel->IsSplineChart()) - mpModel->BuildChart( FALSE ); - return; // RETURN - } - - case SCHATTR_STYLE_STACKED: - case SCHATTR_STYLE_PERCENT: - pSet = new SfxItemSet( mpModel->GetItemPool(), - SCHATTR_STYLE_STACKED, SCHATTR_STYLE_STACKED, - SCHATTR_STYLE_PERCENT, SCHATTR_STYLE_PERCENT, 0 ); - break; - - case SCHATTR_STYLE_DEEP: - // deep implies 3d - pSet = new SfxItemSet( mpModel->GetItemPool(), - SCHATTR_STYLE_DEEP, SCHATTR_STYLE_DEEP, - SCHATTR_STYLE_3D, SCHATTR_STYLE_3D, 0 ); - break; - - case OWN_ATTR_3D_VALUE_TRANSFORM_MATRIX: - { - E3dObject* pScene = lcl_GetScene( mpModel ); - - if( pScene ) - { - drawing::HomogenMatrix xHomMatrix; - aValue >>= xHomMatrix; - Matrix4D aMtx; - HOMOGEN_MATRIX_TO_MATRIX4D( xHomMatrix, aMtx ); - pScene->SetTransform( aMtx ); - } - return; // RETURN - } - - case OWN_ATTR_3D_VALUE_CAMERA_GEOMETRY: - { - E3dScene* pScene = lcl_GetScene( mpModel ); - - if( pScene ) - { - drawing::CameraGeometry aCamGeo; - - if(aValue >>= aCamGeo) - { - Vector3D aVRP(aCamGeo.vrp.PositionX, aCamGeo.vrp.PositionY, aCamGeo.vrp.PositionZ); - Vector3D aVPN(aCamGeo.vpn.DirectionX, aCamGeo.vpn.DirectionY, aCamGeo.vpn.DirectionZ); - Vector3D aVUP(aCamGeo.vup.DirectionX, aCamGeo.vup.DirectionY, aCamGeo.vup.DirectionZ); - - // rescue scene transformation - ImpRememberTransAndRect aSceneTAR; - aSceneTAR.maMat = pScene->GetTransform(); - aSceneTAR.maRect = pScene->GetSnapRect(); - - // fill old camera from new parameters - Camera3D aCam(pScene->GetCamera()); - const Volume3D& rVolume = pScene->GetBoundVolume(); - double fW = rVolume.GetWidth(); - double fH = rVolume.GetHeight(); - double fCamPosZ = - (double)((const SfxUInt32Item&)pScene->GetItem(SDRATTR_3DSCENE_DISTANCE)).GetValue(); - double fCamFocal = - (double)((const SfxUInt32Item&)pScene->GetItem(SDRATTR_3DSCENE_FOCAL_LENGTH)).GetValue(); - - aCam.SetAutoAdjustProjection(FALSE); - aCam.SetViewWindow(- fW / 2, - fH / 2, fW, fH); - Vector3D aLookAt; - Vector3D aCamPos(0.0, 0.0, fCamPosZ); - aCam.SetPosAndLookAt(aCamPos, aLookAt); - aCam.SetFocalLength(fCamFocal / 100.0); - aCam.SetDefaults(Vector3D(0.0, 0.0, fCamPosZ), aLookAt, fCamFocal / 100.0); - aCam.SetDeviceWindow(Rectangle(0, 0, (long)fW, (long)fH)); - - // set at scene - pScene->SetCamera(aCam); - - // set scene transformation again at scene - pScene->NbcSetTransform(aSceneTAR.maMat); - pScene->FitSnapRectToBoundVol(); - pScene->NbcSetSnapRect(aSceneTAR.maRect); - } - } - return; // RETURN - } - - default: - pSet = new SfxItemSet( mpModel->GetPool(), nWID, nWID ); - } - - // fill item: (should be optimized) - ChartType aType( mpModel ); - aType.GetAttrSet( pSet ); - mpModel->GetAttr( *pSet ); - - if( !pSet->Count() ) - { - // get default from ItemPool - if( mpModel->GetItemPool().IsWhich( nWID ) ) - { - pSet->Put( mpModel->GetItemPool().GetDefaultItem( pMap->nWID ) ); - } - else - { -#if OSL_DEBUG_LEVEL > 1 - String aTmpString( aPropertyName ); - ByteString aProp( aTmpString, RTL_TEXTENCODING_ASCII_US ); - OSL_TRACE( "Diagram: Property %s has an invalid ID (%d)", aProp.GetBuffer(), nWID ); -#endif - } - } - - if( pSet->Count() ) - { - switch( nWID ) - { - case SCHATTR_STAT_KIND_ERROR: - { - chart::ChartErrorCategory eCat; - cppu::any2enum< chart::ChartErrorCategory >( eCat, aValue ); - pSet->Put( SfxInt32Item( nWID, SAL_STATIC_CAST( sal_Int32, eCat ))); - break; - } - case SCHATTR_STAT_INDICATE: - { - chart::ChartErrorIndicatorType eInd; - cppu::any2enum< chart::ChartErrorIndicatorType >( eInd, aValue ); - pSet->Put( SfxInt32Item( nWID, SAL_STATIC_CAST( sal_Int32, eInd ))); - break; - } - case SCHATTR_STAT_REGRESSTYPE: - { - chart::ChartRegressionCurveType eRegType; - cppu::any2enum< chart::ChartRegressionCurveType >( eRegType, aValue ); - pSet->Put( SfxInt32Item( nWID, SAL_STATIC_CAST( sal_Int32, eRegType ))); - break; - } - case CHATTR_DATA_SWITCH: - { - chart::ChartDataRowSource eRowSource; - cppu::any2enum< chart::ChartDataRowSource >( eRowSource, aValue ); - mpModel->ChangeSwitchData( (chart::ChartDataRowSource_COLUMNS == eRowSource) ); - return; - } - case SCHATTR_DATADESCR_DESCR: - { - // symbol - sal_Int32 nLclVal(0); - aValue >>= nLclVal; - pSet->Put( SfxBoolItem( SCHATTR_DATADESCR_SHOW_SYM, - ((nLclVal & chart::ChartDataCaption::SYMBOL) != 0)) ); - - // display text, percent or both or value - SvxChartDataDescr eDescr = CHDESCR_NONE; - if( nLclVal & chart::ChartDataCaption::TEXT ) - { - if( nLclVal & chart::ChartDataCaption::PERCENT ) - eDescr = CHDESCR_TEXTANDPERCENT; - else if( (nLclVal & chart::ChartDataCaption::VALUE) ) - eDescr = CHDESCR_TEXTANDVALUE; - else - eDescr = CHDESCR_TEXT; - } - else if( (nLclVal & chart::ChartDataCaption::VALUE) ) - { - eDescr = CHDESCR_VALUE; - } - else - { - if( (nLclVal & chart::ChartDataCaption::PERCENT) ) - eDescr = CHDESCR_PERCENT; - } - - // chart::ChartDataCaption::FORMAT (missing) - - pSet->Put( SvxChartDataDescrItem( eDescr ) ); - } - break; - - case XATTR_FILLBITMAP: - case XATTR_FILLGRADIENT: - case XATTR_FILLHATCH: - case XATTR_FILLFLOATTRANSPARENCE: - case XATTR_LINEEND: - case XATTR_LINESTART: - case XATTR_LINEDASH: - if( pMap->nMemberId == MID_NAME ) - { - ::rtl::OUString aStr; - if( aValue >>= aStr ) - SvxShape::SetFillAttribute( nWID, aStr, *pSet, mpModel ); - } - else - maPropSet.setPropertyValue( pMap, aValue, *pSet ); - break; - - case SCHATTR_STYLE_STACKED: - case SCHATTR_STYLE_PERCENT: - { - sal_Bool bSet(sal_False); - aValue >>= bSet; - if( bSet ) - { - // setting of these two items is exclusive - BOOL bStacked = ( nWID == SCHATTR_STYLE_STACKED ); - - pSet->Put( SfxBoolItem( SCHATTR_STYLE_STACKED, bStacked )); - pSet->Put( SfxBoolItem( SCHATTR_STYLE_PERCENT, ! bStacked )); - } - else - { - // setting either of both properties to FALSE - // sets both to FALSE - pSet->Put( SfxBoolItem( SCHATTR_STYLE_STACKED, FALSE )); - pSet->Put( SfxBoolItem( SCHATTR_STYLE_PERCENT, FALSE )); - } - } - break; - - case SCHATTR_STYLE_DEEP: - { - sal_Bool bSet(sal_False); - aValue >>= bSet; - - // if deep is turned on, 3d must also be set - if( bSet ) - { - pSet->Put( SfxBoolItem( SCHATTR_STYLE_3D, TRUE )); - } - pSet->Put( SfxBoolItem( SCHATTR_STYLE_DEEP, bSet )); - } - break; - - case SCHATTR_SYMBOL_BRUSH: - { - ::rtl::OUString aURL; - aValue >>= aURL; - BfGraphicObject aGraphObj = CreateGraphicObjectFromURL( aURL ); - SvxBrushItem aItem( SCHATTR_SYMBOL_BRUSH ); - aItem.SetGraphic( aGraphObj.GetGraphic() ); - pSet->Put( aItem ); - } - break; - - default: - maPropSet.setPropertyValue( pMap, aValue, *pSet ); - break; - } - aType.SetType( pSet ); - mpModel->PutAttr( *pSet ); - if( nWID == SCHATTR_SYMBOL_SIZE ) - { - mpModel->PutDataRowAttrAll( *pSet ); - } - - if( mpModel->ChangeChart( aType.GetChartStyle(), false )) - { - mpModel->BuildChart( FALSE ); - } - else if( ! mpModel->ChangeStatistics ( *pSet ) ) - { - mpModel->BuildChart( FALSE ); - } - } - else - { - throw beans::UnknownPropertyException(); - } - delete pSet; - } - else - { - throw beans::UnknownPropertyException(); - } - } - else - { - DBG_WARNING( "No Model" ); - } -} - -uno::Any SAL_CALL ChXDiagram::getPropertyValue( const ::rtl::OUString& PropertyName ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - RTL_LOGFILE_CONTEXT (context, "sch (af119097) ::ChXDiagram::getPropertyValue"); - SolarMutexGuard aGuard; - - uno::Any aAny; - - if( mpModel ) - { - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName ); - - if( pMap && pMap->nWID ) - { - USHORT nWID = pMap->nWID; - SfxItemSet* pSet; - - if( nWID == SCHATTR_STYLE_SHAPE && - ! mpModel->IsReal3D()) - return aAny; - - switch( nWID ) - { - case CHATTR_NUM_OF_LINES_FOR_BAR: - aAny <<= SAL_STATIC_CAST( sal_Int32, mpModel->GetNumLinesColChart() ); - return aAny; // RETURN - - case SCHATTR_DATADESCR_DESCR: - pSet = new SfxItemSet( mpModel->GetItemPool(), - SCHATTR_DATADESCR_DESCR, SCHATTR_DATADESCR_DESCR, - SCHATTR_DATADESCR_SHOW_SYM, SCHATTR_DATADESCR_SHOW_SYM, 0 ); - break; - - case CHATTR_SPLINE_ORDER: - // for some reason the value internally is one more - // ie order 1 is linear but is stores as 2 in the core - aAny <<= static_cast< sal_Int32 >( mpModel->SplineDepth() - 1 ); - return aAny; - - case CHATTR_SPLINE_RESOLUTION: - aAny <<= static_cast< sal_Int32 >( mpModel->Granularity() ); - return aAny; - - case CHATTR_ATTRIBUTED_DATA_POINTS: - aAny <<= mpModel->GetSetDataPointList(); - return aAny; - - default: - pSet = new SfxItemSet( mpModel->GetItemPool(), nWID, nWID ); - } - - // set attributes - if( nWID == SCHATTR_SYMBOL_BRUSH || - nWID == SCHATTR_SYMBOL_SIZE ) - { - mpModel->GetDataRowAttrAll( *pSet ); - } - else - { - ChartType aType( mpModel ); - aType.GetAttrSet( pSet ); - mpModel->GetAttr( *pSet ); // copy SHOW_HIDE_PROPERTIES into ItemSet - } - - if( ! pSet->Count() ) - { - // get default from ItemPool - if( mpModel->GetItemPool().IsWhich( nWID ) ) - { - if( ! ( OWN_ATTR_VALUE_START <= nWID && nWID <= OWN_ATTR_VALUE_END )) // properties from SvxShape - { - pSet->Put( mpModel->GetItemPool().GetDefaultItem( nWID ) ); - } - // 3d properties that have no corresponding item but come from drawing layer - else - { - //E3dPolyScene* mpModel->GetScene(); - E3dObject* pScene = lcl_GetScene( mpModel ); - if( pScene ) - { - if( nWID == OWN_ATTR_3D_VALUE_TRANSFORM_MATRIX ) - { - const Matrix4D& aMtx = pScene->GetFullTransform(); - drawing::HomogenMatrix xHomMatrix; - MATRIX4D_TO_HOMOGEN_MATRIX( aMtx, xHomMatrix ); - aAny <<= xHomMatrix; - - return aAny; // RETURN - } - else if( nWID == OWN_ATTR_3D_VALUE_CAMERA_GEOMETRY ) - { - // get CameraGeometry from scene - E3dScene* pE3dScene = mpModel->GetScene(); - drawing::CameraGeometry aCamGeo; - - // fill Vectors from scene camera - B3dCamera& aCameraSet = pE3dScene->GetCameraSet(); - Vector3D aVRP = aCameraSet.GetVRP(); - Vector3D aVPN = aCameraSet.GetVPN(); - Vector3D aVUP = aCameraSet.GetVUV(); - - // transfer to structure - aCamGeo.vrp.PositionX = aVRP.X(); - aCamGeo.vrp.PositionY = aVRP.Y(); - aCamGeo.vrp.PositionZ = aVRP.Z(); - aCamGeo.vpn.DirectionX = aVPN.X(); - aCamGeo.vpn.DirectionY = aVPN.Y(); - aCamGeo.vpn.DirectionZ = aVPN.Z(); - aCamGeo.vup.DirectionX = aVUP.X(); - aCamGeo.vup.DirectionY = aVUP.Y(); - aCamGeo.vup.DirectionZ = aVUP.Z(); - - return uno::Any(&aCamGeo, ::getCppuType((const drawing::CameraGeometry*)0) ); - } - } - } - } - else - { -#if OSL_DEBUG_LEVEL > 1 - String aTmpString( PropertyName ); - ByteString aProp( aTmpString, RTL_TEXTENCODING_ASCII_US ); - OSL_TRACE( "Diagram: Property %s has an invalid ID (%d)", aProp.GetBuffer(), nWID ); -#endif - } - } - - if( pSet->Count() ) - { - aAny = GetAnyByItem( *pSet, pMap ); - } - else - throw beans::UnknownPropertyException(); - - delete pSet; - } - else - throw beans::UnknownPropertyException(); - } - else - { - OSL_FAIL( "No Model" ); - } - return aAny; -} - -void SAL_CALL ChXDiagram::addPropertyChangeListener( const ::rtl::OUString& /*aPropertyName*/, - const uno::Reference< beans::XPropertyChangeListener >& /*xListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXDiagram::removePropertyChangeListener( const ::rtl::OUString& /*aPropertyName*/, - const uno::Reference< beans::XPropertyChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXDiagram::addVetoableChangeListener( const ::rtl::OUString& /*PropertyName*/, - const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - -void SAL_CALL ChXDiagram::removeVetoableChangeListener( const ::rtl::OUString& /*PropertyName*/, - const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{} - - -//===== XMultiPropertySet =================================================== - -void SAL_CALL ChXDiagram::setPropertyValues ( - const Sequence< ::rtl::OUString >& aPropertyNames, - const Sequence<Any >& aValues) - throw (beans::PropertyVetoException, - lang::IllegalArgumentException, - lang::WrappedTargetException, - uno::RuntimeException) -{ - RTL_LOGFILE_CONTEXT (context2, "sch (af119097) ::ChXDiagram::setPropertyValues"); -#if 1 - for (sal_Int32 i=0; i<aPropertyNames.getLength(); i++) - setPropertyValue (aPropertyNames[i], aValues[i]); -#endif -} - - -Sequence<Any> SAL_CALL ChXDiagram::getPropertyValues ( - const Sequence<OUString>& aPropertyNames) - throw (RuntimeException) -{ - RTL_LOGFILE_CONTEXT (context, "sch (af119097) ::ChXDiagram::getPropertyValues"); - SolarMutexGuard aGuard; - - // This sequence is filled with the requested values for the given property names. - Sequence<Any> aResult (aPropertyNames.getLength()); - - // Get pointers to first elements of lists. - const SfxItemPropertyMap * pProperty = maPropSet.getPropertyMap (); - const OUString * pPropertyName = aPropertyNames.getConstArray (); - Any * pPropertyValue = aResult.getArray (); - - // Check preconditions. - if (mpModel == NULL) - throw UnknownPropertyException (OUString ( - RTL_CONSTASCII_USTRINGPARAM ("No model in ::ChXDiagram::getPropertyValues")), - static_cast< ::cppu::OWeakObject*>(this)); - - // Get the models attributes. - SfxItemSet aAttributes (mpModel->GetItemPool(), - CHART_ROW_WHICHPAIRS, - OWN_ATTR_VALUE_START, OWN_ATTR_VALUE_END, - OWN_ATTR_FILLBMP_MODE, OWN_ATTR_FILLBMP_MODE, - SCHATTR_STOCK_VOLUME, SCHATTR_STOCK_UPDOWN, - CHATTR_START, CHATTR_END, - CHATTR_TMP_START, CHATTR_TMP_END, - 0); - - mpModel->GetDataRowAttrAll (aAttributes); - // else - ChartType aType (mpModel); - aType.GetAttrSet (&aAttributes); - mpModel->GetAttr (aAttributes); - - // Used in the loop below. - USHORT nWID; - E3dObject* pScene = NULL; - BOOL bTryAgain; - OUString sMessage; - - // Iterate over all given property names. - sal_Int32 nCounter = aPropertyNames.getLength(); - while (nCounter-- > 0) - { - AdvanceToName (pProperty, pPropertyName); - - nWID = pProperty->nWID; - bTryAgain = TRUE; - - // Handling each property is divided into three steps: - // 1. Handle special cases that do not depend on items. - // 2. If the required item is not set, then try to get a - // default value. Handle 3D properties here. - // 3. Try again if the item is now set in the hope that its - // status has been changed in step 2. - - // Step 1 - if (nWID == SCHATTR_STYLE_SHAPE && ! mpModel->IsReal3D()) - { - // Leave the property value unchanged. - bTryAgain = FALSE; - } - else if (nWID == CHATTR_NUM_OF_LINES_FOR_BAR) - { - *pPropertyValue <<= static_cast<sal_Int32>(mpModel->GetNumLinesColChart()); - bTryAgain = FALSE; - } - else if( nWID == CHATTR_SPLINE_ORDER ) - { - // for some reason the value internally is one more - // ie order 1 is linear but is stores as 2 in the core - *pPropertyValue <<= static_cast< sal_Int32 >( mpModel->SplineDepth() - 1 ); - bTryAgain = FALSE; - } - else if( nWID == CHATTR_SPLINE_RESOLUTION ) - { - *pPropertyValue <<= static_cast< sal_Int32 >( mpModel->Granularity() ); - bTryAgain = FALSE; - } - - // Step 2 - else if (aAttributes.GetItemState (nWID, sal_False) != SFX_ITEM_SET) - { - bTryAgain = FALSE; - if ( ! mpModel->GetItemPool().IsWhich(nWID)) - { - } - else if (nWID < OWN_ATTR_VALUE_START || nWID > OWN_ATTR_VALUE_END) - { - // properties from SvxShape - aAttributes.Put (mpModel->GetItemPool().GetDefaultItem (nWID)); - // Set the flag to try again to read the item. - bTryAgain = TRUE; - } - else - { - if (pScene == NULL) - { - RTL_LOGFILE_CONTEXT_TRACE (context, "getting 3D scene"); - pScene = lcl_GetScene( mpModel ); - } - if (pScene != NULL) - { - if (nWID == OWN_ATTR_3D_VALUE_TRANSFORM_MATRIX) - { - const Matrix4D& aMtx = pScene->GetFullTransform(); - drawing::HomogenMatrix xHomMatrix; - MATRIX4D_TO_HOMOGEN_MATRIX (aMtx, xHomMatrix); - *pPropertyValue <<= xHomMatrix; - } - else if (nWID == OWN_ATTR_3D_VALUE_CAMERA_GEOMETRY) - { - // get CameraGeometry from scene - E3dScene* pE3dScene = mpModel->GetScene(); - - // fill Vectors from scene camera - B3dCamera& aCameraSet = pE3dScene->GetCameraSet(); - Vector3D aVRP = aCameraSet.GetVRP(); - Vector3D aVPN = aCameraSet.GetVPN(); - Vector3D aVUP = aCameraSet.GetVUV(); - - // transfer to structure - drawing::CameraGeometry aCamGeo; - aCamGeo.vrp.PositionX = aVRP.X(); - aCamGeo.vrp.PositionY = aVRP.Y(); - aCamGeo.vrp.PositionZ = aVRP.Z(); - aCamGeo.vpn.DirectionX = aVPN.X(); - aCamGeo.vpn.DirectionY = aVPN.Y(); - aCamGeo.vpn.DirectionZ = aVPN.Z(); - aCamGeo.vup.DirectionX = aVUP.X(); - aCamGeo.vup.DirectionY = aVUP.Y(); - aCamGeo.vup.DirectionZ = aVUP.Z(); - - *pPropertyValue = - Any (&aCamGeo, ::getCppuType((const drawing::CameraGeometry*)0)); - } - else - bTryAgain = TRUE; - } - } - } - - // Step3 - if (bTryAgain) - { - if (aAttributes.GetItemState (nWID, sal_False) == SFX_ITEM_SET) - { - *pPropertyValue = GetAnyByItem (aAttributes, pProperty); - } - else - { - // Construct a message for an exception but wait with throwing - // it until all known properies have been set. - if (sMessage.getLength() == 0) - { - sMessage = OUString (RTL_CONSTASCII_USTRINGPARAM ("Property ")); - sMessage += *pPropertyName; - sMessage += OUString ( - RTL_CONSTASCII_USTRINGPARAM (" is not known in :ChXDiagram::getPropertyValues")); - } -#if OSL_DEBUG_LEVEL > 1 - ByteString sName = ByteString(String(*pPropertyName), RTL_TEXTENCODING_ASCII_US); - OSL_TRACE("Diagram: Property %s has an invalid ID (%d)", - sName.GetBuffer(), nWID); -#endif - } - } - - // Advance to the next property, property name and value. - pPropertyName++; - pPropertyValue++; - } - - // Throw an exception if one of the properties was unknown. - if (sMessage.getLength() > 0) - throw UnknownPropertyException (sMessage, - static_cast< ::cppu::OWeakObject*>(this)); - - return aResult; -} - - -void SAL_CALL ChXDiagram::addPropertiesChangeListener ( - const Sequence<OUString >& /*aPropertyNames*/, - const Reference<beans::XPropertiesChangeListener >& /*xListener*/) - throw (RuntimeException) -{ - // Not implemented. -} - -void SAL_CALL ChXDiagram::removePropertiesChangeListener ( - const Reference<beans::XPropertiesChangeListener>& /*xListener*/) - throw (RuntimeException) -{ - // Not implemented. -} - - -void SAL_CALL ChXDiagram::firePropertiesChangeEvent ( - const Sequence<OUString >& /*aPropertyNames*/, - const Reference<beans::XPropertiesChangeListener >& /*xListener*/) - throw (RuntimeException) -{ - // Not implemented. -} - - - - -//===== XPropertyState ====================================================== - -beans::PropertyState SAL_CALL ChXDiagram::getPropertyState( const ::rtl::OUString& PropertyName ) - throw( beans::UnknownPropertyException, uno::RuntimeException ) -{ - if( mpModel ) - { - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName ); - - if( pMap && pMap->nWID ) - { - switch( pMap->nWID ) - { - case SCHATTR_STYLE_PERCENT: - { - ChartType aType( mpModel ); - return ( aType.IsPercent() - ? beans::PropertyState_DIRECT_VALUE - : beans::PropertyState_DEFAULT_VALUE ); - } - break; - case SCHATTR_STYLE_STACKED: - { - ChartType aType( mpModel ); - return ( ( ! aType.IsPercent() && - aType.IsStacked()) - ? beans::PropertyState_DIRECT_VALUE - : beans::PropertyState_DEFAULT_VALUE ); - } - break; - - case CHATTR_SPLINE_ORDER: - case CHATTR_SPLINE_RESOLUTION: - { - ChartType aType( mpModel ); - return ( ( aType.HasSplines() ) - ? beans::PropertyState_DIRECT_VALUE - : beans::PropertyState_DEFAULT_VALUE ); - } - - case CHATTR_NUM_OF_LINES_FOR_BAR: - case SCHATTR_STYLE_SHAPE: - case SCHATTR_DATADESCR_DESCR: - break; - - default: - { - SolarMutexGuard aGuard; - - SfxItemSet aSet( mpModel->GetItemPool(), pMap->nWID, pMap->nWID ); - ChartType aType( mpModel ); - aType.GetAttrSet( &aSet ); - mpModel->GetAttr( aSet ); - - SfxItemState eState = aSet.GetItemState( pMap->nWID ); - if( eState == SFX_ITEM_DEFAULT ) - return beans::PropertyState_DEFAULT_VALUE; - else if( eState < SFX_ITEM_DEFAULT ) - return beans::PropertyState_AMBIGUOUS_VALUE; - else - return beans::PropertyState_DIRECT_VALUE; - } - } - } - } - - return beans::PropertyState_DIRECT_VALUE; -} - - -void SAL_CALL ChXDiagram::setPropertyToDefault( const ::rtl::OUString& PropertyName ) - throw( beans::UnknownPropertyException, - uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( PropertyName ); - - if( pMap && pMap->nWID && - ( pMap->nWID == CHATTR_NUM_OF_LINES_FOR_BAR || - pMap->nWID == CHATTR_SPLINE_ORDER || - pMap->nWID == CHATTR_SPLINE_RESOLUTION || - pMap->nWID == SCHATTR_STYLE_SHAPE || - pMap->nWID == SCHATTR_DATADESCR_DESCR )) - { - return; - } - - if( mpModel ) - { - SfxItemSet aSet( mpModel->GetItemPool(), pMap->nWID, pMap->nWID ); - ChartType aType( mpModel ); - aType.GetAttrSet( &aSet ); - mpModel->GetAttr( aSet ); - - aSet.ClearItem( pMap->nWID ); - - aType.SetType( &aSet ); - mpModel->PutAttr( aSet ); - - if( mpModel->ChangeChart( aType.GetChartStyle(), false )) - { - mpModel->BuildChart( FALSE ); - } - else if( ! mpModel->ChangeStatistics ( aSet ) ) - { - mpModel->BuildChart( FALSE ); - } - } -} - -uno::Any SAL_CALL ChXDiagram::getPropertyDefault( const ::rtl::OUString& aPropertyName ) - throw( beans::UnknownPropertyException, - lang::WrappedTargetException, - uno::RuntimeException ) -{ - const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry( aPropertyName ); - - if( pMap && pMap->nWID && - ( pMap->nWID == CHATTR_NUM_OF_LINES_FOR_BAR || - pMap->nWID == CHATTR_SPLINE_ORDER || - pMap->nWID == CHATTR_SPLINE_RESOLUTION || - pMap->nWID == SCHATTR_STYLE_SHAPE || - pMap->nWID == SCHATTR_DATADESCR_DESCR )) - { - return getPropertyValue( aPropertyName ); - } - - if( ! mpModel->GetItemPool().IsWhich( pMap->nWID )) - throw beans::UnknownPropertyException(); - - SfxItemSet aSet( mpModel->GetItemPool(), pMap->nWID, pMap->nWID ); - aSet.Put( mpModel->GetItemPool().GetDefaultItem( pMap->nWID )); - - return GetAnyByItem( aSet, pMap ); -} - - - - -//==== XMultiPropertyStates ================================================= - -Sequence<PropertyState> SAL_CALL ChXDiagram::getPropertyStates ( - const Sequence<OUString >& aPropertyName) - throw (beans::UnknownPropertyException, - uno::RuntimeException) -{ - SolarMutexGuard aGuard; - - // New implementation. - - // Setup arrays of property names and states for easier iteration. - sal_Int32 nPropertyCount = aPropertyName.getLength(); - const OUString* pPropertyName = aPropertyName.getConstArray(); - Sequence<PropertyState> aPropertyStates (nPropertyCount); - PropertyState* pPropertyState = aPropertyStates.getArray(); - const SfxItemPropertyMap * pProperty = maPropSet.getPropertyMap (); - - // Check preconditions. - if (mpModel == NULL) - return aPropertyStates; - - // Get the models attributes. - ChartType aType (mpModel); - - // This needs still a bit of work. What is the best set of which id ranges? - SfxItemSet aAttributes (mpModel->GetItemPool(), - CHART_ROW_WHICHPAIRS, - OWN_ATTR_FILLBMP_MODE, OWN_ATTR_FILLBMP_MODE, // 3945 bf_svx/unoshprp.hxx - 30689,30689, // RID_SCH_START + 177 ? - 30720,30720, // RID_SCH_START + 208 ? - SCHATTR_STOCK_VOLUME, SCHATTR_STOCK_UPDOWN, - 0); - aType.GetAttrSet (&aAttributes); - mpModel->GetAttr (aAttributes); - - // Variable used in the loop below. - USHORT nWID; - // Setting this error message to a non empty string results throwing an exception - // after the main loop has finished. - OUString sErrorMessage; - - // Iterate over all given property names. - while (nPropertyCount-- > 0) - { - AdvanceToName (pProperty, pPropertyName); - - switch (nWID = pProperty->nWID) - { - case SCHATTR_STYLE_PERCENT: - if (aType.IsPercent()) - *pPropertyState = PropertyState_DIRECT_VALUE; - else - *pPropertyState = PropertyState_DEFAULT_VALUE; - break; - - case SCHATTR_STYLE_STACKED: - if (aType.IsStacked() && ! aType.IsPercent()) - *pPropertyState = PropertyState_DIRECT_VALUE; - else - *pPropertyState = PropertyState_DEFAULT_VALUE; - break; - - case CHATTR_SPLINE_ORDER: - case CHATTR_SPLINE_RESOLUTION: - if( aType.HasSplines()) - *pPropertyState = PropertyState_DIRECT_VALUE; - else - *pPropertyState = PropertyState_DEFAULT_VALUE; - break; - - case CHATTR_NUM_OF_LINES_FOR_BAR: - case SCHATTR_STYLE_SHAPE: - case SCHATTR_DATADESCR_DESCR: - *pPropertyState = PropertyState_DIRECT_VALUE; - break; - - default: - switch (aAttributes.GetItemState (nWID, sal_False)) - { - case SFX_ITEM_DONTCARE: - case SFX_ITEM_DISABLED: - *pPropertyState = PropertyState_AMBIGUOUS_VALUE; - break; - - case SFX_ITEM_READONLY: - case SFX_ITEM_SET: - *pPropertyState = PropertyState_DIRECT_VALUE; - break; - - case SFX_ITEM_DEFAULT: - *pPropertyState = PropertyState_DEFAULT_VALUE; - break; - - case SFX_ITEM_UNKNOWN: - default: - // Set the error message so that it can be used - // to create an exception object after the loop - // has finished. - // The exception is not thrown here in order - // to first process as many properties as possible. - // All unknown properties following the first one - // are ignored. - OSL_TRACE("nWID %d not in property set", nWID); - if (sErrorMessage.getLength() == 0) - { - sErrorMessage = OUString ( - RTL_CONSTASCII_USTRINGPARAM ("Chart Object: Unknown Property ")); - sErrorMessage += *pPropertyName; - } - } - } - pPropertyName ++; - pPropertyState ++; - } - - // Now throw an exception if there has been an unknown property. - if (sErrorMessage.getLength() > 0) - throw UnknownPropertyException (sErrorMessage, - static_cast< ::cppu::OWeakObject*>(this)); - - return aPropertyStates; -} - - -void SAL_CALL ChXDiagram::setAllPropertiesToDefault (void) - throw (RuntimeException) -{ - OSL_FAIL("ChXChartObject::setAllPropertiesToDefault"); -} - - -void SAL_CALL ChXDiagram::setPropertiesToDefault ( - const Sequence<OUString >& aPropertyNames) - throw (beans::UnknownPropertyException, - RuntimeException) -{ - for (sal_Int32 i=0; i<aPropertyNames.getLength(); i++) - { - setPropertyToDefault (aPropertyNames[i]); - } -} - - -Sequence<Any> SAL_CALL ChXDiagram::getPropertyDefaults ( - const Sequence<OUString>& aPropertyNames) - throw (beans::UnknownPropertyException, - lang::WrappedTargetException, - RuntimeException) -{ - Sequence<Any> aResult (aPropertyNames.getLength()); - - for (sal_Int32 i=0; i<aPropertyNames.getLength(); i++) - { - aResult[i] = getPropertyDefault (aPropertyNames[i]); - } - - return aResult; -} - - - -//===== XServiceInfo ======================================================== -::rtl::OUString SAL_CALL ChXDiagram::getImplementationName() throw( uno::RuntimeException ) -{ - return SCH_ASCII_TO_OU( "ChXDiagram" ); -} - -sal_Bool SAL_CALL ChXDiagram::supportsService( const ::rtl::OUString& ServiceName ) - throw( uno::RuntimeException ) -{ - return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() ); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChXDiagram::getSupportedServiceNames() throw( uno::RuntimeException ) -{ - uno::Sequence< ::rtl::OUString > aSeq; - SvxServiceInfoHelper::addToSequence( - aSeq, 2, - "com.sun.star.chart.Diagram", - "com.sun.star.xml.UserDefinedAttributeSupplier" ); - if( mpModel ) - { - long nType = mpModel->GetBaseType(); - switch( nType ) - { - case CHTYPE_LINE: - SvxServiceInfoHelper::addToSequence( - aSeq, 9, - "com.sun.star.chart.LineDiagram", - "com.sun.star.chart.ChartStatistics", - "com.sun.star.chart.ChartAxisXSupplier", - "com.sun.star.chart.ChartTwoAxisXSupplier", - "com.sun.star.chart.ChartAxisYSupplier", - "com.sun.star.chart.ChartTwoAxisYSupplier", - "com.sun.star.chart.StackableDiagram", - "com.sun.star.chart.Dim3DDiagram", - "com.sun.star.chart.ChartAxisZSupplier" ); - break; - case CHTYPE_AREA: - SvxServiceInfoHelper::addToSequence( - aSeq, 9, - "com.sun.star.chart.AreaDiagram", - "com.sun.star.chart.ChartStatistics", - "com.sun.star.chart.ChartAxisXSupplier", - "com.sun.star.chart.ChartTwoAxisXSupplier", - "com.sun.star.chart.ChartAxisYSupplier", - "com.sun.star.chart.ChartTwoAxisYSupplier", - "com.sun.star.chart.StackableDiagram", - "com.sun.star.chart.Dim3DDiagram", - "com.sun.star.chart.ChartAxisZSupplier" ); - break; - case CHTYPE_DONUT : - SvxServiceInfoHelper::addToSequence( aSeq, 1, "com.sun.star.chart.DonutDiagram" ); - break; - case CHTYPE_COLUMN : // also treated as bar chart - case CHTYPE_BAR : - SvxServiceInfoHelper::addToSequence( - aSeq, 9, - "com.sun.star.chart.BarDiagram", - "com.sun.star.chart.ChartStatistics", - "com.sun.star.chart.ChartAxisXSupplier", - "com.sun.star.chart.ChartTwoAxisXSupplier", - "com.sun.star.chart.ChartAxisYSupplier", - "com.sun.star.chart.ChartTwoAxisYSupplier", - "com.sun.star.chart.StackableDiagram", - "com.sun.star.chart.Dim3DDiagram", - "com.sun.star.chart.ChartAxisZSupplier" ); - break; - case CHTYPE_CIRCLE : - SvxServiceInfoHelper::addToSequence( - aSeq, 2, - "com.sun.star.chart.PieDiagram", - "com.sun.star.chart.Dim3DDiagram"); - break; - case CHTYPE_XY : - SvxServiceInfoHelper::addToSequence( - aSeq, 7, - "com.sun.star.chart.XYDiagram", - "com.sun.star.chart.LineDiagram", - "com.sun.star.chart.ChartStatistics", - "com.sun.star.chart.ChartAxisXSupplier", - "com.sun.star.chart.ChartTwoAxisXSupplier", - "com.sun.star.chart.ChartAxisYSupplier", - "com.sun.star.chart.ChartTwoAxisYSupplier" ); - break; - case CHTYPE_NET : - SvxServiceInfoHelper::addToSequence( - aSeq, 3, - "com.sun.star.chart.NetDiagram", - "com.sun.star.chart.StackableDiagram", - "com.sun.star.chart.ChartAxisYSupplier" ); - break; - case CHTYPE_STOCK : - SvxServiceInfoHelper::addToSequence( - aSeq, 6, - "com.sun.star.chart.StockDiagram", - "com.sun.star.chart.ChartStatistics", - "com.sun.star.chart.ChartAxisXSupplier", - "com.sun.star.chart.ChartTwoAxisXSupplier", - "com.sun.star.chart.ChartAxisYSupplier", - "com.sun.star.chart.ChartTwoAxisYSupplier" ); - break; - } - } - else - { - OSL_FAIL( "No Model" ); - } - - return aSeq; -} - -// XUnoTunnel -sal_Int64 SAL_CALL ChXDiagram::getSomething( const uno::Sequence< sal_Int8 >& aIdentifier ) - throw( uno::RuntimeException ) -{ - if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), - aIdentifier.getConstArray(), 16 ) ) - { - return (sal_Int64)this; - } - return 0; -} - -// XComponent -void SAL_CALL ChXDiagram::dispose() throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - const int nMemberListSize = 19; - const uno::Reference<uno::XInterface> xMemberList[nMemberListSize] = { - mxXAxisTitle, mxYAxisTitle, mxZAxisTitle, - mxXAxis, mxYAxis, mxZAxis, mxSecXAxis, mxSecYAxis, - mxMajorGridX, mxMajorGridY, mxMajorGridZ, - mxMinorGridX, mxMinorGridY, mxMinorGridZ, - mxMinMaxLine, mxUpBar, mxDownBar, - mxWall, mxFloor}; - for (int i=0; i<nMemberListSize; i++) - if (xMemberList[i].is()) - { - uno::Reference<lang::XComponent> xComponent (xMemberList[i], uno::UNO_QUERY); - if (xComponent.is()) - { - xComponent->dispose(); - xComponent->removeEventListener (this); - } - } - - ::com::sun::star::lang::EventObject aEvent (*this); - maListenerList.disposeAndClear (aEvent); -} - -void SAL_CALL ChXDiagram::addEventListener( const uno::Reference< lang::XEventListener >& xListener ) - throw( uno::RuntimeException ) -{ - maListenerList.addInterface (xListener); -} - -void SAL_CALL ChXDiagram::removeEventListener( const uno::Reference< lang::XEventListener >& xListener ) - throw( uno::RuntimeException ) -{ - maListenerList.removeInterface (xListener); -} - - - - -// XEventListener -void SAL_CALL ChXDiagram::disposing (const ::com::sun::star::lang::EventObject & Source) - throw (uno::RuntimeException) -{ - if (Source.Source == mxXAxisTitle) - mxXAxisTitle = NULL; - else if (Source.Source == mxYAxisTitle) - mxYAxisTitle = NULL; - else if (Source.Source == mxZAxisTitle) - mxZAxisTitle = NULL; - else if (Source.Source == mxXAxis) - mxXAxis = NULL; - else if (Source.Source == mxYAxis) - mxYAxis = NULL; - else if (Source.Source == mxZAxis) - mxZAxis = NULL; - else if (Source.Source == mxSecXAxis) - mxSecXAxis = NULL; - else if (Source.Source == mxSecYAxis) - mxSecYAxis = NULL; - else if (Source.Source == mxMajorGridX) - mxMajorGridX = NULL; - else if (Source.Source == mxMajorGridY) - mxMajorGridY = NULL; - else if (Source.Source == mxMajorGridZ) - mxMajorGridZ = NULL; - else if (Source.Source == mxMinorGridX) - mxMinorGridX = NULL; - else if (Source.Source == mxMinorGridY) - mxMinorGridY = NULL; - else if (Source.Source == mxMinorGridZ) - mxMinorGridZ = NULL; - else if (Source.Source == mxMinMaxLine) - mxMinMaxLine = NULL; - else if (Source.Source == mxUpBar) - mxUpBar = NULL; - else if (Source.Source == mxDownBar) - mxDownBar = NULL; - else if (Source.Source == mxWall) - mxWall = NULL; - else if (Source.Source == mxFloor) - mxFloor = NULL; -} - - - -//===== protected methods ======================================================================= - -void ChXDiagram::AdvanceToName (const SfxItemPropertyMap *& pProperty, - const OUString * pPropertyName) - throw (::com::sun::star::beans::UnknownPropertyException) -{ - sal_Int32 nComparisonResult; - - // Advance over the property list to the property with the current name. - while ((nComparisonResult=pPropertyName->compareToAscii (pProperty->pName)) > 0) - { - pProperty++; - if (pProperty->pName == NULL) - { - // We reached the end of the property list. Therefore all remaining given - // property names can not be found. - OUString sMessage = OUString ( - RTL_CONSTASCII_USTRINGPARAM ("ChXChartObject::setPropertyValues: unknown property ")); - sMessage += *pPropertyName; - throw UnknownPropertyException (sMessage, (::cppu::OWeakObject*)this); - } - } - if (nComparisonResult < 0) - { - // All remaining given property names can not match any of the remaining properties - // because they lie alphabetically before them => Error - OUString sMessage = OUString ( - RTL_CONSTASCII_USTRINGPARAM ("ChXChartObject::setPropertyValues: unknown property ")); - sMessage += *pPropertyName; - throw UnknownPropertyException (sMessage, (::cppu::OWeakObject*)this); - } - - // If we reach this line then we have found the property with the name pPropertyName. -} - - -} //namespace binfilter - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChartArea.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChartArea.cxx deleted file mode 100644 index 84cff3e7d..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_ChartArea.cxx +++ /dev/null @@ -1,121 +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. - * - ************************************************************************/ -#include "ChartArea.hxx" - -#include "mapprov.hxx" - -// header for class OGuard -#include <osl/mutex.hxx> -// header for class Application -#include <vcl/svapp.hxx> -#include <rtl/uuid.h> -namespace binfilter { - -using namespace ::com::sun::star; - -ChartArea::ChartArea( ChartModel* pModel, sal_Int32 nObjectId ) : - ChXChartObject( CHMAP_AREA, pModel, nObjectId ) -{ -} - -ChartArea::~ChartArea() -{} - -// XServiceInfo -::rtl::OUString SAL_CALL ChartArea::getImplementationName() - throw( uno::RuntimeException ) -{ - return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ChartArea" )); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChartArea::getSupportedServiceNames() - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - uno::Sequence< ::rtl::OUString > aSeq( 4 ); - aSeq[ 0 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartArea" )); - aSeq[ 1 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.LineProperties" )); - aSeq[ 2 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.FillProperties" )); - aSeq[ 3 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.UserDefinedAttributeSupplier" )); - - return aSeq; -} - -// XTypeProvider -uno::Sequence< sal_Int8 > SAL_CALL ChartArea::getImplementationId() - throw( uno::RuntimeException ) -{ - static uno::Sequence< sal_Int8 > aId; - if( aId.getLength() == 0 ) - { - aId.realloc( 16 ); - rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True ); - } - return aId; -} - -// XShapeDescriptor -::rtl::OUString SAL_CALL ChartArea::getShapeType() - throw( uno::RuntimeException ) -{ - return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartArea" )); -} - -// XUnoTunnel -sal_Int64 SAL_CALL ChartArea::getSomething( const uno::Sequence< sal_Int8 >& aIdentifier ) - throw( uno::RuntimeException ) -{ - if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), - aIdentifier.getConstArray(), 16 ) ) - { - return (sal_Int64)this; - } - return ChXChartObject::getSomething( aIdentifier ); -} - -// helpers for XUnoTunnel -const uno::Sequence< sal_Int8 > & ChartArea::getUnoTunnelId() throw() -{ - static uno::Sequence< sal_Int8 > * pSeq = 0; - if( !pSeq ) - { - osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); - if( !pSeq ) - { - static uno::Sequence< sal_Int8 > aSeq( 16 ); - rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); - pSeq = &aSeq; - } - } - return *pSeq; -} - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChartGrid.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChartGrid.cxx deleted file mode 100644 index 5c2c3a2b5..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_ChartGrid.cxx +++ /dev/null @@ -1,120 +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. - * - ************************************************************************/ -#include "ChartGrid.hxx" - -#include "mapprov.hxx" - -// header for class OGuard -#include <osl/mutex.hxx> -// header for class Application -#include <vcl/svapp.hxx> -#include <rtl/uuid.h> -namespace binfilter { - -using namespace ::com::sun::star; - -ChartGrid::ChartGrid( ChartModel* pModel, sal_Int32 nObjectId ) : - ChXChartObject( CHMAP_LINE, pModel, nObjectId ) -{ -} - -ChartGrid::~ChartGrid() -{} - -// XServiceInfo -::rtl::OUString SAL_CALL ChartGrid::getImplementationName() - throw( uno::RuntimeException ) -{ - return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ChartGrid" )); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChartGrid::getSupportedServiceNames() - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - uno::Sequence< ::rtl::OUString > aSeq( 3 ); - aSeq[ 0 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartGrid" )); - aSeq[ 1 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.LineProperties" )); - aSeq[ 2 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.UserDefinedAttributeSupplier" )); - - return aSeq; -} - -// XTypeProvider -uno::Sequence< sal_Int8 > SAL_CALL ChartGrid::getImplementationId() - throw( uno::RuntimeException ) -{ - static uno::Sequence< sal_Int8 > aId; - if( aId.getLength() == 0 ) - { - aId.realloc( 16 ); - rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True ); - } - return aId; -} - -// XShapeDescriptor -::rtl::OUString SAL_CALL ChartGrid::getShapeType() - throw( uno::RuntimeException ) -{ - return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartGrid" )); -} - -// XUnoTunnel -sal_Int64 SAL_CALL ChartGrid::getSomething( const uno::Sequence< sal_Int8 >& aIdentifier ) - throw( uno::RuntimeException ) -{ - if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), - aIdentifier.getConstArray(), 16 ) ) - { - return (sal_Int64)this; - } - return ChXChartObject::getSomething( aIdentifier ); -} - -// helpers for XUnoTunnel -const uno::Sequence< sal_Int8 > & ChartGrid::getUnoTunnelId() throw() -{ - static uno::Sequence< sal_Int8 > * pSeq = 0; - if( !pSeq ) - { - osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); - if( !pSeq ) - { - static uno::Sequence< sal_Int8 > aSeq( 16 ); - rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); - pSeq = &aSeq; - } - } - return *pSeq; -} - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChartLegend.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChartLegend.cxx deleted file mode 100644 index 3ac62a716..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_ChartLegend.cxx +++ /dev/null @@ -1,122 +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. - * - ************************************************************************/ -#include "ChartLegend.hxx" -#include "mapprov.hxx" -#include "defines.hxx" - -// header for class OGuard -#include <osl/mutex.hxx> -// header for class Application -#include <vcl/svapp.hxx> -#include <rtl/uuid.h> -namespace binfilter { - -using namespace ::com::sun::star; - -ChartLegend::ChartLegend( ChartModel* pModel ) : - ChXChartObject( CHMAP_LEGEND, pModel, CHOBJID_LEGEND ) -{ -} - -ChartLegend::~ChartLegend() -{} - -// XServiceInfo -::rtl::OUString SAL_CALL ChartLegend::getImplementationName() - throw( uno::RuntimeException ) -{ - return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ChartLegend" )); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChartLegend::getSupportedServiceNames() - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - uno::Sequence< ::rtl::OUString > aSeq( 6 ); - aSeq[ 0 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartLegend" )); - aSeq[ 1 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.style.CharacterProperties" )); - aSeq[ 2 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.FillProperties" )); - aSeq[ 3 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.LineProperties" )); - aSeq[ 4 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.Shape" )); - aSeq[ 5 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.UserDefinedAttributeSupplier" )); - - return aSeq; -} - -// XTypeProvider -uno::Sequence< sal_Int8 > SAL_CALL ChartLegend::getImplementationId() - throw( uno::RuntimeException ) -{ - static uno::Sequence< sal_Int8 > aId; - if( aId.getLength() == 0 ) - { - aId.realloc( 16 ); - rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True ); - } - return aId; -} - -// XShapeDescriptor -::rtl::OUString SAL_CALL ChartLegend::getShapeType() - throw( uno::RuntimeException ) -{ - return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartLegend" )); -} - -// XUnoTunnel -sal_Int64 SAL_CALL ChartLegend::getSomething( const uno::Sequence< sal_Int8 >& aIdentifier ) - throw( uno::RuntimeException ) -{ - if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), - aIdentifier.getConstArray(), 16 ) ) - { - return (sal_Int64)this; - } - return ChXChartObject::getSomething( aIdentifier ); -} - -// helpers for XUnoTunnel -const uno::Sequence< sal_Int8 > & ChartLegend::getUnoTunnelId() throw() -{ - static uno::Sequence< sal_Int8 > * pSeq = 0; - if( !pSeq ) - { - osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); - if( !pSeq ) - { - static uno::Sequence< sal_Int8 > aSeq( 16 ); - rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); - pSeq = &aSeq; - } - } - return *pSeq; -} -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChartLine.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChartLine.cxx deleted file mode 100644 index 288728bad..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_ChartLine.cxx +++ /dev/null @@ -1,119 +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. - * - ************************************************************************/ -#include "ChartLine.hxx" - -#include "mapprov.hxx" - -// header for class OGuard -#include <osl/mutex.hxx> -// header for class Application -#include <vcl/svapp.hxx> -#include <rtl/uuid.h> -namespace binfilter { - -using namespace ::com::sun::star; - -ChartLine::ChartLine( ChartModel* pModel, sal_Int32 nObjectId, sal_Int32 nIndex ) : - ChXChartObject( CHMAP_LINE, pModel, nObjectId, nIndex ) -{ -} - -ChartLine::~ChartLine() -{} - -// XServiceInfo -::rtl::OUString SAL_CALL ChartLine::getImplementationName() - throw( uno::RuntimeException ) -{ - return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ChartLine" )); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChartLine::getSupportedServiceNames() - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - uno::Sequence< ::rtl::OUString > aSeq( 3 ); - aSeq[ 0 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartLine" )); - aSeq[ 1 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.LineProperties" )); - aSeq[ 2 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.UserDefinedAttributeSupplier" )); - - return aSeq; -} - -// XTypeProvider -uno::Sequence< sal_Int8 > SAL_CALL ChartLine::getImplementationId() - throw( uno::RuntimeException ) -{ - static uno::Sequence< sal_Int8 > aId; - if( aId.getLength() == 0 ) - { - aId.realloc( 16 ); - rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True ); - } - return aId; -} - -// XShapeDescriptor -::rtl::OUString SAL_CALL ChartLine::getShapeType() - throw( uno::RuntimeException ) -{ - return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartLine" )); -} - -// XUnoTunnel -sal_Int64 SAL_CALL ChartLine::getSomething( const uno::Sequence< sal_Int8 >& aIdentifier ) - throw( uno::RuntimeException ) -{ - if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), - aIdentifier.getConstArray(), 16 ) ) - { - return (sal_Int64)this; - } - return ChXChartObject::getSomething( aIdentifier ); -} - -// helpers for XUnoTunnel -const uno::Sequence< sal_Int8 > & ChartLine::getUnoTunnelId() throw() -{ - static uno::Sequence< sal_Int8 > * pSeq = 0; - if( !pSeq ) - { - osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); - if( !pSeq ) - { - static uno::Sequence< sal_Int8 > aSeq( 16 ); - rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); - pSeq = &aSeq; - } - } - return *pSeq; -} -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_ChartTitle.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_ChartTitle.cxx deleted file mode 100644 index e61cdcaa7..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_ChartTitle.cxx +++ /dev/null @@ -1,184 +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. - * - ************************************************************************/ -#include "ChartTitle.hxx" - -#include "mapprov.hxx" - -// header for class OGuard -// header for class Application -#include <vcl/svapp.hxx> -#include <rtl/uuid.h> - -#include "schattr.hxx" -#ifndef _SVX_CHRTITEM_HXX //autogen -#define ITEMID_CHARTTEXTORIENT SCHATTR_TEXT_ORIENT - -#include <bf_svtools/eitem.hxx> - -#endif -#include "globfunc.hxx" -namespace binfilter { - -using namespace ::com::sun::star; - -ChartTitle::ChartTitle( ChartModel* pModel, sal_Int32 nObjectId ) : - ChXChartObject( CHMAP_TITLE, pModel, nObjectId ) -{ -} - -ChartTitle::~ChartTitle() -{} - -// XServiceInfo -::rtl::OUString SAL_CALL ChartTitle::getImplementationName() - throw( uno::RuntimeException ) -{ - return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ChartTitle" )); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL ChartTitle::getSupportedServiceNames() - throw( uno::RuntimeException ) -{ - SolarMutexGuard aGuard; - - uno::Sequence< ::rtl::OUString > aSeq( 4 ); - aSeq[ 0 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartTitle" )); - aSeq[ 1 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.drawing.Shape" )); - aSeq[ 2 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.style.CharacterProperties" )); - aSeq[ 3 ] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.UserDefinedAttributeSupplier" )); - - return aSeq; -} - -// XTypeProvider -uno::Sequence< sal_Int8 > SAL_CALL ChartTitle::getImplementationId() - throw( uno::RuntimeException ) -{ - static uno::Sequence< sal_Int8 > aId; - if( aId.getLength() == 0 ) - { - aId.realloc( 16 ); - rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True ); - } - return aId; -} - -// XShapeDescriptor -::rtl::OUString SAL_CALL ChartTitle::getShapeType() - throw( uno::RuntimeException ) -{ - return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartTitle" )); -} - -// XUnoTunnel -sal_Int64 SAL_CALL ChartTitle::getSomething( const uno::Sequence< sal_Int8 >& aIdentifier ) - throw( uno::RuntimeException ) -{ - if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), - aIdentifier.getConstArray(), 16 ) ) - { - return (sal_Int64)this; - } - return ChXChartObject::getSomething( aIdentifier ); -} - -// helpers for XUnoTunnel -const uno::Sequence< sal_Int8 > & ChartTitle::getUnoTunnelId() throw() -{ - static uno::Sequence< sal_Int8 > * pSeq = 0; - if( !pSeq ) - { - osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() ); - if( !pSeq ) - { - static uno::Sequence< sal_Int8 > aSeq( 16 ); - rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); - pSeq = &aSeq; - } - } - return *pSeq; -} - -void ChartTitle::GetPropertyValue( const SfxItemPropertyMap & rProperty, - ::com::sun::star::uno::Any & rValue, - SfxItemSet & rAttributes ) -{ - switch( rProperty.nWID ) - { - // Axis title rotation angle. - case SCHATTR_TEXT_DEGREES: - { - // Automatic text orientation is changed into corresponding - // rotation angle. - SvxChartTextOrient eOrientation = - ((const SvxChartTextOrientItem&)rAttributes.Get( - SCHATTR_TEXT_ORIENT)).GetValue(); - if (eOrientation == CHTXTORIENT_AUTOMATIC) - { - switch (mnWhichId) - { - case CHOBJID_DIAGRAM_TITLE_X_AXIS: - if (mpModel->IsXVertikal()) - eOrientation = CHTXTORIENT_BOTTOMTOP; - else - eOrientation = CHTXTORIENT_AUTOMATIC; - break; - - case CHOBJID_DIAGRAM_TITLE_Y_AXIS: - if (mpModel->IsXVertikal()) - eOrientation = CHTXTORIENT_AUTOMATIC; - else - eOrientation = CHTXTORIENT_BOTTOMTOP; - break; - - case CHOBJID_DIAGRAM_TITLE_Z_AXIS: - if (mpModel->IsXVertikal()) - eOrientation = CHTXTORIENT_TOPBOTTOM; - else - eOrientation = CHTXTORIENT_AUTOMATIC; - break; - - default: - eOrientation = CHTXTORIENT_AUTOMATIC; - break; - } - } - // GetTextRotation is in globfunc and returns the value of the - // rotation item (SCHATTR_TEXT_DEGREES) if set, otherwise - // defaults according to the orientation - rValue <<= static_cast< sal_Int32 >( GetTextRotation (rAttributes, eOrientation) ); - } - break; - - default: - ChXChartObject::GetPropertyValue( rProperty, rValue, rAttributes ); - } -} -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_mapprov.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_mapprov.cxx deleted file mode 100644 index 831df8fe4..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_mapprov.cxx +++ /dev/null @@ -1,415 +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. - * - ************************************************************************/ - -#include "mapprov.hxx" -#include "schattr.hxx" - -#include "app.hrc" // for SID_TEXTBREAK -#include <bf_svx/svxids.hrc> // for SID_ATTR_NUMBERFORMAT_SOURCE - -// for SdrObject -// for SdrObjList -// for SdrObjListIter -// header for E3dExtrudeObj -// for SVX_UNOEDIT_CHAR_PROPERTIES, SVX_UNOEDIT_FONT_PROPERTIES -#include <bf_svx/unoshprp.hxx> - -#include <com/sun/star/chart/ChartLegendPosition.hpp> -#include <com/sun/star/chart/ChartErrorIndicatorType.hpp> -#include <com/sun/star/chart/ChartErrorCategory.hpp> -#include <com/sun/star/chart/ChartRegressionCurveType.hpp> -#include <com/sun/star/chart/ChartDataRowSource.hpp> -#include <com/sun/star/chart/ChartAxisArrangeOrderType.hpp> -#include <com/sun/star/chart/ChartSeriesAddress.hpp> - -#include <com/sun/star/drawing/XShapes.hpp> -#include "unonames.hxx" -namespace binfilter { - -using namespace ::com::sun::star; - -// ---------------------------------- -// create one global instance for use -// from all uno implemetations -// ---------------------------------- -SchUnoPropertyMapProvider aSchMapProvider; - - -// ---------------------- -// shared property ranges -// ---------------------- - -#define SCH_DATA_DESCR_PROPERTIES \ - { MAP_CHAR_LEN( UNONAME_DATACAPTION ), SCHATTR_DATADESCR_DESCR, &::getCppuType( (sal_Int32*)0 ), 0, 0 } - -// attention: x and y grids are interchanged -#define SCH_SHOW_HIDE_PROPERTIES \ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_2X_AXIS ), CHATTR_AXISGRID_SHOW_2X_AXIS, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_2X_DESCR ), CHATTR_AXISGRID_SHOW_2X_DESCR, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_2Y_AXIS ), CHATTR_AXISGRID_SHOW_2Y_AXIS, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_2Y_DESCR ), CHATTR_AXISGRID_SHOW_2Y_DESCR, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_X_AXIS ), CHATTR_AXISGRID_SHOW_X_AXIS, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_X_DESCR ), CHATTR_AXISGRID_SHOW_X_DESCR, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_X_HELP ), CHATTR_AXISGRID_SHOW_Y_HELP, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_X_MAIN ), CHATTR_AXISGRID_SHOW_Y_MAIN, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_Y_AXIS ), CHATTR_AXISGRID_SHOW_Y_AXIS, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_Y_DESCR ), CHATTR_AXISGRID_SHOW_Y_DESCR, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_Y_HELP ), CHATTR_AXISGRID_SHOW_X_HELP, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_Y_MAIN ), CHATTR_AXISGRID_SHOW_X_MAIN, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_Z_AXIS ), CHATTR_AXISGRID_SHOW_Z_AXIS, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_Z_DESCR ), CHATTR_AXISGRID_SHOW_Z_DESCR, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_Z_HELP ), CHATTR_AXISGRID_SHOW_Z_HELP, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_AXISGRID_SHOW_Z_MAIN ), CHATTR_AXISGRID_SHOW_Z_MAIN, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_TITLE_SHOW_X_AXIS ), CHATTR_TITLE_SHOW_X_AXIS, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_TITLE_SHOW_Y_AXIS ), CHATTR_TITLE_SHOW_Y_AXIS, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_TITLE_SHOW_Z_AXIS ), CHATTR_TITLE_SHOW_Z_AXIS, &::getBooleanCppuType(), 0, 0 } - -#define SCH_STAT_PROPERTIES \ - { MAP_CHAR_LEN( UNONAME_STAT_AVERAGE ), SCHATTR_STAT_AVERAGE, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STAT_BIGERROR ), SCHATTR_STAT_BIGERROR, &::getCppuType((const double*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STAT_CONSTMINUS ), SCHATTR_STAT_CONSTMINUS, &::getCppuType((const double*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STAT_CONSTPLUS ), SCHATTR_STAT_CONSTPLUS, &::getCppuType((const double*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STAT_INDICATE ), SCHATTR_STAT_INDICATE, &::getCppuType((const chart::ChartErrorIndicatorType*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STAT_KIND_ERROR ), SCHATTR_STAT_KIND_ERROR, &::getCppuType((const chart::ChartErrorCategory*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STAT_PERCENT ), SCHATTR_STAT_PERCENT, &::getCppuType((const double*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STAT_REGRESSTYPE ), SCHATTR_STAT_REGRESSTYPE, &::getCppuType((const chart::ChartRegressionCurveType*)0), 0, 0 } - -#define SCH_SUBTYPE_PROPERTIES \ - { MAP_CHAR_LEN( UNONAME_NUM_OF_LINES_FOR_BAR ), CHATTR_NUM_OF_LINES_FOR_BAR, &::getCppuType((const sal_Int32*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STOCK_UPDOWN ), SCHATTR_STOCK_UPDOWN, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STOCK_VOLUME ), SCHATTR_STOCK_VOLUME, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STYLE_3D ), SCHATTR_STYLE_3D, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STYLE_DEEP ), SCHATTR_STYLE_DEEP, &::getBooleanCppuType() , 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STYLE_LINES ), SCHATTR_STYLE_LINES, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STYLE_PERCENT ), SCHATTR_STYLE_PERCENT, &::getBooleanCppuType() , 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STYLE_SHAPE ), SCHATTR_STYLE_SHAPE, &::getCppuType((const sal_Int32*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STYLE_SPLINES ), SCHATTR_STYLE_SPLINES, &::getCppuType((const sal_Int32*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STYLE_STACKED ), SCHATTR_STYLE_STACKED, &::getBooleanCppuType() , 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STYLE_SYMBOL ), SCHATTR_STYLE_SYMBOL, &::getCppuType((const sal_Int32*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_SYMBOL_BITMAP_URL ), SCHATTR_SYMBOL_BRUSH, &::getCppuType((const ::rtl::OUString*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_SYMBOL_SIZE ), SCHATTR_SYMBOL_SIZE, &::getCppuType((const awt::Size*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STYLE_VERTICAL ), SCHATTR_STYLE_VERTICAL, &::getBooleanCppuType(), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_SPLINE_ORDER ), CHATTR_SPLINE_ORDER, &::getCppuType((const sal_Int32*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_SPLINE_RESOLUTION ), CHATTR_SPLINE_RESOLUTION, &::getCppuType((const sal_Int32*)0), 0, 0 } - - -#define SCH_TEXT2_PROPERTIES \ - { MAP_CHAR_LEN( UNONAME_TEXT_DEGREES ), SCHATTR_TEXT_DEGREES, &::getCppuType((const sal_Int32*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_TEXT_OVERLAP ), SCHATTR_TEXT_OVERLAP, &::getBooleanCppuType(), 0, 0 } - - -#define SCH_GFX_PROPERTIES \ - { MAP_CHAR_LEN( UNONAME_STYLE_SHAPE ), SCHATTR_STYLE_SHAPE, &::getCppuType((const sal_Int32*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_STYLE_SYMBOL ), SCHATTR_STYLE_SYMBOL, &::getCppuType((const sal_Int32*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_SYMBOL_BITMAP_URL ),SCHATTR_SYMBOL_BRUSH, &::getCppuType((const ::rtl::OUString*)0), 0, 0 },\ - { MAP_CHAR_LEN( UNONAME_SYMBOL_SIZE ), SCHATTR_SYMBOL_SIZE, &::getCppuType((const awt::Size*)0), 0, 0 } - -#define SCH_ALIEN_PROPERTIES \ - { MAP_CHAR_LEN( UNONAME_USER_DEF_ATTR ), SCHATTR_USER_DEFINED_ATTR, &::getCppuType((uno::Reference< container::XNameContainer >*)0), 0, 0 } - -#define SCH_MAP_END { 0,0,0,0,0,0 } - -// --------------- -// map definitions -// --------------- - -// see SchUnoPropertyMapProvider::GetMap() - -// ------------------------------------------------------------ -// -// Implementation for SchUnoPropertyMapProvider -// -// ------------------------------------------------------------ - -SchUnoPropertyMapProvider::SchUnoPropertyMapProvider() -{ - for( long i = 0; i < CHMAP_END; i++ ) - pMapArr[i] = 0; -} - -SchUnoPropertyMapProvider::~SchUnoPropertyMapProvider() -{ - for( long i = 0; i < CHMAP_END; i++ ) - if( pMapArr[i] ) - delete pMapArr[i]; -} - -// -------------- copied from SwUnoPropertyMapProvider -------------- -EXTERN_C -#ifdef WNT -int _cdecl -#else -int -#endif -Sch_CompareMap( const void* pSmaller, const void* pBigger ) -{ - int nDiff = strcmp( ((const SfxItemPropertyMap*)pSmaller)->pName, - ((const SfxItemPropertyMap*)pBigger)->pName ); - return nDiff; -} - -void SchUnoPropertyMapProvider::Sort(short nId) -{ - SfxItemPropertyMap* pTemp = pMapArr[ nId ]; - short i = 0; - while( pTemp[i].pName ) - i++; - - qsort( pMapArr[ nId ], i, sizeof(SfxItemPropertyMap), Sch_CompareMap ); -} - -SfxItemPropertyMap* SchUnoPropertyMapProvider::CopyMap( const SfxItemPropertyMap* pMap1 ) -{ - long nCnt = 0; - - while( pMap1[ nCnt ].pName ) - nCnt++; - - nCnt++; - - SfxItemPropertyMap* pNewMap = new SfxItemPropertyMap[ nCnt ]; - memcpy( pNewMap, pMap1, sizeof(SfxItemPropertyMap) * nCnt ); - return pNewMap; -} - -SfxItemPropertyMap* SchUnoPropertyMapProvider::GetMap( short nPropertyId, ChartModel * /*pModel*/ ) -{ - // --------------- - // map definitions - // --------------- - - static SfxItemPropertyMap aEmptyMap[] = { SCH_MAP_END }; - - // ChXChartDocument - static SfxItemPropertyMap aChartDocumentPropertyMap_Impl[] = - { - { MAP_CHAR_LEN( UNONAME_HASLEGEND ), CHATTR_DIAGRAM_START, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_TITLE_SHOW_MAIN ), CHATTR_TITLE_SHOW_MAIN, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_TITLE_SHOW_SUB ), CHATTR_TITLE_SHOW_SUB, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_CATEGORIES_RANGE_ADDRESS ), CHATTR_ADDR_CATEGORIES, &::getCppuType((const ::rtl::OUString*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_SERIES_ADDRESSES ), CHATTR_ADDR_SERIES, &::getCppuType(( uno::Sequence< chart::ChartSeriesAddress >*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_CHART_RANGE_ADDRESS ), CHATTR_ADDR_CHART, &::getCppuType((const ::rtl::OUString*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_TABLE_NUMBER_LIST ), CHATTR_TABLE_NUMBER_LIST, &::getCppuType((const ::rtl::OUString*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_EXPORT_DATA ), CHATTR_EXPORT_TABLE, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_FIRST_COL_LABELS ), CHATTR_FIRST_COL_LABELS,&::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_FIRST_ROW_LABELS ), CHATTR_FIRST_ROW_LABELS,&::getBooleanCppuType(), 0, 0 }, -// { MAP_CHAR_LEN( UNONAME_MAINTITLE_ADDRESS ), CHATTR_ADDR_MAIN_TITLE, &::getCppuType((const ::rtl::OUString*)0), 0, 0 }, -// { MAP_CHAR_LEN( UNONAME_SUBTITLE_ADDRESS ), CHATTR_ADDR_SUB_TITLE, &::getCppuType((const ::rtl::OUString*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_ADDITIONAL_SHAPES ), CHATTR_ADDITIONAL_SHAPES, &::getCppuType((const uno::Reference< drawing::XShapes >*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_HAS_TRANSLATED_COLS ), CHATTR_HAS_TRANSLATED_COLS, &::getBooleanCppuType(), beans::PropertyAttribute::READONLY, 0}, - { MAP_CHAR_LEN( UNONAME_HAS_TRANSLATED_ROWS ), CHATTR_HAS_TRANSLATED_ROWS, &::getBooleanCppuType(), beans::PropertyAttribute::READONLY, 0}, - { MAP_CHAR_LEN( UNONAME_TRANSLATED_COLS ), CHATTR_TRANSLATED_COLS, &::getCppuType(( uno::Sequence< sal_Int32 >*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_TRANSLATED_ROWS ), CHATTR_TRANSLATED_ROWS, &::getCppuType(( uno::Sequence< sal_Int32 >*)0), 0, 0 }, - SCH_ALIEN_PROPERTIES, - SCH_MAP_END - }; - - static SfxItemPropertyMap aChartTitleShapePropertyMap_Impl[] = - { - SVX_UNOEDIT_CHAR_PROPERTIES, - { MAP_CHAR_LEN( UNONAME_TEXT_DEGREES ), SCHATTR_TEXT_DEGREES, &::getCppuType((const sal_Int32*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_TEXT_STRING ), CHATTR_TITLE_MAIN, &::getCppuType((const ::rtl::OUString*)0), 0, 0 }, // CHATTR_TEXT_TITLE_MAIN is just a 'placeholder' to select the uno property 'String' from the which id - { MAP_CHAR_LEN( UNONAME_STACKED_TEXT ), SCHATTR_TEXT_ORIENT, &::getBooleanCppuType(), 0, 0 }, - SCH_ALIEN_PROPERTIES, - FILL_PROPERTIES - LINE_PROPERTIES - LINE_PROPERTIES_START_END - SCH_MAP_END - }; - - static SfxItemPropertyMap aChartLegendPropertyMap_Impl[] = - { - SVX_UNOEDIT_CHAR_PROPERTIES, - { MAP_CHAR_LEN( UNONAME_CHARTLEGENDALIGN ), SCHATTR_LEGEND_POS, &::getCppuType((const chart::ChartLegendPosition*)0), 0, 0 }, - SCH_ALIEN_PROPERTIES, - FILL_PROPERTIES - LINE_PROPERTIES - LINE_PROPERTIES_START_END - SCH_MAP_END - }; - - // ChXDiagram - static SfxItemPropertyMap aChartPropertyMap_Impl[] = - { - SCH_STAT_PROPERTIES, - SCH_SHOW_HIDE_PROPERTIES, - SCH_SUBTYPE_PROPERTIES, - SCH_DATA_DESCR_PROPERTIES, - { MAP_CHAR_LEN( UNONAME_DATAROWSOURCE ), CHATTR_DATA_SWITCH, &::getCppuType((const chart::ChartDataRowSource*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_STACKCONNECTORS ), CHATTR_BARCONNECT, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_ATTRIBUTED_DATA_POINTS ),CHATTR_ATTRIBUTED_DATA_POINTS, &::getCppuType(( uno::Sequence< uno::Sequence< sal_Int32 > >*)0), beans::PropertyAttribute::READONLY, 0}, - SCH_ALIEN_PROPERTIES, - FILL_PROPERTIES - LINE_PROPERTIES - LINE_PROPERTIES_START_END - SPECIAL_3DSCENEOBJECT_PROPERTIES - SCH_MAP_END - }; - - static SfxItemPropertyMap aChartAxisStylePropertyMap_Impl[] = - { - SCH_TEXT2_PROPERTIES, - SVX_UNOEDIT_CHAR_PROPERTIES, - LINE_PROPERTIES - LINE_PROPERTIES_START_END - { MAP_CHAR_LEN( UNONAME_AXIS_AUTO_MAX ), SCHATTR_AXIS_AUTO_MAX, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_AXIS_AUTO_MIN ), SCHATTR_AXIS_AUTO_MIN, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_AXIS_AUTO_ORIGIN ), SCHATTR_AXIS_AUTO_ORIGIN, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_AXIS_AUTO_STEP_HELP ), SCHATTR_AXIS_AUTO_STEP_HELP, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_AXIS_AUTO_STEP_MAIN ), SCHATTR_AXIS_AUTO_STEP_MAIN, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_AXIS_HELPTICKS ), SCHATTR_AXIS_HELPTICKS, &::getCppuType((const sal_Int32*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_AXIS_LOGARITHM ), SCHATTR_AXIS_LOGARITHM, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_AXIS_MAX ), SCHATTR_AXIS_MAX, &::getCppuType((const double*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_AXIS_MIN ), SCHATTR_AXIS_MIN, &::getCppuType((const double*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_AXIS_ORIGIN ), SCHATTR_AXIS_ORIGIN, &::getCppuType((const double*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_AXIS_STEP_HELP ), SCHATTR_AXIS_STEP_HELP, &::getCppuType((const double*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_AXIS_STEP_MAIN ), SCHATTR_AXIS_STEP_MAIN, &::getCppuType((const double*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_AXIS_TICKS ), SCHATTR_AXIS_TICKS, &::getCppuType((const sal_Int32*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_DIAGRAM_GAPWIDTH ), SCHATTR_BAR_GAPWIDTH, &::getCppuType((const sal_Int32*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_DIAGRAM_OVERLAP ), SCHATTR_BAR_OVERLAP, &::getCppuType((const sal_Int32*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_NUMBERFORMAT ), SCHATTR_AXIS_NUMFMT, &::getCppuType((const sal_Int32*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_TEXTBREAK ), SID_TEXTBREAK, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_TEXT_ORDER ), SCHATTR_TEXT_ORDER, &::getCppuType((const chart::ChartAxisArrangeOrderType*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_DISPLAY_LABELS ), SCHATTR_AXIS_SHOWDESCR, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_VISIBLE ), SCHATTR_AXIS_SHOWAXIS, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_LINK_NUMFMT ), SID_ATTR_NUMBERFORMAT_SOURCE, &::getBooleanCppuType(), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_STACKED_TEXT ), SCHATTR_TEXT_ORIENT, &::getBooleanCppuType(), 0, 0 }, - SCH_ALIEN_PROPERTIES, - SCH_MAP_END - }; - - static SfxItemPropertyMap aChartDataRowPropertyMap_Impl[] = - { - SCH_GFX_PROPERTIES, - SCH_DATA_DESCR_PROPERTIES, - SCH_STAT_PROPERTIES, - SVX_UNOEDIT_CHAR_PROPERTIES, - { MAP_CHAR_LEN( UNONAME_AXIS ), SCHATTR_AXIS, &::getCppuType((const sal_Int32*)0), 0, 0 }, - { MAP_CHAR_LEN( UNONAME_REGRESSION_PROPS ), CHATTR_REGRESSION_PROPS, &::getCppuType((const uno::Reference< beans::XPropertySet >*)0), beans::PropertyAttribute::READONLY, 0}, - { MAP_CHAR_LEN( UNONAME_ERROR_PROPS ), CHATTR_ERROR_PROPS, &::getCppuType((const uno::Reference< beans::XPropertySet >*)0), beans::PropertyAttribute::READONLY, 0}, - { MAP_CHAR_LEN( UNONAME_AVERAGE_PROPS ), CHATTR_AVERAGE_PROPS, &::getCppuType((const uno::Reference< beans::XPropertySet >*)0), beans::PropertyAttribute::READONLY, 0}, - SCH_ALIEN_PROPERTIES, - FILL_PROPERTIES - LINE_PROPERTIES - LINE_PROPERTIES_START_END - MISC_3D_OBJ_PROPERTIES - SPECIAL_3DEXTRUDEOBJECT_PROPERTIES - SPECIAL_3DLATHEOBJECT_PROPERTIES - SPECIAL_3DPOLYGONOBJECT_PROPERTIES - SPECIAL_3DBACKSCALE_PROPERTIES - SCH_MAP_END - }; - - static SfxItemPropertyMap aChartDataPointPropertyMap_Impl[] = - { - SCH_GFX_PROPERTIES, - SCH_DATA_DESCR_PROPERTIES, - SVX_UNOEDIT_CHAR_PROPERTIES, - { MAP_CHAR_LEN( UNONAME_PIE_SEGMENT_OFFSET ), CHATTR_PIE_SEGMENT_OFFSET, &::getCppuType((const sal_Int32*)0), 0, 0 }, - SCH_ALIEN_PROPERTIES, - FILL_PROPERTIES - LINE_PROPERTIES - LINE_PROPERTIES_START_END - MISC_3D_OBJ_PROPERTIES - SPECIAL_3DEXTRUDEOBJECT_PROPERTIES - SPECIAL_3DLATHEOBJECT_PROPERTIES - SPECIAL_3DPOLYGONOBJECT_PROPERTIES - SPECIAL_3DBACKSCALE_PROPERTIES - SCH_MAP_END - }; - - static SfxItemPropertyMap aFilledShapePropertyMap_Impl[] = - { - FILL_PROPERTIES - LINE_PROPERTIES - LINE_PROPERTIES_START_END - SCH_ALIEN_PROPERTIES, - SCH_MAP_END - }; - - static SfxItemPropertyMap aLineShapePropertyMap_Impl[] = - { - LINE_PROPERTIES - LINE_PROPERTIES_START_END - SCH_ALIEN_PROPERTIES, - SCH_MAP_END - }; - - // ------------ - // program code - // ------------ - - if( nPropertyId >= CHMAP_END ) - OSL_TRACE( "Invalid Id %d (>=%d)", nPropertyId, CHMAP_END ); - - if( ! pMapArr[ nPropertyId ] ) - { - SfxItemPropertyMap** pNewMap = &(pMapArr[ nPropertyId ]); - switch( nPropertyId ) - { - case CHMAP_CHART: - *pNewMap = CopyMap( aChartPropertyMap_Impl ); - break; - case CHMAP_AREA: - *pNewMap = CopyMap( aFilledShapePropertyMap_Impl ); - break; - case CHMAP_LINE: - *pNewMap = CopyMap( aLineShapePropertyMap_Impl ); - break; - case CHMAP_DOC: - *pNewMap = CopyMap( aChartDocumentPropertyMap_Impl ); - break; - case CHMAP_AXIS: - *pNewMap = CopyMap( aChartAxisStylePropertyMap_Impl ); - break; - case CHMAP_LEGEND: - *pNewMap = CopyMap( aChartLegendPropertyMap_Impl ); - break; - case CHMAP_TITLE: - *pNewMap = CopyMap( aChartTitleShapePropertyMap_Impl ); - break; - case CHMAP_DATAROW: - *pNewMap = CopyMap( aChartDataRowPropertyMap_Impl ); - break; - case CHMAP_DATAPOINT: - *pNewMap = CopyMap( aChartDataPointPropertyMap_Impl ); - break; - case CHMAP_NONE: - default: - *pNewMap = CopyMap( aEmptyMap ); - DBG_WARNING( "Using empty PropertyMap!" ); - break; - } - Sort( nPropertyId ); - } - - return pMapArr[ nPropertyId ]; -} -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_register.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_register.cxx deleted file mode 100644 index 9351bce0c..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_register.cxx +++ /dev/null @@ -1,81 +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. - * - ************************************************************************/ - - -#include <bf_sfx2/sfxuno.hxx> - -#include "schdll.hxx" -namespace binfilter { - -using namespace ::com::sun::star; - -//StarChart document -extern uno::Sequence< ::rtl::OUString > SAL_CALL SchDocument_getSupportedServiceNames() throw(); -extern ::rtl::OUString SAL_CALL SchDocument_getImplementationName() throw(); -extern uno::Reference< uno::XInterface > SAL_CALL SchDocument_createInstance(const uno::Reference< lang::XMultiServiceFactory > & rSMgr) throw( uno::Exception ); - -extern "C" { - -SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* pImplementationName , - void* pServiceManager , - void* /*pRegistryKey*/ ) -{ - void* pReturn = NULL ; - - if ( ( pImplementationName != NULL ) && ( pServiceManager != NULL ) ) - { - uno::Reference< lang::XSingleServiceFactory > xFactory; - uno::Reference< lang::XMultiServiceFactory > xServiceManager( - reinterpret_cast< lang::XMultiServiceFactory* >( pServiceManager ) ); - - if( SchDocument_getImplementationName().equalsAsciiL( - pImplementationName, strlen(pImplementationName)) ) - { - xFactory = ::cppu::createSingleFactory( xServiceManager, - SchDocument_getImplementationName(), - SchDocument_createInstance, - SchDocument_getSupportedServiceNames() ); - } - - - if ( xFactory.is() ) - { - xFactory->acquire(); - pReturn = xFactory.get(); - } - } - - return pReturn ; -} -} // extern "C" - - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/source/ui/unoidl/sch_unodoc.cxx b/binfilter/bf_sch/source/ui/unoidl/sch_unodoc.cxx deleted file mode 100644 index 1a36665b6..000000000 --- a/binfilter/bf_sch/source/ui/unoidl/sch_unodoc.cxx +++ /dev/null @@ -1,83 +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. - * - ************************************************************************/ - -// System - Includes ----------------------------------------------------- - -#include <bf_sfx2/docfac.hxx> - - -#include "schmod.hxx" - -#include <osl/mutex.hxx> -#include <vcl/svapp.hxx> -namespace binfilter { - -using namespace ::com::sun::star; - -::rtl::OUString SAL_CALL SchDocument_getImplementationName() throw() -{ - return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.Chart.ChartDocument" ) ); -} - -uno::Sequence< ::rtl::OUString > SAL_CALL SchDocument_getSupportedServiceNames() throw() -{ - uno::Sequence< ::rtl::OUString > aSeq( 3 ); - aSeq[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartDocument" ) ); - aSeq[1] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart.ChartTableAddressSupplier" ) ); - aSeq[2] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.UserDefinedAttributeSupplier" ) ); - - return aSeq; -} - -uno::Reference< uno::XInterface > SAL_CALL SchDocument_createInstance( - const uno::Reference< lang::XMultiServiceFactory > & /*rSMgr*/ ) throw( uno::Exception ) -{ - SolarMutexGuard aGuard; - - // to create the service the SW_MOD should be already initialized - DBG_ASSERT( SCH_MOD1(), "No StarChart module!" ); - - if ( SCH_MOD1() ) - { - ::rtl::OUString aFactoryURL( RTL_CONSTASCII_USTRINGPARAM ( "private:factory/schart" ) ); - const SfxObjectFactory* pFactory = SfxObjectFactory::GetFactory( aFactoryURL ); - if ( pFactory ) - { - SfxObjectShell* pShell = pFactory->CreateObject(); - if( pShell ) - return uno::Reference< uno::XInterface >( pShell->GetModel() ); - } - } - - return uno::Reference< uno::XInterface >(); -} - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/util/bf_sch.component b/binfilter/bf_sch/util/bf_sch.component deleted file mode 100644 index f86127de4..000000000 --- a/binfilter/bf_sch/util/bf_sch.component +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!--********************************************************************** -* -* 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. -* -**********************************************************************--> - -<component loader="com.sun.star.loader.SharedLibrary" - xmlns="http://openoffice.org/2010/uno-components"> - <implementation name="com.sun.star.comp.Chart.ChartDocument"> - <service name="com.sun.star.chart.ChartDocument"/> - <service name="com.sun.star.chart.ChartTableAddressSupplier"/> - <service name="com.sun.star.xml.UserDefinedAttributeSupplier"/> - </implementation> -</component> diff --git a/binfilter/bf_sch/util/bf_sch.map b/binfilter/bf_sch/util/bf_sch.map deleted file mode 100644 index 9332bde58..000000000 --- a/binfilter/bf_sch/util/bf_sch.map +++ /dev/null @@ -1,29 +0,0 @@ -UDK_3_0_0 { - global: - CreateSchChartDocShellDll; - CreateObjSchChartDocShellDll; - InitSchDll; - DeInitSchDll; - SchUpdate; - SchUpdateAttr; - SchGetChartData; - SchNewMemChartNone; - SchNewMemChartXY; - SchNewMemChartCopy; - SchSetTransparent; - SchGetDefaultForColumnText; - SchGetDefaultForRowText; - SchMemChartInsertCols; - SchMemChartRemoveCols; - SchMemChartInsertRows; - SchMemChartRemoveRows; - SchMemChartSwapCols; - SchMemChartSwapRows; - SchConvertChartRangeForWriter; - SchConvertChartRangeForCalc; - SchMemChartResetTranslation; - SchMemChartUpdateTranslation; - component_getFactory; - local: - *; -}; diff --git a/binfilter/bf_sch/util/makefile.mk b/binfilter/bf_sch/util/makefile.mk deleted file mode 100644 index acdd77ca6..000000000 --- a/binfilter/bf_sch/util/makefile.mk +++ /dev/null @@ -1,111 +0,0 @@ -#************************************************************************* -# -# 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. -# -#************************************************************************* - -PRJ=..$/.. -BFPRJ=.. - -PRJNAME=binfilter -TARGET=schart3 - -NO_HIDS=TRUE - -LIBTARGET=NO - -# --- Settings ----------------------------------------------------------- -.INCLUDE : settings.mk -alllangiso=en-US -INC+= -I$(PRJ)$/inc$/bf_sch -IENV!:=$(IENV);$(RES);..$/res - -# --- Files -------------------------------------------------------- - -RESLIB1LIST=\ - $(SRS)$/sch_app.srs \ - $(SRS)$/sch_core.srs - -RESLIB1NAME=bf_sch -RESLIB1SRSFILES=\ - $(RESLIB1LIST) - -LIB2TARGET= $(SLB)$/sch_schmod.lib -LIB2OBJFILES= $(SLO)$/sch_schmod.obj - -LIB3TARGET= $(SLB)$/bf_sch.lib -LIB3FILES= $(SLB)$/sch_core.lib \ - $(SLB)$/sch_app.lib \ - $(SLB)$/sch_docshell.lib \ - $(SLB)$/sch_chxchart.lib \ - $(SLB)$/sch_xml.lib - - -SHL1TARGET= bf_sch$(DLLPOSTFIX) -SHL1IMPLIB= bf_schi - -SHL1VERSIONMAP= bf_sch.map -SHL1DEF=$(MISC)$/$(SHL1TARGET).def -DEF1NAME=$(SHL1TARGET) - -SHL1STDLIBS=\ - $(BFSVXLIB) \ - $(LEGACYSMGRLIB) \ - $(BFSO3LIB) \ - $(BFGOODIESLIB) \ - $(BFSVTOOLLIB) \ - $(VCLLIB) \ - $(SOTLIB) \ - $(UNOTOOLSLIB) \ - $(TOOLSLIB) \ - $(COMPHELPERLIB) \ - $(CPPUHELPERLIB) \ - $(CPPULIB) \ - $(SALLIB) - - -SHL1BASE= 0x1d100000 -SHL1LIBS= $(LIB3TARGET) - -.IF "$(GUI)"!="UNX" -.IF "$(GUI)$(COM)" != "WNTGCC" -SHL1OBJS= $(SLO)$/sch_schdll.obj -.ENDIF -.ENDIF # ! UNX - -.IF "$(GUI)" == "WNT" || "$(GUI)" == "WIN" -SHL1RES= $(RCTARGET) -.ENDIF # WNT || WIN - -# --- Targets ------------------------------------------------------------- - -.INCLUDE : target.mk - -ALLTAR : $(MISC)/bf_sch.component - -$(MISC)/bf_sch.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ - bf_sch.component - $(XSLTPROC) --nonet --stringparam uri \ - '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ - $(SOLARENV)/bin/createcomponent.xslt bf_sch.component diff --git a/binfilter/bf_sch/util/sch_hidother.src b/binfilter/bf_sch/util/sch_hidother.src deleted file mode 100644 index b86448fec..000000000 --- a/binfilter/bf_sch/util/sch_hidother.src +++ /dev/null @@ -1,66 +0,0 @@ -/************************************************************************* - * - * 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. - * - ************************************************************************/ -#define NO_LOCALIZE_EXPORT -#include "..\source\ui\inc\schhids.h" - -hidspecial HID_SCH_DATA_ROW { HelpId = HID_SCH_DATA_ROW; }; -hidspecial HID_SCH_DATA_LINE { HelpId = HID_SCH_DATA_LINE; }; -hidspecial HID_SCH_DATA_POINT { HelpId = HID_SCH_DATA_POINT; }; -hidspecial HID_SCH_DIAGRAM_X_AXIS { HelpId = HID_SCH_DIAGRAM_X_AXIS; }; -hidspecial HID_SCH_DIAGRAM_Y_AXIS { HelpId = HID_SCH_DIAGRAM_Y_AXIS; }; -hidspecial HID_SCH_ALIGNMENT { HelpId = HID_SCH_ALIGNMENT; }; -hidspecial HID_SCH_LEGEND_POS { HelpId = HID_SCH_LEGEND_POS; }; -hidspecial HID_SCH_DATA_DESCR { HelpId = HID_SCH_DATA_DESCR; }; -hidspecial HID_SCH_SCALE_Y { HelpId = HID_SCH_SCALE_Y; }; -hidspecial HID_SCH_STAT { HelpId = HID_SCH_STAT; }; -hidspecial HID_SCH_WIN_DOCUMENT { HelpId = HID_SCH_WIN_DOCUMENT; }; -hidspecial HID_SCH_VIEWSHELL_DOCUMENT { HelpId = HID_SCH_VIEWSHELL_DOCUMENT; }; -hidspecial HID_SCH_CTL_DATA { HelpId = HID_SCH_CTL_DATA; }; -hidspecial HID_SCH_CT_INDICATE { HelpId = HID_SCH_CT_INDICATE; }; -hidspecial HID_SCH_CT_REGRESS { HelpId = HID_SCH_CT_REGRESS; }; -hidspecial HID_SCH_CT_1_CHARTTYPE { HelpId = HID_SCH_CT_1_CHARTTYPE; }; -hidspecial HID_SCH_CT_2_CHARTVARIANT { HelpId = HID_SCH_CT_2_CHARTVARIANT; }; -hidspecial HID_SCH_CTL_TYPE { HelpId = HID_SCH_CTL_TYPE; }; -hidspecial HID_SCH_CTL_VARIANT { HelpId = HID_SCH_CTL_VARIANT; }; -hidspecial HID_SCH_CT_REGRESS2 { HelpId = HID_SCH_CT_REGRESS2; }; -hidspecial HID_SCH_CT_INDICATE2 { HelpId = HID_SCH_CT_INDICATE2; }; -hidspecial HID_SCH_TBI_EDIT_CANCEL { HelpId = HID_SCH_TBI_EDIT_CANCEL; }; -hidspecial HID_SCH_TBI_EDIT_ACCEPT { HelpId = HID_SCH_TBI_EDIT_ACCEPT; }; -hidspecial HID_SCH_TBI_DATA_TRANSFER { HelpId = HID_SCH_TBI_DATA_TRANSFER; }; -hidspecial HID_SCH_TBI_DATA_INSERT_ROW { HelpId = HID_SCH_TBI_DATA_INSERT_ROW; }; -hidspecial HID_SCH_TBI_DATA_INSERT_COL { HelpId = HID_SCH_TBI_DATA_INSERT_COL; }; -hidspecial HID_SCH_TBI_DATA_DELETE_ROW { HelpId = HID_SCH_TBI_DATA_DELETE_ROW; }; -hidspecial HID_SCH_TBI_DATA_DELETE_COL { HelpId = HID_SCH_TBI_DATA_DELETE_COL; }; -hidspecial HID_SCH_TBI_DATA_SWAP_COL { HelpId = HID_SCH_TBI_DATA_SWAP_COL; }; -hidspecial HID_SCH_TBI_DATA_SWAP_ROW { HelpId = HID_SCH_TBI_DATA_SWAP_ROW; }; -hidspecial HID_SCH_TBI_DATA_SORT_ROW { HelpId = HID_SCH_TBI_DATA_SORT_ROW; }; -hidspecial HID_SCH_TBI_DATA_SORT_COL { HelpId = HID_SCH_TBI_DATA_SORT_COL; }; -hidspecial HID_SCH_TBI_DATA_SORT_TABLE_ROW { HelpId = HID_SCH_TBI_DATA_SORT_TABLE_ROW; }; -hidspecial HID_SCH_TBI_DATA_SORT_TABLE_COL { HelpId = HID_SCH_TBI_DATA_SORT_TABLE_COL; }; -hidspecial HID_SCH_TBX_EDIT_FIELD { HelpId = HID_SCH_TBX_EDIT_FIELD; }; - - diff --git a/binfilter/bf_sch/util/sch_sch.cxx b/binfilter/bf_sch/util/sch_sch.cxx deleted file mode 100644 index b36333c26..000000000 --- a/binfilter/bf_sch/util/sch_sch.cxx +++ /dev/null @@ -1,38 +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. - * - ************************************************************************/ -#include <sv.hxx> -#include <svtool.hxx> -#include <sfx.hxx> -#include <sfxitems.hxx> -#include <sfxdoc.hxx> -#include <sfxdlg.hxx> -namespace binfilter { -#include <svdraw.hxx> -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_sch/util/verinfo.rc b/binfilter/bf_sch/util/verinfo.rc deleted file mode 100644 index ffa861ca9..000000000 --- a/binfilter/bf_sch/util/verinfo.rc +++ /dev/null @@ -1,153 +0,0 @@ -/************************************************************************* -* - * 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. - * -**************************************************************************/ - -#define VERSION 4 -#define SUBVERSION 0 -#define VERVARIANT 0 -// .0 + VER_CONCEPT -// .100 + VER_ALPHA -// .200 + VER_BETA -// .300 + VER_GAMMA -// .500 + VER_FINAL -//#define VER_CONCEPT 0 -//#define VER_BETA 0 -#define VER_FINAL 0 - -#define VER_DAY 22 -#define VER_MONTH 11 -#define VER_YEAR 96 - -// ----------------------------------------------------------------------- - -#if !defined(ENGLISH) -#define LG_D // generate always german version -#endif -#define VER_FIRSTYEAR 93 - -#include <windows.h> -#include "verinfo.hrc" - -#ifdef WIN32 -#define FOR_WIN_X " 95 / Windows NT 3.51 / 4.0" -#else -#define FOR_WIN_X -#endif - -// ----------------------------------------------------------------------- -// language/character set specification table -// ----------------------------------------------------------------------- - -RCD_LANGUAGE rcdata -{ -#ifdef LG_D - "040704B0", // Germany -> Unicode - "040704E4", // Germany -> Windows, Multilingual -#else - "040904B0", // Germany -> Unicode - "040904E4", // USA -> Windows, Multilingual -#endif - "04090000", // USA -> 7-Bit-ASCII - 0 // end of table -} - -// ----------------------------------------------------------------------- -// version information -// ----------------------------------------------------------------------- - -VS_VERSION_INFO versioninfo - fileversion VERSION, SUBVERSION, VERVARIANT, VER_COUNT - productversion VERSION, SUBVERSION, VERVARIANT, VER_COUNT - fileflagsmask 0x3F - fileflags -#if defined(DEBUG) - VS_FF_DEBUG | -#endif -#ifdef VER_PREL - VS_FF_PRERELEASE | -#endif - 0 -#ifndef WIN32 - fileos VOS_DOS_WINDOWS16 -#else - fileos VOS_NT_WINDOWS32 -#endif - filetype VFT_APP - { - block "StringFileInfo" - { -#ifdef LG_D - block "040704E4" - { - // German StringTable - value "CompanyName", "Star Division GmbH\0" - value "ProductName", "StarChart für Windows" FOR_WIN_X "\0" - value "FileDescription", "StarChart " S_VERSION "\0" - value "FileVersion", PPS(VER_LEVEL) "\0" - value "ProductVersion", PPS(VER_LEVEL) "\0" - value "OriginalFilename", "SCH.DLL\0" - value "InternalName", "SCH4\0" - value "LegalCopyright", S_CRIGHT " Star Division GmbH\0" - value "LegalTrademarks", - "International CorrectSpell® und International Electronic Thesaurus © " - "1993-1996 Inso Corporation. Alle Rechte vorbehalten.\0" - } -#else - block "040904E4" - { - // International StringTable - value "CompanyName", "Star Division GmbH\0" - value "ProductName", "StarChart for Windows" FOR_WIN_X "\0" - value "FileDescription", "StarChart " S_VERSION "\0" - value "FileVersion", PPS(VER_LEVEL) "\0" - value "ProductVersion", PPS(VER_LEVEL) "\0" - value "OriginalFilename", "SCH.DLL\0" - value "InternalName", "SCH4\0" - value "LegalCopyright", S_CRIGHT " Star Division GmbH\0" - value "LegalTrademarks", - "International CorrectSpell® and International Electronic Thesaurus © " - "1993-1996 Inso Corporation. All rights reserved.\0" - } -#endif - } - - block "VarFileInfo" - { -#ifdef LG_D - value "Translation", 0x0407, 1252 -#else - value "Translation", 0x0409, 1252 -#endif - } - } - -// version binary entry -VS_VERSION_INFO rcdata -{ - 0xF0, "sch", 0x0F, VER_YEAR, VER_MONTH, VER_DAY, - VERSION, SUBVERSION, VERVARIANT, VER_COUNT -}; - |