1*d4a7ee09SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*d4a7ee09SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*d4a7ee09SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*d4a7ee09SAndrew Rist * distributed with this work for additional information 6*d4a7ee09SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*d4a7ee09SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*d4a7ee09SAndrew Rist * "License"); you may not use this file except in compliance 9*d4a7ee09SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*d4a7ee09SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*d4a7ee09SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*d4a7ee09SAndrew Rist * software distributed under the License is distributed on an 15*d4a7ee09SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*d4a7ee09SAndrew Rist * KIND, either express or implied. See the License for the 17*d4a7ee09SAndrew Rist * specific language governing permissions and limitations 18*d4a7ee09SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*d4a7ee09SAndrew Rist *************************************************************/ 21*d4a7ee09SAndrew Rist 22*d4a7ee09SAndrew Rist 23cdf0e10cSrcweir #ifndef OOVBAAPI_VBA_HELPER_HXX 24cdf0e10cSrcweir #define OOVBAAPI_VBA_HELPER_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir #include <com/sun/star/drawing/XShape.hpp> 27cdf0e10cSrcweir #include <com/sun/star/beans/XIntrospectionAccess.hpp> 28cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp> 29cdf0e10cSrcweir #include <com/sun/star/script/BasicErrorException.hpp> 30cdf0e10cSrcweir #include <com/sun/star/script/XTypeConverter.hpp> 31cdf0e10cSrcweir #include <com/sun/star/lang/IllegalArgumentException.hpp> 32cdf0e10cSrcweir #include <com/sun/star/awt/XControl.hpp> 33cdf0e10cSrcweir #include <com/sun/star/awt/XDevice.hpp> 34cdf0e10cSrcweir #include <com/sun/star/awt/XUnitConversion.hpp> 35cdf0e10cSrcweir #include <basic/basmgr.hxx> 36cdf0e10cSrcweir #include <basic/sberrors.hxx> 37cdf0e10cSrcweir #include <cppuhelper/implbase1.hxx> 38cdf0e10cSrcweir #include <com/sun/star/frame/XModel.hpp> 39cdf0e10cSrcweir #include <sfx2/dispatch.hxx> 40cdf0e10cSrcweir #include <sfx2/objsh.hxx> 41cdf0e10cSrcweir #include <sfx2/docfilt.hxx> 42cdf0e10cSrcweir #include <sfx2/docfile.hxx> 43cdf0e10cSrcweir #include <vcl/pointr.hxx> 44cdf0e10cSrcweir #include <memory> 45cdf0e10cSrcweir #include "vbaaccesshelper.hxx" 46cdf0e10cSrcweir 47cdf0e10cSrcweir namespace css = ::com::sun::star; 48cdf0e10cSrcweir namespace ooo 49cdf0e10cSrcweir { 50cdf0e10cSrcweir namespace vba 51cdf0e10cSrcweir { 52cdf0e10cSrcweir template < class T > getXSomethingFromArgs(css::uno::Sequence<css::uno::Any> const & args,sal_Int32 nPos,bool bCanBeNull=true)53cdf0e10cSrcweir css::uno::Reference< T > getXSomethingFromArgs( css::uno::Sequence< css::uno::Any > const & args, sal_Int32 nPos, bool bCanBeNull = true ) throw (css::lang::IllegalArgumentException) 54cdf0e10cSrcweir { 55cdf0e10cSrcweir if ( args.getLength() < ( nPos + 1) ) 56cdf0e10cSrcweir throw css::lang::IllegalArgumentException(); 57cdf0e10cSrcweir css::uno::Reference< T > aSomething( args[ nPos ], css::uno::UNO_QUERY ); 58cdf0e10cSrcweir if ( !bCanBeNull && !aSomething.is() ) 59cdf0e10cSrcweir throw css::lang::IllegalArgumentException(); 60cdf0e10cSrcweir return aSomething; 61cdf0e10cSrcweir } 62cdf0e10cSrcweir 63cdf0e10cSrcweir class XHelperInterface; 64cdf0e10cSrcweir 65cdf0e10cSrcweir /** Returns the VBA document implementation object representing the passed UNO document model. */ 66cdf0e10cSrcweir VBAHELPER_DLLPUBLIC css::uno::Reference< XHelperInterface > getVBADocument( const css::uno::Reference< css::frame::XModel >& xModel ); 67cdf0e10cSrcweir VBAHELPER_DLLPUBLIC css::uno::Reference< XHelperInterface > getUnoDocModule( const String& aModName, SfxObjectShell* pShell ); 68cdf0e10cSrcweir VBAHELPER_DLLPUBLIC SfxObjectShell* getSfxObjShell( const css::uno::Reference< css::frame::XModel >& xModel ) throw ( css::uno::RuntimeException); 69cdf0e10cSrcweir VBAHELPER_DLLPUBLIC css::uno::Reference< css::uno::XInterface > createVBAUnoAPIService( SfxObjectShell* pShell, const sal_Char* _pAsciiName ) throw (css::uno::RuntimeException); 70cdf0e10cSrcweir 71cdf0e10cSrcweir css::uno::Reference< css::frame::XModel > getCurrentDoc( const rtl::OUString& sKey ) throw (css::uno::RuntimeException); 72cdf0e10cSrcweir VBAHELPER_DLLPUBLIC css::uno::Reference< css::frame::XModel > getThisExcelDoc( const css::uno::Reference< css::uno::XComponentContext >& xContext ) throw (css::uno::RuntimeException); 73cdf0e10cSrcweir VBAHELPER_DLLPUBLIC css::uno::Reference< css::frame::XModel > getThisWordDoc( const css::uno::Reference< css::uno::XComponentContext >& xContext ) throw (css::uno::RuntimeException); 74cdf0e10cSrcweir VBAHELPER_DLLPUBLIC css::uno::Reference< css::frame::XModel > getCurrentExcelDoc( const css::uno::Reference< css::uno::XComponentContext >& xContext ) throw (css::uno::RuntimeException); 75cdf0e10cSrcweir VBAHELPER_DLLPUBLIC css::uno::Reference< css::frame::XModel > getCurrentWordDoc( const css::uno::Reference< css::uno::XComponentContext >& xContext ) throw (css::uno::RuntimeException); 76cdf0e10cSrcweir 77cdf0e10cSrcweir VBAHELPER_DLLPUBLIC css::uno::Reference< css::beans::XIntrospectionAccess > getIntrospectionAccess( const css::uno::Any& aObject ) throw (css::uno::RuntimeException); 78cdf0e10cSrcweir VBAHELPER_DLLPUBLIC css::uno::Reference< css::script::XTypeConverter > getTypeConverter( const css::uno::Reference< css::uno::XComponentContext >& xContext ) throw (css::uno::RuntimeException); 79cdf0e10cSrcweir 80cdf0e10cSrcweir VBAHELPER_DLLPUBLIC void dispatchRequests( const css::uno::Reference< css::frame::XModel>& xModel, const rtl::OUString& aUrl ); 81cdf0e10cSrcweir VBAHELPER_DLLPUBLIC void dispatchRequests( const css::uno::Reference< css::frame::XModel>& xModel, const rtl::OUString& aUrl, const css::uno::Sequence< css::beans::PropertyValue >& sProps ); 82cdf0e10cSrcweir VBAHELPER_DLLPUBLIC void dispatchExecute(SfxViewShell* pView, sal_uInt16 nSlot, SfxCallMode nCall = SFX_CALLMODE_SYNCHRON ); 83cdf0e10cSrcweir VBAHELPER_DLLPUBLIC sal_Int32 OORGBToXLRGB( sal_Int32 ); 84cdf0e10cSrcweir VBAHELPER_DLLPUBLIC sal_Int32 XLRGBToOORGB( sal_Int32 ); 85cdf0e10cSrcweir VBAHELPER_DLLPUBLIC css::uno::Any OORGBToXLRGB( const css::uno::Any& ); 86cdf0e10cSrcweir VBAHELPER_DLLPUBLIC css::uno::Any XLRGBToOORGB( const css::uno::Any& ); 87cdf0e10cSrcweir // provide a NULL object that can be passed as variant so that 88cdf0e10cSrcweir // the object when passed to IsNull will return true. aNULL 89cdf0e10cSrcweir // contains an empty object reference 90cdf0e10cSrcweir VBAHELPER_DLLPUBLIC const css::uno::Any& aNULL(); 91cdf0e10cSrcweir VBAHELPER_DLLPUBLIC void PrintOutHelper( SfxViewShell* pViewShell, const css::uno::Any& From, const css::uno::Any& To, const css::uno::Any& Copies, const css::uno::Any& Preview, const css::uno::Any& ActivePrinter, const css::uno::Any& PrintToFile, const css::uno::Any& Collate, const css::uno::Any& PrToFileName, sal_Bool bSelection ); 92cdf0e10cSrcweir VBAHELPER_DLLPUBLIC void PrintPreviewHelper( const css::uno::Any& EnableChanges, SfxViewShell* ); 93cdf0e10cSrcweir 94cdf0e10cSrcweir /** Extracts a 32-bit integer value from the passed Any, which may contain an integer or floating-point value. 95cdf0e10cSrcweir Throws, if the Any is empty or contains an incompatible type. */ 96cdf0e10cSrcweir VBAHELPER_DLLPUBLIC sal_Int32 extractIntFromAny( const css::uno::Any& rAny ) throw (css::uno::RuntimeException); 97cdf0e10cSrcweir /** Extracts a 32-bit integer value from the passed Any, which may contain an integer or floating-point value. 98cdf0e10cSrcweir Returns nDefault, if rAny is empty. Throws, if the Any contains an incompatible type. */ 99cdf0e10cSrcweir VBAHELPER_DLLPUBLIC sal_Int32 extractIntFromAny( const css::uno::Any& rAny, sal_Int32 nDefault ) throw (css::uno::RuntimeException); 100cdf0e10cSrcweir 101cdf0e10cSrcweir /** Extracts a boolean value from the passed Any, which may contain a Boolean or an integer or floating-point value. 102cdf0e10cSrcweir Throws, if the Any is empty or contains an incompatible type. */ 103cdf0e10cSrcweir VBAHELPER_DLLPUBLIC bool extractBoolFromAny( const css::uno::Any& rAny ) throw (css::uno::RuntimeException); 104cdf0e10cSrcweir /** Extracts a boolean value from the passed Any, which may contain a Boolean or an integer or floating-point value. 105cdf0e10cSrcweir Returns bDefault, if rAny is empty. Throws, if the Any contains an incompatible type. */ 106cdf0e10cSrcweir VBAHELPER_DLLPUBLIC bool extractBoolFromAny( const css::uno::Any& rAny, bool bDefault ) throw (css::uno::RuntimeException); 107cdf0e10cSrcweir 108cdf0e10cSrcweir /** Extracts a string from the passed Any, which may contain a Boolean, a value, or a string. 109cdf0e10cSrcweir Throws, if the Any is empty or contains an incompatible type. */ 110cdf0e10cSrcweir VBAHELPER_DLLPUBLIC ::rtl::OUString extractStringFromAny( const css::uno::Any& rAny, bool bUppercaseBool = false ) throw (css::uno::RuntimeException); 111cdf0e10cSrcweir /** Extracts a string from the passed Any, which may contain a Boolean, a value, or a string. 112cdf0e10cSrcweir Returns rDefault, if rAny is empty. Throws, if the Any contains an incompatible type. */ 113cdf0e10cSrcweir VBAHELPER_DLLPUBLIC ::rtl::OUString extractStringFromAny( const css::uno::Any& rAny, const ::rtl::OUString& rDefault, bool bUppercaseBool = false ) throw (css::uno::RuntimeException); 114cdf0e10cSrcweir 115cdf0e10cSrcweir VBAHELPER_DLLPUBLIC rtl::OUString getAnyAsString( const css::uno::Any& pvargItem ) throw ( css::uno::RuntimeException ); 116cdf0e10cSrcweir VBAHELPER_DLLPUBLIC rtl::OUString VBAToRegexp(const rtl::OUString &rIn, bool bForLike = false); // needs to be in an uno service ( already this code is duplicated in basic ) 117cdf0e10cSrcweir VBAHELPER_DLLPUBLIC double getPixelTo100thMillimeterConversionFactor( const css::uno::Reference< css::awt::XDevice >& xDevice, sal_Bool bVertical); 118cdf0e10cSrcweir VBAHELPER_DLLPUBLIC double PointsToPixels( const css::uno::Reference< css::awt::XDevice >& xDevice, double fPoints, sal_Bool bVertical); 119cdf0e10cSrcweir VBAHELPER_DLLPUBLIC double PixelsToPoints( const css::uno::Reference< css::awt::XDevice >& xDevice, double fPixels, sal_Bool bVertical); 120cdf0e10cSrcweir VBAHELPER_DLLPUBLIC sal_Int32 PointsToHmm( double fPoints ); 121cdf0e10cSrcweir VBAHELPER_DLLPUBLIC double HmmToPoints( sal_Int32 nHmm ); 122cdf0e10cSrcweir VBAHELPER_DLLPUBLIC sal_Int32 getPointerStyle( const css::uno::Reference< css::frame::XModel >& ); 123cdf0e10cSrcweir VBAHELPER_DLLPUBLIC void setCursorHelper( const css::uno::Reference< css::frame::XModel >& xModel, const Pointer& rPointer, sal_Bool bOverWrite ); 124cdf0e10cSrcweir VBAHELPER_DLLPUBLIC void setDefaultPropByIntrospection( const css::uno::Any& aObj, const css::uno::Any& aValue ) throw ( css::uno::RuntimeException ); 125cdf0e10cSrcweir VBAHELPER_DLLPUBLIC css::uno::Any getPropertyValue( const css::uno::Sequence< css::beans::PropertyValue >& aProp, const rtl::OUString& aName ); 126cdf0e10cSrcweir VBAHELPER_DLLPUBLIC sal_Bool setPropertyValue( css::uno::Sequence< css::beans::PropertyValue >& aProp, const rtl::OUString& aName, const css::uno::Any& aValue ); 127cdf0e10cSrcweir 128cdf0e10cSrcweir class VBAHELPER_DLLPUBLIC Millimeter 129cdf0e10cSrcweir { 130cdf0e10cSrcweir //Factor to translate between points and hundredths of millimeters: 131cdf0e10cSrcweir private: 132cdf0e10cSrcweir double m_nMillimeter; 133cdf0e10cSrcweir 134cdf0e10cSrcweir public: 135cdf0e10cSrcweir Millimeter(); 136cdf0e10cSrcweir 137cdf0e10cSrcweir Millimeter(double mm); 138cdf0e10cSrcweir 139cdf0e10cSrcweir void set(double mm); 140cdf0e10cSrcweir void setInPoints(double points) ; 141cdf0e10cSrcweir void setInHundredthsOfOneMillimeter(double hmm); 142cdf0e10cSrcweir double get(); 143cdf0e10cSrcweir double getInHundredthsOfOneMillimeter(); 144cdf0e10cSrcweir double getInPoints(); 145cdf0e10cSrcweir static sal_Int32 getInHundredthsOfOneMillimeter(double points); 146cdf0e10cSrcweir static double getInPoints(int _hmm); 147cdf0e10cSrcweir }; 148cdf0e10cSrcweir 149cdf0e10cSrcweir class VBAHELPER_DLLPUBLIC AbstractGeometryAttributes // probably should replace the ShapeHelper below 150cdf0e10cSrcweir { 151cdf0e10cSrcweir public: ~AbstractGeometryAttributes()152cdf0e10cSrcweir virtual ~AbstractGeometryAttributes() {} 153cdf0e10cSrcweir virtual double getLeft() const = 0; 154cdf0e10cSrcweir virtual void setLeft( double ) = 0; 155cdf0e10cSrcweir virtual double getTop() const = 0; 156cdf0e10cSrcweir virtual void setTop( double ) = 0; 157cdf0e10cSrcweir virtual double getHeight() const = 0; 158cdf0e10cSrcweir virtual void setHeight( double ) = 0; 159cdf0e10cSrcweir virtual double getWidth() const = 0; 160cdf0e10cSrcweir virtual void setWidth( double ) = 0; 161cdf0e10cSrcweir getInnerHeight() const162cdf0e10cSrcweir virtual double getInnerHeight() const { return 0.0; } setInnerHeight(double)163cdf0e10cSrcweir virtual void setInnerHeight( double ) {} getInnerWidth() const164cdf0e10cSrcweir virtual double getInnerWidth() const { return 0.0; } setInnerWidth(double)165cdf0e10cSrcweir virtual void setInnerWidth( double ) {} getOffsetX() const166cdf0e10cSrcweir virtual double getOffsetX() const { return 0.0; } getOffsetY() const167cdf0e10cSrcweir virtual double getOffsetY() const { return 0.0; } 168cdf0e10cSrcweir }; 169cdf0e10cSrcweir 170cdf0e10cSrcweir namespace msforms { 171cdf0e10cSrcweir class XShape; 172cdf0e10cSrcweir } 173cdf0e10cSrcweir 174cdf0e10cSrcweir class VBAHELPER_DLLPUBLIC ShapeHelper 175cdf0e10cSrcweir { 176cdf0e10cSrcweir protected: 177cdf0e10cSrcweir css::uno::Reference< css::drawing::XShape > xShape; 178cdf0e10cSrcweir public: 179cdf0e10cSrcweir ShapeHelper( const css::uno::Reference< css::drawing::XShape >& _xShape) throw (css::script::BasicErrorException ); 180cdf0e10cSrcweir 181cdf0e10cSrcweir double getHeight() const; 182cdf0e10cSrcweir void setHeight(double _fheight) throw ( css::script::BasicErrorException ); 183cdf0e10cSrcweir double getWidth() const; 184cdf0e10cSrcweir void setWidth(double _fWidth) throw ( css::script::BasicErrorException ); 185cdf0e10cSrcweir double getLeft() const; 186cdf0e10cSrcweir void setLeft(double _fLeft); 187cdf0e10cSrcweir double getTop() const; 188cdf0e10cSrcweir void setTop(double _fTop); 189cdf0e10cSrcweir }; 190cdf0e10cSrcweir 191cdf0e10cSrcweir class VBAHELPER_DLLPUBLIC ConcreteXShapeGeometryAttributes : public AbstractGeometryAttributes 192cdf0e10cSrcweir { 193cdf0e10cSrcweir std::auto_ptr< ShapeHelper > m_pShapeHelper; 194cdf0e10cSrcweir public: 195cdf0e10cSrcweir ConcreteXShapeGeometryAttributes( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::drawing::XShape >& xShape ); 196cdf0e10cSrcweir virtual double getLeft() const; 197cdf0e10cSrcweir virtual void setLeft( double nLeft ); 198cdf0e10cSrcweir virtual double getTop() const; 199cdf0e10cSrcweir virtual void setTop( double nTop ); 200cdf0e10cSrcweir virtual double getHeight() const; 201cdf0e10cSrcweir virtual void setHeight( double nHeight ); 202cdf0e10cSrcweir virtual double getWidth() const; 203cdf0e10cSrcweir virtual void setWidth( double nWidth); 204cdf0e10cSrcweir virtual ~ConcreteXShapeGeometryAttributes(); 205cdf0e10cSrcweir }; 206cdf0e10cSrcweir 207cdf0e10cSrcweir #define VBA_LEFT "PositionX" 208cdf0e10cSrcweir #define VBA_TOP "PositionY" 209cdf0e10cSrcweir #define VBA_HEIGHT "Height" 210cdf0e10cSrcweir #define VBA_WIDTH "Width" 211cdf0e10cSrcweir class VBAHELPER_DLLPUBLIC UserFormGeometryHelper : public AbstractGeometryAttributes 212cdf0e10cSrcweir { 213cdf0e10cSrcweir public: 214cdf0e10cSrcweir UserFormGeometryHelper( 215cdf0e10cSrcweir const css::uno::Reference< css::uno::XComponentContext >& xContext, 216cdf0e10cSrcweir const css::uno::Reference< css::awt::XControl >& xControl, 217cdf0e10cSrcweir double fOffsetX, double fOffsetY ); 218cdf0e10cSrcweir virtual double getLeft() const; 219cdf0e10cSrcweir virtual void setLeft( double fLeft ); 220cdf0e10cSrcweir virtual double getTop() const; 221cdf0e10cSrcweir virtual void setTop( double fTop ); 222cdf0e10cSrcweir virtual double getWidth() const; 223cdf0e10cSrcweir virtual void setWidth( double fWidth ); 224cdf0e10cSrcweir virtual double getHeight() const; 225cdf0e10cSrcweir virtual void setHeight( double fHeight ); 226cdf0e10cSrcweir virtual double getInnerWidth() const; 227cdf0e10cSrcweir virtual void setInnerWidth( double fWidth ); 228cdf0e10cSrcweir virtual double getInnerHeight() const; 229cdf0e10cSrcweir virtual void setInnerHeight( double fHeight ); 230cdf0e10cSrcweir virtual double getOffsetX() const; 231cdf0e10cSrcweir virtual double getOffsetY() const; 232cdf0e10cSrcweir 233cdf0e10cSrcweir private: 234cdf0e10cSrcweir double implGetPos( bool bPosY ) const; 235cdf0e10cSrcweir void implSetPos( double fPos, bool bPosY ); 236cdf0e10cSrcweir double implGetSize( bool bHeight, bool bOuter ) const; 237cdf0e10cSrcweir void implSetSize( double fSize, bool bHeight, bool bOuter ); 238cdf0e10cSrcweir 239cdf0e10cSrcweir private: 240cdf0e10cSrcweir css::uno::Reference< css::awt::XWindow > mxWindow; 241cdf0e10cSrcweir css::uno::Reference< css::beans::XPropertySet > mxModelProps; 242cdf0e10cSrcweir css::uno::Reference< css::awt::XUnitConversion > mxUnitConv; 243cdf0e10cSrcweir double mfOffsetX; 244cdf0e10cSrcweir double mfOffsetY; 245cdf0e10cSrcweir sal_Bool mbDialog; 246cdf0e10cSrcweir }; 247cdf0e10cSrcweir 248cdf0e10cSrcweir class VBAHELPER_DLLPUBLIC ContainerUtilities 249cdf0e10cSrcweir { 250cdf0e10cSrcweir 251cdf0e10cSrcweir public: 252cdf0e10cSrcweir static rtl::OUString getUniqueName( const css::uno::Sequence< ::rtl::OUString >& _slist, const rtl::OUString& _sElementName, const ::rtl::OUString& _sSuffixSeparator); 253cdf0e10cSrcweir static rtl::OUString getUniqueName( const css::uno::Sequence< rtl::OUString >& _slist, const rtl::OUString _sElementName, const rtl::OUString& _sSuffixSeparator, sal_Int32 _nStartSuffix ); 254cdf0e10cSrcweir 255cdf0e10cSrcweir static sal_Int32 FieldInList( const css::uno::Sequence< rtl::OUString >& SearchList, const rtl::OUString& SearchString ); 256cdf0e10cSrcweir }; 257cdf0e10cSrcweir 258cdf0e10cSrcweir // really just a a place holder to ease the porting pain 259cdf0e10cSrcweir class VBAHELPER_DLLPUBLIC DebugHelper 260cdf0e10cSrcweir { 261cdf0e10cSrcweir public: 262cdf0e10cSrcweir static void exception( const rtl::OUString& DetailedMessage, const css::uno::Exception& ex, int err, const rtl::OUString& /*additionalArgument*/ ) throw( css::script::BasicErrorException ); 263cdf0e10cSrcweir 264cdf0e10cSrcweir static void exception( int err, const rtl::OUString& additionalArgument ) throw( css::script::BasicErrorException ); 265cdf0e10cSrcweir 266cdf0e10cSrcweir static void exception( css::uno::Exception& ex ) throw( css::script::BasicErrorException ); 267cdf0e10cSrcweir }; 268cdf0e10cSrcweir } // vba 269cdf0e10cSrcweir } // ooo 270cdf0e10cSrcweir 271cdf0e10cSrcweir namespace ov = ooo::vba; 272cdf0e10cSrcweir 273cdf0e10cSrcweir #ifdef DEBUG 274cdf0e10cSrcweir # define SC_VBA_FIXME(a) OSL_TRACE( a ) 275cdf0e10cSrcweir # define SC_VBA_STUB() SC_VBA_FIXME(( "%s - stubbed\n", __FUNCTION__ )) 276cdf0e10cSrcweir #else 277cdf0e10cSrcweir # define SC_VBA_FIXME(a) 278cdf0e10cSrcweir # define SC_VBA_STUB() 279cdf0e10cSrcweir #endif 280cdf0e10cSrcweir 281cdf0e10cSrcweir #endif 282