You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by al...@apache.org on 2014/04/17 18:44:59 UTC

svn commit: r1588308 - in /openoffice/trunk/main: officecfg/registry/data/org/openoffice/Office/UI/ sw/sdi/ sw/source/core/attr/ sw/source/core/layout/ sw/source/core/unocore/ sw/source/ui/frmdlg/ sw/source/ui/shells/ xmloff/inc/xmloff/ xmloff/source/d...

Author: alg
Date: Thu Apr 17 16:44:58 2014
New Revision: 1588308

URL: http://svn.apache.org/r1588308
Log:
i124638 support for DrawingLayre FillStyle for GraphicFrames and EmbeddedObjectFrames in Writer

Modified:
    openoffice/trunk/main/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
    openoffice/trunk/main/sw/sdi/_frmsh.sdi
    openoffice/trunk/main/sw/source/core/attr/format.cxx
    openoffice/trunk/main/sw/source/core/layout/paintfrm.cxx
    openoffice/trunk/main/sw/source/core/unocore/unobrushitemhelper.cxx
    openoffice/trunk/main/sw/source/core/unocore/unoframe.cxx
    openoffice/trunk/main/sw/source/core/unocore/unomap.cxx
    openoffice/trunk/main/sw/source/core/unocore/unostyle.cxx
    openoffice/trunk/main/sw/source/ui/frmdlg/frmpage.src
    openoffice/trunk/main/sw/source/ui/shells/frmsh.cxx
    openoffice/trunk/main/sw/source/ui/shells/grfsh.cxx
    openoffice/trunk/main/xmloff/inc/xmloff/XMLShapeStyleContext.hxx
    openoffice/trunk/main/xmloff/source/draw/XMLShapeStyleContext.cxx

Modified: openoffice/trunk/main/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu?rev=1588308&r1=1588307&r2=1588308&view=diff
==============================================================================
--- openoffice/trunk/main/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu (original)
+++ openoffice/trunk/main/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu Thu Apr 17 16:44:58 2014
@@ -348,9 +348,12 @@
             Calc,           OLE,        hidden  ;
             DrawImpress,    3DObject,   visible ;
             DrawImpress,    Draw,       visible ;
+            DrawImpress,    Graphic,    hidden  ;
             DrawImpress,    TextObject, hidden  ;
             DrawImpress,    OLE,        hidden  ;
             WriterVariants, Draw,       visible ;
+            Writer,         Graphic,    hidden  ;
+            Writer,         OLE,        hidden  ;
             Writer,         Frame,      visible ;
           </value>
         </prop>

Modified: openoffice/trunk/main/sw/sdi/_frmsh.sdi
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/sdi/_frmsh.sdi?rev=1588308&r1=1588307&r2=1588308&view=diff
==============================================================================
--- openoffice/trunk/main/sw/sdi/_frmsh.sdi (original)
+++ openoffice/trunk/main/sw/sdi/_frmsh.sdi Thu Apr 17 16:44:58 2014
@@ -26,6 +26,7 @@ interface BaseTextFrame
 	Automation = FALSE;
 ]
 {
+    //UUUU
     SID_ATTR_FILL_STYLE
     [
         Export = FALSE;
@@ -34,6 +35,7 @@ interface BaseTextFrame
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
 
+    //UUUU
     SID_ATTR_FILL_COLOR
     [
         Export = FALSE;
@@ -42,6 +44,7 @@ interface BaseTextFrame
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
 
+    //UUUU
     SID_ATTR_FILL_GRADIENT
     [
         Export = FALSE;
@@ -50,6 +53,7 @@ interface BaseTextFrame
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
 
+    //UUUU
     SID_ATTR_FILL_HATCH
     [
         Export = FALSE;
@@ -58,6 +62,7 @@ interface BaseTextFrame
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
 
+    //UUUU
     SID_ATTR_FILL_BITMAP
     [
         Export = FALSE;
@@ -66,6 +71,7 @@ interface BaseTextFrame
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
 
+    //UUUU
     SID_ATTR_FILL_TRANSPARENCE
     [
         Export = FALSE;
@@ -74,6 +80,7 @@ interface BaseTextFrame
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
 
+    //UUUU
     SID_ATTR_FILL_FLOATTRANSPARENCE
     [
         Export = FALSE;
@@ -82,26 +89,31 @@ interface BaseTextFrame
         DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR";
     ]
 
+    //UUUU
     SID_COLOR_TABLE
     [
         StateMethod = GetDrawAttrStateTextFrame;
     ]
 
+    //UUUU
     SID_GRADIENT_LIST
     [
         StateMethod = GetDrawAttrStateTextFrame;
     ]
     
+    //UUUU
     SID_HATCH_LIST
     [
         StateMethod = GetDrawAttrStateTextFrame;
     ]
     
+    //UUUU
     SID_BITMAP_LIST
     [
         StateMethod = GetDrawAttrStateTextFrame;
     ]
 
+    //UUUU
     SID_ATTRIBUTES_AREA
     [
         ExecMethod = ExecDrawDlgTextFrame;

Modified: openoffice/trunk/main/sw/source/core/attr/format.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/core/attr/format.cxx?rev=1588308&r1=1588307&r2=1588308&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/core/attr/format.cxx (original)
+++ openoffice/trunk/main/sw/source/core/attr/format.cxx Thu Apr 17 16:44:58 2014
@@ -586,16 +586,27 @@ sal_Bool SwFmt::SetFmtAttr( const SfxIte
 
 	sal_Bool bRet = sal_False;
 
+    //UUUU Usel local copy to be able to apply needed changes, e.g. call
+    // CheckForUniqueItemForLineFillNameOrIndex which is needed for NameOrIndex stuff
+    SfxItemSet aTempSet(rSet);
+
+    //UUUU Need to check for unique item for DrawingLayer items of type NameOrIndex
+    // and evtl. correct that item to ensure unique names for that type. This call may
+    // modify/correct entries inside of the given SfxItemSet
+    if(GetDoc())
+    {
+        GetDoc()->CheckForUniqueItemForLineFillNameOrIndex(aTempSet);
+    }
+
     //UUUU
     if(RES_FLYFRMFMT == Which())
     {
         const SfxPoolItem* pSource = 0;
 
-        if(SFX_ITEM_SET == rSet.GetItemState(RES_BACKGROUND, sal_False, &pSource))
+        if(SFX_ITEM_SET == aTempSet.GetItemState(RES_BACKGROUND, sal_False, &pSource))
         {
             //UUUU FALLBACKBREAKHERE should not be used; instead use [XATTR_FILL_FIRST .. XATTR_FILL_LAST]
             OSL_ENSURE(false, "Do no longer use SvxBrushItem, instead use [XATTR_FILL_FIRST .. XATTR_FILL_LAST] FillAttributes (simple fallback is in place and used)");
-            SfxItemSet aTempSet(rSet);
 
             // copy all items to be set anyways to a local ItemSet with is also prepared for the new
             // fill attribute ranges [XATTR_FILL_FIRST .. XATTR_FILL_LAST]. Add the attributes 
@@ -639,7 +650,7 @@ sal_Bool SwFmt::SetFmtAttr( const SfxIte
            ( RES_GRFFMTCOLL == nFmtWhich ||
              RES_TXTFMTCOLL == nFmtWhich ) ) )
 	{
-		if( 0 != ( bRet = (0 != aSet.Put( rSet ))) )
+		if( 0 != ( bRet = (0 != aSet.Put( aTempSet ))) )
 			aSet.SetModifyAtAttr( this );
         // --> OD 2006-11-22 #i71574#
         if ( nFmtWhich == RES_TXTFMTCOLL )
@@ -652,7 +663,7 @@ sal_Bool SwFmt::SetFmtAttr( const SfxIte
 	{
 		SwAttrSet aOld( *aSet.GetPool(), aSet.GetRanges() ),
 					aNew( *aSet.GetPool(), aSet.GetRanges() );
-		bRet = 0 != aSet.Put_BC( rSet, &aOld, &aNew );
+		bRet = 0 != aSet.Put_BC( aTempSet, &aOld, &aNew );
 		if( bRet )
 		{
 			// einige Sonderbehandlungen fuer Attribute

Modified: openoffice/trunk/main/sw/source/core/layout/paintfrm.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/core/layout/paintfrm.cxx?rev=1588308&r1=1588307&r2=1588308&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/core/layout/paintfrm.cxx (original)
+++ openoffice/trunk/main/sw/source/core/layout/paintfrm.cxx Thu Apr 17 16:44:58 2014
@@ -3668,9 +3668,10 @@ void SwFlyFrm::Paint(SwRect const& rRect
                 //UUUU check for transparency
                 const FillAttributesPtr aFillAttributes(pSwFrmFmt->getFillAttributes());
 
-                if(aFillAttributes.get())
+                // check if the new fill attributes are used
+                if(aFillAttributes.get() && aFillAttributes->isUsed())
                 {
-                    bPaintCompleteBack = aFillAttributes->isTransparent();
+                    bPaintCompleteBack = true;
                 }
             }
             else
@@ -4122,7 +4123,7 @@ void SwFrm::PaintShadow( const SwRect& r
 
 void SwFrm::PaintBorderLine( const SwRect& rRect,
 							 const SwRect& rOutRect,
-							 const SwPageFrm *pPage,
+							 const SwPageFrm* /*pPage*/,
 							 const Color *pColor ) const
 {
 	if ( !rOutRect.IsOver( rRect ) )

Modified: openoffice/trunk/main/sw/source/core/unocore/unobrushitemhelper.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/core/unocore/unobrushitemhelper.cxx?rev=1588308&r1=1588307&r2=1588308&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/core/unocore/unobrushitemhelper.cxx (original)
+++ openoffice/trunk/main/sw/source/core/unocore/unobrushitemhelper.cxx Thu Apr 17 16:44:58 2014
@@ -133,6 +133,18 @@ void setSvxBrushItemAsFillAttributesToTa
             OSL_ENSURE(false, "Could not get Graphic from SvxBrushItem (!)");
         }
     }
+    else 
+    {
+        // GPOS_NONE == rBrush.GetGraphicPos() && 0xff == rBrush.GetColor().GetTransparency(),
+        // still need to rescue the color used. There are sequences used on the UNO API at
+        // import time (OLE. e.g. chart) which first set RGB color (MID_BACK_COLOR_R_G_B, 
+        // color stays transparent) and then set transparency (MID_BACK_COLOR_TRANSPARENCY)
+        // to zero later. When not saving the color, it will be lost
+        const Color aColor(rBrush.GetColor().GetRGBColor());
+
+        // rToSet.Put(XFillStyleItem(XFILL_NONE));
+        rToSet.Put(XFillColorItem(String(), aColor));
+    }
 }
 
 //UUUU
@@ -175,20 +187,24 @@ SvxBrushItem getSvxBrushItemForSolid(con
 //UUUU
 SvxBrushItem getSvxBrushItemFromSourceSet(const SfxItemSet& rSourceSet, sal_Bool bSearchInParents)
 {
-    SvxBrushItem aRetval(RES_BACKGROUND);
-
     const XFillStyleItem* pXFillStyleItem(static_cast< const XFillStyleItem*  >(rSourceSet.GetItem(XATTR_FILLSTYLE, bSearchInParents)));
 
-    if(!pXFillStyleItem)
+    if(!pXFillStyleItem || XFILL_NONE == pXFillStyleItem->GetValue())
     {
-        return aRetval;
+        // need to rescue the evtl. set RGB color, but use as transparent color (we have XFILL_NONE)
+        Color aFillColor(static_cast< const XFillColorItem& >(rSourceSet.Get(XATTR_FILLCOLOR, bSearchInParents)).GetColorValue());
+        aFillColor.SetTransparency(0xff);
+
+        return SvxBrushItem(aFillColor, RES_BACKGROUND);
     }
 
+    SvxBrushItem aRetval(RES_BACKGROUND);
+
     switch(pXFillStyleItem->GetValue())
     {
         case XFILL_NONE:
         {
-            // done; return default item
+            // already handled above, can not happen again
             break;
         }
         case XFILL_SOLID:

Modified: openoffice/trunk/main/sw/source/core/unocore/unoframe.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/core/unocore/unoframe.cxx?rev=1588308&r1=1588307&r2=1588308&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/core/unocore/unoframe.cxx (original)
+++ openoffice/trunk/main/sw/source/core/unocore/unoframe.cxx Thu Apr 17 16:44:58 2014
@@ -1765,6 +1765,64 @@ void SwXFrame::setPropertyValue(const ::
                 bDone = true;
             }
 
+            switch(nMemberId)
+            {
+                case MID_NAME:
+                {
+                    //UUUU when named items get set, replace these with the NameOrIndex items
+                    // which exist already in the pool
+                    switch(pEntry->nWID)
+                    {
+                        case XATTR_FILLGRADIENT:
+                        case XATTR_FILLHATCH:
+                        case XATTR_FILLBITMAP:
+                        case XATTR_FILLFLOATTRANSPARENCE:
+                        {
+                            OUString aTempName;
+
+                            if(!(aValue >>= aTempName ))
+                            {
+                                throw lang::IllegalArgumentException();
+                            }
+
+                            bDone = SvxShape::SetFillAttribute(pEntry->nWID, aTempName, aSet);
+                            break;
+                        }
+                        default:
+                        {
+                            break;
+                        }
+                    }
+                    break;
+                }
+                case MID_GRAFURL:
+                {
+                    //UUUU Bitmap also has the MID_GRAFURL mode where a Bitmap URL is used
+                    switch(pEntry->nWID)
+                    {
+                        case XATTR_FILLBITMAP:
+                        {
+                            const Graphic aNullGraphic;
+                            XFillBitmapItem aXFillBitmapItem(aSet.GetPool(), aNullGraphic); 
+
+                            aXFillBitmapItem.PutValue(aValue, nMemberId); 
+                            aSet.Put(aXFillBitmapItem); 
+                            bDone = true;
+                            break;
+                        }
+                        default:
+                        {
+                            break;
+                        }
+                    }
+                    break;
+                }
+                default:
+                {
+                    break;
+                }
+            }
+
             if(!bDone)
             {
                 m_pPropSet->setPropertyValue(*pEntry, aValue, aSet);
@@ -1831,8 +1889,10 @@ void SwXFrame::setPropertyValue(const ::
             {
                 throw lang::IllegalArgumentException();
             }
-			else
+            else
+            {
                 pFmt->SetFmtAttr(aSet);
+            }
 		}
 	}
 	else if(IsDescriptor())

Modified: openoffice/trunk/main/sw/source/core/unocore/unomap.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/core/unocore/unomap.cxx?rev=1588308&r1=1588307&r2=1588308&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/core/unocore/unomap.cxx (original)
+++ openoffice/trunk/main/sw/source/core/unocore/unomap.cxx Thu Apr 17 16:44:58 2014
@@ -297,6 +297,9 @@ SwUnoPropertyMapProvider::~SwUnoProperty
 // OD 18.09.2003 #i18732# - add property
 // OD 2004-05-05 #i28701# - add property 'WrapInfluenceOnObjPos'
 // OD 2009-07-13 #i73249# - add properties 'Title' and 'Description'
+//UUUU all users of COMMON_FRAME_PROPERTIES add the new XATTR_FILL_FIRST, XATTR_FILL_LAST FillStyle,
+// thus it may be possible to remove the RES_BACKGROUND entries from SvxBrushItem completely (this includes
+// all using UNO_NAME_BACK_* slots) in the future
 #define COMMON_FRAME_PROPERTIES \
 	{ SW_PROP_NMID(UNO_NAME_ANCHOR_PAGE_NO), RES_ANCHOR, 			CPPU_E2T(CPPUTYPE_INT16), 			PROPERTY_NONE, MID_ANCHOR_PAGENUM		},              \
 	{ SW_PROP_NMID(UNO_NAME_ANCHOR_TYPE), RES_ANCHOR, 			CPPU_E2T(CPPUTYPE_TXTCNTANCHOR), 			PROPERTY_NONE, MID_ANCHOR_ANCHORTYPE},             \
@@ -818,9 +821,10 @@ const SfxItemPropertyMapEntry* SwUnoProp
                     { SW_PROP_NMID(UNO_NAME_WRAP_INFLUENCE_ON_POSITION), RES_WRAP_INFLUENCE_ON_OBJPOS, CPPU_E2T(CPPUTYPE_INT8), PROPERTY_NONE, MID_WRAP_INFLUENCE},
                     { SW_PROP_NMID(UNO_NAME_WRITING_MODE), RES_FRAMEDIR, CPPU_E2T(CPPUTYPE_INT16), PROPERTY_NONE, 0 },
 
-                    //UUUU adf FillProperties for SW, same as FILL_PROPERTIES in svx
+                    //UUUU added FillProperties for SW, same as FILL_PROPERTIES in svx
                     // but need own defines in Writer due to later association of strings
-                    // and uno types (see loop at end of this metjhod and definition of SW_PROP_NMID)
+                    // and uno types (see loop at end of this method and definition of SW_PROP_NMID)
+                    // This entry is for adding that properties to style import/export
                     FILL_PROPERTIES_SW
 
                     {0,0,0,0,0,0}
@@ -1174,9 +1178,10 @@ const SfxItemPropertyMapEntry* SwUnoProp
 					{ SW_PROP_NMID(UNO_NAME_WIDTH_TYPE), RES_FRM_SIZE,   		CPPU_E2T(CPPUTYPE_INT16)  ,  		PROPERTY_NONE,   MID_FRMSIZE_WIDTH_TYPE },
                     { SW_PROP_NMID(UNO_NAME_WRITING_MODE), RES_FRAMEDIR, CPPU_E2T(CPPUTYPE_INT16), PROPERTY_NONE, 0 },
 
-                    //UUUU adf FillProperties for SW, same as FILL_PROPERTIES in svx
+                    //UUUU added FillProperties for SW, same as FILL_PROPERTIES in svx
                     // but need own defines in Writer due to later association of strings
-                    // and uno types (see loop at end of this metjhod and definition of SW_PROP_NMID)
+                    // and uno types (see loop at end of this method and definition of SW_PROP_NMID)
+                    // This entry is for adding that properties to FlyFrame import/export
                     FILL_PROPERTIES_SW
 
                     {0,0,0,0,0,0}
@@ -1187,7 +1192,10 @@ const SfxItemPropertyMapEntry* SwUnoProp
 			case PROPERTY_MAP_TEXT_GRAPHIC:
 			{
                 static SfxItemPropertyMapEntry aGraphicPropertyMap_Impl[] =
-				{
+				{   //UUUU
+                    // evtl. completely remove SvxBrushItem stuff ()
+                    // add support for XATTR_FILL_FIRST, XATTR_FILL_LAST
+                    // COMMON_FRAME_PROPERTIES currently hosts the RES_BACKGROUND entries from SvxBrushItem
 					COMMON_FRAME_PROPERTIES
 					{ SW_PROP_NMID(UNO_NAME_SURROUND_CONTOUR), RES_SURROUND, 			CPPU_E2T(CPPUTYPE_BOOLEAN), 			PROPERTY_NONE, MID_SURROUND_CONTOUR		    },
 					{ SW_PROP_NMID(UNO_NAME_CONTOUR_OUTSIDE), RES_SURROUND, 			CPPU_E2T(CPPUTYPE_BOOLEAN), 			PROPERTY_NONE, MID_SURROUND_CONTOUROUTSIDE	},
@@ -1214,6 +1222,13 @@ const SfxItemPropertyMapEntry* SwUnoProp
 					{ SW_PROP_NMID(UNO_NAME_GRAPHIC_IS_INVERTED), RES_GRFATR_INVERT,	 	 CPPU_E2T(CPPUTYPE_BOOLEAN),	0,	 0},
 					{ SW_PROP_NMID(UNO_NAME_TRANSPARENCY), RES_GRFATR_TRANSPARENCY, CPPU_E2T(CPPUTYPE_INT16),	0,	 0},
 					{ SW_PROP_NMID(UNO_NAME_GRAPHIC_COLOR_MODE), RES_GRFATR_DRAWMODE,	 CPPU_E2T(CPPUTYPE_COLORMODE),		0,	 0},
+
+                    //UUUU added FillProperties for SW, same as FILL_PROPERTIES in svx
+                    // but need own defines in Writer due to later association of strings
+                    // and uno types (see loop at end of this method and definition of SW_PROP_NMID)
+                    // This entry is for adding that properties to Writer GraphicObject import/export
+                    FILL_PROPERTIES_SW
+
                     {0,0,0,0,0,0}
 				};
                 aMapEntriesArr[nPropertyId] = aGraphicPropertyMap_Impl;
@@ -1222,7 +1237,10 @@ const SfxItemPropertyMapEntry* SwUnoProp
 			case PROPERTY_MAP_EMBEDDED_OBJECT:
 			{
                 static SfxItemPropertyMapEntry aEmbeddedPropertyMap_Impl[] =
-				{
+				{   //UUUU
+                    // evtl. completely remove SvxBrushItem stuff ()
+                    // add support for XATTR_FILL_FIRST, XATTR_FILL_LAST
+                    // COMMON_FRAME_PROPERTIES currently hosts the RES_BACKGROUND entries from SvxBrushItem
 					COMMON_FRAME_PROPERTIES
 					{ SW_PROP_NMID(UNO_NAME_SURROUND_CONTOUR), RES_SURROUND, CPPU_E2T(CPPUTYPE_BOOLEAN), PROPERTY_NONE, MID_SURROUND_CONTOUR },
 					{ SW_PROP_NMID(UNO_NAME_CONTOUR_OUTSIDE), RES_SURROUND, CPPU_E2T(CPPUTYPE_BOOLEAN), PROPERTY_NONE, MID_SURROUND_CONTOUROUTSIDE},
@@ -1237,6 +1255,13 @@ const SfxItemPropertyMapEntry* SwUnoProp
                     { SW_PROP_NMID(UNO_NAME_COMPONENT),FN_UNO_COMPONENT, CPPU_E2T(CPPUTYPE_REFCOMPONENT), PropertyAttribute::READONLY, 0},
                     { SW_PROP_NMID(UNO_NAME_EMBEDDED_OBJECT),FN_EMBEDDED_OBJECT, CPPU_E2T(CPPUTPYE_REFEMBEDDEDOBJECT), PropertyAttribute::READONLY, 0},
 //                    { SW_PROP_NMID(UNO_NAME_ALTERNATIVE_TEXT), FN_UNO_ALTERNATIVE_TEXT,CPPU_E2T(CPPUTYPE_OUSTRING),   PROPERTY_NONE , 0   },
+
+                    //UUUU added FillProperties for SW, same as FILL_PROPERTIES in svx
+                    // but need own defines in Writer due to later association of strings
+                    // and uno types (see loop at end of this method and definition of SW_PROP_NMID)
+                    // This entry is for adding that properties to OLE/EmbeddedObject import/export
+                    FILL_PROPERTIES_SW
+
                     {0,0,0,0,0,0}
 				};
                 aMapEntriesArr[nPropertyId] = aEmbeddedPropertyMap_Impl;

Modified: openoffice/trunk/main/sw/source/core/unocore/unostyle.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/core/unocore/unostyle.cxx?rev=1588308&r1=1588307&r2=1588308&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/core/unocore/unostyle.cxx (original)
+++ openoffice/trunk/main/sw/source/core/unocore/unostyle.cxx Thu Apr 17 16:44:58 2014
@@ -1899,6 +1899,13 @@ void lcl_SetStyleProperty(const SfxItemP
         }
         case RES_BACKGROUND:
         {
+            //UUUU No new FillStyle for PageBackground; need to remove again when we want
+            // to support that, too. Add a break to *not* set bDone to true
+            if(SFX_STYLE_FAMILY_PAGE == eFamily)
+            {
+                break;
+            }
+
             //UUUU
             SfxItemSet& rStyleSet = rBase.GetItemSet();
             const SvxBrushItem aOriginalBrushItem(getSvxBrushItemFromSourceSet(rStyleSet));
@@ -2676,6 +2683,13 @@ uno::Any lcl_GetStyleProperty(const SfxI
             }
             case RES_BACKGROUND:
             {
+                //UUUU No new FillStyle for PageBackground; need to remove again when we want
+                // to support that, too. Add a break to *not* set bDone to true
+                if(SFX_STYLE_FAMILY_PAGE == eFamily)
+                {
+                    break;
+                }
+
                 //UUUU
                 const SfxItemSet& rSet = rBase.GetItemSet();
                 const SvxBrushItem aOriginalBrushItem(getSvxBrushItemFromSourceSet(rSet));

Modified: openoffice/trunk/main/sw/source/ui/frmdlg/frmpage.src
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/ui/frmdlg/frmpage.src?rev=1588308&r1=1588307&r2=1588308&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/ui/frmdlg/frmpage.src (original)
+++ openoffice/trunk/main/sw/source/ui/frmdlg/frmpage.src Thu Apr 17 16:44:58 2014
@@ -157,12 +157,29 @@ TabDialog DLG_FRM_GRF
 				PageResID = TP_BORDER ;
 				Text [ en-US ] = "Borders" ;
 			};
-			PageItem
-			{
-				Identifier = TP_BACKGROUND ;
-				PageResID = TP_BACKGROUND ;
-				Text [ en-US ] = "Background" ;
-			};
+
+            //UUUU new Area and Transparence TabPages
+            PageItem
+            {
+                Identifier = RID_SVXPAGE_AREA;
+                PageResID = RID_SVXPAGE_AREA;
+                Text [ en-US ] = "Area" ;
+            };
+            PageItem
+            {
+                Identifier = RID_SVXPAGE_TRANSPARENCE;
+                PageResID = RID_SVXPAGE_TRANSPARENCE;
+                Text [ en-US ] = "Transparency" ;
+            };
+
+            //UUUU remove?
+            //PageItem
+            //{
+            //    Identifier = TP_BACKGROUND ;
+            //    PageResID = TP_BACKGROUND ;
+            //    Text [ en-US ] = "Background" ;
+            //};
+
 			PageItem
 			{
 				Identifier = TP_MACRO_ASSIGN ;
@@ -212,12 +229,29 @@ TabDialog DLG_FRM_OLE
 				PageResID = TP_BORDER ;
 				Text [ en-US ] = "Borders" ;
 			};
-			PageItem
-			{
-				Identifier = TP_BACKGROUND ;
-				PageResID = TP_BACKGROUND ;
-				Text [ en-US ] = "Background" ;
-			};
+
+            //UUUU new Area and Transparence TabPages
+            PageItem
+            {
+                Identifier = RID_SVXPAGE_AREA;
+                PageResID = RID_SVXPAGE_AREA;
+                Text [ en-US ] = "Area" ;
+            };
+            PageItem
+            {
+                Identifier = RID_SVXPAGE_TRANSPARENCE;
+                PageResID = RID_SVXPAGE_TRANSPARENCE;
+                Text [ en-US ] = "Transparency" ;
+            };
+
+            //UUUU remove?
+            PageItem
+            {
+                Identifier = TP_BACKGROUND ;
+                PageResID = TP_BACKGROUND ;
+                Text [ en-US ] = "Background" ;
+            };
+
 			/*
 			PageItem  {
 				Identifier = TP_COLUMN ;

Modified: openoffice/trunk/main/sw/source/ui/shells/frmsh.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/ui/shells/frmsh.cxx?rev=1588308&r1=1588307&r2=1588308&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/ui/shells/frmsh.cxx (original)
+++ openoffice/trunk/main/sw/source/ui/shells/frmsh.cxx Thu Apr 17 16:44:58 2014
@@ -440,11 +440,9 @@ void SwFrameShell::Execute(SfxRequest &r
                     SID_HTML_MODE, 			SID_HTML_MODE,                          // [10414
                     FN_GET_PRINT_AREA, 		FN_GET_PRINT_AREA,                      // [21032
                     FN_SURROUND, 			FN_HORI_ORIENT,                         // [21303
-                    FN_SET_FRM_NAME, 		FN_SET_FRM_NAME,                        // [21306
-                    FN_KEEP_ASPECT_RATIO, 	FN_KEEP_ASPECT_RATIO,                   // [21307
+                    FN_SET_FRM_NAME, 		FN_KEEP_ASPECT_RATIO,                   // [21306
                     FN_SET_FRM_ALT_NAME, 	FN_SET_FRM_ALT_NAME,                    // [21318
-                    FN_OLE_IS_MATH,         FN_OLE_IS_MATH,                         // [22314
-                    FN_MATH_BASELINE_ALIGNMENT, FN_MATH_BASELINE_ALIGNMENT,         // [22315
+                    FN_OLE_IS_MATH,         FN_MATH_BASELINE_ALIGNMENT,             // [22314
                     FN_PARAM_CHAIN_PREVIOUS, FN_PARAM_CHAIN_NEXT,                   // [22420
 
                     0);

Modified: openoffice/trunk/main/sw/source/ui/shells/grfsh.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/ui/shells/grfsh.cxx?rev=1588308&r1=1588307&r2=1588308&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/ui/shells/grfsh.cxx (original)
+++ openoffice/trunk/main/sw/source/ui/shells/grfsh.cxx Thu Apr 17 16:44:58 2014
@@ -75,6 +75,10 @@
 #include <shells.hrc>
 #include <popup.hrc>
 
+#include <doc.hxx>
+#include <docsh.hxx>
+#include <svx/drawitem.hxx>
+
 #define SwGrfShell
 #include <sfx2/msg.hxx>
 #include "swslots.hxx"
@@ -128,22 +132,41 @@ void SwGrfShell::Execute(SfxRequest &rRe
 			const SwViewOption* pVOpt = rSh.GetViewOptions();
 			SwViewOption aUsrPref( *pVOpt );
 
-			SfxItemSet aSet(GetPool(), RES_FRMATR_BEGIN, RES_FRMATR_END-1,
-							RES_GRFATR_MIRRORGRF, 	RES_GRFATR_CROPGRF,
-							SID_ATTR_BORDER_INNER, 	SID_ATTR_BORDER_INNER,
-							SID_ATTR_GRAF_KEEP_ZOOM, SID_ATTR_GRAF_KEEP_ZOOM,
-							SID_ATTR_GRAF_FRMSIZE, SID_ATTR_GRAF_FRMSIZE,
-							SID_ATTR_GRAF_FRMSIZE_PERCENT, SID_ATTR_GRAF_FRMSIZE_PERCENT,
-							SID_ATTR_GRAF_GRAPHIC, SID_ATTR_GRAF_GRAPHIC,
-							FN_PARAM_GRF_CONNECT, 	FN_PARAM_GRF_CONNECT,
-							SID_ATTR_PAGE_SIZE, 	SID_ATTR_PAGE_SIZE,
-							FN_GET_PRINT_AREA, 		FN_GET_PRINT_AREA,
-							FN_SET_FRM_NAME, 		FN_KEEP_ASPECT_RATIO,
-							FN_PARAM_GRF_DIALOG, 	FN_PARAM_GRF_DIALOG,
-							SID_DOCFRAME, 			SID_DOCFRAME,
-							SID_HTML_MODE, 			SID_HTML_MODE,
-							FN_SET_FRM_ALT_NAME,	FN_SET_FRM_ALT_NAME,
-							0);
+            SfxItemSet aSet(GetPool(), //UUUU sorted by indices
+
+                RES_FRMATR_BEGIN,RES_FRMATR_END - 1,                            // [   82
+                RES_GRFATR_MIRRORGRF,RES_GRFATR_CROPGRF,                        // [  123
+
+                //UUUU FillAttribute support
+                XATTR_FILL_FIRST,       XATTR_FILL_LAST,                        // [ 1014
+
+                SID_DOCFRAME,SID_DOCFRAME,                                      // [ 5598
+                SID_ATTR_BORDER_INNER,SID_ATTR_BORDER_INNER,                    // [10023
+                SID_ATTR_PAGE_SIZE,SID_ATTR_PAGE_SIZE,                          // [10051
+                SID_ATTR_GRAF_KEEP_ZOOM,SID_ATTR_GRAF_KEEP_ZOOM,                // [10882
+                SID_ATTR_GRAF_FRMSIZE,SID_ATTR_GRAF_GRAPHIC,                    // [10884, contains SID_ATTR_GRAF_FRMSIZE_PERCENT
+
+                //UUUU items to hand over XPropertyList things like
+                // XColorList, XHatchList, XGradientList and XBitmapList
+                // to the Area TabPage
+                SID_COLOR_TABLE,        SID_BITMAP_LIST,                        // [10179
+
+                SID_HTML_MODE,SID_HTML_MODE,                                    // [10414
+                FN_GET_PRINT_AREA,FN_GET_PRINT_AREA,                            // [21032
+                FN_PARAM_GRF_CONNECT,FN_PARAM_GRF_CONNECT,                      // [21153
+                FN_PARAM_GRF_DIALOG,FN_PARAM_GRF_DIALOG,                        // [21171
+                FN_SET_FRM_NAME,FN_KEEP_ASPECT_RATIO,                           // [21306
+                FN_SET_FRM_ALT_NAME,FN_SET_FRM_ALT_NAME,                        // [21318
+                0);
+
+            //UUUU create needed items for XPropertyList entries from the DrawModel so that
+            // the Area TabPage can access them
+            const SdrModel* pDrawModel = rSh.GetView().GetDocShell()->GetDoc()->GetDrawModel();
+
+            aSet.Put(SvxColorTableItem(pDrawModel->GetColorTableFromSdrModel(), SID_COLOR_TABLE));
+            aSet.Put(SvxGradientListItem(pDrawModel->GetGradientListFromSdrModel(), SID_GRADIENT_LIST));
+            aSet.Put(SvxHatchListItem(pDrawModel->GetHatchListFromSdrModel(), SID_HATCH_LIST));
+            aSet.Put(SvxBitmapListItem(pDrawModel->GetBitmapListFromSdrModel(), SID_BITMAP_LIST));
 
 			sal_uInt16 nHtmlMode = ::GetHtmlMode(GetView().GetDocShell());
 			aSet.Put(SfxUInt16Item(SID_HTML_MODE, nHtmlMode));

Modified: openoffice/trunk/main/xmloff/inc/xmloff/XMLShapeStyleContext.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/xmloff/inc/xmloff/XMLShapeStyleContext.hxx?rev=1588308&r1=1588307&r2=1588308&view=diff
==============================================================================
--- openoffice/trunk/main/xmloff/inc/xmloff/XMLShapeStyleContext.hxx (original)
+++ openoffice/trunk/main/xmloff/inc/xmloff/XMLShapeStyleContext.hxx Thu Apr 17 16:44:58 2014
@@ -40,6 +40,8 @@ protected:
 	::rtl::OUString		m_sControlDataStyleName;
 	::rtl::OUString		m_sListStyleName;
 	sal_Bool			m_bIsNumRuleAlreadyConverted;
+    //UUUU
+	sal_Bool			m_bIsFillStyleAlreadyConverted;
 
 protected:
 	virtual void SetAttribute( sal_uInt16 nPrefixKey,

Modified: openoffice/trunk/main/xmloff/source/draw/XMLShapeStyleContext.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/xmloff/source/draw/XMLShapeStyleContext.cxx?rev=1588308&r1=1588307&r2=1588308&view=diff
==============================================================================
--- openoffice/trunk/main/xmloff/source/draw/XMLShapeStyleContext.cxx (original)
+++ openoffice/trunk/main/xmloff/source/draw/XMLShapeStyleContext.cxx Thu Apr 17 16:44:58 2014
@@ -31,6 +31,7 @@
 #include <com/sun/star/drawing/XControlShape.hpp>
 #include "com/sun/star/beans/XPropertySetInfo.hpp"
 #include <com/sun/star/lang/IllegalArgumentException.hpp>
+#include <com/sun/star/drawing/FillStyle.hpp>
 #include <xmloff/xmlimp.hxx>
 #include <xmloff/xmlnumi.hxx>
 #include <xmloff/xmlnmspe.hxx>
@@ -46,6 +47,7 @@ using ::rtl::OUStringBuffer;
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::drawing;
 using ::xmloff::token::IsXMLToken;
 using ::xmloff::token::XML_TEXT_PROPERTIES;
 using ::xmloff::token::XML_GRAPHIC_PROPERTIES;
@@ -63,7 +65,8 @@ XMLShapeStyleContext::XMLShapeStyleConte
 	SvXMLStylesContext& rStyles,
 	sal_uInt16 nFamily)
 :	XMLPropStyleContext(rImport, nPrfx, rLName, xAttrList, rStyles, nFamily ),
-	m_bIsNumRuleAlreadyConverted( sal_False )
+	m_bIsNumRuleAlreadyConverted( sal_False ),
+    m_bIsFillStyleAlreadyConverted( sal_False ) //UUUU
 {
 }
 
@@ -195,6 +198,82 @@ void XMLShapeStyleContext::FillPropertyS
 		}
 	}
 
+    if(!m_bIsFillStyleAlreadyConverted && GetProperties().size())
+    {
+        const UniReference< XMLPropertySetMapper >&rMapper = GetStyles()->GetImportPropertyMapper(GetFamily())->getPropertySetMapper();
+        ::std::vector< XMLPropertyState >& rProperties = GetProperties();
+        ::std::vector< XMLPropertyState >::iterator a;
+        FillStyle eFS(FillStyle_NONE);
+        static ::rtl::OUString s_FillStyle(RTL_CONSTASCII_USTRINGPARAM("FillStyle"));
+
+        // try to find a FillStyle entry and a value from it
+        for(a = rProperties.begin(); a != rProperties.end(); a++)
+        {
+            if(a->mnIndex != -1)
+            {
+                const OUString& rPropName = rMapper->GetEntryAPIName(a->mnIndex);
+
+                if(rPropName == s_FillStyle)
+                {
+                    if(a->maValue >>= eFS)
+                    {
+                        // okay, type was good, eFS is set
+                    }
+                    else
+                    {
+                        // also try an int (see XFillStyleItem::PutValue)
+                        sal_Int32 nFS = 0;
+
+                        if(a->maValue >>= nFS)
+                        {
+                            eFS = (FillStyle)nFS;
+                        }
+                    }
+
+                    // exit loop, we found out what we needed to know
+                    break;
+                }
+            }
+        }
+
+        if(FillStyle_NONE != eFS)
+        {
+            //UUUU a FillStyle was found, thus the new [XATTR_FILL_FIRST .. XATTR_FILL_LAST]
+            // description for the Fill definitions is used. All formally used props based
+            // on RES_BACKGROUND need to be deleted to get no conflicts between the two
+            // sets of properties; old files will keep these and adapt accordingly
+            static ::rtl::OUString s_BackColorRGB(RTL_CONSTASCII_USTRINGPARAM("BackColorRGB"));
+            static ::rtl::OUString s_BackTransparent(RTL_CONSTASCII_USTRINGPARAM("BackTransparent"));
+            static ::rtl::OUString s_BackColorTransparency(RTL_CONSTASCII_USTRINGPARAM("BackColorTransparency"));
+            static ::rtl::OUString s_BackGraphicURL(RTL_CONSTASCII_USTRINGPARAM("BackGraphicURL"));
+            static ::rtl::OUString s_BackGraphicFilter(RTL_CONSTASCII_USTRINGPARAM("BackGraphicFilter"));
+            static ::rtl::OUString s_BackGraphicLocation(RTL_CONSTASCII_USTRINGPARAM("BackGraphicLocation"));
+            static ::rtl::OUString s_BackGraphicTransparency(RTL_CONSTASCII_USTRINGPARAM("BackGraphicTransparency"));
+
+            for(a = rProperties.begin(); a != rProperties.end(); a++)
+            {
+                if(a->mnIndex != -1)
+                {
+                    const OUString& rPropName = rMapper->GetEntryAPIName(a->mnIndex);
+
+                    if(s_BackColorRGB == rPropName
+                        || s_BackTransparent == rPropName
+                        || s_BackColorTransparency == rPropName
+                        || s_BackGraphicURL == rPropName
+                        || s_BackGraphicFilter == rPropName
+                        || s_BackGraphicLocation == rPropName
+                        || s_BackGraphicTransparency== rPropName)
+                    {
+                        // mark entry as inactive
+                        a->mnIndex = -1;
+                    }
+                }
+            }
+        }
+
+        m_bIsFillStyleAlreadyConverted = sal_True;
+    }
+
 	struct _ContextID_Index_Pair aContextIDs[] =
 	{
 		{ CTF_DASHNAME , -1 },