1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 #ifndef _SFXEVENT_HXX 24 #define _SFXEVENT_HXX 25 26 #include "sal/config.h" 27 #include "sfx2/dllapi.h" 28 #include "sfx2/sfx.hrc" 29 #include <tools/string.hxx> 30 #include <svl/hint.hxx> 31 #include <unotools/eventcfg.hxx> 32 #include <rtl/ustring.hxx> 33 34 #include <com/sun/star/uno/Sequence.hxx> 35 #include <com/sun/star/beans/PropertyValue.hpp> 36 #include <com/sun/star/frame/XController2.hpp> 37 #include <com/sun/star/view/PrintableState.hpp> 38 39 namespace css = ::com::sun::star; 40 41 class SfxObjectShell; 42 43 //------------------------------------------------------------------- 44 45 class SFX2_DLLPUBLIC SfxEventHint : public SfxHint 46 { 47 SfxObjectShell* pObjShell; 48 ::rtl::OUString aEventName; 49 sal_uInt16 nEventId; 50 51 public: 52 TYPEINFO(); SfxEventHint(sal_uInt16 nId,const::rtl::OUString & aName,SfxObjectShell * pObj=0)53 SfxEventHint( sal_uInt16 nId, const ::rtl::OUString& aName, SfxObjectShell *pObj = 0 ) 54 : pObjShell(pObj), 55 aEventName(aName), 56 nEventId(nId) 57 {} 58 GetEventId() const59 sal_uInt16 GetEventId() const 60 { return nEventId; } 61 GetEventName() const62 ::rtl::OUString GetEventName() const 63 { return aEventName; } 64 GetObjShell() const65 SfxObjectShell* GetObjShell() const 66 { return pObjShell; } 67 }; 68 69 //------------------------------------------------------------------- 70 71 class SFX2_DLLPUBLIC SfxViewEventHint : public SfxEventHint 72 { 73 ::com::sun::star::uno::Reference< css::frame::XController2 > xViewController; 74 75 public: 76 TYPEINFO(); 77 SfxViewEventHint(sal_uInt16 nId,const::rtl::OUString & aName,SfxObjectShell * pObj,const css::uno::Reference<css::frame::XController> & xController)78 SfxViewEventHint( sal_uInt16 nId, const ::rtl::OUString& aName, SfxObjectShell *pObj, const css::uno::Reference< css::frame::XController >& xController ) 79 : SfxEventHint( nId, aName, pObj ) 80 , xViewController( xController, css::uno::UNO_QUERY ) 81 {} 82 SfxViewEventHint(sal_uInt16 nId,const::rtl::OUString & aName,SfxObjectShell * pObj,const css::uno::Reference<css::frame::XController2> & xController)83 SfxViewEventHint( sal_uInt16 nId, const ::rtl::OUString& aName, SfxObjectShell *pObj, const css::uno::Reference< css::frame::XController2 >& xController ) 84 : SfxEventHint( nId, aName, pObj ) 85 , xViewController( xController ) 86 {} 87 GetController() const88 css::uno::Reference< css::frame::XController2 > GetController() const 89 { return xViewController; } 90 }; 91 92 //------------------------------------------------------------------- 93 94 class SfxNamedHint : public SfxHint 95 { 96 String _aEventName; 97 SfxObjectShell* _pObjShell; 98 String _aArgs; 99 100 public: 101 TYPEINFO(); 102 SfxNamedHint(const String & rName,const String & rArgs,SfxObjectShell * pObj=0)103 SfxNamedHint( const String& rName, 104 const String& rArgs, 105 SfxObjectShell *pObj = 0 ) 106 : _aEventName( rName ), 107 _pObjShell( pObj), 108 _aArgs( rArgs ) 109 {} 110 SfxNamedHint(const String & rName,SfxObjectShell * pObj=0)111 SfxNamedHint( const String& rName, 112 SfxObjectShell *pObj = 0 ) 113 : _aEventName( rName ), 114 _pObjShell( pObj ) 115 {} 116 GetArgs() const117 const String& GetArgs() const { return _aArgs;} GetName() const118 const String& GetName() const { return _aEventName; } GetObjShell() const119 SfxObjectShell* GetObjShell() const { return _pObjShell; } 120 }; 121 122 class Printer; 123 124 class SfxPrintingHint : public SfxViewEventHint 125 { 126 sal_Int32 mnPrintableState; 127 com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue > aOpts; 128 public: 129 TYPEINFO(); 130 SfxPrintingHint(sal_Int32 nEvent,const css::uno::Sequence<css::beans::PropertyValue> & rOpts,SfxObjectShell * pObj,const css::uno::Reference<css::frame::XController2> & xController)131 SfxPrintingHint( 132 sal_Int32 nEvent, 133 const css::uno::Sequence < css::beans::PropertyValue >& rOpts, 134 SfxObjectShell *pObj, 135 const css::uno::Reference< css::frame::XController2 >& xController ) 136 : SfxViewEventHint( 137 SFX_EVENT_PRINTDOC, 138 GlobalEventConfig::GetEventName( STR_EVENT_PRINTDOC ), 139 pObj, 140 xController ) 141 , mnPrintableState( nEvent ) 142 , aOpts( rOpts ) 143 {} 144 SfxPrintingHint(sal_Int32 nEvent)145 SfxPrintingHint( sal_Int32 nEvent ) 146 : SfxViewEventHint( SFX_EVENT_PRINTDOC, rtl::OUString(), 0, css::uno::Reference< css::frame::XController >() ) 147 , mnPrintableState( nEvent ) 148 {} 149 GetWhich() const150 sal_Int32 GetWhich() const { return mnPrintableState; } GetOptions()151 const css::uno::Sequence < css::beans::PropertyValue >& GetOptions() { return aOpts; } 152 }; 153 154 #endif 155