<* PRAGMA LL *>An
HTMLVBTG
is a VBT class for diplaying HTML using a tree of VBTs.
INTERFACE********************************************** ********* Look and feel parameters ********* **********************************************HTMLVBTG ; IMPORT HTML, HTMLVBT, RefList, Thread, Web, Font, PaintOp, Pixmap, PixmapVBT, TextVBT, VBT; TYPE Info = OBJECT url: TEXT; METHODS <* LL<VBT.mu *> load (page: Web.Page) RAISES {Thread.Alerted}; END; ImageInfo <: PublicImageInfo; PublicImageInfo = Info OBJECT align: HTML.Alignment; END; ObletInfo <: PublicObletInfo; PublicObletInfo = Info OBJECT END; RigidTextVBT <: TextVBT.T; RigidPixmapVBT <: PixmapVBT.T; T <: Private; Private <: Public; Public = HTMLVBT.T OBJECT METHODS <* LL <= VBT.mu *> init ( html : HTML.T; useAlt : BOOLEAN; useZippers: BOOLEAN; VAR list : RefList.T; scrollBar : BOOLEAN): T; END; PROCEDURE EnterHMode (v: T; parent: VBT.Split);
All sizes are specified in points.
********* colors *********
CONST BackgroundColor = "LightGray"; RegularColor = "Black"; AnchorColor = "Blue"; HighlightColor = "Red"; FollowedColor = "Purple"; IsIndexBgColor = "Pink"; ErrorColor = "Red";********* spacing *********
CONST ShadowAmt = 0.5; PageMarginAmt = 10.0; ParSkipAmt = 10.0; IndentAmt = 15.0;********* fonts *********
TYPE FontFamily = {Normal, Fixed}; FontWeight = {Normal, Bold}; FontSlant = {Normal, Slanted}; FontSize = {Huge, LARGE, Large, Normal, Small, Tiny}; FontStyle = {Plain, Bold, Slanted, BoldSlanted}; CONST NormalFontNames = ARRAY FontStyle OF TEXT{ "times_roman", "times_bold", "times_italic", "times_bolditalic"}; NormalFontRegularSizes = ARRAY FontSize OF TEXT {"24", "18", "14", "12", "10", "8"}; NormalFontBigSizes = ARRAY FontSize OF TEXT {"36", "24", "18", "18", "14", "12"}; NormalFontSizes = NormalFontRegularSizes; FixedFontNames = ARRAY FontStyle OF TEXT{ "courier", "courier_bold", "courier_oblique", "courier_boldoblique"}; FixedFontRegularSizes = ARRAY FontSize OF TEXT {"24", "18", "14", "12", "10", "8"}; FixedFontBigSizes = ARRAY FontSize OF TEXT {"36", "24", "18", "18", "14", "12"}; FixedFontSizes = FixedFontRegularSizes;********* horizontal rules *********
CONST HRAmt = 1.0; HRPreSkipAmt = 3.0; HRPostSkipAmt = 3.0;********* headings *********
TYPE HeadingInfo = RECORD preGlue: REAL; postGlue: REAL; fontSize: FontSize; END; State = RECORD family: FontFamily; size : FontSize; weight: FontWeight; slant : FontSlant; font : Font.T; bgFg : PaintOp.ColorQuad; END; CONST headingInfo = ARRAY[1..6] OF HeadingInfo { (* H1 *) HeadingInfo{10.0, 10.0, FontSize.Huge}, (* H2 *) HeadingInfo{ 8.0, 8.0, FontSize.LARGE}, (* H3 *) HeadingInfo{ 6.0, 6.0, FontSize.Large}, (* H4 *) HeadingInfo{ 4.0, 4.0, FontSize.Normal}, (* H5 *) HeadingInfo{ 4.0, 4.0, FontSize.Small}, (* H6 *) HeadingInfo{ 2.0, 2.0, FontSize.Tiny}}; VAR (* CONST *) EmptyImage: Pixmap.T; ErrorImage: Pixmap.T; RegularColors : PaintOp.ColorQuad; RegularBgColors: PaintOp.ColorQuad; AnchorColors : PaintOp.ColorQuad; ErrorColors : PaintOp.ColorQuad; END HTMLVBTG.