diff options
author | Niklas Nebel <nn@openoffice.org> | 2001-03-05 10:31:09 +0000 |
---|---|---|
committer | Niklas Nebel <nn@openoffice.org> | 2001-03-05 10:31:09 +0000 |
commit | 9ae9e70ba8cb5ac6410ccea8bf2742e6e4d3a96c (patch) | |
tree | 7232df19730b6c28f3c1c416805b54437e54f44f | |
parent | e5bf63dc8adc49803611631b397c018b2679dc2e (diff) |
access to drawing layer pool defaults
-rw-r--r-- | sc/inc/drdefuno.hxx | 91 | ||||
-rw-r--r-- | sc/source/ui/unoobj/drdefuno.cxx | 118 | ||||
-rw-r--r-- | sc/source/ui/unoobj/makefile.mk | 6 | ||||
-rw-r--r-- | sc/source/ui/unoobj/servuno.cxx | 9 |
4 files changed, 218 insertions, 6 deletions
diff --git a/sc/inc/drdefuno.hxx b/sc/inc/drdefuno.hxx new file mode 100644 index 000000000000..6d2d0b884bb1 --- /dev/null +++ b/sc/inc/drdefuno.hxx @@ -0,0 +1,91 @@ +/************************************************************************* + * + * $RCSfile: drdefuno.hxx,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: nn $ $Date: 2001-03-05 11:30:27 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef SC_DRDEFUNO_HXX +#define SC_DRDEFUNO_HXX + +#ifndef _SVX_UNOPOOL_HXX_ +#include <svx/unopool.hxx> +#endif + +#ifndef _SFXLSTNER_HXX +#include <svtools/lstner.hxx> +#endif + +class ScDocShell; + +class ScDrawDefaultsObj : public SvxUnoDrawPool, public SfxListener +{ +private: + ScDocShell* pDocShell; + +public: + ScDrawDefaultsObj(ScDocShell* pDocSh); + virtual ~ScDrawDefaultsObj(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // from SvxUnoDrawPool + virtual SfxItemPool* getModelPool( sal_Bool bReadOnly ) throw(); +}; + +#endif + diff --git a/sc/source/ui/unoobj/drdefuno.cxx b/sc/source/ui/unoobj/drdefuno.cxx new file mode 100644 index 000000000000..b3f9a6492e64 --- /dev/null +++ b/sc/source/ui/unoobj/drdefuno.cxx @@ -0,0 +1,118 @@ +/************************************************************************* + * + * $RCSfile: drdefuno.cxx,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: nn $ $Date: 2001-03-05 11:31:09 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifdef PCH +#include "ui_pch.hxx" +#endif + +#pragma hdrstop + +#include "drdefuno.hxx" +#include "docsh.hxx" +#include "drwlayer.hxx" + +using namespace ::com::sun::star; + +//------------------------------------------------------------------------ + +ScDrawDefaultsObj::ScDrawDefaultsObj(ScDocShell* pDocSh) : + SvxUnoDrawPool( NULL ), + pDocShell( pDocSh ) +{ + // SvxUnoDrawPool is initialized without model, + // draw layer is created on demand in getModelPool + + pDocShell->GetDocument()->AddUnoObject(*this); +} + +ScDrawDefaultsObj::~ScDrawDefaultsObj() +{ + if (pDocShell) + pDocShell->GetDocument()->RemoveUnoObject(*this); +} + +void ScDrawDefaultsObj::Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) +{ + if ( rHint.ISA( SfxSimpleHint ) && + ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING ) + { + pDocShell = NULL; // document gone + } +} + +SfxItemPool* ScDrawDefaultsObj::getModelPool( sal_Bool bReadOnly ) throw() +{ + SfxItemPool* pRet = NULL; + if ( pDocShell ) + { + ScDrawLayer* pModel = bReadOnly ? + pDocShell->GetDocument()->GetDrawLayer() : + pDocShell->MakeDrawLayer(); + if ( pModel ) + pRet = &pModel->GetItemPool(); + } + if ( !pRet ) + pRet = SvxUnoDrawPool::getModelPool( bReadOnly ); // uses default pool + + return pRet; +} + + diff --git a/sc/source/ui/unoobj/makefile.mk b/sc/source/ui/unoobj/makefile.mk index 39ad1280ce3c..cd3448098a1a 100644 --- a/sc/source/ui/unoobj/makefile.mk +++ b/sc/source/ui/unoobj/makefile.mk @@ -2,9 +2,9 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.5 $ +# $Revision: 1.6 $ # -# last change: $Author: nn $ $Date: 2001-02-23 13:37:10 $ +# last change: $Author: nn $ $Date: 2001-03-05 11:31:09 $ # # The Contents of this file are made available subject to the terms of # either of the following licenses @@ -86,6 +86,7 @@ CXXFILES = \ docuno.cxx \ servuno.cxx \ defltuno.cxx \ + drdefuno.cxx \ cellsuno.cxx \ textuno.cxx \ notesuno.cxx \ @@ -115,6 +116,7 @@ SLOFILES = \ $(SLO)$/docuno.obj \ $(SLO)$/servuno.obj \ $(SLO)$/defltuno.obj \ + $(SLO)$/drdefuno.obj \ $(SLO)$/cellsuno.obj \ $(SLO)$/textuno.obj \ $(SLO)$/notesuno.obj \ diff --git a/sc/source/ui/unoobj/servuno.cxx b/sc/source/ui/unoobj/servuno.cxx index 93132b87eade..91316d972ce1 100644 --- a/sc/source/ui/unoobj/servuno.cxx +++ b/sc/source/ui/unoobj/servuno.cxx @@ -2,9 +2,9 @@ * * $RCSfile: servuno.cxx,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: nn $ $Date: 2001-02-23 13:37:10 $ + * last change: $Author: nn $ $Date: 2001-03-05 11:31:09 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -78,6 +78,7 @@ #include "styleuno.hxx" #include "afmtuno.hxx" #include "defltuno.hxx" +#include "drdefuno.hxx" #include "docsh.hxx" #include "drwlayer.hxx" @@ -219,9 +220,9 @@ uno::Reference<uno::XInterface> ScServiceProvider::MakeInstance( if (pDocShell) xRet = (beans::XPropertySet*)new ScDocDefaultsObj( pDocShell ); break; - case SC_SERVICE_DRAWDEFLTS: - //! waiting for CL's implementation + if (pDocShell) + xRet = (beans::XPropertySet*)new ScDrawDefaultsObj( pDocShell ); break; // Drawing layer tables are not in SvxUnoDrawMSFactory, |