|
@@ -0,0 +1,382 @@
|
|
|
+MODULE CSS2Properties;
|
|
|
+ IMPORT DynamicStrings, XMLObjects, CSS2, WMWindowManager, WMGraphics, Raster, GfxImages, GfxFonts, Gfx;
|
|
|
+CONST
|
|
|
+ Aqua* = LONGINT(0FF00FFFFH);
|
|
|
+ Black* = LONGINT(0FF000000H);
|
|
|
+ Blue* = LONGINT(0FF0000FFH);
|
|
|
+ Fuchsia* = LONGINT(0FFFF00FFH);
|
|
|
+ Gray* = LONGINT(0FF808080H);
|
|
|
+ Green* = LONGINT(0FF008000H);
|
|
|
+ Lime* = LONGINT(0FF00FF00H);
|
|
|
+ Maroon* = LONGINT(0FF800000H);
|
|
|
+ Navy* = LONGINT(0FF000080H);
|
|
|
+ Olive* = LONGINT(0FF808000H);
|
|
|
+ Purple* = LONGINT(0FF800080H);
|
|
|
+ Red* = LONGINT(0FFFF0000H);
|
|
|
+ Silver* = LONGINT(0FFC0C0C0H);
|
|
|
+ Teal* = LONGINT(0FF008080H);
|
|
|
+ White* = LONGINT(0FFFFFFFFH);
|
|
|
+ Yellow* = LONGINT(0FFFFFF00H);
|
|
|
+ Transparent* = 0;
|
|
|
+ XXSmall* = 0;
|
|
|
+ XSmall* = 1;
|
|
|
+ Small* = 2;
|
|
|
+ Medium* = 3;
|
|
|
+ Large* = 4;
|
|
|
+ XLarge* = 5;
|
|
|
+ XXLarge* = 6;
|
|
|
+ Larger* = 7;
|
|
|
+ Smaller* = 8;
|
|
|
+ None* = 1;
|
|
|
+ Inherit* = 2;
|
|
|
+ Normal* = 3;
|
|
|
+ Auto* = 4;
|
|
|
+ Top* = 5;
|
|
|
+ Center* = 6;
|
|
|
+ Bottom* = 7;
|
|
|
+ Left* = 8;
|
|
|
+ Right* = 9;
|
|
|
+ Repeat* = 5;
|
|
|
+ NoRepeat* = 6;
|
|
|
+ Collapse* = 5;
|
|
|
+ Separate* = 6;
|
|
|
+ Hidden* = 6;
|
|
|
+ Dotted* = 7;
|
|
|
+ Dashed* = 8;
|
|
|
+ Solid* = 9;
|
|
|
+ Double* = 10;
|
|
|
+ Groove* = 11;
|
|
|
+ Ridge* = 12;
|
|
|
+ Inset* = 13;
|
|
|
+ Outset* = 14;
|
|
|
+ Thin* = 5;
|
|
|
+ Thick* = 7;
|
|
|
+ StaticPosition* = 5;
|
|
|
+ Clear* = 5;
|
|
|
+ OpenQuote* = 5;
|
|
|
+ CloseQuote* = 6;
|
|
|
+ NoOpenQuote* = 7;
|
|
|
+ NoCloseQuote* = 8;
|
|
|
+ Crosshair* = 5;
|
|
|
+ Default* = 6;
|
|
|
+ Pointer* = 7;
|
|
|
+ Move* = 8;
|
|
|
+ EResize* = 9;
|
|
|
+ NEResize* = 10;
|
|
|
+ NWResize* = 11;
|
|
|
+ NResize* = 12;
|
|
|
+ SEResize* = 13;
|
|
|
+ SWResize* = 14;
|
|
|
+ SResize* = 15;
|
|
|
+ WResize* = 16;
|
|
|
+ Text* = 17;
|
|
|
+ Wait* = 18;
|
|
|
+ Help* = 19;
|
|
|
+ Ltr* = 5;
|
|
|
+ Rtl* = 6;
|
|
|
+ Inline* = 3;
|
|
|
+ Block* = 4;
|
|
|
+ ListItem* = 5;
|
|
|
+ RunIn* = 6;
|
|
|
+ Compact* = 7;
|
|
|
+ Marker* = 8;
|
|
|
+ Table* = 9;
|
|
|
+ InlineTable* = 10;
|
|
|
+ TableRowGroup* = 11;
|
|
|
+ TableHeaderGroup* = 12;
|
|
|
+ TableFooterGroup* = 13;
|
|
|
+ TableRow* = 14;
|
|
|
+ TableColumnGroup* = 15;
|
|
|
+ TableColumn* = 16;
|
|
|
+ TableCell* = 17;
|
|
|
+ TableCaption* = 18;
|
|
|
+ Show* = 5;
|
|
|
+ Hide* = 6;
|
|
|
+ Caption* = 5;
|
|
|
+ Icon* = 6;
|
|
|
+ Menu* = 7;
|
|
|
+ MessageBox* = 8;
|
|
|
+ SmallCaption* = 9;
|
|
|
+ StatusBar* = 10;
|
|
|
+ Wider* = 5;
|
|
|
+ Narrower* = 6;
|
|
|
+ UltraCondensed* = 7;
|
|
|
+ ExtraCondensed* = 8;
|
|
|
+ Condensed* = 9;
|
|
|
+ SemiCondensed* = 10;
|
|
|
+ SemiExpanded* = 11;
|
|
|
+ Expanded* = 12;
|
|
|
+ ExtraExpanded* = 13;
|
|
|
+ UltraExpanded* = 14;
|
|
|
+ Italic* = 5;
|
|
|
+ Oblique* = 6;
|
|
|
+ SmallCaps* = 5;
|
|
|
+ Bold* = 5;
|
|
|
+ Bolder* = 6;
|
|
|
+ Lighter* = 7;
|
|
|
+ Inside* = 5;
|
|
|
+ Outside* = 6;
|
|
|
+ Disc* = 5;
|
|
|
+ Circle* = 6;
|
|
|
+ Square* = 7;
|
|
|
+ Decimal* = 8;
|
|
|
+ DecimalLeadingZero* = 9;
|
|
|
+ LowerRoman* = 10;
|
|
|
+ UpperRoman* = 11;
|
|
|
+ LowerGreek* = 12;
|
|
|
+ LowerAlpha* = 13;
|
|
|
+ LowerLatin* = 14;
|
|
|
+ UpperAlpha* = 15;
|
|
|
+ UpperLatin* = 16;
|
|
|
+ Hebrew* = 17;
|
|
|
+ Armenian* = 18;
|
|
|
+ Georgian* = 19;
|
|
|
+ CjkIdeographic* = 20;
|
|
|
+ Hiragana* = 21;
|
|
|
+ Katakana* = 22;
|
|
|
+ HiraganaIroha* = 23;
|
|
|
+ KatakanaIroha* = 24;
|
|
|
+ Invert* = 122;
|
|
|
+ Visible* = 7;
|
|
|
+ Static* = 5;
|
|
|
+ Relative* = 6;
|
|
|
+ Absolute* = 7;
|
|
|
+ Fixed* = 8;
|
|
|
+ Scroll* = 9;
|
|
|
+ Justify* = 10;
|
|
|
+ Underline* = 5;
|
|
|
+ Overline* = 6;
|
|
|
+ LineThrough* = 7;
|
|
|
+ Blink* = 8;
|
|
|
+ Capitalize* = 5;
|
|
|
+ Uppercase* = 6;
|
|
|
+ Lowercase* = 7;
|
|
|
+ Embed* = 5;
|
|
|
+ BidiOverride* = 6;
|
|
|
+ Baseline* = 8;
|
|
|
+ Sub* = 9;
|
|
|
+ Super* = 10;
|
|
|
+ TextTop* = 11;
|
|
|
+ Middle* = 12;
|
|
|
+ TextBottom* = 13;
|
|
|
+ Pre* = 5;
|
|
|
+ Nowrap* = 6;
|
|
|
+ DummyAuto = 0;
|
|
|
+TYPE
|
|
|
+ String = CSS2.String;
|
|
|
+
|
|
|
+ Value* = RECORD
|
|
|
+ specified: CSS2.Term;
|
|
|
+ END;
|
|
|
+
|
|
|
+ Color* = RECORD (Value)
|
|
|
+ computed*: RECORD
|
|
|
+ r*, g*, b*, a*: CHAR;
|
|
|
+ END;
|
|
|
+ END;
|
|
|
+
|
|
|
+ TRBLColor* = RECORD
|
|
|
+ top*, right*, bottom*, left*: Color;
|
|
|
+ END;
|
|
|
+
|
|
|
+ Ident* = RECORD (Value)
|
|
|
+ computed*: SHORTINT;
|
|
|
+ END;
|
|
|
+
|
|
|
+ TRBLIdent* = RECORD
|
|
|
+ top*, right*, bottom*, left*: Ident;
|
|
|
+ END;
|
|
|
+
|
|
|
+ Dim* = RECORD (Value)
|
|
|
+ computed*: LONGREAL;
|
|
|
+ END;
|
|
|
+
|
|
|
+ OrientDim* = RECORD
|
|
|
+ horizontal*, vertical*: Dim;
|
|
|
+ END;
|
|
|
+
|
|
|
+ TRBLDim* = RECORD
|
|
|
+ top*, right*, bottom*, left*: Dim;
|
|
|
+ END;
|
|
|
+
|
|
|
+ Bool* = RECORD (Value)
|
|
|
+ computed*: BOOLEAN;
|
|
|
+ END;
|
|
|
+
|
|
|
+ Img* = RECORD (Value)
|
|
|
+ computed*: GfxImages.Image;
|
|
|
+ END;
|
|
|
+
|
|
|
+ Cursor* = RECORD
|
|
|
+ specified: XMLObjects.Collection;
|
|
|
+ computed*: WMWindowManager.PointerInfo;
|
|
|
+ END;
|
|
|
+
|
|
|
+ Font* = RECORD (Value)
|
|
|
+ computed*: GfxFonts.Font;
|
|
|
+ END;
|
|
|
+
|
|
|
+ ImgTerm = OBJECT (CSS2.Term)
|
|
|
+ VAR
|
|
|
+ img: GfxImages.Image;
|
|
|
+ END ImgTerm;
|
|
|
+
|
|
|
+ AllMediaProperties* = OBJECT
|
|
|
+ VAR
|
|
|
+ parent: AllMediaProperties;
|
|
|
+ replaced, generated: BOOLEAN;
|
|
|
+ counterIncrement*, counterReset*, display*: Ident;
|
|
|
+
|
|
|
+ PROCEDURE ^ & Init*;
|
|
|
+ PROCEDURE ^ SetParent*(parent: AllMediaProperties);
|
|
|
+ PROCEDURE ^ GetValue*(name: ARRAY OF CHAR): CSS2.Declaration;
|
|
|
+ PROCEDURE ^ SetValue*(declaration: CSS2.Declaration);
|
|
|
+ PROCEDURE ^ Initialize*;
|
|
|
+ PROCEDURE ^ ComputeValues*;
|
|
|
+ PROCEDURE ^ IsBlockLevelElement*(): BOOLEAN;
|
|
|
+ PROCEDURE ^ IsInlineLevelElement*(): BOOLEAN;
|
|
|
+ END AllMediaProperties;
|
|
|
+
|
|
|
+ VisualProperties* = OBJECT (AllMediaProperties)
|
|
|
+ TYPE
|
|
|
+ ;
|
|
|
+
|
|
|
+ ;
|
|
|
+
|
|
|
+ ;
|
|
|
+
|
|
|
+ ;
|
|
|
+
|
|
|
+ ;
|
|
|
+
|
|
|
+ ;
|
|
|
+
|
|
|
+ ;
|
|
|
+
|
|
|
+ ;
|
|
|
+ VAR
|
|
|
+ dimensionChanged-: BOOLEAN;
|
|
|
+ containingBlock: RECORD
|
|
|
+ width, height: LONGREAL;
|
|
|
+ END;
|
|
|
+ ppi*: LONGREAL;
|
|
|
+ backgroundAttachment*: Bool;
|
|
|
+ backgroundColor*: Color;
|
|
|
+ backgroundImage*: Img;
|
|
|
+ backgroundPosition*: OrientDim;
|
|
|
+ backgroundRepeat*: RECORD
|
|
|
+ horizontal*, vertical*: Bool;
|
|
|
+ END;
|
|
|
+ borderCollapse*: Bool;
|
|
|
+ borderSpacing*: OrientDim;
|
|
|
+ borderColor*: TRBLColor;
|
|
|
+ borderStyle*: TRBLIdent;
|
|
|
+ borderWidth*, margin*, padding*: TRBLDim;
|
|
|
+ top*, right*, bottom*, left*: Dim;
|
|
|
+ height*, width*, maxHeight*, maxWidth*, minHeight*, minWidth*: Dim;
|
|
|
+ captionSide*: Ident;
|
|
|
+ clear*: RECORD
|
|
|
+ left*, right*: Bool;
|
|
|
+ END;
|
|
|
+ clip*: TRBLDim;
|
|
|
+ color*: Color;
|
|
|
+ cursor*: Cursor;
|
|
|
+ direction*: Bool;
|
|
|
+ emptyCells*: Bool;
|
|
|
+ float*: Ident;
|
|
|
+ font*: Font;
|
|
|
+ fontSize*: Dim;
|
|
|
+ fontFamily*, fontSizeAdjust*, fontStyle*, fontWeight*: CSS2.Term;
|
|
|
+ fontStretch*: Ident;
|
|
|
+ fontVariant*: Bool;
|
|
|
+ letterSpacing*, wordSpacing*: Dim;
|
|
|
+ lineHeight*: Dim;
|
|
|
+ listStyleImage*: Img;
|
|
|
+ listStylePosition*: Bool;
|
|
|
+ listStyleType*: Ident;
|
|
|
+ markerOffset*: Dim;
|
|
|
+ outlineColor*: Color;
|
|
|
+ outlineStyle*: Ident;
|
|
|
+ outlineWidth*: Dim;
|
|
|
+ overflow*: Ident;
|
|
|
+ position*: Ident;
|
|
|
+ quotes*: RECORD (Value)
|
|
|
+ END;
|
|
|
+ tableLayout*: Bool;
|
|
|
+ textAlign*: Ident;
|
|
|
+ textDecoration*: RECORD (Value)
|
|
|
+ computed*: SET;
|
|
|
+ END;
|
|
|
+ textIndent*: Dim;
|
|
|
+ textShadow*: RECORD (Value)
|
|
|
+ END;
|
|
|
+ textTransform*: Ident;
|
|
|
+ unicodeBidi*: Ident;
|
|
|
+ verticalAlign*: RECORD (Value)
|
|
|
+ computedLength*: LONGREAL;
|
|
|
+ computed*: SHORTINT;
|
|
|
+ END;
|
|
|
+ visibility*: Ident;
|
|
|
+ whiteSpace*: Ident;
|
|
|
+ zIndex*: RECORD (Value)
|
|
|
+ computed*: LONGINT;
|
|
|
+ END;
|
|
|
+
|
|
|
+ PROCEDURE ^ & Init*;
|
|
|
+ PROCEDURE ^ SetParent*(parent: AllMediaProperties);
|
|
|
+ PROCEDURE ^ GetValue*(name: ARRAY OF CHAR): CSS2.Declaration;
|
|
|
+ PROCEDURE ^ SetValue*(declaration: CSS2.Declaration);
|
|
|
+ PROCEDURE ^ Initialize*;
|
|
|
+ PROCEDURE ^ ComputeValues*;
|
|
|
+ PROCEDURE ^ ComputeDimensions*;
|
|
|
+ PROCEDURE ^ ComputeWidthsAndMargins;
|
|
|
+ PROCEDURE ^ ComputeHeightsAndMargins;
|
|
|
+ PROCEDURE ^ ComputeFont;
|
|
|
+ PROCEDURE ^ ComputeContainingBlock;
|
|
|
+ PROCEDURE ^ IsPositioned(): BOOLEAN;
|
|
|
+ END VisualProperties;
|
|
|
+VAR
|
|
|
+ AbsoluteFontSizes: ARRAY 7 OF SHORTINT;
|
|
|
+ defaultColor*: LONGINT;
|
|
|
+ defaultCursor*, crosshairCursor*, pointerCursor*, moveCursor*, eResizeCursor*, neResizeCursor*, nwResizeCursor*, nResizeCursor*, seResizeCursor*, swResizeCursor*, sResizeCursor*, wResizeCursor*, textCursor*, waitCursor*, helpCursor*: WMWindowManager.PointerInfo;
|
|
|
+ defaultFont*, captionFont*, iconFont*, menuFont*, messageBoxFont*, smallCaptionFont*, statusBarFont*: GfxFonts.Font;
|
|
|
+ thinBorder*, mediumBorder*, thickBorder*: LONGREAL;
|
|
|
+ m: WMWindowManager.WindowManager;
|
|
|
+
|
|
|
+ PROCEDURE ^ IsAutoSize*(size: Dim): BOOLEAN;
|
|
|
+ PROCEDURE ^ IsAutoMargin*(margin: Dim): BOOLEAN;
|
|
|
+ PROCEDURE ^ ChangeToIdent(identValue: SHORTINT): CSS2.Term;
|
|
|
+ PROCEDURE ^ ChangeToStringIdent(VAR term: CSS2.Term; identValue: ARRAY OF CHAR);
|
|
|
+ PROCEDURE ^ SetNil(VAR property: CSS2.Term; term: CSS2.Term): BOOLEAN;
|
|
|
+ PROCEDURE ^ SetIdentOrInherit(VAR property: CSS2.Term; term: CSS2.Term): BOOLEAN;
|
|
|
+ PROCEDURE ^ SetNone(VAR property: CSS2.Term; term: CSS2.Term): BOOLEAN;
|
|
|
+ PROCEDURE ^ ChangeToIdentCollection(VAR collection: XMLObjects.Collection; identValue: SHORTINT);
|
|
|
+ PROCEDURE ^ SetNilCollection(VAR collection: XMLObjects.Collection; term: CSS2.Term): BOOLEAN;
|
|
|
+ PROCEDURE ^ SetIdentOrInheritCollection(VAR collection: XMLObjects.Collection; term: CSS2.Term): BOOLEAN;
|
|
|
+ PROCEDURE ^ GetPixels(term: CSS2.Term; ppi: LONGREAL; font: GfxFonts.Font): LONGREAL;
|
|
|
+ PROCEDURE ^ ChangeToPixel(pixelVal: LONGREAL): CSS2.Term;
|
|
|
+ PROCEDURE ^ SetColor(VAR property: CSS2.Term; term: CSS2.Term; invertAllowed: BOOLEAN);
|
|
|
+ PROCEDURE ^ IsBorderStyle(term: CSS2.Term): BOOLEAN;
|
|
|
+ PROCEDURE ^ BorderStyle(VAR position: CSS2.Term; term: CSS2.Term);
|
|
|
+ PROCEDURE ^ IsBorderWidth(term: CSS2.Term): BOOLEAN;
|
|
|
+ PROCEDURE ^ BorderWidth(VAR position: CSS2.Term; term: CSS2.Term);
|
|
|
+ PROCEDURE ^ BoxOffset(VAR position: CSS2.Term; term: CSS2.Term);
|
|
|
+ PROCEDURE ^ ListStyleImage(VAR listStyleImage: CSS2.Term; term: CSS2.Term);
|
|
|
+ PROCEDURE ^ ListStylePosition(VAR listStylePosition: CSS2.Term; term: CSS2.Term);
|
|
|
+ PROCEDURE ^ ListStyleType(VAR listStyleType: CSS2.Term; term: CSS2.Term);
|
|
|
+ PROCEDURE ^ MarginWidth(VAR position: CSS2.Term; term: CSS2.Term);
|
|
|
+ PROCEDURE ^ MaxDimension(VAR dimension: CSS2.Term; term: CSS2.Term);
|
|
|
+ PROCEDURE ^ MinDimension(VAR dimension: CSS2.Term; term: CSS2.Term);
|
|
|
+ PROCEDURE ^ PaddingWidth(VAR position: CSS2.Term; term: CSS2.Term);
|
|
|
+ PROCEDURE ^ ComputeBool(VAR property: Bool; parentProperty: Bool; trueIdent: LONGINT);
|
|
|
+ PROCEDURE ^ ComputeColor(VAR property: Color; parentProperty, initial: Color);
|
|
|
+ PROCEDURE ^ ComputeImg(VAR property: Img; parentProperty: Img);
|
|
|
+ PROCEDURE ^ ComputeDim(VAR property: Dim; parentProperty: Dim; ppi, referenceDim: LONGREAL; font: GfxFonts.Font);
|
|
|
+ PROCEDURE ^ ComputeIdent(VAR property: Ident; parentProperty: Ident);
|
|
|
+ PROCEDURE ^ ComputeCursor(VAR property: Cursor; parentProperty: Cursor);
|
|
|
+ PROCEDURE ^ SetZeroIfAutoSize(size: Dim);
|
|
|
+ PROCEDURE ^ SetZeroIfAutoMargin(size: Dim);
|
|
|
+ PROCEDURE ^ ToGfxColor*(color: Color): Gfx.Color;
|
|
|
+ PROCEDURE ^ IntToColor(color: LONGINT): Color;
|
|
|
+BEGIN
|
|
|
+END CSS2Properties.
|