Kaydet (Commit) 6f2bd847 authored tarafından Armin Weiss's avatar Armin Weiss

#80012# changed style:page-master to contain a style:properties section

üst c8c062e2
......@@ -2,9 +2,9 @@
*
* $RCSfile: sdxmlexp.cxx,v $
*
* $Revision: 1.16 $
* $Revision: 1.17 $
*
* last change: $Author: cl $ $Date: 2000-11-26 19:43:50 $
* last change: $Author: aw $ $Date: 2000-11-27 12:52:59 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
......@@ -1414,6 +1414,10 @@ void SdXMLExport::ImpWritePageMasterInfos()
sString = sNewName;
AddAttribute(XML_NAMESPACE_STYLE, sXML_name, sString);
// write page-master
SvXMLElementExport aPME(*this, XML_NAMESPACE_STYLE, sXML_page_master, sal_True, sal_True);
// prepare style:properties inside page-master
GetMM100UnitConverter().convertMeasure(sStringBuffer, pInfo->GetBorderTop());
sString = sStringBuffer.makeStringAndClear();
AddAttribute(XML_NAMESPACE_FO, sXML_margin_top, sString);
......@@ -1443,8 +1447,8 @@ void SdXMLExport::ImpWritePageMasterInfos()
else
AddAttributeASCII(XML_NAMESPACE_FO, sXML_page_orientation, sXML_orientation_landscape);
// write page-master
SvXMLElementExport aPME(*this, XML_NAMESPACE_STYLE, sXML_page_master, sal_True, sal_True);
// write style:properties
SvXMLElementExport aPMF(*this, XML_NAMESPACE_STYLE, sXML_properties, sal_True, sal_True);
}
}
}
......
......@@ -2,9 +2,9 @@
*
* $RCSfile: sdxmlimp.cxx,v $
*
* $Revision: 1.1.1.1 $
* $Revision: 1.2 $
*
* last change: $Author: hr $ $Date: 2000-09-18 17:07:03 $
* last change: $Author: aw $ $Date: 2000-11-27 12:52:59 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
......@@ -170,13 +170,18 @@ static __FAR_DATA SvXMLTokenMapEntry aMasterPageAttrTokenMap[] =
static __FAR_DATA SvXMLTokenMapEntry aPageMasterAttrTokenMap[] =
{
{ XML_NAMESPACE_STYLE, sXML_name, XML_TOK_PAGEMASTER_NAME },
{ XML_NAMESPACE_FO, sXML_margin_top, XML_TOK_PAGEMASTER_MARGIN_TOP },
{ XML_NAMESPACE_FO, sXML_margin_bottom, XML_TOK_PAGEMASTER_MARGIN_BOTTOM },
{ XML_NAMESPACE_FO, sXML_margin_left, XML_TOK_PAGEMASTER_MARGIN_LEFT },
{ XML_NAMESPACE_FO, sXML_margin_right, XML_TOK_PAGEMASTER_MARGIN_RIGHT },
{ XML_NAMESPACE_FO, sXML_page_width, XML_TOK_PAGEMASTER_PAGE_WIDTH },
{ XML_NAMESPACE_FO, sXML_page_height, XML_TOK_PAGEMASTER_PAGE_HEIGHT },
{ XML_NAMESPACE_FO, sXML_page_orientation, XML_TOK_PAGEMASTER_PAGE_ORIENTATION },
XML_TOKEN_MAP_END
};
static __FAR_DATA SvXMLTokenMapEntry aPageMasterStyleAttrTokenMap[] =
{
{ XML_NAMESPACE_FO, sXML_margin_top, XML_TOK_PAGEMASTERSTYLE_MARGIN_TOP },
{ XML_NAMESPACE_FO, sXML_margin_bottom, XML_TOK_PAGEMASTERSTYLE_MARGIN_BOTTOM },
{ XML_NAMESPACE_FO, sXML_margin_left, XML_TOK_PAGEMASTERSTYLE_MARGIN_LEFT },
{ XML_NAMESPACE_FO, sXML_margin_right, XML_TOK_PAGEMASTERSTYLE_MARGIN_RIGHT },
{ XML_NAMESPACE_FO, sXML_page_width, XML_TOK_PAGEMASTERSTYLE_PAGE_WIDTH },
{ XML_NAMESPACE_FO, sXML_page_height, XML_TOK_PAGEMASTERSTYLE_PAGE_HEIGHT },
{ XML_NAMESPACE_FO, sXML_page_orientation, XML_TOK_PAGEMASTERSTYLE_PAGE_ORIENTATION },
XML_TOKEN_MAP_END
};
......@@ -311,6 +316,7 @@ SdXMLImport::SdXMLImport(
mpMasterPageElemTokenMap(0L),
mpMasterPageAttrTokenMap(0L),
mpPageMasterAttrTokenMap(0L),
mpPageMasterStyleAttrTokenMap(0L),
mpDrawPageAttrTokenMap(0L),
mpDrawPageElemTokenMap(0L),
mpPresentationPlaceholderAttrTokenMap(0L),
......@@ -399,6 +405,8 @@ SdXMLImport::~SdXMLImport()
delete mpMasterPageAttrTokenMap;
if(mpPageMasterAttrTokenMap)
delete mpPageMasterAttrTokenMap;
if(mpPageMasterStyleAttrTokenMap)
delete mpPageMasterStyleAttrTokenMap;
if(mpDrawPageAttrTokenMap)
delete mpDrawPageAttrTokenMap;
if(mpDrawPageElemTokenMap)
......@@ -472,6 +480,15 @@ const SvXMLTokenMap& SdXMLImport::GetPageMasterAttrTokenMap()
//////////////////////////////////////////////////////////////////////////////
const SvXMLTokenMap& SdXMLImport::GetPageMasterStyleAttrTokenMap()
{
if(!mpPageMasterStyleAttrTokenMap)
mpPageMasterStyleAttrTokenMap = new SvXMLTokenMap(aPageMasterStyleAttrTokenMap);
return *mpPageMasterStyleAttrTokenMap;
}
//////////////////////////////////////////////////////////////////////////////
const SvXMLTokenMap& SdXMLImport::GetDrawPageAttrTokenMap()
{
if(!mpDrawPageAttrTokenMap)
......
......@@ -2,9 +2,9 @@
*
* $RCSfile: ximpstyl.cxx,v $
*
* $Revision: 1.3 $
* $Revision: 1.4 $
*
* last change: $Author: cl $ $Date: 2000-11-23 18:30:39 $
* last change: $Author: aw $ $Date: 2000-11-27 12:52:59 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
......@@ -119,9 +119,9 @@ using namespace ::com::sun::star;
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
TYPEINIT1( SdXMLPageMasterContext, SvXMLStyleContext );
TYPEINIT1( SdXMLPageMasterStyleContext, SvXMLStyleContext );
SdXMLPageMasterContext::SdXMLPageMasterContext(
SdXMLPageMasterStyleContext::SdXMLPageMasterStyleContext(
SdXMLImport& rImport,
sal_uInt16 nPrfx,
const OUString& rLName,
......@@ -135,9 +135,9 @@ SdXMLPageMasterContext::SdXMLPageMasterContext(
mnHeight( 0L ),
meOrientation(GetSdImport().IsDraw() ? view::PaperOrientation_PORTRAIT : view::PaperOrientation_LANDSCAPE)
{
// set family to somethiong special at SvXMLStyleContext
// set family to something special at SvXMLStyleContext
// for differences in search-methods
SetFamily(XML_STYLE_FAMILY_SD_PAGEMASTERCONEXT_ID);
SetFamily(XML_STYLE_FAMILY_SD_PAGEMASTERSTYLECONEXT_ID);
sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
for(sal_Int16 i=0; i < nAttrCount; i++)
......@@ -146,46 +146,41 @@ SdXMLPageMasterContext::SdXMLPageMasterContext(
OUString aLocalName;
sal_uInt16 nPrefix = GetSdImport().GetNamespaceMap().GetKeyByAttrName(sAttrName, &aLocalName);
OUString sValue = xAttrList->getValueByIndex(i);
const SvXMLTokenMap& rAttrTokenMap = GetSdImport().GetPageMasterAttrTokenMap();
const SvXMLTokenMap& rAttrTokenMap = GetSdImport().GetPageMasterStyleAttrTokenMap();
switch(rAttrTokenMap.Get(nPrefix, aLocalName))
{
case XML_TOK_PAGEMASTER_NAME:
{
msName = sValue;
break;
}
case XML_TOK_PAGEMASTER_MARGIN_TOP:
case XML_TOK_PAGEMASTERSTYLE_MARGIN_TOP:
{
GetSdImport().GetMM100UnitConverter().convertMeasure(mnBorderTop, sValue);
break;
}
case XML_TOK_PAGEMASTER_MARGIN_BOTTOM:
case XML_TOK_PAGEMASTERSTYLE_MARGIN_BOTTOM:
{
GetSdImport().GetMM100UnitConverter().convertMeasure(mnBorderBottom, sValue);
break;
}
case XML_TOK_PAGEMASTER_MARGIN_LEFT:
case XML_TOK_PAGEMASTERSTYLE_MARGIN_LEFT:
{
GetSdImport().GetMM100UnitConverter().convertMeasure(mnBorderLeft, sValue);
break;
}
case XML_TOK_PAGEMASTER_MARGIN_RIGHT:
case XML_TOK_PAGEMASTERSTYLE_MARGIN_RIGHT:
{
GetSdImport().GetMM100UnitConverter().convertMeasure(mnBorderRight, sValue);
break;
}
case XML_TOK_PAGEMASTER_PAGE_WIDTH:
case XML_TOK_PAGEMASTERSTYLE_PAGE_WIDTH:
{
GetSdImport().GetMM100UnitConverter().convertMeasure(mnWidth, sValue);
break;
}
case XML_TOK_PAGEMASTER_PAGE_HEIGHT:
case XML_TOK_PAGEMASTERSTYLE_PAGE_HEIGHT:
{
GetSdImport().GetMM100UnitConverter().convertMeasure(mnHeight, sValue);
break;
}
case XML_TOK_PAGEMASTER_PAGE_ORIENTATION:
case XML_TOK_PAGEMASTERSTYLE_PAGE_ORIENTATION:
{
if(sValue.equals(OUString(RTL_CONSTASCII_USTRINGPARAM(sXML_orientation_portrait))))
meOrientation = view::PaperOrientation_PORTRAIT;
......@@ -199,8 +194,86 @@ SdXMLPageMasterContext::SdXMLPageMasterContext(
//////////////////////////////////////////////////////////////////////////////
SdXMLPageMasterStyleContext::~SdXMLPageMasterStyleContext()
{
}
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
TYPEINIT1( SdXMLPageMasterContext, SvXMLStyleContext );
SdXMLPageMasterContext::SdXMLPageMasterContext(
SdXMLImport& rImport,
sal_uInt16 nPrfx,
const OUString& rLName,
const uno::Reference< xml::sax::XAttributeList>& xAttrList)
: SvXMLStyleContext(rImport, nPrfx, rLName, xAttrList),
mpPageMasterStyle( 0L )
{
// set family to something special at SvXMLStyleContext
// for differences in search-methods
SetFamily(XML_STYLE_FAMILY_SD_PAGEMASTERCONEXT_ID);
sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
for(sal_Int16 i=0; i < nAttrCount; i++)
{
OUString sAttrName = xAttrList->getNameByIndex(i);
OUString aLocalName;
sal_uInt16 nPrefix = GetSdImport().GetNamespaceMap().GetKeyByAttrName(sAttrName, &aLocalName);
OUString sValue = xAttrList->getValueByIndex(i);
const SvXMLTokenMap& rAttrTokenMap = GetSdImport().GetPageMasterAttrTokenMap();
switch(rAttrTokenMap.Get(nPrefix, aLocalName))
{
case XML_TOK_PAGEMASTER_NAME:
{
msName = sValue;
break;
}
}
}
}
//////////////////////////////////////////////////////////////////////////////
SdXMLPageMasterContext::~SdXMLPageMasterContext()
{
// release remembered contexts, they are no longer needed
if(mpPageMasterStyle)
{
mpPageMasterStyle->ReleaseRef();
mpPageMasterStyle = 0L;
}
}
//////////////////////////////////////////////////////////////////////////////
SvXMLImportContext *SdXMLPageMasterContext::CreateChildContext(
sal_uInt16 nPrefix,
const OUString& rLocalName,
const uno::Reference< xml::sax::XAttributeList >& xAttrList )
{
SvXMLImportContext* pContext = 0;
if(nPrefix == XML_NAMESPACE_STYLE && rLocalName.equals(OUString(RTL_CONSTASCII_USTRINGPARAM(sXML_properties))))
{
pContext = new SdXMLPageMasterStyleContext(GetSdImport(), nPrefix, rLocalName, xAttrList);
// remember SdXMLPresentationPlaceholderContext for later evaluation
if(pContext)
{
pContext->AddRef();
DBG_ASSERT(!mpPageMasterStyle, "PageMasterStyle is set, there seem to be two of them (!)");
mpPageMasterStyle = (SdXMLPageMasterStyleContext*)pContext;
}
}
// call base class
if(!pContext)
pContext = SvXMLStyleContext::CreateChildContext(nPrefix, rLocalName, xAttrList);
return pContext;
}
//////////////////////////////////////////////////////////////////////////////
......@@ -542,44 +615,47 @@ SdXMLMasterPageContext::SdXMLMasterPageContext(
if(pStyle && pStyle->ISA(SdXMLPageMasterContext))
{
const SdXMLPageMasterContext* pPageMaster = (SdXMLPageMasterContext*)pStyle;
const SdXMLPageMasterStyleContext* pPageMasterContext = pPageMaster->GetPageMasterStyle();
uno::Reference< drawing::XDrawPage > xMasterPage(
GetLocalShapesContext(), uno::UNO_QUERY);
if(xMasterPage.is())
if(pPageMasterContext)
{
// set sizes for this masterpage
uno::Reference <beans::XPropertySet> xPropSet(xMasterPage, uno::UNO_QUERY);
if(xPropSet.is())
uno::Reference< drawing::XDrawPage > xMasterPage(GetLocalShapesContext(), uno::UNO_QUERY);
if(xMasterPage.is())
{
uno::Any aAny;
// set sizes for this masterpage
uno::Reference <beans::XPropertySet> xPropSet(xMasterPage, uno::UNO_QUERY);
if(xPropSet.is())
{
uno::Any aAny;
aAny <<= pPageMaster->GetBorderBottom();
xPropSet->setPropertyValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("BorderBottom")), aAny);
aAny <<= pPageMasterContext->GetBorderBottom();
xPropSet->setPropertyValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("BorderBottom")), aAny);
aAny <<= pPageMaster->GetBorderLeft();
xPropSet->setPropertyValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("BorderLeft")), aAny);
aAny <<= pPageMasterContext->GetBorderLeft();
xPropSet->setPropertyValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("BorderLeft")), aAny);
aAny <<= pPageMaster->GetBorderRight();
xPropSet->setPropertyValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("BorderRight")), aAny);
aAny <<= pPageMasterContext->GetBorderRight();
xPropSet->setPropertyValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("BorderRight")), aAny);
aAny <<= pPageMaster->GetBorderTop();
xPropSet->setPropertyValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("BorderTop")), aAny);
aAny <<= pPageMasterContext->GetBorderTop();
xPropSet->setPropertyValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("BorderTop")), aAny);
aAny <<= pPageMaster->GetWidth();
xPropSet->setPropertyValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("Width")), aAny);
aAny <<= pPageMasterContext->GetWidth();
xPropSet->setPropertyValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("Width")), aAny);
aAny <<= pPageMaster->GetHeight();
xPropSet->setPropertyValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("Height")), aAny);
aAny <<= pPageMasterContext->GetHeight();
xPropSet->setPropertyValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("Height")), aAny);
aAny <<= pPageMaster->GetOrientation();
xPropSet->setPropertyValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("Orientation")), aAny);
aAny <<= pPageMasterContext->GetOrientation();
xPropSet->setPropertyValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("Orientation")), aAny);
}
}
}
}
......
......@@ -2,9 +2,9 @@
*
* $RCSfile: ximpstyl.hxx,v $
*
* $Revision: 1.1.1.1 $
* $Revision: 1.2 $
*
* last change: $Author: hr $ $Date: 2000-09-18 17:07:04 $
* last change: $Author: aw $ $Date: 2000-11-27 12:52:59 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
......@@ -83,9 +83,9 @@
#endif
//////////////////////////////////////////////////////////////////////////////
// style:page-master context
// special style:style context inside style:page-master context
class SdXMLPageMasterContext: public SvXMLStyleContext
class SdXMLPageMasterStyleContext: public SvXMLStyleContext
{
sal_Int32 mnBorderBottom;
sal_Int32 mnBorderLeft;
......@@ -94,7 +94,6 @@ class SdXMLPageMasterContext: public SvXMLStyleContext
sal_Int32 mnWidth;
sal_Int32 mnHeight;
com::sun::star::view::PaperOrientation meOrientation;
rtl::OUString msName;
const SdXMLImport& GetSdImport() const { return (const SdXMLImport&)GetImport(); }
SdXMLImport& GetSdImport() { return (SdXMLImport&)GetImport(); }
......@@ -102,14 +101,13 @@ class SdXMLPageMasterContext: public SvXMLStyleContext
public:
TYPEINFO();
SdXMLPageMasterContext(
SdXMLPageMasterStyleContext(
SdXMLImport& rImport,
sal_uInt16 nPrfx,
const rtl::OUString& rLName,
const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList);
virtual ~SdXMLPageMasterContext();
virtual ~SdXMLPageMasterStyleContext();
const rtl::OUString& GetName() const { return msName; }
sal_Int32 GetBorderBottom() const { return mnBorderBottom; }
sal_Int32 GetBorderLeft() const { return mnBorderLeft; }
sal_Int32 GetBorderRight() const { return mnBorderRight; }
......@@ -119,6 +117,35 @@ public:
com::sun::star::view::PaperOrientation GetOrientation() const { return meOrientation; }
};
//////////////////////////////////////////////////////////////////////////////
// style:page-master context
class SdXMLPageMasterContext: public SvXMLStyleContext
{
rtl::OUString msName;
SdXMLPageMasterStyleContext*mpPageMasterStyle;
const SdXMLImport& GetSdImport() const { return (const SdXMLImport&)GetImport(); }
SdXMLImport& GetSdImport() { return (SdXMLImport&)GetImport(); }
public:
TYPEINFO();
SdXMLPageMasterContext(
SdXMLImport& rImport,
sal_uInt16 nPrfx,
const rtl::OUString& rLName,
const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList);
virtual ~SdXMLPageMasterContext();
virtual SvXMLImportContext *CreateChildContext(
sal_uInt16 nPrefix, const rtl::OUString& rLocalName,
const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList );
const rtl::OUString& GetName() const { return msName; }
const SdXMLPageMasterStyleContext* GetPageMasterStyle() const { return mpPageMasterStyle; }
};
//////////////////////////////////////////////////////////////////////////////
// style:masterpage context
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment