summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishv Brahmbhatt <vishvbrahmbhatt19@gmail.com>2013-08-02 11:27:47 +0530
committerThorsten Behrens <tbehrens@suse.com>2013-08-26 14:47:24 +0200
commit6671f931bb08e6f680255cf799c001d5a26f0070 (patch)
tree061f2bc324eebea6b4a5c769ac3eb0ac9f30a884
parentTemporarily adding new methods to "drawdoc.cxx". (diff)
downloadcore-6671f931bb08e6f680255cf799c001d5a26f0070.tar.gz
core-6671f931bb08e6f680255cf799c001d5a26f0070.zip
Few changes to the logic of parsing
This changes are pushed for quick reference as there are some more changes that are left to be done. Change-Id: I8c79fa7730dcab9250bebe6bd84f49a8664e338d
-rw-r--r--sd/source/core/sdpage.cxx85
-rw-r--r--sd/xml/layoutlist.xml72
2 files changed, 78 insertions, 79 deletions
diff --git a/sd/source/core/sdpage.cxx b/sd/source/core/sdpage.cxx
index 7c580682690e..938624b7ea33 100644
--- a/sd/source/core/sdpage.cxx
+++ b/sd/source/core/sdpage.cxx
@@ -1238,7 +1238,7 @@ Reference<XElement> getRootElement()
}
//read the information from XML file(traversing from layout node)
-void readLayoutPropFromFile(const Reference<XElement>& root, const rtl::OUString& sLayoutType, const rtl::OUString& sPresObjKind, sal_Int32 propvalue[])
+void readLayoutPropFromFile(const Reference<XElement>& root, const rtl::OUString& sLayoutType, const rtl::OUString& sPresObjKind, double propvalue[])
{
long presobjsize;
long layoutlistsize;
@@ -1367,7 +1367,7 @@ static void CalcAutoLayoutRectangles( SdPage& rPage, int nLayout, Rectangle* rRe
int presobjsize;
rtl::OUString sLayoutAttName;
rtl::OUString sPresObjKindAttName;
- sal_Int32 propvalue[4];
+ double propvalue[4];
if( rPage.GetPageKind() != PK_HANDOUT )
{
@@ -1406,7 +1406,8 @@ static void CalcAutoLayoutRectangles( SdPage& rPage, int nLayout, Rectangle* rRe
Point aLayoutPos( aLayoutRect.TopLeft() );
Size aTempSize;
Point aTempPnt;
-
+ aTempSize = aLayoutSize;
+ aTempPnt = aLayoutPos;
sal_Bool bRightToLeft = ( rPage.GetModel() && static_cast< SdDrawDocument* >( rPage.GetModel() )->GetDefaultWritingMode() == ::com::sun::star::text::WritingMode_RL_TB );
parseXml(); //calling this for temporary reference,have to use it somewhere else.
@@ -1432,28 +1433,47 @@ static void CalcAutoLayoutRectangles( SdPage& rPage, int nLayout, Rectangle* rRe
{
Reference<XNamedNodeMap> presObjAttributes = presobj->getAttributes();
- Reference<XNode> presObjPosX = presObjAttributes->getNamedItem("layout-pos-x");
- rtl::OUString sValue = presObjPosX->getNodeValue();
- propvalue[0] = sValue.toInt32();
+ Reference<XNode> presObjSizeHeight = presObjAttributes->getNamedItem("title-shape-relative-height");
+ rtl::OUString sValue = presObjSizeHeight->getNodeValue();
+ propvalue[0] = sValue.toDouble();
+
+ Reference<XNode> presObjSizeWidth = presObjAttributes->getNamedItem("title-shape-relative-width");
+ sValue = presObjSizeWidth->getNodeValue();
+ propvalue[1] = sValue.toDouble();
- Reference<XNode> presObjPosY = presObjAttributes->getNamedItem("layout-pos-y");
- sValue = presObjPosY->getNodeValue();
- propvalue[1] = sValue.toInt32();
+ Reference<XNode> presObjPos = presObjAttributes->getNamedItem("title-shape-relative-pos");
+ sValue = presObjPos->getNodeValue();
+ propvalue[2] = sValue.toDouble();
- Reference<XNode> presObjSizeHeight = presObjAttributes->getNamedItem("layout-size-height");
- sValue = presObjSizeHeight->getNodeValue();
- propvalue[2] = sValue.toInt32();
+ Reference<XNode> presObjBool = presObjAttributes->getNamedItem("boolx");
+ sValue = presObjBool->getNodeValue();
+ propvalue[3] = sValue.toDouble();
- Reference<XNode> presObjSizeWidth = presObjAttributes->getNamedItem("layout-size-width");
- sValue = presObjSizeWidth->getNodeValue();
- propvalue[3] = sValue.toInt32();
-
- aLayoutPos.X() = propvalue[0];
- aLayoutPos.Y() = propvalue[1];
- aLayoutSize.Height() = propvalue[2];
- aLayoutSize.Width() = propvalue[3];
- rRectangle[count] = Rectangle (aLayoutPos, aLayoutSize);
- count=count+1;
+ if(count==0)
+ {
+ Size aTitleSize ( aTitleRect.GetSize() );
+ aTitleSize.Height() = sal_Int32(aTitleSize.Height() * propvalue[0]);
+ aTitleSize.Width() = sal_Int32(aTitleSize.Width() * propvalue[1]);
+ if(propvalue[3]==1)
+ aTitlePos.X() = sal_Int32(aTitlePos.X() +(aTitleSize.Width() * propvalue[2]));
+ else
+ aTitlePos.Y() = sal_Int32(aTitlePos.Y() + (aTitleSize.Height() * propvalue[2]));
+ rRectangle[count] = Rectangle (aTitlePos, aTitleSize);
+ count = count+1;
+ }
+ else
+ {
+ aLayoutSize = aTempSize;//to regain fixed layout size
+ aLayoutPos = aTempPnt;
+ aLayoutSize.Height() = sal_Int32(aLayoutSize.Height() * propvalue[0]);
+ aLayoutSize.Width() = sal_Int32(aLayoutSize.Width() * propvalue[1]);
+ if(propvalue[3]==1)
+ aLayoutPos.X() = sal_Int32(aLayoutPos.X() +(aLayoutSize.Width() * propvalue[2]));
+ else
+ aLayoutPos.Y() = sal_Int32(aLayoutPos.Y() + (aLayoutSize.Height() * propvalue[2]));
+ rRectangle[count] = Rectangle (aLayoutPos, aLayoutSize);
+ count=count+1;
+ }
}
}
break;
@@ -1549,27 +1569,6 @@ static void CalcAutoLayoutRectangles( SdPage& rPage, int nLayout, Rectangle* rRe
// aLayoutSize.Width() = long (aLayoutSize.Width() / 0.488);
// rRectangle[3] = Rectangle (aLayoutPos, aLayoutSize);
// break;
- readLayoutPropFromFile(root, "AUTOLAYOUT_TITLE_CONTENT_2CONTENT" ,"PRESOBJ_OUTLINE1" ,propvalue);
- aLayoutPos.X() = propvalue[0];
- aLayoutPos.Y() = propvalue[1];
- aLayoutSize.Height() = propvalue[2];
- aLayoutSize.Width() = propvalue[3];
- rRectangle[1] = Rectangle (aLayoutPos, aLayoutSize);
-
- readLayoutPropFromFile(root, "AUTOLAYOUT_TITLE_CONTENT_2CONTENT" ,"PRESOBJ_OUTLINE2" ,propvalue);
- aLayoutPos.X() = propvalue[0];
- aLayoutPos.Y() = propvalue[1];
- aLayoutSize.Height() = propvalue[2];
- aLayoutSize.Width() = propvalue[3];
- rRectangle[2] = Rectangle (aLayoutPos, aLayoutSize);
-
- readLayoutPropFromFile(root, "AUTOLAYOUT_TITLE_CONTENT_2CONTENT" ,"PRESOBJ_OUTLINE3" ,propvalue);
- aLayoutPos.X() = propvalue[0];
- aLayoutPos.Y() = propvalue[1];
- aLayoutSize.Height() = propvalue[2];
- aLayoutSize.Width() = propvalue[3];
- rRectangle[3] = Rectangle (aLayoutPos, aLayoutSize);
- break;
case 6: // title, 4 shapes
{
// sal_uLong nX = long (aLayoutPos.X());
diff --git a/sd/xml/layoutlist.xml b/sd/xml/layoutlist.xml
index 727e5a8bb86a..c5ed26df819e 100644
--- a/sd/xml/layoutlist.xml
+++ b/sd/xml/layoutlist.xml
@@ -3,61 +3,61 @@
-->
<layout-list>
<layout type="AUTOLAYOUT_TITLE_CONTENT">
- <presobj kind="PRESOBJ_TITLE" layout-pos-x="1400" layout-pos-y="837" layout-size-height="3507" layout-size-width="25200"/>
- <presobj kind="PRESOBJ_OUTLINE1" layout-pos-x="1400" layout-pos-y="4914" layout-size-height="12297" layout-size-width="25600"/>
+ <presobj kind="PRESOBJ_TITLE" title-shape-relative-height="1" title-shape-relative-width="1" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE1" title-shape-relative-height="0.477" title-shape-relative-width="0.488" title-shape-relative-pos="1.05" boolx="1"/>
</layout>
<layout type="AUTOLAYOUT_TITLE_2VTEXT">
- <presobj kind="PRESOBJ_TITLE" layout-pos-x="1400" layout-pos-y="837" layout-size-height="3507" layout-size-width="25200"/>
- <presobj kind="PRESOBJ_OUTLINE1" layout-pos-x="1400" layout-pos-y="4914" layout-size-height="12297" layout-size-width="12180"/>
- <presobj kind="PRESOBJ_OUTLINE2" layout-pos-x="14311" layout-pos-y="4914" layout-size-height="12297" layout-size-width="12180"/>
+ <presobj kind="PRESOBJ_TITLE" title-shape-relative-height="1" title-shape-relative-width="1" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE1" title-shape-relative-height="1" title-shape-relative-width="0.488" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE2" title-shape-relative-height="1" title-shape-relative-width="0.488" title-shape-relative-pos="1.05" boolx="1"/>
</layout>
<layout type="AUTOLAYOUT_TITLE_CONTENT_OVER_CONTENT">
- <presobj kind="PRESOBJ_TITLE" layout-pos-x="1400" layout-pos-y="837" layout-size-height="3507" layout-size-width="25200"/>
- <presobj kind="PRESOBJ_OUTLINE1" layout-pos-x="1400" layout-pos-y="4914" layout-size-height="25200" layout-size-width="5809"/>
- <presobj kind="PRESOBJ_OUTLINE2" layout-pos-x="1400" layout-pos-y="11274" layout-size-height="25200" layout-size-width="5809"/>
+ <presobj kind="PRESOBJ_TITLE" title-shape-relative-height="1" title-shape-relative-width="1" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE1" title-shape-relative-height="0.477" title-shape-relative-width="1" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE2" title-shape-relative-height="0.477" title-shape-relative-width="1" title-shape-relative-pos="1.095" boolx="0"/>
</layout>
<layout type="AUTOLAYOUT_TITLE_CONTENT_2CONTENT">
- <presobj kind="PRESOBJ_TITLE" layout-pos-x="1400" layout-pos-y="837" layout-size-height="3507" layout-size-width="25200"/>
- <presobj kind="PRESOBJ_OUTLINE1" layout-pos-x="1400" layout-pos-y="4914" layout-size-height="12180" layout-size-width="12297"/>
- <presobj kind="PRESOBJ_OUTLINE2" layout-pos-x="14311" layout-pos-y="4914" layout-size-height="5809" layout-size-width="12297"/>
- <presobj kind="PRESOBJ_OUTLINE3" layout-pos-x="14311" layout-pos-y="11274" layout-size-height="5809" layout-size-width="12297"/>
+ <presobj kind="PRESOBJ_TITLE" title-shape-relative-height="1" title-shape-relative-width="1" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE1" title-shape-relative-height="1" title-shape-relative-width="0.488" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE2" title-shape-relative-height="0.477" title-shape-relative-width="0.488" title-shape-relative-pos="1.095" boolx="0"/>
+ <presobj kind="PRESOBJ_OUTLINE3" title-shape-relative-height="0.477" title-shape-relative-width="0.488" title-shape-relative-pos="1.05" boolx="1"/>
</layout>
<layout type="AUTOLAYOUT_TITLE_4CONTENT">
- <presobj kind="PRESOBJ_TITLE" layout-pos-x="1400" layout-pos-y="837" layout-size-height="3507" layout-size-width="25200"/>
- <presobj kind="PRESOBJ_OUTLINE1" layout-pos-x="1400" layout-pos-y="4914" layout-size-height="12180" layout-size-width="25200"/>
- <presobj kind="PRESOBJ_OUTLINE2" layout-pos-x="1400" layout-pos-y="4914" layout-size-height="12180" layout-size-width="25200"/>
- <presobj kind="PRESOBJ_OUTLINE3" layout-pos-x="1400" layout-pos-y="4914" layout-size-height="12180" layout-size-width="25200"/>
- <presobj kind="PRESOBJ_OUTLINE4" layout-pos-x="1400" layout-pos-y="4914" layout-size-height="12180" layout-size-width="25200"/>
+ <presobj kind="PRESOBJ_TITLE" title-shape-relative-height="1" title-shape-relative-width="1" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE1" title-shape-relative-height="0.477" title-shape-relative-width="0.488" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE2" title-shape-relative-height="0.477" title-shape-relative-width="0.488" title-shape-relative-pos="1.05" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE3" title-shape-relative-height="0.477" title-shape-relative-width="0.488" title-shape-relative-pos="1.095" boolx="0"/>
+ <presobj kind="PRESOBJ_OUTLINE4" title-shape-relative-height="0.477" title-shape-relative-width="0.488" title-shape-relative-pos="1.095" boolx="0"/>
</layout>
<layout type="AUTOLAYOUT_ONLY_TEXT">
- <presobj kind="PRESOBJ_OUTLINE1" layout-pos-x="1400" layout-pos-y="837" layout-size-height="25200" layout-size-width="16256"/>
+ <presobj kind="PRESOBJ_OUTLINE1" title-shape-relative-height="1" title-shape-relative-width="1" title-shape-relative-pos="0" boolx="1"/>
</layout>
<layout type="AUTOLAYOUT_TITLE_ONLY">
- <presobj kind="PRESOBJ_TITLE" layout-pos-x="1400" layout-pos-y="837" layout-size-height="3507" layout-size-width="25200"/>
+ <presobj kind="PRESOBJ_TITLE" title-shape-relative-height="1" title-shape-relative-width="1" title-shape-relative-pos="0" boolx="1"/>
</layout>
<layout type="AUTOLAYOUT_TITLE_6CONTENT">
- <presobj kind="PRESOBJ_TITLE" layout-pos-x="1400" layout-pos-y="837" layout-size-height="3507" layout-size-width="25200"/>
- <presobj kind="PRESOBJ_OUTLINE1" layout-pos-x="1400" layout-pos-y="4914" layout-size-height="5809" layout-size-width="8114"/>
- <presobj kind="PRESOBJ_OUTLINE2" layout-pos-x="9919" layout-pos-y="4914" layout-size-height="5809" layout-size-width="8114"/>
- <presobj kind="PRESOBJ_OUTLINE3" layout-pos-x="18439" layout-pos-y="4914" layout-size-height="5809" layout-size-width="8114"/>
- <presobj kind="PRESOBJ_OUTLINE4" layout-pos-x="18439" layout-pos-y="11274" layout-size-height="5809" layout-size-width="8114"/>
- <presobj kind="PRESOBJ_OUTLINE5" layout-pos-x="9919" layout-pos-y="11274" layout-size-height="5809" layout-size-width="8114"/>
- <presobj kind="PRESOBJ_OUTLINE6" layout-pos-x="1400" layout-pos-y="11274" layout-size-height="5809" layout-size-width="8114"/>
+ <presobj kind="PRESOBJ_TITLE" title-shape-relative-height="1" title-shape-relative-width="1" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE1" title-shape-relative-height="0.477" title-shape-relative-width="0.322" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE2" title-shape-relative-height="0.477" title-shape-relative-width="0.322" title-shape-relative-pos="1.05" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE3" title-shape-relative-height="0.477" title-shape-relative-width="0.322" title-shape-relative-pos="2.10" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE4" title-shape-relative-height="0.477" title-shape-relative-width="0.322" title-shape-relative-pos="1.095" boolx="0"/>
+ <presobj kind="PRESOBJ_OUTLINE5" title-shape-relative-height="0.477" title-shape-relative-width="0.322" title-shape-relative-pos="1.05" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE6" title-shape-relative-height="0.477" title-shape-relative-width="0.322" title-shape-relative-pos="1.095" boolx="0"/>
</layout>
<layout type="AUTOLAYOUT__START">
- <presobj kind="PRESOBJ_TITLE" layout-pos-x="1400" layout-pos-y="837" layout-size-height="3507" layout-size-width="25200"/>
- <presobj kind="PRESOBJ_OUTLINE1" layout-pos-x="1400" layout-pos-y="4914" layout-size-height="12297" layout-size-width="25600"/>
+ <presobj kind="PRESOBJ_TITLE" title-shape-relative-height="1" title-shape-relative-width="1" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE1" title-shape-relative-height="1" title-shape-relative-width="1" title-shape-relative-pos="0" boolx="1"/>
</layout>
<layout type="AUTOLAYOUT_TITLE_2CONTENT_CONTENT">
- <presobj kind="PRESOBJ_TITLE" layout-pos-x="1400" layout-pos-y="837" layout-size-height="3507" layout-size-width="25200"/>
- <presobj kind="PRESOBJ_OUTLINE1" layout-pos-x="1400" layout-pos-y="4914" layout-size-height="5809" layout-size-width="12297"/>
- <presobj kind="PRESOBJ_OUTLINE2" layout-pos-x="1400" layout-pos-y="11274" layout-size-height="5809" layout-size-width="12297">
- <presobj kind="PRESOBJ_OUTLINE3" layout-pos-x="14311" layout-pos-y="4914" layout-size-height="12180" layout-size-width="12297"/>
+ <presobj kind="PRESOBJ_TITLE" title-shape-relative-height="1" title-shape-relative-width="1" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE1" title-shape-relative-height="0.477" title-shape-relative-width="0.488" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE2" title-shape-relative-height="0.477" title-shape-relative-width="0.488" title-shape-relative-pos="1.095" boolx="0"/>
+ <presobj kind="PRESOBJ_OUTLINE3" title-shape-relative-height="1" title-shape-relative-width="0.488" title-shape-relative-pos="1.05" boolx="1"/>
</layout>
<layout type="AUTOLAYOUT_TITLE_2CONTENT_OVER_CONTENT">
- <presobj kind="PRESOBJ_TITLE" layout-pos-x="1400" layout-pos-y="837" layout-size-height="3507" layout-size-width="25200"/>
- <presobj kind="PRESOBJ_OUTLINE1" layout-pos-x="1400" layout-pos-y="4914" layout-size-height="5809" layout-size-width="12297"/>
- <presobj kind="PRESOBJ_OUTLINE2" layout-pos-x="14311" layout-pos-y="4914" layout-size-height="5809" layout-size-width="12297"/>
- <presobj kind="PRESOBJ_OUTLINE3" layout-pos-x="1400" layout-pos-y="11274" layout-size-height="5809" layout-size-width="25198"/>
+ <presobj kind="PRESOBJ_TITLE" title-shape-relative-height="1" title-shape-relative-width="1" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE1" title-shape-relative-height="0.477" title-shape-relative-width="0.488" title-shape-relative-pos="0" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE2" title-shape-relative-height="0.477" title-shape-relative-width="0.488" title-shape-relative-pos="1.05" boolx="1"/>
+ <presobj kind="PRESOBJ_OUTLINE3" title-shape-relative-height="1" title-shape-relative-width="1" title-shape-relative-pos="1.095" boolx="0"/>
</layout>
</layout-list> \ No newline at end of file