summaryrefslogtreecommitdiff
path: root/cui/source/dialogs/insdlg.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'cui/source/dialogs/insdlg.cxx')
-rw-r--r--cui/source/dialogs/insdlg.cxx1050
1 files changed, 0 insertions, 1050 deletions
diff --git a/cui/source/dialogs/insdlg.cxx b/cui/source/dialogs/insdlg.cxx
deleted file mode 100644
index a9eb0dcd4..000000000
--- a/cui/source/dialogs/insdlg.cxx
+++ /dev/null
@@ -1,1050 +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.
- *
- ************************************************************************/
-
-#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
-#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
-#include <com/sun/star/ui/dialogs/XFilePicker.hpp>
-#include <com/sun/star/ui/dialogs/XFilterManager.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <comphelper/processfactory.hxx>
-#include <com/sun/star/embed/EmbedStates.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/embed/XInsertObjectDialog.hpp>
-#include <com/sun/star/ucb/CommandAbortedException.hpp>
-#include <com/sun/star/task/XInteractionHandler.hpp>
-
-#include "insdlg.hxx"
-#include <dialmgr.hxx>
-#include <svtools/sores.hxx>
-
-#include <stdio.h>
-#include <tools/urlobj.hxx>
-#include <tools/debug.hxx>
-#include <svl/urihelper.hxx>
-#include <svtools/svmedit.hxx>
-#include <vcl/button.hxx>
-#include <vcl/fixed.hxx>
-#include <vcl/group.hxx>
-#include <vcl/lstbox.hxx>
-#include <vcl/msgbox.hxx>
-#include <vcl/svapp.hxx>
-#include <sot/clsids.hxx>
-#include <sfx2/frmdescr.hxx>
-#include <sfx2/viewsh.hxx>
-#include <sfx2/filedlghelper.hxx>
-#include <svl/ownlist.hxx>
-#include <comphelper/seqstream.hxx>
-
-#include "svuidlg.hrc"
-
-#include <osl/file.hxx>
-
-#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <unotools/processfactory.hxx>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::ui::dialogs;
-using ::rtl::OUString;
-
-#define _SVSTDARR_STRINGSDTOR
-#include <svl/svstdarr.hxx>
-
-
-static String impl_getSvtResString( sal_uInt32 nId )
-{
- String aRet;
- com::sun::star::lang::Locale aLocale = Application::GetSettings().GetUILocale();
- ResMgr* pMgr = ResMgr::CreateResMgr( "svt", aLocale );
- if( pMgr )
- {
- aRet = String( ResId( nId, *pMgr ) );
- delete pMgr;
- }
- return aRet;
-}
-
-sal_Bool InsertObjectDialog_Impl::IsCreateNew() const
-{
- return sal_False;
-}
-
-uno::Reference< io::XInputStream > InsertObjectDialog_Impl::GetIconIfIconified( ::rtl::OUString* /*pGraphicMediaType*/ )
-{
- return uno::Reference< io::XInputStream >();
-}
-
-InsertObjectDialog_Impl::InsertObjectDialog_Impl( Window * pParent, const ResId & rResId, const com::sun::star::uno::Reference < com::sun::star::embed::XStorage >& xStorage )
- : ModalDialog( pParent, rResId )
- , m_xStorage( xStorage )
- , aCnt( m_xStorage )
-{
-}
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK_INLINE_START( SvInsertOleDlg, DoubleClickHdl, ListBox *, EMPTYARG )
-{
- EndDialog( RET_OK );
- return 0;
-}
-IMPL_LINK_INLINE_END( SvInsertOleDlg, DoubleClickHdl, ListBox *, pListBox )
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( SvInsertOleDlg, BrowseHdl, PushButton *, EMPTYARG )
-{
- Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
- if( xFactory.is() )
- {
- Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY );
- DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" );
-
- Reference< XInitialization > xInit( xFilePicker, UNO_QUERY );
- Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY );
- if( xInit.is() && xFilePicker.is() && xFilterMgr.is() )
- {
- Sequence< Any > aServiceType( 1 );
- aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE;
- xInit->initialize( aServiceType );
-
- // add filter
- try
- {
- xFilterMgr->appendFilter(
- OUString(),
- OUString( RTL_CONSTASCII_USTRINGPARAM( "*.*" ) )
- );
- }
- catch( IllegalArgumentException& )
- {
- DBG_ASSERT( 0, "caught IllegalArgumentException when registering filter\n" );
- }
-
- if( xFilePicker->execute() == ExecutableDialogResults::OK )
- {
- Sequence< OUString > aPathSeq( xFilePicker->getFiles() );
- INetURLObject aObj( aPathSeq[0] );
- aEdFilepath.SetText( aObj.PathToFileName() );
- }
- }
- }
-
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-IMPL_LINK( SvInsertOleDlg, RadioHdl, RadioButton *, EMPTYARG )
-{
- if ( aRbNewObject.IsChecked() )
- {
- aLbObjecttype.Show();
- aEdFilepath.Hide();
- aBtnFilepath.Hide();
- aCbFilelink.Hide();
- aGbObject.SetText( _aOldStr );
- }
- else
- {
- aCbFilelink.Show();
- aLbObjecttype.Hide();
- aEdFilepath.Show();
- aBtnFilepath.Show();
- aCbFilelink.Show();
- aGbObject.SetText( aStrFile );
- }
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-void SvInsertOleDlg::SelectDefault()
-{
- aLbObjecttype.SelectEntryPos( 0 );
-}
-
-// -----------------------------------------------------------------------
-SvInsertOleDlg::SvInsertOleDlg
-(
- Window* pParent,
- const Reference < embed::XStorage >& xStorage,
- const SvObjectServerList* pServers
-)
- : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OLEOBJECT ), xStorage ),
- aRbNewObject( this, CUI_RES( RB_NEW_OBJECT ) ),
- aRbObjectFromfile( this, CUI_RES( RB_OBJECT_FROMFILE ) ),
- aGbObject( this, CUI_RES( GB_OBJECT ) ),
- aLbObjecttype( this, CUI_RES( LB_OBJECTTYPE ) ),
- aEdFilepath( this, CUI_RES( ED_FILEPATH ) ),
- aBtnFilepath( this, CUI_RES( BTN_FILEPATH ) ),
- aCbFilelink( this, CUI_RES( CB_FILELINK ) ),
- aOKButton1( this, CUI_RES( 1 ) ),
- aCancelButton1( this, CUI_RES( 1 ) ),
- aHelpButton1( this, CUI_RES( 1 ) ),
- aStrFile( CUI_RES( STR_FILE ) ),
- m_pServers( pServers )
-{
- FreeResource();
- _aOldStr = aGbObject.GetText();
- aLbObjecttype.SetDoubleClickHdl( LINK( this, SvInsertOleDlg, DoubleClickHdl ) );
- aBtnFilepath.SetClickHdl( LINK( this, SvInsertOleDlg, BrowseHdl ) );
- Link aLink( LINK( this, SvInsertOleDlg, RadioHdl ) );
- aRbNewObject.SetClickHdl( aLink );
- aRbObjectFromfile.SetClickHdl( aLink );
- aRbNewObject.Check( sal_True );
- RadioHdl( NULL );
- aBtnFilepath.SetAccessibleRelationMemberOf(&aGbObject);
-}
-
-short SvInsertOleDlg::Execute()
-{
- short nRet = RET_OK;
- SvObjectServerList aObjS;
- if ( !m_pServers )
- {
- // if no list was provided, take the complete one
- aObjS.FillInsertObjects();
- m_pServers = &aObjS;
- }
-
- // fill listbox and select default
- ListBox& rBox = GetObjectTypes();
- rBox.SetUpdateMode( sal_False );
- for ( sal_uLong i = 0; i < m_pServers->Count(); i++ )
- rBox.InsertEntry( (*m_pServers)[i].GetHumanName() );
- rBox.SetUpdateMode( sal_True );
- SelectDefault();
- ::rtl::OUString aName;
-
- DBG_ASSERT( m_xStorage.is(), "No storage!");
- if ( m_xStorage.is() && ( nRet = Dialog::Execute() ) == RET_OK )
- {
- String aFileName;
- sal_Bool bLink = sal_False;
- sal_Bool bCreateNew = IsCreateNew();
- if ( bCreateNew )
- {
- // create and insert new embedded object
- String aServerName = rBox.GetSelectEntry();
- const SvObjectServer* pS = m_pServers->Get( aServerName );
- if ( pS )
- {
- if( pS->GetClassName() == SvGlobalName( SO3_OUT_CLASSID ) )
- {
- try
- {
- uno::Reference < embed::XInsertObjectDialog > xDialogCreator(
- ::comphelper::getProcessServiceFactory()->createInstance(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.embed.MSOLEObjectSystemCreator")) ),
- uno::UNO_QUERY );
-
- if ( xDialogCreator.is() )
- {
- aName = aCnt.CreateUniqueObjectName();
- embed::InsertedObjectInfo aNewInf = xDialogCreator->createInstanceByDialog(
- m_xStorage,
- aName,
- uno::Sequence < beans::PropertyValue >() );
-
- OSL_ENSURE( aNewInf.Object.is(), "The object must be created or an exception must be thrown!" );
- m_xObj = aNewInf.Object;
- for ( sal_Int32 nInd = 0; nInd < aNewInf.Options.getLength(); nInd++ )
- if ( aNewInf.Options[nInd].Name.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Icon" ) ) ) )
- {
- aNewInf.Options[nInd].Value >>= m_aIconMetaFile;
- }
- else if ( aNewInf.Options[nInd].Name.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IconFormat" ) ) ) )
- {
- datatransfer::DataFlavor aFlavor;
- if ( aNewInf.Options[nInd].Value >>= aFlavor )
- m_aIconMediaType = aFlavor.MimeType;
- }
-
- }
- }
- catch( ucb::CommandAbortedException& )
- {
- // the user has pressed cancel
- }
- catch( uno::Exception& )
- {
- // TODO: Error handling
- }
- }
- else
- {
- // create object with desired ClassId
- m_xObj = aCnt.CreateEmbeddedObject( pS->GetClassName().GetByteSequence(), aName );
- }
-
- if ( !m_xObj.is() )
- {
- if( aFileName.Len() ) // from OLE Dialog
- {
- // Objekt konnte nicht aus Datei erzeugt werden
- // global Resource from svtools (former so3 resource)
- String aErr( impl_getSvtResString( STR_ERROR_OBJNOCREATE_FROM_FILE ) );
- aErr.SearchAndReplace( String( '%' ), aFileName );
- ErrorBox( this, WB_3DLOOK | WB_OK, aErr ).Execute();
- }
- else
- {
- // Objekt konnte nicht erzeugt werden
- // global Resource from svtools (former so3 resource)
- String aErr( impl_getSvtResString( STR_ERROR_OBJNOCREATE ) );
- aErr.SearchAndReplace( String( '%' ), aServerName );
- ErrorBox( this, WB_3DLOOK | WB_OK, aErr ).Execute();
- }
- }
- }
- }
- else
- {
- aFileName = GetFilePath();
- INetURLObject aURL;
- aURL.SetSmartProtocol( INET_PROT_FILE );
- aURL.SetSmartURL( aFileName );
- aFileName = aURL.GetMainURL( INetURLObject::NO_DECODE );
- bLink = IsLinked();
-
- if ( aFileName.Len() )
- {
- // create MediaDescriptor for file to create object from
- uno::Sequence < beans::PropertyValue > aMedium( 2 );
- aMedium[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "URL" ) );
- aMedium[0].Value <<= ::rtl::OUString( aFileName );
-
- uno::Reference< task::XInteractionHandler > xInteraction;
- uno::Reference< lang::XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory();
- if ( xFactory.is() )
- xInteraction = uno::Reference< task::XInteractionHandler >(
- xFactory->createInstance(
- DEFINE_CONST_UNICODE("com.sun.star.task.InteractionHandler") ),
- uno::UNO_QUERY_THROW );
-
- if ( xInteraction.is() )
- {
- aMedium[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "InteractionHandler" ) );
- aMedium[1].Value <<= xInteraction;
- }
- else
- {
- OSL_FAIL( "Can not get InteractionHandler!\n" );
- aMedium.realloc( 1 );
- }
-
- // create object from media descriptor
- if ( bLink )
- m_xObj = aCnt.InsertEmbeddedLink( aMedium, aName );
- else
- m_xObj = aCnt.InsertEmbeddedObject( aMedium, aName );
- }
-
- if ( !m_xObj.is() )
- {
- // Objekt konnte nicht aus Datei erzeugt werden
- // global Resource from svtools (former so3 resource)
- String aErr( impl_getSvtResString( STR_ERROR_OBJNOCREATE_FROM_FILE ) );
- aErr.SearchAndReplace( String( '%' ), aFileName );
- ErrorBox( this, WB_3DLOOK | WB_OK, aErr ).Execute();
- }
- }
- }
-
- m_pServers = 0;
- return nRet;
-}
-
-uno::Reference< io::XInputStream > SvInsertOleDlg::GetIconIfIconified( ::rtl::OUString* pGraphicMediaType )
-{
- if ( m_aIconMetaFile.getLength() )
- {
- if ( pGraphicMediaType )
- *pGraphicMediaType = m_aIconMediaType;
-
- return uno::Reference< io::XInputStream >( new ::comphelper::SequenceInputStream( m_aIconMetaFile ) );
- }
-
- return uno::Reference< io::XInputStream >();
-}
-
-IMPL_LINK( SvInsertPlugInDialog, BrowseHdl, PushButton *, EMPTYARG )
-{
- Sequence< OUString > aFilterNames, aFilterTypes;
- void fillNetscapePluginFilters( Sequence< OUString >& rNames, Sequence< OUString >& rTypes );
- fillNetscapePluginFilters( aFilterNames, aFilterTypes );
-
- Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
- if( xFactory.is() )
- {
- Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY );
- DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" );
-
- Reference< XInitialization > xInit( xFilePicker, UNO_QUERY );
- Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY );
- if( xInit.is() && xFilePicker.is() && xFilterMgr.is() )
- {
- Sequence< Any > aServiceType( 1 );
- aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE;
- xInit->initialize( aServiceType );
-
- // add the filters
- try
- {
- const OUString* pNames = aFilterNames.getConstArray();
- const OUString* pTypes = aFilterTypes.getConstArray();
- for( int i = 0; i < aFilterNames.getLength(); i++ )
- xFilterMgr->appendFilter( pNames[i], pTypes[i] );
- }
- catch( IllegalArgumentException& )
- {
- DBG_ASSERT( 0, "caught IllegalArgumentException when registering filter\n" );
- }
-
- if( xFilePicker->execute() == ExecutableDialogResults::OK )
- {
- Sequence< OUString > aPathSeq( xFilePicker->getFiles() );
- INetURLObject aObj( aPathSeq[0] );
- aEdFileurl.SetText( aObj.PathToFileName() );
- }
- }
- }
-
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-SvInsertPlugInDialog::SvInsertPlugInDialog( Window* pParent, const uno::Reference < embed::XStorage >& xStorage )
- : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_PLUGIN ), xStorage ),
- aGbFileurl( this, CUI_RES( GB_FILEURL ) ),
- aEdFileurl( this, CUI_RES( ED_FILEURL ) ),
- aBtnFileurl( this, CUI_RES( BTN_FILEURL ) ),
- aGbPluginsOptions( this, CUI_RES( GB_PLUGINS_OPTIONS ) ),
- aEdPluginsOptions( this, CUI_RES( ED_PLUGINS_OPTIONS ) ),
- aOKButton1( this, CUI_RES( 1 ) ),
- aCancelButton1( this, CUI_RES( 1 ) ),
- aHelpButton1( this, CUI_RES( 1 ) ),
- m_pURL(0)
-{
- FreeResource();
- aBtnFileurl.SetClickHdl( LINK( this, SvInsertPlugInDialog, BrowseHdl ) );
-}
-
-SvInsertPlugInDialog::~SvInsertPlugInDialog()
-{
- delete m_pURL;
-}
-
-// -----------------------------------------------------------------------
-
-static void Plugin_ImplFillCommandSequence( const String& aCommands, uno::Sequence< beans::PropertyValue >& aCommandSequence )
-{
- sal_uInt16 nEaten;
- SvCommandList aLst;
- aLst.AppendCommands( aCommands, &nEaten );
-
- const size_t nCount = aLst.size();
- aCommandSequence.realloc( nCount );
- for( size_t nIndex = 0; nIndex < nCount; nIndex++ )
- {
- aCommandSequence[nIndex].Name = aLst[ nIndex ].GetCommand();
- aCommandSequence[nIndex].Handle = -1;
- aCommandSequence[nIndex].Value = makeAny( OUString( aLst[ nIndex ].GetArgument() ) );
- aCommandSequence[nIndex].State = beans::PropertyState_DIRECT_VALUE;
- }
-}
-
-short SvInsertPlugInDialog::Execute()
-{
- short nRet = RET_OK;
- m_aCommands.Erase();
- DBG_ASSERT( m_xStorage.is(), "No storage!");
- if ( m_xStorage.is() && ( nRet = Dialog::Execute() ) == RET_OK )
- {
- if ( !m_pURL )
- m_pURL = new INetURLObject();
- else
- *m_pURL = INetURLObject();
-
- m_aCommands = GetPlugInOptions();
- String aURL = GetPlugInFile();
-
- // URL can be a valid and absolute URL or a system file name
- m_pURL->SetSmartProtocol( INET_PROT_FILE );
- if ( !aURL.Len() || m_pURL->SetSmartURL( aURL ) )
- {
- // create a plugin object
- ::rtl::OUString aName;
- SvGlobalName aClassId( SO3_PLUGIN_CLASSID );
- m_xObj = aCnt.CreateEmbeddedObject( aClassId.GetByteSequence(), aName );
- }
-
- if ( m_xObj.is() )
- {
- // set properties from dialog
- if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED )
- m_xObj->changeState( embed::EmbedStates::RUNNING );
-
- uno::Reference < beans::XPropertySet > xSet( m_xObj->getComponent(), uno::UNO_QUERY );
- if ( xSet.is() )
- {
- xSet->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PluginURL") ),
- makeAny( ::rtl::OUString( m_pURL->GetMainURL( INetURLObject::NO_DECODE ) ) ) );
- uno::Sequence< beans::PropertyValue > aCommandSequence;
- Plugin_ImplFillCommandSequence( m_aCommands, aCommandSequence );
- xSet->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PluginCommands") ), makeAny( aCommandSequence ) );
- }
- }
- else
- {
- // PlugIn konnte nicht erzeugt werden
- // global Resource from svtools (former so3 resource)
- String aErr( impl_getSvtResString( STR_ERROR_OBJNOCREATE_PLUGIN ) );
- aErr.SearchAndReplace( String( '%' ), aURL );
- ErrorBox( this, WB_3DLOOK | WB_OK, aErr ).Execute();
- }
- }
-
- return nRet;
-}
-
-// class SvInsertAppletDlg -----------------------------------------------
-
-IMPL_LINK( SvInsertAppletDialog, BrowseHdl, PushButton *, EMPTYARG )
-{
- Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
- if( xFactory.is() )
- {
- Reference< XFilePicker > xFilePicker( xFactory->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), UNO_QUERY );
- DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" );
-
- Reference< XInitialization > xInit( xFilePicker, UNO_QUERY );
- Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY );
- if( xInit.is() && xFilePicker.is() && xFilterMgr.is() )
- {
- Sequence< Any > aServiceType( 1 );
- aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE;
- xInit->initialize( aServiceType );
-
- // add filter
- try
- {
- xFilterMgr->appendFilter(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Applet" ) ),
- OUString( RTL_CONSTASCII_USTRINGPARAM( "*.class" ) )
- );
- }
- catch( IllegalArgumentException& )
- {
- DBG_ASSERT( 0, "caught IllegalArgumentException when registering filter\n" );
- }
-
- if( xFilePicker->execute() == ExecutableDialogResults::OK )
- {
- Sequence< OUString > aPathSeq( xFilePicker->getFiles() );
-
- INetURLObject aObj( aPathSeq[0] );
- aEdClassfile.SetText( aObj.getName() );
- aObj.removeSegment();
- aEdClasslocation.SetText( aObj.PathToFileName() );
- }
- }
- }
-
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-SvInsertAppletDialog::SvInsertAppletDialog( Window* pParent, const uno::Reference < embed::XStorage >& xStorage )
- : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_APPLET ), xStorage ),
- aFtClassfile( this, CUI_RES( FT_CLASSFILE ) ),
- aEdClassfile( this, CUI_RES( ED_CLASSFILE ) ),
- aFtClasslocation( this, CUI_RES( FT_CLASSLOCATION ) ),
- aEdClasslocation( this, CUI_RES( ED_CLASSLOCATION ) ),
- aBtnClass( this, CUI_RES( BTN_CLASS ) ),
- aGbClass( this, CUI_RES( GB_CLASS ) ),
- aEdAppletOptions( this, CUI_RES( ED_APPLET_OPTIONS ) ),
- aGbAppletOptions( this, CUI_RES( GB_APPLET_OPTIONS ) ),
- aOKButton1( this, CUI_RES( 1 ) ),
- aCancelButton1( this, CUI_RES( 1 ) ),
- aHelpButton1( this, CUI_RES( 1 ) ),
- m_pURL(0)
-{
- FreeResource();
- aBtnClass.SetClickHdl( LINK( this, SvInsertAppletDialog, BrowseHdl ) );
-}
-
-SvInsertAppletDialog::SvInsertAppletDialog( Window* pParent, const uno::Reference < embed::XEmbeddedObject >& xObj )
- : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_APPLET ), uno::Reference < embed::XStorage >() ),
- aFtClassfile( this, CUI_RES( FT_CLASSFILE ) ),
- aEdClassfile( this, CUI_RES( ED_CLASSFILE ) ),
- aFtClasslocation( this, CUI_RES( FT_CLASSLOCATION ) ),
- aEdClasslocation( this, CUI_RES( ED_CLASSLOCATION ) ),
- aBtnClass( this, CUI_RES( BTN_CLASS ) ),
- aGbClass( this, CUI_RES( GB_CLASS ) ),
- aEdAppletOptions( this, CUI_RES( ED_APPLET_OPTIONS ) ),
- aGbAppletOptions( this, CUI_RES( GB_APPLET_OPTIONS ) ),
- aOKButton1( this, CUI_RES( 1 ) ),
- aCancelButton1( this, CUI_RES( 1 ) ),
- aHelpButton1( this, CUI_RES( 1 ) ),
- m_pURL(0)
-{
- m_xObj = xObj;
- FreeResource();
- aBtnClass.SetClickHdl( LINK( this, SvInsertAppletDialog, BrowseHdl ) );
-}
-
-
-SvInsertAppletDialog::~SvInsertAppletDialog()
-{
- delete m_pURL;
-}
-
-short SvInsertAppletDialog::Execute()
-{
- short nRet = RET_OK;
- m_aClass.Erase();
- m_aCommands.Erase();
-
- sal_Bool bOK = sal_False;
- uno::Reference < beans::XPropertySet > xSet;
- if ( m_xObj.is() )
- {
- try
- {
- if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED )
- m_xObj->changeState( embed::EmbedStates::RUNNING );
- xSet = uno::Reference < beans::XPropertySet >( m_xObj->getComponent(), uno::UNO_QUERY );
- ::rtl::OUString aStr;
- uno::Any aAny = xSet->getPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AppletCode") ) );
- if ( aAny >>= aStr )
- SetClass( aStr );
- aAny = xSet->getPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AppletCodeBase") ) );
- if ( aAny >>= aStr )
- SetClassLocation( aStr );
- uno::Sequence< beans::PropertyValue > aCommands;
- aAny = xSet->getPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AppletCommands") ) );
- if ( aAny >>= aCommands )
- {
- SvCommandList aList;
- aList.FillFromSequence( aCommands );
- SetAppletOptions( aList.GetCommands() );
- }
-
- String aText( CUI_RES( STR_EDIT_APPLET ) );
- SetText( aText );
- bOK = sal_True;
- }
- catch ( uno::Exception& )
- {
- OSL_FAIL( "No Applet!" );
- }
- }
- else
- {
- DBG_ASSERT( m_xStorage.is(), "No storage!");
- bOK = m_xStorage.is();
- }
-
- if ( bOK && ( nRet = Dialog::Execute() ) == RET_OK )
- {
- if ( !m_xObj.is() )
- {
- ::rtl::OUString aName;
- SvGlobalName aClassId( SO3_APPLET_CLASSID );
- m_xObj = aCnt.CreateEmbeddedObject( aClassId.GetByteSequence(), aName );
- if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED )
- m_xObj->changeState( embed::EmbedStates::RUNNING );
- xSet = uno::Reference < beans::XPropertySet >( m_xObj->getComponent(), uno::UNO_QUERY );
- }
-
- if ( m_xObj.is() )
- {
- try
- {
- sal_Bool bIPActive = m_xObj->getCurrentState() == embed::EmbedStates::INPLACE_ACTIVE;
- if ( bIPActive )
- m_xObj->changeState( embed::EmbedStates::RUNNING );
-
- String aClassLocation = GetClassLocation();
-
- // Hack, aFileName wird auch fuer Class benutzt
- m_aClass = GetClass();
- xSet->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AppletCode") ), makeAny( ::rtl::OUString( m_aClass ) ) );
-
- ::rtl::OUString tmp = aClassLocation;
- ::osl::File::getFileURLFromSystemPath(tmp, tmp);
- aClassLocation = tmp;
- xSet->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AppletCodeBase") ), makeAny( tmp ) );
- m_aCommands = GetAppletOptions();
-
- uno::Sequence< beans::PropertyValue > aCommandSequence;
- Plugin_ImplFillCommandSequence( m_aCommands, aCommandSequence );
- xSet->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AppletCommands") ), makeAny( aCommandSequence ) );
-
- if ( bIPActive )
- m_xObj->changeState( embed::EmbedStates::INPLACE_ACTIVE );
- }
- catch ( uno::Exception& )
- {
- OSL_FAIL( "No Applet!" );
- }
- }
- }
-
- return nRet;
-}
-
-SfxInsertFloatingFrameDialog::SfxInsertFloatingFrameDialog( Window *pParent,
- const com::sun::star::uno::Reference < com::sun::star::embed::XStorage >& xStorage )
- : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_IFRAME ), xStorage )
- , aFTName ( this, CUI_RES( FT_FRAMENAME ) )
- , aEDName ( this, CUI_RES( ED_FRAMENAME ) )
- , aFTURL ( this, CUI_RES( FT_URL ) )
- , aEDURL ( this, CUI_RES( ED_URL ) )
- , aBTOpen ( this, CUI_RES(BT_FILEOPEN ) )
-
- , aFLScrolling ( this, CUI_RES( GB_SCROLLING ) )
- , aRBScrollingOn ( this, CUI_RES( RB_SCROLLINGON ) )
- , aRBScrollingOff ( this, CUI_RES( RB_SCROLLINGOFF ) )
- , aRBScrollingAuto ( this, CUI_RES( RB_SCROLLINGAUTO ) )
- , aFLSepLeft( this, CUI_RES( FL_SEP_LEFT ) )
- , aFLFrameBorder( this, CUI_RES( GB_BORDER ) )
- , aRBFrameBorderOn ( this, CUI_RES( RB_FRMBORDER_ON ) )
- , aRBFrameBorderOff ( this, CUI_RES( RB_FRMBORDER_OFF ) )
- , aFLSepRight( this, CUI_RES( FL_SEP_RIGHT ) )
- , aFLMargin( this, CUI_RES( GB_MARGIN ) )
- , aFTMarginWidth ( this, CUI_RES( FT_MARGINWIDTH ) )
- , aNMMarginWidth ( this, CUI_RES( NM_MARGINWIDTH ) )
- , aCBMarginWidthDefault( this, CUI_RES( CB_MARGINHEIGHTDEFAULT ) )
- , aFTMarginHeight ( this, CUI_RES( FT_MARGINHEIGHT ) )
- , aNMMarginHeight ( this, CUI_RES( NM_MARGINHEIGHT ) )
- , aCBMarginHeightDefault( this, CUI_RES( CB_MARGINHEIGHTDEFAULT ) )
- , aOKButton1( this, CUI_RES( 1 ) )
- , aCancelButton1( this, CUI_RES( 1 ) )
- , aHelpButton1( this, CUI_RES( 1 ) )
-{
- FreeResource();
-
- aFLSepLeft.SetStyle(aFLSepLeft.GetStyle()|WB_VERT);
- aFLSepRight.SetStyle(aFLSepRight.GetStyle()|WB_VERT);
-
- Link aLink( STATIC_LINK( this, SfxInsertFloatingFrameDialog, CheckHdl ) );
- aCBMarginWidthDefault.SetClickHdl( aLink );
- aCBMarginHeightDefault.SetClickHdl( aLink );
-
- aCBMarginWidthDefault.Check();
- aCBMarginHeightDefault.Check();
- aRBScrollingAuto.Check();
- aRBFrameBorderOn.Check();
-
- aBTOpen.SetClickHdl( STATIC_LINK( this, SfxInsertFloatingFrameDialog, OpenHdl ) );
-}
-
-SfxInsertFloatingFrameDialog::SfxInsertFloatingFrameDialog( Window *pParent, const uno::Reference < embed::XEmbeddedObject >& xObj )
- : InsertObjectDialog_Impl( pParent, CUI_RES( MD_INSERT_OBJECT_IFRAME ), uno::Reference < embed::XStorage >() )
- , aFTName ( this, CUI_RES( FT_FRAMENAME ) )
- , aEDName ( this, CUI_RES( ED_FRAMENAME ) )
- , aFTURL ( this, CUI_RES( FT_URL ) )
- , aEDURL ( this, CUI_RES( ED_URL ) )
- , aBTOpen ( this, CUI_RES(BT_FILEOPEN ) )
-
- , aFLScrolling ( this, CUI_RES( GB_SCROLLING ) )
- , aRBScrollingOn ( this, CUI_RES( RB_SCROLLINGON ) )
- , aRBScrollingOff ( this, CUI_RES( RB_SCROLLINGOFF ) )
- , aRBScrollingAuto ( this, CUI_RES( RB_SCROLLINGAUTO ) )
-
- , aFLSepLeft( this, CUI_RES( FL_SEP_LEFT ) )
- , aFLFrameBorder( this, CUI_RES( GB_BORDER ) )
- , aRBFrameBorderOn ( this, CUI_RES( RB_FRMBORDER_ON ) )
- , aRBFrameBorderOff ( this, CUI_RES( RB_FRMBORDER_OFF ) )
-
- , aFLSepRight( this, CUI_RES( FL_SEP_RIGHT ) )
- , aFLMargin( this, CUI_RES( GB_MARGIN ) )
- , aFTMarginWidth ( this, CUI_RES( FT_MARGINWIDTH ) )
- , aNMMarginWidth ( this, CUI_RES( NM_MARGINWIDTH ) )
- , aCBMarginWidthDefault( this, CUI_RES( CB_MARGINHEIGHTDEFAULT ) )
- , aFTMarginHeight ( this, CUI_RES( FT_MARGINHEIGHT ) )
- , aNMMarginHeight ( this, CUI_RES( NM_MARGINHEIGHT ) )
- , aCBMarginHeightDefault( this, CUI_RES( CB_MARGINHEIGHTDEFAULT ) )
- , aOKButton1( this, CUI_RES( 1 ) )
- , aCancelButton1( this, CUI_RES( 1 ) )
- , aHelpButton1( this, CUI_RES( 1 ) )
-{
- FreeResource();
-
- m_xObj = xObj;
-
- aFLSepLeft.SetStyle(aFLSepLeft.GetStyle()|WB_VERT);
- aFLSepRight.SetStyle(aFLSepRight.GetStyle()|WB_VERT);
-
- Link aLink( STATIC_LINK( this, SfxInsertFloatingFrameDialog, CheckHdl ) );
- aCBMarginWidthDefault.SetClickHdl( aLink );
- aCBMarginHeightDefault.SetClickHdl( aLink );
-
- aCBMarginWidthDefault.Check();
- aCBMarginHeightDefault.Check();
- aRBScrollingAuto.Check();
- aRBFrameBorderOn.Check();
-
- aBTOpen.SetClickHdl( STATIC_LINK( this, SfxInsertFloatingFrameDialog, OpenHdl ) );
-}
-
-short SfxInsertFloatingFrameDialog::Execute()
-{
- short nRet = RET_OK;
- sal_Bool bOK = sal_False;
- uno::Reference < beans::XPropertySet > xSet;
- if ( m_xObj.is() )
- {
- try
- {
- if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED )
- m_xObj->changeState( embed::EmbedStates::RUNNING );
- xSet = uno::Reference < beans::XPropertySet >( m_xObj->getComponent(), uno::UNO_QUERY );
- ::rtl::OUString aStr;
- uno::Any aAny = xSet->getPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameURL") ) );
- if ( aAny >>= aStr )
- aEDURL.SetText( aStr );
- aAny = xSet->getPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameName") ) );
- if ( aAny >>= aStr )
- aEDName.SetText( aStr );
-
- sal_Int32 nSize = SIZE_NOT_SET;
- aAny = xSet->getPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameMarginWidth") ) );
- aAny >>= nSize;
-
- if ( nSize == SIZE_NOT_SET )
- {
- aCBMarginWidthDefault.Check( sal_True );
- aNMMarginWidth.SetText( String::CreateFromInt32( DEFAULT_MARGIN_WIDTH ) );
- aFTMarginWidth.Enable( sal_False );
- aNMMarginWidth.Enable( sal_False );
- }
- else
- aNMMarginWidth.SetText( String::CreateFromInt32( nSize ) );
-
- aAny = xSet->getPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameMarginHeight") ) );
- aAny >>= nSize;
-
- if ( nSize == SIZE_NOT_SET )
- {
- aCBMarginHeightDefault.Check( sal_True );
- aNMMarginHeight.SetText( String::CreateFromInt32( DEFAULT_MARGIN_HEIGHT ) );
- aFTMarginHeight.Enable( sal_False );
- aNMMarginHeight.Enable( sal_False );
- }
- else
- aNMMarginHeight.SetText( String::CreateFromInt32( nSize ) );
-
- sal_Bool bScrollOn = sal_False;
- sal_Bool bScrollOff = sal_False;
- sal_Bool bScrollAuto = sal_False;
-
- sal_Bool bSet = sal_False;
- aAny = xSet->getPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameIsAutoScroll") ) );
- aAny >>= bSet;
- if ( !bSet )
- {
- aAny = xSet->getPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameIsScrollingMode") ) );
- aAny >>= bSet;
- bScrollOn = bSet;
- bScrollOff = !bSet;
- }
- else
- bScrollAuto = sal_True;
-
- aRBScrollingOn.Check( bScrollOn );
- aRBScrollingOff.Check( bScrollOff );
- aRBScrollingAuto.Check( bScrollAuto );
-
- bSet = sal_False;
- aAny = xSet->getPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameIsAutoBorder") ) );
- aAny >>= bSet;
- if ( !bSet )
- {
- aAny = xSet->getPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameIsBorder") ) );
- aAny >>= bSet;
- aRBFrameBorderOn.Check( bSet );
- aRBFrameBorderOff.Check( !bSet );
- }
-
- SetUpdateMode( sal_True );
- bOK = sal_True;
- }
- catch ( uno::Exception& )
- {
- OSL_FAIL( "No IFrame!" );
- }
- }
- else
- {
- DBG_ASSERT( m_xStorage.is(), "No storage!");
- bOK = m_xStorage.is();
- }
-
- if ( bOK && ( nRet = Dialog::Execute() ) == RET_OK )
- {
- ::rtl::OUString aURL;
- if ( aEDURL.GetText().Len() )
- {
- // URL can be a valid and absolute URL or a system file name
- INetURLObject aObj;
- aObj.SetSmartProtocol( INET_PROT_FILE );
- if ( aObj.SetSmartURL( aEDURL.GetText() ) )
- aURL = aObj.GetMainURL( INetURLObject::NO_DECODE );
- }
-
- if ( !m_xObj.is() && aURL.getLength() )
- {
- // create the object
- ::rtl::OUString aName;
- SvGlobalName aClassId( SO3_IFRAME_CLASSID );
- m_xObj = aCnt.CreateEmbeddedObject( aClassId.GetByteSequence(), aName );
- if ( m_xObj->getCurrentState() == embed::EmbedStates::LOADED )
- m_xObj->changeState( embed::EmbedStates::RUNNING );
- xSet = uno::Reference < beans::XPropertySet >( m_xObj->getComponent(), uno::UNO_QUERY );
- }
-
- if ( m_xObj.is() )
- {
- try
- {
- sal_Bool bIPActive = m_xObj->getCurrentState() == embed::EmbedStates::INPLACE_ACTIVE;
- if ( bIPActive )
- m_xObj->changeState( embed::EmbedStates::RUNNING );
-
- ::rtl::OUString aName = aEDName.GetText();
- ScrollingMode eScroll = ScrollingNo;
- if ( aRBScrollingOn.IsChecked() )
- eScroll = ScrollingYes;
- if ( aRBScrollingOff.IsChecked() )
- eScroll = ScrollingNo;
- if ( aRBScrollingAuto.IsChecked() )
- eScroll = ScrollingAuto;
-
- sal_Bool bHasBorder = aRBFrameBorderOn.IsChecked();
-
- long lMarginWidth;
- if ( !aCBMarginWidthDefault.IsChecked() )
- lMarginWidth = (long) aNMMarginWidth.GetText().ToInt32();
- else
- lMarginWidth = SIZE_NOT_SET;
-
- long lMarginHeight;
- if ( !aCBMarginHeightDefault.IsChecked() )
- lMarginHeight = (long) aNMMarginHeight.GetText().ToInt32();
- else
- lMarginHeight = SIZE_NOT_SET;
-
- xSet->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameURL") ), makeAny( aURL ) );
- xSet->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameName") ), makeAny( aName ) );
-
- if ( eScroll == ScrollingAuto )
- xSet->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameIsAutoScroll") ),
- makeAny( sal_True ) );
- else
- xSet->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameIsScrollingMode") ),
- makeAny( (sal_Bool) ( eScroll == ScrollingYes) ) );
-
- xSet->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameIsBorder") ),
- makeAny( bHasBorder ) );
-
- xSet->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameMarginWidth") ),
- makeAny( sal_Int32( lMarginWidth ) ) );
-
- xSet->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FrameMarginHeight") ),
- makeAny( sal_Int32( lMarginHeight ) ) );
-
- if ( bIPActive )
- m_xObj->changeState( embed::EmbedStates::INPLACE_ACTIVE );
- }
- catch ( uno::Exception& )
- {
- OSL_FAIL( "No IFrame!" );
- }
- }
- }
-
- return nRet;
-}
-
-//------------------------------------------------------------------------------
-
-IMPL_STATIC_LINK( SfxInsertFloatingFrameDialog, CheckHdl, CheckBox*, pCB )
-{
- if ( pCB == &pThis->aCBMarginWidthDefault )
- {
- if ( pCB->IsChecked() )
- pThis->aNMMarginWidth.SetText( String::CreateFromInt32( DEFAULT_MARGIN_WIDTH ) );
- pThis->aFTMarginWidth.Enable( !pCB->IsChecked() );
- pThis->aNMMarginWidth.Enable( !pCB->IsChecked() );
- }
-
- if ( pCB == &pThis->aCBMarginHeightDefault )
- {
- if ( pCB->IsChecked() )
- pThis->aNMMarginHeight.SetText( String::CreateFromInt32( DEFAULT_MARGIN_HEIGHT ) );
- pThis->aFTMarginHeight.Enable( !pCB->IsChecked() );
- pThis->aNMMarginHeight.Enable( !pCB->IsChecked() );
- }
-
- return 0L;
-}
-
-//------------------------------------------------------------------------------
-
-IMPL_STATIC_LINK( SfxInsertFloatingFrameDialog, OpenHdl, PushButton*, EMPTYARG )
-{
- Window* pOldParent = Application::GetDefDialogParent();
- Application::SetDefDialogParent( pThis );
-
- // create the file dialog
- sfx2::FileDialogHelper aFileDlg( WB_OPEN | SFXWB_PASSWORD, String() );
-
- // set the title
- aFileDlg.SetTitle( OUString( String( CUI_RES( MD_INSERT_OBJECT_IFRAME ) ) ) );
-
- // show the dialog
- if ( aFileDlg.Execute() == ERRCODE_NONE )
- pThis->aEDURL.SetText(
- INetURLObject( aFileDlg.GetPath() ).GetMainURL( INetURLObject::DECODE_WITH_CHARSET ) );
-
- Application::SetDefDialogParent( pOldParent );
- return 0L;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */