| /************************************************************** |
| * |
| * 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. |
| * |
| *************************************************************/ |
| |
| |
| #ifndef _MAILMERGEHELPER_HXX |
| #define _MAILMERGEHELPER_HXX |
| |
| #include <svtools/stdctrl.hxx> |
| #include <unotools/configitem.hxx> |
| #include <com/sun/star/uno/Sequence.h> |
| #include "com/sun/star/mail/XAuthenticator.hpp" |
| #include "com/sun/star/mail/XConnectionListener.hpp" |
| #include "com/sun/star/uno/XCurrentContext.hpp" |
| #include "com/sun/star/mail/XMailMessage.hpp" |
| #include "com/sun/star/datatransfer/XTransferable.hpp" |
| #include <com/sun/star/beans/XPropertySet.hpp> |
| #include <cppuhelper/implbase1.hxx> |
| #include <cppuhelper/compbase1.hxx> |
| #include <cppuhelper/compbase2.hxx> |
| #include <vcl/scrbar.hxx> |
| #include "swdllapi.h" |
| |
| |
| class SwMailMergeConfigItem; |
| namespace com{ namespace sun{ namespace star{ |
| namespace uno{ |
| class XComponentContext; |
| } |
| namespace lang{ |
| class XMultiServiceFactory; |
| } |
| namespace mail{ |
| class XSmtpService; |
| class XMailService; |
| } |
| }}} |
| /*-- 14.06.2004 12:27:42--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| namespace SwMailMergeHelper |
| { |
| SW_DLLPUBLIC String CallSaveAsDialog(String& rFilter); |
| SW_DLLPUBLIC bool CheckMailAddress( const ::rtl::OUString& rMailAddress ); |
| SW_DLLPUBLIC com::sun::star::uno::Reference< com::sun::star::mail::XSmtpService > |
| ConnectToSmtpServer( SwMailMergeConfigItem& rConfigItem, |
| com::sun::star::uno::Reference< com::sun::star::mail::XMailService >& xInMailService, |
| const String& rInMailServerPassword, |
| const String& rOutMailServerPassword, |
| Window* pDialogParentWindow = 0 ); |
| } |
| /* -----------------06.04.2004 10:29----------------- |
| |
| --------------------------------------------------*/ |
| class SW_DLLPUBLIC SwBoldFixedInfo : public FixedInfo |
| { |
| public: |
| SwBoldFixedInfo(Window* pParent, const ResId& rResId); |
| ~SwBoldFixedInfo(); |
| }; |
| struct SwAddressPreview_Impl; |
| namespace com{namespace sun{namespace star{ |
| namespace container{ |
| class XNameAccess; |
| } |
| }}} |
| |
| /*-- 27.04.2004 13:20:00--------------------------------------------------- |
| Preview window used to show the possible selection of address blocks |
| and also the resulting address filled with database data |
| -----------------------------------------------------------------------*/ |
| class SW_DLLPUBLIC SwAddressPreview : public Window |
| { |
| ScrollBar aVScrollBar; |
| SwAddressPreview_Impl* pImpl; |
| Link m_aSelectHdl; |
| |
| void DrawText_Impl( const ::rtl::OUString& rAddress, const Point& rTopLeft, const Size& rSize, bool bIsSelected); |
| |
| virtual void Paint(const Rectangle&); |
| virtual void MouseButtonDown( const MouseEvent& rMEvt ); |
| virtual void KeyInput( const KeyEvent& rKEvt ); |
| virtual void StateChanged( StateChangedType nStateChange ); |
| void UpdateScrollBar(); |
| |
| DECL_LINK(ScrollHdl, ScrollBar*); |
| |
| public: |
| SwAddressPreview(Window* pParent, const ResId rResId); |
| ~SwAddressPreview(); |
| |
| /** The address string is a list of address elements separated by spaces |
| and breaks. The addresses fit into the given layout. If more addresses then |
| rows/columns should be used a scrollbar will be added. |
| |
| AddAddress appends the new address to the already added ones. |
| Initially the first added address will be selected |
| */ |
| void AddAddress(const ::rtl::OUString& rAddress); |
| // for preview mode - replaces the currently used address by the given one |
| void SetAddress(const ::rtl::OUString& rAddress); |
| // removes all addresses |
| void Clear(); |
| |
| // returns the selected address |
| sal_uInt16 GetSelectedAddress() const; |
| void SelectAddress(sal_uInt16 nSelect); |
| void ReplaceSelectedAddress(const ::rtl::OUString&); |
| void RemoveSelectedAddress(); |
| |
| // set the number of rows and columns of addresses |
| void SetLayout(sal_uInt16 nRows, sal_uInt16 nColumns); |
| void EnableScrollBar(bool bEnable = true); |
| |
| // fill the actual data into a string (address block or greeting) |
| static String FillData( |
| const ::rtl::OUString& rAddress, |
| SwMailMergeConfigItem& rConfigItem, |
| const ::com::sun::star::uno::Sequence< ::rtl::OUString>* pAssignments = 0); |
| |
| void SetSelectHdl (const Link& rLink) {m_aSelectHdl = rLink;} |
| }; |
| |
| /*-- 11.05.2004 15:39:59--------------------------------------------------- |
| iterate over an address block or a greeting line |
| the iterator returns the parts either as pure string |
| or as column |
| -----------------------------------------------------------------------*/ |
| struct SwMergeAddressItem |
| { |
| String sText; |
| bool bIsColumn; |
| bool bIsReturn; |
| SwMergeAddressItem() : |
| bIsColumn(false), |
| bIsReturn(false) {} |
| }; |
| class SW_DLLPUBLIC SwAddressIterator |
| { |
| String sAddress; |
| public: |
| SwAddressIterator(const String& rAddress) : |
| sAddress(rAddress){} |
| |
| SwMergeAddressItem Next(); |
| bool HasMore() const{return sAddress.Len() > 0;} |
| }; |
| |
| /*-- 21.05.2004 10:31:15--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| class SW_DLLPUBLIC SwAuthenticator : |
| public cppu::WeakImplHelper1< ::com::sun::star::mail::XAuthenticator> |
| { |
| ::rtl::OUString m_aUserName; |
| ::rtl::OUString m_aPassword; |
| Window* m_pParentWindow; |
| public: |
| SwAuthenticator() : m_pParentWindow(0) {} |
| SwAuthenticator(const ::rtl::OUString& username, const ::rtl::OUString& password, Window* pParent) : |
| m_aUserName(username), |
| m_aPassword(password), |
| m_pParentWindow( pParent ) |
| {} |
| ~SwAuthenticator(); |
| |
| virtual ::rtl::OUString SAL_CALL getUserName( ) throw (::com::sun::star::uno::RuntimeException); |
| virtual ::rtl::OUString SAL_CALL getPassword( ) throw (::com::sun::star::uno::RuntimeException); |
| |
| }; |
| /*-- 25.08.2004 12:48:47--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| class SW_DLLPUBLIC SwConnectionContext : |
| public cppu::WeakImplHelper1< ::com::sun::star::uno::XCurrentContext > |
| { |
| ::rtl::OUString m_sMailServer; |
| sal_Int16 m_nPort; |
| ::rtl::OUString m_sConnectionType; |
| |
| public: |
| SwConnectionContext(const ::rtl::OUString& rMailServer, sal_Int16 nPort, const ::rtl::OUString& rConnectionType); |
| ~SwConnectionContext(); |
| |
| virtual ::com::sun::star::uno::Any SAL_CALL getValueByName( const ::rtl::OUString& Name ) |
| throw (::com::sun::star::uno::RuntimeException); |
| }; |
| /*-- 21.05.2004 10:39:20--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| class SwMutexBase |
| { |
| public: |
| osl::Mutex m_aMutex; |
| }; |
| /*-- 21.05.2004 10:39:20--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| class SW_DLLPUBLIC SwConnectionListener : |
| public SwMutexBase, |
| public cppu::WeakComponentImplHelper1< ::com::sun::star::mail::XConnectionListener > |
| { |
| using cppu::WeakComponentImplHelperBase::disposing; |
| |
| public: |
| SwConnectionListener() : |
| cppu::WeakComponentImplHelper1< ::com::sun::star::mail::XConnectionListener>(m_aMutex) |
| {} |
| ~SwConnectionListener(); |
| |
| virtual void SAL_CALL connected(const ::com::sun::star::lang::EventObject& aEvent) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| virtual void SAL_CALL disconnected(const ::com::sun::star::lang::EventObject& aEvent) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| virtual void SAL_CALL disposing(const com::sun::star::lang::EventObject& aEvent) |
| throw(com::sun::star::uno::RuntimeException); |
| }; |
| |
| /*-- 13.07.2004 09:02:12--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| class SwMailTransferable : |
| public SwMutexBase, |
| public cppu::WeakComponentImplHelper2 |
| < |
| ::com::sun::star::datatransfer::XTransferable, |
| ::com::sun::star::beans::XPropertySet |
| > |
| { |
| rtl::OUString m_aMimeType; |
| rtl::OUString m_sBody; |
| rtl::OUString m_aURL; |
| rtl::OUString m_aName; |
| bool m_bIsBody; |
| |
| public: |
| SwMailTransferable(const rtl::OUString& rURL, const rtl::OUString& rName, const rtl::OUString& rMimeType); |
| SwMailTransferable(const rtl::OUString& rBody, const rtl::OUString& rMimeType); |
| ~SwMailTransferable(); |
| virtual ::com::sun::star::uno::Any SAL_CALL |
| getTransferData( const ::com::sun::star::datatransfer::DataFlavor& aFlavor ) |
| throw (::com::sun::star::datatransfer::UnsupportedFlavorException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::com::sun::star::datatransfer::DataFlavor > SAL_CALL |
| getTransferDataFlavors( ) |
| throw (::com::sun::star::uno::RuntimeException) ; |
| virtual ::sal_Bool SAL_CALL |
| isDataFlavorSupported( const ::com::sun::star::datatransfer::DataFlavor& aFlavor ) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| //XPropertySet |
| virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); |
| |
| }; |
| |
| /*-- 22.06.2004 16:38:34--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| class SwMailMessage : |
| public SwMutexBase, |
| public cppu::WeakComponentImplHelper1< ::com::sun::star::mail::XMailMessage > |
| { |
| ::rtl::OUString m_sSenderName; |
| ::rtl::OUString m_sSenderAddress; |
| ::rtl::OUString m_sReplyToAddress; |
| ::rtl::OUString m_sSubject; |
| |
| ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::XTransferable> m_xBody; |
| // ::com::sun::star::mail::MailMessageBody m_aBody; |
| |
| ::com::sun::star::uno::Sequence< ::rtl::OUString > m_aRecipients; |
| ::com::sun::star::uno::Sequence< ::rtl::OUString > m_aCcRecipients; |
| ::com::sun::star::uno::Sequence< ::rtl::OUString > m_aBccRecipients; |
| // ::com::sun::star::uno::Sequence< ::com::sun::star::mail::MailAttachmentDescriptor > m_aAttachments; |
| ::com::sun::star::uno::Sequence< ::com::sun::star::mail::MailAttachment > m_aAttachments; |
| public: |
| SwMailMessage(); |
| ~SwMailMessage(); |
| |
| // Attributes |
| virtual ::rtl::OUString SAL_CALL getSenderName() throw (::com::sun::star::uno::RuntimeException); |
| virtual ::rtl::OUString SAL_CALL getSenderAddress() throw (::com::sun::star::uno::RuntimeException); |
| virtual ::rtl::OUString SAL_CALL getReplyToAddress() throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setReplyToAddress( const ::rtl::OUString& _replytoaddress ) throw (::com::sun::star::uno::RuntimeException); |
| virtual ::rtl::OUString SAL_CALL getSubject() throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setSubject( const ::rtl::OUString& _subject ) throw (::com::sun::star::uno::RuntimeException); |
| |
| virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::XTransferable > SAL_CALL |
| getBody() |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setBody( const ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::XTransferable >& _body ) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // Methods |
| virtual void SAL_CALL addRecipient( const ::rtl::OUString& sRecipientAddress ) throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL addCcRecipient( const ::rtl::OUString& sRecipientAddress ) throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL addBccRecipient( const ::rtl::OUString& sRecipientAddress ) throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL |
| getRecipients( ) throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL |
| getCcRecipients( ) throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL |
| getBccRecipients( ) throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL addAttachment( const ::com::sun::star::mail::MailAttachment& aMailAttachment ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::com::sun::star::mail::MailAttachment > SAL_CALL |
| getAttachments( ) throw (::com::sun::star::uno::RuntimeException); |
| void SetSenderName(const ::rtl::OUString& rSenderName) |
| {m_sSenderName = rSenderName;} |
| void SetSenderAddress(const ::rtl::OUString& rSenderAddress) |
| {m_sSenderAddress = rSenderAddress;} |
| }; |
| /*-- 21.05.2004 10:17:22--------------------------------------------------- |
| |
| -----------------------------------------------------------------------*/ |
| SW_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext> |
| getCurrentCmpCtx( |
| ::com::sun::star::uno::Reference< |
| ::com::sun::star::lang::XMultiServiceFactory> rSrvMgr); |
| #endif |
| |