summaryrefslogtreecommitdiff
path: root/scratch/sc-vba/dead-source/vbawindows.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'scratch/sc-vba/dead-source/vbawindows.cxx')
-rw-r--r--scratch/sc-vba/dead-source/vbawindows.cxx266
1 files changed, 0 insertions, 266 deletions
diff --git a/scratch/sc-vba/dead-source/vbawindows.cxx b/scratch/sc-vba/dead-source/vbawindows.cxx
deleted file mode 100644
index 3ca529561..000000000
--- a/scratch/sc-vba/dead-source/vbawindows.cxx
+++ /dev/null
@@ -1,266 +0,0 @@
-/*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to
- * the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2005 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
- *
- ************************************************************************/
-#include "vbawindows.hxx"
-
-#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-#include <com/sun/star/frame/XDesktop.hpp>
-#include <cppuhelper/implbase3.hxx>
-
-#include <tools/urlobj.hxx>
-#include "vbawindow.hxx"
-//#include "vbaworkbook.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::org::openoffice;
-
-typedef std::hash_map< rtl::OUString,
-sal_Int32, ::rtl::OUStringHash,
-::std::equal_to< ::rtl::OUString > > NameIndexHash;
-
-
-uno::Reference< vba::XHelperInterface > lcl_createWorkbookHIParent( const uno::Reference< frame::XModel >& xModel, const uno::Reference< uno::XComponentContext >& xContext )
-{
- return new ScVbaWorkbook( uno::Reference< vba::XHelperInterface >( ScVbaGlobals::getGlobalsImpl( xContext )->getApplication(), uno::UNO_QUERY_THROW ), xContext, xModel );
-}
-
-uno::Any ComponentToWindow( const uno::Any& aSource, uno::Reference< uno::XComponentContext > & xContext )
-{
- uno::Reference< frame::XModel > xModel( aSource, uno::UNO_QUERY_THROW );
- uno::Reference< excel::XWindow > xWin( new ScVbaWindow( lcl_createWorkbookHIParent( xModel, xContext ), xContext,xModel ) );
- return uno::makeAny( xWin );
-}
-
-typedef std::vector < uno::Reference< sheet::XSpreadsheetDocument > > Components;
-// #TODO more or less the same as class in workwindows ( code sharing needed )
-class WindowComponentEnumImpl : public EnumerationHelper_BASE
-{
-protected:
- uno::Reference< uno::XComponentContext > m_xContext;
- Components m_components;
- Components::const_iterator m_it;
-
-public:
- WindowComponentEnumImpl( const uno::Reference< uno::XComponentContext >& xContext, const Components& components ) throw ( uno::RuntimeException ) : m_xContext( xContext ), m_components( components )
- {
- m_it = m_components.begin();
- }
-
- WindowComponentEnumImpl( const uno::Reference< uno::XComponentContext >& xContext ) throw ( uno::RuntimeException ) : m_xContext( xContext )
- {
- uno::Reference< lang::XMultiComponentFactory > xSMgr(
- m_xContext->getServiceManager(), uno::UNO_QUERY_THROW );
-
- uno::Reference< frame::XDesktop > xDesktop
- (xSMgr->createInstanceWithContext(::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop"), m_xContext), uno::UNO_QUERY_THROW );
- uno::Reference< container::XEnumeration > mxComponents = xDesktop->getComponents()->createEnumeration();
- while( mxComponents->hasMoreElements() )
- {
- uno::Reference< sheet::XSpreadsheetDocument > xNext( mxComponents->nextElement(), uno::UNO_QUERY );
- if ( xNext.is() )
- m_components.push_back( xNext );
- }
- m_it = m_components.begin();
- }
- // XEnumeration
- virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (uno::RuntimeException)
- {
- return m_it != m_components.end();
- }
-
- virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
- {
- if ( !hasMoreElements() )
- {
- throw container::NoSuchElementException();
- }
- return makeAny( *(m_it++) );
- }
-};
-
-class WindowEnumImpl : public WindowComponentEnumImpl
-{
-public:
- WindowEnumImpl(const uno::Reference< uno::XComponentContext >& xContext, const Components& components ):WindowComponentEnumImpl( xContext, components ) {}
- WindowEnumImpl( const uno::Reference< uno::XComponentContext >& xContext ): WindowComponentEnumImpl( xContext ) {}
- virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
- {
- return ComponentToWindow( WindowComponentEnumImpl::nextElement(), m_xContext );
- }
-};
-
-typedef ::cppu::WeakImplHelper3< container::XEnumerationAccess
- , com::sun::star::container::XIndexAccess
- , com::sun::star::container::XNameAccess
- > WindowsAccessImpl_BASE;
-
-class WindowsAccessImpl : public WindowsAccessImpl_BASE
-{
- uno::Reference< uno::XComponentContext > m_xContext;
- Components m_windows;
- NameIndexHash namesToIndices;
-public:
- WindowsAccessImpl( const uno::Reference< uno::XComponentContext >& xContext ):m_xContext( xContext )
- {
- uno::Reference< container::XEnumeration > xEnum = new WindowComponentEnumImpl( m_xContext );
- sal_Int32 nIndex=0;
- while( xEnum->hasMoreElements() )
- {
- uno::Reference< sheet::XSpreadsheetDocument > xNext( xEnum->nextElement(), uno::UNO_QUERY );
- if ( xNext.is() )
- {
- m_windows.push_back( xNext );
- uno::Reference< frame::XModel > xModel( xNext, uno::UNO_QUERY_THROW ); // that the spreadsheetdocument is a xmodel is a given
- ScVbaWindow window( uno::Reference< vba::XHelperInterface >(), m_xContext, xModel );
- rtl::OUString sCaption;
- window.getCaption() >>= sCaption;
- namesToIndices[ sCaption ] = nIndex++;
- }
- }
-
- }
-
- //XEnumerationAccess
- virtual uno::Reference< container::XEnumeration > SAL_CALL createEnumeration( ) throw (uno::RuntimeException)
- {
- return new WindowComponentEnumImpl( m_xContext, m_windows );
- }
- // XIndexAccess
- virtual ::sal_Int32 SAL_CALL getCount( ) throw (uno::RuntimeException)
- {
- return m_windows.size();
- }
- virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw ( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
- {
- if ( Index < 0
- || static_cast< Components::size_type >( Index ) >= m_windows.size() )
- throw lang::IndexOutOfBoundsException();
- return makeAny( m_windows[ Index ] ); // returns xspreadsheetdoc
- }
-
- //XElementAccess
- virtual uno::Type SAL_CALL getElementType( ) throw (uno::RuntimeException)
- {
- return sheet::XSpreadsheetDocument::static_type(0);
- }
-
- virtual ::sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException)
- {
- return (m_windows.size() > 0);
- }
-
- //XNameAccess
- virtual uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
- {
- NameIndexHash::const_iterator it = namesToIndices.find( aName );
- if ( it == namesToIndices.end() )
- throw container::NoSuchElementException();
- return makeAny( m_windows[ it->second ] );
-
- }
-
- virtual uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (uno::RuntimeException)
- {
- uno::Sequence< ::rtl::OUString > names( namesToIndices.size() );
- ::rtl::OUString* pString = names.getArray();
- NameIndexHash::const_iterator it = namesToIndices.begin();
- NameIndexHash::const_iterator it_end = namesToIndices.end();
- for ( ; it != it_end; ++it, ++pString )
- *pString = it->first;
- return names;
- }
-
- virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (uno::RuntimeException)
- {
- NameIndexHash::const_iterator it = namesToIndices.find( aName );
- return (it != namesToIndices.end());
- }
-
-};
-
-
-ScVbaWindows::ScVbaWindows( const uno::Reference< oo::vba::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< container::XIndexAccess >& xIndexAccess ): ScVbaWindows_BASE( xParent, xContext, xIndexAccess )
-{
-}
-
-uno::Reference< container::XEnumeration >
-ScVbaWindows::createEnumeration() throw (uno::RuntimeException)
-{
- return new WindowEnumImpl( mxContext );
-}
-
-uno::Any
-ScVbaWindows::createCollectionObject( const css::uno::Any& aSource )
-{
- return ComponentToWindow( aSource, mxContext );
-}
-
-uno::Type
-ScVbaWindows::getElementType() throw (uno::RuntimeException)
-{
- return excel::XWindows::static_type(0);
-}
-
-uno::Reference< vba::XCollection >
-ScVbaWindows::Windows( const css::uno::Reference< css::uno::XComponentContext >& xContext )
-{
- uno::Reference< container::XIndexAccess > xIndex( new WindowsAccessImpl( xContext ) );
- return new ScVbaWindows( uno::Reference< vba::XHelperInterface >( ScVbaGlobals::getGlobalsImpl( xContext )->getApplication(), uno::UNO_QUERY_THROW ), xContext , xIndex );
-}
-
-void SAL_CALL
-ScVbaWindows::Arrange( ::sal_Int32 /*ArrangeStyle*/, const uno::Any& /*ActiveWorkbook*/, const uno::Any& /*SyncHorizontal*/, const uno::Any& /*SyncVertical*/ ) throw (uno::RuntimeException)
-{
- //#TODO #FIXME see what can be done for an implementation here
-}
-
-
-rtl::OUString&
-ScVbaWindows::getServiceImplName()
-{
- static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaWindows") );
- return sImplName;
-}
-
-css::uno::Sequence<rtl::OUString>
-ScVbaWindows::getServiceNames()
-{
- static uno::Sequence< rtl::OUString > sNames;
- if ( sNames.getLength() == 0 )
- {
- sNames.realloc( 1 );
- sNames[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.excel.Windows") );
- }
- return sNames;
-}