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 #ifndef _UNOCRSRHELPER_HXX 24*b1cdbd2cSJim Jagielski #define _UNOCRSRHELPER_HXX 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski #include <map> 27*b1cdbd2cSJim Jagielski 28*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/XPropertyState.hpp> 29*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/XPropertySet.hpp> 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski #include <swtypes.hxx> 32*b1cdbd2cSJim Jagielski #include <pam.hxx> 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski class String; 36*b1cdbd2cSJim Jagielski class SfxItemSet; 37*b1cdbd2cSJim Jagielski class SfxItemPropertySet; 38*b1cdbd2cSJim Jagielski struct SfxItemPropertySimpleEntry; 39*b1cdbd2cSJim Jagielski class SwTxtNode; 40*b1cdbd2cSJim Jagielski class SwPaM; 41*b1cdbd2cSJim Jagielski class SwCursor; 42*b1cdbd2cSJim Jagielski class SwUnoCrsr; 43*b1cdbd2cSJim Jagielski class SwFmtColl; 44*b1cdbd2cSJim Jagielski struct SwSortOptions; 45*b1cdbd2cSJim Jagielski class SwDoc; 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim Jagielski namespace com{ namespace sun{ namespace star{ 48*b1cdbd2cSJim Jagielski namespace uno{ 49*b1cdbd2cSJim Jagielski class Any; 50*b1cdbd2cSJim Jagielski } 51*b1cdbd2cSJim Jagielski namespace beans{ 52*b1cdbd2cSJim Jagielski struct PropertyValue; 53*b1cdbd2cSJim Jagielski } 54*b1cdbd2cSJim Jagielski namespace text { 55*b1cdbd2cSJim Jagielski class XTextContent; 56*b1cdbd2cSJim Jagielski } 57*b1cdbd2cSJim Jagielski }}} 58*b1cdbd2cSJim Jagielski 59*b1cdbd2cSJim Jagielski /* -----------------03.12.98 12:16------------------- 60*b1cdbd2cSJim Jagielski * 61*b1cdbd2cSJim Jagielski * --------------------------------------------------*/ 62*b1cdbd2cSJim Jagielski enum SwGetPropertyStatesCaller 63*b1cdbd2cSJim Jagielski { 64*b1cdbd2cSJim Jagielski SW_PROPERTY_STATE_CALLER_DEFAULT, 65*b1cdbd2cSJim Jagielski SW_PROPERTY_STATE_CALLER_SWX_TEXT_PORTION, 66*b1cdbd2cSJim Jagielski SW_PROPERTY_STATE_CALLER_SINGLE_VALUE_ONLY, 67*b1cdbd2cSJim Jagielski SW_PROPERTY_STATE_CALLER_SWX_TEXT_PORTION_TOLERANT 68*b1cdbd2cSJim Jagielski }; 69*b1cdbd2cSJim Jagielski 70*b1cdbd2cSJim Jagielski /* -----------------------------14.12.00 15:06-------------------------------- 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski ---------------------------------------------------------------------------*/ 73*b1cdbd2cSJim Jagielski namespace SwUnoCursorHelper 74*b1cdbd2cSJim Jagielski { 75*b1cdbd2cSJim Jagielski // keep Any's mapped by (WhichId << 16 ) + (MemberId) 76*b1cdbd2cSJim Jagielski typedef std::map< sal_uInt32, com::sun::star::uno::Any *> AnyMapHelper_t; 77*b1cdbd2cSJim Jagielski class SwAnyMapHelper : public AnyMapHelper_t 78*b1cdbd2cSJim Jagielski { 79*b1cdbd2cSJim Jagielski public: 80*b1cdbd2cSJim Jagielski ~SwAnyMapHelper(); 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski void SetValue( sal_uInt16 nWhichId, sal_uInt16 nMemberId, const com::sun::star::uno::Any& rAny ); 83*b1cdbd2cSJim Jagielski bool FillValue( sal_uInt16 nWhichId, sal_uInt16 nMemberId, const com::sun::star::uno::Any*& pAny ); 84*b1cdbd2cSJim Jagielski }; 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent > 87*b1cdbd2cSJim Jagielski GetNestedTextContent(SwTxtNode & rTextNode, xub_StrLen const nIndex, 88*b1cdbd2cSJim Jagielski bool const bParent); 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski sal_Bool getCrsrPropertyValue(const SfxItemPropertySimpleEntry& rEntry 91*b1cdbd2cSJim Jagielski , SwPaM& rPam 92*b1cdbd2cSJim Jagielski , com::sun::star::uno::Any *pAny 93*b1cdbd2cSJim Jagielski , com::sun::star::beans::PropertyState& eState 94*b1cdbd2cSJim Jagielski , const SwTxtNode* pNode = 0 ); 95*b1cdbd2cSJim Jagielski 96*b1cdbd2cSJim Jagielski void GetCurPageStyle(SwPaM& rPaM, String &rString); 97*b1cdbd2cSJim Jagielski IsStartOfPara(SwPaM & rUnoCrsr)98*b1cdbd2cSJim Jagielski inline sal_Bool IsStartOfPara(SwPaM& rUnoCrsr) 99*b1cdbd2cSJim Jagielski { return rUnoCrsr.GetPoint()->nContent == 0;} IsEndOfPara(SwPaM & rUnoCrsr)100*b1cdbd2cSJim Jagielski inline sal_Bool IsEndOfPara(SwPaM& rUnoCrsr) 101*b1cdbd2cSJim Jagielski { return rUnoCrsr.GetCntntNode() && 102*b1cdbd2cSJim Jagielski rUnoCrsr.GetPoint()->nContent == rUnoCrsr.GetCntntNode()->Len();} 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim Jagielski void resetCrsrPropertyValue(const SfxItemPropertySimpleEntry& rEntry, SwPaM& rPam); 105*b1cdbd2cSJim Jagielski void InsertFile(SwUnoCrsr* pUnoCrsr, 106*b1cdbd2cSJim Jagielski const String& rURL, 107*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rOptions 108*b1cdbd2cSJim Jagielski ) throw( com::sun::star::lang::IllegalArgumentException, com::sun::star::io::IOException, com::sun::star::uno::RuntimeException ); 109*b1cdbd2cSJim Jagielski 110*b1cdbd2cSJim Jagielski void getNumberingProperty( 111*b1cdbd2cSJim Jagielski SwPaM& rPam, 112*b1cdbd2cSJim Jagielski com::sun::star::beans::PropertyState& eState, 113*b1cdbd2cSJim Jagielski com::sun::star::uno::Any *pAny ); 114*b1cdbd2cSJim Jagielski 115*b1cdbd2cSJim Jagielski void setNumberingProperty( 116*b1cdbd2cSJim Jagielski const com::sun::star::uno::Any& rValue, 117*b1cdbd2cSJim Jagielski SwPaM& rPam); 118*b1cdbd2cSJim Jagielski 119*b1cdbd2cSJim Jagielski sal_Int16 IsNodeNumStart( 120*b1cdbd2cSJim Jagielski SwPaM& rPam, 121*b1cdbd2cSJim Jagielski com::sun::star::beans::PropertyState& eState); 122*b1cdbd2cSJim Jagielski 123*b1cdbd2cSJim Jagielski sal_Bool DocInsertStringSplitCR( SwDoc &rDoc, 124*b1cdbd2cSJim Jagielski const SwPaM &rNewCursor, const String &rText, 125*b1cdbd2cSJim Jagielski const bool bForceExpandHints ); 126*b1cdbd2cSJim Jagielski void makeRedline( SwPaM& rPaM, const ::rtl::OUString& RedlineType, 127*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& RedlineProperties ) 128*b1cdbd2cSJim Jagielski throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski 131*b1cdbd2cSJim Jagielski /// @param bTableMode: attributes should be applied to a table selection 132*b1cdbd2cSJim Jagielski void SetCrsrAttr(SwPaM & rPam, const SfxItemSet & rSet, 133*b1cdbd2cSJim Jagielski const SetAttrMode nAttrMode, 134*b1cdbd2cSJim Jagielski const bool bTableMode = false); 135*b1cdbd2cSJim Jagielski void GetCrsrAttr(SwPaM & rPam, SfxItemSet & rSet, 136*b1cdbd2cSJim Jagielski const bool bOnlyTxtAttr = false, 137*b1cdbd2cSJim Jagielski const bool bGetFromChrFmt = true); 138*b1cdbd2cSJim Jagielski void GetTextFromPam(SwPaM & rPam, ::rtl::OUString & rBuffer); 139*b1cdbd2cSJim Jagielski SwFmtColl * GetCurTxtFmtColl(SwPaM & rPam, const bool bConditional); 140*b1cdbd2cSJim Jagielski 141*b1cdbd2cSJim Jagielski void SelectPam(SwPaM & rPam, const bool bExpand); 142*b1cdbd2cSJim Jagielski void SetString(SwCursor & rCursor, const ::rtl::OUString & rString); 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > 145*b1cdbd2cSJim Jagielski CreateSortDescriptor(const bool bFromTable); 146*b1cdbd2cSJim Jagielski sal_Bool ConvertSortProperties( 147*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Sequence< 148*b1cdbd2cSJim Jagielski ::com::sun::star::beans::PropertyValue >& rDescriptor, 149*b1cdbd2cSJim Jagielski SwSortOptions & rSortOpt); 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielski /// @param bTableMode: attributes should be applied to a table selection 152*b1cdbd2cSJim Jagielski void SetPropertyValue( 153*b1cdbd2cSJim Jagielski SwPaM& rPaM, 154*b1cdbd2cSJim Jagielski const SfxItemPropertySet & rPropSet, 155*b1cdbd2cSJim Jagielski const ::rtl::OUString & rPropertyName, 156*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any & rValue, 157*b1cdbd2cSJim Jagielski const SetAttrMode nAttrMode = nsSetAttrMode::SETATTR_DEFAULT, 158*b1cdbd2cSJim Jagielski const bool bTableMode = false) 159*b1cdbd2cSJim Jagielski throw (::com::sun::star::beans::UnknownPropertyException, 160*b1cdbd2cSJim Jagielski ::com::sun::star::beans::PropertyVetoException, 161*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 162*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 163*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 164*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Any GetPropertyValue( 165*b1cdbd2cSJim Jagielski SwPaM& rPaM, 166*b1cdbd2cSJim Jagielski const SfxItemPropertySet & rPropSet, 167*b1cdbd2cSJim Jagielski const ::rtl::OUString & rPropertyName) 168*b1cdbd2cSJim Jagielski throw (::com::sun::star::beans::UnknownPropertyException, 169*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 170*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 171*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< 172*b1cdbd2cSJim Jagielski ::com::sun::star::beans::PropertyState > GetPropertyStates( 173*b1cdbd2cSJim Jagielski SwPaM & rPaM, 174*b1cdbd2cSJim Jagielski const SfxItemPropertySet & rPropSet, 175*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Sequence< ::rtl::OUString >& 176*b1cdbd2cSJim Jagielski rPropertyNames, 177*b1cdbd2cSJim Jagielski const SwGetPropertyStatesCaller eCaller = 178*b1cdbd2cSJim Jagielski SW_PROPERTY_STATE_CALLER_DEFAULT) 179*b1cdbd2cSJim Jagielski throw (::com::sun::star::beans::UnknownPropertyException, 180*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 181*b1cdbd2cSJim Jagielski ::com::sun::star::beans::PropertyState GetPropertyState( 182*b1cdbd2cSJim Jagielski SwPaM & rPaM, 183*b1cdbd2cSJim Jagielski const SfxItemPropertySet & rPropSet, 184*b1cdbd2cSJim Jagielski const ::rtl::OUString & rPropertyName) 185*b1cdbd2cSJim Jagielski throw (::com::sun::star::beans::UnknownPropertyException, 186*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 187*b1cdbd2cSJim Jagielski void SetPropertyToDefault( 188*b1cdbd2cSJim Jagielski SwPaM & rPaM, 189*b1cdbd2cSJim Jagielski const SfxItemPropertySet & rPropSet, 190*b1cdbd2cSJim Jagielski const ::rtl::OUString & rPropertyName) 191*b1cdbd2cSJim Jagielski throw (::com::sun::star::beans::UnknownPropertyException, 192*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 193*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Any GetPropertyDefault( 194*b1cdbd2cSJim Jagielski SwPaM & rPaM, 195*b1cdbd2cSJim Jagielski const SfxItemPropertySet & rPropSet, 196*b1cdbd2cSJim Jagielski const ::rtl::OUString & rPropertyName) 197*b1cdbd2cSJim Jagielski throw (::com::sun::star::beans::UnknownPropertyException, 198*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 199*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 200*b1cdbd2cSJim Jagielski 201*b1cdbd2cSJim Jagielski bool SetPageDesc( 202*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& rValue, 203*b1cdbd2cSJim Jagielski SwDoc & rDoc, SfxItemSet & rSet); 204*b1cdbd2cSJim Jagielski void SetTxtFmtColl(const ::com::sun::star::uno::Any & rAny, SwPaM & rPaM) 205*b1cdbd2cSJim Jagielski throw (::com::sun::star::lang::IllegalArgumentException); 206*b1cdbd2cSJim Jagielski bool SetCursorPropertyValue( 207*b1cdbd2cSJim Jagielski SfxItemPropertySimpleEntry const& rEntry, 208*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Any const& rValue, 209*b1cdbd2cSJim Jagielski SwPaM & rPam, SfxItemSet & rItemSet) 210*b1cdbd2cSJim Jagielski throw (::com::sun::star::lang::IllegalArgumentException); 211*b1cdbd2cSJim Jagielski 212*b1cdbd2cSJim Jagielski } // namespace SwUnoCursorHelper 213*b1cdbd2cSJim Jagielski 214*b1cdbd2cSJim Jagielski #endif 215