Lines 1774-1793
Link Here
|
1774 |
|
1774 |
|
1775 |
const SfxItemSet& rOldSet = pSdrObj->GetItemSet(); |
1775 |
const SfxItemSet& rOldSet = pSdrObj->GetItemSet(); |
1776 |
|
1776 |
|
1777 |
// einige Items koennen direkt so uebernommen werden |
1777 |
/* |
1778 |
const USHORT nDirectMatch = 2; |
1778 |
#i3958#, basically a winword bug here, in inline mode the left and right |
1779 |
static RES_FRMATR __READONLY_DATA aDirectMatch[ nDirectMatch ] = |
1779 |
spacing are ignored, (shown grayed out in word) |
1780 |
{ |
1780 |
*/ |
1781 |
RES_LR_SPACE, // Aussenabstand links/rechts: SvxLRSpaceItem |
1781 |
if (!IsInlineEscherHack()) |
1782 |
RES_UL_SPACE // Aussenabstand Oben/unten: SvxULSpaceItem |
1782 |
{ |
1783 |
}; |
1783 |
// einige Items koennen direkt so uebernommen werden |
1784 |
const SfxPoolItem* pPoolItem; |
1784 |
const USHORT nDirectMatch = 2; |
1785 |
for(USHORT nItem = 0; nItem < nDirectMatch; ++nItem) |
1785 |
static RES_FRMATR __READONLY_DATA aDirectMatch[ nDirectMatch ] = |
1786 |
if( SFX_ITEM_SET == rOldSet.GetItemState( aDirectMatch[ nItem ], false, |
1786 |
{ |
1787 |
&pPoolItem) ) |
1787 |
RES_LR_SPACE, // Aussenabstand links/rechts: SvxLRSpaceItem |
1788 |
{ |
1788 |
RES_UL_SPACE // Aussenabstand Oben/unten: SvxULSpaceItem |
1789 |
rFlySet.Put( *pPoolItem ); |
1789 |
}; |
1790 |
} |
1790 |
const SfxPoolItem* pPoolItem; |
|
|
1791 |
for (USHORT nItem = 0; nItem < nDirectMatch; ++nItem) |
1792 |
{ |
1793 |
if (SFX_ITEM_SET == rOldSet.GetItemState(aDirectMatch[nItem], false, |
1794 |
&pPoolItem) ) |
1795 |
{ |
1796 |
rFlySet.Put(*pPoolItem); |
1797 |
} |
1798 |
} |
1799 |
} |
1791 |
|
1800 |
|
1792 |
|
1801 |
|
1793 |
// jetzt die Umrandung berechnen und die Box bauen: Das Mass wird fuer die |
1802 |
// jetzt die Umrandung berechnen und die Box bauen: Das Mass wird fuer die |
Lines 1878-1885
Link Here
|
1878 |
|
1887 |
|
1879 |
//Sadly word puts escher borders outside the graphic, but orients the |
1888 |
//Sadly word puts escher borders outside the graphic, but orients the |
1880 |
//graphic in relation to the top left inside the border. We don't |
1889 |
//graphic in relation to the top left inside the border. We don't |
1881 |
if (nOutside) |
1890 |
//Only relevent in the (normal) case of not being inside a shape field |
1882 |
{ |
1891 |
if (nOutside && !IsInlineEscherHack()) |
|
|
1892 |
{ |
1883 |
SwFmtHoriOrient aHori = (const SwFmtHoriOrient &)(rFlySet.Get( |
1893 |
SwFmtHoriOrient aHori = (const SwFmtHoriOrient &)(rFlySet.Get( |
1884 |
RES_HORI_ORIENT)); |
1894 |
RES_HORI_ORIENT)); |
1885 |
aHori.SetPos(aHori.GetPos()-nOutside); |
1895 |
aHori.SetPos(aHori.GetPos()-nOutside); |
Lines 2612-2625
Link Here
|
2612 |
pF->nby = WW8_FSPA::RelPageBorder; |
2622 |
pF->nby = WW8_FSPA::RelPageBorder; |
2613 |
} |
2623 |
} |
2614 |
|
2624 |
|
2615 |
if (pF->nby != WW8_FSPA::RelText) |
2625 |
RndStdIds eAnchor; |
2616 |
{ |
2626 |
/* |
2617 |
if (bIsHeader || bIsFooter) |
2627 |
#i3958# |
2618 |
pNode_FLY_AT_CNTNT = &pPaM->GetPoint()->nNode.GetNode(); |
2628 |
If we are in a shape field, then we are to be anchored as character |
2619 |
} |
2629 |
and ignore the actual anchoring information. Word also vertically |
|
|
2630 |
aligns the inline Escher object to the base of the line so need to |
2631 |
override the default setting. |
2632 |
*/ |
2633 |
if (IsInlineEscherHack()) |
2634 |
{ |
2635 |
eAnchor = FLY_IN_CNTNT; |
2636 |
SwFmtAnchor aAnchor(eAnchor); |
2637 |
aAnchor.SetAnchor(pPaM->GetPoint()); |
2638 |
aFlySet.Put(aAnchor); |
2639 |
aFlySet.Put(SwFmtVertOrient(0, VERT_TOP, PRTAREA)); |
2640 |
} |
2641 |
else |
2642 |
{ |
2643 |
if (pF->nby != WW8_FSPA::RelText) |
2644 |
{ |
2645 |
if (bIsHeader || bIsFooter) |
2646 |
pNode_FLY_AT_CNTNT = &pPaM->GetPoint()->nNode.GetNode(); |
2647 |
} |
2620 |
|
2648 |
|
2621 |
RndStdIds eAnchor = ProcessEscherAlign(pRecord, pF, aFlySet, |
2649 |
eAnchor = ProcessEscherAlign(pRecord, pF, aFlySet, |
2622 |
bReplaceable); |
2650 |
bReplaceable); |
|
|
2651 |
} |
2623 |
|
2652 |
|
2624 |
// Should we, and is it possible to make this into a writer textbox |
2653 |
// Should we, and is it possible to make this into a writer textbox |
2625 |
if ((!(nIniFlags1 & WW8FL_NO_FLY_FOR_TXBX)) && pRecord->bReplaceByFly) |
2654 |
if ((!(nIniFlags1 & WW8FL_NO_FLY_FOR_TXBX)) && pRecord->bReplaceByFly) |
Lines 2694-2700
Link Here
|
2694 |
} |
2723 |
} |
2695 |
} |
2724 |
} |
2696 |
|
2725 |
|
2697 |
MatchWrapDistancesIntoFlyFmt(pRecord, pRetFrmFmt); |
2726 |
/* |
|
|
2727 |
#i3958#, basically a winword bug here, in inline mode the left and right |
2728 |
spacing are ignored, (shown grayed out in word) |
2729 |
*/ |
2730 |
if (!IsInlineEscherHack()) |
2731 |
MatchWrapDistancesIntoFlyFmt(pRecord, pRetFrmFmt); |
2698 |
return AddAutoAnchor(pRetFrmFmt); |
2732 |
return AddAutoAnchor(pRetFrmFmt); |
2699 |
} |
2733 |
} |
2700 |
|
2734 |
|