/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svtools.hxx" //_________________________________________________________________________________________________________________ // switches // use it to enable test szenarios //_________________________________________________________________________________________________________________ #define TEST_DYNAMICMENUOPTIONS //_________________________________________________________________________________________________________________ // my own includes //_________________________________________________________________________________________________________________ #include //_________________________________________________________________________________________________________________ // interface includes //_________________________________________________________________________________________________________________ #include #include #include #include //_________________________________________________________________________________________________________________ // other includes //_________________________________________________________________________________________________________________ #ifndef _COMPHELPER_PROCESSFACTORY_HXX_ #include #endif #include #include #include #include #include #ifndef _RTL_USTRING_ #include #endif #include #include #include /* #include #include */ #include #include #include #include #include //_________________________________________________________________________________________________________________ // const //_________________________________________________________________________________________________________________ //_________________________________________________________________________________________________________________ // namespace //_________________________________________________________________________________________________________________ using namespace ::rtl ; using namespace ::osl ; using namespace ::comphelper ; using namespace ::com::sun::star::uno ; using namespace ::com::sun::star::lang ; using namespace ::com::sun::star::beans ; using namespace ::com::sun::star::registry ; //_________________________________________________________________________________________________________________ // defines //_________________________________________________________________________________________________________________ #define ASCII( STEXT ) OUString( RTL_CONSTASCII_USTRINGPARAM( STEXT )) #define SERVICENAME_SIMPLEREGISTRY OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.registry.SimpleRegistry" )) #define SERVICENAME_NESTEDREGISTRY OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.registry.NestedRegistry" )) //_________________________________________________________________________________________________________________ // declarations //_________________________________________________________________________________________________________________ class TestApplication : public Application { //************************************************************************************************************* // interface //************************************************************************************************************* public: void Main(); //************************************************************************************************************* // test methods //************************************************************************************************************* private: void impl_testDynamicMenuOptions(); //************************************************************************************************************* // helper methods //************************************************************************************************************* private: static Reference< XMultiServiceFactory > getUNOServiceManager(); //************************************************************************************************************* // member //************************************************************************************************************* private: }; // class TestApplication //_________________________________________________________________________________________________________________ // global variables //_________________________________________________________________________________________________________________ TestApplication aTestApplication ; //_________________________________________________________________________________________________________________ // main //_________________________________________________________________________________________________________________ void TestApplication::Main() { /**-*********************************************************************************************************** initialize program **************************************************************************************************************/ // Init global servicemanager and set it for external services. ::comphelper::setProcessServiceFactory( TestApplication::getUNOServiceManager() ); // Control sucess of operation. OSL_ENSURE( !(::comphelper::getProcessServiceFactory()!=TestApplication::getUNOServiceManager()), "TestApplication::Main()\nGlobal servicemanager not right initialized.\n" ); /**-*********************************************************************************************************** test area **************************************************************************************************************/ #ifdef TEST_DYNAMICMENUOPTIONS impl_testDynamicMenuOptions(); #endif // Execute(); OSL_ENSURE( sal_False, "Test was successful!\n" ); } //***************************************************************************************************************** // test configuration of dynamic menus "New" and "Wizard" //***************************************************************************************************************** void TestApplication::impl_testDynamicMenuOptions() { SvtDynamicMenuOptions aCFG; // Test: // read menus // if( menus == empty ) // { // fill it with samples // read it again // } // output content Sequence< Sequence< PropertyValue > > lNewMenu = aCFG.GetMenu( E_NEWMENU ); Sequence< Sequence< PropertyValue > > lWizardMenu = aCFG.GetMenu( E_WIZARDMENU ); if( lNewMenu.getLength() < 1 ) { aCFG.AppendItem( E_NEWMENU, ASCII("private:factory/swriter"), ASCII("new writer"), ASCII("icon_writer"), ASCII("_blank") ); aCFG.AppendItem( E_NEWMENU, ASCII("private:factory/scalc" ), ASCII("new calc" ), ASCII("icon_calc" ), ASCII("_blank") ); aCFG.AppendItem( E_NEWMENU, ASCII("private:factory/sdraw" ), ASCII("new draw" ), ASCII("icon_draw" ), ASCII("_blank") ); lNewMenu = aCFG.GetMenu( E_NEWMENU ); } if( lWizardMenu.getLength() < 1 ) { aCFG.AppendItem( E_WIZARDMENU, ASCII("file://a"), ASCII("system file"), ASCII("icon_file"), ASCII("_self") ); aCFG.AppendItem( E_WIZARDMENU, ASCII("ftp://b" ), ASCII("ftp host" ), ASCII("icon_ftp" ), ASCII("_self") ); aCFG.AppendItem( E_WIZARDMENU, ASCII("http://c"), ASCII("www" ), ASCII("icon_www" ), ASCII("_self") ); lWizardMenu = aCFG.GetMenu( E_WIZARDMENU ); } sal_uInt32 nItemCount ; sal_uInt32 nItem ; sal_uInt32 nPropertyCount; sal_uInt32 nProperty ; OUString sPropertyValue; OUStringBuffer sOut( 5000 ) ; nItemCount = lNewMenu.getLength(); for( nItem=0; nItem>= sPropertyValue; sOut.appendAscii ( "New/" ); sOut.append ( (sal_Int32)nItem ); sOut.appendAscii ( "/" ); sOut.append ( lNewMenu[nItem][nProperty].Name ); sOut.appendAscii ( " = " ); sOut.append ( sPropertyValue ); sOut.appendAscii ( "\n" ); } } sOut.appendAscii("\n--------------------------------------\n"); nItemCount = lWizardMenu.getLength(); for( nItem=0; nItem>= sPropertyValue; sOut.appendAscii ( "Wizard/" ); sOut.append ( (sal_Int32)nItem ); sOut.appendAscii ( "/" ); sOut.append ( lNewMenu[nItem][nProperty].Name ); sOut.appendAscii ( " = " ); sOut.append ( sPropertyValue ); sOut.appendAscii ( "\n" ); } } OSL_ENSURE( sal_False, OUStringToOString( sOut.makeStringAndClear(), RTL_TEXTENCODING_UTF8 ).getStr() ); } //***************************************************************************************************************** // create new uno servicemanager by using normall applicat.rdb and user.rdb of an office installation! // Don't use this application at same time like the office! //***************************************************************************************************************** Reference< XMultiServiceFactory > TestApplication::getUNOServiceManager() { static Reference< XMultiServiceFactory > smgr; if( ! smgr.is() ) { Reference< XComponentContext > rCtx = cppu::defaultBootstrap_InitialComponentContext(); smgr = Reference< XMultiServiceFactory > ( rCtx->getServiceManager() , UNO_QUERY ); } return smgr; }