1*2ee96f1cSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*2ee96f1cSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*2ee96f1cSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*2ee96f1cSAndrew Rist * distributed with this work for additional information 6*2ee96f1cSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*2ee96f1cSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*2ee96f1cSAndrew Rist * "License"); you may not use this file except in compliance 9*2ee96f1cSAndrew Rist * with the License. You may obtain a copy of the License at 10*2ee96f1cSAndrew Rist * 11*2ee96f1cSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*2ee96f1cSAndrew Rist * 13*2ee96f1cSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*2ee96f1cSAndrew Rist * software distributed under the License is distributed on an 15*2ee96f1cSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*2ee96f1cSAndrew Rist * KIND, either express or implied. See the License for the 17*2ee96f1cSAndrew Rist * specific language governing permissions and limitations 18*2ee96f1cSAndrew Rist * under the License. 19*2ee96f1cSAndrew Rist * 20*2ee96f1cSAndrew Rist *************************************************************/ 21*2ee96f1cSAndrew Rist 22*2ee96f1cSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25cdf0e10cSrcweir #include "precompiled_cui.hxx" 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/TemplateDescription.hpp> 28cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp> 29cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/XFilePicker.hpp> 30cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/XFilterManager.hpp> 31cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp> 32cdf0e10cSrcweir #include <com/sun/star/lang/XInitialization.hpp> 33cdf0e10cSrcweir #include <comphelper/processfactory.hxx> 34cdf0e10cSrcweir #include <com/sun/star/embed/EmbedStates.hpp> 35cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp> 36cdf0e10cSrcweir #include <com/sun/star/beans/PropertyValue.hpp> 37cdf0e10cSrcweir #include <com/sun/star/embed/XInsertObjectDialog.hpp> 38cdf0e10cSrcweir #include <com/sun/star/ucb/CommandAbortedException.hpp> 39cdf0e10cSrcweir #include <com/sun/star/task/XInteractionHandler.hpp> 40cdf0e10cSrcweir 41cdf0e10cSrcweir #include "insdlg.hxx" 42cdf0e10cSrcweir #include <dialmgr.hxx> 43cdf0e10cSrcweir #include <svtools/sores.hxx> 44cdf0e10cSrcweir 45cdf0e10cSrcweir #include <stdio.h> 46cdf0e10cSrcweir #include <tools/urlobj.hxx> 47cdf0e10cSrcweir #include <tools/debug.hxx> 48cdf0e10cSrcweir #include <svl/urihelper.hxx> 49cdf0e10cSrcweir #include <svtools/svmedit.hxx> 50cdf0e10cSrcweir #include <vcl/button.hxx> 51cdf0e10cSrcweir #include <vcl/fixed.hxx> 52cdf0e10cSrcweir #include <vcl/group.hxx> 53cdf0e10cSrcweir #include <vcl/lstbox.hxx> 54cdf0e10cSrcweir #include <vcl/msgbox.hxx> 55cdf0e10cSrcweir #include <vcl/svapp.hxx> 56cdf0e10cSrcweir #include <sot/clsids.hxx> 57cdf0e10cSrcweir #include <sfx2/frmdescr.hxx> 58cdf0e10cSrcweir #include <sfx2/viewsh.hxx> 59cdf0e10cSrcweir #include <sfx2/filedlghelper.hxx> 60cdf0e10cSrcweir #include <svl/ownlist.hxx> 61cdf0e10cSrcweir #include <comphelper/seqstream.hxx> 62cdf0e10cSrcweir 63cdf0e10cSrcweir #include "svuidlg.hrc" 64cdf0e10cSrcweir 65cdf0e10cSrcweir #include <osl/file.hxx> 66cdf0e10cSrcweir 67cdf0e10cSrcweir #include <com/sun/star/container/XHierarchicalNameAccess.hpp> 68cdf0e10cSrcweir #include <com/sun/star/container/XNameAccess.hpp> 69cdf0e10cSrcweir #include <unotools/processfactory.hxx> 70cdf0e10cSrcweir 71cdf0e10cSrcweir using namespace ::com::sun::star; 72cdf0e10cSrcweir using namespace ::com::sun::star::lang; 73cdf0e10cSrcweir using namespace ::com::sun::star::uno; 74cdf0e10cSrcweir using namespace ::com::sun::star::container; 75cdf0e10cSrcweir using namespace ::com::sun::star::ui::dialogs; 76cdf0e10cSrcweir using ::rtl::OUString; 77cdf0e10cSrcweir 78cdf0e10cSrcweir #define _SVSTDARR_STRINGSDTOR 79cdf0e10cSrcweir #include <svl/svstdarr.hxx> 80cdf0e10cSrcweir 81cdf0e10cSrcweir 82cdf0e10cSrcweir static String impl_getSvtResString( sal_uInt32 nId ) 83cdf0e10cSrcweir { 84cdf0e10cSrcweir String aRet; 85cdf0e10cSrcweir com::sun::star::lang::Locale aLocale = Application::GetSettings().GetUILocale(); 86cdf0e10cSrcweir ResMgr* pMgr = ResMgr::CreateResMgr( "svt", aLocale ); 87cdf0e10cSrcweir if( pMgr ) 88cdf0e10cSrcweir { 89cdf0e10cSrcweir aRet = String( ResId( nId, *pMgr ) ); 90cdf0e10cSrcweir delete pMgr; 91cdf0e10cSrcweir } 92cdf0e10cSrcweir return aRet; 93cdf0e10cSrcweir } 94cdf0e10cSrcweir 95cdf0e10cSrcweir sal_Bool InsertObjectDialog_Impl::IsCreateNew() const 96cdf0e10cSrcweir { 97cdf0e10cSrcweir return sal_False; 98cdf0e10cSrcweir } 99cdf0e10cSrcweir 100cdf0e10cSrcweir uno::Reference< io::XInputStream > InsertObjectDialog_Impl::GetIconIfIconified( ::rtl::OUString* /*pGraphicMediaType*/ ) 101cdf0e10cSrcweir { 102cdf0e10cSrcweir return uno::Reference< io::XInputStream >(); 103cdf0e10cSrcweir } 104cdf0e10cSrcweir 105cdf0e10cSrcweir InsertObjectDialog_Impl::InsertObjectDialog_Impl( Window * pParent, const ResId & rResId, const com::sun::star::uno::Reference < com::sun::star::embed::XStorage >& xStorage ) 106cdf0e10cSrcweir : ModalDialog( pParent, rResId ) 107cdf0e10cSrcweir , m_xStorage( xStorage ) 108cdf0e10cSrcweir , aCnt( m_xStorage ) 109cdf0e10cSrcweir { 110cdf0e10cSrcweir } 111cdf0e10cSrcweir 112cdf0e10cSrcweir // ----------------------------------------------------------------------- 113cdf0e10cSrcweir 114cdf0e10cSrcweir IMPL_LINK_INLINE_START( SvInsertOleDlg, DoubleClickHdl, ListBox *, EMPTYARG ) 115cdf0e10cSrcweir { 116cdf0e10cSrcweir EndDialog( RET_OK ); 117cdf0e10cSrcweir return 0; 118cdf0e10cSrcweir } 119cdf0e10cSrcweir IMPL_LINK_INLINE_END( SvInsertOleDlg, DoubleClickHdl, ListBox *, pListBox ) 120cdf0e10cSrcweir 121cdf0e10cSrcweir // ----------------------------------------------------------------------- 122cdf0e10cSrcweir 123cdf0e10cSrcweir IMPL_LINK( SvInsertOleDlg, BrowseHdl, PushButton *, EMPTYARG ) 124cdf0e10cSrcweir { 125cdf0e10cSrcweir Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); 126cdf0e10cSrcweir if( xFactory.is() ) 127cdf0e10cSrcweir { 128cdf0e10cSrcweir Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY ); 129cdf0e10cSrcweir DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" ); 130cdf0e10cSrcweir 131cdf0e10cSrcweir Reference< XInitialization > xInit( xFilePicker, UNO_QUERY ); 132cdf0e10cSrcweir Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY ); 133cdf0e10cSrcweir if( xInit.is() && xFilePicker.is() && xFilterMgr.is() ) 134cdf0e10cSrcweir { 135cdf0e10cSrcweir Sequence< Any > aServiceType( 1 ); 136cdf0e10cSrcweir aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE; 137cdf0e10cSrcweir xInit->initialize( aServiceType ); 138cdf0e10cSrcweir 139cdf0e10cSrcweir // add filter 140cdf0e10cSrcweir try 141cdf0e10cSrcweir { 142cdf0e10cSrcweir xFilterMgr->appendFilter( 143cdf0e10cSrcweir OUString(), 144cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM( "*.*" ) ) 145cdf0e10cSrcweir ); 146cdf0e10cSrcweir } 147cdf0e10cSrcweir catch( IllegalArgumentException& ) 148cdf0e10cSrcweir { 149cdf0e10cSrcweir DBG_ASSERT( 0, "caught IllegalArgumentException when registering filter\n" ); 150cdf0e10cSrcweir } 151cdf0e10cSrcweir 152cdf0e10cSrcweir if( xFilePicker->execute() == ExecutableDialogResults::OK ) 153cdf0e10cSrcweir { 154cdf0e10cSrcweir Sequence< OUString > aPathSeq( xFilePicker->getFiles() ); 155cdf0e10cSrcweir INetURLObject aObj( aPathSeq[0] ); 156cdf0e10cSrcweir aEdFilepath.SetText( aObj.PathToFileName() ); 157cdf0e10cSrcweir } 158cdf0e10cSrcweir } 159cdf0e10cSrcweir } 160cdf0e10cSrcweir 161cdf0e10cSrcweir return 0; 162cdf0e10cSrcweir } 163cdf0e10cSrcweir 164cdf0e10cSrcweir // ----------------------------------------------------------------------- 165cdf0e10cSrcweir 166cdf0e10cSrcweir IMPL_LINK( SvInsertOleDlg, RadioHdl, RadioButton *, EMPTYARG ) 167cdf0e10cSrcweir { 168cdf0e10cSrcweir if ( aRbNewObject.IsChecked() ) 169cdf0e10cSrcweir { 170cdf0e10cSrcweir aLbObjecttype.Show(); 171cdf0e10cSrcweir aEdFilepath.Hide(); 172cdf0e10cSrcweir aBtnFilepath.Hide(); 173cdf0e10cSrcweir aCbFilelink.Hide(); 174cdf0e10cSrcweir aGbObject.SetText( _aOldStr ); 175cdf0e10cSrcweir } 176cdf0e10cSrcweir else 177cdf0e10cSrcweir { 178cdf0e10cSrcweir aCbFilelink.Show(); 179cdf0e10cSrcweir aLbObjecttype.Hide(); 180cdf0e10cSrcweir aEdFilepath.Show(); 181cdf0e10cSrcweir aBtnFilepath.Show(); 182cdf0e10cSrcweir aCbFilelink.Show(); 183cdf0e10cSrcweir aGbObject.SetText( aStrFile ); 184cdf0e10cSrcweir } 185cdf0e10cSrcweir return 0; 186cdf0e10cSrcweir } 187cdf0e10cSrcweir 188cdf0e10cSrcweir // ----------------------------------------------------------------------- 189cdf0e10cSrcweir 190cdf0e10cSrcweir void SvInsertOleDlg::SelectDefault() 191cdf0e10cSrcweir { 192cdf0e10cSrcweir aLbObjecttype.SelectEntryPos( 0 ); 193cdf0e10cSrcweir } 194cdf0e10cSrcweir 195cdf0e10cSrcweir // ----------------------------------------------------------------------- 196cdf0e10cSrcweir SvInsertOleDlg::SvInsertOleDlg 197cdf0e10cSrcweir ( 198cdf0e10cSrcweir Window* pParent, 199cdf0e10cSrcweir const Reference < embed::XStorage >& xStorage, 200cdf0e10cSrcweir const SvObjectServerList* pServers 201cdf0e10cSrcweir ) 202cdf0e10cSrcweir : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OLEOBJECT ), xStorage ), 203cdf0e10cSrcweir aRbNewObject( this, CUI_RES( RB_NEW_OBJECT ) ), 204cdf0e10cSrcweir aRbObjectFromfile( this, CUI_RES( RB_OBJECT_FROMFILE ) ), 205cdf0e10cSrcweir aGbObject( this, CUI_RES( GB_OBJECT ) ), 206cdf0e10cSrcweir aLbObjecttype( this, CUI_RES( LB_OBJECTTYPE ) ), 207cdf0e10cSrcweir aEdFilepath( this, CUI_RES( ED_FILEPATH ) ), 208cdf0e10cSrcweir aBtnFilepath( this, CUI_RES( BTN_FILEPATH ) ), 209cdf0e10cSrcweir aCbFilelink( this, CUI_RES( CB_FILELINK ) ), 210cdf0e10cSrcweir aOKButton1( this, CUI_RES( 1 ) ), 211cdf0e10cSrcweir aCancelButton1( this, CUI_RES( 1 ) ), 212cdf0e10cSrcweir aHelpButton1( this, CUI_RES( 1 ) ), 213cdf0e10cSrcweir aStrFile( CUI_RES( STR_FILE ) ), 214cdf0e10cSrcweir m_pServers( pServers ) 215cdf0e10cSrcweir { 216cdf0e10cSrcweir FreeResource(); 217cdf0e10cSrcweir _aOldStr = aGbObject.GetText(); 218cdf0e10cSrcweir aLbObjecttype.SetDoubleClickHdl( LINK( this, SvInsertOleDlg, DoubleClickHdl ) ); 219cdf0e10cSrcweir aBtnFilepath.SetClickHdl( LINK( this, SvInsertOleDlg, BrowseHdl ) ); 220cdf0e10cSrcweir Link aLink( LINK( this, SvInsertOleDlg, RadioHdl ) ); 221cdf0e10cSrcweir aRbNewObject.SetClickHdl( aLink ); 222cdf0e10cSrcweir aRbObjectFromfile.SetClickHdl( aLink ); 223cdf0e10cSrcweir aRbNewObject.Check( sal_True ); 224cdf0e10cSrcweir RadioHdl( NULL ); 225cdf0e10cSrcweir aBtnFilepath.SetAccessibleRelationMemberOf(&aGbObject); 226cdf0e10cSrcweir } 227cdf0e10cSrcweir 228cdf0e10cSrcweir short SvInsertOleDlg::Execute() 229cdf0e10cSrcweir { 230cdf0e10cSrcweir short nRet = RET_OK; 231cdf0e10cSrcweir SvObjectServerList aObjS; 232cdf0e10cSrcweir if ( !m_pServers ) 233cdf0e10cSrcweir { 234cdf0e10cSrcweir // if no list was provided, take the complete one 235cdf0e10cSrcweir aObjS.FillInsertObjects(); 236cdf0e10cSrcweir m_pServers = &aObjS; 237cdf0e10cSrcweir } 238cdf0e10cSrcweir 239cdf0e10cSrcweir // fill listbox and select default 240cdf0e10cSrcweir ListBox& rBox = GetObjectTypes(); 241cdf0e10cSrcweir rBox.SetUpdateMode( sal_False ); 242cdf0e10cSrcweir for ( sal_uLong i = 0; i < m_pServers->Count(); i++ ) 243cdf0e10cSrcweir rBox.InsertEntry( (*m_pServers)[i].GetHumanName() ); 244cdf0e10cSrcweir rBox.SetUpdateMode( sal_True ); 245cdf0e10cSrcweir SelectDefault(); 246cdf0e10cSrcweir ::rtl::OUString aName; 247cdf0e10cSrcweir 248cdf0e10cSrcweir DBG_ASSERT( m_xStorage.is(), "No storage!"); 249cdf0e10cSrcweir if ( m_xStorage.is() && ( nRet = Dialog::Execute() ) == RET_OK ) 250cdf0e10cSrcweir { 251cdf0e10cSrcweir String aFileName; 252cdf0e10cSrcweir sal_Bool bLink = sal_False; 253cdf0e10cSrcweir sal_Bool bCreateNew = IsCreateNew(); 254cdf0e10cSrcweir if ( bCreateNew ) 255cdf0e10cSrcweir { 256cdf0e10cSrcweir // create and insert new embedded object 257cdf0e10cSrcweir String aServerName = rBox.GetSelectEntry(); 258cdf0e10cSrcweir const SvObjectServer* pS = m_pServers->Get( aServerName ); 259cdf0e10cSrcweir if ( pS ) 260cdf0e10cSrcweir { 261cdf0e10cSrcweir if( pS->GetClassName() == SvGlobalName( SO3_OUT_CLASSID ) ) 262cdf0e10cSrcweir { 263cdf0e10cSrcweir try 264cdf0e10cSrcweir { 265cdf0e10cSrcweir uno::Reference < embed::XInsertObjectDialog > xDialogCreator( 266cdf0e10cSrcweir ::comphelper::getProcessServiceFactory()->createInstance( 267cdf0e10cSrcweir ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.embed.MSOLEObjectSystemCreator")) ), 268cdf0e10cSrcweir uno::UNO_QUERY ); 269cdf0e10cSrcweir 270cdf0e10cSrcweir if ( xDialogCreator.is() ) 271cdf0e10cSrcweir { 272cdf0e10cSrcweir aName = aCnt.CreateUniqueObjectName(); 273cdf0e10cSrcweir embed::InsertedObjectInfo aNewInf = xDialogCreator->createInstanceByDialog( 274cdf0e10cSrcweir m_xStorage, 275cdf0e10cSrcweir aName, 276cdf0e10cSrcweir uno::Sequence < beans::PropertyValue >() ); 277cdf0e10cSrcweir 278cdf0e10cSrcweir OSL_ENSURE( aNewInf.Object.is(), "The object must be created or an exception must be thrown!" ); 279cdf0e10cSrcweir m_xObj = aNewInf.Object; 280cdf0e10cSrcweir for ( sal_Int32 nInd = 0; nInd < aNewInf.Options.getLength(); nInd++ ) 281cdf0e10cSrcweir if ( aNewInf.Options[nInd].Name.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Icon" ) ) ) ) 282cdf0e10cSrcweir { 283cdf0e10cSrcweir aNewInf.Options[nInd].Value >>= m_aIconMetaFile; 284cdf0e10cSrcweir } 285cdf0e10cSrcweir else if ( aNewInf.Options[nInd].Name.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IconFormat" ) ) ) ) 286cdf0e10cSrcweir { 287cdf0e10cSrcweir datatransfer::DataFlavor aFlavor; 288cdf0e10cSrcweir if ( aNewInf.Options[nInd].Value >>= aFlavor ) 289cdf0e10cSrcweir m_aIconMediaType = aFlavor.MimeType; 290cdf0e10cSrcweir } 291cdf0e10cSrcweir 292cdf0e10cSrcweir } 293cdf0e10cSrcweir } 294cdf0e10cSrcweir catch( ucb::CommandAbortedException& ) 295cdf0e10cSrcweir { 296cdf0e10cSrcweir // the user has pressed cancel 297cdf0e10cSrcweir } 298cdf0e10cSrcweir catch( uno::Exception& ) 299cdf0e10cSrcweir { 300cdf0e10cSrcweir // TODO: Error handling 301cdf0e10cSrcweir } 302cdf0e10cSrcweir } 303cdf0e10cSrcweir else 304cdf0e10cSrcweir { 305cdf0e10cSrcweir // create object with desired ClassId 306cdf0e10cSrcweir m_xObj = aCnt.CreateEmbeddedObject( pS->GetClassName().GetByteSequence(), aName ); 307cdf0e10cSrcweir } 308cdf0e10cSrcweir 309cdf0e10cSrcweir if ( !m_xObj.is() ) 310cdf0e10cSrcweir { 311cdf0e10cSrcweir if( aFileName.Len() ) // from OLE Dialog 312cdf0e10cSrcweir { 313cdf0e10cSrcweir // Objekt konnte nicht aus Datei erzeugt werden 314cdf0e10cSrcweir // global Resource from svtools (former so3 resource) 315cdf0e10cSrcweir String aErr( impl_getSvtResString( STR_ERROR_OBJNOCREATE_FROM_FILE ) ); 316cdf0e10cSrcweir aErr.SearchAndReplace( String( '%' ), aFileName ); 317cdf0e10cSrcweir ErrorBox( this, WB_3DLOOK | WB_OK, aErr ).Execute(); 318cdf0e10cSrcweir } 319cdf0e10cSrcweir else 320cdf0e10cSrcweir { 321cdf0e10cSrcweir // Objekt konnte nicht erzeugt werden 322cdf0e10cSrcweir // global Resource from svtools (former so3 resource) 323cdf0e10cSrcweir String aErr( impl_getSvtResString( STR_ERROR_OBJNOCREATE ) ); 324cdf0e10cSrcweir aErr.SearchAndReplace( String( '%' ), aServerName ); 325cdf0e10cSrcweir ErrorBox( this, WB_3DLOOK | WB_OK, aErr ).Execute(); 326cdf0e10cSrcweir } 327cdf0e10cSrcweir } 328cdf0e10cSrcweir } 329cdf0e10cSrcweir } 330cdf0e10cSrcweir else 331cdf0e10cSrcweir { 332cdf0e10cSrcweir aFileName = GetFilePath(); 333cdf0e10cSrcweir INetURLObject aURL; 334cdf0e10cSrcweir aURL.SetSmartProtocol( INET_PROT_FILE ); 335cdf0e10cSrcweir aURL.SetSmartURL( aFileName ); 336cdf0e10cSrcweir aFileName = aURL.GetMainURL( INetURLObject::NO_DECODE ); 337cdf0e10cSrcweir bLink = IsLinked(); 338cdf0e10cSrcweir 339cdf0e10cSrcweir if ( aFileName.Len() ) 340cdf0e10cSrcweir { 341cdf0e10cSrcweir // create MediaDescriptor for file to create object from 342cdf0e10cSrcweir uno::Sequence < beans::PropertyValue > aMedium( 2 ); 343cdf0e10cSrcweir aMedium[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "URL" ) ); 344cdf0e10cSrcweir aMedium[0].Value <<= ::rtl::OUString( aFileName ); 345cdf0e10cSrcweir 346cdf0e10cSrcweir uno::Reference< task::XInteractionHandler > xInteraction; 347cdf0e10cSrcweir uno::Reference< lang::XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory(); 348cdf0e10cSrcweir if ( xFactory.is() ) 349cdf0e10cSrcweir xInteraction = uno::Reference< task::XInteractionHandler >( 350cdf0e10cSrcweir xFactory->createInstance( 351cdf0e10cSrcweir DEFINE_CONST_UNICODE("com.sun.star.task.InteractionHandler") ), 352cdf0e10cSrcweir uno::UNO_QUERY_THROW ); 353cdf0e10cSrcweir 354cdf0e10cSrcweir if ( xInteraction.is() ) 355cdf0e10cSrcweir { 356cdf0e10cSrcweir aMedium[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "InteractionHandler" ) ); 357cdf0e10cSrcweir aMedium[1].Value <<= xInteraction; 358cdf0e10cSrcweir } 359cdf0e10cSrcweir else 360cdf0e10cSrcweir { 361cdf0e10cSrcweir OSL_ASSERT( "Can not get InteractionHandler!\n" ); 362cdf0e10cSrcweir aMedium.realloc( 1 ); 363cdf0e10cSrcweir } 364cdf0e10cSrcweir 365cdf0e10cSrcweir // create object from media descriptor 366cdf0e10cSrcweir if ( bLink ) 367cdf0e10cSrcweir m_xObj = aCnt.InsertEmbeddedLink( aMedium, aName ); 368cdf0e10cSrcweir else 369cdf0e10cSrcweir m_xObj = aCnt.InsertEmbeddedObject( aMedium, aName ); 370cdf0e10cSrcweir } 371cdf0e10cSrcweir 372cdf0e10cSrcweir if ( !m_xObj.is() ) 373cdf0e10cSrcweir { 374cdf0e10cSrcweir // Objekt konnte nicht aus Datei erzeugt werden 375cdf0e10cSrcweir // global Resource from svtools (former so3 resource) 376cdf0e10cSrcweir String aErr( impl_getSvtResString( STR_ERROR_OBJNOCREATE_FROM_FILE ) ); 377cdf0e10cSrcweir aErr.SearchAndReplace( String( '%' ), aFileName ); 378cdf0e10cSrcweir ErrorBox( this, WB_3DLOOK | WB_OK, aErr ).Execute(); 379cdf0e10cSrcweir } 380cdf0e10cSrcweir } 381cdf0e10cSrcweir } 382cdf0e10cSrcweir 383cdf0e10cSrcweir m_pServers = 0; 384cdf0e10cSrcweir return nRet; 385cdf0e10cSrcweir } 386cdf0e10cSrcweir 387cdf0e10cSrcweir uno::Reference< io::XInputStream > SvInsertOleDlg::GetIconIfIconified( ::rtl::OUString* pGraphicMediaType ) 388cdf0e10cSrcweir { 389cdf0e10cSrcweir if ( m_aIconMetaFile.getLength() ) 390cdf0e10cSrcweir { 391cdf0e10cSrcweir if ( pGraphicMediaType ) 392cdf0e10cSrcweir *pGraphicMediaType = m_aIconMediaType; 393cdf0e10cSrcweir 394cdf0e10cSrcweir return uno::Reference< io::XInputStream >( new ::comphelper::SequenceInputStream( m_aIconMetaFile ) ); 395cdf0e10cSrcweir } 396cdf0e10cSrcweir 397cdf0e10cSrcweir return uno::Reference< io::XInputStream >(); 398cdf0e10cSrcweir } 399cdf0e10cSrcweir 400cdf0e10cSrcweir IMPL_LINK( SvInsertPlugInDialog, BrowseHdl, PushButton *, EMPTYARG ) 401cdf0e10cSrcweir { 402cdf0e10cSrcweir Sequence< OUString > aFilterNames, aFilterTypes; 403cdf0e10cSrcweir void fillNetscapePluginFilters( Sequence< OUString >& rNames, Sequence< OUString >& rTypes ); 404cdf0e10cSrcweir fillNetscapePluginFilters( aFilterNames, aFilterTypes ); 405cdf0e10cSrcweir 406cdf0e10cSrcweir Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); 407cdf0e10cSrcweir if( xFactory.is() ) 408cdf0e10cSrcweir { 409cdf0e10cSrcweir Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY ); 410cdf0e10cSrcweir DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" ); 411cdf0e10cSrcweir 412cdf0e10cSrcweir Reference< XInitialization > xInit( xFilePicker, UNO_QUERY ); 413cdf0e10cSrcweir Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY ); 414cdf0e10cSrcweir if( xInit.is() && xFilePicker.is() && xFilterMgr.is() ) 415cdf0e10cSrcweir { 416cdf0e10cSrcweir Sequence< Any > aServiceType( 1 ); 417cdf0e10cSrcweir aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE; 418cdf0e10cSrcweir xInit->initialize( aServiceType ); 419cdf0e10cSrcweir 420cdf0e10cSrcweir // add the filters 421cdf0e10cSrcweir try 422cdf0e10cSrcweir { 423cdf0e10cSrcweir const OUString* pNames = aFilterNames.getConstArray(); 424cdf0e10cSrcweir const OUString* pTypes = aFilterTypes.getConstArray(); 425cdf0e10cSrcweir for( int i = 0; i < aFilterNames.getLength(); i++ ) 426cdf0e10cSrcweir xFilterMgr->appendFilter( pNames[i], pTypes[i] ); 427cdf0e10cSrcweir } 428cdf0e10cSrcweir catch( IllegalArgumentException& ) 429cdf0e10cSrcweir { 430cdf0e10cSrcweir DBG_ASSERT( 0, "caught IllegalArgumentException when registering filter\n" ); 431cdf0e10cSrcweir } 432cdf0e10cSrcweir 433cdf0e10cSrcweir if( xFilePicker->execute() == ExecutableDialogResults::OK ) 434cdf0e10cSrcweir { 435cdf0e10cSrcweir Sequence< OUString > aPathSeq( xFilePicker->getFiles() ); 436cdf0e10cSrcweir INetURLObject aObj( aPathSeq[0] ); 437cdf0e10cSrcweir aEdFileurl.SetText( aObj.PathToFileName() ); 438cdf0e10cSrcweir } 439cdf0e10cSrcweir } 440cdf0e10cSrcweir } 441cdf0e10cSrcweir 442cdf0e10cSrcweir return 0; 443cdf0e10cSrcweir } 444cdf0e10cSrcweir 445cdf0e10cSrcweir // ----------------------------------------------------------------------- 446cdf0e10cSrcweir 447cdf0e10cSrcweir SvInsertPlugInDialog::SvInsertPlugInDialog( Window* pParent, const uno::Reference < embed::XStorage >& xStorage ) 448cdf0e10cSrcweir : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_PLUGIN ), xStorage ), 449cdf0e10cSrcweir aGbFileurl( this, CUI_RES( GB_FILEURL ) ), 450cdf0e10cSrcweir aEdFileurl( this, CUI_RES( ED_FILEURL ) ), 451cdf0e10cSrcweir aBtnFileurl( this, CUI_RES( BTN_FILEURL ) ), 452cdf0e10cSrcweir aGbPluginsOptions( this, CUI_RES( GB_PLUGINS_OPTIONS ) ), 453cdf0e10cSrcweir aEdPluginsOptions( this, CUI_RES( ED_PLUGINS_OPTIONS ) ), 454cdf0e10cSrcweir aOKButton1( this, CUI_RES( 1 ) ), 455cdf0e10cSrcweir aCancelButton1( this, CUI_RES( 1 ) ), 456cdf0e10cSrcweir aHelpButton1( this, CUI_RES( 1 ) ), 457cdf0e10cSrcweir m_pURL(0) 458cdf0e10cSrcweir { 459cdf0e10cSrcweir FreeResource(); 460cdf0e10cSrcweir aBtnFileurl.SetClickHdl( LINK( this, SvInsertPlugInDialog, BrowseHdl ) ); 461cdf0e10cSrcweir } 462cdf0e10cSrcweir 463cdf0e10cSrcweir SvInsertPlugInDialog::~SvInsertPlugInDialog() 464cdf0e10cSrcweir { 465cdf0e10cSrcweir delete m_pURL; 466cdf0e10cSrcweir } 467cdf0e10cSrcweir 468cdf0e10cSrcweir // ----------------------------------------------------------------------- 469cdf0e10cSrcweir 470cdf0e10cSrcweir static void Plugin_ImplFillCommandSequence( const String& aCommands, uno::Sequence< beans::PropertyValue >& aCommandSequence ) 471cdf0e10cSrcweir { 472cdf0e10cSrcweir sal_uInt16 nEaten; 473cdf0e10cSrcweir SvCommandList aLst; 474cdf0e10cSrcweir aLst.AppendCommands( aCommands, &nEaten ); 475cdf0e10cSrcweir 476cdf0e10cSrcweir const sal_Int32 nCount = aLst.Count(); 477cdf0e10cSrcweir aCommandSequence.realloc( nCount ); 478cdf0e10cSrcweir for( sal_Int32 nIndex = 0; nIndex < nCount; nIndex++ ) 479cdf0e10cSrcweir { 480cdf0e10cSrcweir const SvCommand& rCommand = aLst[ nIndex ]; 481cdf0e10cSrcweir 482cdf0e10cSrcweir aCommandSequence[nIndex].Name = rCommand.GetCommand(); 483cdf0e10cSrcweir aCommandSequence[nIndex].Handle = -1; 484cdf0e10cSrcweir aCommandSequence[nIndex].Value = makeAny( OUString( rCommand.GetArgument() ) ); 485cdf0e10cSrcweir aCommandSequence[nIndex].State = beans::PropertyState_DIRECT_VALUE; 486cdf0e10cSrcweir } 487cdf0e10cSrcweir } 488cdf0e10cSrcweir 489cdf0e10cSrcweir short SvInsertPlugInDialog::Execute() 490cdf0e10cSrcweir { 491cdf0e10cSrcweir short nRet = RET_OK; 492cdf0e10cSrcweir m_aCommands.Erase(); 493cdf0e10cSrcweir DBG_ASSERT( m_xStorage.is(), "No storage!"); 494cdf0e10cSrcweir if ( m_xStorage.is() && ( nRet = Dialog::Execute() ) == RET_OK ) 495cdf0e10cSrcweir { 496cdf0e10cSrcweir if ( !m_pURL ) 497cdf0e10cSrcweir m_pURL = new INetURLObject(); 498cdf0e10cSrcweir else 499cdf0e10cSrcweir *m_pURL = INetURLObject(); 500cdf0e10cSrcweir 501cdf0e10cSrcweir m_aCommands = GetPlugInOptions(); 502cdf0e10cSrcweir String aURL = GetPlugInFile(); 503cdf0e10cSrcweir 504cdf0e10cSrcweir // URL can be a valid and absolute URL or a system file name 505cdf0e10cSrcweir m_pURL->SetSmartProtocol( INET_PROT_FILE ); 506cdf0e10cSrcweir if ( !aURL.Len() || m_pURL->SetSmartURL( aURL ) ) 507cdf0e10cSrcweir { 508cdf0e10cSrcweir // create a plugin object 509cdf0e10cSrcweir ::rtl::OUString aName; 510cdf0e10cSrcweir SvGlobalName aClassId( SO3_PLUGIN_CLASSID ); 511cdf0e10cSrcweir m_xObj = aCnt.CreateEmbeddedObject( aClassId.GetByteSequence(), aName ); 512cdf0e10cSrcweir } 513cdf0e10cSrcweir 514cdf0e10cSrcweir if ( m_xObj.is() ) 515cdf0e10cSrcweir { 516cdf0e10cSrcweir // set properties from dialog 517cdf0e10cSrcweir if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED ) 518cdf0e10cSrcweir m_xObj->changeState( embed::EmbedStates::RUNNING ); 519cdf0e10cSrcweir 520cdf0e10cSrcweir uno::Reference < beans::XPropertySet > xSet( m_xObj->getComponent(), uno::UNO_QUERY ); 521cdf0e10cSrcweir if ( xSet.is() ) 522cdf0e10cSrcweir { 523cdf0e10cSrcweir xSet->setPropertyValue( ::rtl::OUString::createFromAscii("PluginURL"), 524cdf0e10cSrcweir makeAny( ::rtl::OUString( m_pURL->GetMainURL( INetURLObject::NO_DECODE ) ) ) ); 525cdf0e10cSrcweir uno::Sequence< beans::PropertyValue > aCommandSequence; 526cdf0e10cSrcweir Plugin_ImplFillCommandSequence( m_aCommands, aCommandSequence ); 527cdf0e10cSrcweir xSet->setPropertyValue( ::rtl::OUString::createFromAscii("PluginCommands"), makeAny( aCommandSequence ) ); 528cdf0e10cSrcweir } 529cdf0e10cSrcweir } 530cdf0e10cSrcweir else 531cdf0e10cSrcweir { 532cdf0e10cSrcweir // PlugIn konnte nicht erzeugt werden 533cdf0e10cSrcweir // global Resource from svtools (former so3 resource) 534cdf0e10cSrcweir String aErr( impl_getSvtResString( STR_ERROR_OBJNOCREATE_PLUGIN ) ); 535cdf0e10cSrcweir aErr.SearchAndReplace( String( '%' ), aURL ); 536cdf0e10cSrcweir ErrorBox( this, WB_3DLOOK | WB_OK, aErr ).Execute(); 537cdf0e10cSrcweir } 538cdf0e10cSrcweir } 539cdf0e10cSrcweir 540cdf0e10cSrcweir return nRet; 541cdf0e10cSrcweir } 542cdf0e10cSrcweir 543cdf0e10cSrcweir // class SvInsertAppletDlg ----------------------------------------------- 544cdf0e10cSrcweir 545cdf0e10cSrcweir IMPL_LINK( SvInsertAppletDialog, BrowseHdl, PushButton *, EMPTYARG ) 546cdf0e10cSrcweir { 547cdf0e10cSrcweir Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); 548cdf0e10cSrcweir if( xFactory.is() ) 549cdf0e10cSrcweir { 550cdf0e10cSrcweir Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY ); 551cdf0e10cSrcweir DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" ); 552cdf0e10cSrcweir 553cdf0e10cSrcweir Reference< XInitialization > xInit( xFilePicker, UNO_QUERY ); 554cdf0e10cSrcweir Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY ); 555cdf0e10cSrcweir if( xInit.is() && xFilePicker.is() && xFilterMgr.is() ) 556cdf0e10cSrcweir { 557cdf0e10cSrcweir Sequence< Any > aServiceType( 1 ); 558cdf0e10cSrcweir aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE; 559cdf0e10cSrcweir xInit->initialize( aServiceType ); 560cdf0e10cSrcweir 561cdf0e10cSrcweir // add filter 562cdf0e10cSrcweir try 563cdf0e10cSrcweir { 564cdf0e10cSrcweir xFilterMgr->appendFilter( 565cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM( "Applet" ) ), 566cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM( "*.class" ) ) 567cdf0e10cSrcweir ); 568cdf0e10cSrcweir } 569cdf0e10cSrcweir catch( IllegalArgumentException& ) 570cdf0e10cSrcweir { 571cdf0e10cSrcweir DBG_ASSERT( 0, "caught IllegalArgumentException when registering filter\n" ); 572cdf0e10cSrcweir } 573cdf0e10cSrcweir 574cdf0e10cSrcweir if( xFilePicker->execute() == ExecutableDialogResults::OK ) 575cdf0e10cSrcweir { 576cdf0e10cSrcweir Sequence< OUString > aPathSeq( xFilePicker->getFiles() ); 577cdf0e10cSrcweir 578cdf0e10cSrcweir INetURLObject aObj( aPathSeq[0] ); 579cdf0e10cSrcweir aEdClassfile.SetText( aObj.getName() ); 580cdf0e10cSrcweir aObj.removeSegment(); 581cdf0e10cSrcweir aEdClasslocation.SetText( aObj.PathToFileName() ); 582cdf0e10cSrcweir } 583cdf0e10cSrcweir } 584cdf0e10cSrcweir } 585cdf0e10cSrcweir 586cdf0e10cSrcweir return 0; 587cdf0e10cSrcweir } 588cdf0e10cSrcweir 589cdf0e10cSrcweir // ----------------------------------------------------------------------- 590cdf0e10cSrcweir 591cdf0e10cSrcweir SvInsertAppletDialog::SvInsertAppletDialog( Window* pParent, const uno::Reference < embed::XStorage >& xStorage ) 592cdf0e10cSrcweir : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_APPLET ), xStorage ), 593cdf0e10cSrcweir aFtClassfile( this, CUI_RES( FT_CLASSFILE ) ), 594cdf0e10cSrcweir aEdClassfile( this, CUI_RES( ED_CLASSFILE ) ), 595cdf0e10cSrcweir aFtClasslocation( this, CUI_RES( FT_CLASSLOCATION ) ), 596cdf0e10cSrcweir aEdClasslocation( this, CUI_RES( ED_CLASSLOCATION ) ), 597cdf0e10cSrcweir aBtnClass( this, CUI_RES( BTN_CLASS ) ), 598cdf0e10cSrcweir aGbClass( this, CUI_RES( GB_CLASS ) ), 599cdf0e10cSrcweir aEdAppletOptions( this, CUI_RES( ED_APPLET_OPTIONS ) ), 600cdf0e10cSrcweir aGbAppletOptions( this, CUI_RES( GB_APPLET_OPTIONS ) ), 601cdf0e10cSrcweir aOKButton1( this, CUI_RES( 1 ) ), 602cdf0e10cSrcweir aCancelButton1( this, CUI_RES( 1 ) ), 603cdf0e10cSrcweir aHelpButton1( this, CUI_RES( 1 ) ), 604cdf0e10cSrcweir m_pURL(0) 605cdf0e10cSrcweir { 606cdf0e10cSrcweir FreeResource(); 607cdf0e10cSrcweir aBtnClass.SetClickHdl( LINK( this, SvInsertAppletDialog, BrowseHdl ) ); 608cdf0e10cSrcweir } 609cdf0e10cSrcweir 610cdf0e10cSrcweir SvInsertAppletDialog::SvInsertAppletDialog( Window* pParent, const uno::Reference < embed::XEmbeddedObject >& xObj ) 611cdf0e10cSrcweir : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_APPLET ), uno::Reference < embed::XStorage >() ), 612cdf0e10cSrcweir aFtClassfile( this, CUI_RES( FT_CLASSFILE ) ), 613cdf0e10cSrcweir aEdClassfile( this, CUI_RES( ED_CLASSFILE ) ), 614cdf0e10cSrcweir aFtClasslocation( this, CUI_RES( FT_CLASSLOCATION ) ), 615cdf0e10cSrcweir aEdClasslocation( this, CUI_RES( ED_CLASSLOCATION ) ), 616cdf0e10cSrcweir aBtnClass( this, CUI_RES( BTN_CLASS ) ), 617cdf0e10cSrcweir aGbClass( this, CUI_RES( GB_CLASS ) ), 618cdf0e10cSrcweir aEdAppletOptions( this, CUI_RES( ED_APPLET_OPTIONS ) ), 619cdf0e10cSrcweir aGbAppletOptions( this, CUI_RES( GB_APPLET_OPTIONS ) ), 620cdf0e10cSrcweir aOKButton1( this, CUI_RES( 1 ) ), 621cdf0e10cSrcweir aCancelButton1( this, CUI_RES( 1 ) ), 622cdf0e10cSrcweir aHelpButton1( this, CUI_RES( 1 ) ), 623cdf0e10cSrcweir m_pURL(0) 624cdf0e10cSrcweir { 625cdf0e10cSrcweir m_xObj = xObj; 626cdf0e10cSrcweir FreeResource(); 627cdf0e10cSrcweir aBtnClass.SetClickHdl( LINK( this, SvInsertAppletDialog, BrowseHdl ) ); 628cdf0e10cSrcweir } 629cdf0e10cSrcweir 630cdf0e10cSrcweir 631cdf0e10cSrcweir SvInsertAppletDialog::~SvInsertAppletDialog() 632cdf0e10cSrcweir { 633cdf0e10cSrcweir delete m_pURL; 634cdf0e10cSrcweir } 635cdf0e10cSrcweir 636cdf0e10cSrcweir short SvInsertAppletDialog::Execute() 637cdf0e10cSrcweir { 638cdf0e10cSrcweir short nRet = RET_OK; 639cdf0e10cSrcweir m_aClass.Erase(); 640cdf0e10cSrcweir m_aCommands.Erase(); 641cdf0e10cSrcweir 642cdf0e10cSrcweir sal_Bool bOK = sal_False; 643cdf0e10cSrcweir uno::Reference < beans::XPropertySet > xSet; 644cdf0e10cSrcweir if ( m_xObj.is() ) 645cdf0e10cSrcweir { 646cdf0e10cSrcweir try 647cdf0e10cSrcweir { 648cdf0e10cSrcweir if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED ) 649cdf0e10cSrcweir m_xObj->changeState( embed::EmbedStates::RUNNING ); 650cdf0e10cSrcweir xSet = uno::Reference < beans::XPropertySet >( m_xObj->getComponent(), uno::UNO_QUERY ); 651cdf0e10cSrcweir ::rtl::OUString aStr; 652cdf0e10cSrcweir uno::Any aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("AppletCode") ); 653cdf0e10cSrcweir if ( aAny >>= aStr ) 654cdf0e10cSrcweir SetClass( aStr ); 655cdf0e10cSrcweir aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("AppletCodeBase") ); 656cdf0e10cSrcweir if ( aAny >>= aStr ) 657cdf0e10cSrcweir SetClassLocation( aStr ); 658cdf0e10cSrcweir uno::Sequence< beans::PropertyValue > aCommands; 659cdf0e10cSrcweir aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("AppletCommands") ); 660cdf0e10cSrcweir if ( aAny >>= aCommands ) 661cdf0e10cSrcweir { 662cdf0e10cSrcweir SvCommandList aList; 663cdf0e10cSrcweir aList.FillFromSequence( aCommands ); 664cdf0e10cSrcweir SetAppletOptions( aList.GetCommands() ); 665cdf0e10cSrcweir } 666cdf0e10cSrcweir 667cdf0e10cSrcweir String aText( CUI_RES( STR_EDIT_APPLET ) ); 668cdf0e10cSrcweir SetText( aText ); 669cdf0e10cSrcweir bOK = sal_True; 670cdf0e10cSrcweir } 671cdf0e10cSrcweir catch ( uno::Exception& ) 672cdf0e10cSrcweir { 673cdf0e10cSrcweir DBG_ERROR( "No Applet!" ); 674cdf0e10cSrcweir } 675cdf0e10cSrcweir } 676cdf0e10cSrcweir else 677cdf0e10cSrcweir { 678cdf0e10cSrcweir DBG_ASSERT( m_xStorage.is(), "No storage!"); 679cdf0e10cSrcweir bOK = m_xStorage.is(); 680cdf0e10cSrcweir } 681cdf0e10cSrcweir 682cdf0e10cSrcweir if ( bOK && ( nRet = Dialog::Execute() ) == RET_OK ) 683cdf0e10cSrcweir { 684cdf0e10cSrcweir if ( !m_xObj.is() ) 685cdf0e10cSrcweir { 686cdf0e10cSrcweir ::rtl::OUString aName; 687cdf0e10cSrcweir SvGlobalName aClassId( SO3_APPLET_CLASSID ); 688cdf0e10cSrcweir m_xObj = aCnt.CreateEmbeddedObject( aClassId.GetByteSequence(), aName ); 689cdf0e10cSrcweir if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED ) 690cdf0e10cSrcweir m_xObj->changeState( embed::EmbedStates::RUNNING ); 691cdf0e10cSrcweir xSet = uno::Reference < beans::XPropertySet >( m_xObj->getComponent(), uno::UNO_QUERY ); 692cdf0e10cSrcweir } 693cdf0e10cSrcweir 694cdf0e10cSrcweir if ( m_xObj.is() ) 695cdf0e10cSrcweir { 696cdf0e10cSrcweir try 697cdf0e10cSrcweir { 698cdf0e10cSrcweir sal_Bool bIPActive = m_xObj->getCurrentState() == embed::EmbedStates::INPLACE_ACTIVE; 699cdf0e10cSrcweir if ( bIPActive ) 700cdf0e10cSrcweir m_xObj->changeState( embed::EmbedStates::RUNNING ); 701cdf0e10cSrcweir 702cdf0e10cSrcweir String aClassLocation = GetClassLocation(); 703cdf0e10cSrcweir 704cdf0e10cSrcweir // Hack, aFileName wird auch fuer Class benutzt 705cdf0e10cSrcweir m_aClass = GetClass(); 706cdf0e10cSrcweir xSet->setPropertyValue( ::rtl::OUString::createFromAscii("AppletCode"), makeAny( ::rtl::OUString( m_aClass ) ) ); 707cdf0e10cSrcweir 708cdf0e10cSrcweir ::rtl::OUString tmp = aClassLocation; 709cdf0e10cSrcweir ::osl::File::getFileURLFromSystemPath(tmp, tmp); 710cdf0e10cSrcweir aClassLocation = tmp; 711cdf0e10cSrcweir xSet->setPropertyValue( ::rtl::OUString::createFromAscii("AppletCodeBase"), makeAny( tmp ) ); 712cdf0e10cSrcweir m_aCommands = GetAppletOptions(); 713cdf0e10cSrcweir 714cdf0e10cSrcweir uno::Sequence< beans::PropertyValue > aCommandSequence; 715cdf0e10cSrcweir Plugin_ImplFillCommandSequence( m_aCommands, aCommandSequence ); 716cdf0e10cSrcweir xSet->setPropertyValue( ::rtl::OUString::createFromAscii("AppletCommands"), makeAny( aCommandSequence ) ); 717cdf0e10cSrcweir 718cdf0e10cSrcweir if ( bIPActive ) 719cdf0e10cSrcweir m_xObj->changeState( embed::EmbedStates::INPLACE_ACTIVE ); 720cdf0e10cSrcweir } 721cdf0e10cSrcweir catch ( uno::Exception& ) 722cdf0e10cSrcweir { 723cdf0e10cSrcweir DBG_ERROR( "No Applet!" ); 724cdf0e10cSrcweir } 725cdf0e10cSrcweir } 726cdf0e10cSrcweir } 727cdf0e10cSrcweir 728cdf0e10cSrcweir return nRet; 729cdf0e10cSrcweir } 730cdf0e10cSrcweir 731cdf0e10cSrcweir SfxInsertFloatingFrameDialog::SfxInsertFloatingFrameDialog( Window *pParent, 732cdf0e10cSrcweir const com::sun::star::uno::Reference < com::sun::star::embed::XStorage >& xStorage ) 733cdf0e10cSrcweir : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_IFRAME ), xStorage ) 734cdf0e10cSrcweir , aFTName ( this, CUI_RES( FT_FRAMENAME ) ) 735cdf0e10cSrcweir , aEDName ( this, CUI_RES( ED_FRAMENAME ) ) 736cdf0e10cSrcweir , aFTURL ( this, CUI_RES( FT_URL ) ) 737cdf0e10cSrcweir , aEDURL ( this, CUI_RES( ED_URL ) ) 738cdf0e10cSrcweir , aBTOpen ( this, CUI_RES(BT_FILEOPEN ) ) 739cdf0e10cSrcweir 740cdf0e10cSrcweir , aFLScrolling ( this, CUI_RES( GB_SCROLLING ) ) 741cdf0e10cSrcweir , aRBScrollingOn ( this, CUI_RES( RB_SCROLLINGON ) ) 742cdf0e10cSrcweir , aRBScrollingOff ( this, CUI_RES( RB_SCROLLINGOFF ) ) 743cdf0e10cSrcweir , aRBScrollingAuto ( this, CUI_RES( RB_SCROLLINGAUTO ) ) 744cdf0e10cSrcweir , aFLSepLeft( this, CUI_RES( FL_SEP_LEFT ) ) 745cdf0e10cSrcweir , aFLFrameBorder( this, CUI_RES( GB_BORDER ) ) 746cdf0e10cSrcweir , aRBFrameBorderOn ( this, CUI_RES( RB_FRMBORDER_ON ) ) 747cdf0e10cSrcweir , aRBFrameBorderOff ( this, CUI_RES( RB_FRMBORDER_OFF ) ) 748cdf0e10cSrcweir , aFLSepRight( this, CUI_RES( FL_SEP_RIGHT ) ) 749cdf0e10cSrcweir , aFLMargin( this, CUI_RES( GB_MARGIN ) ) 750cdf0e10cSrcweir , aFTMarginWidth ( this, CUI_RES( FT_MARGINWIDTH ) ) 751cdf0e10cSrcweir , aNMMarginWidth ( this, CUI_RES( NM_MARGINWIDTH ) ) 752cdf0e10cSrcweir , aCBMarginWidthDefault( this, CUI_RES( CB_MARGINHEIGHTDEFAULT ) ) 753cdf0e10cSrcweir , aFTMarginHeight ( this, CUI_RES( FT_MARGINHEIGHT ) ) 754cdf0e10cSrcweir , aNMMarginHeight ( this, CUI_RES( NM_MARGINHEIGHT ) ) 755cdf0e10cSrcweir , aCBMarginHeightDefault( this, CUI_RES( CB_MARGINHEIGHTDEFAULT ) ) 756cdf0e10cSrcweir , aOKButton1( this, CUI_RES( 1 ) ) 757cdf0e10cSrcweir , aCancelButton1( this, CUI_RES( 1 ) ) 758cdf0e10cSrcweir , aHelpButton1( this, CUI_RES( 1 ) ) 759cdf0e10cSrcweir { 760cdf0e10cSrcweir FreeResource(); 761cdf0e10cSrcweir 762cdf0e10cSrcweir aFLSepLeft.SetStyle(aFLSepLeft.GetStyle()|WB_VERT); 763cdf0e10cSrcweir aFLSepRight.SetStyle(aFLSepRight.GetStyle()|WB_VERT); 764cdf0e10cSrcweir 765cdf0e10cSrcweir Link aLink( STATIC_LINK( this, SfxInsertFloatingFrameDialog, CheckHdl ) ); 766cdf0e10cSrcweir aCBMarginWidthDefault.SetClickHdl( aLink ); 767cdf0e10cSrcweir aCBMarginHeightDefault.SetClickHdl( aLink ); 768cdf0e10cSrcweir 769cdf0e10cSrcweir aCBMarginWidthDefault.Check(); 770cdf0e10cSrcweir aCBMarginHeightDefault.Check(); 771cdf0e10cSrcweir aRBScrollingAuto.Check(); 772cdf0e10cSrcweir aRBFrameBorderOn.Check(); 773cdf0e10cSrcweir 774cdf0e10cSrcweir aBTOpen.SetClickHdl( STATIC_LINK( this, SfxInsertFloatingFrameDialog, OpenHdl ) ); 775cdf0e10cSrcweir } 776cdf0e10cSrcweir 777cdf0e10cSrcweir SfxInsertFloatingFrameDialog::SfxInsertFloatingFrameDialog( Window *pParent, const uno::Reference < embed::XEmbeddedObject >& xObj ) 778cdf0e10cSrcweir : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_IFRAME ), uno::Reference < embed::XStorage >() ) 779cdf0e10cSrcweir , aFTName ( this, CUI_RES( FT_FRAMENAME ) ) 780cdf0e10cSrcweir , aEDName ( this, CUI_RES( ED_FRAMENAME ) ) 781cdf0e10cSrcweir , aFTURL ( this, CUI_RES( FT_URL ) ) 782cdf0e10cSrcweir , aEDURL ( this, CUI_RES( ED_URL ) ) 783cdf0e10cSrcweir , aBTOpen ( this, CUI_RES(BT_FILEOPEN ) ) 784cdf0e10cSrcweir 785cdf0e10cSrcweir , aFLScrolling ( this, CUI_RES( GB_SCROLLING ) ) 786cdf0e10cSrcweir , aRBScrollingOn ( this, CUI_RES( RB_SCROLLINGON ) ) 787cdf0e10cSrcweir , aRBScrollingOff ( this, CUI_RES( RB_SCROLLINGOFF ) ) 788cdf0e10cSrcweir , aRBScrollingAuto ( this, CUI_RES( RB_SCROLLINGAUTO ) ) 789cdf0e10cSrcweir 790cdf0e10cSrcweir , aFLSepLeft( this, CUI_RES( FL_SEP_LEFT ) ) 791cdf0e10cSrcweir , aFLFrameBorder( this, CUI_RES( GB_BORDER ) ) 792cdf0e10cSrcweir , aRBFrameBorderOn ( this, CUI_RES( RB_FRMBORDER_ON ) ) 793cdf0e10cSrcweir , aRBFrameBorderOff ( this, CUI_RES( RB_FRMBORDER_OFF ) ) 794cdf0e10cSrcweir 795cdf0e10cSrcweir , aFLSepRight( this, CUI_RES( FL_SEP_RIGHT ) ) 796cdf0e10cSrcweir , aFLMargin( this, CUI_RES( GB_MARGIN ) ) 797cdf0e10cSrcweir , aFTMarginWidth ( this, CUI_RES( FT_MARGINWIDTH ) ) 798cdf0e10cSrcweir , aNMMarginWidth ( this, CUI_RES( NM_MARGINWIDTH ) ) 799cdf0e10cSrcweir , aCBMarginWidthDefault( this, CUI_RES( CB_MARGINHEIGHTDEFAULT ) ) 800cdf0e10cSrcweir , aFTMarginHeight ( this, CUI_RES( FT_MARGINHEIGHT ) ) 801cdf0e10cSrcweir , aNMMarginHeight ( this, CUI_RES( NM_MARGINHEIGHT ) ) 802cdf0e10cSrcweir , aCBMarginHeightDefault( this, CUI_RES( CB_MARGINHEIGHTDEFAULT ) ) 803cdf0e10cSrcweir , aOKButton1( this, CUI_RES( 1 ) ) 804cdf0e10cSrcweir , aCancelButton1( this, CUI_RES( 1 ) ) 805cdf0e10cSrcweir , aHelpButton1( this, CUI_RES( 1 ) ) 806cdf0e10cSrcweir { 807cdf0e10cSrcweir FreeResource(); 808cdf0e10cSrcweir 809cdf0e10cSrcweir m_xObj = xObj; 810cdf0e10cSrcweir 811cdf0e10cSrcweir aFLSepLeft.SetStyle(aFLSepLeft.GetStyle()|WB_VERT); 812cdf0e10cSrcweir aFLSepRight.SetStyle(aFLSepRight.GetStyle()|WB_VERT); 813cdf0e10cSrcweir 814cdf0e10cSrcweir Link aLink( STATIC_LINK( this, SfxInsertFloatingFrameDialog, CheckHdl ) ); 815cdf0e10cSrcweir aCBMarginWidthDefault.SetClickHdl( aLink ); 816cdf0e10cSrcweir aCBMarginHeightDefault.SetClickHdl( aLink ); 817cdf0e10cSrcweir 818cdf0e10cSrcweir aCBMarginWidthDefault.Check(); 819cdf0e10cSrcweir aCBMarginHeightDefault.Check(); 820cdf0e10cSrcweir aRBScrollingAuto.Check(); 821cdf0e10cSrcweir aRBFrameBorderOn.Check(); 822cdf0e10cSrcweir 823cdf0e10cSrcweir aBTOpen.SetClickHdl( STATIC_LINK( this, SfxInsertFloatingFrameDialog, OpenHdl ) ); 824cdf0e10cSrcweir } 825cdf0e10cSrcweir 826cdf0e10cSrcweir short SfxInsertFloatingFrameDialog::Execute() 827cdf0e10cSrcweir { 828cdf0e10cSrcweir short nRet = RET_OK; 829cdf0e10cSrcweir sal_Bool bOK = sal_False; 830cdf0e10cSrcweir uno::Reference < beans::XPropertySet > xSet; 831cdf0e10cSrcweir if ( m_xObj.is() ) 832cdf0e10cSrcweir { 833cdf0e10cSrcweir try 834cdf0e10cSrcweir { 835cdf0e10cSrcweir if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED ) 836cdf0e10cSrcweir m_xObj->changeState( embed::EmbedStates::RUNNING ); 837cdf0e10cSrcweir xSet = uno::Reference < beans::XPropertySet >( m_xObj->getComponent(), uno::UNO_QUERY ); 838cdf0e10cSrcweir ::rtl::OUString aStr; 839cdf0e10cSrcweir uno::Any aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameURL") ); 840cdf0e10cSrcweir if ( aAny >>= aStr ) 841cdf0e10cSrcweir aEDURL.SetText( aStr ); 842cdf0e10cSrcweir aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameName") ); 843cdf0e10cSrcweir if ( aAny >>= aStr ) 844cdf0e10cSrcweir aEDName.SetText( aStr ); 845cdf0e10cSrcweir 846cdf0e10cSrcweir sal_Int32 nSize = SIZE_NOT_SET; 847cdf0e10cSrcweir aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameMarginWidth") ); 848cdf0e10cSrcweir aAny >>= nSize; 849cdf0e10cSrcweir 850cdf0e10cSrcweir if ( nSize == SIZE_NOT_SET ) 851cdf0e10cSrcweir { 852cdf0e10cSrcweir aCBMarginWidthDefault.Check( sal_True ); 853cdf0e10cSrcweir aNMMarginWidth.SetText( String::CreateFromInt32( DEFAULT_MARGIN_WIDTH ) ); 854cdf0e10cSrcweir aFTMarginWidth.Enable( sal_False ); 855cdf0e10cSrcweir aNMMarginWidth.Enable( sal_False ); 856cdf0e10cSrcweir } 857cdf0e10cSrcweir else 858cdf0e10cSrcweir aNMMarginWidth.SetText( String::CreateFromInt32( nSize ) ); 859cdf0e10cSrcweir 860cdf0e10cSrcweir aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameMarginHeight") ); 861cdf0e10cSrcweir aAny >>= nSize; 862cdf0e10cSrcweir 863cdf0e10cSrcweir if ( nSize == SIZE_NOT_SET ) 864cdf0e10cSrcweir { 865cdf0e10cSrcweir aCBMarginHeightDefault.Check( sal_True ); 866cdf0e10cSrcweir aNMMarginHeight.SetText( String::CreateFromInt32( DEFAULT_MARGIN_HEIGHT ) ); 867cdf0e10cSrcweir aFTMarginHeight.Enable( sal_False ); 868cdf0e10cSrcweir aNMMarginHeight.Enable( sal_False ); 869cdf0e10cSrcweir } 870cdf0e10cSrcweir else 871cdf0e10cSrcweir aNMMarginHeight.SetText( String::CreateFromInt32( nSize ) ); 872cdf0e10cSrcweir 873cdf0e10cSrcweir sal_Bool bScrollOn = sal_False; 874cdf0e10cSrcweir sal_Bool bScrollOff = sal_False; 875cdf0e10cSrcweir sal_Bool bScrollAuto = sal_False; 876cdf0e10cSrcweir 877cdf0e10cSrcweir sal_Bool bSet = sal_False; 878cdf0e10cSrcweir aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameIsAutoScroll") ); 879cdf0e10cSrcweir aAny >>= bSet; 880cdf0e10cSrcweir if ( !bSet ) 881cdf0e10cSrcweir { 882cdf0e10cSrcweir aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameIsScrollingMode") ); 883cdf0e10cSrcweir aAny >>= bSet; 884cdf0e10cSrcweir bScrollOn = bSet; 885cdf0e10cSrcweir bScrollOff = !bSet; 886cdf0e10cSrcweir } 887cdf0e10cSrcweir else 888cdf0e10cSrcweir bScrollAuto = sal_True; 889cdf0e10cSrcweir 890cdf0e10cSrcweir aRBScrollingOn.Check( bScrollOn ); 891cdf0e10cSrcweir aRBScrollingOff.Check( bScrollOff ); 892cdf0e10cSrcweir aRBScrollingAuto.Check( bScrollAuto ); 893cdf0e10cSrcweir 894cdf0e10cSrcweir bSet = sal_False; 895cdf0e10cSrcweir aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameIsAutoBorder") ); 896cdf0e10cSrcweir aAny >>= bSet; 897cdf0e10cSrcweir if ( !bSet ) 898cdf0e10cSrcweir { 899cdf0e10cSrcweir aAny = xSet->getPropertyValue( ::rtl::OUString::createFromAscii("FrameIsBorder") ); 900cdf0e10cSrcweir aAny >>= bSet; 901cdf0e10cSrcweir aRBFrameBorderOn.Check( bSet ); 902cdf0e10cSrcweir aRBFrameBorderOff.Check( !bSet ); 903cdf0e10cSrcweir } 904cdf0e10cSrcweir 905cdf0e10cSrcweir SetUpdateMode( sal_True ); 906cdf0e10cSrcweir bOK = sal_True; 907cdf0e10cSrcweir } 908cdf0e10cSrcweir catch ( uno::Exception& ) 909cdf0e10cSrcweir { 910cdf0e10cSrcweir DBG_ERROR( "No IFrame!" ); 911cdf0e10cSrcweir } 912cdf0e10cSrcweir } 913cdf0e10cSrcweir else 914cdf0e10cSrcweir { 915cdf0e10cSrcweir DBG_ASSERT( m_xStorage.is(), "No storage!"); 916cdf0e10cSrcweir bOK = m_xStorage.is(); 917cdf0e10cSrcweir } 918cdf0e10cSrcweir 919cdf0e10cSrcweir if ( bOK && ( nRet = Dialog::Execute() ) == RET_OK ) 920cdf0e10cSrcweir { 921cdf0e10cSrcweir ::rtl::OUString aURL; 922cdf0e10cSrcweir if ( aEDURL.GetText().Len() ) 923cdf0e10cSrcweir { 924cdf0e10cSrcweir // URL can be a valid and absolute URL or a system file name 925cdf0e10cSrcweir INetURLObject aObj; 926cdf0e10cSrcweir aObj.SetSmartProtocol( INET_PROT_FILE ); 927cdf0e10cSrcweir if ( aObj.SetSmartURL( aEDURL.GetText() ) ) 928cdf0e10cSrcweir aURL = aObj.GetMainURL( INetURLObject::NO_DECODE ); 929cdf0e10cSrcweir } 930cdf0e10cSrcweir 931cdf0e10cSrcweir if ( !m_xObj.is() && aURL.getLength() ) 932cdf0e10cSrcweir { 933cdf0e10cSrcweir // create the object 934cdf0e10cSrcweir ::rtl::OUString aName; 935cdf0e10cSrcweir SvGlobalName aClassId( SO3_IFRAME_CLASSID ); 936cdf0e10cSrcweir m_xObj = aCnt.CreateEmbeddedObject( aClassId.GetByteSequence(), aName ); 937cdf0e10cSrcweir if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED ) 938cdf0e10cSrcweir m_xObj->changeState( embed::EmbedStates::RUNNING ); 939cdf0e10cSrcweir xSet = uno::Reference < beans::XPropertySet >( m_xObj->getComponent(), uno::UNO_QUERY ); 940cdf0e10cSrcweir } 941cdf0e10cSrcweir 942cdf0e10cSrcweir if ( m_xObj.is() ) 943cdf0e10cSrcweir { 944cdf0e10cSrcweir try 945cdf0e10cSrcweir { 946cdf0e10cSrcweir sal_Bool bIPActive = m_xObj->getCurrentState() == embed::EmbedStates::INPLACE_ACTIVE; 947cdf0e10cSrcweir if ( bIPActive ) 948cdf0e10cSrcweir m_xObj->changeState( embed::EmbedStates::RUNNING ); 949cdf0e10cSrcweir 950cdf0e10cSrcweir ::rtl::OUString aName = aEDName.GetText(); 951cdf0e10cSrcweir ScrollingMode eScroll = ScrollingNo; 952cdf0e10cSrcweir if ( aRBScrollingOn.IsChecked() ) 953cdf0e10cSrcweir eScroll = ScrollingYes; 954cdf0e10cSrcweir if ( aRBScrollingOff.IsChecked() ) 955cdf0e10cSrcweir eScroll = ScrollingNo; 956cdf0e10cSrcweir if ( aRBScrollingAuto.IsChecked() ) 957cdf0e10cSrcweir eScroll = ScrollingAuto; 958cdf0e10cSrcweir 959cdf0e10cSrcweir sal_Bool bHasBorder = aRBFrameBorderOn.IsChecked(); 960cdf0e10cSrcweir 961cdf0e10cSrcweir long lMarginWidth; 962cdf0e10cSrcweir if ( !aCBMarginWidthDefault.IsChecked() ) 963cdf0e10cSrcweir lMarginWidth = (long) aNMMarginWidth.GetText().ToInt32(); 964cdf0e10cSrcweir else 965cdf0e10cSrcweir lMarginWidth = SIZE_NOT_SET; 966cdf0e10cSrcweir 967cdf0e10cSrcweir long lMarginHeight; 968cdf0e10cSrcweir if ( !aCBMarginHeightDefault.IsChecked() ) 969cdf0e10cSrcweir lMarginHeight = (long) aNMMarginHeight.GetText().ToInt32(); 970cdf0e10cSrcweir else 971cdf0e10cSrcweir lMarginHeight = SIZE_NOT_SET; 972cdf0e10cSrcweir 973cdf0e10cSrcweir xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameURL"), makeAny( aURL ) ); 974cdf0e10cSrcweir xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameName"), makeAny( aName ) ); 975cdf0e10cSrcweir 976cdf0e10cSrcweir if ( eScroll == ScrollingAuto ) 977cdf0e10cSrcweir xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameIsAutoScroll"), 978cdf0e10cSrcweir makeAny( sal_True ) ); 979cdf0e10cSrcweir else 980cdf0e10cSrcweir xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameIsScrollingMode"), 981cdf0e10cSrcweir makeAny( (sal_Bool) ( eScroll == ScrollingYes) ) ); 982cdf0e10cSrcweir 983cdf0e10cSrcweir //if ( aFrmDescr.IsFrameBorderSet() ) 984cdf0e10cSrcweir xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameIsBorder"), 985cdf0e10cSrcweir makeAny( bHasBorder ) ); 986cdf0e10cSrcweir /*else 987cdf0e10cSrcweir xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameIsAutoBorder"), 988cdf0e10cSrcweir makeAny( sal_True ) );*/ 989cdf0e10cSrcweir 990cdf0e10cSrcweir xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameMarginWidth"), 991cdf0e10cSrcweir makeAny( sal_Int32( lMarginWidth ) ) ); 992cdf0e10cSrcweir 993cdf0e10cSrcweir xSet->setPropertyValue( ::rtl::OUString::createFromAscii("FrameMarginHeight"), 994cdf0e10cSrcweir makeAny( sal_Int32( lMarginHeight ) ) ); 995cdf0e10cSrcweir 996cdf0e10cSrcweir if ( bIPActive ) 997cdf0e10cSrcweir m_xObj->changeState( embed::EmbedStates::INPLACE_ACTIVE ); 998cdf0e10cSrcweir } 999cdf0e10cSrcweir catch ( uno::Exception& ) 1000cdf0e10cSrcweir { 1001cdf0e10cSrcweir DBG_ERROR( "No IFrame!" ); 1002cdf0e10cSrcweir } 1003cdf0e10cSrcweir } 1004cdf0e10cSrcweir } 1005cdf0e10cSrcweir 1006cdf0e10cSrcweir return nRet; 1007cdf0e10cSrcweir } 1008cdf0e10cSrcweir 1009cdf0e10cSrcweir //------------------------------------------------------------------------------ 1010cdf0e10cSrcweir 1011cdf0e10cSrcweir IMPL_STATIC_LINK( SfxInsertFloatingFrameDialog, CheckHdl, CheckBox*, pCB ) 1012cdf0e10cSrcweir { 1013cdf0e10cSrcweir if ( pCB == &pThis->aCBMarginWidthDefault ) 1014cdf0e10cSrcweir { 1015cdf0e10cSrcweir if ( pCB->IsChecked() ) 1016cdf0e10cSrcweir pThis->aNMMarginWidth.SetText( String::CreateFromInt32( DEFAULT_MARGIN_WIDTH ) ); 1017cdf0e10cSrcweir pThis->aFTMarginWidth.Enable( !pCB->IsChecked() ); 1018cdf0e10cSrcweir pThis->aNMMarginWidth.Enable( !pCB->IsChecked() ); 1019cdf0e10cSrcweir } 1020cdf0e10cSrcweir 1021cdf0e10cSrcweir if ( pCB == &pThis->aCBMarginHeightDefault ) 1022cdf0e10cSrcweir { 1023cdf0e10cSrcweir if ( pCB->IsChecked() ) 1024cdf0e10cSrcweir pThis->aNMMarginHeight.SetText( String::CreateFromInt32( DEFAULT_MARGIN_HEIGHT ) ); 1025cdf0e10cSrcweir pThis->aFTMarginHeight.Enable( !pCB->IsChecked() ); 1026cdf0e10cSrcweir pThis->aNMMarginHeight.Enable( !pCB->IsChecked() ); 1027cdf0e10cSrcweir } 1028cdf0e10cSrcweir 1029cdf0e10cSrcweir return 0L; 1030cdf0e10cSrcweir } 1031cdf0e10cSrcweir 1032cdf0e10cSrcweir //------------------------------------------------------------------------------ 1033cdf0e10cSrcweir 1034cdf0e10cSrcweir IMPL_STATIC_LINK( SfxInsertFloatingFrameDialog, OpenHdl, PushButton*, EMPTYARG ) 1035cdf0e10cSrcweir { 1036cdf0e10cSrcweir Window* pOldParent = Application::GetDefDialogParent(); 1037cdf0e10cSrcweir Application::SetDefDialogParent( pThis ); 1038cdf0e10cSrcweir 1039cdf0e10cSrcweir // create the file dialog 1040cdf0e10cSrcweir sfx2::FileDialogHelper aFileDlg( WB_OPEN | SFXWB_PASSWORD, String() ); 1041cdf0e10cSrcweir 1042cdf0e10cSrcweir // set the title 1043cdf0e10cSrcweir aFileDlg.SetTitle( OUString( String( CUI_RES( MD_INSERT_OBJECT_IFRAME ) ) ) ); 1044cdf0e10cSrcweir 1045cdf0e10cSrcweir // show the dialog 1046cdf0e10cSrcweir if ( aFileDlg.Execute() == ERRCODE_NONE ) 1047cdf0e10cSrcweir pThis->aEDURL.SetText( 1048cdf0e10cSrcweir INetURLObject( aFileDlg.GetPath() ).GetMainURL( INetURLObject::DECODE_WITH_CHARSET ) ); 1049cdf0e10cSrcweir 1050cdf0e10cSrcweir Application::SetDefDialogParent( pOldParent ); 1051cdf0e10cSrcweir return 0L; 1052cdf0e10cSrcweir } 1053cdf0e10cSrcweir 1054