| /************************************************************** |
| * |
| * 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 SW_UNOTEXTRANGE_HXX |
| #define SW_UNOTEXTRANGE_HXX |
| |
| #include <com/sun/star/lang/XUnoTunnel.hpp> |
| #include <com/sun/star/lang/XServiceInfo.hpp> |
| #include <com/sun/star/beans/XPropertySet.hpp> |
| #include <com/sun/star/beans/XPropertyState.hpp> |
| #include <com/sun/star/container/XIndexAccess.hpp> |
| #include <com/sun/star/container/XEnumerationAccess.hpp> |
| #include <com/sun/star/container/XContentEnumerationAccess.hpp> |
| #include <com/sun/star/text/XTextRange.hpp> |
| #include <com/sun/star/text/XRedline.hpp> |
| |
| #include <cppuhelper/implbase3.hxx> |
| #include <cppuhelper/implbase8.hxx> |
| |
| #include <pam.hxx> |
| #include <unobaseclass.hxx> |
| |
| |
| class SwDoc; |
| struct SwPosition; |
| class SwPaM; |
| class SwUnoCrsr; |
| class SwFrmFmt; |
| |
| /* -----------------29.04.98 07:35------------------- |
| * |
| * --------------------------------------------------*/ |
| class SwUnoInternalPaM |
| : public SwPaM |
| { |
| |
| private: |
| SwUnoInternalPaM(const SwUnoInternalPaM&); |
| |
| public: |
| SwUnoInternalPaM(SwDoc& rDoc); |
| virtual ~SwUnoInternalPaM(); |
| |
| SwUnoInternalPaM& operator=(const SwPaM& rPaM); |
| }; |
| |
| |
| namespace sw { |
| |
| void DeepCopyPaM(SwPaM const & rSource, SwPaM & rTarget); |
| |
| bool XTextRangeToSwPaM(SwUnoInternalPaM& rToFill, |
| const ::com::sun::star::uno::Reference< |
| ::com::sun::star::text::XTextRange > & xTextRange); |
| |
| ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > |
| CreateParentXText(SwDoc & rDoc, const SwPosition& rPos); |
| |
| bool GetDefaultTextContentValue(::com::sun::star::uno::Any& rAny, |
| const ::rtl::OUString& rPropertyName, sal_uInt16 nWID = 0); |
| |
| } // namespace sw |
| |
| |
| typedef ::cppu::WeakImplHelper8 |
| < ::com::sun::star::lang::XUnoTunnel |
| , ::com::sun::star::lang::XServiceInfo |
| , ::com::sun::star::beans::XPropertySet |
| , ::com::sun::star::beans::XPropertyState |
| , ::com::sun::star::container::XEnumerationAccess |
| , ::com::sun::star::container::XContentEnumerationAccess |
| , ::com::sun::star::text::XTextRange |
| , ::com::sun::star::text::XRedline |
| > SwXTextRange_Base; |
| |
| class SW_DLLPUBLIC SwXTextRange |
| : public SwXTextRange_Base |
| { |
| |
| private: |
| |
| friend class SwXText; |
| |
| class Impl; |
| ::sw::UnoImplPtr<Impl> m_pImpl; |
| |
| enum RangePosition |
| { |
| RANGE_IN_TEXT, // "ordinary" ::com::sun::star::text::TextRange |
| RANGE_IN_CELL, // position created with a cell that has no uno object |
| RANGE_IS_TABLE, // anchor of a table |
| }; |
| |
| void SetPositions(SwPaM const& rPam); |
| //TODO: new exception type for protected content |
| void DeleteAndInsert( |
| const ::rtl::OUString& rText, const bool bForceExpandHints) |
| throw (::com::sun::star::uno::RuntimeException); |
| void Invalidate(); |
| |
| virtual ~SwXTextRange(); |
| |
| public: |
| |
| SwXTextRange(SwPaM& rPam, |
| const ::com::sun::star::uno::Reference< |
| ::com::sun::star::text::XText > & xParent, |
| const enum RangePosition eRange = RANGE_IN_TEXT); |
| // only for RANGE_IS_TABLE |
| SwXTextRange(SwFrmFmt& rTblFmt); |
| |
| const SwDoc* GetDoc() const; |
| SwDoc* GetDoc(); |
| bool GetPositions(SwPaM & rToFill) const; |
| |
| static ::com::sun::star::uno::Reference< |
| ::com::sun::star::text::XTextRange > CreateXTextRange( |
| SwDoc & rDoc, |
| const SwPosition& rPos, const SwPosition *const pMark); |
| |
| static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId(); |
| |
| // XUnoTunnel |
| virtual sal_Int64 SAL_CALL getSomething( |
| const ::com::sun::star::uno::Sequence< sal_Int8 >& rIdentifier) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XServiceInfo |
| virtual ::rtl::OUString SAL_CALL getImplementationName() |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual sal_Bool SAL_CALL supportsService( |
| const ::rtl::OUString& rServiceName) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL |
| getSupportedServiceNames() |
| 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& rPropertyName, |
| const ::com::sun::star::uno::Any& rValue) |
| 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& rPropertyName) |
| throw (::com::sun::star::beans::UnknownPropertyException, |
| ::com::sun::star::lang::WrappedTargetException, |
| ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL addPropertyChangeListener( |
| const ::rtl::OUString& rPropertyName, |
| 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& rPropertyName, |
| 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 addVetoableChangeListener( |
| const ::rtl::OUString& rPropertyName, |
| const ::com::sun::star::uno::Reference< |
| ::com::sun::star::beans::XVetoableChangeListener >& xListener) |
| throw (::com::sun::star::beans::UnknownPropertyException, |
| ::com::sun::star::lang::WrappedTargetException, |
| ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeVetoableChangeListener( |
| const ::rtl::OUString& rPropertyName, |
| const ::com::sun::star::uno::Reference< |
| ::com::sun::star::beans::XVetoableChangeListener >& xListener) |
| throw (::com::sun::star::beans::UnknownPropertyException, |
| ::com::sun::star::lang::WrappedTargetException, |
| ::com::sun::star::uno::RuntimeException); |
| |
| // XPropertyState |
| virtual ::com::sun::star::beans::PropertyState SAL_CALL |
| getPropertyState(const ::rtl::OUString& rPropertyName) |
| throw (::com::sun::star::beans::UnknownPropertyException, |
| ::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< |
| ::com::sun::star::beans::PropertyState > SAL_CALL |
| getPropertyStates( |
| const ::com::sun::star::uno::Sequence< |
| ::rtl::OUString >& rPropertyNames) |
| throw (::com::sun::star::beans::UnknownPropertyException, |
| ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setPropertyToDefault( |
| const ::rtl::OUString& rPropertyName) |
| throw (::com::sun::star::beans::UnknownPropertyException, |
| ::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( |
| const ::rtl::OUString& rPropertyName) |
| throw (::com::sun::star::beans::UnknownPropertyException, |
| ::com::sun::star::lang::WrappedTargetException, |
| ::com::sun::star::uno::RuntimeException); |
| |
| // XElementAccess |
| virtual ::com::sun::star::uno::Type SAL_CALL getElementType() |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual sal_Bool SAL_CALL hasElements() |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XEnumerationAccess |
| virtual ::com::sun::star::uno::Reference< |
| ::com::sun::star::container::XEnumeration > SAL_CALL |
| createEnumeration() |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XContentEnumerationAccess |
| virtual ::com::sun::star::uno::Reference< |
| ::com::sun::star::container::XEnumeration > SAL_CALL |
| createContentEnumeration(const ::rtl::OUString& rServiceName) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL |
| getAvailableServiceNames() |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XTextRange |
| virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > |
| SAL_CALL getText() |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Reference< |
| ::com::sun::star::text::XTextRange > SAL_CALL getStart() |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Reference< |
| ::com::sun::star::text::XTextRange > SAL_CALL getEnd() |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::rtl::OUString SAL_CALL getString() |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setString(const ::rtl::OUString& rString) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XRedline |
| virtual void SAL_CALL makeRedline( |
| const ::rtl::OUString& rRedlineType, |
| const ::com::sun::star::uno::Sequence< |
| ::com::sun::star::beans::PropertyValue >& RedlineProperties) |
| throw (::com::sun::star::lang::IllegalArgumentException, |
| ::com::sun::star::uno::RuntimeException); |
| |
| }; |
| |
| /* -----------------15.05.98 08:29------------------- |
| * |
| * --------------------------------------------------*/ |
| |
| typedef ::cppu::WeakImplHelper3 |
| < ::com::sun::star::lang::XUnoTunnel |
| , ::com::sun::star::lang::XServiceInfo |
| , ::com::sun::star::container::XIndexAccess |
| > SwXTextRanges_Base; |
| |
| class SwXTextRanges |
| : public SwXTextRanges_Base |
| { |
| |
| private: |
| |
| class Impl; |
| ::sw::UnoImplPtr<Impl> m_pImpl; |
| |
| virtual ~SwXTextRanges(); |
| |
| public: |
| |
| SwXTextRanges(SwPaM *const pCrsr); |
| |
| const SwUnoCrsr* GetCursor() const; |
| |
| static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId(); |
| |
| // XUnoTunnel |
| virtual sal_Int64 SAL_CALL getSomething( |
| const ::com::sun::star::uno::Sequence< sal_Int8 >& rIdentifier) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XServiceInfo |
| virtual ::rtl::OUString SAL_CALL getImplementationName() |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual sal_Bool SAL_CALL supportsService( |
| const ::rtl::OUString& rServiceName) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL |
| getSupportedServiceNames() |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XElementAccess |
| virtual ::com::sun::star::uno::Type SAL_CALL getElementType() |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual sal_Bool SAL_CALL hasElements() |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XIndexAccess |
| virtual sal_Int32 SAL_CALL getCount() |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) |
| throw (::com::sun::star::lang::IndexOutOfBoundsException, |
| ::com::sun::star::lang::WrappedTargetException, |
| ::com::sun::star::uno::RuntimeException); |
| |
| }; |
| |
| #endif // SW_UNOTEXTRANGE_HXX |
| |