From: Norman W. <nw...@us...> - 2002-11-15 15:27:48
|
Update of /cvsroot/docbook/xsl/extensions/xsltproc/python In directory usw-pr-cvs1:/tmp/cvs-serv28798 Modified Files: docbook.py Log Message: Handle FO result trees Index: docbook.py =================================================================== RCS file: /cvsroot/docbook/xsl/extensions/xsltproc/python/docbook.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** docbook.py 15 Nov 2002 14:04:07 -0000 1.1 --- docbook.py 15 Nov 2002 15:26:37 -0000 1.2 *************** *** 33,37 **** # Get the nominal table width ! varString = tctxt.variableLookup("nominal.table.width", None); if varString == None: nominalWidth = 6 * pixelsPerInch; --- 33,37 ---- # Get the nominal table width ! varString = lookupVariable(tctxt, "nominal.table.width", None); if varString == None: nominalWidth = 6 * pixelsPerInch; *************** *** 39,47 **** nominalWidth = convertLength(varString); ! varString = tctxt.variableLookup("table.width", None); ! if varString == None: ! tableWidth = "100%" ! else: ! tableWidth = varString foStylesheet = (tctxt.variableLookup("stylesheet.result.type", None) == "fo"); --- 39,44 ---- nominalWidth = convertLength(varString); ! # Get the requested table width ! tableWidth = lookupVariable(tctxt, "table.width", "100%") foStylesheet = (tctxt.variableLookup("stylesheet.result.type", None) == "fo"); *************** *** 54,60 **** colgroup = libxml2.xmlNode(_obj = nodeset[0]) ! col = colgroup.children; while col != None: ! width = col.prop("width") relPart = 0.0; absPart = 0.0; --- 51,71 ---- colgroup = libxml2.xmlNode(_obj = nodeset[0]) ! # If this is an foStylesheet, we've been passed a list of fo:table-columns. ! # Otherwise we've been passed a colgroup that contains a list of cols. ! if foStylesheet: ! colChildren = colgroup ! else: ! colChildren = colgroup.children ! ! col = colChildren while col != None: ! if foStylesheet: ! width = col.prop("column-width") ! else: ! width = col.prop("width") ! ! if width == None: ! width = "1*" ! relPart = 0.0; absPart = 0.0; *************** *** 128,143 **** for count in range(len(relParts)): rel = relParts[count] / absTotal * 100 ! widths.append("%d%%" % rel) # Danger, Will Robinson! In-place modification of the result tree! # Side-effect free? We don' need no steenkin' side-effect free! count = 0 ! col = colgroup.children while col != None: ! col.setProp("width", widths[count]) count = count+1 col = col.next ! return [colgroup] def convertLength(length): --- 139,159 ---- for count in range(len(relParts)): rel = relParts[count] / absTotal * 100 ! widths.append(rel) ! widths = correctRoundingError(widths) # Danger, Will Robinson! In-place modification of the result tree! # Side-effect free? We don' need no steenkin' side-effect free! count = 0 ! col = colChildren while col != None: ! if foStylesheet: ! col.setProp("column-width", widths[count]) ! else: ! col.setProp("width", widths[count]) ! count = count+1 col = col.next ! return nodeset def convertLength(length): *************** *** 164,167 **** --- 180,184 ---- # them back to integers and then distribute the error so that they sum # to exactly 100%. + totalWidth = 0 widths = []; *************** *** 185,188 **** --- 202,220 ---- return widths + + def lookupVariable(tctxt, varName, default): + varString = tctxt.variableLookup(varName, None); + if varString == None: + return default + + # If it's a list, get the first element + if type(varString) == type([]): + varString = varString[0] + + # If it's not a string, it must be a node, get its content + if type(varString) != type(""): + varString = varString.content + + return varString # ====================================================================== |