summaryrefslogtreecommitdiff
path: root/framework/source/uielement/footermenucontroller.cxx
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2009-09-08 04:57:32 +0000
committerOliver Bolte <obo@openoffice.org>2009-09-08 04:57:32 +0000
commitca00697e3dae9a03573d11281fc8d9a4ee391d3d (patch)
treec390c65f02f6f32b6d6d9faa600f4688a8c81857 /framework/source/uielement/footermenucontroller.cxx
parent047473d4f1a12e867ab7154113f7f1c5422d5368 (diff)
CWS-TOOLING: integrate CWS oj18
2009-08-21 15:08:49 +0200 oj r275263 : wrong check 2009-08-21 08:56:01 +0200 oj r275215 : missing not 2009-08-20 07:27:13 +0200 oj r275164 : use new method from global 2009-08-19 10:22:35 +0200 oj r275138 : call GetLocale instead of pLocale 2009-08-18 10:39:32 +0200 oj r275082 : missing header include 2009-08-18 10:09:44 +0200 oj r275081 : new methods at global 2009-08-18 10:09:00 +0200 oj r275080 : unused var 2009-08-18 08:59:04 +0200 oj r275078 : move files from classes to xml 2009-08-17 14:58:16 +0200 oj r275056 : CWS-TOOLING: rebase CWS oj18 to trunk@275001 (milestone: DEV300:m55) 2009-08-17 13:29:44 +0200 oj r275047 : compile error 2009-08-17 13:27:47 +0200 oj r275045 : compile error 2009-08-17 11:44:54 +0200 oj r275040 : add dep 2009-07-22 14:26:05 +0200 oj r274240 : move unused services into fwl 2009-07-22 14:25:35 +0200 oj r274239 : move unused services into fwl 2009-07-22 13:47:45 +0200 oj r274233 : remove some unused code 2009-07-22 09:06:20 +0200 oj r274219 : export dbtoolsclient dbcharsethelper for sc 2009-07-22 08:48:58 +0200 oj r274218 : create NumberFormatter on demand 2009-07-22 08:39:23 +0200 oj r274217 : change char to sal_Char 2009-07-22 07:33:34 +0200 oj r274214 : export dbtoolsclient dbcharsethelper for sc 2009-07-22 07:30:04 +0200 oj r274213 : late init of numberformatter and breakiterator 2009-07-22 07:28:55 +0200 oj r274212 : export dbtoolsclient dbcharsethelper for sc 2009-07-21 13:43:28 +0200 oj r274196 : check if quick start is enbaled 2009-07-21 13:40:09 +0200 oj r274195 : check config entry for UiEventsLogger 2009-07-21 13:37:40 +0200 oj r274194 : code refactoring, remove of duplicate code and some late inits and removale of not needed files 2009-07-21 13:35:38 +0200 oj r274193 : code refactoring, remove of duplicate code and some late inits and removale of not needed files 2009-07-21 13:33:41 +0200 oj r274192 : doc meta data will now be created on demand 2009-07-21 13:13:40 +0200 oj r274187 : load ldap functions on demand 2009-07-21 13:03:17 +0200 oj r274183 : late init of TransliterationImpl 2009-07-21 12:36:10 +0200 oj r274180 : late init of charClass
Diffstat (limited to 'framework/source/uielement/footermenucontroller.cxx')
-rw-r--r--framework/source/uielement/footermenucontroller.cxx250
1 files changed, 2 insertions, 248 deletions
diff --git a/framework/source/uielement/footermenucontroller.cxx b/framework/source/uielement/footermenucontroller.cxx
index 8f295b82c11d..9396be03d9ea 100644
--- a/framework/source/uielement/footermenucontroller.cxx
+++ b/framework/source/uielement/footermenucontroller.cxx
@@ -40,7 +40,7 @@
#ifndef __FRAMEWORK_CLASSES_RESOURCE_HRC_
#include <classes/resource.hrc>
#endif
-#include <classes/fwkresid.hxx>
+#include <classes/fwlresid.hxx>
//_________________________________________________________________________________________________________________
// interface includes
@@ -80,8 +80,6 @@ using namespace com::sun::star::util;
using namespace com::sun::star::style;
using namespace com::sun::star::container;
-const USHORT ALL_MENUITEM_ID = 1;
-
namespace framework
{
@@ -91,256 +89,12 @@ DEFINE_XSERVICEINFO_MULTISERVICE ( FooterMenuController
IMPLEMENTATIONNAME_FOOTERMENUCONTROLLER
)
-DEFINE_INIT_SERVICE ( FooterMenuController, {} )
-
FooterMenuController::FooterMenuController( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager ) :
- PopupMenuControllerBase( xServiceManager )
+ HeaderMenuController( xServiceManager,true )
{
}
FooterMenuController::~FooterMenuController()
{
}
-
-// private function
-void FooterMenuController::fillPopupMenu( const Reference< ::com::sun::star::frame::XModel >& rModel, Reference< css::awt::XPopupMenu >& rPopupMenu )
-{
- VCLXPopupMenu* pPopupMenu = (VCLXPopupMenu *)VCLXMenu::GetImplementation( rPopupMenu );
- PopupMenu* pVCLPopupMenu = 0;
-
- vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
-
- resetPopupMenu( rPopupMenu );
- if ( pPopupMenu )
- pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
-
- Reference< XStyleFamiliesSupplier > xStyleFamiliesSupplier( rModel, UNO_QUERY );
- if ( pVCLPopupMenu && xStyleFamiliesSupplier.is())
- {
- Reference< XNameAccess > xStyleFamilies = xStyleFamiliesSupplier->getStyleFamilies();
-
- try
- {
- const rtl::OUString aCmd( RTL_CONSTASCII_USTRINGPARAM( ".uno:InsertPageFooter" ));
- const rtl::OUString aIsPhysicalStr( RTL_CONSTASCII_USTRINGPARAM( "IsPhysical" ));
- const rtl::OUString aDisplayNameStr( RTL_CONSTASCII_USTRINGPARAM( "DisplayName" ));
- const rtl::OUString aFooterIsOnStr( RTL_CONSTASCII_USTRINGPARAM( "FooterIsOn" ));
-
- Reference< XNameContainer > xNameContainer;
- Any a = xStyleFamilies->getByName( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PageStyles" )));
- if ( a >>= xNameContainer )
- {
- Sequence< rtl::OUString > aSeqNames = xNameContainer->getElementNames();
-
- USHORT nId = 2;
- USHORT nCount = 0;
- sal_Bool bAllOneState( sal_True );
- sal_Bool bLastCheck( sal_True );
- sal_Bool bFirstChecked( sal_False );
- sal_Bool bFirstItemInserted( sal_False );
- for ( sal_Int32 n = 0; n < aSeqNames.getLength(); n++ )
- {
- rtl::OUString aName = aSeqNames[n];
- Reference< XPropertySet > xPropSet( xNameContainer->getByName( aName ), UNO_QUERY );
- if ( xPropSet.is() )
- {
- sal_Bool bIsPhysical( sal_False );
- a = xPropSet->getPropertyValue( aIsPhysicalStr );
- if (( a >>= bIsPhysical ) && bIsPhysical )
- {
- rtl::OUString aDisplayName;
- sal_Bool bHeaderIsOn( sal_False );
- a = xPropSet->getPropertyValue( aDisplayNameStr );
- a >>= aDisplayName;
- a = xPropSet->getPropertyValue( aFooterIsOnStr );
- a >>= bHeaderIsOn;
-
- rtl::OUStringBuffer aStrBuf( aCmd );
- aStrBuf.appendAscii( "?PageStyle:string=");
- aStrBuf.append( aDisplayName );
- aStrBuf.appendAscii( "&On:bool=" );
- if ( !bHeaderIsOn )
- aStrBuf.appendAscii( "true" );
- else
- aStrBuf.appendAscii( "false" );
- rtl::OUString aCommand( aStrBuf.makeStringAndClear() );
- pVCLPopupMenu->InsertItem( nId, aDisplayName, MIB_CHECKABLE );
- if ( !bFirstItemInserted )
- {
- bFirstItemInserted = sal_True;
- bFirstChecked = bHeaderIsOn;
- }
-
- pVCLPopupMenu->SetItemCommand( nId, aCommand );
- if ( bHeaderIsOn )
- pVCLPopupMenu->CheckItem( nId, sal_True );
- ++nId;
-
- // Check if all entries have the same state
- if( bAllOneState && n && bHeaderIsOn != bLastCheck )
- bAllOneState = FALSE;
- bLastCheck = bHeaderIsOn;
- ++nCount;
- }
- }
- }
-
- if ( bAllOneState && ( nCount > 1 ))
- {
- // Insert special item for all command
- pVCLPopupMenu->InsertItem( ALL_MENUITEM_ID, String( FwkResId( STR_MENU_HEADFOOTALL )), 0, 0 );
-
- rtl::OUStringBuffer aStrBuf( aCmd );
- aStrBuf.appendAscii( "?On:bool=" );
-
- // Command depends on check state of first menu item entry
- if ( !bFirstChecked )
- aStrBuf.appendAscii( "true" );
- else
- aStrBuf.appendAscii( "false" );
-
- pVCLPopupMenu->SetItemCommand( 1, aStrBuf.makeStringAndClear() );
- pVCLPopupMenu->InsertSeparator( 1 );
- }
- }
- }
- catch ( com::sun::star::container::NoSuchElementException& )
- {
- }
- }
-}
-
-// XEventListener
-void SAL_CALL FooterMenuController::disposing( const EventObject& ) throw ( RuntimeException )
-{
- Reference< css::awt::XMenuListener > xHolder(( OWeakObject *)this, UNO_QUERY );
-
- ResetableGuard aLock( m_aLock );
- m_xFrame.clear();
- m_xDispatch.clear();
- m_xServiceManager.clear();
-
- if ( m_xPopupMenu.is() )
- m_xPopupMenu->removeMenuListener( Reference< css::awt::XMenuListener >(( OWeakObject *)this, UNO_QUERY ));
- m_xPopupMenu.clear();
-}
-
-// XStatusListener
-void SAL_CALL FooterMenuController::statusChanged( const FeatureStateEvent& Event ) throw ( RuntimeException )
-{
- Reference< com::sun::star::frame::XModel > xModel;
-
- if ( Event.State >>= xModel )
- {
- ResetableGuard aLock( m_aLock );
- if ( m_xPopupMenu.is() )
- fillPopupMenu( xModel, m_xPopupMenu );
- }
-}
-
-// XMenuListener
-void SAL_CALL FooterMenuController::highlight( const css::awt::MenuEvent& ) throw (RuntimeException)
-{
-}
-
-void SAL_CALL FooterMenuController::select( const css::awt::MenuEvent& rEvent ) throw (RuntimeException)
-{
- Reference< css::awt::XPopupMenu > xPopupMenu;
- Reference< XDispatch > xDispatch;
- Reference< XMultiServiceFactory > xServiceManager;
-
- ResetableGuard aLock( m_aLock );
- xPopupMenu = m_xPopupMenu;
- xDispatch = m_xDispatch;
- xServiceManager = m_xServiceManager;
- aLock.unlock();
-
- if ( xPopupMenu.is() && xDispatch.is() )
- {
- VCLXPopupMenu* pPopupMenu = (VCLXPopupMenu *)VCLXPopupMenu::GetImplementation( xPopupMenu );
- if ( pPopupMenu )
- {
- css::util::URL aTargetURL;
- Sequence<PropertyValue> aArgs( 1 );
- Reference< XURLTransformer > xURLTransformer( xServiceManager->createInstance(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))),
- UNO_QUERY );
-
- {
- vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
- PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
-
- aTargetURL.Complete = pVCLPopupMenu->GetItemCommand( rEvent.MenuId );
- }
-
- xURLTransformer->parseStrict( aTargetURL );
- if(::comphelper::UiEventsLogger::isEnabled()) //#i88653#
- UiEventLogHelper(::rtl::OUString::createFromAscii("FooterMenuController")).log(m_xServiceManager, m_xFrame, aTargetURL, aArgs);
- xDispatch->dispatch( aTargetURL, aArgs );
- }
- }
-}
-
-void SAL_CALL FooterMenuController::activate( const css::awt::MenuEvent& ) throw (RuntimeException)
-{
-}
-
-void SAL_CALL FooterMenuController::deactivate( const css::awt::MenuEvent& ) throw (RuntimeException)
-{
-}
-
-// XPopupMenuController
-void SAL_CALL FooterMenuController::setPopupMenu( const Reference< css::awt::XPopupMenu >& xPopupMenu ) throw ( RuntimeException )
-{
- ResetableGuard aLock( m_aLock );
-
- if ( m_bDisposed )
- throw DisposedException();
-
- if ( m_xFrame.is() && !m_xPopupMenu.is() )
- {
- // Create popup menu on demand
- vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
-
- m_xPopupMenu = xPopupMenu;
- m_xPopupMenu->addMenuListener( Reference< css::awt::XMenuListener >( (OWeakObject*)this, UNO_QUERY ));
-
- Reference< XURLTransformer > xURLTransformer( m_xServiceManager->createInstance(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))),
- UNO_QUERY );
- Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
-
- com::sun::star::util::URL aTargetURL;
- aTargetURL.Complete = m_aCommandURL;
- xURLTransformer->parseStrict( aTargetURL );
- m_xDispatch = xDispatchProvider->queryDispatch( aTargetURL, ::rtl::OUString(), 0 );
-
- updatePopupMenu();
- }
-}
-
-void SAL_CALL FooterMenuController::updatePopupMenu() throw (::com::sun::star::uno::RuntimeException)
-{
- ResetableGuard aLock( m_aLock );
-
- if ( m_bDisposed )
- throw DisposedException();
-
- Reference< com::sun::star::frame::XModel > xModel( m_xModel );
- aLock.unlock();
-
- if ( !xModel.is() )
- PopupMenuControllerBase::updatePopupMenu();
-
- aLock.lock();
- if ( m_xPopupMenu.is() && m_xModel.is() )
- fillPopupMenu( m_xModel, m_xPopupMenu );
-}
-
-// XInitialization
-void SAL_CALL FooterMenuController::initialize( const Sequence< Any >& aArguments ) throw ( Exception, RuntimeException )
-{
- PopupMenuControllerBase::initialize( aArguments );
-}
-
}