summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
Diffstat (limited to 'sw')
-rw-r--r--sw/inc/doc.hxx2
-rw-r--r--sw/inc/fesh.hxx2
-rw-r--r--sw/inc/swtable.hxx4
-rw-r--r--sw/inc/tblenum.hxx41
-rw-r--r--sw/source/core/doc/tblrwcl.cxx58
-rw-r--r--sw/source/core/docnode/ndtbl.cxx25
-rw-r--r--sw/source/core/frmedt/fetab.cxx42
-rw-r--r--sw/source/core/inc/UndoTable.hxx5
-rw-r--r--sw/source/core/undo/untbl.cxx29
-rw-r--r--sw/source/uibase/docvw/edtwin.cxx54
10 files changed, 136 insertions, 126 deletions
diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
index 6fc96f312452..a285846cd63a 100644
--- a/sw/inc/doc.hxx
+++ b/sw/inc/doc.hxx
@@ -1251,7 +1251,7 @@ public:
void AppendUndoForInsertFromDB( const SwPaM& rPam, bool bIsTable );
- bool SetColRowWidthHeight( SwTableBox& rAktBox, sal_uInt16 eType,
+ bool SetColRowWidthHeight( SwTableBox& rAktBox, TableChgWidthHeightType eType,
SwTwips nAbsDiff, SwTwips nRelDiff );
SwTableBoxFormat* MakeTableBoxFormat();
SwTableLineFormat* MakeTableLineFormat();
diff --git a/sw/inc/fesh.hxx b/sw/inc/fesh.hxx
index 7b3b50a7a30d..9b8a6d4304e3 100644
--- a/sw/inc/fesh.hxx
+++ b/sw/inc/fesh.hxx
@@ -729,7 +729,7 @@ public:
bool GetTableAutoFormat( SwTableAutoFormat& rGet );
- bool SetColRowWidthHeight( sal_uInt16 eType, sal_uInt16 nDiff );
+ bool SetColRowWidthHeight( TableChgWidthHeightType eType, sal_uInt16 nDiff );
bool GetAutoSum( OUString& rFormula ) const;
diff --git a/sw/inc/swtable.hxx b/sw/inc/swtable.hxx
index c1e9a50fe82e..e2508ec117ac 100644
--- a/sw/inc/swtable.hxx
+++ b/sw/inc/swtable.hxx
@@ -344,9 +344,9 @@ public:
TableChgMode GetTableChgMode() const { return m_eTableChgMode; }
void SetTableChgMode( TableChgMode eMode ) { m_eTableChgMode = eMode; }
- bool SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType,
+ bool SetColWidth( SwTableBox& rAktBox, TableChgWidthHeightType eType,
SwTwips nAbsDiff, SwTwips nRelDiff, SwUndo** ppUndo );
- bool SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType,
+ bool SetRowHeight( SwTableBox& rAktBox, TableChgWidthHeightType eType,
SwTwips nAbsDiff, SwTwips nRelDiff, SwUndo** ppUndo );
void RegisterToFormat( SwFormat& rFormat );
#ifdef DBG_UTIL
diff --git a/sw/inc/tblenum.hxx b/sw/inc/tblenum.hxx
index 5e61189c69b2..b5590a6ebc01 100644
--- a/sw/inc/tblenum.hxx
+++ b/sw/inc/tblenum.hxx
@@ -19,26 +19,33 @@
#ifndef INCLUDED_SW_INC_TBLENUM_HXX
#define INCLUDED_SW_INC_TBLENUM_HXX
-// For changing table columns/rows widths/heights.
-typedef sal_uInt16 TableChgWidthHeightType;
+#include <o3tl/typed_flags_set.hxx>
-namespace nsTableChgWidthHeightType
+// For changing table columns/rows widths/heights.
+enum class TableChgWidthHeightType : sal_uInt16
{
- const TableChgWidthHeightType WH_COL_LEFT = 0;
- const TableChgWidthHeightType WH_COL_RIGHT = 1;
- const TableChgWidthHeightType WH_ROW_TOP = 2;
- const TableChgWidthHeightType WH_ROW_BOTTOM = 3;
- const TableChgWidthHeightType WH_CELL_LEFT = 4;
- const TableChgWidthHeightType WH_CELL_RIGHT = 5;
- const TableChgWidthHeightType WH_CELL_TOP = 6;
- const TableChgWidthHeightType WH_CELL_BOTTOM = 7;
+ ColLeft = 0,
+ ColRight = 1,
+ RowTop = 2,
+ RowBottom = 3,
+ CellLeft = 4,
+ CellRight = 5,
+ CellTop = 6,
+ CellBottom = 7,
+ InvalidPos = 0x0f,
- // The following can "or"ed into.
- const TableChgWidthHeightType WH_FLAG_INSDEL = 0x4000; // Insert/Del-mode: the Bigger-Flag
- // tells what happens:
- // bBigger -> box gets removed.
- // !bBigger-> box gets inserted.
- const TableChgWidthHeightType WH_FLAG_BIGGER = 0x8000; // Box becomes larger -> else smaller.
+ // The following can be "or"ed in.
+ InsertDeleteMode = 0x4000, // Insert/Del-mode: the Bigger-Flag
+ // tells what happens:
+ // bBigger -> box gets removed.
+ // !bBigger-> box gets inserted.
+ BiggerMode = 0x8000, // Box becomes larger -> else smaller.
+};
+namespace o3tl {
+ template<> struct typed_flags<TableChgWidthHeightType> : is_typed_flags<TableChgWidthHeightType, 0xc00f> {};
+}
+constexpr TableChgWidthHeightType extractPosition(TableChgWidthHeightType e) {
+ return static_cast<TableChgWidthHeightType>(static_cast<int>(e) & 0xf);
}
enum TableChgMode
diff --git a/sw/source/core/doc/tblrwcl.cxx b/sw/source/core/doc/tblrwcl.cxx
index c0265f338602..8e01cc591e6c 100644
--- a/sw/source/core/doc/tblrwcl.cxx
+++ b/sw/source/core/doc/tblrwcl.cxx
@@ -107,16 +107,16 @@ struct CR_SetBoxWidth
sal_uInt16 nTableWidth, nRemainWidth, nBoxWidth;
bool bBigger, bLeft, bSplittBox, bAnyBoxFnd;
- CR_SetBoxWidth( sal_uInt16 eType, SwTwips nDif, SwTwips nSid, SwTwips nTableW,
+ CR_SetBoxWidth( TableChgWidthHeightType eType, SwTwips nDif, SwTwips nSid, SwTwips nTableW,
SwTwips nMax, SwTableNode* pTNd )
: pTableNd( pTNd ), pUndo( nullptr ),
nDiff( nDif ), nSide( nSid ), nMaxSize( nMax ), nLowerDiff( 0 ),
nTableWidth( (sal_uInt16)nTableW ), nRemainWidth( 0 ), nBoxWidth( 0 ),
bSplittBox( false ), bAnyBoxFnd( false )
{
- bLeft = nsTableChgWidthHeightType::WH_COL_LEFT == ( eType & 0xff ) ||
- nsTableChgWidthHeightType::WH_CELL_LEFT == ( eType & 0xff );
- bBigger = 0 != (eType & nsTableChgWidthHeightType::WH_FLAG_BIGGER );
+ bLeft = TableChgWidthHeightType::ColLeft == extractPosition( eType ) ||
+ TableChgWidthHeightType::CellLeft == extractPosition( eType );
+ bBigger = bool(eType & TableChgWidthHeightType::BiggerMode );
nMode = pTableNd->GetTable().GetTableChgMode();
}
CR_SetBoxWidth( const CR_SetBoxWidth& rCpy )
@@ -201,13 +201,14 @@ struct CR_SetLineHeight
sal_uInt16 nLines;
bool bBigger, bTop;
- CR_SetLineHeight( sal_uInt16 eType, SwTableNode* pTNd )
+ CR_SetLineHeight( TableChgWidthHeightType eType, SwTableNode* pTNd )
: pTableNd( pTNd ), pUndo( nullptr ),
nMaxSpace( 0 ), nMaxHeight( 0 ), nLines( 0 )
{
- bTop = nsTableChgWidthHeightType::WH_ROW_TOP == ( eType & 0xff ) || nsTableChgWidthHeightType::WH_CELL_TOP == ( eType & 0xff );
- bBigger = 0 != (eType & nsTableChgWidthHeightType::WH_FLAG_BIGGER );
- if( eType & nsTableChgWidthHeightType::WH_FLAG_INSDEL )
+ bTop = TableChgWidthHeightType::RowTop == extractPosition( eType ) ||
+ TableChgWidthHeightType::CellTop == extractPosition( eType );
+ bBigger = bool(eType & TableChgWidthHeightType::BiggerMode );
+ if( eType & TableChgWidthHeightType::InsertDeleteMode )
bBigger = !bBigger;
nMode = pTableNd->GetTable().GetTableChgMode();
}
@@ -3381,7 +3382,7 @@ static FndBox_* lcl_SaveInsDelData( CR_SetBoxWidth& rParam, SwUndo** ppUndo,
return pFndBox;
}
-bool SwTable::SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType,
+bool SwTable::SetColWidth( SwTableBox& rAktBox, TableChgWidthHeightType eType,
SwTwips nAbsDiff, SwTwips nRelDiff, SwUndo** ppUndo )
{
SetHTMLTableLayout( nullptr ); // Delete HTML Layout
@@ -3393,9 +3394,9 @@ bool SwTable::SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType,
SwTableSortBoxes aTmpLst; // for Undo
bool bBigger,
bRet = false,
- bLeft = nsTableChgWidthHeightType::WH_COL_LEFT == ( eType & 0xff ) ||
- nsTableChgWidthHeightType::WH_CELL_LEFT == ( eType & 0xff ),
- bInsDel = 0 != (eType & nsTableChgWidthHeightType::WH_FLAG_INSDEL );
+ bLeft = TableChgWidthHeightType::ColLeft == extractPosition( eType ) ||
+ TableChgWidthHeightType::CellLeft == extractPosition( eType ),
+ bInsDel = bool(eType & TableChgWidthHeightType::InsertDeleteMode );
sal_uLong nBoxIdx = rAktBox.GetSttIdx();
// Get the current Box's edge
@@ -3430,10 +3431,10 @@ bool SwTable::SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType,
fnOtherBox = lcl_SetOtherBoxWidth;
}
- switch( eType & 0xff )
+ switch( extractPosition(eType) )
{
- case nsTableChgWidthHeightType::WH_COL_RIGHT:
- case nsTableChgWidthHeightType::WH_COL_LEFT:
+ case TableChgWidthHeightType::ColRight:
+ case TableChgWidthHeightType::ColLeft:
if( TBLVAR_CHGABS == m_eTableChgMode )
{
if( bInsDel )
@@ -3520,7 +3521,7 @@ bool SwTable::SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType,
if( aSz.GetWidth() + nRelDiff > USHRT_MAX )
{
// Break down to USHRT_MAX / 2
- CR_SetBoxWidth aTmpPara( 0, aSz.GetWidth() / 2,
+ CR_SetBoxWidth aTmpPara( TableChgWidthHeightType::ColLeft, aSz.GetWidth() / 2,
0, aSz.GetWidth(), aSz.GetWidth(), aParam.pTableNd );
for( size_t nLn = 0; nLn < m_aLines.size(); ++nLn )
::lcl_AjustLines( m_aLines[ nLn ], aTmpPara );
@@ -3732,8 +3733,8 @@ bool SwTable::SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType,
}
break;
- case nsTableChgWidthHeightType::WH_CELL_RIGHT:
- case nsTableChgWidthHeightType::WH_CELL_LEFT:
+ case TableChgWidthHeightType::CellRight:
+ case TableChgWidthHeightType::CellLeft:
if( TBLVAR_CHGABS == m_eTableChgMode )
{
// Then call itself recursively; only with another mode (proportional)
@@ -3833,7 +3834,7 @@ bool SwTable::SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType,
}
}
break;
-
+ default: break;
}
if( xFndBox )
@@ -4113,7 +4114,7 @@ static bool lcl_InsDelSelLine( SwTableLine* pLine, CR_SetLineHeight& rParam,
return bRet;
}
-bool SwTable::SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType,
+bool SwTable::SetRowHeight( SwTableBox& rAktBox, TableChgWidthHeightType eType,
SwTwips nAbsDiff, SwTwips nRelDiff,SwUndo** ppUndo )
{
SwTableLine* pLine = rAktBox.GetUpper();
@@ -4126,9 +4127,9 @@ bool SwTable::SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType,
SwTableSortBoxes aTmpLst; // for Undo
bool bBigger,
bRet = false,
- bTop = nsTableChgWidthHeightType::WH_ROW_TOP == ( eType & 0xff ) ||
- nsTableChgWidthHeightType::WH_CELL_TOP == ( eType & 0xff ),
- bInsDel = 0 != (eType & nsTableChgWidthHeightType::WH_FLAG_INSDEL );
+ bTop = TableChgWidthHeightType::RowTop == extractPosition( eType ) ||
+ TableChgWidthHeightType::CellTop == extractPosition( eType ),
+ bInsDel = bool(eType & TableChgWidthHeightType::InsertDeleteMode );
sal_uInt16 nBaseLinePos = GetTabLines().GetPos( pBaseLine );
sal_uLong nBoxIdx = rAktBox.GetSttIdx();
@@ -4145,10 +4146,10 @@ bool SwTable::SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType,
SwTableLines* pLines = &m_aLines;
// How do we get to the height?
- switch( eType & 0xff )
+ switch( extractPosition(eType) )
{
- case nsTableChgWidthHeightType::WH_CELL_TOP:
- case nsTableChgWidthHeightType::WH_CELL_BOTTOM:
+ case TableChgWidthHeightType::CellTop:
+ case TableChgWidthHeightType::CellBottom:
if( pLine == pBaseLine )
break; // it doesn't work then!
@@ -4158,8 +4159,8 @@ bool SwTable::SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType,
pBaseLine = pLine;
SAL_FALLTHROUGH;
- case nsTableChgWidthHeightType::WH_ROW_TOP:
- case nsTableChgWidthHeightType::WH_ROW_BOTTOM:
+ case TableChgWidthHeightType::RowTop:
+ case TableChgWidthHeightType::RowBottom:
{
if( bInsDel && !bBigger ) // By how much does it get higher?
{
@@ -4328,6 +4329,7 @@ bool SwTable::SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType,
}
}
break;
+ default: break;
}
if( xFndBox )
diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx
index 99b8a6acf53b..e3e14cefa74d 100644
--- a/sw/source/core/docnode/ndtbl.cxx
+++ b/sw/source/core/docnode/ndtbl.cxx
@@ -3980,13 +3980,13 @@ SwTableFormat* SwDoc::FindTableFormatByName( const OUString& rName, bool bAll )
return const_cast<SwTableFormat*>(static_cast<const SwTableFormat*>(pRet));
}
-bool SwDoc::SetColRowWidthHeight( SwTableBox& rAktBox, sal_uInt16 eType,
+bool SwDoc::SetColRowWidthHeight( SwTableBox& rAktBox, TableChgWidthHeightType eType,
SwTwips nAbsDiff, SwTwips nRelDiff )
{
SwTableNode* pTableNd = const_cast<SwTableNode*>(rAktBox.GetSttNd()->FindTableNode());
SwUndo* pUndo = nullptr;
- if( nsTableChgWidthHeightType::WH_FLAG_INSDEL & eType && dynamic_cast<const SwDDETable*>( &pTableNd->GetTable()) != nullptr)
+ if( (TableChgWidthHeightType::InsertDeleteMode & eType) && dynamic_cast<const SwDDETable*>( &pTableNd->GetTable()) != nullptr)
return false;
SwTableFormulaUpdate aMsgHint( &pTableNd->GetTable() );
@@ -3995,26 +3995,27 @@ bool SwDoc::SetColRowWidthHeight( SwTableBox& rAktBox, sal_uInt16 eType,
bool const bUndo(GetIDocumentUndoRedo().DoesUndo());
bool bRet = false;
- switch( eType & 0xff )
+ switch( extractPosition(eType) )
{
- case nsTableChgWidthHeightType::WH_COL_LEFT:
- case nsTableChgWidthHeightType::WH_COL_RIGHT:
- case nsTableChgWidthHeightType::WH_CELL_LEFT:
- case nsTableChgWidthHeightType::WH_CELL_RIGHT:
+ case TableChgWidthHeightType::ColLeft:
+ case TableChgWidthHeightType::ColRight:
+ case TableChgWidthHeightType::CellLeft:
+ case TableChgWidthHeightType::CellRight:
{
bRet = pTableNd->GetTable().SetColWidth( rAktBox,
eType, nAbsDiff, nRelDiff,
(bUndo) ? &pUndo : nullptr );
}
break;
- case nsTableChgWidthHeightType::WH_ROW_TOP:
- case nsTableChgWidthHeightType::WH_ROW_BOTTOM:
- case nsTableChgWidthHeightType::WH_CELL_TOP:
- case nsTableChgWidthHeightType::WH_CELL_BOTTOM:
+ case TableChgWidthHeightType::RowTop:
+ case TableChgWidthHeightType::RowBottom:
+ case TableChgWidthHeightType::CellTop:
+ case TableChgWidthHeightType::CellBottom:
bRet = pTableNd->GetTable().SetRowHeight( rAktBox,
eType, nAbsDiff, nRelDiff,
(bUndo) ? &pUndo : nullptr );
break;
+ default: break;
}
GetIDocumentUndoRedo().DoUndo(bUndo); // SetColWidth can turn it off
@@ -4026,7 +4027,7 @@ bool SwDoc::SetColRowWidthHeight( SwTableBox& rAktBox, sal_uInt16 eType,
if( bRet )
{
getIDocumentState().SetModified();
- if( nsTableChgWidthHeightType::WH_FLAG_INSDEL & eType )
+ if( TableChgWidthHeightType::InsertDeleteMode & eType )
getIDocumentFieldsAccess().SetFieldsDirty( true, nullptr, 0 );
}
return bRet;
diff --git a/sw/source/core/frmedt/fetab.cxx b/sw/source/core/frmedt/fetab.cxx
index 5ac0941053e5..ca1318aed10f 100644
--- a/sw/source/core/frmedt/fetab.cxx
+++ b/sw/source/core/frmedt/fetab.cxx
@@ -2151,13 +2151,13 @@ static bool lcl_GoTableRow( SwCursorShell* pShell, bool bUp )
}
// change a cell width/cell height/column width/row height
-bool SwFEShell::SetColRowWidthHeight( sal_uInt16 eType, sal_uInt16 nDiff )
+bool SwFEShell::SetColRowWidthHeight( TableChgWidthHeightType eType, sal_uInt16 nDiff )
{
SwFrame *pFrame = GetCurrFrame();
if( !pFrame || !pFrame->IsInTab() )
return false;
- if( nsTableChgWidthHeightType::WH_FLAG_INSDEL & eType &&
+ if( (TableChgWidthHeightType::InsertDeleteMode & eType) &&
dynamic_cast< const SwDDETable* >(pFrame->ImplFindTabFrame()->GetTable()) != nullptr )
{
ErrorHandler::HandleError( ERR_TBLDDECHG_ERROR,
@@ -2180,7 +2180,7 @@ bool SwFEShell::SetColRowWidthHeight( sal_uInt16 eType, sal_uInt16 nDiff )
SwRectFnSet aRectFnSet(pTab);
long nPrtWidth = aRectFnSet.GetWidth(pTab->Prt());
if( TBLVAR_CHGABS == pTab->GetTable()->GetTableChgMode() &&
- ( eType & nsTableChgWidthHeightType::WH_COL_LEFT || eType & nsTableChgWidthHeightType::WH_COL_RIGHT ) &&
+ ( eType & TableChgWidthHeightType::ColLeft || eType & TableChgWidthHeightType::ColRight ) &&
text::HoriOrientation::NONE == pTab->GetFormat()->GetHoriOrient().GetHoriOrient() &&
nPrtWidth != rTableFrameSz.GetWidth() )
{
@@ -2189,27 +2189,24 @@ bool SwFEShell::SetColRowWidthHeight( sal_uInt16 eType, sal_uInt16 nDiff )
pTab->GetFormat()->SetFormatAttr( aSz );
}
- if( (eType & (nsTableChgWidthHeightType::WH_FLAG_BIGGER | nsTableChgWidthHeightType::WH_FLAG_INSDEL)) ==
- (nsTableChgWidthHeightType::WH_FLAG_BIGGER | nsTableChgWidthHeightType::WH_FLAG_INSDEL) )
+ if( eType & (TableChgWidthHeightType::BiggerMode | TableChgWidthHeightType::InsertDeleteMode) )
{
nDiff = sal_uInt16(aRectFnSet.GetWidth(pFrame->Frame()));
// we must move the cursor outside the current cell before
// deleting the cells.
- TableChgWidthHeightType eTmp =
- static_cast<TableChgWidthHeightType>( eType & 0xfff );
- switch( eTmp )
+ switch( extractPosition(eType) )
{
- case nsTableChgWidthHeightType::WH_ROW_TOP:
+ case TableChgWidthHeightType::RowTop:
lcl_GoTableRow( this, true );
break;
- case nsTableChgWidthHeightType::WH_ROW_BOTTOM:
+ case TableChgWidthHeightType::RowBottom:
lcl_GoTableRow( this, false );
break;
- case nsTableChgWidthHeightType::WH_COL_LEFT:
+ case TableChgWidthHeightType::ColLeft:
GoPrevCell();
break;
- case nsTableChgWidthHeightType::WH_COL_RIGHT:
+ case TableChgWidthHeightType::ColRight:
GoNextCell();
break;
default:
@@ -2230,29 +2227,30 @@ bool SwFEShell::SetColRowWidthHeight( sal_uInt16 eType, sal_uInt16 nDiff )
pLastCols = nullptr;
EndAllActionAndCall();
- if( bRet && (eType & (nsTableChgWidthHeightType::WH_FLAG_BIGGER | nsTableChgWidthHeightType::WH_FLAG_INSDEL)) == nsTableChgWidthHeightType::WH_FLAG_INSDEL )
+ if( bRet && (eType & (TableChgWidthHeightType::BiggerMode | TableChgWidthHeightType::InsertDeleteMode)) == TableChgWidthHeightType::InsertDeleteMode )
{
- switch(eType & ~(nsTableChgWidthHeightType::WH_FLAG_BIGGER | nsTableChgWidthHeightType::WH_FLAG_INSDEL))
+ switch(extractPosition(eType))
{
- case nsTableChgWidthHeightType::WH_CELL_LEFT:
- case nsTableChgWidthHeightType::WH_COL_LEFT:
+ case TableChgWidthHeightType::CellLeft:
+ case TableChgWidthHeightType::ColLeft:
GoPrevCell();
break;
- case nsTableChgWidthHeightType::WH_CELL_RIGHT:
- case nsTableChgWidthHeightType::WH_COL_RIGHT:
+ case TableChgWidthHeightType::CellRight:
+ case TableChgWidthHeightType::ColRight:
GoNextCell();
break;
- case nsTableChgWidthHeightType::WH_CELL_TOP:
- case nsTableChgWidthHeightType::WH_ROW_TOP:
+ case TableChgWidthHeightType::CellTop:
+ case TableChgWidthHeightType::RowTop:
lcl_GoTableRow( this, true );
break;
- case nsTableChgWidthHeightType::WH_CELL_BOTTOM:
- case nsTableChgWidthHeightType::WH_ROW_BOTTOM:
+ case TableChgWidthHeightType::CellBottom:
+ case TableChgWidthHeightType::RowBottom:
lcl_GoTableRow( this, false );
break;
+ default: break;
}
}
diff --git a/sw/source/core/inc/UndoTable.hxx b/sw/source/core/inc/UndoTable.hxx
index e82812e14f8b..83dab4172198 100644
--- a/sw/source/core/inc/UndoTable.hxx
+++ b/sw/source/core/inc/UndoTable.hxx
@@ -178,7 +178,8 @@ class SwUndoTableNdsChg : public SwUndo
std::unique_ptr<SwUndoSaveSections> m_pDelSects;
long nMin, nMax; // for redo of delete column
sal_uLong nSttNode, nCurrBox;
- sal_uInt16 nCount, nRelDiff, nAbsDiff, nSetColType;
+ sal_uInt16 nCount, nRelDiff, nAbsDiff;
+ TableChgWidthHeightType nSetColType;
bool bFlag;
bool bSameHeight; // only used for SplitRow
@@ -207,7 +208,7 @@ public:
void SaveSection( SwStartNode* pSttNd );
void ReNewBoxes( const SwSelBoxes& rBoxes );
- void SetColWidthParam( sal_uLong nBoxIdx, sal_uInt16 nMode, sal_uInt16 nType,
+ void SetColWidthParam( sal_uLong nBoxIdx, sal_uInt16 nMode, TableChgWidthHeightType nType,
SwTwips nAbsDif, SwTwips nRelDif )
{
nCurrBox = nBoxIdx;
diff --git a/sw/source/core/undo/untbl.cxx b/sw/source/core/undo/untbl.cxx
index 03de7f8b5de7..b3f1a7a87a3c 100644
--- a/sw/source/core/undo/untbl.cxx
+++ b/sw/source/core/undo/untbl.cxx
@@ -1482,7 +1482,7 @@ SwUndoTableNdsChg::SwUndoTableNdsChg( SwUndoId nAction,
nMin( nMn ), nMax( nMx ),
nSttNode( rTableNd.GetIndex() ), nCurrBox( 0 ),
nCount( nCnt ), nRelDiff( 0 ), nAbsDiff( 0 ),
- nSetColType( USHRT_MAX ),
+ nSetColType( TableChgWidthHeightType::InvalidPos ),
bFlag( bFlg ),
bSameHeight( bSmHght )
{
@@ -1500,7 +1500,7 @@ SwUndoTableNdsChg::SwUndoTableNdsChg( SwUndoId nAction,
nMin( 0 ), nMax( 0 ),
nSttNode( rTableNd.GetIndex() ), nCurrBox( 0 ),
nCount( 0 ), nRelDiff( 0 ), nAbsDiff( 0 ),
- nSetColType( USHRT_MAX ),
+ nSetColType( TableChgWidthHeightType::InvalidPos ),
bFlag( false ),
bSameHeight( false )
{
@@ -1832,7 +1832,7 @@ void SwUndoTableNdsChg::RedoImpl(::sw::UndoRedoContext & rContext)
switch( GetId() )
{
case SwUndoId::TABLE_INSCOL:
- if( USHRT_MAX == nSetColType )
+ if( TableChgWidthHeightType::InvalidPos == extractPosition(nSetColType) )
rDoc.InsertCol( aSelBoxes, nCount, bFlag );
else
{
@@ -1843,7 +1843,7 @@ void SwUndoTableNdsChg::RedoImpl(::sw::UndoRedoContext & rContext)
break;
case SwUndoId::TABLE_INSROW:
- if( USHRT_MAX == nSetColType )
+ if( TableChgWidthHeightType::InvalidPos == extractPosition(nSetColType) )
rDoc.InsertRow( aSelBoxes, nCount, bFlag );
else
{
@@ -1862,7 +1862,7 @@ void SwUndoTableNdsChg::RedoImpl(::sw::UndoRedoContext & rContext)
case SwUndoId::TABLE_DELBOX:
case SwUndoId::ROW_DELETE:
case SwUndoId::COL_DELETE:
- if( USHRT_MAX == nSetColType )
+ if( TableChgWidthHeightType::InvalidPos == extractPosition(nSetColType) )
{
SwTableFormulaUpdate aMsgHint( &pTableNd->GetTable() );
aMsgHint.m_eFlags = TBL_BOXPTR;
@@ -1888,22 +1888,23 @@ void SwUndoTableNdsChg::RedoImpl(::sw::UndoRedoContext & rContext)
rDoc.GetIDocumentUndoRedo().DoUndo( true );
SwUndo* pUndo = nullptr;
- switch( nSetColType & 0xff )
+ switch( extractPosition(nSetColType) )
{
- case nsTableChgWidthHeightType::WH_COL_LEFT:
- case nsTableChgWidthHeightType::WH_COL_RIGHT:
- case nsTableChgWidthHeightType::WH_CELL_LEFT:
- case nsTableChgWidthHeightType::WH_CELL_RIGHT:
+ case TableChgWidthHeightType::ColLeft:
+ case TableChgWidthHeightType::ColRight:
+ case TableChgWidthHeightType::CellLeft:
+ case TableChgWidthHeightType::CellRight:
rTable.SetColWidth( *pBox, nSetColType, nAbsDiff,
nRelDiff, &pUndo );
break;
- case nsTableChgWidthHeightType::WH_ROW_TOP:
- case nsTableChgWidthHeightType::WH_ROW_BOTTOM:
- case nsTableChgWidthHeightType::WH_CELL_TOP:
- case nsTableChgWidthHeightType::WH_CELL_BOTTOM:
+ case TableChgWidthHeightType::RowTop:
+ case TableChgWidthHeightType::RowBottom:
+ case TableChgWidthHeightType::CellTop:
+ case TableChgWidthHeightType::CellBottom:
rTable.SetRowHeight( *pBox, nSetColType, nAbsDiff,
nRelDiff, &pUndo );
break;
+ default: break;
}
if( pUndo )
diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx
index a26e2a00c665..f5606bbcdf8b 100644
--- a/sw/source/uibase/docvw/edtwin.cxx
+++ b/sw/source/uibase/docvw/edtwin.cxx
@@ -1555,7 +1555,7 @@ void SwEditWin::KeyInput(const KeyEvent &rKEvt)
SwModuleOptions* pModOpt = SW_MOD()->GetModuleConfig();
- TableChgWidthHeightType eTableChgMode = nsTableChgWidthHeightType::WH_COL_LEFT; // initialization just for warning-free code
+ TableChgWidthHeightType eTableChgMode = TableChgWidthHeightType::ColLeft; // initialization just for warning-free code
sal_uInt16 nTableChgSize = 0;
bool bStopKeyInputTimer = true;
OUString sFormulaEntry;
@@ -1773,16 +1773,16 @@ KEYINPUT_CHECKTABLE:
eFlyState = SwKeyState::Fly_Change;
nDir = MOVE_LEFT_BIG;
}
- eTableChgMode = nsTableChgWidthHeightType::WH_FLAG_INSDEL |
+ eTableChgMode = TableChgWidthHeightType::InsertDeleteMode |
( bMod1
- ? nsTableChgWidthHeightType::WH_CELL_LEFT
- : nsTableChgWidthHeightType::WH_COL_LEFT );
+ ? TableChgWidthHeightType::CellLeft
+ : TableChgWidthHeightType::ColLeft );
nTableChgSize = pModOpt->GetTableVInsert();
}
goto KEYINPUT_CHECKTABLE_INSDEL;
case KEY_RIGHT | KEY_MOD1:
{
- eTableChgMode = nsTableChgWidthHeightType::WH_FLAG_INSDEL | nsTableChgWidthHeightType::WH_CELL_RIGHT;
+ eTableChgMode = TableChgWidthHeightType::InsertDeleteMode | TableChgWidthHeightType::CellRight;
nTableChgSize = pModOpt->GetTableVInsert();
}
goto KEYINPUT_CHECKTABLE_INSDEL;
@@ -1795,10 +1795,10 @@ KEYINPUT_CHECKTABLE:
eFlyState = SwKeyState::Fly_Change;
nDir = MOVE_UP_BIG;
}
- eTableChgMode = nsTableChgWidthHeightType::WH_FLAG_INSDEL |
+ eTableChgMode = TableChgWidthHeightType::InsertDeleteMode |
( bMod1
- ? nsTableChgWidthHeightType::WH_CELL_TOP
- : nsTableChgWidthHeightType::WH_ROW_TOP );
+ ? TableChgWidthHeightType::CellTop
+ : TableChgWidthHeightType::RowTop );
nTableChgSize = pModOpt->GetTableHInsert();
}
goto KEYINPUT_CHECKTABLE_INSDEL;
@@ -1811,10 +1811,10 @@ KEYINPUT_CHECKTABLE:
eFlyState = SwKeyState::Fly_Change;
nDir = MOVE_DOWN_BIG;
}
- eTableChgMode = nsTableChgWidthHeightType::WH_FLAG_INSDEL |
+ eTableChgMode = TableChgWidthHeightType::InsertDeleteMode |
( bMod1
- ? nsTableChgWidthHeightType::WH_CELL_BOTTOM
- : nsTableChgWidthHeightType::WH_ROW_BOTTOM );
+ ? TableChgWidthHeightType::CellBottom
+ : TableChgWidthHeightType::RowBottom );
nTableChgSize = pModOpt->GetTableHInsert();
}
goto KEYINPUT_CHECKTABLE_INSDEL;
@@ -1840,7 +1840,7 @@ KEYINPUT_CHECKTABLE_INSDEL:
else
{
if( !m_bTableIsInsMode )
- eTableChgMode = eTableChgMode | nsTableChgWidthHeightType::WH_FLAG_BIGGER;
+ eTableChgMode = eTableChgMode | TableChgWidthHeightType::BiggerMode;
eKeyState = SwKeyState::TableColCellInsDel;
}
break;
@@ -2039,7 +2039,7 @@ KEYINPUT_CHECKTABLE_INSDEL:
{
eFlyState = SwKeyState::Fly_Change;
nDir = MOVE_RIGHT_BIG;
- eTableChgMode = nsTableChgWidthHeightType::WH_FLAG_INSDEL | nsTableChgWidthHeightType::WH_COL_RIGHT;
+ eTableChgMode = TableChgWidthHeightType::InsertDeleteMode | TableChgWidthHeightType::ColRight;
nTableChgSize = pModOpt->GetTableVInsert();
goto KEYINPUT_CHECKTABLE_INSDEL;
}
@@ -2638,20 +2638,20 @@ KEYINPUT_CHECKTABLE_INSDEL:
}
break;
- case SwKeyState::ColLeftBig: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_COL_LEFT|nsTableChgWidthHeightType::WH_FLAG_BIGGER, pModOpt->GetTableHMove() ); break;
- case SwKeyState::ColRightBig: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_COL_RIGHT|nsTableChgWidthHeightType::WH_FLAG_BIGGER, pModOpt->GetTableHMove() ); break;
- case SwKeyState::ColLeftSmall: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_COL_LEFT, pModOpt->GetTableHMove() ); break;
- case SwKeyState::ColRightSmall: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_COL_RIGHT, pModOpt->GetTableHMove() ); break;
- case SwKeyState::ColBottomBig: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_ROW_BOTTOM|nsTableChgWidthHeightType::WH_FLAG_BIGGER, pModOpt->GetTableVMove() ); break;
- case SwKeyState::ColBottomSmall: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_ROW_BOTTOM, pModOpt->GetTableVMove() ); break;
- case SwKeyState::CellLeftBig: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_LEFT|nsTableChgWidthHeightType::WH_FLAG_BIGGER, pModOpt->GetTableHMove() ); break;
- case SwKeyState::CellRightBig: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_RIGHT|nsTableChgWidthHeightType::WH_FLAG_BIGGER, pModOpt->GetTableHMove() ); break;
- case SwKeyState::CellLeftSmall: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_LEFT, pModOpt->GetTableHMove() ); break;
- case SwKeyState::CellRightSmall: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_RIGHT, pModOpt->GetTableHMove() ); break;
- case SwKeyState::CellTopBig: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_TOP|nsTableChgWidthHeightType::WH_FLAG_BIGGER, pModOpt->GetTableVMove() ); break;
- case SwKeyState::CellBottomBig: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_BOTTOM|nsTableChgWidthHeightType::WH_FLAG_BIGGER, pModOpt->GetTableVMove() ); break;
- case SwKeyState::CellTopSmall: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_TOP, pModOpt->GetTableVMove() ); break;
- case SwKeyState::CellBottomSmall: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_BOTTOM, pModOpt->GetTableVMove() ); break;
+ case SwKeyState::ColLeftBig: rSh.SetColRowWidthHeight( TableChgWidthHeightType::ColLeft|TableChgWidthHeightType::BiggerMode, pModOpt->GetTableHMove() ); break;
+ case SwKeyState::ColRightBig: rSh.SetColRowWidthHeight( TableChgWidthHeightType::ColRight|TableChgWidthHeightType::BiggerMode, pModOpt->GetTableHMove() ); break;
+ case SwKeyState::ColLeftSmall: rSh.SetColRowWidthHeight( TableChgWidthHeightType::ColLeft, pModOpt->GetTableHMove() ); break;
+ case SwKeyState::ColRightSmall: rSh.SetColRowWidthHeight( TableChgWidthHeightType::ColRight, pModOpt->GetTableHMove() ); break;
+ case SwKeyState::ColBottomBig: rSh.SetColRowWidthHeight( TableChgWidthHeightType::RowBottom|TableChgWidthHeightType::BiggerMode, pModOpt->GetTableVMove() ); break;
+ case SwKeyState::ColBottomSmall: rSh.SetColRowWidthHeight( TableChgWidthHeightType::RowBottom, pModOpt->GetTableVMove() ); break;
+ case SwKeyState::CellLeftBig: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellLeft|TableChgWidthHeightType::BiggerMode, pModOpt->GetTableHMove() ); break;
+ case SwKeyState::CellRightBig: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellRight|TableChgWidthHeightType::BiggerMode, pModOpt->GetTableHMove() ); break;
+ case SwKeyState::CellLeftSmall: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellLeft, pModOpt->GetTableHMove() ); break;
+ case SwKeyState::CellRightSmall: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellRight, pModOpt->GetTableHMove() ); break;
+ case SwKeyState::CellTopBig: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellTop|TableChgWidthHeightType::BiggerMode, pModOpt->GetTableVMove() ); break;
+ case SwKeyState::CellBottomBig: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellBottom|TableChgWidthHeightType::BiggerMode, pModOpt->GetTableVMove() ); break;
+ case SwKeyState::CellTopSmall: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellTop, pModOpt->GetTableVMove() ); break;
+ case SwKeyState::CellBottomSmall: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellBottom, pModOpt->GetTableVMove() ); break;
case SwKeyState::TableColCellInsDel:
rSh.SetColRowWidthHeight( eTableChgMode, nTableChgSize );