[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-4.1' - 2 commits - editeng/source include/editeng oox/source sd/source svx/source

Julien Nabet serval2412 at yahoo.fr
Tue Feb 4 04:06:37 PST 2014


 editeng/source/editeng/editattr.cxx                     |   17 +++++++++++++++-
 editeng/source/editeng/editattr.hxx                     |   12 +++++++++++
 editeng/source/editeng/editdoc.cxx                      |    9 ++++++++
 editeng/source/editeng/editeng.cxx                      |    2 +
 editeng/source/editeng/eerdll.cxx                       |   12 ++++++-----
 editeng/source/uno/unofdesc.cxx                         |    1 
 editeng/source/uno/unotext.cxx                          |    2 -
 include/editeng/eeitem.hxx                              |   17 ++++++++--------
 include/editeng/eeitemid.hxx                            |    2 -
 include/editeng/unoprnms.hxx                            |    1 
 include/editeng/unotext.hxx                             |    1 
 oox/source/drawingml/textcharacterpropertiescontext.cxx |    2 +
 sd/source/core/drawdoc4.cxx                             |    2 +
 sd/source/core/stlpool.cxx                              |    5 ++++
 sd/source/ui/view/drtxtob1.cxx                          |    7 ++++++
 svx/source/svdraw/svdotextdecomposition.cxx             |    5 ++--
 svx/source/tbxctrls/tbcontrl.cxx                        |    6 +++++
 svx/source/unodraw/unoprov.cxx                          |    1 
 18 files changed, 86 insertions(+), 18 deletions(-)

New commits:
commit 68f80e00f8dbe1d2617c8ab2a4066d70424f4bcd
Author: Julien Nabet <serval2412 at yahoo.fr>
Date:   Tue Jan 28 22:05:50 2014 +0100

    Following cp#1000025
    
    Change-Id: I7d005fdd67e479852e9869332d3976b4a7095c29

diff --git a/editeng/source/editeng/eerdll.cxx b/editeng/source/editeng/eerdll.cxx
index 10bcb76..d51d370 100644
--- a/editeng/source/editeng/eerdll.cxx
+++ b/editeng/source/editeng/eerdll.cxx
@@ -160,7 +160,7 @@ SfxPoolItem** GlobalEditData::GetDefItems()
         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!" );
+        DBG_ASSERT( EDITITEMCOUNT == 53, "ITEMCOUNT geaendert, DefItems nicht angepasst!" );
 
         // Init DefFonts:
         GetDefaultFonts( *(SvxFontItem*)ppDefItems[EE_CHAR_FONTINFO - EE_ITEMS_START],
commit f8dd856e99a9aab2d22b0436b5876d3426be4c7d
Author: Muthu Subramanian <sumuthu at collabora.com>
Date:   Tue Feb 4 17:41:22 2014 +0530

    cp#1000025: Import casemaps from pptx.
    
    (Ported from: 887bc4dd3e62fe6dd19dc9d1c3ba273a5b21b5ec)
    
    Change-Id: Ia6edae11f491f3b7432052efeca71916c7c999d4

diff --git a/editeng/source/editeng/editattr.cxx b/editeng/source/editeng/editattr.cxx
index de847d6..b437e9b 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"
 
@@ -185,7 +186,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* )
@@ -194,6 +195,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 5d8eb3b..0c9bd7b 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 65de34a3..9d7bc47 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>
@@ -216,6 +217,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
@@ -368,6 +370,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 );
@@ -1938,6 +1945,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 1edc5ae..50f3dcb 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>
@@ -2764,6 +2765,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 704573a..10bcb76 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 b131586..8042663 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 b319921..14fe408 100644
--- a/editeng/source/uno/unotext.cxx
+++ b/editeng/source/uno/unotext.cxx
@@ -950,7 +950,7 @@ beans::PropertyState SAL_CALL SvxUnoTextRangeBase::getPropertyState( const OUStr
 }
 
 static 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)
diff --git a/include/editeng/eeitem.hxx b/include/editeng/eeitem.hxx
index 04ce68c..8d22e44 100644
--- a/include/editeng/eeitem.hxx
+++ b/include/editeng/eeitem.hxx
@@ -78,17 +78,18 @@
 #define EE_CHAR_RUBI_DUMMY          (EE_ITEMS_START+45)
 #define EE_CHAR_XMLATTRIBS          (EE_ITEMS_START+46)
 #define EE_CHAR_OVERLINE            (EE_ITEMS_START+47)
-#define EE_CHAR_END                 (EE_ITEMS_START+47)
+#define EE_CHAR_CASEMAP             (EE_ITEMS_START+48)
+#define EE_CHAR_END                 (EE_ITEMS_START+48)
 
 
-#define EE_FEATURE_START            (EE_ITEMS_START+48)
-#define EE_FEATURE_TAB              (EE_ITEMS_START+48)
-#define EE_FEATURE_LINEBR           (EE_ITEMS_START+49)
-#define EE_FEATURE_NOTCONV          (EE_ITEMS_START+50)
-#define EE_FEATURE_FIELD            (EE_ITEMS_START+51)
-#define EE_FEATURE_END              (EE_ITEMS_START+51)
+#define EE_FEATURE_START            (EE_ITEMS_START+49)
+#define EE_FEATURE_TAB              (EE_ITEMS_START+49)
+#define EE_FEATURE_LINEBR           (EE_ITEMS_START+50)
+#define EE_FEATURE_NOTCONV          (EE_ITEMS_START+51)
+#define EE_FEATURE_FIELD            (EE_ITEMS_START+52)
+#define EE_FEATURE_END              (EE_ITEMS_START+52)
 
-#define EE_ITEMS_END                (EE_ITEMS_START+51)
+#define EE_ITEMS_END                (EE_ITEMS_START+52)
 
 #define EDITITEMCOUNT ( EE_ITEMS_END - EE_ITEMS_START + 1 )
 
diff --git a/include/editeng/eeitemid.hxx b/include/editeng/eeitemid.hxx
index 8230387..5870c96 100644
--- a/include/editeng/eeitemid.hxx
+++ b/include/editeng/eeitemid.hxx
@@ -86,7 +86,7 @@
 #define ITEMID_WORDLINEMODE     EE_CHAR_WLM
 #define ITEMID_PROPSIZE         0
 #define ITEMID_CHARSETCOLOR     0   // EE_FEATURE_NOTCONV
-#define ITEMID_CASEMAP          0
+#define ITEMID_CASEMAP          EE_CHAR_CASEMAP
 #define ITEMID_LANGUAGE         0
 #define ITEMID_ESCAPEMENT       EE_CHAR_ESCAPEMENT
 #define ITEMID_NOLINEBREAK      0
diff --git a/include/editeng/unoprnms.hxx b/include/editeng/unoprnms.hxx
index 38ba3bd..c8c1e99 100644
--- a/include/editeng/unoprnms.hxx
+++ b/include/editeng/unoprnms.hxx
@@ -328,6 +328,7 @@
 #define UNO_NAME_EDIT_CHAR_COLOR                "CharColor"
 #define UNO_NAME_EDIT_CHAR_CROSSEDOUT           "CharCrossedOut"
 #define UNO_NAME_EDIT_CHAR_STRIKEOUT            "CharStrikeout"
+#define UNO_NAME_EDIT_CHAR_CASEMAP              "CharCaseMap"
 #define UNO_NAME_EDIT_CHAR_ESCAPEMENT           "CharEscapement"
 #define UNO_NAME_EDIT_CHAR_FONTNAME             "CharFontName"
 #define UNO_NAME_EDIT_CHAR_SHADOWED             "CharShadowed"
diff --git a/include/editeng/unotext.hxx b/include/editeng/unotext.hxx
index 394079c..452104e 100644
--- a/include/editeng/unotext.hxx
+++ b/include/editeng/unotext.hxx
@@ -106,6 +106,7 @@ class SvxItemPropertySet;
     { MAP_CHAR_LEN("CharOverlineColor"),            EE_CHAR_OVERLINE,   &::getCppuType((const sal_Int32*)0),        0, MID_TL_COLOR }, \
     { MAP_CHAR_LEN("CharOverlineHasColor"),         EE_CHAR_OVERLINE,   &::getBooleanCppuType(),                    0, MID_TL_HASCOLOR } , \
     { MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_CROSSEDOUT),  EE_CHAR_STRIKEOUT,  &::getBooleanCppuType(),                    0, MID_CROSSED_OUT }, \
+    { MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_CASEMAP),     EE_CHAR_CASEMAP,    &::getCppuType((const sal_Int16*)0),        0, 0 }, \
     { MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_STRIKEOUT),   EE_CHAR_STRIKEOUT,  &::getCppuType((const sal_Int16*)0),        0, MID_CROSS_OUT}, \
     { MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_SHADOWED),    EE_CHAR_SHADOW,     &::getBooleanCppuType(),                    0, 0 }, \
     { MAP_CHAR_LEN("CharContoured"),                EE_CHAR_OUTLINE,    &::getBooleanCppuType(),                    0, 0 }, \
diff --git a/oox/source/drawingml/textcharacterpropertiescontext.cxx b/oox/source/drawingml/textcharacterpropertiescontext.cxx
index 8622558..19b54c6 100644
--- a/oox/source/drawingml/textcharacterpropertiescontext.cxx
+++ b/oox/source/drawingml/textcharacterpropertiescontext.cxx
@@ -57,6 +57,8 @@ TextCharacterPropertiesContext::TextCharacterPropertiesContext(
         mrTextCharacterProperties.moStrikeout = aAttribs.getToken( XML_strike );
     if ( aAttribs.hasAttribute( XML_baseline ) )
         mrTextCharacterProperties.moBaseline = aAttribs.getInteger( XML_baseline );
+    if( aAttribs.hasAttribute( XML_cap ) )
+        mrTextCharacterProperties.moCaseMap = aAttribs.getToken( XML_cap );
 
     if ( aAttribs.hasAttribute( XML_b ) )
         mrTextCharacterProperties.moBold = aAttribs.getBool( XML_b );
diff --git a/sd/source/core/drawdoc4.cxx b/sd/source/core/drawdoc4.cxx
index 040413c..33395ae 100644
--- a/sd/source/core/drawdoc4.cxx
+++ b/sd/source/core/drawdoc4.cxx
@@ -64,6 +64,7 @@
 #include <editeng/emphasismarkitem.hxx>
 #include <editeng/fontitem.hxx>
 #include <editeng/shdditem.hxx>
+#include <editeng/cmapitem.hxx>
 #include <svx/xbtmpit.hxx>
 #include <svx/xflhtit.hxx>
 #include <svx/xflgrit.hxx>
@@ -210,6 +211,7 @@ void SdDrawDocument::CreateLayoutTemplates()
     rISet.Put(SvxUnderlineItem(UNDERLINE_NONE, EE_CHAR_UNDERLINE));
     rISet.Put(SvxOverlineItem(UNDERLINE_NONE, EE_CHAR_OVERLINE));
     rISet.Put(SvxCrossedOutItem(STRIKEOUT_NONE, EE_CHAR_STRIKEOUT ));
+    rISet.Put(SvxCaseMapItem(SVX_CASEMAP_NOT_MAPPED, EE_CHAR_CASEMAP ));
     rISet.Put(SvxEmphasisMarkItem(EMPHASISMARK_NONE, EE_CHAR_EMPHASISMARK));
     rISet.Put(SvxCharReliefItem(RELIEF_NONE, EE_CHAR_RELIEF));
     rISet.Put(SvxColorItem(Color(COL_AUTO), EE_CHAR_COLOR ));
diff --git a/sd/source/core/stlpool.cxx b/sd/source/core/stlpool.cxx
index 488e6f5..9abf9ba 100644
--- a/sd/source/core/stlpool.cxx
+++ b/sd/source/core/stlpool.cxx
@@ -36,6 +36,7 @@
 #include <editeng/numitem.hxx>
 #include <editeng/brushitem.hxx>
 #include <editeng/editeng.hxx>
+#include <editeng/cmapitem.hxx>
 #include <svl/smplhint.hxx>
 #include <editeng/langitem.hxx>
 #include <editeng/charreliefitem.hxx>
@@ -233,6 +234,7 @@ void SdStyleSheetPool::CreateLayoutStyleSheets(const String& rLayoutName, sal_Bo
                 rSet.Put( SvxUnderlineItem(UNDERLINE_NONE, EE_CHAR_UNDERLINE ) );
                 rSet.Put( SvxOverlineItem(UNDERLINE_NONE, EE_CHAR_OVERLINE ) );
                 rSet.Put( SvxCrossedOutItem(STRIKEOUT_NONE, EE_CHAR_STRIKEOUT ) );
+                rSet.Put( SvxCaseMapItem(SVX_CASEMAP_NOT_MAPPED, EE_CHAR_CASEMAP ) );
                 rSet.Put( SvxShadowedItem(sal_False, EE_CHAR_SHADOW ) );
                 rSet.Put( SvxContourItem(sal_False, EE_CHAR_OUTLINE ) );
                 rSet.Put( SvxEmphasisMarkItem(EMPHASISMARK_NONE, EE_CHAR_EMPHASISMARK ) );
@@ -354,6 +356,7 @@ void SdStyleSheetPool::CreateLayoutStyleSheets(const String& rLayoutName, sal_Bo
         rTitleSet.Put(SvxUnderlineItem(UNDERLINE_NONE, EE_CHAR_UNDERLINE ));
         rTitleSet.Put(SvxOverlineItem(UNDERLINE_NONE, EE_CHAR_OVERLINE ));
         rTitleSet.Put(SvxCrossedOutItem(STRIKEOUT_NONE, EE_CHAR_STRIKEOUT ));
+        rTitleSet.Put(SvxCaseMapItem(SVX_CASEMAP_NOT_MAPPED, EE_CHAR_CASEMAP ));
         rTitleSet.Put(SvxShadowedItem(sal_False, EE_CHAR_SHADOW ));
         rTitleSet.Put(SvxContourItem(sal_False, EE_CHAR_OUTLINE ));
         rTitleSet.Put( SvxEmphasisMarkItem(EMPHASISMARK_NONE, EE_CHAR_EMPHASISMARK ) );
@@ -399,6 +402,7 @@ void SdStyleSheetPool::CreateLayoutStyleSheets(const String& rLayoutName, sal_Bo
         rSubtitleSet.Put(SvxUnderlineItem(UNDERLINE_NONE, EE_CHAR_UNDERLINE ));
         rSubtitleSet.Put(SvxOverlineItem(UNDERLINE_NONE, EE_CHAR_OVERLINE ));
         rSubtitleSet.Put(SvxCrossedOutItem(STRIKEOUT_NONE, EE_CHAR_STRIKEOUT ));
+        rSubtitleSet.Put(SvxCaseMapItem(SVX_CASEMAP_NOT_MAPPED, EE_CHAR_CASEMAP ));
         rSubtitleSet.Put(SvxShadowedItem(sal_False, EE_CHAR_SHADOW ));
         rSubtitleSet.Put(SvxContourItem(sal_False, EE_CHAR_OUTLINE ));
         rSubtitleSet.Put( SvxEmphasisMarkItem(EMPHASISMARK_NONE, EE_CHAR_EMPHASISMARK ) );
@@ -447,6 +451,7 @@ void SdStyleSheetPool::CreateLayoutStyleSheets(const String& rLayoutName, sal_Bo
         rNotesSet.Put( SvxUnderlineItem(UNDERLINE_NONE, EE_CHAR_UNDERLINE ) );
         rNotesSet.Put( SvxOverlineItem(UNDERLINE_NONE, EE_CHAR_OVERLINE ) );
         rNotesSet.Put( SvxCrossedOutItem(STRIKEOUT_NONE, EE_CHAR_STRIKEOUT ) );
+        rNotesSet.Put( SvxCaseMapItem(SVX_CASEMAP_NOT_MAPPED, EE_CHAR_CASEMAP ) );
         rNotesSet.Put( SvxShadowedItem(sal_False, EE_CHAR_SHADOW ) );
         rNotesSet.Put( SvxContourItem(sal_False, EE_CHAR_OUTLINE ) );
         rNotesSet.Put( SvxEmphasisMarkItem(EMPHASISMARK_NONE, EE_CHAR_EMPHASISMARK ) );
diff --git a/sd/source/ui/view/drtxtob1.cxx b/sd/source/ui/view/drtxtob1.cxx
index 6ad4cf1..0cba7c3 100644
--- a/sd/source/ui/view/drtxtob1.cxx
+++ b/sd/source/ui/view/drtxtob1.cxx
@@ -54,6 +54,7 @@
 #include <editeng/writingmodeitem.hxx>
 #include <editeng/frmdiritem.hxx>
 #include <svl/itemiter.hxx>
+#include <editeng/cmapitem.hxx>
 
 #include "app.hrc"
 
@@ -418,6 +419,12 @@ void TextObjectBar::Execute( SfxRequest &rReq )
                                         Get( EE_CHAR_SHADOW ) ).GetValue(), EE_CHAR_SHADOW ) );
                     }
                     break;
+                    case SID_ATTR_CHAR_CASEMAP:
+                    {
+                        aNewAttr.Put( SvxCaseMapItem( ( (const SvxCaseMapItem&) aEditAttr.
+                                        Get( EE_CHAR_CASEMAP ) ) ) );
+                    }
+                    break;
                     case SID_ATTR_CHAR_STRIKEOUT:
                     {
                         FontStrikeout eFSO = ( ( (const SvxCrossedOutItem&) aEditAttr.
diff --git a/svx/source/svdraw/svdotextdecomposition.cxx b/svx/source/svdraw/svdotextdecomposition.cxx
index 0d53e44..f66a336 100644
--- a/svx/source/svdraw/svdotextdecomposition.cxx
+++ b/svx/source/svdraw/svdotextdecomposition.cxx
@@ -176,6 +176,7 @@ namespace
     {
         if(rInfo.mrText.Len() && rInfo.mnTextLen)
         {
+            OUString caseMappedText = rInfo.mrFont.CalcCaseMap( rInfo.mrText );
             basegfx::B2DVector aFontScaling;
             drawinglayer::attribute::FontAttribute aFontAttribute(
                 drawinglayer::primitive2d::getFontAttributeFromVclFont(
@@ -327,7 +328,7 @@ namespace
 
                     // attributes for TextSimplePortionPrimitive2D
                     aNewTransform,
-                    rInfo.mrText,
+                    caseMappedText,
                     rInfo.mnTextStart,
                     rInfo.mnTextLen,
                     aDXArray,
@@ -354,7 +355,7 @@ namespace
                 // TextSimplePortionPrimitive2D is enough
                 pNewPrimitive = new drawinglayer::primitive2d::TextSimplePortionPrimitive2D(
                     aNewTransform,
-                    rInfo.mrText,
+                    caseMappedText,
                     rInfo.mnTextStart,
                     rInfo.mnTextLen,
                     aDXArray,
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 62f2ee2..0b7324f 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -73,6 +73,8 @@
 #include <editeng/shdditem.hxx>
 #include <editeng/udlnitem.hxx>
 #include <editeng/wghtitem.hxx>
+#include <editeng/svxfont.hxx>
+#include <editeng/cmapitem.hxx>
 #include "svx/drawitem.hxx"
 #include <svx/tbcontrl.hxx>
 #include "svx/dlgutil.hxx"
@@ -630,6 +632,10 @@ void SvxStyleBox_Impl::UserDraw( const UserDrawEvent& rUDEvt )
                 if ( pItem )
                     aFont.SetStrikeout( static_cast< const SvxCrossedOutItem* >( pItem )->GetStrikeout() );
 
+                pItem = aItemSet.GetItem( SID_ATTR_CHAR_CASEMAP );
+                if ( pItem )
+                    ((SvxFont &)aFont).SetCaseMap( static_cast< const SvxCaseMapItem* >( pItem )->GetCaseMap() );
+
                 pItem = aItemSet.GetItem( SID_ATTR_CHAR_EMPHASISMARK );
                 if ( pItem )
                     aFont.SetEmphasisMark( static_cast< const SvxEmphasisMarkItem* >( pItem )->GetEmphasisMark() );
diff --git a/svx/source/unodraw/unoprov.cxx b/svx/source/unodraw/unoprov.cxx
index 32ab65a..28b3077 100644
--- a/svx/source/unodraw/unoprov.cxx
+++ b/svx/source/unodraw/unoprov.cxx
@@ -605,6 +605,7 @@ SfxItemPropertyMapEntry* ImplGetSvxControlShapePropertyMap()
         { MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_WEIGHT),          0,  &::getCppuType((const float*)0),            0, 0 },
         { MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_UNDERLINE),       0,  &::getCppuType((const sal_Int16*)0),        0, 0 },
         { MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_STRIKEOUT),       0,  &::getCppuType((const sal_Int16*)0),        0, 0},
+        { MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_CASEMAP),         0,  &::getCppuType((const sal_Int16*)0),        0, 0 },
         { MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_COLOR),           0,  &::getCppuType((const sal_Int32*)0),        0, 0 },
         { MAP_CHAR_LEN("CharRelief"),                       0,  &::getCppuType((const sal_Int16*)0),        0, 0 },
         { MAP_CHAR_LEN("CharUnderlineColor"),               0,  &::getCppuType((const sal_Int32*)0),        0, 0 },


More information about the Libreoffice-commits mailing list