28#include "FilterInternal.h"
30#include "DocumentElement.h"
32OrderedListLevelStyle::OrderedListLevelStyle(
const _SH_PropertyList &xPropList) :
37void OrderedListStyle::updateListLevel(
const int iLevel,
const _SH_PropertyList &xPropList)
41 if (!isListLevelDefined(iLevel))
42 setListLevel(iLevel,
new OrderedListLevelStyle(xPropList));
45void OrderedListLevelStyle::write(DocumentHandler &xHandler,
int iLevel)
const
48 sLevel.sprintf(
"%i", (iLevel+1));
50 TagOpenElement listLevelStyleOpen(
"text:list-level-style-number");
51 listLevelStyleOpen.addAttribute(
"text:level", sLevel);
52 listLevelStyleOpen.addAttribute(
"text:style-name",
"Numbering Symbols");
53 if (mPropList[
"style:num-prefix"])
54 listLevelStyleOpen.addAttribute(
"style:num-prefix", mPropList[
"style:num-prefix"]->getStr());
55 if (mPropList[
"style:num-suffix"])
56 listLevelStyleOpen.addAttribute(
"style:num-suffix", mPropList[
"style:num-suffix"]->getStr());
57 if (mPropList[
"style:num-format"])
58 listLevelStyleOpen.addAttribute(
"style:num-format", mPropList[
"style:num-format"]->getStr());
59 if (mPropList[
"text:start-value"])
60 listLevelStyleOpen.addAttribute(
"text:start-value", mPropList[
"text:start-value"]->getStr());
61 listLevelStyleOpen.write(xHandler);
63 TagOpenElement stylePropertiesOpen(
"style:properties");
64 if (mPropList[
"text:space-before"])
65 stylePropertiesOpen.addAttribute(
"text:space-before", mPropList[
"text:space-before"]->getStr());
66 if (mPropList[
"text:min-label-width"])
67 stylePropertiesOpen.addAttribute(
"text:min-label-width", mPropList[
"text:min-label-width"]->getStr());
68 if (mPropList[
"text:min-label-distance"])
69 stylePropertiesOpen.addAttribute(
"text:min-label-distance", mPropList[
"text:min-label-distance"]->getStr());
70 stylePropertiesOpen.write(xHandler);
72 xHandler.endElement(
"style:properties");
73 xHandler.endElement(
"text:list-level-style-number");
76UnorderedListLevelStyle::UnorderedListLevelStyle(
const _SH_PropertyList &xPropList)
77 : mPropList(xPropList)
81void UnorderedListStyle::updateListLevel(
const int iLevel,
const _SH_PropertyList &xPropList)
85 if (!isListLevelDefined(iLevel))
86 setListLevel(iLevel,
new UnorderedListLevelStyle(xPropList));
89void UnorderedListLevelStyle::write(DocumentHandler &xHandler,
int iLevel)
const
92 sLevel.sprintf(
"%i", (iLevel+1));
93 TagOpenElement listLevelStyleOpen(
"text:list-level-style-bullet");
94 listLevelStyleOpen.addAttribute(
"text:level", sLevel);
95 listLevelStyleOpen.addAttribute(
"text:style-name",
"Bullet Symbols");
96 listLevelStyleOpen.addAttribute(
"style:num-suffice",
".");
97 if (mPropList[
"text:bullet-char"])
98 listLevelStyleOpen.addAttribute(
"text:bullet-char", mPropList[
"text:bullet-char"]->getStr());
99 listLevelStyleOpen.write(xHandler);
101 TagOpenElement stylePropertiesOpen(
"style:properties");
102 if (mPropList[
"text:space-before"])
103 stylePropertiesOpen.addAttribute(
"text:space-before", mPropList[
"text:space-before"]->getStr());
104 if (mPropList[
"text:min-label-width"])
105 stylePropertiesOpen.addAttribute(
"text:min-label-width", mPropList[
"text:min-label-width"]->getStr());
106 if (mPropList[
"text:min-label-distance"])
107 stylePropertiesOpen.addAttribute(
"text:min-label-distance", mPropList[
"text:min-label-distance"]->getStr());
108 stylePropertiesOpen.addAttribute(
"style:font-name",
"OpenSymbol");
109 stylePropertiesOpen.write(xHandler);
111 xHandler.endElement(
"style:properties");
112 xHandler.endElement(
"text:list-level-style-bullet");
115ListStyle::ListStyle(
const char *psName,
const int iListID) :
119 for (
int i=0; i<WP6_NUM_LIST_LEVELS; i++)
120 mppListLevels[i] = NULL;
124ListStyle::~ListStyle()
126 for (
int i=0; i<WP6_NUM_LIST_LEVELS; i++) {
127 if (mppListLevels[i])
128 delete(mppListLevels[i]);
133const bool ListStyle::isListLevelDefined(
int iLevel)
const
135 if (mppListLevels[iLevel] == NULL)
141void ListStyle::setListLevel(
int iLevel, ListLevelStyle *iListLevelStyle)
146 if (mppListLevels[iLevel] == NULL)
147 mppListLevels[iLevel] = iListLevelStyle;
150void ListStyle::write(DocumentHandler &xHandler)
const
152 TagOpenElement listStyleOpenElement(
"text:list-style");
153 listStyleOpenElement.addAttribute(
"style:name", getName());
154 listStyleOpenElement.write(xHandler);
156 for (
int i=0; i<WP6_NUM_LIST_LEVELS; i++) {
157 if (mppListLevels[i] != NULL)
158 mppListLevels[i]->write(xHandler, i);
161 xHandler.endElement(
"text:list-style");