/* ********************************************************************** */ /* Implementation of the MathML W3C REC http://www.w3.org/TR/REC-MathML */ /* Section 3. Presentation Markup 3.2 Token Elements 3.2.1 Attributes common to token elements C- 3.2.2 -- identifier C 3.2.3 -- number C- 3.2.4 -- operator, fence, or separator CSS 3.2.5 -- text 3.2.6 -- space CSS 3.2.7 -- string literal 3.3 General Layout Schemata C 3.3.1 -- horizontally group any number of subexpressions C 3.3.2 -- form a fraction from two subexpressions 3.3.3 and -- form a radical 3.3.4 -- style change CSS 3.3.5 -- enclose a syntax error message from a preprocessor 3.3.6 -- adjust space around content C 3.3.7 -- make content invisible but preserve its size 3.3.8 -- surround content with a pair of fences 3.4 Script and Limit Schemata C 3.4.1 -- attach a subscript to a base C 3.4.2 -- attach a superscript to a base C 3.4.3 -- attach a subscript-superscript pair to a base C 3.4.4 -- attach an underscript to a base C 3.4.5 -- attach an overscript to a base C 3.4.6 -- attach an underscript-overscript pair to a base C 3.4.7 -- attach prescripts and tensor indices to a base 3.5 Tables and Matrices CH 3.5.1 -- table or matrix CH 3.5.2 -- row in a table or matrix CH 3.5.3 -- one entry in a table or matrix 3.5.4 and -- alignment markers 3.6 Enlivening Expressions 3.6.1 -- bind actions to a subexpression Table of argument requirements ------------------------------ tag number of children ------------------------------ 0 or more 2 (numerator denominator) 1 2 (base index) 1 1 1 1 0 or more 2 (base subscript) 2 (base superscript) 3 (base subscript superscript) 2 (base underscript) 2 (base overscript) 3 (base underscript overscript) 1 or more (base ( subscript superscript ) * [ ( presubscript presuperscript ) * ]) 0 or more rows (s, inferred if necessary) 0 or more table elements (s, inferred if necessary) 1 1 or more (argument roles depend on actiontype attribute) */ /* NOTES: Since frames are not refCounted, don't use nsCOMPtr with them */ #if 0 // NOTES ---- // border and padding -- study nsHTMLButtonControlFrame.cpp ... // Text size infos nsCOMPtr fm; aPresContext->GetMetricsFor(GetStyleFont()->mFont, getter_AddRefs(fm)); nsAutoString text; fm->GetHeight([height]); renderingContext->SetFont(fm); renderingContext->GetWidth( text, [width] ); fm->GetMaxAscent( [baseline] ); fm->GetMaxDescent( [depth] ); #endif