LibreOffice Module sw (master)  1
tabcol.cxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #include <tabcol.hxx>
21 #include <limits.h>
22 
23 SwTabCols::SwTabCols( sal_uInt16 nSize ) :
24  m_nLeftMin( 0 ),
25  m_nLeft( 0 ),
26  m_nRight( 0 ),
27  m_nRightMax( 0 ),
28  m_bLastRowAllowedToChange( true )
29 {
30  if ( nSize )
31  m_aData.reserve( nSize );
32 }
33 
35  m_nLeftMin( rCpy.GetLeftMin() ),
36  m_nLeft( rCpy.GetLeft() ),
37  m_nRight( rCpy.GetRight() ),
38  m_nRightMax( rCpy.GetRightMax() ),
39  m_bLastRowAllowedToChange( rCpy.IsLastRowAllowedToChange() ),
40  m_aData( rCpy.GetData() )
41 {
42 }
43 
45 {
46  m_nLeftMin = rCpy.GetLeftMin();
47  m_nLeft = rCpy.GetLeft();
48  m_nRight = rCpy.GetRight();
49  m_nRightMax= rCpy.GetRightMax();
51 
52  Remove( 0, Count() );
53  m_aData = rCpy.GetData();
54 
55  return *this;
56 }
57 
58 void SwTabCols::Insert( long nValue, long nMin, long nMax,
59  bool bValue, size_t nPos )
60 {
61  SwTabColsEntry aEntry;
62  aEntry.nPos = nValue;
63  aEntry.nMin = nMin;
64  aEntry.nMax = nMax;
65  aEntry.bHidden = bValue;
66  m_aData.insert( m_aData.begin() + nPos, aEntry );
67 }
68 
69 void SwTabCols::Insert( long nValue, bool bValue, size_t nPos )
70 {
71  SwTabColsEntry aEntry;
72  aEntry.nPos = nValue;
73  aEntry.nMin = 0;
74  aEntry.nMax = LONG_MAX;
75  aEntry.bHidden = bValue;
76  m_aData.insert( m_aData.begin() + nPos, aEntry );
77 
78 #if OSL_DEBUG_LEVEL > 1
79  for ( const auto& rPos : m_aData )
80  {
81  aEntry = rPos;
82  }
83 #endif
84 }
85 
86 void SwTabCols::Remove( size_t nPos, size_t nCount )
87 {
88  SwTabColsEntries::iterator aStart = m_aData.begin() + nPos;
89  m_aData.erase( aStart, aStart + nCount );
90 }
91 
92 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
const SwTabColsEntries & GetData() const
Definition: tabcol.hxx:56
long GetLeftMin() const
Definition: tabcol.hxx:76
long GetRightMax() const
Definition: tabcol.hxx:79
long m_nLeftMin
Definition: tabcol.hxx:42
void Insert(long nValue, bool bValue, size_t nPos)
Definition: tabcol.cxx:69
long GetRight() const
Definition: tabcol.hxx:78
long m_nLeft
Definition: tabcol.hxx:42
bool IsLastRowAllowedToChange() const
Definition: tabcol.hxx:86
bool bHidden
Definition: tabcol.hxx:32
SwTabCols(sal_uInt16 nSize=0)
Definition: tabcol.cxx:23
long m_nRight
Definition: tabcol.hxx:42
void Remove(size_t nPos, size_t nCount=1)
Definition: tabcol.cxx:86
const long LONG_MAX
bool m_bLastRowAllowedToChange
Definition: tabcol.hxx:49
long m_nRightMax
Definition: tabcol.hxx:42
SwTabColsEntries m_aData
Definition: tabcol.hxx:53
SwTabCols & operator=(const SwTabCols &)
Definition: tabcol.cxx:44
long GetLeft() const
Definition: tabcol.hxx:77
size_t Count() const
Definition: tabcol.hxx:64