1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski #ifndef FORMS_SOURCE_CLICKABLEIMAGE_HXX 25*b1cdbd2cSJim Jagielski #define FORMS_SOURCE_CLICKABLEIMAGE_HXX 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #include "FormComponent.hxx" 28*b1cdbd2cSJim Jagielski #include "EventThread.hxx" 29*b1cdbd2cSJim Jagielski #include "imgprod.hxx" 30*b1cdbd2cSJim Jagielski #include <tools/link.hxx> 31*b1cdbd2cSJim Jagielski #include <comphelper/propmultiplex.hxx> 32*b1cdbd2cSJim Jagielski #include <com/sun/star/form/XImageProducerSupplier.hpp> 33*b1cdbd2cSJim Jagielski #include <com/sun/star/form/FormButtonType.hpp> 34*b1cdbd2cSJim Jagielski #include <com/sun/star/form/XApproveActionListener.hpp> 35*b1cdbd2cSJim Jagielski #include <com/sun/star/form/XApproveActionBroadcaster.hpp> 36*b1cdbd2cSJim Jagielski #include <com/sun/star/form/submission/XSubmissionSupplier.hpp> 37*b1cdbd2cSJim Jagielski #include <com/sun/star/form/submission/XSubmission.hpp> 38*b1cdbd2cSJim Jagielski #include <com/sun/star/frame/XModel.hpp> 39*b1cdbd2cSJim Jagielski #include <com/sun/star/frame/XDispatchProviderInterception.hpp> 40*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase3.hxx> 41*b1cdbd2cSJim Jagielski 42*b1cdbd2cSJim Jagielski 43*b1cdbd2cSJim Jagielski class SfxMedium; 44*b1cdbd2cSJim Jagielski 45*b1cdbd2cSJim Jagielski //......................................................................... 46*b1cdbd2cSJim Jagielski namespace frm 47*b1cdbd2cSJim Jagielski { 48*b1cdbd2cSJim Jagielski //......................................................................... 49*b1cdbd2cSJim Jagielski 50*b1cdbd2cSJim Jagielski class OImageProducerThread_Impl; 51*b1cdbd2cSJim Jagielski class ControlFeatureInterception; 52*b1cdbd2cSJim Jagielski //================================================================== 53*b1cdbd2cSJim Jagielski // OClickableImageBaseModel 54*b1cdbd2cSJim Jagielski //================================================================== 55*b1cdbd2cSJim Jagielski typedef ::cppu::ImplHelper3 < ::com::sun::star::form::XImageProducerSupplier 56*b1cdbd2cSJim Jagielski , ::com::sun::star::awt::XImageProducer 57*b1cdbd2cSJim Jagielski , ::com::sun::star::form::submission::XSubmissionSupplier 58*b1cdbd2cSJim Jagielski > OClickableImageBaseModel_Base; 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielski class OClickableImageBaseModel :public OClickableImageBaseModel_Base 61*b1cdbd2cSJim Jagielski ,public OControlModel 62*b1cdbd2cSJim Jagielski ,public OPropertyChangeListener 63*b1cdbd2cSJim Jagielski { 64*b1cdbd2cSJim Jagielski protected: 65*b1cdbd2cSJim Jagielski ::com::sun::star::form::FormButtonType m_eButtonType; // Art des Buttons (push,submit,reset) 66*b1cdbd2cSJim Jagielski ::rtl::OUString m_sTargetURL; // URL fuer den URL-Button 67*b1cdbd2cSJim Jagielski ::rtl::OUString m_sTargetFrame; // TargetFrame zum Oeffnen 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielski // ImageProducer stuff 70*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::awt::XImageProducer> m_xProducer; 71*b1cdbd2cSJim Jagielski SfxMedium* m_pMedium; // Download-Medium 72*b1cdbd2cSJim Jagielski ImageProducer* m_pProducer; 73*b1cdbd2cSJim Jagielski sal_Bool m_bDispatchUrlInternal; // property: is not allowed to set : 1 74*b1cdbd2cSJim Jagielski sal_Bool m_bDownloading : 1; // laeuft ein Download? 75*b1cdbd2cSJim Jagielski sal_Bool m_bProdStarted : 1; 76*b1cdbd2cSJim Jagielski 77*b1cdbd2cSJim Jagielski // XSubmission stuff 78*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::form::submission::XSubmission > 79*b1cdbd2cSJim Jagielski m_xSubmissionDelegate; 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski DECL_STATIC_LINK( OClickableImageBaseModel, DataAvailableLink, void* ); 83*b1cdbd2cSJim Jagielski DECL_STATIC_LINK( OClickableImageBaseModel, DownloadDoneLink, void* ); 84*b1cdbd2cSJim Jagielski GetImageProducer()85*b1cdbd2cSJim Jagielski inline ImageProducer* GetImageProducer() { return m_pProducer; } 86*b1cdbd2cSJim Jagielski 87*b1cdbd2cSJim Jagielski void StartProduction(); 88*b1cdbd2cSJim Jagielski void SetURL(const ::rtl::OUString& rURL); 89*b1cdbd2cSJim Jagielski void DataAvailable(); 90*b1cdbd2cSJim Jagielski void DownloadDone(); 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type> _getTypes(); isDispatchUrlInternal() const93*b1cdbd2cSJim Jagielski inline sal_Bool isDispatchUrlInternal() const { return m_bDispatchUrlInternal; } setDispatchUrlInternal(sal_Bool _bDispatch)94*b1cdbd2cSJim Jagielski inline void setDispatchUrlInternal(sal_Bool _bDispatch) { m_bDispatchUrlInternal = _bDispatch; } 95*b1cdbd2cSJim Jagielski 96*b1cdbd2cSJim Jagielski public: 97*b1cdbd2cSJim Jagielski DECLARE_DEFAULT_XTOR( OClickableImageBaseModel ); 98*b1cdbd2cSJim Jagielski 99*b1cdbd2cSJim Jagielski // UNO Anbindung 100*b1cdbd2cSJim Jagielski DECLARE_UNO3_AGG_DEFAULTS(OClickableImageBaseModel, OControlModel); 101*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation(const ::com::sun::star::uno::Type& _rType) throw(::com::sun::star::uno::RuntimeException); 102*b1cdbd2cSJim Jagielski 103*b1cdbd2cSJim Jagielski protected: 104*b1cdbd2cSJim Jagielski // OComponentHelper 105*b1cdbd2cSJim Jagielski virtual void SAL_CALL disposing(); 106*b1cdbd2cSJim Jagielski 107*b1cdbd2cSJim Jagielski // ::com::sun::star::form::XImageProducerSupplier getImageProducer()108*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XImageProducer> SAL_CALL getImageProducer() throw (::com::sun::star::uno::RuntimeException) { return m_xProducer; } 109*b1cdbd2cSJim Jagielski 110*b1cdbd2cSJim Jagielski // OPropertySetHelper 111*b1cdbd2cSJim Jagielski virtual void SAL_CALL getFastPropertyValue(::com::sun::star::uno::Any& rValue, sal_Int32 nHandle ) const; 112*b1cdbd2cSJim Jagielski virtual void SAL_CALL setFastPropertyValue_NoBroadcast(sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue) throw (::com::sun::star::uno::Exception); 113*b1cdbd2cSJim Jagielski 114*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL convertFastPropertyValue(::com::sun::star::uno::Any& rConvertedValue, ::com::sun::star::uno::Any& rOldValue, sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue ) 115*b1cdbd2cSJim Jagielski throw(::com::sun::star::lang::IllegalArgumentException); 116*b1cdbd2cSJim Jagielski 117*b1cdbd2cSJim Jagielski using ::cppu::OPropertySetHelper::getFastPropertyValue; 118*b1cdbd2cSJim Jagielski 119*b1cdbd2cSJim Jagielski // OPropertyChangeListener 120*b1cdbd2cSJim Jagielski virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent&) throw(::com::sun::star::uno::RuntimeException); 121*b1cdbd2cSJim Jagielski 122*b1cdbd2cSJim Jagielski // XPropertyState 123*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any getPropertyDefaultByHandle( sal_Int32 nHandle ) const; 124*b1cdbd2cSJim Jagielski 125*b1cdbd2cSJim Jagielski // XImageProducer 126*b1cdbd2cSJim Jagielski virtual void SAL_CALL addConsumer( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XImageConsumer >& xConsumer ) throw (::com::sun::star::uno::RuntimeException); 127*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeConsumer( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XImageConsumer >& xConsumer ) throw (::com::sun::star::uno::RuntimeException); 128*b1cdbd2cSJim Jagielski virtual void SAL_CALL startProduction( ) throw (::com::sun::star::uno::RuntimeException); 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski // XSubmissionSupplier 131*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::form::submission::XSubmission > SAL_CALL getSubmission() throw (::com::sun::star::uno::RuntimeException); 132*b1cdbd2cSJim Jagielski virtual void SAL_CALL setSubmission( const ::com::sun::star::uno::Reference< ::com::sun::star::form::submission::XSubmission >& _submission ) throw (::com::sun::star::uno::RuntimeException); 133*b1cdbd2cSJim Jagielski 134*b1cdbd2cSJim Jagielski // XServiceInfo 135*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); 136*b1cdbd2cSJim Jagielski 137*b1cdbd2cSJim Jagielski // XEventListener 138*b1cdbd2cSJim Jagielski using OControlModel::disposing; 139*b1cdbd2cSJim Jagielski 140*b1cdbd2cSJim Jagielski public: GuardAccessfrm::OClickableImageBaseModel::GuardAccess141*b1cdbd2cSJim Jagielski struct GuardAccess { friend class ImageModelMethodGuard; private: GuardAccess() { } }; getMutex(GuardAccess)142*b1cdbd2cSJim Jagielski ::osl::Mutex& getMutex( GuardAccess ) { return m_aMutex; } getImageProducer(GuardAccess)143*b1cdbd2cSJim Jagielski ImageProducer* getImageProducer( GuardAccess ) { return m_pProducer; } 144*b1cdbd2cSJim Jagielski 145*b1cdbd2cSJim Jagielski protected: 146*b1cdbd2cSJim Jagielski using OControlModel::getMutex; 147*b1cdbd2cSJim Jagielski 148*b1cdbd2cSJim Jagielski void implConstruct(); 149*b1cdbd2cSJim Jagielski 150*b1cdbd2cSJim Jagielski // to be called from within the cloning-ctor of your derived class 151*b1cdbd2cSJim Jagielski void implInitializeImageURL( ); 152*b1cdbd2cSJim Jagielski }; 153*b1cdbd2cSJim Jagielski 154*b1cdbd2cSJim Jagielski //================================================================== 155*b1cdbd2cSJim Jagielski // ImageModelMethodGuard 156*b1cdbd2cSJim Jagielski //================================================================== 157*b1cdbd2cSJim Jagielski class ImageModelMethodGuard : public ::osl::MutexGuard 158*b1cdbd2cSJim Jagielski { 159*b1cdbd2cSJim Jagielski private: 160*b1cdbd2cSJim Jagielski typedef ::osl::MutexGuard GuardBase; 161*b1cdbd2cSJim Jagielski 162*b1cdbd2cSJim Jagielski public: ImageModelMethodGuard(OClickableImageBaseModel & _rModel)163*b1cdbd2cSJim Jagielski ImageModelMethodGuard( OClickableImageBaseModel& _rModel ) 164*b1cdbd2cSJim Jagielski :GuardBase( _rModel.getMutex( OClickableImageBaseModel::GuardAccess() ) ) 165*b1cdbd2cSJim Jagielski { 166*b1cdbd2cSJim Jagielski if ( NULL == _rModel.getImageProducer( OClickableImageBaseModel::GuardAccess() ) ) 167*b1cdbd2cSJim Jagielski throw ::com::sun::star::lang::DisposedException( 168*b1cdbd2cSJim Jagielski ::rtl::OUString(), 169*b1cdbd2cSJim Jagielski static_cast< ::com::sun::star::form::XImageProducerSupplier* >( &_rModel ) 170*b1cdbd2cSJim Jagielski ); 171*b1cdbd2cSJim Jagielski } 172*b1cdbd2cSJim Jagielski }; 173*b1cdbd2cSJim Jagielski 174*b1cdbd2cSJim Jagielski //================================================================== 175*b1cdbd2cSJim Jagielski // OClickableImageBaseControl 176*b1cdbd2cSJim Jagielski //================================================================== 177*b1cdbd2cSJim Jagielski typedef ::cppu::ImplHelper3 < ::com::sun::star::form::XApproveActionBroadcaster 178*b1cdbd2cSJim Jagielski , ::com::sun::star::form::submission::XSubmission 179*b1cdbd2cSJim Jagielski , ::com::sun::star::frame::XDispatchProviderInterception 180*b1cdbd2cSJim Jagielski > OClickableImageBaseControl_BASE; 181*b1cdbd2cSJim Jagielski 182*b1cdbd2cSJim Jagielski class OClickableImageBaseControl :public OClickableImageBaseControl_BASE 183*b1cdbd2cSJim Jagielski ,public OControl 184*b1cdbd2cSJim Jagielski { 185*b1cdbd2cSJim Jagielski friend class OImageProducerThread_Impl; 186*b1cdbd2cSJim Jagielski 187*b1cdbd2cSJim Jagielski private: 188*b1cdbd2cSJim Jagielski OImageProducerThread_Impl* m_pThread; 189*b1cdbd2cSJim Jagielski ::cppu::OInterfaceContainerHelper m_aSubmissionVetoListeners; 190*b1cdbd2cSJim Jagielski ::std::auto_ptr< ControlFeatureInterception > 191*b1cdbd2cSJim Jagielski m_pFeatureInterception; 192*b1cdbd2cSJim Jagielski 193*b1cdbd2cSJim Jagielski protected: 194*b1cdbd2cSJim Jagielski ::cppu::OInterfaceContainerHelper m_aApproveActionListeners; 195*b1cdbd2cSJim Jagielski ::cppu::OInterfaceContainerHelper m_aActionListeners; 196*b1cdbd2cSJim Jagielski ::rtl::OUString m_aActionCommand; 197*b1cdbd2cSJim Jagielski 198*b1cdbd2cSJim Jagielski // XSubmission 199*b1cdbd2cSJim Jagielski virtual void SAL_CALL submit( ) throw (::com::sun::star::util::VetoException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); 200*b1cdbd2cSJim Jagielski virtual void SAL_CALL submitWithInteraction( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& aHandler ) throw (::com::sun::star::util::VetoException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); 201*b1cdbd2cSJim Jagielski virtual void SAL_CALL addSubmissionVetoListener( const ::com::sun::star::uno::Reference< ::com::sun::star::form::submission::XSubmissionVetoListener >& listener ) throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); 202*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeSubmissionVetoListener( const ::com::sun::star::uno::Reference< ::com::sun::star::form::submission::XSubmissionVetoListener >& listener ) throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); 203*b1cdbd2cSJim Jagielski 204*b1cdbd2cSJim Jagielski // XServiceInfo 205*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); 206*b1cdbd2cSJim Jagielski 207*b1cdbd2cSJim Jagielski // XEventListener 208*b1cdbd2cSJim Jagielski using OControl::disposing; 209*b1cdbd2cSJim Jagielski 210*b1cdbd2cSJim Jagielski public: 211*b1cdbd2cSJim Jagielski OClickableImageBaseControl( 212*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory, 213*b1cdbd2cSJim Jagielski const ::rtl::OUString& _aService); 214*b1cdbd2cSJim Jagielski virtual ~OClickableImageBaseControl(); 215*b1cdbd2cSJim Jagielski 216*b1cdbd2cSJim Jagielski protected: 217*b1cdbd2cSJim Jagielski // UNO Anbindung 218*b1cdbd2cSJim Jagielski DECLARE_UNO3_AGG_DEFAULTS(OClickableImageBaseControl, OControl); 219*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation(const ::com::sun::star::uno::Type& _rType) throw(::com::sun::star::uno::RuntimeException); 220*b1cdbd2cSJim Jagielski 221*b1cdbd2cSJim Jagielski // OComponentHelper 222*b1cdbd2cSJim Jagielski virtual void SAL_CALL disposing(); 223*b1cdbd2cSJim Jagielski 224*b1cdbd2cSJim Jagielski // ::com::sun::star::form::XApproveActionBroadcaster 225*b1cdbd2cSJim Jagielski virtual void SAL_CALL addApproveActionListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XApproveActionListener>& _rxListener) 226*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 227*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeApproveActionListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XApproveActionListener>& _rxListener) 228*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 229*b1cdbd2cSJim Jagielski 230*b1cdbd2cSJim Jagielski // XDispatchProviderInterception 231*b1cdbd2cSJim Jagielski virtual void SAL_CALL registerDispatchProviderInterceptor( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterceptor >& Interceptor ) throw (::com::sun::star::uno::RuntimeException); 232*b1cdbd2cSJim Jagielski virtual void SAL_CALL releaseDispatchProviderInterceptor( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterceptor >& Interceptor ) throw (::com::sun::star::uno::RuntimeException); 233*b1cdbd2cSJim Jagielski 234*b1cdbd2cSJim Jagielski protected: 235*b1cdbd2cSJim Jagielski virtual void actionPerformed_Impl( sal_Bool bNotifyListener, const ::com::sun::star::awt::MouseEvent& rEvt ); 236*b1cdbd2cSJim Jagielski 237*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > _getTypes(); 238*b1cdbd2cSJim Jagielski 239*b1cdbd2cSJim Jagielski /** approves the action by calling the approve listeners 240*b1cdbd2cSJim Jagielski @return <TRUE/> if and only if the action has <em>not</em> been cancelled by a listener 241*b1cdbd2cSJim Jagielski */ 242*b1cdbd2cSJim Jagielski bool approveAction( ); 243*b1cdbd2cSJim Jagielski 244*b1cdbd2cSJim Jagielski /** retrieves (and if necessary creates) the image producer thread. 245*b1cdbd2cSJim Jagielski 246*b1cdbd2cSJim Jagielski Must be called with our mutex locked 247*b1cdbd2cSJim Jagielski */ 248*b1cdbd2cSJim Jagielski OImageProducerThread_Impl* getImageProducerThread(); 249*b1cdbd2cSJim Jagielski 250*b1cdbd2cSJim Jagielski private: 251*b1cdbd2cSJim Jagielski void implSubmit( 252*b1cdbd2cSJim Jagielski const ::com::sun::star::awt::MouseEvent& _rEvent, 253*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& aHandler 254*b1cdbd2cSJim Jagielski ) SAL_THROW((com::sun::star::util::VetoException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)); 255*b1cdbd2cSJim Jagielski }; 256*b1cdbd2cSJim Jagielski 257*b1cdbd2cSJim Jagielski //================================================================== 258*b1cdbd2cSJim Jagielski // OImageProducerThread_Impl 259*b1cdbd2cSJim Jagielski //================================================================== 260*b1cdbd2cSJim Jagielski class OImageProducerThread_Impl: public OComponentEventThread 261*b1cdbd2cSJim Jagielski { 262*b1cdbd2cSJim Jagielski protected: 263*b1cdbd2cSJim Jagielski 264*b1cdbd2cSJim Jagielski // Die folgende Methode wrrd gerufen um das Event unter Beruecksichtigung 265*b1cdbd2cSJim Jagielski // seines Typs zu duplizieren 266*b1cdbd2cSJim Jagielski virtual ::com::sun::star::lang::EventObject* cloneEvent( const ::com::sun::star::lang::EventObject* _pEvt ) const; 267*b1cdbd2cSJim Jagielski 268*b1cdbd2cSJim Jagielski // Ein Event bearbeiten. Der Mutex ist dabei nicht gelockt, pCompImpl 269*b1cdbd2cSJim Jagielski // bleibt aber in jedem Fall gueltig. 270*b1cdbd2cSJim Jagielski virtual void processEvent( ::cppu::OComponentHelper *pCompImpl, 271*b1cdbd2cSJim Jagielski const ::com::sun::star::lang::EventObject*, 272*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>&, 273*b1cdbd2cSJim Jagielski sal_Bool ); 274*b1cdbd2cSJim Jagielski 275*b1cdbd2cSJim Jagielski public: OImageProducerThread_Impl(OClickableImageBaseControl * pControl)276*b1cdbd2cSJim Jagielski OImageProducerThread_Impl( OClickableImageBaseControl *pControl ) : 277*b1cdbd2cSJim Jagielski OComponentEventThread( pControl ) 278*b1cdbd2cSJim Jagielski {} 279*b1cdbd2cSJim Jagielski addEvent()280*b1cdbd2cSJim Jagielski void addEvent() { ::com::sun::star::lang::EventObject aEvt; OComponentEventThread::addEvent( &aEvt ); } 281*b1cdbd2cSJim Jagielski 282*b1cdbd2cSJim Jagielski protected: 283*b1cdbd2cSJim Jagielski using OComponentEventThread::addEvent; 284*b1cdbd2cSJim Jagielski }; 285*b1cdbd2cSJim Jagielski 286*b1cdbd2cSJim Jagielski //......................................................................... 287*b1cdbd2cSJim Jagielski } // namespace frm 288*b1cdbd2cSJim Jagielski //......................................................................... 289*b1cdbd2cSJim Jagielski 290*b1cdbd2cSJim Jagielski #endif // FORMS_SOURCE_CLICKABLEIMAGE_HXX 291*b1cdbd2cSJim Jagielski 292