Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
df8c41cc
Kaydet (Commit)
df8c41cc
authored
Mar 12, 2013
tarafından
Thomas Arnhold
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Revert "reduce some uglyness"
MSVC doesn't like this. This reverts commit
84dc8e5b
.
üst
99c3b3b4
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
255 additions
and
197 deletions
+255
-197
rngitem.hxx
svl/inc/svl/rngitem.hxx
+32
-18
rngitem.cxx
svl/source/items/rngitem.cxx
+11
-179
rngitem_inc.cxx
svl/source/items/rngitem_inc.cxx
+212
-0
No files found.
svl/inc/svl/rngitem.hxx
Dosyayı görüntüle @
df8c41cc
...
...
@@ -19,6 +19,19 @@
#ifndef _SFXRNGITEM_HXX
#ifndef NUMTYPE
#define NUMTYPE sal_uInt16
#define SfxXRangeItem SfxRangeItem
#define SfxXRangesItem SfxUShortRangesItem
#include <svl/rngitem.hxx>
#undef NUMTYPE
#undef SfxXRangeItem
#undef SfxXRangesItem
#define _SFXRNGITEM_HXX
#else
#include "svl/svldllapi.h"
#include <svl/poolitem.hxx>
...
...
@@ -26,16 +39,16 @@ class SvStream;
// -----------------------------------------------------------------------
class
SVL_DLLPUBLIC
SfxRangeItem
:
public
SfxPoolItem
class
SVL_DLLPUBLIC
Sfx
X
RangeItem
:
public
SfxPoolItem
{
private
:
sal_uInt16
nFrom
;
sal_uInt16
nTo
;
NUMTYPE
nFrom
;
NUMTYPE
nTo
;
public
:
TYPEINFO
();
SfxRangeItem
();
Sfx
RangeItem
(
sal_uInt16
nWID
,
sal_uInt16
nFrom
,
sal_uInt16
nTo
);
Sfx
RangeItem
(
const
Sfx
RangeItem
&
rItem
);
Sfx
X
RangeItem
();
Sfx
XRangeItem
(
sal_uInt16
nWID
,
NUMTYPE
nFrom
,
NUMTYPE
nTo
);
Sfx
XRangeItem
(
const
SfxX
RangeItem
&
rItem
);
virtual
int
operator
==
(
const
SfxPoolItem
&
)
const
;
virtual
SfxItemPresentation
GetPresentation
(
SfxItemPresentation
ePres
,
SfxMapUnit
eCoreMetric
,
...
...
@@ -43,28 +56,28 @@ public:
OUString
&
rText
,
const
IntlWrapper
*
=
0
)
const
;
virtual
SfxPoolItem
*
Clone
(
SfxItemPool
*
pPool
=
0
)
const
;
inline
sal_uInt16
&
From
()
{
return
nFrom
;
}
inline
sal_uInt16
From
()
const
{
return
nFrom
;
}
inline
sal_uInt16
&
To
()
{
return
nTo
;
}
inline
sal_uInt16
To
()
const
{
return
nTo
;
}
inline
sal_Bool
HasRange
()
const
{
return
nTo
>
nFrom
;
}
inline
NUMTYPE
&
From
()
{
return
nFrom
;
}
inline
NUMTYPE
From
()
const
{
return
nFrom
;
}
inline
NUMTYPE
&
To
()
{
return
nTo
;
}
inline
NUMTYPE
To
()
const
{
return
nTo
;
}
inline
sal_Bool
HasRange
()
const
{
return
nTo
>
nFrom
;
}
virtual
SfxPoolItem
*
Create
(
SvStream
&
,
sal_uInt16
nVersion
)
const
;
virtual
SvStream
&
Store
(
SvStream
&
,
sal_uInt16
nItemVersion
)
const
;
};
// -----------------------------------------------------------------------
class
SVL_DLLPUBLIC
Sfx
UShort
RangesItem
:
public
SfxPoolItem
class
SVL_DLLPUBLIC
Sfx
X
RangesItem
:
public
SfxPoolItem
{
private
:
sal_uInt16
*
_pRanges
;
NUMTYPE
*
_pRanges
;
public
:
TYPEINFO
();
Sfx
UShort
RangesItem
();
Sfx
UShort
RangesItem
(
sal_uInt16
nWID
,
SvStream
&
rStream
);
Sfx
UShortRangesItem
(
const
SfxUShort
RangesItem
&
rItem
);
virtual
~
Sfx
UShort
RangesItem
();
Sfx
X
RangesItem
();
Sfx
X
RangesItem
(
sal_uInt16
nWID
,
SvStream
&
rStream
);
Sfx
XRangesItem
(
const
SfxX
RangesItem
&
rItem
);
virtual
~
Sfx
X
RangesItem
();
virtual
int
operator
==
(
const
SfxPoolItem
&
)
const
;
virtual
SfxItemPresentation
GetPresentation
(
SfxItemPresentation
ePres
,
SfxMapUnit
eCoreMetric
,
...
...
@@ -72,11 +85,12 @@ public:
OUString
&
rText
,
const
IntlWrapper
*
=
0
)
const
;
virtual
SfxPoolItem
*
Clone
(
SfxItemPool
*
pPool
=
0
)
const
;
inline
const
sal_uInt16
*
GetRanges
()
const
{
return
_pRanges
;
}
inline
const
NUMTYPE
*
GetRanges
()
const
{
return
_pRanges
;
}
virtual
SfxPoolItem
*
Create
(
SvStream
&
,
sal_uInt16
nVersion
)
const
;
virtual
SvStream
&
Store
(
SvStream
&
,
sal_uInt16
nItemVersion
)
const
;
};
#endif
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
svl/source/items/rngitem.cxx
Dosyayı görüntüle @
df8c41cc
...
...
@@ -18,190 +18,22 @@
*/
#include <tools/stream.hxx>
#include <svl/rngitem.hxx>
static
inline
sal_uInt16
Count_Impl
(
const
sal_uInt16
*
pRanges
)
{
sal_uInt16
nCount
=
0
;
for
(;
*
pRanges
;
pRanges
+=
2
)
nCount
+=
2
;
return
nCount
;
}
// -----------------------------------------------------------------------
TYPEINIT1_AUTOFACTORY
(
SfxRangeItem
,
SfxPoolItem
);
TYPEINIT1_AUTOFACTORY
(
SfxUShortRangesItem
,
SfxPoolItem
);
sal_uInt16
Count_Impl
(
const
sal_uInt16
*
pRanges
);
// -----------------------------------------------------------------------
SfxRangeItem
::
SfxRangeItem
()
{
nFrom
=
0
;
nTo
=
0
;
}
// -----------------------------------------------------------------------
SfxRangeItem
::
SfxRangeItem
(
sal_uInt16
which
,
sal_uInt16
from
,
sal_uInt16
to
)
:
SfxPoolItem
(
which
),
nFrom
(
from
),
nTo
(
to
)
{
}
// -----------------------------------------------------------------------
SfxRangeItem
::
SfxRangeItem
(
const
SfxRangeItem
&
rItem
)
:
SfxPoolItem
(
rItem
)
{
nFrom
=
rItem
.
nFrom
;
nTo
=
rItem
.
nTo
;
}
// -----------------------------------------------------------------------
SfxItemPresentation
SfxRangeItem
::
GetPresentation
(
SfxItemPresentation
/*ePresentation*/
,
SfxMapUnit
/*eCoreMetric*/
,
SfxMapUnit
/*ePresentationMetric*/
,
OUString
&
rText
,
const
IntlWrapper
*
)
const
{
rText
=
OUString
::
number
(
nFrom
)
+
":"
+
OUString
::
number
(
nTo
);
return
SFX_ITEM_PRESENTATION_NAMELESS
;
}
// -----------------------------------------------------------------------
int
SfxRangeItem
::
operator
==
(
const
SfxPoolItem
&
rItem
)
const
{
DBG_ASSERT
(
SfxPoolItem
::
operator
==
(
rItem
),
"unequal type"
);
SfxRangeItem
*
pT
=
(
SfxRangeItem
*
)
&
rItem
;
if
(
nFrom
==
pT
->
nFrom
&&
nTo
==
pT
->
nTo
)
return
1
;
return
0
;
}
// -----------------------------------------------------------------------
SfxPoolItem
*
SfxRangeItem
::
Clone
(
SfxItemPool
*
)
const
{
return
new
SfxRangeItem
(
Which
(),
nFrom
,
nTo
);
}
// -----------------------------------------------------------------------
SfxPoolItem
*
SfxRangeItem
::
Create
(
SvStream
&
rStream
,
sal_uInt16
)
const
{
sal_uInt16
nVon
(
0
),
nBis
(
0
);
rStream
>>
nVon
;
rStream
>>
nBis
;
return
new
SfxRangeItem
(
Which
(),
nVon
,
nBis
);
}
#ifndef NUMTYPE
// -----------------------------------------------------------------------
SvStream
&
SfxRangeItem
::
Store
(
SvStream
&
rStream
,
sal_uInt16
)
const
{
rStream
<<
nFrom
;
rStream
<<
nTo
;
return
rStream
;
}
//=========================================================================
SfxUShortRangesItem
::
SfxUShortRangesItem
()
:
_pRanges
(
0
)
{
}
//-------------------------------------------------------------------------
SfxUShortRangesItem
::
SfxUShortRangesItem
(
sal_uInt16
nWID
,
SvStream
&
rStream
)
:
SfxPoolItem
(
nWID
)
{
sal_uInt16
nCount
(
0
);
rStream
>>
nCount
;
_pRanges
=
new
sal_uInt16
[
nCount
+
1
];
for
(
sal_uInt16
n
=
0
;
n
<
nCount
;
++
n
)
rStream
>>
_pRanges
[
n
];
_pRanges
[
nCount
]
=
0
;
}
//-------------------------------------------------------------------------
SfxUShortRangesItem
::
SfxUShortRangesItem
(
const
SfxUShortRangesItem
&
rItem
)
:
SfxPoolItem
(
rItem
)
{
sal_uInt16
nCount
=
Count_Impl
(
rItem
.
_pRanges
)
+
1
;
_pRanges
=
new
sal_uInt16
[
nCount
];
memcpy
(
_pRanges
,
rItem
.
_pRanges
,
sizeof
(
sal_uInt16
)
*
nCount
);
}
//-------------------------------------------------------------------------
SfxUShortRangesItem
::~
SfxUShortRangesItem
()
{
delete
_pRanges
;
}
//-------------------------------------------------------------------------
int
SfxUShortRangesItem
::
operator
==
(
const
SfxPoolItem
&
rItem
)
const
{
const
SfxUShortRangesItem
&
rOther
=
(
const
SfxUShortRangesItem
&
)
rItem
;
if
(
!
_pRanges
&&
!
rOther
.
_pRanges
)
return
sal_True
;
if
(
_pRanges
||
rOther
.
_pRanges
)
return
sal_False
;
sal_uInt16
n
;
for
(
n
=
0
;
_pRanges
[
n
]
&&
rOther
.
_pRanges
[
n
];
++
n
)
if
(
*
_pRanges
!=
rOther
.
_pRanges
[
n
]
)
return
0
;
return
!
_pRanges
[
n
]
&&
!
rOther
.
_pRanges
[
n
];
}
//-------------------------------------------------------------------------
SfxItemPresentation
SfxUShortRangesItem
::
GetPresentation
(
SfxItemPresentation
/*ePres*/
,
SfxMapUnit
/*eCoreMetric*/
,
SfxMapUnit
/*ePresMetric*/
,
OUString
&
/*rText*/
,
const
IntlWrapper
*
)
const
{
// not implemented
return
SFX_ITEM_PRESENTATION_NONE
;
}
//-------------------------------------------------------------------------
SfxPoolItem
*
SfxUShortRangesItem
::
Clone
(
SfxItemPool
*
)
const
{
return
new
SfxUShortRangesItem
(
*
this
);
}
#define NUMTYPE sal_uInt16
#define SfxXRangeItem SfxRangeItem
#define SfxXRangesItem SfxUShortRangesItem
#include <svl/rngitem.hxx>
#include "rngitem_inc.cxx"
//-------------------------------------------------------------------------
#else
SfxPoolItem
*
SfxUShortRangesItem
::
Create
(
SvStream
&
rStream
,
sal_uInt16
)
const
{
return
new
SfxUShortRangesItem
(
Which
(),
rStream
);
}
// We leave this condition just in case NUMTYPE has been defined externally to this
// file and we are supposed to define the SfxXRangeItem based on that.
//-------------------------------------------------------------------------
#include "rngitem_inc.cxx"
SvStream
&
SfxUShortRangesItem
::
Store
(
SvStream
&
rStream
,
sal_uInt16
)
const
{
sal_uInt16
nCount
=
Count_Impl
(
_pRanges
);
rStream
>>
nCount
;
for
(
sal_uInt16
n
=
0
;
_pRanges
[
n
];
++
n
)
rStream
>>
_pRanges
[
n
];
return
rStream
;
}
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
svl/source/items/rngitem_inc.cxx
0 → 100644
Dosyayı görüntüle @
df8c41cc
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* 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 .
*/
// This snippet of code is included by rngitem.cxx but not compiled directly.
// Ugly hack, probably due to lack of templates in the 20th century.
static
inline
NUMTYPE
Count_Impl
(
const
NUMTYPE
*
pRanges
)
{
NUMTYPE
nCount
=
0
;
for
(;
*
pRanges
;
pRanges
+=
2
)
nCount
+=
2
;
return
nCount
;
}
// -----------------------------------------------------------------------
TYPEINIT1_AUTOFACTORY
(
SfxXRangeItem
,
SfxPoolItem
);
TYPEINIT1_AUTOFACTORY
(
SfxXRangesItem
,
SfxPoolItem
);
NUMTYPE
Count_Impl
(
const
NUMTYPE
*
pRanges
);
// -----------------------------------------------------------------------
SfxXRangeItem
::
SfxXRangeItem
()
{
nFrom
=
0
;
nTo
=
0
;
}
// -----------------------------------------------------------------------
SfxXRangeItem
::
SfxXRangeItem
(
sal_uInt16
which
,
NUMTYPE
from
,
NUMTYPE
to
)
:
SfxPoolItem
(
which
),
nFrom
(
from
),
nTo
(
to
)
{
}
// -----------------------------------------------------------------------
SfxXRangeItem
::
SfxXRangeItem
(
const
SfxXRangeItem
&
rItem
)
:
SfxPoolItem
(
rItem
)
{
nFrom
=
rItem
.
nFrom
;
nTo
=
rItem
.
nTo
;
}
// -----------------------------------------------------------------------
SfxItemPresentation
SfxXRangeItem
::
GetPresentation
(
SfxItemPresentation
/*ePresentation*/
,
SfxMapUnit
/*eCoreMetric*/
,
SfxMapUnit
/*ePresentationMetric*/
,
OUString
&
rText
,
const
IntlWrapper
*
)
const
{
rText
=
OUString
::
number
(
nFrom
)
+
":"
+
OUString
::
number
(
nTo
);
return
SFX_ITEM_PRESENTATION_NAMELESS
;
}
// -----------------------------------------------------------------------
int
SfxXRangeItem
::
operator
==
(
const
SfxPoolItem
&
rItem
)
const
{
DBG_ASSERT
(
SfxPoolItem
::
operator
==
(
rItem
),
"unequal type"
);
SfxXRangeItem
*
pT
=
(
SfxXRangeItem
*
)
&
rItem
;
if
(
nFrom
==
pT
->
nFrom
&&
nTo
==
pT
->
nTo
)
return
1
;
return
0
;
}
// -----------------------------------------------------------------------
SfxPoolItem
*
SfxXRangeItem
::
Clone
(
SfxItemPool
*
)
const
{
return
new
SfxXRangeItem
(
Which
(),
nFrom
,
nTo
);
}
// -----------------------------------------------------------------------
SfxPoolItem
*
SfxXRangeItem
::
Create
(
SvStream
&
rStream
,
sal_uInt16
)
const
{
NUMTYPE
nVon
(
0
),
nBis
(
0
);
rStream
>>
nVon
;
rStream
>>
nBis
;
return
new
SfxXRangeItem
(
Which
(),
nVon
,
nBis
);
}
// -----------------------------------------------------------------------
SvStream
&
SfxXRangeItem
::
Store
(
SvStream
&
rStream
,
sal_uInt16
)
const
{
rStream
<<
nFrom
;
rStream
<<
nTo
;
return
rStream
;
}
//=========================================================================
SfxXRangesItem
::
SfxXRangesItem
()
:
_pRanges
(
0
)
{
}
//-------------------------------------------------------------------------
SfxXRangesItem
::
SfxXRangesItem
(
sal_uInt16
nWID
,
SvStream
&
rStream
)
:
SfxPoolItem
(
nWID
)
{
NUMTYPE
nCount
(
0
);
rStream
>>
nCount
;
_pRanges
=
new
NUMTYPE
[
nCount
+
1
];
for
(
NUMTYPE
n
=
0
;
n
<
nCount
;
++
n
)
rStream
>>
_pRanges
[
n
];
_pRanges
[
nCount
]
=
0
;
}
//-------------------------------------------------------------------------
SfxXRangesItem
::
SfxXRangesItem
(
const
SfxXRangesItem
&
rItem
)
:
SfxPoolItem
(
rItem
)
{
NUMTYPE
nCount
=
Count_Impl
(
rItem
.
_pRanges
)
+
1
;
_pRanges
=
new
NUMTYPE
[
nCount
];
memcpy
(
_pRanges
,
rItem
.
_pRanges
,
sizeof
(
NUMTYPE
)
*
nCount
);
}
//-------------------------------------------------------------------------
SfxXRangesItem
::~
SfxXRangesItem
()
{
delete
_pRanges
;
}
//-------------------------------------------------------------------------
int
SfxXRangesItem
::
operator
==
(
const
SfxPoolItem
&
rItem
)
const
{
const
SfxXRangesItem
&
rOther
=
(
const
SfxXRangesItem
&
)
rItem
;
if
(
!
_pRanges
&&
!
rOther
.
_pRanges
)
return
sal_True
;
if
(
_pRanges
||
rOther
.
_pRanges
)
return
sal_False
;
NUMTYPE
n
;
for
(
n
=
0
;
_pRanges
[
n
]
&&
rOther
.
_pRanges
[
n
];
++
n
)
if
(
*
_pRanges
!=
rOther
.
_pRanges
[
n
]
)
return
0
;
return
!
_pRanges
[
n
]
&&
!
rOther
.
_pRanges
[
n
];
}
//-------------------------------------------------------------------------
SfxItemPresentation
SfxXRangesItem
::
GetPresentation
(
SfxItemPresentation
/*ePres*/
,
SfxMapUnit
/*eCoreMetric*/
,
SfxMapUnit
/*ePresMetric*/
,
OUString
&
/*rText*/
,
const
IntlWrapper
*
)
const
{
// not implemented
return
SFX_ITEM_PRESENTATION_NONE
;
}
//-------------------------------------------------------------------------
SfxPoolItem
*
SfxXRangesItem
::
Clone
(
SfxItemPool
*
)
const
{
return
new
SfxXRangesItem
(
*
this
);
}
//-------------------------------------------------------------------------
SfxPoolItem
*
SfxXRangesItem
::
Create
(
SvStream
&
rStream
,
sal_uInt16
)
const
{
return
new
SfxXRangesItem
(
Which
(),
rStream
);
}
//-------------------------------------------------------------------------
SvStream
&
SfxXRangesItem
::
Store
(
SvStream
&
rStream
,
sal_uInt16
)
const
{
NUMTYPE
nCount
=
Count_Impl
(
_pRanges
);
rStream
>>
nCount
;
for
(
NUMTYPE
n
=
0
;
_pRanges
[
n
];
++
n
)
rStream
>>
_pRanges
[
n
];
return
rStream
;
}
#undef NUMTYPE
#undef SfxXRangeItem
#undef SfxXRangesItem
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment