summaryrefslogtreecommitdiff
path: root/framework/source/uielement/toolbarwrapper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'framework/source/uielement/toolbarwrapper.cxx')
-rw-r--r--framework/source/uielement/toolbarwrapper.cxx351
1 files changed, 0 insertions, 351 deletions
diff --git a/framework/source/uielement/toolbarwrapper.cxx b/framework/source/uielement/toolbarwrapper.cxx
deleted file mode 100644
index d9f297aec0..0000000000
--- a/framework/source/uielement/toolbarwrapper.cxx
+++ /dev/null
@@ -1,351 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_framework.hxx"
-//_________________________________________________________________________________________________________________
-// my own includes
-//_________________________________________________________________________________________________________________
-
-
-#include <uielement/toolbarwrapper.hxx>
-#include <threadhelp/resetableguard.hxx>
-#include <framework/actiontriggerhelper.hxx>
-#include <uielement/constitemcontainer.hxx>
-#include <uielement/rootitemcontainer.hxx>
-#include <uielement/toolbarmanager.hxx>
-
-#include <uielement/toolbar.hxx>
-
-//_________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/awt/XSystemDependentMenuPeer.hpp>
-#include <com/sun/star/awt/XMenuBar.hpp>
-#include <com/sun/star/container/XIndexContainer.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/ui/UIElementType.hpp>
-#include <com/sun/star/lang/DisposedException.hpp>
-
-//_________________________________________________________________________________________________________________
-// other includes
-//_________________________________________________________________________________________________________________
-
-#include <toolkit/unohlp.hxx>
-#include <toolkit/awt/vclxwindow.hxx>
-#include <comphelper/processfactory.hxx>
-
-#include <svtools/miscopt.hxx>
-#include <vcl/svapp.hxx>
-#include <vcl/toolbox.hxx>
-#include <rtl/logfile.hxx>
-
-using namespace com::sun::star;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::frame;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::container;
-using namespace com::sun::star::awt;
-using namespace ::com::sun::star::ui;
-
-namespace framework
-{
-
-ToolBarWrapper::ToolBarWrapper( const Reference< XMultiServiceFactory >& xServiceManager ) :
- UIConfigElementWrapperBase( UIElementType::TOOLBAR,xServiceManager )
-{
-}
-
-ToolBarWrapper::~ToolBarWrapper()
-{
-}
-
-// XInterface
-void SAL_CALL ToolBarWrapper::acquire() throw()
-{
- UIConfigElementWrapperBase::acquire();
-}
-
-void SAL_CALL ToolBarWrapper::release() throw()
-{
- UIConfigElementWrapperBase::release();
-}
-
-uno::Any SAL_CALL ToolBarWrapper::queryInterface( const uno::Type & rType )
-throw( ::com::sun::star::uno::RuntimeException )
-{
- Any a = ::cppu::queryInterface(
- rType ,
- SAL_STATIC_CAST( ::com::sun::star::ui::XUIFunctionListener*, this ) );
-
- if( a.hasValue() )
- return a;
-
- return UIConfigElementWrapperBase::queryInterface( rType );
-}
-
-// XComponent
-void SAL_CALL ToolBarWrapper::dispose() throw ( RuntimeException )
-{
- Reference< XComponent > xThis( static_cast< OWeakObject* >(this), UNO_QUERY );
-
- {
- ResetableGuard aLock( m_aLock );
- if ( m_bDisposed )
- return;
- }
-
- com::sun::star::lang::EventObject aEvent( xThis );
- m_aListenerContainer.disposeAndClear( aEvent );
-
- ResetableGuard aLock( m_aLock );
-
- if ( m_xToolBarManager.is() )
- m_xToolBarManager->dispose();
- m_xToolBarManager.clear();
- m_xConfigSource.clear();
- m_xConfigData.clear();
- m_xToolBarWindow.clear();
-
- m_bDisposed = sal_True;
-}
-
-// XInitialization
-void SAL_CALL ToolBarWrapper::initialize( const Sequence< Any >& aArguments ) throw ( Exception, RuntimeException )
-{
- ResetableGuard aLock( m_aLock );
-
- if ( m_bDisposed )
- throw DisposedException();
-
- if ( !m_bInitialized )
- {
- UIConfigElementWrapperBase::initialize( aArguments );
-
- sal_Bool bPopupMode( sal_False );
- for ( sal_Int32 i = 0; i < aArguments.getLength(); i++ )
- {
- PropertyValue aPropValue;
- if ( aArguments[i] >>= aPropValue )
- {
- if ( aPropValue.Name.equalsAsciiL( "PopupMode", 9 ))
- {
- aPropValue.Value >>= bPopupMode;
- break;
- }
- }
- }
-
- Reference< XFrame > xFrame( m_xWeakFrame );
- if ( xFrame.is() && m_xConfigSource.is() )
- {
- // Create VCL based toolbar which will be filled with settings data
- ToolBar* pToolBar = 0;
- ToolBarManager* pToolBarManager = 0;
- {
- SolarMutexGuard aSolarMutexGuard;
- Window* pWindow = VCLUnoHelper::GetWindow( xFrame->getContainerWindow() );
- if ( pWindow )
- {
- sal_uLong nStyles = WB_LINESPACING | WB_BORDER | WB_SCROLL | WB_MOVEABLE | WB_3DLOOK | WB_DOCKABLE | WB_SIZEABLE | WB_CLOSEABLE;
-
- pToolBar = new ToolBar( pWindow, nStyles );
- m_xToolBarWindow = VCLUnoHelper::GetInterface( pToolBar );
- pToolBarManager = new ToolBarManager( m_xServiceFactory, xFrame, m_aResourceURL, pToolBar );
- pToolBar->SetToolBarManager( pToolBarManager );
- m_xToolBarManager = Reference< XComponent >( static_cast< OWeakObject *>( pToolBarManager ), UNO_QUERY );
- pToolBar->WillUsePopupMode( bPopupMode );
- }
- }
-
- try
- {
- m_xConfigData = m_xConfigSource->getSettings( m_aResourceURL, sal_False );
- if ( m_xConfigData.is() && pToolBar && pToolBarManager )
- {
- // Fill toolbar with container contents
- pToolBarManager->FillToolbar( m_xConfigData );
- pToolBar->SetOutStyle( SvtMiscOptions().GetToolboxStyle() );
- pToolBar->EnableCustomize( sal_True );
- ::Size aActSize( pToolBar->GetSizePixel() );
- ::Size aSize( pToolBar->CalcWindowSizePixel() );
- aSize.Width() = aActSize.Width();
- pToolBar->SetOutputSizePixel( aSize );
- }
- }
- catch ( NoSuchElementException& )
- {
- // No settings in our configuration manager. This means we are
- // a transient toolbar which has no persistent settings.
- m_bPersistent = sal_False;
- if ( pToolBar && pToolBarManager )
- {
- pToolBar->SetOutStyle( SvtMiscOptions().GetToolboxStyle() );
- pToolBar->EnableCustomize( sal_True );
- ::Size aActSize( pToolBar->GetSizePixel() );
- ::Size aSize( pToolBar->CalcWindowSizePixel() );
- aSize.Width() = aActSize.Width();
- pToolBar->SetOutputSizePixel( aSize );
- }
- }
- }
- }
-}
-
-// XEventListener
-void SAL_CALL ToolBarWrapper::disposing( const ::com::sun::star::lang::EventObject& ) throw (::com::sun::star::uno::RuntimeException)
-{
- // nothing todo
-}
-
-// XUpdatable
-void SAL_CALL ToolBarWrapper::update() throw (::com::sun::star::uno::RuntimeException)
-{
- ResetableGuard aLock( m_aLock );
-
- if ( m_bDisposed )
- throw DisposedException();
-
- ToolBarManager* pToolBarManager = static_cast< ToolBarManager *>( m_xToolBarManager.get() );
- if ( pToolBarManager )
- pToolBarManager->CheckAndUpdateImages();
-}
-
-// XUIElementSettings
-void SAL_CALL ToolBarWrapper::updateSettings() throw (::com::sun::star::uno::RuntimeException)
-{
- ResetableGuard aLock( m_aLock );
-
- if ( m_bDisposed )
- throw DisposedException();
-
- if ( m_xToolBarManager.is() )
- {
- if ( m_xConfigSource.is() && m_bPersistent )
- {
- try
- {
- ToolBarManager* pToolBarManager = static_cast< ToolBarManager *>( m_xToolBarManager.get() );
-
- m_xConfigData = m_xConfigSource->getSettings( m_aResourceURL, sal_False );
- if ( m_xConfigData.is() )
- pToolBarManager->FillToolbar( m_xConfigData );
- }
- catch ( NoSuchElementException& )
- {
- }
- }
- else if ( !m_bPersistent )
- {
- // Transient toolbar: do nothing
- }
- }
-}
-
-void ToolBarWrapper::impl_fillNewData()
-{
- // Transient toolbar => Fill toolbar with new data
- ToolBarManager* pToolBarManager = static_cast< ToolBarManager *>( m_xToolBarManager.get() );
- if ( pToolBarManager )
- pToolBarManager->FillToolbar( m_xConfigData );
-}
-
-// XUIElement interface
-Reference< XInterface > SAL_CALL ToolBarWrapper::getRealInterface( ) throw (::com::sun::star::uno::RuntimeException)
-{
- ResetableGuard aLock( m_aLock );
-
- if ( m_xToolBarManager.is() )
- {
- ToolBarManager* pToolBarManager = static_cast< ToolBarManager *>( m_xToolBarManager.get() );
- if ( pToolBarManager )
- {
- Window* pWindow = (Window *)pToolBarManager->GetToolBar();
- return Reference< XInterface >( VCLUnoHelper::GetInterface( pWindow ), UNO_QUERY );
- }
- }
-
- return Reference< XInterface >();
-}
-
-//XUIFunctionExecute
-void SAL_CALL ToolBarWrapper::functionExecute(
- const ::rtl::OUString& aUIElementName,
- const ::rtl::OUString& aCommand )
-throw (::com::sun::star::uno::RuntimeException)
-{
- ResetableGuard aLock( m_aLock );
-
- if ( m_xToolBarManager.is() )
- {
- ToolBarManager* pToolBarManager = static_cast< ToolBarManager *>( m_xToolBarManager.get() );
- if ( pToolBarManager )
- pToolBarManager->notifyRegisteredControllers( aUIElementName, aCommand );
- }
-}
-
-void SAL_CALL ToolBarWrapper::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const com::sun::star::uno::Any& aValue ) throw( com::sun::star::uno::Exception )
-{
- ResetableGuard aLock( m_aLock );
- sal_Bool bNoClose( m_bNoClose );
- aLock.unlock();
-
- UIConfigElementWrapperBase::setFastPropertyValue_NoBroadcast( nHandle, aValue );
-
- aLock.lock();
-
- sal_Bool bNewNoClose( m_bNoClose );
- if ( m_xToolBarManager.is() && !m_bDisposed && ( bNewNoClose != bNoClose ))
- {
- ToolBarManager* pToolBarManager = static_cast< ToolBarManager *>( m_xToolBarManager.get() );
- if ( pToolBarManager )
- {
- ToolBox* pToolBox = pToolBarManager->GetToolBar();
- if ( pToolBox )
- {
- if ( bNewNoClose )
- {
- pToolBox->SetStyle( pToolBox->GetStyle() & ~WB_CLOSEABLE );
- pToolBox->SetFloatStyle( pToolBox->GetFloatStyle() & ~WB_CLOSEABLE );
- }
- else
- {
- pToolBox->SetStyle( pToolBox->GetStyle() | WB_CLOSEABLE );
- pToolBox->SetFloatStyle( pToolBox->GetFloatStyle() | WB_CLOSEABLE );
- }
- }
- }
- }
-}
-
-} // namespace framework
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */