Files
libreoffice/sw/inc/swtable.hxx

502 lines
20 KiB
C++
Raw Normal View History

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
re-base on ALv2 code. Includes: Patches contributed by Oliver-Rainer Wittmann sw34bf06: #i117783# - Writer's implementation of XPagePrintable - apply print settings to new printing routines http://svn.apache.org/viewvc?view=revision&revision=1172115 sw34bf06: #o12311627# use <rtl_random> methods to create unique ids for list styles and list ids http://svn.apache.org/viewvc?view=revision&revision=1172112 sw34bf06 #i114725#,#i115828# - method <SwDoc::ClearDoc()> - clear list structures completely http://svn.apache.org/viewvc?view=revision&revision=1172122 i#118572 - remove ui string and help content regarding usage of Java Mail in Writer's Mail Merge as Java Mail is not used. http://svn.apache.org/viewvc?view=revision&revision=1197035 Patches contributed by Mathias Bauer cws mba34issues01: #i117718#: provide filter name in case storage of medium does not allow to detect one http://svn.apache.org/viewvc?view=revision&revision=1172350 cws mba34issues01: #i117721#: directly provide parameters retrieved from SfxMedium http://svn.apache.org/viewvc?view=revision&revision=1172353 gnumake4 work variously http://svn.apache.org/viewvc?view=revision&revision=1394707 http://svn.apache.org/viewvc?view=revision&revision=1394326 http://svn.apache.org/viewvc?view=revision&revision=1396797 http://svn.apache.org/viewvc?view=revision&revision=1397315 cws mba34issues01: #i117723#: convert assertion into trace http://svn.apache.org/viewvc?view=revision&revision=1172355 cws mba34issues01: #i117699#: keep layout alive until swdoc dies http://svn.apache.org/viewvc?view=revision&revision=1172362 cws mba34issues01: #i117943#: missing color attributes in RTF clipboard http://svn.apache.org/viewvc?view=revision&revision=1172363 Patch contributed by Henning Brinkmann imported patch i#103878 http://svn.apache.org/viewvc?view=revision&revision=1172109 Patches contributed by Michael Stahl sw34bf06: #i117955#: WW8 export: disable storing of section breaks in endnotes http://svn.apache.org/viewvc?view=revision&revision=1172119 Patch contributed by imacat Fixed the Asian language work count. http://svn.apache.org/viewvc?view=revision&revision=1241345 Patch contributed by Pedro Giffuni i#20878 - Add comment with BZ issue for reference. http://svn.apache.org/viewvc?view=revision&revision=1244517 Patch contributed by Andre Fischer Do not add targets for junit tests when junit is disabled. http://svn.apache.org/viewvc?view=revision&revision=1241508 add writerperfect dependency.
2011-03-31 10:05:04 +02:00
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* 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 .
*/
#ifndef INCLUDED_SW_INC_SWTABLE_HXX
#define INCLUDED_SW_INC_SWTABLE_HXX
2000-09-18 16:15:01 +00:00
#include <tools/mempool.hxx>
#include <tools/ref.hxx>
2000-09-18 16:15:01 +00:00
#include <tblenum.hxx>
#include <swtypes.hxx>
#include <calbck.hxx>
#include <swrect.hxx>
2010-05-31 11:58:26 +02:00
#include <memory>
#include <boost/noncopyable.hpp>
#include <vector>
#include <algorithm>
#include <o3tl/sorted_vector.hxx>
2000-09-18 16:15:01 +00:00
class SwStartNode;
class SwFmt;
2000-09-18 16:15:01 +00:00
class Color;
class SwFrmFmt;
2000-09-18 16:15:01 +00:00
class SwTableFmt;
class SwTableLineFmt;
class SwTableBoxFmt;
class SwHTMLTableLayout;
class SwTableLine;
class SwTableBox;
class SwTableNode;
class SwTabCols;
class SwDoc;
class SwSelBoxes;
class SwTblCalcPara;
struct SwPosition;
class SwNodeIndex;
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
class SwNode;
2000-09-18 16:15:01 +00:00
class SfxPoolItem;
class SwUndoTblMerge;
class SwUndo;
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
class SwPaM;
2000-09-18 16:15:01 +00:00
class SwTableBox_Impl;
class SwUndoTblCpyTbl;
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
class SwBoxSelection;
struct SwSaveRowSpan;
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
struct Parm;
2000-09-18 16:15:01 +00:00
#ifndef SW_DECL_SWSERVEROBJECT_DEFINED
#define SW_DECL_SWSERVEROBJECT_DEFINED
SV_DECL_REF( SwServerObject )
2000-09-18 16:15:01 +00:00
#endif
class SwTableLines : public std::vector<SwTableLine*> {
public:
// free's any remaining child objects
~SwTableLines();
// return USHRT_MAX if not found, else index of position
sal_uInt16 GetPos(const SwTableLine* pBox) const
{
const_iterator it = std::find(begin(), end(), pBox);
return it == end() ? USHRT_MAX : it - begin();
}
};
class SwTableBoxes : public std::vector<SwTableBox*> {
public:
// return USHRT_MAX if not found, else index of position
sal_uInt16 GetPos(const SwTableBox* pBox) const
{
const_iterator it = std::find(begin(), end(), pBox);
return it == end() ? USHRT_MAX : it - begin();
}
};
2000-09-18 16:15:01 +00:00
2011-04-18 23:11:33 +02:00
// Save content-bearing box-pointers additionally in a sorted array
// (for calculation in table).
class SwTableSortBoxes : public o3tl::sorted_vector<SwTableBox*> {};
2000-09-18 16:15:01 +00:00
/// SwTable is one table in the document model, containing rows (which contain cells).
2011-04-18 23:11:33 +02:00
class SW_DLLPUBLIC SwTable: public SwClient //Client of FrmFmt.
2000-09-18 16:15:01 +00:00
{
2000-09-18 16:15:01 +00:00
protected:
SwTableLines aLines;
SwTableSortBoxes m_TabSortContentBoxes;
2011-04-18 23:11:33 +02:00
SwServerObjectRef refObj; // In case DataServer -> pointer is set.
2000-09-18 16:15:01 +00:00
SwHTMLTableLayout *pHTMLLayout;
// Usually, the table node of a SwTable can be accessed by getting a box
// out of m_TabSortContentBoxes, which know their SwStartNode. But in some rare
// cases, we need to know the table node of a SwTable, before the table
// boxes have been build (SwTableNode::MakeCopy with tables in tables).
SwTableNode* pTableNode;
2011-04-18 23:11:33 +02:00
// Should that be adjustable for every table?
TblChgMode eTblChgMode;
2000-09-18 16:15:01 +00:00
2011-04-18 23:11:33 +02:00
sal_uInt16 nGrfsThatResize; // Count of Grfs that initiate a resize of table
// at HTML-import.
sal_uInt16 nRowsToRepeat; // Number of rows to repeat on every page.
2000-09-18 16:15:01 +00:00
bool bModifyLocked :1;
sal_Bool bNewModel :1; // sal_False: old SubTableModel; sal_True: new RowSpanModel
#ifdef DBG_UTIL
/// This is set by functions (like Merge()) to forbid a late model change.
bool m_bDontChangeModel;
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
#endif
2000-09-18 16:15:01 +00:00
bool IsModifyLocked(){ return bModifyLocked;}
2000-09-18 16:15:01 +00:00
virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew );
2000-09-18 16:15:01 +00:00
public:
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
enum SearchType
{
SEARCH_NONE, // Default: expand to rectangle
SEARCH_ROW, // row selection
SEARCH_COL // column selection
};
TYPEINFO_OVERRIDE();
2000-09-18 16:15:01 +00:00
// single argument ctors shall be explicit.
explicit SwTable( SwTableFmt* );
virtual ~SwTable();
// @@@ public copy ctor, but no copy assignment?
SwTable( const SwTable& rTable ); // no copy of the lines !!
private:
// @@@ public copy ctor, but no copy assignment?
SwTable & operator= (const SwTable &);
// no default ctor.
SwTable();
bool OldMerge( SwDoc*, const SwSelBoxes&, SwTableBox*, SwUndoTblMerge* );
bool OldSplitRow( SwDoc*, const SwSelBoxes&, sal_uInt16, bool );
sal_Bool NewMerge( SwDoc*, const SwSelBoxes&, const SwSelBoxes& rMerged,
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
SwTableBox*, SwUndoTblMerge* );
sal_Bool NewSplitRow( SwDoc*, const SwSelBoxes&, sal_uInt16, sal_Bool );
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
SwBoxSelection* CollectBoxSelection( const SwPaM& rPam ) const;
void InsertSpannedRow( SwDoc* pDoc, sal_uInt16 nIdx, sal_uInt16 nCnt );
bool _InsertRow( SwDoc*, const SwSelBoxes&, sal_uInt16 nCnt, bool bBehind );
bool NewInsertCol( SwDoc*, const SwSelBoxes& rBoxes, sal_uInt16 nCnt, bool );
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
void _FindSuperfluousRows( SwSelBoxes& rBoxes, SwTableLine*, SwTableLine* );
void AdjustWidths( const long nOld, const long nNew );
void NewSetTabCols( Parm &rP, const SwTabCols &rNew, const SwTabCols &rOld,
const SwTableBox *pStart, sal_Bool bCurRowOnly );
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
public:
2000-09-18 16:15:01 +00:00
SwHTMLTableLayout *GetHTMLTableLayout() { return pHTMLLayout; }
const SwHTMLTableLayout *GetHTMLTableLayout() const { return pHTMLLayout; }
2011-04-18 23:11:33 +02:00
void SetHTMLTableLayout( SwHTMLTableLayout *p ); //Change of property!
2000-09-18 16:15:01 +00:00
sal_uInt16 IncGrfsThatResize() { return ++nGrfsThatResize; }
sal_uInt16 DecGrfsThatResize() { return nGrfsThatResize ? --nGrfsThatResize : 0; }
2000-09-18 16:15:01 +00:00
void LockModify() { bModifyLocked = true; } // Must be used always
void UnlockModify() { bModifyLocked = false;} // in pairs!
2000-09-18 16:15:01 +00:00
void SetTableModel( sal_Bool bNew ){ bNewModel = bNew; }
sal_Bool IsNewModel() const { return bNewModel; }
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
sal_uInt16 GetRowsToRepeat() const { return std::min( (sal_uInt16)GetTabLines().size(), nRowsToRepeat ); }
sal_uInt16 _GetRowsToRepeat() const { return nRowsToRepeat; }
void SetRowsToRepeat( sal_uInt16 nNumOfRows ) { nRowsToRepeat = nNumOfRows; }
bool IsHeadline( const SwTableLine& rLine ) const;
2000-09-18 16:15:01 +00:00
SwTableLines &GetTabLines() { return aLines; }
const SwTableLines &GetTabLines() const { return aLines; }
SwFrmFmt* GetFrmFmt() { return (SwFrmFmt*)GetRegisteredIn(); }
SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
SwTableFmt* GetTableFmt() const { return (SwTableFmt*)GetRegisteredIn(); }
2000-09-18 16:15:01 +00:00
void GetTabCols( SwTabCols &rToFill, const SwTableBox *pStart,
sal_Bool bHidden = sal_False, sal_Bool bCurRowOnly = sal_False ) const;
void SetTabCols( const SwTabCols &rNew, const SwTabCols &rOld,
const SwTableBox *pStart, sal_Bool bCurRowOnly );
2000-09-18 16:15:01 +00:00
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
// The following functions are for new table model only...
void CreateSelection( const SwPaM& rPam, SwSelBoxes& rBoxes,
const SearchType eSearchType, bool bProtect ) const;
void CreateSelection( const SwNode* pStart, const SwNode* pEnd,
SwSelBoxes& rBoxes, const SearchType eSearchType, bool bProtect ) const;
void ExpandSelection( SwSelBoxes& rBoxes ) const;
// When a table is splitted into two tables, the row spans which overlaps
// the split have to be corrected and stored for undo
// SwSavRowSpan is the structure needed by Undo to undo the split operation
// CleanUpRowSpan corrects the (top of the) second table and delviers the structure
// for Undo
SwSaveRowSpan* CleanUpTopRowSpan( sal_uInt16 nSplitLine );
// RestoreRowSpan is called by Undo to restore the old row span values
void RestoreRowSpan( const SwSaveRowSpan& );
// CleanUpBottomRowSpan corrects the overhanging row spans at the end of the first table
void CleanUpBottomRowSpan( sal_uInt16 nDelLines );
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
// The following functions are "pseudo-virtual", i.e. they are different for old and new table model
// It's not allowed to change the table model after the first call of one of these functions.
sal_Bool Merge( SwDoc* pDoc, const SwSelBoxes& rBoxes, const SwSelBoxes& rMerged,
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
SwTableBox* pMergeBox, SwUndoTblMerge* pUndo = 0 )
{
#ifdef DBG_UTIL
m_bDontChangeModel = true;
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
#endif
return bNewModel ? NewMerge( pDoc, rBoxes, rMerged, pMergeBox, pUndo ) :
OldMerge( pDoc, rBoxes, pMergeBox, pUndo );
}
bool SplitRow( SwDoc* pDoc, const SwSelBoxes& rBoxes, sal_uInt16 nCnt=1,
bool bSameHeight = false )
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
{
#ifdef DBG_UTIL
m_bDontChangeModel = true;
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
#endif
return bNewModel ? NewSplitRow( pDoc, rBoxes, nCnt, bSameHeight ) :
OldSplitRow( pDoc, rBoxes, nCnt, bSameHeight );
}
bool PrepareMerge( const SwPaM& rPam, SwSelBoxes& rBoxes,
SwSelBoxes& rMerged, SwTableBox** ppMergeBox, SwUndoTblMerge* pUndo );
void ExpandColumnSelection( SwSelBoxes& rBoxes, long &rMin, long &rMax ) const;
void PrepareDeleteCol( long nMin, long nMax );
bool InsertCol( SwDoc*, const SwSelBoxes& rBoxes,
sal_uInt16 nCnt = 1, bool bBehind = true );
bool InsertRow( SwDoc*, const SwSelBoxes& rBoxes,
sal_uInt16 nCnt = 1, bool bBehind = true );
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
void PrepareDelBoxes( const SwSelBoxes& rBoxes );
bool DeleteSel( SwDoc*, const SwSelBoxes& rBoxes, const SwSelBoxes* pMerged,
SwUndo* pUndo, const bool bDelMakeFrms, const bool bCorrBorder );
bool SplitCol( SwDoc* pDoc, const SwSelBoxes& rBoxes, sal_uInt16 nCnt=1 );
sal_Bool Merge( const SwSelBoxes& rBoxes,
SwTableBox* pMergeBox, SwUndoTblMerge* = 0 );
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
void FindSuperfluousRows( SwSelBoxes& rBoxes )
{ _FindSuperfluousRows( rBoxes, 0, 0 ); }
void CheckRowSpan( SwTableLine* &rpLine, bool bUp ) const;
2000-09-18 16:15:01 +00:00
SwTableSortBoxes& GetTabSortBoxes() { return m_TabSortContentBoxes; }
const SwTableSortBoxes& GetTabSortBoxes() const { return m_TabSortContentBoxes; }
2000-09-18 16:15:01 +00:00
2011-04-18 23:11:33 +02:00
// Read 1st number and delete it from string (used by GetTblBox and SwTblFld).
// #i80314#
// add 3rd parameter in order to control validation check on <rStr>
static sal_uInt16 _GetBoxNum( OUString& rStr,
sal_Bool bFirst = sal_False,
const bool bPerformValidCheck = false );
2011-04-18 23:11:33 +02:00
// Search content-bearing box with that name.
// #i80314#
// add 2nd parameter in order to control validation check in called method
// <_GetBoxNum(..)>
const SwTableBox* GetTblBox( const OUString& rName,
const bool bPerformValidCheck = false ) const;
2011-04-18 23:11:33 +02:00
// Copy selected boxes to another document.
bool MakeCopy( SwDoc*, const SwPosition&, const SwSelBoxes&,
bool bCpyNds = true, bool bCpyName = false ) const;
// Copy table in this
sal_Bool InsTable( const SwTable& rCpyTbl, const SwNodeIndex&,
2000-09-18 16:15:01 +00:00
SwUndoTblCpyTbl* pUndo = 0 );
sal_Bool InsTable( const SwTable& rCpyTbl, const SwSelBoxes&,
2000-09-18 16:15:01 +00:00
SwUndoTblCpyTbl* pUndo = 0 );
sal_Bool InsNewTable( const SwTable& rCpyTbl, const SwSelBoxes&,
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
SwUndoTblCpyTbl* pUndo );
2011-04-18 23:11:33 +02:00
// Copy headline of table (with content!) into an other one.
bool CopyHeadlineIntoTable( SwTableNode& rTblNd );
2000-09-18 16:15:01 +00:00
2011-04-18 23:11:33 +02:00
// Get box, whose start index is set on nBoxStt.
SwTableBox* GetTblBox( sal_uLong nSttIdx );
const SwTableBox* GetTblBox( sal_uLong nSttIdx ) const
2000-09-18 16:15:01 +00:00
{ return ((SwTable*)this)->GetTblBox( nSttIdx ); }
// Returns true if table contains nestings.
bool IsTblComplex() const;
2000-09-18 16:15:01 +00:00
// Returns true if table or selection is balanced.
bool IsTblComplexForChart( const OUString& rSel ) const;
2000-09-18 16:15:01 +00:00
2011-04-18 23:11:33 +02:00
// Search all content-bearing boxes of the base line on which this box stands.
// rBoxes as a return value for immediate use.
2000-09-18 16:15:01 +00:00
// steht. rBoxes auch als Return-Wert, um es gleich weiter zu benutzen
// bToTop = true -> up to base line, sal_False-> else only line of box.
2000-09-18 16:15:01 +00:00
SwSelBoxes& SelLineFromBox( const SwTableBox* pBox,
SwSelBoxes& rBoxes, bool bToTop = true ) const;
2011-04-18 23:11:33 +02:00
// Get information from client.
virtual bool GetInfo( SfxPoolItem& ) const;
2000-09-18 16:15:01 +00:00
2011-04-18 23:11:33 +02:00
// Search in format for registered table.
static SwTable * FindTable( SwFrmFmt const*const pFmt );
2000-09-18 16:15:01 +00:00
2011-04-18 23:11:33 +02:00
// Clean up structure a bit.
2000-09-18 16:15:01 +00:00
void GCLines();
// Returns the table node via m_TabSortContentBoxes or pTableNode.
2000-09-18 16:15:01 +00:00
SwTableNode* GetTableNode() const;
void SetTableNode( SwTableNode* pNode ) { pTableNode = pNode; }
2000-09-18 16:15:01 +00:00
2011-04-18 23:11:33 +02:00
// Data server methods.
void SetRefObject( SwServerObject* );
2000-09-18 16:15:01 +00:00
const SwServerObject* GetObject() const { return &refObj; }
SwServerObject* GetObject() { return &refObj; }
2011-04-18 23:11:33 +02:00
// Fill data for chart.
void UpdateCharts() const;
2000-09-18 16:15:01 +00:00
TblChgMode GetTblChgMode() const { return eTblChgMode; }
void SetTblChgMode( TblChgMode eMode ) { eTblChgMode = eMode; }
bool SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType,
2000-09-18 16:15:01 +00:00
SwTwips nAbsDiff, SwTwips nRelDiff, SwUndo** ppUndo );
bool SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType,
2000-09-18 16:15:01 +00:00
SwTwips nAbsDiff, SwTwips nRelDiff, SwUndo** ppUndo );
void RegisterToFormat( SwFmt& rFmt );
#ifdef DBG_UTIL
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
void CheckConsistency() const;
#endif
bool HasLayout() const;
2000-09-18 16:15:01 +00:00
};
/// SwTableLine is one table row in the document model.
2011-04-18 23:11:33 +02:00
class SW_DLLPUBLIC SwTableLine: public SwClient // Client of FrmFmt.
2000-09-18 16:15:01 +00:00
{
SwTableBoxes aBoxes;
SwTableBox *pUpper;
public:
TYPEINFO_OVERRIDE();
2000-09-18 16:15:01 +00:00
SwTableLine() : pUpper(0) {}
SwTableLine( SwTableLineFmt*, sal_uInt16 nBoxes, SwTableBox *pUp );
virtual ~SwTableLine();
2000-09-18 16:15:01 +00:00
SwTableBoxes &GetTabBoxes() { return aBoxes; }
const SwTableBoxes &GetTabBoxes() const { return aBoxes; }
SwTableBox *GetUpper() { return pUpper; }
const SwTableBox *GetUpper() const { return pUpper; }
void SetUpper( SwTableBox *pNew ) { pUpper = pNew; }
SwFrmFmt* GetFrmFmt() { return (SwFrmFmt*)GetRegisteredIn(); }
SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
2000-09-18 16:15:01 +00:00
2011-04-18 23:11:33 +02:00
// Creates a own FrmFmt if more lines depend on it.
2000-09-18 16:15:01 +00:00
SwFrmFmt* ClaimFrmFmt();
void ChgFrmFmt( SwTableLineFmt* pNewFmt );
2011-04-18 23:11:33 +02:00
// Search next/previous box with content.
2000-09-18 16:15:01 +00:00
SwTableBox* FindNextBox( const SwTable&, const SwTableBox* =0,
bool bOvrTblLns=true ) const;
2000-09-18 16:15:01 +00:00
SwTableBox* FindPreviousBox( const SwTable&, const SwTableBox* =0,
bool bOvrTblLns=true ) const;
2000-09-18 16:15:01 +00:00
SwTwips GetTableLineHeight( bool& bLayoutAvailable ) const;
bool hasSoftPageBreak() const;
void RegisterToFormat( SwFmt& rFmt );
2000-09-18 16:15:01 +00:00
};
/// SwTableBox is one table cell in the document model.
2011-04-18 23:11:33 +02:00
class SW_DLLPUBLIC SwTableBox: public SwClient //Client of FrmFmt.
2000-09-18 16:15:01 +00:00
{
2011-04-18 23:11:33 +02:00
friend class SwNodes; // Transpose index.
friend void DelBoxNode(SwTableSortBoxes&); // Delete StartNode* !
2000-09-18 16:15:01 +00:00
friend class SwXMLTableContext;
2011-04-18 23:11:33 +02:00
// Not implemented (any more).
2000-09-18 16:15:01 +00:00
SwTableBox( const SwTableBox & );
2011-04-18 23:11:33 +02:00
SwTableBox &operator=( const SwTableBox &); // Does not exist.
2000-09-18 16:15:01 +00:00
SwTableLines aLines;
const SwStartNode * pSttNd;
SwTableLine *pUpper;
SwTableBox_Impl* pImpl;
2011-04-18 23:11:33 +02:00
// In case Format contains formulas/values already,
// a new one must be created for the new box.
2000-09-18 16:15:01 +00:00
SwTableBoxFmt* CheckBoxFmt( SwTableBoxFmt* );
public:
TYPEINFO_OVERRIDE();
2000-09-18 16:15:01 +00:00
SwTableBox() : pSttNd(0), pUpper(0), pImpl(0) {}
SwTableBox( SwTableBoxFmt*, sal_uInt16 nLines, SwTableLine *pUp = 0 );
2000-09-18 16:15:01 +00:00
SwTableBox( SwTableBoxFmt*, const SwStartNode&, SwTableLine *pUp = 0 );
SwTableBox( SwTableBoxFmt*, const SwNodeIndex&, SwTableLine *pUp = 0 );
virtual ~SwTableBox();
2000-09-18 16:15:01 +00:00
SwTableLines &GetTabLines() { return aLines; }
const SwTableLines &GetTabLines() const { return aLines; }
SwTableLine *GetUpper() { return pUpper; }
const SwTableLine *GetUpper() const { return pUpper; }
void SetUpper( SwTableLine *pNew ) { pUpper = pNew; }
SwFrmFmt* GetFrmFmt() { return (SwFrmFmt*)GetRegisteredIn(); }
SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); }
2000-09-18 16:15:01 +00:00
2011-04-18 23:11:33 +02:00
// Creates its own FrmFmt if more boxes depend on it.
2000-09-18 16:15:01 +00:00
SwFrmFmt* ClaimFrmFmt();
void ChgFrmFmt( SwTableBoxFmt *pNewFmt );
void RemoveFromTable();
2000-09-18 16:15:01 +00:00
const SwStartNode *GetSttNd() const { return pSttNd; }
2011-11-24 11:22:42 +01:00
sal_uLong GetSttIdx() const;
2000-09-18 16:15:01 +00:00
2011-04-18 23:11:33 +02:00
// Search next/previous box with content.
2000-09-18 16:15:01 +00:00
SwTableBox* FindNextBox( const SwTable&, const SwTableBox* =0,
bool bOvrTblLns=true ) const;
2000-09-18 16:15:01 +00:00
SwTableBox* FindPreviousBox( const SwTable&, const SwTableBox* =0,
bool bOvrTblLns=true ) const;
2011-04-18 23:11:33 +02:00
// Return name of this box. It is determined dynamically and
// is calculated from the position in the lines/boxes/table.
OUString GetName() const;
2011-04-18 23:11:33 +02:00
// Return "value" of box (for calculating in table).
2000-09-18 16:15:01 +00:00
double GetValue( SwTblCalcPara& rPara ) const;
sal_Bool IsInHeadline( const SwTable* pTbl = 0 ) const;
2000-09-18 16:15:01 +00:00
2011-04-18 23:11:33 +02:00
// Contains box contents, that can be formated as a number?
sal_Bool HasNumCntnt( double& rNum, sal_uInt32& rFmtIndex,
sal_Bool& rIsEmptyTxtNd ) const;
sal_uLong IsValidNumTxtNd( sal_Bool bCheckAttr = sal_True ) const;
2011-04-18 23:11:33 +02:00
// If a table formula is set, test if box contents is congruent with number.
// (For Redo of change of NumFormat!).
sal_Bool IsNumberChanged() const;
2000-09-18 16:15:01 +00:00
2011-04-18 23:11:33 +02:00
// Is that a formula box or a box with numeric contents (AutoSum)?
// What it is is indicated by the return value - the WhichId of the attribute.
// Empty boxes have the return value USHRT_MAX !!
sal_uInt16 IsFormulaOrValueBox() const;
2000-09-18 16:15:01 +00:00
// Loading of a document requires an actualisation of cells with values
void ActualiseValueBox();
2000-09-18 16:15:01 +00:00
DECL_FIXEDMEMPOOL_NEWDEL(SwTableBox)
2011-04-18 23:11:33 +02:00
// Access on internal data - currently used for the NumFormatter.
2000-09-18 16:15:01 +00:00
inline const Color* GetSaveUserColor() const;
inline const Color* GetSaveNumFmtColor() const;
inline void SetSaveUserColor(const Color* p );
inline void SetSaveNumFmtColor( const Color* p );
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
long getRowSpan() const;
void setRowSpan( long nNewRowSpan );
bool getDummyFlag() const;
void setDummyFlag( bool bDummy );
SwTableBox& FindStartOfRowSpan( const SwTable&, sal_uInt16 nMaxStep = USHRT_MAX );
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
const SwTableBox& FindStartOfRowSpan( const SwTable& rTable,
sal_uInt16 nMaxStep = USHRT_MAX ) const
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
{ return const_cast<SwTableBox*>(this)->FindStartOfRowSpan( rTable, nMaxStep ); }
SwTableBox& FindEndOfRowSpan( const SwTable&, sal_uInt16 nMaxStep = USHRT_MAX );
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
const SwTableBox& FindEndOfRowSpan( const SwTable& rTable,
sal_uInt16 nMaxStep = USHRT_MAX ) const
INTEGRATION: CWS swnewtable (1.14.52); FILE MERGED 2007/02/08 17:12:27 ama 1.14.52.25: #i4032#: New table model 2007/02/06 12:42:23 ama 1.14.52.24: #i4032#: New table model 2006/12/01 16:15:07 ama 1.14.52.23: #i4032#: New table model 2006/12/01 13:07:16 ama 1.14.52.22: i4032#: New table model 2006/12/01 09:03:05 ama 1.14.52.21: i4032#: New table model 2006/11/28 15:43:57 ama 1.14.52.20: #i4032#: New table model 2006/11/28 11:48:33 ama 1.14.52.19: #i4032#: New table model 2006/11/17 13:48:26 ama 1.14.52.18: #i4032#: New table model 2006/11/16 16:43:43 ama 1.14.52.17: #i4032#: New table model 2006/11/14 14:12:41 ama 1.14.52.16: #i4032#: New table model 2006/11/13 15:13:29 ama 1.14.52.15: #i4032#: New table model 2006/10/25 15:28:42 ama 1.14.52.14: #i4032#: New Table Model 2006/10/25 14:23:47 ama 1.14.52.13: #i4032#: New Table Model 2006/10/24 12:20:23 ama 1.14.52.12: #i4032#: New Table Model 2006/10/23 14:44:31 ama 1.14.52.11: #i4032#: New table model 2006/10/13 11:45:15 ama 1.14.52.10: #i4032#: New Tbale Model 2006/10/12 06:54:07 ama 1.14.52.9: #i4032#: New table model, rounding errors 2006/10/10 09:30:30 ama 1.14.52.8: #i4032#: New table model 2006/10/10 08:57:04 ama 1.14.52.7: #i4032#: New table model 2006/10/09 15:25:06 ama 1.14.52.6: #i4032#: New table model 2006/10/02 14:39:51 ama 1.14.52.5: #i4032#: New table model 2006/09/28 13:35:31 ama 1.14.52.4: #i4032#: New table model 2006/09/27 14:36:49 ama 1.14.52.3: #i4032#: New table concept 2006/09/27 13:52:03 ama 1.14.52.2: #i4032#: New table concept 2006/09/27 13:31:17 ama 1.14.52.1: #i4032#: New table concept
2007-02-28 14:37:11 +00:00
{ return const_cast<SwTableBox*>(this)->FindEndOfRowSpan( rTable, nMaxStep ); }
void RegisterToFormat( SwFmt& rFmt ) ;
2000-09-18 16:15:01 +00:00
};
class SwCellFrm;
class SW_DLLPUBLIC SwTableCellInfo : public ::boost::noncopyable
{
struct Impl;
::std::auto_ptr<Impl> m_pImpl;
const SwCellFrm * getCellFrm() const ;
public:
SwTableCellInfo(const SwTable * pTable);
~SwTableCellInfo();
bool getNext();
SwRect getRect() const;
const SwTableBox * getTableBox() const;
};
#endif // INCLUDED_SW_INC_SWTABLE_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */