diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/tags.h | 2 | ||||
| -rw-r--r-- | src/xmlcomposer.cpp | 43 | ||||
| -rw-r--r-- | src/xmlcomposer.h | 13 | 
3 files changed, 57 insertions, 1 deletions
@@ -48,6 +48,7 @@ static const char* kAtFix = "i_fix";  static const char* kAtCell = "i_cell";  static const char* kElListtable = "i_listtable";  static const char* kElListdef = "i_listdef"; +static const char* kElFontTable = "i_fonttable";  // All the main tags  static const char* kElPara = "para"; @@ -76,6 +77,7 @@ static const char* kElRow = "row";  static const char* kElTable = "table";  static const char* kElFootNote = "footnote";  static const char* kElRef = "ref"; +static const char* kElFont = "font";  // Attributes  static const char* kAtList = "list"; diff --git a/src/xmlcomposer.cpp b/src/xmlcomposer.cpp index 73d9521..cce87d4 100644 --- a/src/xmlcomposer.cpp +++ b/src/xmlcomposer.cpp @@ -682,6 +682,47 @@ ON_GROUPEND(Style)  } +// Font Table Analyser -------------------------------------------------------------- + +ON_INITIALIZE(FontTable) +{ +    AN_ELEMENT(kElFontTable); +} + +ON_GROUPSTART(FontTable) +{ +    // Each group should be a style +    AN_ANALYSER(Font); + +    // Without any character data +    AN_DESTINATION(Null); +} + + +// Font Analyser -------------------------------------------------------------------- + +ON_INITIALIZE(Font) +{ +   AN_ELEMENT(kElFont); +   AN_DESTINATION_ATTR(kAtName); +} + +ON_CONTROLWORD(Font) +{ +    // The font id +    if(cw == "f" && flags & kHasParam) +        AN_ATTRIBUTE(kAtId, param); + +    else +       DEFAULT_CONTROLWORD; +} + +ON_GROUPSTART(Font) +{ +    AN_ANALYSER(Skip); +} + +  // List Table Analyser --------------------------------------------------------------  ON_INITIALIZE(ListTable) @@ -918,7 +959,7 @@ ON_CONTROLWORD(Root)  	else if(cw == "info")  		AN_ANALYSER(Info);  	else if(cw == "fonttbl") -		AN_ANALYSER(Skip); +		AN_ANALYSER(FontTable);  	else if(cw == "colortbl")  		AN_ANALYSER(Skip);      else if(cw == "footnote") diff --git a/src/xmlcomposer.h b/src/xmlcomposer.h index e857ace..e14ecb7 100644 --- a/src/xmlcomposer.h +++ b/src/xmlcomposer.h @@ -243,6 +243,19 @@ protected:  		bool haveStyle;  	END_ANALYSER +    // Handle the Font Table +    ANALYSER(FontTable) +        INITIALIZE +        GROUPSTART +    END_ANALYSER + +    // Handle a Font in the Table +    ANALYSER(Font) +        INITIALIZE +        CONTROLWORD +        GROUPSTART +    END_ANALYSER +      // Handle the list definitions  	ANALYSER(ListTable)  		INITIALIZE  | 
