summaryrefslogtreecommitdiff
path: root/sw/source/ui
diff options
context:
space:
mode:
authorZolnai Tamás <zolnaitamas2000@gmail.com>2013-08-21 21:30:41 +0200
committerZolnai Tamás <zolnaitamas2000@gmail.com>2013-08-23 21:01:37 +0200
commitf8b6c3949e2c1f23549a2ef879e728cdb7149235 (patch)
tree256fc0266b2f32d3cc2c868f26c954c8ecc21a04 /sw/source/ui
parent9509a46683e40fc2feea6631b701b766797b7882 (diff)
CharBrd 7: Border shadow
1, New character attribute - Add the three shadow members to font (width, color, location) 2, Painting - Extract the shadow painting to a local function and use that for character shadow (paintfrm.cxx) - Reduce the painting rectangle of background (shadow doesn't inherites the background of content) 3, Border merge - Use text portion join members to skip shadow when neccessary. 4, Vertical text - Get shadow space dependant from oritentation and border merge. 5, UNO API and ODF filter Paragraph: ParaShadowFormat -> Character: CharShadowFormat Change-Id: Ief4669990d238016c3ffc18a2609a3df7d9dddbf
Diffstat (limited to 'sw/source/ui')
-rw-r--r--sw/source/ui/shells/textsh1.cxx1
-rw-r--r--sw/source/ui/utlui/uitool.cxx36
2 files changed, 29 insertions, 8 deletions
diff --git a/sw/source/ui/shells/textsh1.cxx b/sw/source/ui/shells/textsh1.cxx
index 52ada496a142..490f0e9fa8a0 100644
--- a/sw/source/ui/shells/textsh1.cxx
+++ b/sw/source/ui/shells/textsh1.cxx
@@ -140,6 +140,7 @@ void sw_CharDialog( SwWrtShell &rWrtSh, bool bUseDialog, sal_uInt16 nSlot,const
RES_TXTATR_INETFMT, RES_TXTATR_INETFMT,
RES_BACKGROUND, RES_BACKGROUND,
RES_BOX, RES_BOX,
+ RES_SHADOW, RES_SHADOW,
SID_ATTR_BORDER_INNER, SID_ATTR_BORDER_INNER,
FN_PARAM_SELECTION, FN_PARAM_SELECTION,
SID_HTML_MODE, SID_HTML_MODE,
diff --git a/sw/source/ui/utlui/uitool.cxx b/sw/source/ui/utlui/uitool.cxx
index 862a9544a442..455e738cc9e4 100644
--- a/sw/source/ui/utlui/uitool.cxx
+++ b/sw/source/ui/utlui/uitool.cxx
@@ -32,6 +32,7 @@
#include <editeng/pmdlitem.hxx>
#include <editeng/tstpitem.hxx>
#include <editeng/boxitem.hxx>
+#include <editeng/shaditem.hxx>
#include <editeng/sizeitem.hxx>
#include <editeng/brushitem.hxx>
#include <svx/pageitem.hxx>
@@ -133,18 +134,28 @@ void ConvertAttrCharToGen(SfxItemSet& rSet, sal_uInt8 nMode)
rSet.ClearItem(RES_BACKGROUND);
}
- // Border
if( nMode == CONV_ATTR_STD )
{
- const SfxPoolItem *pTmpBox;
- if( SFX_ITEM_SET == rSet.GetItemState( RES_CHRATR_BOX, sal_True, &pTmpBox ) )
+ // Border
+ const SfxPoolItem *pTmpItem;
+ if( SFX_ITEM_SET == rSet.GetItemState( RES_CHRATR_BOX, sal_True, &pTmpItem ) )
{
- SvxBoxItem aTmpBox( *((SvxBoxItem*)pTmpBox) );
+ SvxBoxItem aTmpBox( *((SvxBoxItem*)pTmpItem) );
aTmpBox.SetWhich( RES_BOX );
rSet.Put( aTmpBox );
}
else
rSet.ClearItem(RES_BOX);
+
+ // Border shadow
+ if( SFX_ITEM_SET == rSet.GetItemState( RES_CHRATR_SHADOW, sal_False, &pTmpItem ) )
+ {
+ SvxShadowItem aTmpShadow( *((SvxShadowItem*)pTmpItem) );
+ aTmpShadow.SetWhich( RES_SHADOW );
+ rSet.Put( aTmpShadow );
+ }
+ else
+ rSet.ClearItem( RES_SHADOW );
}
}
@@ -162,17 +173,26 @@ void ConvertAttrGenToChar(SfxItemSet& rSet, sal_uInt8 nMode)
rSet.ClearItem( RES_BACKGROUND );
}
- // Border
if( nMode == CONV_ATTR_STD )
{
- const SfxPoolItem *pTmpBox;
- if( SFX_ITEM_SET == rSet.GetItemState( RES_BOX, sal_False, &pTmpBox ) )
+ // Border
+ const SfxPoolItem *pTmpItem;
+ if( SFX_ITEM_SET == rSet.GetItemState( RES_BOX, sal_False, &pTmpItem ) )
{
- SvxBoxItem aTmpBox( *((SvxBoxItem*)pTmpBox) );
+ SvxBoxItem aTmpBox( *((SvxBoxItem*)pTmpItem) );
aTmpBox.SetWhich( RES_CHRATR_BOX );
rSet.Put( aTmpBox );
}
rSet.ClearItem( RES_BOX );
+
+ // Border shadow
+ if( SFX_ITEM_SET == rSet.GetItemState( RES_SHADOW, sal_False, &pTmpItem ) )
+ {
+ SvxShadowItem aTmpShadow( *((SvxShadowItem*)pTmpItem) );
+ aTmpShadow.SetWhich( RES_CHRATR_SHADOW );
+ rSet.Put( aTmpShadow );
+ }
+ rSet.ClearItem( RES_SHADOW );
}
}