"Fossies" - the Fresh Open Source Software Archive

Member "aoo-4.1.6/main/sw/source/core/inc/cntfrm.hxx" (18 Oct 2018, 5302 Bytes) of package /linux/misc/openoffice/src/apache-openoffice-4.1.6-r1844436-src.tar.bz2:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "cntfrm.hxx": 4.1.5-r1817496-src_vs_4.1.6-r1844436-src.

    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 _CNTFRM_HXX
   24 #define _CNTFRM_HXX
   25 #include "frame.hxx"
   26 #include "flowfrm.hxx"
   27 #include "cshtyp.hxx"
   28 
   29 class SwLayoutFrm;
   30 class SwCntntNode;
   31 class SwBorderAttrs;
   32 class SwAttrSetChg;
   33 class SwTxtFrm;
   34 
   35 //Implementiert in cntfrm.cxx, wird von cntfrm.cxx und crsrsh.cxx angezogen
   36 extern sal_Bool GetFrmInPage( const SwCntntFrm*, SwWhichPage, SwPosPage, SwPaM* );
   37 
   38 class SwCntntFrm: public SwFrm, public SwFlowFrm
   39 {
   40     friend void MakeNxt( SwFrm *pFrm, SwFrm *pNxt );    //ruft MakePrtArea
   41 
   42     // --> OD 2007-11-26 #b6614158#
   43     // parameter <bObjsInNewUpper>, indicating that objects are existing in
   44     // remaining area of new upper
   45     sal_Bool _WouldFit( SwTwips nSpace,
   46                     SwLayoutFrm *pNewUpper,
   47                     sal_Bool bTstMove,
   48                     const bool bObjsInNewUpper );
   49     // <--
   50     virtual void MakeAll();
   51 
   52     void _UpdateAttr( const SfxPoolItem*, const SfxPoolItem*, sal_uInt8 &,
   53                       SwAttrSetChg *pa = 0, SwAttrSetChg *pb = 0 );
   54 
   55     virtual sal_Bool ShouldBwdMoved( SwLayoutFrm *pNewUpper, sal_Bool, sal_Bool& );
   56 
   57     const SwCntntFrm* ImplGetNextCntntFrm( bool bFwd ) const;
   58 
   59 protected:
   60 
   61     sal_Bool MakePrtArea( const SwBorderAttrs & );
   62 
   63     virtual void Modify( const SfxPoolItem*, const SfxPoolItem* );
   64     virtual SwTwips ShrinkFrm( SwTwips, sal_Bool bTst = sal_False, sal_Bool bInfo = sal_False );
   65     virtual SwTwips GrowFrm  ( SwTwips, sal_Bool bTst = sal_False, sal_Bool bInfo = sal_False );
   66 
   67     SwCntntFrm( SwCntntNode * const, SwFrm* );
   68 
   69 public:
   70     virtual ~SwCntntFrm();
   71     TYPEINFO(); //bereits in Basisklassen drin
   72 
   73     virtual void Cut();
   74     virtual void Paste( SwFrm* pParent, SwFrm* pSibling = 0 );
   75 
   76     inline       SwCntntNode *GetNode();
   77     inline const SwCntntNode *GetNode() const;
   78                  sal_uInt16       GetSectionLevel();
   79 
   80     inline const SwCntntFrm *GetFollow() const;
   81     inline       SwCntntFrm *GetFollow();
   82     SwTxtFrm* FindMaster() const;
   83 
   84         //Layoutabhaengiges Cursortravelling
   85     virtual sal_Bool    LeftMargin( SwPaM * ) const;
   86     virtual sal_Bool    RightMargin( SwPaM *, sal_Bool bAPI = sal_False ) const;
   87     virtual sal_Bool    UnitUp( SwPaM *, const SwTwips nOffset = 0,
   88                             sal_Bool bSetInReadOnly = sal_False ) const;
   89     virtual sal_Bool    UnitDown( SwPaM *, const SwTwips nOffset = 0,
   90                             sal_Bool bSetInReadOnly = sal_False ) const;
   91     inline  sal_Bool    StartNextPage( SwPaM * ) const;
   92     inline  sal_Bool    StartPrevPage( SwPaM * ) const;
   93     inline  sal_Bool    StartCurrPage( SwPaM * ) const;
   94     inline  sal_Bool    EndCurrPage( SwPaM * ) const;
   95     inline  sal_Bool    EndNextPage( SwPaM * ) const;
   96     inline  sal_Bool    EndPrevPage( SwPaM * ) const;
   97 
   98     // nMaxHeight is the required height
   99     // bSplit indicates, that the paragraph has to be split
  100     // bTst indicates, that we are currently doing a test formatting
  101     virtual sal_Bool WouldFit( SwTwips &nMaxHeight, sal_Bool &bSplit, sal_Bool bTst );
  102 
  103     sal_Bool MoveFtnCntFwd( sal_Bool, SwFtnBossFrm* );//von MoveFwd gerufen bei Ftn-Inhalt
  104 
  105     inline  SwCntntFrm* GetNextCntntFrm() const;
  106     inline  SwCntntFrm* GetNextCntntFrm( bool ) const;
  107     inline  SwCntntFrm* GetPrevCntntFrm() const;
  108     static bool CalcLowers( SwLayoutFrm* pLay, const SwLayoutFrm* pDontLeave, long nBottom, bool bSkipRowSpanCells );
  109     void RegisterToNode( SwCntntNode& );
  110     static void DelFrms( const SwCntntNode& );
  111 };
  112 
  113 inline SwCntntFrm* SwCntntFrm::GetNextCntntFrm() const
  114 {
  115     if ( GetNext() && GetNext()->IsCntntFrm() )
  116         return (SwCntntFrm*)GetNext();
  117     else
  118         return (SwCntntFrm*)ImplGetNextCntntFrm( true );
  119 }
  120 
  121 inline SwCntntFrm* SwCntntFrm::GetNextCntntFrm( bool bPrune ) const
  122 {
  123     if ( bPrune && !GetPrev() )
  124         return NULL;
  125     else if ( bPrune || !(GetNext() && GetNext()->IsCntntFrm()))
  126         return (SwCntntFrm*)ImplGetNextCntntFrm( true );
  127     else
  128         return (SwCntntFrm*)GetNext();
  129 }
  130 
  131 inline SwCntntFrm* SwCntntFrm::GetPrevCntntFrm() const
  132 {
  133     if ( GetPrev() && GetPrev()->IsCntntFrm() )
  134         return (SwCntntFrm*)GetPrev();
  135     else
  136         return (SwCntntFrm*)ImplGetNextCntntFrm( false );
  137 }
  138 
  139 inline SwCntntNode *SwCntntFrm::GetNode()
  140 {
  141     return (SwCntntNode*)GetDep();
  142 }
  143 inline const SwCntntNode *SwCntntFrm::GetNode() const
  144 {
  145     return (SwCntntNode*)GetDep();
  146 }
  147 
  148 inline const SwCntntFrm *SwCntntFrm::GetFollow() const
  149 {
  150     return (const SwCntntFrm*)SwFlowFrm::GetFollow();
  151 }
  152 inline SwCntntFrm *SwCntntFrm::GetFollow()
  153 {
  154     return (SwCntntFrm*)SwFlowFrm::GetFollow();
  155 }
  156 
  157 #endif