2010-10-14 08:30:41 +02:00
|
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2000-09-18 23:08:29 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2008-04-10 13:25:24 +00:00
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2010-02-12 15:01:35 +01:00
|
|
|
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 13:25:24 +00:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 13:25:24 +00:00
|
|
|
* This file is part of OpenOffice.org.
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 13:25:24 +00:00
|
|
|
* OpenOffice.org is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Lesser General Public License version 3
|
|
|
|
* only, as published by the Free Software Foundation.
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 13:25:24 +00:00
|
|
|
* OpenOffice.org is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU Lesser General Public License version 3 for more details
|
|
|
|
* (a copy is included in the LICENSE file that accompanied this code).
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 13:25:24 +00:00
|
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
|
|
* version 3 along with OpenOffice.org. If not, see
|
|
|
|
* <http://www.openoffice.org/license.html>
|
|
|
|
* for a copy of the LGPLv3 License.
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
|
|
|
************************************************************************/
|
|
|
|
#ifndef _ROWFRM_HXX
|
|
|
|
#define _ROWFRM_HXX
|
|
|
|
|
|
|
|
#include <tools/mempool.hxx>
|
|
|
|
|
|
|
|
#include "layfrm.hxx"
|
|
|
|
|
|
|
|
class SwTableLine;
|
|
|
|
class SwBorderAttrs;
|
|
|
|
|
|
|
|
class SwRowFrm: public SwLayoutFrm
|
|
|
|
{
|
|
|
|
virtual void Format( const SwBorderAttrs *pAttrs = 0 );
|
|
|
|
//Aendern nur die Framesize, nicht die PrtArea-SSize
|
2011-01-17 15:06:54 +01:00
|
|
|
virtual SwTwips ShrinkFrm( SwTwips, sal_Bool bTst = sal_False, sal_Bool bInfo = sal_False );
|
|
|
|
virtual SwTwips GrowFrm ( SwTwips, sal_Bool bTst = sal_False, sal_Bool bInfo = sal_False );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
const SwTableLine *pTabLine;
|
2004-01-13 10:12:28 +00:00
|
|
|
SwRowFrm* pFollowRow;
|
2004-07-12 12:32:45 +00:00
|
|
|
// --> collapsing borders FME 2005-05-27 #i29550#
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 mnTopMarginForLowers;
|
|
|
|
sal_uInt16 mnBottomMarginForLowers;
|
|
|
|
sal_uInt16 mnBottomLineSize;
|
2004-07-12 12:32:45 +00:00
|
|
|
// <-- collapsing
|
2004-01-13 10:12:28 +00:00
|
|
|
bool bIsFollowFlowRow;
|
2004-05-03 12:46:15 +00:00
|
|
|
bool bIsRepeatedHeadline;
|
2007-02-28 14:46:00 +00:00
|
|
|
bool mbIsRowSpanLine;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
protected:
|
|
|
|
virtual void MakeAll();
|
|
|
|
|
|
|
|
public:
|
2004-01-13 10:12:28 +00:00
|
|
|
SwRowFrm( const SwTableLine &, bool bInsertContent = true );
|
2000-09-18 23:08:29 +00:00
|
|
|
~SwRowFrm();
|
|
|
|
|
|
|
|
virtual void Cut();
|
|
|
|
virtual void Modify( SfxPoolItem*, SfxPoolItem* );
|
|
|
|
|
|
|
|
//Zum Anmelden der Flys nachdem eine Zeile erzeugt _und_ eingefuegt wurde.
|
|
|
|
//Muss vom Erzeuger gerufen werden, denn erst nach dem Konstruieren wird
|
|
|
|
//Das Teil gepastet; mithin ist auch erst dann die Seite zum Anmelden der
|
|
|
|
//Flys erreichbar.
|
|
|
|
void RegistFlys( SwPageFrm *pPage = 0 );
|
|
|
|
|
|
|
|
const SwTableLine *GetTabLine() const { return pTabLine; }
|
|
|
|
|
|
|
|
//Passt die Zellen auf die aktuelle Hoehe an, invalidiert die Zellen
|
|
|
|
//wenn die Direction nicht der Hoehe entspricht.
|
2011-01-17 15:06:54 +01:00
|
|
|
void AdjustCells( const SwTwips nHeight, const sal_Bool bHeight );
|
2004-01-13 10:12:28 +00:00
|
|
|
|
|
|
|
//
|
|
|
|
//
|
|
|
|
SwRowFrm* GetFollowRow() const { return pFollowRow; }
|
|
|
|
void SetFollowRow( SwRowFrm* pNew ) { pFollowRow = pNew; }
|
|
|
|
|
2004-07-12 12:32:45 +00:00
|
|
|
// --> collapsing borders FME 2005-05-27 #i29550#
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 GetTopMarginForLowers() const { return mnTopMarginForLowers; }
|
|
|
|
void SetTopMarginForLowers( sal_uInt16 nNew ) { mnTopMarginForLowers = nNew; }
|
|
|
|
sal_uInt16 GetBottomMarginForLowers() const { return mnBottomMarginForLowers; }
|
|
|
|
void SetBottomMarginForLowers( sal_uInt16 nNew ) { mnBottomMarginForLowers = nNew; }
|
|
|
|
sal_uInt16 GetBottomLineSize() const { return mnBottomLineSize; }
|
|
|
|
void SetBottomLineSize( sal_uInt16 nNew ) { mnBottomLineSize = nNew; }
|
2004-07-12 12:32:45 +00:00
|
|
|
// <-- collapsing
|
2004-01-13 10:12:28 +00:00
|
|
|
|
2004-05-03 12:46:15 +00:00
|
|
|
bool IsRepeatedHeadline() const { return bIsRepeatedHeadline; }
|
|
|
|
void SetRepeatedHeadline( bool bNew ) { bIsRepeatedHeadline = bNew; }
|
|
|
|
|
2004-07-12 12:32:45 +00:00
|
|
|
// --> split table rows
|
2004-01-13 10:12:28 +00:00
|
|
|
bool IsRowSplitAllowed() const;
|
2004-07-12 12:32:45 +00:00
|
|
|
bool IsFollowFlowRow() const { return bIsFollowFlowRow; }
|
|
|
|
void SetFollowFlowRow( bool bNew ) { bIsFollowFlowRow = bNew; }
|
|
|
|
// <-- split table rows
|
2004-01-13 10:12:28 +00:00
|
|
|
|
2006-03-09 13:05:58 +00:00
|
|
|
// --> FME 2006-02-10 #131283# Table row keep feature
|
|
|
|
bool ShouldRowKeepWithNext() const;
|
|
|
|
// <--
|
|
|
|
|
2007-02-28 14:46:00 +00:00
|
|
|
// --> FME 2006-10-30 #i4032# NEW TABLES
|
|
|
|
bool IsRowSpanLine() const { return mbIsRowSpanLine; }
|
|
|
|
void SetRowSpanLine( bool bNew ) { mbIsRowSpanLine = bNew; }
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
DECL_FIXEDMEMPOOL_NEWDEL(SwRowFrm)
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
2010-10-14 08:30:41 +02:00
|
|
|
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|