summaryrefslogtreecommitdiff
path: root/dbaccess/source/ui/control/toolboxcontroller.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess/source/ui/control/toolboxcontroller.cxx')
-rw-r--r--dbaccess/source/ui/control/toolboxcontroller.cxx279
1 files changed, 0 insertions, 279 deletions
diff --git a/dbaccess/source/ui/control/toolboxcontroller.cxx b/dbaccess/source/ui/control/toolboxcontroller.cxx
deleted file mode 100644
index 180e318aa..000000000
--- a/dbaccess/source/ui/control/toolboxcontroller.cxx
+++ /dev/null
@@ -1,279 +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_dbaccess.hxx"
-#include "toolboxcontroller.hxx"
-#include <com/sun/star/ui/ImageType.hpp>
-#include <com/sun/star/frame/XDispatchProvider.hpp>
-#include <toolkit/helper/vclunohelper.hxx>
-#include <vcl/menu.hxx>
-#include <com/sun/star/ui/XUIConfigurationManager.hpp>
-#include <com/sun/star/ui/XModuleUIConfigurationManagerSupplier.hpp>
-#include <com/sun/star/ui/XImageManager.hpp>
-#include <com/sun/star/ui/ImageType.hpp>
-#include <com/sun/star/graphic/XGraphic.hpp>
-#include <vcl/svapp.hxx>
-#include <vcl/toolbox.hxx>
-#include "dbu_resource.hrc"
-#include <svtools/miscopt.hxx>
-#include <unotools/moduleoptions.hxx>
-#include <tools/diagnose_ex.h>
-#include <svtools/menuoptions.hxx>
-#include <osl/mutex.hxx>
-#include "dbu_reghelper.hxx"
-#include "UITools.hxx"
-
-
-extern "C" void SAL_CALL createRegistryInfo_OToolboxController()
-{
- static ::dbaui::OMultiInstanceAutoRegistration< ::dbaui::OToolboxController> aAutoRegistration;
-}
-namespace dbaui
-{
- using namespace svt;
- using namespace ::com::sun::star::graphic;
- using namespace com::sun::star::uno;
- using namespace com::sun::star::beans;
- using namespace com::sun::star::lang;
- using namespace ::com::sun::star::frame;
- using namespace ::com::sun::star::util;
- using namespace ::com::sun::star::ui;
-
- namespace
- {
- void lcl_copy(Menu* _pMenu,sal_uInt16 _nMenuId,sal_uInt16 _nMenuPos,ToolBox* _pToolBox,sal_uInt16 _nToolId,const ::rtl::OUString& _sCommand)
- {
- if ( _pMenu->GetItemType(_nMenuPos) != MENUITEM_STRING )
- _pToolBox->SetItemImage(_nToolId, _pMenu->GetItemImage(_nMenuId));
- _pToolBox->SetItemCommand( _nToolId, _sCommand);
- _pToolBox->SetHelpId(_nToolId, _pMenu->GetHelpId(_nMenuId));
- _pToolBox->SetHelpText(_nToolId, _pMenu->GetHelpText(_nMenuId));
- _pToolBox->SetQuickHelpText(_nToolId, _pMenu->GetTipHelpText(_nMenuId));
- _pToolBox->SetItemText(_nToolId, _pMenu->GetItemText(_nMenuId));
- }
- }
-
- OToolboxController::OToolboxController(const Reference< XMultiServiceFactory >& _rxORB)
- : m_nToolBoxId(1)
- {
- osl_incrementInterlockedCount(&m_refCount);
- m_xServiceManager = _rxORB;
- osl_decrementInterlockedCount(&m_refCount);
-
- }
- // -----------------------------------------------------------------------------
- IMPLEMENT_SERVICE_INFO1_STATIC(OToolboxController,"com.sun.star.sdb.ApplicationToolboxController","com.sun.star.frame.ToolboxController")
- // -----------------------------------------------------------------------------
- // XInterface
- Any SAL_CALL OToolboxController::queryInterface( const Type& _rType ) throw (RuntimeException)
- {
- Any aReturn = ToolboxController::queryInterface(_rType);
- if (!aReturn.hasValue())
- aReturn = TToolboxController_BASE::queryInterface(_rType);
- return aReturn;
- }
- // -----------------------------------------------------------------------------
- void SAL_CALL OToolboxController::acquire() throw ()
- {
- ToolboxController::acquire();
- }
- // -----------------------------------------------------------------------------
- void SAL_CALL OToolboxController::release() throw ()
- {
- ToolboxController::release();
- }
- // -----------------------------------------------------------------------------
- void SAL_CALL OToolboxController::initialize( const Sequence< Any >& _rArguments ) throw (Exception, RuntimeException)
- {
- ToolboxController::initialize(_rArguments);
- SolarMutexGuard aSolarMutexGuard;
- ::osl::MutexGuard aGuard(m_aMutex);
-
- if ( m_aCommandURL.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(".uno:DBNewForm")) )
- {
- m_aStates.insert(TCommandState::value_type(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".uno:DBNewForm")) ,sal_True));
- m_aStates.insert(TCommandState::value_type(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".uno:DBNewView")) ,sal_True));
- m_aStates.insert(TCommandState::value_type(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".uno:DBNewViewSQL")) ,sal_True));
- m_aStates.insert(TCommandState::value_type(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".uno:DBNewQuery")) ,sal_True));
- m_aStates.insert(TCommandState::value_type(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".uno:DBNewQuerySql")) ,sal_True));
- m_aStates.insert(TCommandState::value_type(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".uno:DBNewReport")) ,sal_True));
- m_aStates.insert(TCommandState::value_type(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".uno:DBNewReportAutoPilot")),sal_True));
- m_aStates.insert(TCommandState::value_type(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".uno:DBNewTable")) ,sal_True));
- }
- else
- {
- m_aStates.insert(TCommandState::value_type(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".uno:Refresh")) ,sal_True));
- m_aStates.insert(TCommandState::value_type(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".uno:DBRebuildData")) ,sal_True));
- }
-
- TCommandState::iterator aIter = m_aStates.begin();
- TCommandState::iterator aEnd = m_aStates.end();
- for (; aIter != aEnd; ++aIter)
- addStatusListener(aIter->first);
-
- ToolBox* pToolBox = static_cast<ToolBox*>(VCLUnoHelper::GetWindow(getParent()));
- if ( pToolBox )
- {
- sal_uInt16 nCount = pToolBox->GetItemCount();
- for (sal_uInt16 nPos = 0; nPos < nCount; ++nPos)
- {
- sal_uInt16 nItemId = pToolBox->GetItemId(nPos);
- if ( pToolBox->GetItemCommand(nItemId) == String(m_aCommandURL) )
- {
- m_nToolBoxId = nItemId;
- break;
- }
- }
-
- // check if paste special is allowed, when not don't add DROPDOWN
- pToolBox->SetItemBits(m_nToolBoxId,pToolBox->GetItemBits(m_nToolBoxId) | TIB_DROPDOWN);
- }
- }
- // -----------------------------------------------------------------------------
- void SAL_CALL OToolboxController::statusChanged( const FeatureStateEvent& Event ) throw ( RuntimeException )
- {
- SolarMutexGuard aSolarMutexGuard;
- ::osl::MutexGuard aGuard(m_aMutex);
- TCommandState::iterator aFind = m_aStates.find( Event.FeatureURL.Complete );
- if ( aFind != m_aStates.end() )
- {
- aFind->second = Event.IsEnabled;
- if ( m_aCommandURL == aFind->first && !Event.IsEnabled )
- {
- ::std::auto_ptr<PopupMenu> pMenu = getMenu();
- sal_uInt16 nCount = pMenu->GetItemCount();
- for (sal_uInt16 i = 0; i < nCount; ++i)
- {
- sal_uInt16 nItemId = pMenu->GetItemId(i);
- aFind = m_aStates.find(pMenu->GetItemCommand(nItemId));
- if ( aFind != m_aStates.end() && aFind->second )
- {
- m_aCommandURL = aFind->first;
-
- ToolBox* pToolBox = static_cast<ToolBox*>(VCLUnoHelper::GetWindow(getParent()));
- lcl_copy(pMenu.get(),nItemId,i,pToolBox,m_nToolBoxId, m_aCommandURL);
- break;
- }
- }
- }
- }
- }
- // -----------------------------------------------------------------------------
- ::std::auto_ptr<PopupMenu> OToolboxController::getMenu()
- {
- ::std::auto_ptr<PopupMenu> pMenu;
- if ( m_aStates.size() > 2 )
- {
- pMenu.reset( new PopupMenu( ModuleRes( RID_MENU_APP_NEW ) ) );
-
- try
- {
- Reference<XModuleUIConfigurationManagerSupplier> xModuleCfgMgrSupplier(getServiceManager()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ui.ModuleUIConfigurationManagerSupplier"))),UNO_QUERY);
- Reference<XUIConfigurationManager> xUIConfigMgr = xModuleCfgMgrSupplier->getUIConfigurationManager(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sdb.OfficeDatabaseDocument")));
- Reference<XImageManager> xImageMgr(xUIConfigMgr->getImageManager(),UNO_QUERY);
-
-
- short nImageType = hasBigImages() ? ImageType::SIZE_LARGE : ImageType::SIZE_DEFAULT;
-
- Sequence< ::rtl::OUString> aSeq(1);
- sal_uInt16 nCount = pMenu->GetItemCount();
- for (sal_uInt16 nPos = 0; nPos < nCount; ++nPos)
- {
- if ( pMenu->GetItemType( nPos ) == MENUITEM_SEPARATOR )
- continue;
-
- sal_uInt16 nItemId = pMenu->GetItemId(nPos);
- aSeq[0] = pMenu->GetItemCommand(nItemId);
- Sequence< Reference<XGraphic> > aImages = xImageMgr->getImages(nImageType,aSeq);
-
- Image aImage(aImages[0]);
- pMenu->SetItemImage(nItemId,aImage);
- TCommandState::iterator aFind = m_aStates.find( aSeq[0] );
- if ( aFind != m_aStates.end() )
- {
- pMenu->EnableItem(nItemId,aFind->second);
- }
- }
- }
- catch(const Exception&)
- {
- DBG_UNHANDLED_EXCEPTION();
- }
- }
- else
- {
- pMenu.reset( new PopupMenu( ModuleRes( RID_MENU_REFRESH_DATA ) ) );
- }
- return pMenu;
- }
- // -----------------------------------------------------------------------------
- Reference< ::com::sun::star::awt::XWindow > SAL_CALL OToolboxController::createPopupWindow() throw (RuntimeException)
- {
- // execute the menu
- SolarMutexGuard aSolarMutexGuard;
- ::osl::MutexGuard aGuard(m_aMutex);
-
- ToolBox* pToolBox = static_cast<ToolBox*>(VCLUnoHelper::GetWindow(getParent()));
- ::std::auto_ptr<PopupMenu> pMenu = getMenu();
-
- sal_uInt16 nSelected = pMenu->Execute(pToolBox, pToolBox->GetItemRect( m_nToolBoxId ),POPUPMENU_EXECUTE_DOWN);
- // "cleanup" the toolbox state
- Point aPoint = pToolBox->GetItemRect( m_nToolBoxId ).TopLeft();
- MouseEvent aLeave( aPoint, 0, MOUSE_LEAVEWINDOW | MOUSE_SYNTHETIC );
- pToolBox->MouseMove( aLeave );
- pToolBox->SetItemDown( m_nToolBoxId, sal_False);
-
- if ( nSelected )
- {
- m_aCommandURL = pMenu->GetItemCommand(nSelected);
- lcl_copy(pMenu.get(),nSelected,pMenu->GetItemPos(nSelected),pToolBox,m_nToolBoxId, m_aCommandURL);
-
- Reference<XDispatch> xDispatch = m_aListenerMap.find(m_aCommandURL)->second;
- if ( xDispatch.is() )
- {
- URL aUrl;
- Sequence < PropertyValue > aArgs;
- aUrl.Complete = m_aCommandURL;
- OSL_ENSURE(aUrl.Complete.getLength(),"Command is empty!");
- if ( getURLTransformer().is() )
- getURLTransformer()->parseStrict(aUrl);
- xDispatch->dispatch(aUrl,aArgs);
-
- }
- }
- return Reference< ::com::sun::star::awt::XWindow >();
- }
- // -----------------------------------------------------------------------------
- // -----------------------------------------------------------------------------
-//..........................................................................
-} // dbaui
-//..........................................................................
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */