[Libreoffice-commits] core.git: 3 commits - svx/source sw/source
Sun Ying
sunying at apache.org
Sun May 19 05:11:20 PDT 2013
svx/source/customshapes/EnhancedCustomShapeGeometry.cxx | 60 ++++++++++++++--
sw/source/filter/ww8/ww8graf.cxx | 24 ++++--
2 files changed, 69 insertions(+), 15 deletions(-)
New commits:
commit 73d23a54b8b930520788c891ddb12562198e94e8
Author: Sun Ying <sunying at apache.org>
Date: Mon Aug 20 02:29:52 2012 +0000
#119881# fix the"RingInside" fontwork display incorrectly when open .ppt file
Reported by: Li Feng Wang
Patch by: Ying Sun
Review by: Jian Yuan Li(cherry picked from commit 4904b17b657750e565e30d56810da513057fba39)
diff --git a/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx b/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
index 3eb6308..e823edc 100644
--- a/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+++ b/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
@@ -6438,7 +6438,47 @@ static const mso_CustomShape msoTextChevronInverted =
NULL, 0,
(SvxMSDffHandle*)mso_sptTextChevronInvertedHandle, SAL_N_ELEMENTS( mso_sptTextChevronInvertedHandle )
};
-
+//V 0 0 21600 ?f2 0 ?f0 21600 ?f0
+//W 0 0 21600 ?f2 21600 ?f0 0 ?f0 N
+//V 0 ?f3 21600 21600 0 ?f1 21600 ?f1
+//W 0 ?f3 21600 21600 21600 ?f1 0 ?f1 N
+//mso_sptTextRingInside
+static const SvxMSDffVertPair mso_sptTextRingInsideVert[] =
+{
+ { 0, 0 }, { 21600, 2 MSO_I }, { 0, 0 MSO_I },{ 21600, 0 MSO_I },//V
+ { 0, 0 }, { 21600, 2 MSO_I }, { 21600, 0 MSO_I },{ 0, 0 MSO_I },//W
+ { 0, 3 MSO_I }, { 21600, 21600 }, { 0, 1 MSO_I },{ 21600, 1 MSO_I },//V
+ { 0, 3 MSO_I }, { 21600, 21600 }, { 21600, 1 MSO_I },{ 0, 1 MSO_I }//W
+};
+static const SvxMSDffCalculationData mso_sptTextRingInsideCalc[] = // adjustment1 : 6629 - 14971
+{
+ { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
+ { 0x8000, { 21600, 0, 0x400 } },
+ { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, //$0
+ { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }//21600-$0
+};
+static const sal_uInt16 mso_sptTextRingInsideSegm[] =
+{
+ 0xa604, 0xa504,0x8000,
+ 0xa604, 0xa504,0x8000
+};
+static const SvxMSDffHandle mso_sptTextRingInsideHandle[] =
+{
+ { MSDFF_HANDLE_FLAGS_RANGE| MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
+ 10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 10800, 21600 }
+};
+static const mso_CustomShape msoTextRingInside =
+{
+ (SvxMSDffVertPair*)mso_sptTextRingInsideVert, sizeof( mso_sptTextRingInsideVert ) / sizeof( SvxMSDffVertPair ),
+ (sal_uInt16*)mso_sptTextRingInsideSegm, sizeof( mso_sptTextRingInsideSegm ) >> 1,
+ (SvxMSDffCalculationData*)mso_sptTextRingInsideCalc, sizeof( mso_sptTextRingInsideCalc ) / sizeof( SvxMSDffCalculationData ),
+ (sal_Int32*)mso_sptDefault13500,
+ (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
+ 21600, 21600,
+ 0x80000000, 0x80000000,
+ NULL, 0,
+ (SvxMSDffHandle*)mso_sptTextRingInsideHandle, sizeof( mso_sptTextRingInsideHandle ) / sizeof( SvxMSDffHandle )
+};
//mso_sptTextRingOutside
//path = U 10800 ?f0 21600 ?f2 180 539 N U 10800 ?f1 21600 ?f2 180 539 N
static const SvxMSDffVertPair mso_sptTextRingOutsideVert[] =
@@ -8400,7 +8440,7 @@ const mso_CustomShape* GetCustomShapeContent( MSO_SPT eSpType )
case mso_sptTextTriangleInverted : pCustomShape = &msoTextTriangleInverted; break;
case mso_sptTextChevron : pCustomShape = &msoTextChevron; break;
case mso_sptTextChevronInverted : pCustomShape = &msoTextChevronInverted; break;
- case mso_sptTextRingInside : pCustomShape = &msoTextRingOutside; break; // SJ: TODO->the orientation of the ellipse needs to be changed
+ case mso_sptTextRingInside : pCustomShape = &msoTextRingInside; break; // SJ: TODO->the orientation of the ellipse needs to be changed
case mso_sptTextRingOutside : pCustomShape = &msoTextRingOutside; break;
case mso_sptTextFadeRight : pCustomShape = &msoTextFadeRight; break;
case mso_sptTextFadeLeft : pCustomShape = &msoTextFadeLeft; break;
commit e820522037ff95818b9a40dfd77671f84c714cd5
Author: Sun Ying <sunying at apache.org>
Date: Thu Aug 16 04:25:06 2012 +0000
Related: #120556# fix the "RingOutside" fontwork display incorrectly...
when open .ppt file
Reported by: Li Feng Wang
Patch by: Ying Sun
Review by: Jian Yuan Li
(cherry picked from commit 3473dbf606f525d95b898a08072259018eb4056f)
Conflicts:
svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
Change-Id: I356bf0b5af720765e8ca60ae79bd04e449ff6e18
diff --git a/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx b/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
index 2c3cdd7..3eb6308 100644
--- a/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+++ b/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
@@ -6439,15 +6439,21 @@ static const mso_CustomShape msoTextChevronInverted =
(SvxMSDffHandle*)mso_sptTextChevronInvertedHandle, SAL_N_ELEMENTS( mso_sptTextChevronInvertedHandle )
};
+//mso_sptTextRingOutside
+//path = U 10800 ?f0 21600 ?f2 180 539 N U 10800 ?f1 21600 ?f2 180 539 N
static const SvxMSDffVertPair mso_sptTextRingOutsideVert[] =
{
- { 10800, 0 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 },
- { 10800, 1 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 }
+ { 10800, 0 MSO_I }, { 21600, 2 MSO_I }, { 180, 539},//U
+ { 10800, 1 MSO_I }, { 21600, 2 MSO_I }, { 180, 539 }//U
+ //{ 10800, 0 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 },
+ //{ 10800, 1 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 }
};
static const SvxMSDffCalculationData mso_sptTextRingOutsideCalc[] = // adjustment1 : 6629 - 14971
{
{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
- { 0x8000, { 21600, 0, 0x400 } }
+ { 0x8000, { 21600, 0, 0x400 } },
+ { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, //$0
+ { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }//21600-$0
};
static const sal_uInt16 mso_sptTextRingOutsideSegm[] =
{
@@ -6456,7 +6462,7 @@ static const sal_uInt16 mso_sptTextRingOutsideSegm[] =
};
static const SvxMSDffHandle mso_sptTextRingOutsideHandle[] =
{
- { MSDFF_HANDLE_FLAGS_RANGE,
+ { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
10800, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 10800, 21600 }
};
static const mso_CustomShape msoTextRingOutside =
@@ -6464,7 +6470,7 @@ static const mso_CustomShape msoTextRingOutside =
(SvxMSDffVertPair*)mso_sptTextRingOutsideVert, SAL_N_ELEMENTS( mso_sptTextRingOutsideVert ),
(sal_uInt16*)mso_sptTextRingOutsideSegm, sizeof( mso_sptTextRingOutsideSegm ) >> 1,
(SvxMSDffCalculationData*)mso_sptTextRingOutsideCalc, SAL_N_ELEMENTS( mso_sptTextRingOutsideCalc ),
- (sal_Int32*)mso_sptDefault16200,
+ (sal_Int32*)mso_sptDefault13500,
(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, SAL_N_ELEMENTS( mso_sptFontWorkTextRect ),
21600, 21600,
MIN_INT32, MIN_INT32,
commit b4d1fd3cca027ceecc1230e35c15b5363a591906
Author: Lei De Bin <leidb at apache.org>
Date: Mon Sep 10 04:45:43 2012 +0000
Related: #i119549# fix Position of drawing obj incorrect
* when opening .doc in AOO, if the text direction of the whole document is vertical, the pos of the drawing obj will be wrong.
Reported by: Lou Qing le
Patch by: Chen Zuo Jun
Review by: Lei De Bin
(cherry picked from commit 5c413ad6d8c2b2e16c19ff007e5315b383b73eb5)
Conflicts:
sw/source/filter/ww8/ww8graf.cxx
Change-Id: I8cfa32974662f89406e1688be0b3dec22e9b7045
diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx
index 3aebdf5..3004bbb 100644
--- a/sw/source/filter/ww8/ww8graf.cxx
+++ b/sw/source/filter/ww8/ww8graf.cxx
@@ -2118,6 +2118,7 @@ RndStdIds SwWW8ImplReader::ProcessEscherAlign(SvxMSDffImportRec* pRecord,
OSL_ENSURE(pRecord || pFSPA, "give me something! to work with for anchoring");
if (!pRecord && !pFSPA)
return FLY_AT_PAGE;
+ sal_Bool bCurSectionVertical = maSectionManager.CurrentSectionIsVertical();
SvxMSDffImportRec aRecordFromFSPA;
if (!pRecord)
@@ -2159,7 +2160,8 @@ RndStdIds SwWW8ImplReader::ProcessEscherAlign(SvxMSDffImportRec* pRecord,
// is a hint that these values aren't set by the escher import - see
// method <SwMSDffManager::ProcessObj(..)>. Then, check if for each
// values, if it differs from the one in the FSPA.
- if ( *(pRecord->pXRelTo) == 2 && *(pRecord->pYRelTo) == 2 )
+
+ if ( *(pRecord->pXRelTo) == 2 && *(pRecord->pYRelTo) == 2 && !bCurSectionVertical)
{
// if <nYRelTo> differs from <FSPA.nby> overwrite <nYRelTo>
if ( pFSPA->nby != *(pRecord->pYRelTo) )
@@ -2289,11 +2291,6 @@ RndStdIds SwWW8ImplReader::ProcessEscherAlign(SvxMSDffImportRec* pRecord,
eHoriRel = text::RelOrientation::PAGE_PRINT_AREA;
}
- SwFmtHoriOrient aHoriOri(MakeSafePositioningValue(pFSPA->nXaLeft),
- eHoriOri, eHoriRel);
- if( 4 <= nXAlign )
- aHoriOri.SetPosToggle(true);
- rFlySet.Put( aHoriOri );
//Writer honours this wrap distance when aligned as "left" or "right",
//Word doesn't. Writer doesn't honour it when its "from left".
@@ -2303,7 +2300,10 @@ RndStdIds SwWW8ImplReader::ProcessEscherAlign(SvxMSDffImportRec* pRecord,
pRecord->nDxWrapDistRight=0;
sal_Int16 eVertRel;
+
eVertRel = aVertRelOriTab[ nYRelTo ]; // #i18732#
+ if ( bCurSectionVertical && nYRelTo == 2 )
+ eVertRel = text::RelOrientation::PAGE_PRINT_AREA;
// #i22673# - fill <eVertOri> in dependence of <eVertRel>
sal_Int16 eVertOri;
if ( eVertRel == text::RelOrientation::TEXT_LINE )
@@ -2322,8 +2322,16 @@ RndStdIds SwWW8ImplReader::ProcessEscherAlign(SvxMSDffImportRec* pRecord,
if ((eVertRel == text::RelOrientation::TEXT_LINE) && (eVertOri == text::VertOrientation::NONE))
nYPos = -nYPos;
- rFlySet.Put(SwFmtVertOrient(MakeSafePositioningValue(nYPos),
- eVertOri, eVertRel));
+ SwFmtHoriOrient aHoriOri(MakeSafePositioningValue( bCurSectionVertical ? nYPos : pFSPA->nXaLeft ),
+ bCurSectionVertical ? eVertOri : eHoriOri,
+ bCurSectionVertical ? eVertRel : eHoriRel);
+ if( 4 <= nXAlign )
+ aHoriOri.SetPosToggle(true);
+ rFlySet.Put( aHoriOri );
+
+ rFlySet.Put(SwFmtVertOrient(MakeSafePositioningValue( !bCurSectionVertical ? nYPos : -pFSPA->nXaRight ),
+ !bCurSectionVertical ? eVertOri : eHoriOri,
+ !bCurSectionVertical ? eVertRel : eHoriRel ));
}
return eAnchor;
More information about the Libreoffice-commits
mailing list