summaryrefslogtreecommitdiff
path: root/sd/source/ui/unoidl/SdUnoOutlineView.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/unoidl/SdUnoOutlineView.cxx')
-rwxr-xr-xsd/source/ui/unoidl/SdUnoOutlineView.cxx271
1 files changed, 271 insertions, 0 deletions
diff --git a/sd/source/ui/unoidl/SdUnoOutlineView.cxx b/sd/source/ui/unoidl/SdUnoOutlineView.cxx
new file mode 100755
index 000000000000..ff3e5dd501fb
--- /dev/null
+++ b/sd/source/ui/unoidl/SdUnoOutlineView.cxx
@@ -0,0 +1,271 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sd.hxx"
+
+#include <comphelper/serviceinfohelper.hxx>
+
+#include "SdUnoOutlineView.hxx"
+
+#include "DrawController.hxx"
+#include "OutlineViewShell.hxx"
+#include "sdpage.hxx"
+#include "unopage.hxx"
+
+#include <cppuhelper/proptypehlp.hxx>
+#include <svx/unopage.hxx>
+#include <vos/mutex.hxx>
+#include <vcl/svapp.hxx>
+
+using ::rtl::OUString;
+using namespace ::vos;
+using namespace ::cppu;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+
+
+
+namespace sd {
+
+SdUnoOutlineView::SdUnoOutlineView(
+ DrawController& rController,
+ OutlineViewShell& rViewShell,
+ View& rView) throw()
+ : DrawSubControllerInterfaceBase(m_aMutex),
+ mrController(rController),
+ mrOutlineViewShell(rViewShell),
+ mrView(rView)
+{
+}
+
+
+
+
+SdUnoOutlineView::~SdUnoOutlineView (void) throw()
+{
+}
+
+
+
+
+void SAL_CALL SdUnoOutlineView::disposing (void)
+{
+}
+
+
+
+
+//----- XSelectionSupplier ----------------------------------------------------
+
+sal_Bool SAL_CALL SdUnoOutlineView::select( const Any& )
+ throw(lang::IllegalArgumentException, RuntimeException)
+{
+ // todo: add selections for text ranges
+ return sal_False;
+}
+
+
+
+Any SAL_CALL SdUnoOutlineView::getSelection()
+ throw(RuntimeException)
+{
+ Any aAny;
+ return aAny;
+}
+
+
+
+void SAL_CALL SdUnoOutlineView::addSelectionChangeListener (
+ const css::uno::Reference<css::view::XSelectionChangeListener>& rxListener)
+ throw(css::uno::RuntimeException)
+{
+ (void)rxListener;
+}
+
+
+
+
+void SAL_CALL SdUnoOutlineView::removeSelectionChangeListener (
+ const css::uno::Reference<css::view::XSelectionChangeListener>& rxListener)
+ throw(css::uno::RuntimeException)
+{
+ (void)rxListener;
+}
+
+
+
+
+//----- XDrawView -------------------------------------------------------------
+
+
+void SAL_CALL SdUnoOutlineView::setCurrentPage (
+ const Reference< drawing::XDrawPage >& xPage)
+ throw(RuntimeException)
+{
+ SvxDrawPage* pDrawPage = SvxDrawPage::getImplementation( xPage );
+ SdrPage *pSdrPage = pDrawPage ? pDrawPage->GetSdrPage() : NULL;
+
+ if (pSdrPage != NULL)
+ mrOutlineViewShell.SetCurrentPage(dynamic_cast<SdPage*>(pSdrPage));
+}
+
+
+
+
+Reference< drawing::XDrawPage > SAL_CALL SdUnoOutlineView::getCurrentPage (void)
+ throw(RuntimeException)
+{
+ Reference<drawing::XDrawPage> xPage;
+
+ SdPage* pPage = mrOutlineViewShell.getCurrentPage();
+ if (pPage != NULL)
+ xPage = Reference<drawing::XDrawPage>::query(pPage->getUnoPage());
+
+ return xPage;
+}
+
+
+
+/*
+// Return sal_True, value change
+sal_Bool SdUnoOutlineView::convertFastPropertyValue (
+ Any & rConvertedValue,
+ Any & rOldValue,
+ sal_Int32 nHandle,
+ const Any& rValue)
+ throw ( com::sun::star::lang::IllegalArgumentException)
+{
+ sal_Bool bResult = sal_False;
+
+ switch( nHandle )
+ {
+ case DrawController::PROPERTY_CURRENTPAGE:
+ {
+ Reference< drawing::XDrawPage > xOldPage( getCurrentPage() );
+ Reference< drawing::XDrawPage > xNewPage;
+ ::cppu::convertPropertyValue( xNewPage, rValue );
+ if( xOldPage != xNewPage )
+ {
+ rConvertedValue <<= xNewPage;
+ rOldValue <<= xOldPage;
+ bResult = sal_True;
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return bResult;
+}
+*/
+
+
+void SdUnoOutlineView::setFastPropertyValue (
+ sal_Int32 nHandle,
+ const Any& rValue)
+ throw(css::beans::UnknownPropertyException,
+ css::beans::PropertyVetoException,
+ css::lang::IllegalArgumentException,
+ css::lang::WrappedTargetException,
+ css::uno::RuntimeException)
+{
+ switch( nHandle )
+ {
+ case DrawController::PROPERTY_CURRENTPAGE:
+ {
+ Reference< drawing::XDrawPage > xPage;
+ rValue >>= xPage;
+ setCurrentPage( xPage );
+ }
+ break;
+
+ default:
+ throw beans::UnknownPropertyException();
+ }
+}
+
+
+
+
+void SAL_CALL SdUnoOutlineView::disposing (const ::com::sun::star::lang::EventObject& )
+ throw (::com::sun::star::uno::RuntimeException)
+{
+}
+
+
+
+
+Any SAL_CALL SdUnoOutlineView::getFastPropertyValue (
+ sal_Int32 nHandle)
+ throw(css::beans::UnknownPropertyException,
+ css::lang::WrappedTargetException,
+ css::uno::RuntimeException)
+{
+ Any aValue;
+
+ switch( nHandle )
+ {
+ case DrawController::PROPERTY_CURRENTPAGE:
+ {
+ SdPage* pPage = const_cast<OutlineViewShell&>(mrOutlineViewShell).GetActualPage();
+ if (pPage != NULL)
+ aValue <<= pPage->getUnoPage();
+ }
+ break;
+ case DrawController::PROPERTY_VIEWOFFSET:
+ break;
+
+ default:
+ throw beans::UnknownPropertyException();
+ }
+
+ return aValue;
+}
+
+
+// XServiceInfo
+OUString SAL_CALL SdUnoOutlineView::getImplementationName( ) throw (RuntimeException)
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.sd.SdUnoOutlineView") );
+}
+
+sal_Bool SAL_CALL SdUnoOutlineView::supportsService( const OUString& ServiceName ) throw (RuntimeException)
+{
+ return comphelper::ServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() );
+}
+
+Sequence< OUString > SAL_CALL SdUnoOutlineView::getSupportedServiceNames( ) throw (RuntimeException)
+{
+ OUString aSN( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.OutlineView") );
+ uno::Sequence< OUString > aSeq( &aSN, 1 );
+ return aSeq;
+}
+
+} // end of namespace sd