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
56c6be00
Kaydet (Commit)
56c6be00
authored
Şub 01, 2001
tarafından
Andreas Martens
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
New: Rotated text with frame as character inside
üst
67f4f128
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
124 additions
and
40 deletions
+124
-40
flyfrms.hxx
sw/source/core/inc/flyfrms.hxx
+4
-3
flyincnt.cxx
sw/source/core/layout/flyincnt.cxx
+6
-5
itrform2.cxx
sw/source/core/text/itrform2.cxx
+18
-7
itrform2.hxx
sw/source/core/text/itrform2.hxx
+4
-3
porlay.cxx
sw/source/core/text/porlay.cxx
+7
-3
possiz.hxx
sw/source/core/text/possiz.hxx
+9
-2
txtfly.cxx
sw/source/core/text/txtfly.cxx
+76
-17
No files found.
sw/source/core/inc/flyfrms.hxx
Dosyayı görüntüle @
56c6be00
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: flyfrms.hxx,v $
*
* $Revision: 1.
1.1.1
$
* $Revision: 1.
2
$
*
* last change: $Author:
hr $ $Date: 2000-09-19 00:08:20
$
* last change: $Author:
ama $ $Date: 2001-02-01 13:56:32
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -162,7 +162,8 @@ public:
virtual
void
Format
(
const
SwBorderAttrs
*
pAttrs
=
0
);
virtual
void
Modify
(
SfxPoolItem
*
,
SfxPoolItem
*
);
void
SetRefPoint
(
const
Point
&
rPoint
,
const
Point
&
rRelPos
);
void
SetRefPoint
(
const
Point
&
rPoint
,
const
Point
&
rRelAttr
,
const
Point
&
rRelPos
);
const
Point
&
GetRefPoint
()
const
{
return
aRef
;
}
const
Point
&
GetRelPos
()
const
;
long
GetLineHeight
()
const
{
return
nLine
;
}
...
...
sw/source/core/layout/flyincnt.cxx
Dosyayı görüntüle @
56c6be00
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: flyincnt.cxx,v $
*
* $Revision: 1.
1.1.1
$
* $Revision: 1.
2
$
*
* last change: $Author:
hr $ $Date: 2000-09-19 00:08:22
$
* last change: $Author:
ama $ $Date: 2001-02-01 13:57:58
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -123,12 +123,13 @@ SwFlyInCntFrm::~SwFlyInCntFrm()
|* Letzte Aenderung MA 06. Aug. 95
|*
|*************************************************************************/
void
SwFlyInCntFrm
::
SetRefPoint
(
const
Point
&
rPoint
,
const
Point
&
rRelPos
)
void
SwFlyInCntFrm
::
SetRefPoint
(
const
Point
&
rPoint
,
const
Point
&
rRelAttr
,
const
Point
&
rRelPos
)
{
ASSERT
(
rPoint
!=
aRef
||
rRel
Pos
!=
aRelPos
,
"SetRefPoint: no change"
);
ASSERT
(
rPoint
!=
aRef
||
rRel
Attr
!=
aRelPos
,
"SetRefPoint: no change"
);
const
SwFlyNotify
aNotify
(
this
);
aRef
=
rPoint
;
aRelPos
=
rRel
Pos
;
aRelPos
=
rRel
Attr
;
Frm
().
Pos
(
rPoint
+
rRelPos
);
/*
//Kein InvalidatePos hier, denn das wuerde dem Cntnt ein Prepare
...
...
sw/source/core/text/itrform2.cxx
Dosyayı görüntüle @
56c6be00
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: itrform2.cxx,v $
*
* $Revision: 1.1
5
$
* $Revision: 1.1
6
$
*
* last change: $Author: ama $ $Date: 200
0-12-21 09:10:30
$
* last change: $Author: ama $ $Date: 200
1-02-01 14:01:34
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -769,7 +769,8 @@ void SwTxtFormatter::BuildPortions( SwTxtFormatInfo &rInf )
&&
(
rInf
.
X
()
+
GetLeftMargin
()
>=
rInf
.
GetPaintOfst
()
)
)
rInf
.
SetPaintOfst
(
0
);
if
(
pPor
->
IsFlyCntPortion
()
)
if
(
pPor
->
IsFlyCntPortion
()
||
(
pPor
->
IsMultiPortion
()
&&
((
SwMultiPortion
*
)
pPor
)
->
HasFlyInCntnt
()
)
)
SetFlyInCntBase
();
rInf
.
SetFull
(
bFull
);
...
...
@@ -834,7 +835,7 @@ void SwTxtFormatter::CalcAdjustLine( SwLineLayout *pCurr )
CalcAdjLine
(
pCurr
);
// 23348: z.B. bei zentrierten Flys muessen wir den RefPoint
// auf jeden Fall umsetzen, deshalb bAllWays = sal_True
UpdatePos
(
pCurr
,
sal_True
);
UpdatePos
(
pCurr
,
GetTopLeft
(),
GetStart
(),
sal_True
);
}
}
}
...
...
@@ -1233,10 +1234,20 @@ SwLinePortion *SwTxtFormatter::NewPortion( SwTxtFormatInfo &rInf )
{
SwMultiPortion
*
pTmp
=
NULL
;
if
(
RES_TXTATR_CJK_RUBY
==
pTwoLines
->
Which
()
)
pTmp
=
new
SwRubyPortion
(
*
pTwoLines
,
*
rInf
.
GetFont
(),
nEnd
);
pTmp
=
new
SwRubyPortion
(
*
pTwoLines
,
*
rInf
.
GetFont
(),
nEnd
);
else
#ifdef ROTATION_TEST
pTmp
=
new
SwRotatedPortion
(
nEnd
);
{
static
sal_uInt8
nTst
=
1
;
switch
(
nTst
)
{
case
1
:
case
3
:
pTmp
=
new
SwRotatedPortion
(
nEnd
,
nTst
);
break
;
default
:
pTmp
=
new
SwDoubleLinePortion
(
*
pTwoLines
,
nEnd
);
}
}
#else
pTmp
=
new
SwDoubleLinePortion
(
*
pTwoLines
,
nEnd
);
#endif
...
...
@@ -1447,7 +1458,7 @@ xub_StrLen SwTxtFormatter::FormatLine( const xub_StrLen nStart )
}
if
(
IsFlyInCntBase
()
&&
!
IsQuick
()
)
UpdatePos
(
pCurr
);
UpdatePos
(
pCurr
,
GetTopLeft
(),
GetStart
()
);
return
nNewStart
;
}
...
...
sw/source/core/text/itrform2.hxx
Dosyayı görüntüle @
56c6be00
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: itrform2.hxx,v $
*
* $Revision: 1.
4
$
* $Revision: 1.
5
$
*
* last change: $Author: ama $ $Date: 200
0-11-09 13:37:53
$
* last change: $Author: ama $ $Date: 200
1-02-01 14:00:12
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -136,7 +136,8 @@ class SwTxtFormatter : public SwTxtPainter
{
return
GetInfo
().
GetIdx
()
<
GetInfo
().
GetReformatStart
();
}
// durch das Adjustment aendert sich die Position der Portions
void
UpdatePos
(
SwLineLayout
*
pCurr
,
sal_Bool
bAllWays
=
sal_False
)
const
;
void
UpdatePos
(
SwLineLayout
*
pCurr
,
Point
aStart
,
xub_StrLen
nStartIdx
,
sal_Bool
bAllWays
=
sal_False
)
const
;
// Setze alle FlyInCntFrms auf die uebergebene BaseLine
void
AlignFlyInCntBase
(
long
nBaseLine
)
const
;
...
...
sw/source/core/text/porlay.cxx
Dosyayı görüntüle @
56c6be00
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: porlay.cxx,v $
*
* $Revision: 1.
3
$
* $Revision: 1.
4
$
*
* last change: $Author: ama $ $Date: 200
0-12-21 09:04:3
5 $
* last change: $Author: ama $ $Date: 200
1-02-01 14:02:5
5 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -78,6 +78,9 @@
#ifndef _PORRST_HXX
#include <porrst.hxx> // SwHangingPortion
#endif
#ifndef _PORMULTI_HXX
#include <pormulti.hxx> // SwMultiPortion
#endif
/*************************************************************************
...
...
@@ -342,7 +345,8 @@ void SwLineLayout::CalcLine( SwTxtFormatter &rLine, SwTxtFormatInfo &rInf )
{
if
(
Height
()
<
nPosHeight
)
Height
(
nPosHeight
);
if
(
pPos
->
IsFlyCntPortion
()
)
if
(
pPos
->
IsFlyCntPortion
()
||
(
pPos
->
IsMultiPortion
()
&&
((
SwMultiPortion
*
)
pPos
)
->
HasFlyInCntnt
()
)
)
rLine
.
SetFlyInCntBase
();
if
(
pPos
->
IsFlyCntPortion
()
&&
((
SwFlyCntPortion
*
)
pPos
)
->
GetAlign
()
)
...
...
sw/source/core/text/possiz.hxx
Dosyayı görüntüle @
56c6be00
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: possiz.hxx,v $
*
* $Revision: 1.
1.1.1
$
* $Revision: 1.
2
$
*
* last change: $Author:
hr $ $Date: 2000-09-19 00:08:26
$
* last change: $Author:
ama $ $Date: 2001-02-01 13:59:07
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -84,6 +84,7 @@ public:
inline
Size
SvLSize
()
const
{
return
Size
(
nWidth
,
nHeight
);
}
inline
void
SvLSize
(
const
Size
&
rSize
);
inline
void
SvXSize
(
const
Size
&
rSize
);
inline
sal_Bool
operator
==
(
const
SwPosSize
&
rSize
)
const
;
inline
SwPosSize
&
operator
=
(
const
SwPosSize
&
rSize
);
inline
SwPosSize
&
operator
=
(
const
Size
&
rSize
);
...
...
@@ -108,6 +109,12 @@ inline void SwPosSize::SvLSize( const Size &rSize )
nHeight
=
KSHORT
(
rSize
.
Height
());
}
inline
void
SwPosSize
::
SvXSize
(
const
Size
&
rSize
)
{
nHeight
=
KSHORT
(
rSize
.
Width
());
nWidth
=
KSHORT
(
rSize
.
Height
());
}
inline
SwPosSize
&
SwPosSize
::
operator
=
(
const
Size
&
rSize
)
{
nWidth
=
KSHORT
(
rSize
.
Width
());
...
...
sw/source/core/text/txtfly.cxx
Dosyayı görüntüle @
56c6be00
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: txtfly.cxx,v $
*
* $Revision: 1.
2
$
* $Revision: 1.
3
$
*
* last change: $Author: ama $ $Date: 200
0-10-17 10:21:27
$
* last change: $Author: ama $ $Date: 200
1-02-01 14:05:11
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -78,6 +78,9 @@
#include "flyfrm.hxx" // SwFlyFrm
#include "frmtool.hxx" // ::DrawGraphic
#include "porfld.hxx" // SwGrfNumPortion
#ifndef _PORMULTI_HXX
#include <pormulti.hxx> // SwMultiPortion
#endif
#ifdef VERT_DISTANCE
#include <math.h>
...
...
@@ -252,7 +255,8 @@ void SwTxtFormatter::CalcUnclipped( SwTwips& rTop, SwTwips& rBottom )
* ( hauptsaechlich Korrrektur der X-Position )
*************************************************************************/
void
SwTxtFormatter
::
UpdatePos
(
SwLineLayout
*
pCurr
,
sal_Bool
bAllWays
)
const
void
SwTxtFormatter
::
UpdatePos
(
SwLineLayout
*
pCurr
,
Point
aStart
,
xub_StrLen
nStartIdx
,
sal_Bool
bAllWays
)
const
{
if
(
GetInfo
().
IsTest
()
)
return
;
...
...
@@ -262,14 +266,33 @@ void SwTxtFormatter::UpdatePos( SwLineLayout *pCurr, sal_Bool bAllWays ) const
aTmpInf
.
SetSpaceAdd
(
pCurr
->
GetpSpaceAdd
()
);
aTmpInf
.
ResetSpaceIdx
();
// Die Groesse des Frames
aTmpInf
.
SetIdx
(
GetStart
()
);
aTmpInf
.
SetPos
(
GetTopLeft
()
);
aTmpInf
.
SetIdx
(
nStartIdx
);
aTmpInf
.
SetPos
(
aStart
);
long
nTmpAscent
,
nTmpDescent
,
nFlyAsc
,
nFlyDesc
;
lcl_MaxAscDescent
(
pPos
,
nTmpAscent
,
nTmpDescent
,
nFlyAsc
,
nFlyDesc
);
KSHORT
nAscent
,
nTmpHeight
;
CalcAscentAndHeight
(
nAscent
,
nTmpHeight
);
long
nTmpY
=
Y
()
+
nAscent
;
KSHORT
nTmpHeight
=
pCurr
->
GetRealHeight
();
KSHORT
nAscent
=
pCurr
->
GetAscent
()
+
nTmpHeight
-
pCurr
->
Height
();
sal_uInt8
nFlags
=
SETBASE_ULSPACE
;
if
(
GetMulti
()
)
{
aTmpInf
.
SetDirection
(
GetMulti
()
->
GetDirection
()
);
if
(
GetMulti
()
->
HasRotation
()
)
{
nFlags
|=
SETBASE_ROTATE
;
if
(
GetMulti
()
->
IsRevers
()
)
{
nFlags
|=
SETBASE_REVERSE
;
aTmpInf
.
X
(
aTmpInf
.
X
()
-
nAscent
);
}
else
aTmpInf
.
X
(
aTmpInf
.
X
()
+
nAscent
);
}
else
aTmpInf
.
Y
(
aTmpInf
.
Y
()
+
nAscent
);
}
else
aTmpInf
.
Y
(
aTmpInf
.
Y
()
+
nAscent
);
while
(
pPos
)
{
...
...
@@ -295,11 +318,35 @@ void SwTxtFormatter::UpdatePos( SwLineLayout *pCurr, sal_Bool bAllWays ) const
}
else
{
const
Point
aBase
(
aTmpInf
.
X
(),
nTmpY
);
((
SwFlyCntPortion
*
)
pPos
)
->
SetBase
(
aBase
,
nTmpAscent
,
nTmpDescent
,
nFlyAsc
,
nFlyDesc
,
SETBASE_ULSPACE
);
((
SwFlyCntPortion
*
)
pPos
)
->
SetBase
(
aTmpInf
.
GetPos
(),
nTmpAscent
,
nTmpDescent
,
nFlyAsc
,
nFlyDesc
,
nFlags
);
}
}
if
(
pPos
->
IsMultiPortion
()
&&
((
SwMultiPortion
*
)
pPos
)
->
HasFlyInCntnt
()
)
{
ASSERT
(
!
GetMulti
(),
"Too much multi"
);
((
SwTxtFormatter
*
)
this
)
->
pMulti
=
(
SwMultiPortion
*
)
pPos
;
SwLineLayout
*
pLay
=
&
GetMulti
()
->
GetRoot
();
Point
aSt
(
aStart
);
if
(
GetMulti
()
->
HasRotation
()
)
{
aSt
.
X
()
=
aTmpInf
.
X
();
aSt
.
Y
()
+=
pCurr
->
GetAscent
()
-
GetMulti
()
->
GetAscent
();
if
(
GetMulti
()
->
IsRevers
()
)
aSt
.
X
()
+=
GetMulti
()
->
Width
();
else
aSt
.
Y
()
+=
GetMulti
()
->
Height
();
}
xub_StrLen
nStIdx
=
aTmpInf
.
GetIdx
();
do
{
UpdatePos
(
pLay
,
aSt
,
nStIdx
,
bAllWays
);
nStIdx
+=
pLay
->
GetLen
();
aSt
.
Y
()
+=
pLay
->
Height
();
pLay
=
pLay
->
GetNext
();
}
while
(
pLay
);
((
SwTxtFormatter
*
)
this
)
->
pMulti
=
NULL
;
}
pPos
->
Move
(
aTmpInf
);
pPos
=
pPos
->
GetPortion
();
}
...
...
@@ -316,6 +363,13 @@ void SwTxtFormatter::AlignFlyInCntBase( long nBaseLine ) const
return
;
SwLinePortion
*
pFirst
=
pCurr
->
GetFirstPortion
();
SwLinePortion
*
pPos
=
pFirst
;
sal_uInt8
nFlags
=
SETBASE_NOFLAG
;
if
(
GetMulti
()
&&
GetMulti
()
->
HasRotation
()
)
{
nFlags
|=
SETBASE_ROTATE
;
if
(
GetMulti
()
->
IsRevers
()
)
nFlags
|=
SETBASE_REVERSE
;
}
long
nTmpAscent
,
nTmpDescent
,
nFlyAsc
,
nFlyDesc
;
...
...
@@ -333,7 +387,7 @@ void SwTxtFormatter::AlignFlyInCntBase( long nBaseLine ) const
const
Point
aBase
(
(
(
SwFlyCntPortion
*
)
pPos
)
->
GetRefPoint
().
X
(),
nBaseLine
);
((
SwFlyCntPortion
*
)
pPos
)
->
SetBase
(
aBase
,
nTmpAscent
,
nTmpDescent
,
nFlyAsc
,
nFlyDesc
,
SETBASE_NOFLAG
);
nFlyAsc
,
nFlyDesc
,
nFlags
);
}
}
pPos
=
pPos
->
GetPortion
();
...
...
@@ -578,11 +632,18 @@ SwFlyCntPortion *SwTxtFormatter::NewFlyCntPortion( SwTxtFormatInfo &rInf,
nFlyAsc
=
nAscent
;
Point
aBase
(
GetLeftMargin
()
+
rInf
.
X
(),
Y
()
+
nAscent
);
sal_uInt8
nMode
=
IsQuick
()
?
SETBASE_QUICK
:
0
;
if
(
GetMulti
()
&&
GetMulti
()
->
HasRotation
()
)
{
nMode
|=
SETBASE_ROTATE
;
if
(
GetMulti
()
->
IsRevers
()
)
nMode
|=
SETBASE_REVERSE
;
}
if
(
pFly
)
{
pRet
=
new
SwFlyCntPortion
(
pFly
,
aBase
,
nTmpAscent
,
nTmpDescent
,
nFlyAsc
,
nFlyDesc
,
IsQuick
()
);
nFlyAsc
,
nFlyDesc
,
nMode
);
// Wir muessen sicherstellen, dass unser Font wieder im OutputDevice
// steht. Es koennte sein, dass der FlyInCnt frisch eingefuegt wurde,
// dann hat GetFlyFrm dazu gefuehrt, dass er neu angelegt wird.
...
...
@@ -592,9 +653,7 @@ SwFlyCntPortion *SwTxtFormatter::NewFlyCntPortion( SwTxtFormatInfo &rInf,
if
(
pRet
->
GetAscent
()
>
nAscent
)
{
aBase
.
Y
()
=
Y
()
+
pRet
->
GetAscent
();
sal_uInt8
nMode
=
SETBASE_ULSPACE
;
if
(
IsQuick
()
)
nMode
|=
SETBASE_QUICK
;
nMode
|=
SETBASE_ULSPACE
;
if
(
!
rInf
.
IsTest
()
)
pRet
->
SetBase
(
aBase
,
nTmpAscent
,
nTmpDescent
,
nFlyAsc
,
nFlyDesc
,
nMode
);
...
...
@@ -603,7 +662,7 @@ SwFlyCntPortion *SwTxtFormatter::NewFlyCntPortion( SwTxtFormatInfo &rInf,
else
{
pRet
=
new
SwFlyCntPortion
(
(
SwDrawContact
*
)
pFrmFmt
->
FindContactObj
(),
aBase
,
nTmpAscent
,
nTmpDescent
,
nFlyAsc
,
nFlyDesc
,
IsQuick
()
);
aBase
,
nTmpAscent
,
nTmpDescent
,
nFlyAsc
,
nFlyDesc
,
nMode
);
}
return
pRet
;
}
...
...
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