public override Status Layout(Area area, Region region) { int numChildren = this.children.Count; string regionClass = "none"; if (region != null) { regionClass = region.GetRegionClass(); } else { if (GetFlowName().Equals("xsl-region-before")) { regionClass = RegionBefore.REGION_CLASS; } else if (GetFlowName().Equals("xsl-region-after")) { regionClass = RegionAfter.REGION_CLASS; } else if (GetFlowName().Equals("xsl-region-start")) { regionClass = RegionStart.REGION_CLASS; } else if (GetFlowName().Equals("xsl-region-end")) { regionClass = RegionEnd.REGION_CLASS; } } if (area is AreaContainer) { ((AreaContainer)area).setAreaName(regionClass); } area.setAbsoluteHeight(0); SetContentWidth(area.getContentWidth()); for (int i = 0; i < numChildren; i++) { FObj fo = (FObj)children[i]; Status status; if ((status = fo.Layout(area)).isIncomplete()) { FonetDriver.ActiveDriver.FireFonetWarning( "Some static content could not fit in the area."); this.marker = i; if ((i != 0) && (status.getCode() == Status.AREA_FULL_NONE)) { status = new Status(Status.AREA_FULL_SOME); } return (status); } } ResetMarker(); return new Status(Status.OK); }