2010-10-12 15:59:00 +02:00
|
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2000-09-18 16:07:07 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2008-04-10 23:42:20 +00:00
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
2000-09-18 16:07:07 +00:00
|
|
|
*
|
2010-02-12 15:01:35 +01:00
|
|
|
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
2000-09-18 16:07:07 +00:00
|
|
|
*
|
2008-04-10 23:42:20 +00:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2000-09-18 16:07:07 +00:00
|
|
|
*
|
2008-04-10 23:42:20 +00:00
|
|
|
* This file is part of OpenOffice.org.
|
2000-09-18 16:07:07 +00:00
|
|
|
*
|
2008-04-10 23:42:20 +00:00
|
|
|
* 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.
|
2000-09-18 16:07:07 +00:00
|
|
|
*
|
2008-04-10 23:42:20 +00:00
|
|
|
* 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).
|
2000-09-18 16:07:07 +00:00
|
|
|
*
|
2008-04-10 23:42:20 +00:00
|
|
|
* 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.
|
2000-09-18 16:07:07 +00:00
|
|
|
*
|
|
|
|
************************************************************************/
|
|
|
|
|
2006-07-21 13:43:39 +00:00
|
|
|
// MARKER(update_precomp.py): autogen include statement, do not remove
|
|
|
|
#include "precompiled_sc.hxx"
|
2009-10-16 00:05:16 +02:00
|
|
|
#include <svl/smplhint.hxx>
|
2000-09-18 16:07:07 +00:00
|
|
|
|
|
|
|
|
|
|
|
#include "rangelst.hxx"
|
2010-01-08 18:32:51 +01:00
|
|
|
#include <editeng/unotext.hxx>
|
2009-12-10 18:09:38 +01:00
|
|
|
#include <svx/svdpool.hxx>
|
|
|
|
#include <svx/svdobj.hxx>
|
2000-09-18 16:07:07 +00:00
|
|
|
#include "notesuno.hxx"
|
|
|
|
#include "textuno.hxx"
|
|
|
|
#include "cellsuno.hxx" // getParent
|
|
|
|
#include "docsh.hxx"
|
|
|
|
#include "docfunc.hxx"
|
|
|
|
#include "hints.hxx"
|
|
|
|
#include "editsrc.hxx"
|
|
|
|
#include "miscuno.hxx"
|
|
|
|
|
|
|
|
// setVisible:
|
|
|
|
#include <svx/svdundo.hxx>
|
|
|
|
#include "drwlayer.hxx"
|
|
|
|
#include "detfunc.hxx"
|
|
|
|
#include "undocell.hxx"
|
|
|
|
#include "unoguard.hxx"
|
2005-01-13 16:23:32 +00:00
|
|
|
#include "userdat.hxx"
|
2010-01-08 18:32:51 +01:00
|
|
|
#include <editeng/outlobj.hxx>
|
2005-01-13 16:23:32 +00:00
|
|
|
#include <svx/unoshape.hxx>
|
2009-03-02 14:19:13 +00:00
|
|
|
#include <svx/svdocapt.hxx>
|
2005-01-13 16:23:32 +00:00
|
|
|
#include <svx/svditer.hxx>
|
2009-03-02 14:19:13 +00:00
|
|
|
#include <svx/svdpage.hxx>
|
2005-01-13 16:23:32 +00:00
|
|
|
#include <com/sun/star/drawing/XShapeDescriptor.hpp>
|
2000-09-18 16:07:07 +00:00
|
|
|
|
|
|
|
using namespace com::sun::star;
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------
|
|
|
|
|
|
|
|
// keine Properties fuer Text in Notizen
|
2009-06-03 11:26:39 +00:00
|
|
|
const SvxItemPropertySet* lcl_GetAnnotationPropertySet()
|
2000-09-18 16:07:07 +00:00
|
|
|
{
|
2009-06-03 11:26:39 +00:00
|
|
|
static SfxItemPropertyMapEntry aAnnotationPropertyMap_Impl[] =
|
2000-09-18 16:07:07 +00:00
|
|
|
{
|
2007-02-27 12:46:29 +00:00
|
|
|
{0,0,0,0,0,0}
|
2000-09-18 16:07:07 +00:00
|
|
|
};
|
2009-12-10 18:09:38 +01:00
|
|
|
static SvxItemPropertySet aAnnotationPropertySet_Impl( aAnnotationPropertyMap_Impl, SdrObject::GetGlobalDrawObjectItemPool() );
|
2009-06-03 11:26:39 +00:00
|
|
|
return &aAnnotationPropertySet_Impl;
|
2000-09-18 16:07:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------
|
|
|
|
|
|
|
|
SC_SIMPLE_SERVICE_INFO( ScAnnotationObj, "ScAnnotationObj", "com.sun.star.sheet.CellAnnotation" )
|
2005-01-13 16:23:32 +00:00
|
|
|
SC_SIMPLE_SERVICE_INFO( ScAnnotationShapeObj, "ScAnnotationShapeObj", "com.sun.star.sheet.CellAnnotationShape" )
|
2000-09-18 16:07:07 +00:00
|
|
|
|
|
|
|
//------------------------------------------------------------------------
|
|
|
|
|
|
|
|
ScAnnotationObj::ScAnnotationObj(ScDocShell* pDocSh, const ScAddress& rPos) :
|
|
|
|
pDocShell( pDocSh ),
|
|
|
|
aCellPos( rPos ),
|
|
|
|
pUnoText( NULL )
|
|
|
|
{
|
|
|
|
pDocShell->GetDocument()->AddUnoObject(*this);
|
|
|
|
|
|
|
|
// pUnoText is allocated on demand (GetUnoText)
|
|
|
|
// can't be aggregated because getString/setString is handled here
|
|
|
|
}
|
|
|
|
|
|
|
|
ScAnnotationObj::~ScAnnotationObj()
|
|
|
|
{
|
|
|
|
if (pDocShell)
|
|
|
|
pDocShell->GetDocument()->RemoveUnoObject(*this);
|
|
|
|
|
|
|
|
if (pUnoText)
|
|
|
|
pUnoText->release();
|
|
|
|
}
|
|
|
|
|
2007-02-27 12:46:29 +00:00
|
|
|
void ScAnnotationObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
|
2000-09-18 16:07:07 +00:00
|
|
|
{
|
|
|
|
if ( rHint.ISA( ScUpdateRefHint ) )
|
|
|
|
{
|
2007-02-27 12:46:29 +00:00
|
|
|
// const ScUpdateRefHint& rRef = (const ScUpdateRefHint&)rHint;
|
2000-09-18 16:07:07 +00:00
|
|
|
|
|
|
|
//! Ref-Update
|
|
|
|
}
|
|
|
|
else if ( rHint.ISA( SfxSimpleHint ) &&
|
|
|
|
((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
|
|
|
|
{
|
|
|
|
pDocShell = NULL; // ungueltig geworden
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// XChild
|
|
|
|
|
|
|
|
uno::Reference<uno::XInterface> SAL_CALL ScAnnotationObj::getParent() throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
|
|
|
|
// Parent der Notiz ist die zugehoerige Zelle
|
|
|
|
//! existierendes Objekt finden und zurueckgeben ???
|
|
|
|
|
|
|
|
if (pDocShell)
|
|
|
|
return (cppu::OWeakObject*)new ScCellObj( pDocShell, aCellPos );
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2007-02-27 12:46:29 +00:00
|
|
|
void SAL_CALL ScAnnotationObj::setParent( const uno::Reference<uno::XInterface>& /* Parent */ )
|
2000-09-18 16:07:07 +00:00
|
|
|
throw(lang::NoSupportException, uno::RuntimeException)
|
|
|
|
{
|
|
|
|
// hamma nich
|
|
|
|
//! Exception oder so ??!
|
|
|
|
}
|
|
|
|
|
|
|
|
// XSimpleText
|
|
|
|
|
|
|
|
uno::Reference<text::XTextCursor> SAL_CALL ScAnnotationObj::createTextCursor()
|
|
|
|
throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
// Notizen brauchen keine Extrawurst
|
|
|
|
return GetUnoText().createTextCursor();
|
|
|
|
}
|
|
|
|
|
|
|
|
uno::Reference<text::XTextCursor> SAL_CALL ScAnnotationObj::createTextCursorByRange(
|
|
|
|
const uno::Reference<text::XTextRange>& aTextPosition )
|
|
|
|
throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
// Notizen brauchen keine Extrawurst
|
|
|
|
return GetUnoText().createTextCursorByRange(aTextPosition);
|
|
|
|
}
|
|
|
|
|
|
|
|
rtl::OUString SAL_CALL ScAnnotationObj::getString() throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
2005-01-13 16:23:32 +00:00
|
|
|
return GetUnoText().getString();
|
2000-09-18 16:07:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationObj::setString( const rtl::OUString& aText ) throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
2005-01-13 16:23:32 +00:00
|
|
|
GetUnoText().setString(aText);
|
2000-09-18 16:07:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationObj::insertString( const uno::Reference<text::XTextRange>& xRange,
|
|
|
|
const rtl::OUString& aString, sal_Bool bAbsorb )
|
|
|
|
throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
GetUnoText().insertString( xRange, aString, bAbsorb );
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationObj::insertControlCharacter( const uno::Reference<text::XTextRange>& xRange,
|
|
|
|
sal_Int16 nControlCharacter, sal_Bool bAbsorb )
|
|
|
|
throw(lang::IllegalArgumentException, uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
GetUnoText().insertControlCharacter( xRange, nControlCharacter, bAbsorb );
|
|
|
|
}
|
|
|
|
|
|
|
|
uno::Reference<text::XText> SAL_CALL ScAnnotationObj::getText() throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
return GetUnoText().getText();
|
|
|
|
}
|
|
|
|
|
|
|
|
uno::Reference<text::XTextRange> SAL_CALL ScAnnotationObj::getStart() throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
return GetUnoText().getStart();
|
|
|
|
}
|
|
|
|
|
|
|
|
uno::Reference<text::XTextRange> SAL_CALL ScAnnotationObj::getEnd() throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
return GetUnoText().getEnd();
|
|
|
|
}
|
|
|
|
|
|
|
|
// XSheetAnnotation
|
|
|
|
|
|
|
|
table::CellAddress SAL_CALL ScAnnotationObj::getPosition() throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
table::CellAddress aAdr;
|
|
|
|
aAdr.Sheet = aCellPos.Tab();
|
|
|
|
aAdr.Column = aCellPos.Col();
|
|
|
|
aAdr.Row = aCellPos.Row();
|
|
|
|
return aAdr;
|
|
|
|
}
|
|
|
|
|
|
|
|
rtl::OUString SAL_CALL ScAnnotationObj::getAuthor() throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
2009-03-02 14:19:13 +00:00
|
|
|
const ScPostIt* pNote = ImplGetNote();
|
2009-07-03 12:42:53 +00:00
|
|
|
return pNote ? pNote->GetAuthor() : rtl::OUString();
|
2000-09-18 16:07:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
rtl::OUString SAL_CALL ScAnnotationObj::getDate() throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
2009-03-02 14:19:13 +00:00
|
|
|
const ScPostIt* pNote = ImplGetNote();
|
2009-07-03 12:42:53 +00:00
|
|
|
return pNote ? pNote->GetDate() : rtl::OUString();
|
2000-09-18 16:07:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
sal_Bool SAL_CALL ScAnnotationObj::getIsVisible() throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
2009-03-02 14:19:13 +00:00
|
|
|
const ScPostIt* pNote = ImplGetNote();
|
|
|
|
return pNote && pNote->IsCaptionShown();
|
2000-09-18 16:07:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationObj::setIsVisible( sal_Bool bIsVisible ) throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
2009-03-02 14:19:13 +00:00
|
|
|
// show/hide note with undo action
|
|
|
|
if( pDocShell )
|
|
|
|
pDocShell->GetDocFunc().ShowNote( aCellPos, bIsVisible );
|
2000-09-18 16:07:07 +00:00
|
|
|
}
|
|
|
|
|
2005-01-13 16:23:32 +00:00
|
|
|
// XSheetAnnotationShapeSupplier
|
|
|
|
uno::Reference < drawing::XShape > SAL_CALL ScAnnotationObj::getAnnotationShape()
|
|
|
|
throw(::com::sun::star::uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
return new ScAnnotationShapeObj(pDocShell, aCellPos);
|
|
|
|
}
|
|
|
|
|
2009-03-02 14:19:13 +00:00
|
|
|
SvxUnoText& ScAnnotationObj::GetUnoText()
|
|
|
|
{
|
|
|
|
if (!pUnoText)
|
|
|
|
{
|
|
|
|
ScAnnotationEditSource aEditSource( pDocShell, aCellPos );
|
2009-06-03 11:26:39 +00:00
|
|
|
pUnoText = new SvxUnoText( &aEditSource, lcl_GetAnnotationPropertySet(),
|
2009-03-02 14:19:13 +00:00
|
|
|
uno::Reference<text::XText>() );
|
|
|
|
pUnoText->acquire();
|
|
|
|
}
|
|
|
|
return *pUnoText;
|
|
|
|
}
|
|
|
|
|
|
|
|
const ScPostIt* ScAnnotationObj::ImplGetNote() const
|
|
|
|
{
|
|
|
|
return pDocShell ? pDocShell->GetDocument()->GetNote( aCellPos ) : 0;
|
|
|
|
}
|
2005-01-13 16:23:32 +00:00
|
|
|
//------------------------------------------------------------------------
|
|
|
|
|
|
|
|
ScAnnotationShapeObj::ScAnnotationShapeObj(ScDocShell* pDocSh, const ScAddress& rPos) :
|
|
|
|
pDocShell( pDocSh ),
|
|
|
|
aCellPos( rPos ),
|
|
|
|
pUnoText( NULL )
|
|
|
|
{
|
|
|
|
pDocShell->GetDocument()->AddUnoObject(*this);
|
|
|
|
|
|
|
|
// pUnoText is allocated on demand (GetUnoText)
|
|
|
|
// can't be aggregated because getString/setString is handled here
|
|
|
|
}
|
|
|
|
|
|
|
|
SvxUnoText& ScAnnotationShapeObj::GetUnoText()
|
|
|
|
{
|
|
|
|
if (!pUnoText)
|
|
|
|
{
|
|
|
|
ScAnnotationEditSource aEditSource( pDocShell, aCellPos );
|
2009-06-03 11:26:39 +00:00
|
|
|
pUnoText = new SvxUnoText( &aEditSource, lcl_GetAnnotationPropertySet(),
|
2005-01-13 16:23:32 +00:00
|
|
|
uno::Reference<text::XText>() );
|
|
|
|
pUnoText->acquire();
|
|
|
|
}
|
|
|
|
return *pUnoText;
|
|
|
|
}
|
|
|
|
|
|
|
|
uno::Reference < drawing::XShape > ScAnnotationShapeObj::GetXShape()
|
|
|
|
{
|
|
|
|
if (!xShape.is())
|
2009-03-02 14:19:13 +00:00
|
|
|
if( ScPostIt* pNote = pDocShell->GetDocument()->GetNote( aCellPos ) )
|
2009-07-03 12:42:53 +00:00
|
|
|
if( SdrObject* pCaption = pNote->GetOrCreateCaption( aCellPos ) )
|
2009-03-02 14:19:13 +00:00
|
|
|
xShape.set( pCaption->getUnoShape(), uno::UNO_QUERY );
|
2005-01-13 16:23:32 +00:00
|
|
|
return xShape;
|
|
|
|
}
|
|
|
|
|
|
|
|
ScAnnotationShapeObj::~ScAnnotationShapeObj()
|
|
|
|
{
|
|
|
|
if (pDocShell)
|
|
|
|
pDocShell->GetDocument()->RemoveUnoObject(*this);
|
|
|
|
if (pUnoText)
|
|
|
|
pUnoText->release();
|
|
|
|
}
|
|
|
|
|
2007-02-27 12:46:29 +00:00
|
|
|
void ScAnnotationShapeObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
|
2005-01-13 16:23:32 +00:00
|
|
|
{
|
|
|
|
if ( rHint.ISA( ScUpdateRefHint ) )
|
|
|
|
{
|
2007-02-27 12:46:29 +00:00
|
|
|
// const ScUpdateRefHint& rRef = (const ScUpdateRefHint&)rHint;
|
2005-01-13 16:23:32 +00:00
|
|
|
|
|
|
|
//! Ref-Update
|
|
|
|
}
|
|
|
|
else if ( rHint.ISA( SfxSimpleHint ) &&
|
|
|
|
((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
|
|
|
|
{
|
|
|
|
pDocShell = NULL; // ungueltig geworden
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// XChild
|
|
|
|
|
|
|
|
uno::Reference<uno::XInterface> SAL_CALL ScAnnotationShapeObj::getParent() throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
|
|
|
|
// Parent der Notiz ist die zugehoerige Zelle
|
|
|
|
//! existierendes Objekt finden und zurueckgeben ???
|
|
|
|
|
|
|
|
if (pDocShell)
|
|
|
|
return (cppu::OWeakObject*)new ScCellObj( pDocShell, aCellPos );
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2007-02-27 12:46:29 +00:00
|
|
|
void SAL_CALL ScAnnotationShapeObj::setParent( const uno::Reference<uno::XInterface>& /* Parent */ )
|
2005-01-13 16:23:32 +00:00
|
|
|
throw(lang::NoSupportException, uno::RuntimeException)
|
|
|
|
{
|
|
|
|
// hamma nich
|
|
|
|
//! Exception oder so ??!
|
|
|
|
}
|
|
|
|
|
|
|
|
// XElementAccess
|
|
|
|
uno::Type SAL_CALL ScAnnotationShapeObj::getElementType( ) throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
|
|
|
|
return GetUnoText().getElementType();
|
|
|
|
}
|
|
|
|
|
|
|
|
sal_Bool SAL_CALL ScAnnotationShapeObj::hasElements( ) throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
|
|
|
|
return GetUnoText().hasElements();
|
|
|
|
}
|
|
|
|
|
|
|
|
// XEnumerationAccess
|
|
|
|
uno::Reference< container::XEnumeration > SAL_CALL ScAnnotationShapeObj::createEnumeration( ) throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
|
|
|
|
return GetUnoText().createEnumeration();
|
|
|
|
}
|
|
|
|
|
|
|
|
// XTextRangeMover
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::moveTextRange( const uno::Reference< text::XTextRange >& xRange, sal_Int16 nParagraphs )
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
|
|
|
|
GetUnoText().moveTextRange( xRange, nParagraphs );
|
|
|
|
}
|
|
|
|
|
|
|
|
// XText
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::insertTextContent( const uno::Reference< text::XTextRange >& xRange,
|
|
|
|
const uno::Reference< text::XTextContent >& xContent, sal_Bool bAbsorb )
|
|
|
|
throw (lang::IllegalArgumentException,
|
|
|
|
uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
|
|
|
|
GetUnoText().insertTextContent( xRange, xContent, bAbsorb );
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::removeTextContent( const uno::Reference< text::XTextContent >& xContent )
|
|
|
|
throw (container::NoSuchElementException,
|
|
|
|
uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
|
|
|
|
GetUnoText().removeTextContent( xContent );
|
|
|
|
}
|
|
|
|
|
|
|
|
// XSimpleText
|
|
|
|
|
|
|
|
uno::Reference<text::XTextCursor> SAL_CALL ScAnnotationShapeObj::createTextCursor()
|
|
|
|
throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
// Notizen brauchen keine Extrawurst
|
|
|
|
return GetUnoText().createTextCursor();
|
|
|
|
}
|
|
|
|
|
|
|
|
uno::Reference<text::XTextCursor> SAL_CALL ScAnnotationShapeObj::createTextCursorByRange(
|
|
|
|
const uno::Reference<text::XTextRange>& aTextPosition )
|
|
|
|
throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
// Notizen brauchen keine Extrawurst
|
|
|
|
return GetUnoText().createTextCursorByRange(aTextPosition);
|
|
|
|
}
|
|
|
|
|
|
|
|
rtl::OUString SAL_CALL ScAnnotationShapeObj::getString() throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
return GetUnoText().getString();
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::setString( const rtl::OUString& aText ) throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
GetUnoText().setString(aText);
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::insertString( const uno::Reference<text::XTextRange>& xRange,
|
|
|
|
const rtl::OUString& aString, sal_Bool bAbsorb )
|
|
|
|
throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
GetUnoText().insertString( xRange, aString, bAbsorb );
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::insertControlCharacter( const uno::Reference<text::XTextRange>& xRange,
|
|
|
|
sal_Int16 nControlCharacter, sal_Bool bAbsorb )
|
|
|
|
throw(lang::IllegalArgumentException, uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
GetUnoText().insertControlCharacter( xRange, nControlCharacter, bAbsorb );
|
|
|
|
}
|
|
|
|
|
|
|
|
uno::Reference<text::XText> SAL_CALL ScAnnotationShapeObj::getText() throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
return GetUnoText().getText();
|
|
|
|
}
|
|
|
|
|
|
|
|
uno::Reference<text::XTextRange> SAL_CALL ScAnnotationShapeObj::getStart() throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
return GetUnoText().getStart();
|
|
|
|
}
|
|
|
|
|
|
|
|
uno::Reference<text::XTextRange> SAL_CALL ScAnnotationShapeObj::getEnd() throw(uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
return GetUnoText().getEnd();
|
|
|
|
}
|
|
|
|
|
|
|
|
// XShapeDescriptor
|
|
|
|
::rtl::OUString SAL_CALL ScAnnotationShapeObj::getShapeType( )
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < drawing::XShapeDescriptor > xDesc(GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xDesc.is())
|
|
|
|
return xDesc->getShapeType();
|
|
|
|
return rtl::OUString();
|
|
|
|
}
|
|
|
|
|
|
|
|
// XShape
|
|
|
|
awt::Point SAL_CALL ScAnnotationShapeObj::getPosition( )
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
2009-03-02 14:19:13 +00:00
|
|
|
GetXShape();
|
|
|
|
return xShape.is() ? xShape->getPosition() : awt::Point();
|
2005-01-13 16:23:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::setPosition( const awt::Point& aPosition )
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
2009-03-02 14:19:13 +00:00
|
|
|
GetXShape();
|
|
|
|
if( xShape.is() )
|
|
|
|
xShape->setPosition(aPosition);
|
2005-01-13 16:23:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
awt::Size SAL_CALL ScAnnotationShapeObj::getSize( )
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
2009-03-02 14:19:13 +00:00
|
|
|
GetXShape();
|
|
|
|
return xShape.is() ? xShape->getSize() : awt::Size();
|
2005-01-13 16:23:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::setSize( const awt::Size& aSize )
|
|
|
|
throw (beans::PropertyVetoException, uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
2009-03-02 14:19:13 +00:00
|
|
|
GetXShape();
|
|
|
|
if( xShape.is() )
|
|
|
|
xShape->setSize(aSize);
|
2005-01-13 16:23:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// XPropertyState
|
|
|
|
beans::PropertyState SAL_CALL ScAnnotationShapeObj::getPropertyState( const rtl::OUString& PropertyName )
|
|
|
|
throw (beans::UnknownPropertyException,
|
|
|
|
uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XPropertyState > xState (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xState.is())
|
|
|
|
return xState->getPropertyState( PropertyName );
|
|
|
|
return beans::PropertyState();
|
|
|
|
}
|
|
|
|
|
|
|
|
uno::Sequence< beans::PropertyState > SAL_CALL ScAnnotationShapeObj::getPropertyStates(
|
|
|
|
const uno::Sequence< rtl::OUString >& aPropertyName )
|
|
|
|
throw (beans::UnknownPropertyException,
|
|
|
|
uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XPropertyState > xState (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xState.is())
|
|
|
|
return xState->getPropertyStates( aPropertyName );
|
|
|
|
return uno::Sequence< beans::PropertyState >();
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::setPropertyToDefault( const ::rtl::OUString& PropertyName )
|
|
|
|
throw (::com::sun::star::beans::UnknownPropertyException,
|
|
|
|
::com::sun::star::uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XPropertyState > xState (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xState.is())
|
|
|
|
xState->setPropertyToDefault( PropertyName );
|
|
|
|
}
|
|
|
|
|
|
|
|
uno::Any SAL_CALL ScAnnotationShapeObj::getPropertyDefault( const rtl::OUString& aPropertyName )
|
|
|
|
throw (beans::UnknownPropertyException,
|
|
|
|
lang::WrappedTargetException, uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XPropertyState > xState (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xState.is())
|
|
|
|
return xState->getPropertyDefault( aPropertyName );
|
|
|
|
return uno::Any();
|
|
|
|
}
|
|
|
|
|
|
|
|
// XPropertySet
|
|
|
|
uno::Reference< beans::XPropertySetInfo > SAL_CALL ScAnnotationShapeObj::getPropertySetInfo( )
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XPropertySet > xProp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xProp.is())
|
|
|
|
return xProp->getPropertySetInfo();
|
|
|
|
return uno::Reference< beans::XPropertySetInfo >();
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::setPropertyValue( const rtl::OUString& aPropertyName, const uno::Any& aValue )
|
|
|
|
throw (beans::UnknownPropertyException,
|
|
|
|
beans::PropertyVetoException,
|
|
|
|
lang::IllegalArgumentException,
|
|
|
|
lang::WrappedTargetException,
|
|
|
|
uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XPropertySet > xProp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xProp.is())
|
|
|
|
xProp->setPropertyValue( aPropertyName, aValue );
|
|
|
|
}
|
|
|
|
|
|
|
|
uno::Any SAL_CALL ScAnnotationShapeObj::getPropertyValue( const rtl::OUString& PropertyName )
|
|
|
|
throw (beans::UnknownPropertyException,
|
|
|
|
lang::WrappedTargetException,
|
|
|
|
uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XPropertySet > xProp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xProp.is())
|
|
|
|
return xProp->getPropertyValue( PropertyName );
|
|
|
|
return uno::Any();
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::addPropertyChangeListener( const rtl::OUString& aPropertyName,
|
|
|
|
const uno::Reference< beans::XPropertyChangeListener >& xListener )
|
|
|
|
throw (beans::UnknownPropertyException,
|
|
|
|
lang::WrappedTargetException,
|
|
|
|
uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XPropertySet > xProp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xProp.is())
|
|
|
|
return xProp->addPropertyChangeListener( aPropertyName, xListener );
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::removePropertyChangeListener( const rtl::OUString& aPropertyName,
|
|
|
|
const uno::Reference< beans::XPropertyChangeListener >& aListener )
|
|
|
|
throw (beans::UnknownPropertyException,
|
|
|
|
lang::WrappedTargetException,
|
|
|
|
uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XPropertySet > xProp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xProp.is())
|
|
|
|
return xProp->removePropertyChangeListener( aPropertyName, aListener );
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::addVetoableChangeListener( const rtl::OUString& PropertyName,
|
|
|
|
const uno::Reference< beans::XVetoableChangeListener >& aListener )
|
|
|
|
throw (beans::UnknownPropertyException,
|
|
|
|
lang::WrappedTargetException,
|
|
|
|
uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XPropertySet > xProp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xProp.is())
|
|
|
|
return xProp->addVetoableChangeListener( PropertyName, aListener );
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::removeVetoableChangeListener( const rtl::OUString& PropertyName,
|
|
|
|
const uno::Reference< beans::XVetoableChangeListener >& aListener )
|
|
|
|
throw (beans::UnknownPropertyException,
|
|
|
|
lang::WrappedTargetException,
|
|
|
|
uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XPropertySet > xProp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xProp.is())
|
|
|
|
return xProp->removeVetoableChangeListener( PropertyName, aListener );
|
|
|
|
}
|
|
|
|
|
|
|
|
// XMultiPropertySet
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::setPropertyValues( const uno::Sequence< rtl::OUString >& aPropertyNames,
|
|
|
|
const uno::Sequence< uno::Any >& aValues )
|
|
|
|
throw (beans::PropertyVetoException,
|
|
|
|
lang::IllegalArgumentException,
|
|
|
|
lang::WrappedTargetException,
|
|
|
|
uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XMultiPropertySet > xProp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xProp.is())
|
|
|
|
xProp->setPropertyValues( aPropertyNames, aValues );
|
|
|
|
}
|
|
|
|
|
|
|
|
uno::Sequence< uno::Any > SAL_CALL ScAnnotationShapeObj::getPropertyValues(
|
|
|
|
const uno::Sequence< rtl::OUString >& aPropertyNames )
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XMultiPropertySet > xProp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xProp.is())
|
|
|
|
return xProp->getPropertyValues( aPropertyNames );
|
|
|
|
return uno::Sequence< uno::Any >();
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::addPropertiesChangeListener( const uno::Sequence< rtl::OUString >& aPropertyNames,
|
|
|
|
const uno::Reference< beans::XPropertiesChangeListener >& xListener )
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XMultiPropertySet > xProp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xProp.is())
|
|
|
|
xProp->addPropertiesChangeListener( aPropertyNames, xListener );
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::removePropertiesChangeListener( const uno::Reference< beans::XPropertiesChangeListener >& xListener )
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XMultiPropertySet > xProp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xProp.is())
|
|
|
|
xProp->removePropertiesChangeListener( xListener );
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::firePropertiesChangeEvent( const uno::Sequence< rtl::OUString >& aPropertyNames,
|
|
|
|
const uno::Reference< beans::XPropertiesChangeListener >& xListener )
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < beans::XMultiPropertySet > xProp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xProp.is())
|
|
|
|
xProp->firePropertiesChangeEvent( aPropertyNames, xListener );
|
|
|
|
}
|
|
|
|
|
|
|
|
// XComponent
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::dispose( ) throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < lang::XComponent > xComp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xComp.is())
|
|
|
|
xComp->dispose();
|
|
|
|
if (xShape.is())
|
|
|
|
xShape.clear();
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::addEventListener( const uno::Reference< lang::XEventListener >& xListener )
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < lang::XComponent > xComp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xComp.is())
|
|
|
|
xComp->addEventListener( xListener );
|
|
|
|
}
|
|
|
|
|
|
|
|
void SAL_CALL ScAnnotationShapeObj::removeEventListener( const uno::Reference< lang::XEventListener >& aListener )
|
|
|
|
throw (uno::RuntimeException)
|
|
|
|
{
|
|
|
|
ScUnoGuard aGuard;
|
|
|
|
uno::Reference < lang::XComponent > xComp (GetXShape(), uno::UNO_QUERY);
|
|
|
|
if (xComp.is())
|
|
|
|
xComp->removeEventListener( aListener );
|
|
|
|
}
|
|
|
|
|
2000-09-18 16:07:07 +00:00
|
|
|
//------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-10-12 15:59:00 +02:00
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|