diff options
author | Muthu Subramanian <sumuthu@collabora.com> | 2014-01-27 16:23:44 +0530 |
---|---|---|
committer | Muthu Subramanian <sumuthu@collabora.com> | 2014-01-27 16:23:44 +0530 |
commit | 887bc4dd3e62fe6dd19dc9d1c3ba273a5b21b5ec (patch) | |
tree | f8bc90276eac21ba17922488a1e10b55e7fc05e5 /editeng | |
parent | 22bb611598ed792ba72202451317f4958f32f673 (diff) |
cp#1000025: Import casemaps from pptx.
Note: This only imports it and it may not be
even possible to export (even to othe formats).
Change-Id: I8e104f1bc3a95c42ac932b6ab58365dc113fb2e0
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/source/accessibility/AccessibleEditableTextPara.cxx | 1 | ||||
-rw-r--r-- | editeng/source/editeng/editattr.cxx | 17 | ||||
-rw-r--r-- | editeng/source/editeng/editattr.hxx | 12 | ||||
-rw-r--r-- | editeng/source/editeng/editdoc.cxx | 9 | ||||
-rw-r--r-- | editeng/source/editeng/editeng.cxx | 2 | ||||
-rw-r--r-- | editeng/source/editeng/eerdll.cxx | 10 | ||||
-rw-r--r-- | editeng/source/uno/unofdesc.cxx | 1 | ||||
-rw-r--r-- | editeng/source/uno/unotext.cxx | 2 |
8 files changed, 48 insertions, 6 deletions
diff --git a/editeng/source/accessibility/AccessibleEditableTextPara.cxx b/editeng/source/accessibility/AccessibleEditableTextPara.cxx index 75dce259e031..1cf13e023548 100644 --- a/editeng/source/accessibility/AccessibleEditableTextPara.cxx +++ b/editeng/source/accessibility/AccessibleEditableTextPara.cxx @@ -885,6 +885,7 @@ namespace accessibility STR("CharPosture"); STR("CharShadowed"); STR("CharStrikeout"); + STR("CharCaseMap"); STR("CharUnderline"); STR("CharUnderlineColor"); STR("CharWeight"); diff --git a/editeng/source/editeng/editattr.cxx b/editeng/source/editeng/editattr.cxx index 1014424c844d..d5e7e23f94bf 100644 --- a/editeng/source/editeng/editattr.cxx +++ b/editeng/source/editeng/editattr.cxx @@ -43,6 +43,7 @@ #include <editeng/emphasismarkitem.hxx> #include <editeng/charscaleitem.hxx> #include <editeng/charreliefitem.hxx> +#include <editeng/cmapitem.hxx> #include "editattr.hxx" @@ -182,7 +183,7 @@ void EditCharAttribFontWidth::SetFont( SvxFont& /*rFont*/, OutputDevice* ) EditCharAttribStrikeout::EditCharAttribStrikeout( const SvxCrossedOutItem& rAttr, sal_uInt16 _nStart, sal_uInt16 _nEnd ) : EditCharAttrib( rAttr, _nStart, _nEnd ) { - DBG_ASSERT( rAttr.Which() == EE_CHAR_STRIKEOUT, "Not a Size attribute!" ); + DBG_ASSERT( rAttr.Which() == EE_CHAR_STRIKEOUT, "Not a Strikeout attribute!" ); } void EditCharAttribStrikeout::SetFont( SvxFont& rFont, OutputDevice* ) @@ -191,6 +192,20 @@ void EditCharAttribStrikeout::SetFont( SvxFont& rFont, OutputDevice* ) } // ------------------------------------------------------------------------- +// class EditCharAttribCaseMap +// ------------------------------------------------------------------------- +EditCharAttribCaseMap::EditCharAttribCaseMap( const SvxCaseMapItem& rAttr, sal_uInt16 _nStart, sal_uInt16 _nEnd ) + : EditCharAttrib( rAttr, _nStart, _nEnd ) +{ + DBG_ASSERT( rAttr.Which() == EE_CHAR_CASEMAP, "Not a CaseMap Item!" ); +} + +void EditCharAttribCaseMap::SetFont( SvxFont& rFont, OutputDevice* ) +{ + rFont.SetCaseMap( ((const SvxCaseMapItem*)GetItem())->GetCaseMap() ); +} + +// ------------------------------------------------------------------------- // class EditCharAttribColor // ------------------------------------------------------------------------- EditCharAttribColor::EditCharAttribColor( const SvxColorItem& rAttr, sal_uInt16 _nStart, sal_uInt16 _nEnd ) diff --git a/editeng/source/editeng/editattr.hxx b/editeng/source/editeng/editattr.hxx index 4fb657c25b84..39174273c1d4 100644 --- a/editeng/source/editeng/editattr.hxx +++ b/editeng/source/editeng/editattr.hxx @@ -47,6 +47,7 @@ class SvxEmphasisMarkItem; class SvxCharReliefItem; class SfxVoidItem; class OutputDevice; +class SvxCaseMapItem; #define CH_FEATURE_OLD (sal_uInt8) 0xFF #define CH_FEATURE (sal_Unicode) 0x01 @@ -219,6 +220,17 @@ public: }; // ------------------------------------------------------------------------- +// class EditCharAttribCaseMap +// ------------------------------------------------------------------------- +class EditCharAttribCaseMap : public EditCharAttrib +{ +public: + EditCharAttribCaseMap( const SvxCaseMapItem& rAttr, sal_uInt16 nStart, sal_uInt16 nEnd ); + + virtual void SetFont( SvxFont& rFont, OutputDevice* pOutDev ); +}; + +// ------------------------------------------------------------------------- // class EditCharAttribUnderline // ------------------------------------------------------------------------- class EditCharAttribUnderline : public EditCharAttrib diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx index 1f9f35dd2933..7a0de12e8790 100644 --- a/editeng/source/editeng/editdoc.cxx +++ b/editeng/source/editeng/editdoc.cxx @@ -33,6 +33,7 @@ #include <editeng/wrlmitem.hxx> #include <editeng/wghtitem.hxx> #include <editeng/udlnitem.hxx> +#include <editeng/cmapitem.hxx> #include <editeng/contouritem.hxx> #include <editeng/escapementitem.hxx> #include <editeng/shdditem.hxx> @@ -211,6 +212,7 @@ const SfxItemInfo aItemInfos[EDITITEMCOUNT] = { { 0, SFX_ITEM_POOLABLE }, // EE_CHAR_RUBI_DUMMY { 0, SFX_ITEM_POOLABLE }, // EE_CHAR_XMLATTRIBS { SID_ATTR_CHAR_OVERLINE, SFX_ITEM_POOLABLE }, + { SID_ATTR_CHAR_CASEMAP, SFX_ITEM_POOLABLE }, // EE_CHAR_CASEMAP { 0, SFX_ITEM_POOLABLE }, // EE_FEATURE_TAB { 0, SFX_ITEM_POOLABLE }, // EE_FEATURE_LINEBR { SID_ATTR_CHAR_CHARSETCOLOR, SFX_ITEM_POOLABLE }, // EE_FEATURE_NOTCONV @@ -363,6 +365,11 @@ EditCharAttrib* MakeCharAttrib( SfxItemPool& rPool, const SfxPoolItem& rAttr, sa pNew = new EditCharAttrib( rNew, nS, nE ); // Attribute is only for holding XML information... } break; + case EE_CHAR_CASEMAP: + { + pNew = new EditCharAttribCaseMap( (const SvxCaseMapItem&)rNew, nS, nE ); + } + break; case EE_FEATURE_TAB: { pNew = new EditCharAttribTab( (const SfxVoidItem&)rNew, nS ); @@ -1945,6 +1952,8 @@ void CreateFont( SvxFont& rFont, const SfxItemSet& rSet, bool bSearchInParent, s rFont.SetOverline( ((const SvxOverlineItem&)rSet.Get( EE_CHAR_OVERLINE )).GetLineStyle() ); if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_STRIKEOUT ) == SFX_ITEM_ON ) ) rFont.SetStrikeout( ((const SvxCrossedOutItem&)rSet.Get( EE_CHAR_STRIKEOUT )).GetStrikeout() ); + if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_CASEMAP ) == SFX_ITEM_ON ) ) + rFont.SetCaseMap( ((const SvxCaseMapItem&)rSet.Get( EE_CHAR_CASEMAP )).GetCaseMap() ); if ( bSearchInParent || ( rSet.GetItemState( nWhich_Italic ) == SFX_ITEM_ON ) ) rFont.SetItalic( ((const SvxPostureItem&)rSet.Get( nWhich_Italic )).GetPosture() ); if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_OUTLINE ) == SFX_ITEM_ON ) ) diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx index 649a725603f4..e015bd9fe591 100644 --- a/editeng/source/editeng/editeng.cxx +++ b/editeng/source/editeng/editeng.cxx @@ -37,6 +37,7 @@ #include <editeng/acorrcfg.hxx> #include <editeng/flditem.hxx> #include <editeng/txtrange.hxx> +#include <editeng/cmapitem.hxx> #include <vcl/graph.hxx> #include <editeng/autokernitem.hxx> @@ -2607,6 +2608,7 @@ void EditEngine::SetFontInfoInItemSet( SfxItemSet& rSet, const SvxFont& rFont ) rSet.Put( SvxUnderlineItem( rFont.GetUnderline(), EE_CHAR_UNDERLINE ) ); rSet.Put( SvxOverlineItem( rFont.GetOverline(), EE_CHAR_OVERLINE ) ); rSet.Put( SvxCrossedOutItem( rFont.GetStrikeout(), EE_CHAR_STRIKEOUT ) ); + rSet.Put( SvxCaseMapItem( rFont.GetCaseMap(), EE_CHAR_CASEMAP ) ); rSet.Put( SvxPostureItem( rFont.GetItalic(), EE_CHAR_ITALIC ) ); rSet.Put( SvxContourItem( rFont.IsOutline(), EE_CHAR_OUTLINE ) ); rSet.Put( SvxAutoKernItem( rFont.IsKerning(), EE_CHAR_PAIRKERNING ) ); diff --git a/editeng/source/editeng/eerdll.cxx b/editeng/source/editeng/eerdll.cxx index 704573aaa1eb..10bcb7645eea 100644 --- a/editeng/source/editeng/eerdll.cxx +++ b/editeng/source/editeng/eerdll.cxx @@ -58,6 +58,7 @@ #include <editeng/wrlmitem.hxx> #include <editeng/numitem.hxx> #include <editeng/langitem.hxx> +#include <editeng/cmapitem.hxx> #include <editeng/charscaleitem.hxx> #include <editeng/charreliefitem.hxx> #include <editeng/frmdiritem.hxx> @@ -151,12 +152,13 @@ SfxPoolItem** GlobalEditData::GetDefItems() ppDefItems[45] = new SfxVoidItem( EE_CHAR_RUBI_DUMMY ); ppDefItems[46] = new SvXMLAttrContainerItem( EE_CHAR_XMLATTRIBS ); ppDefItems[47] = new SvxOverlineItem( UNDERLINE_NONE, EE_CHAR_OVERLINE ); + ppDefItems[48] = new SvxCaseMapItem( SVX_CASEMAP_NOT_MAPPED, EE_CHAR_CASEMAP ); // Features - ppDefItems[48] = new SfxVoidItem( EE_FEATURE_TAB ); - ppDefItems[49] = new SfxVoidItem( EE_FEATURE_LINEBR ); - ppDefItems[50] = new SvxCharSetColorItem( Color( COL_RED ), RTL_TEXTENCODING_DONTKNOW, EE_FEATURE_NOTCONV ); - ppDefItems[51] = new SvxFieldItem( SvxFieldData(), EE_FEATURE_FIELD ); + ppDefItems[49] = new SfxVoidItem( EE_FEATURE_TAB ); + ppDefItems[50] = new SfxVoidItem( EE_FEATURE_LINEBR ); + ppDefItems[51] = new SvxCharSetColorItem( Color( COL_RED ), RTL_TEXTENCODING_DONTKNOW, EE_FEATURE_NOTCONV ); + ppDefItems[52] = new SvxFieldItem( SvxFieldData(), EE_FEATURE_FIELD ); DBG_ASSERT( EDITITEMCOUNT == 52, "ITEMCOUNT geaendert, DefItems nicht angepasst!" ); diff --git a/editeng/source/uno/unofdesc.cxx b/editeng/source/uno/unofdesc.cxx index cd52e33e2157..0382d901ffc0 100644 --- a/editeng/source/uno/unofdesc.cxx +++ b/editeng/source/uno/unofdesc.cxx @@ -33,6 +33,7 @@ #include <svl/itempool.hxx> #include <editeng/unofdesc.hxx> +#include <editeng/svxfont.hxx> using namespace ::rtl; using namespace ::com::sun::star; diff --git a/editeng/source/uno/unotext.cxx b/editeng/source/uno/unotext.cxx index 93c46ae97b71..fa6a90fd975a 100644 --- a/editeng/source/uno/unotext.cxx +++ b/editeng/source/uno/unotext.cxx @@ -951,7 +951,7 @@ beans::PropertyState SAL_CALL SvxUnoTextRangeBase::getPropertyState( const OUStr } static const sal_uInt16 aSvxUnoFontDescriptorWhichMap[] = { EE_CHAR_FONTINFO, EE_CHAR_FONTHEIGHT, EE_CHAR_ITALIC, - EE_CHAR_UNDERLINE, EE_CHAR_WEIGHT, EE_CHAR_STRIKEOUT, + EE_CHAR_UNDERLINE, EE_CHAR_WEIGHT, EE_CHAR_STRIKEOUT, EE_CHAR_CASEMAP, EE_CHAR_WLM, 0 }; beans::PropertyState SAL_CALL SvxUnoTextRangeBase::_getPropertyState(const SfxItemPropertySimpleEntry* pMap, sal_Int32 nPara) |