diff options
author | Oliver Bolte <obo@openoffice.org> | 2009-09-08 04:57:32 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2009-09-08 04:57:32 +0000 |
commit | ca00697e3dae9a03573d11281fc8d9a4ee391d3d (patch) | |
tree | c390c65f02f6f32b6d6d9faa600f4688a8c81857 /framework/source/uielement/footermenucontroller.cxx | |
parent | 047473d4f1a12e867ab7154113f7f1c5422d5368 (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.cxx | 250 |
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 ); -} - } |