diff options
Diffstat (limited to 'xfa/src/fdp/include/fde_css.h')
-rw-r--r-- | xfa/src/fdp/include/fde_css.h | 2170 |
1 files changed, 1085 insertions, 1085 deletions
diff --git a/xfa/src/fdp/include/fde_css.h b/xfa/src/fdp/include/fde_css.h index cf6969b1dc..d4a675e82e 100644 --- a/xfa/src/fdp/include/fde_css.h +++ b/xfa/src/fdp/include/fde_css.h @@ -1,1085 +1,1085 @@ -// Copyright 2014 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef _FDE_CSS
-#define _FDE_CSS
-class IFDE_HTMNotify;
-class IFDE_CSSValue;
-class IFDE_CSSPrimitiveValue;
-class IFDE_CSSValueList;
-class IFDE_CSSDeclaration;
-class IFDE_CSSSelector;
-class IFDE_CSSRule;
-class IFDE_CSSStyleRule;
-class IFDE_CSSMediaRule;
-class IFDE_CSSFontFaceRule;
-class IFDE_CSSStyleSheet;
-class IFDE_CSSStyleSheetCache;
-class IFDE_CSSSyntaxParser;
-class IFDE_CSSRubyStyle;
-class IFDE_CSSMultiColumnStyle;
-class IFDE_CSSGeneratedContentStyle;
-class IFDE_CSSFontStyle;
-class IFDE_CSSBoundaryStyle;
-class IFDE_CSSPositionStyle;
-class IFDE_CSSParagraphStyle;
-class IFDE_CSSBackgroundStyle;
-class IFDE_CSSListStyle;
-class IFDE_CSSTableStyle;
-class IFDE_CSSVisualStyle;
-class IFDE_CSSComputedStyle;
-class IFDE_CSSTagProvider;
-class IFDE_CSSAccelerator;
-class IFDE_CSSStyleSelector;
-class IFDE_CSSCounterContext;
-class IFDE_CSSCounterManager;
-class IFDE_CSSQuoteContext;
-class IFDE_CSSContentContext;
-class IFDE_CSSMultiColumnContext;
-class IFDE_CSSFloatContext;
-enum FDE_CSSVALUETYPE {
- FDE_CSSVALUETYPE_Primitive = 1,
- FDE_CSSVALUETYPE_List = 2,
- FDE_CSSVALUETYPE_Shorthand,
-};
-enum FDE_CSSPRIMITIVETYPE {
- FDE_CSSPRIMITIVETYPE_Unknown = 0,
- FDE_CSSPRIMITIVETYPE_Number = 1,
- FDE_CSSPRIMITIVETYPE_Percent = 2,
- FDE_CSSPRIMITIVETYPE_EMS = 3,
- FDE_CSSPRIMITIVETYPE_EXS = 4,
- FDE_CSSPRIMITIVETYPE_PX = 5,
- FDE_CSSPRIMITIVETYPE_CM = 6,
- FDE_CSSPRIMITIVETYPE_MM = 7,
- FDE_CSSPRIMITIVETYPE_IN = 8,
- FDE_CSSPRIMITIVETYPE_PT = 9,
- FDE_CSSPRIMITIVETYPE_PC = 10,
- FDE_CSSPRIMITIVETYPE_String = 19,
- FDE_CSSPRIMITIVETYPE_URI = 20,
- FDE_CSSPRIMITIVETYPE_RGB = 25,
- FDE_CSSPRIMITIVETYPE_Enum,
- FDE_CSSPRIMITIVETYPE_Function,
-};
-enum FDE_CSSPROPERTYVALUE {
- FDE_CSSPROPERTYVALUE_Bolder,
- FDE_CSSPROPERTYVALUE_LowerLatin,
- FDE_CSSPROPERTYVALUE_Lowercase,
- FDE_CSSPROPERTYVALUE_LowerGreek,
- FDE_CSSPROPERTYVALUE_Sesame,
- FDE_CSSPROPERTYVALUE_None,
- FDE_CSSPROPERTYVALUE_NwResize,
- FDE_CSSPROPERTYVALUE_WResize,
- FDE_CSSPROPERTYVALUE_Dot,
- FDE_CSSPROPERTYVALUE_End,
- FDE_CSSPROPERTYVALUE_Ltr,
- FDE_CSSPROPERTYVALUE_Pre,
- FDE_CSSPROPERTYVALUE_Rtl,
- FDE_CSSPROPERTYVALUE_Sub,
- FDE_CSSPROPERTYVALUE_Top,
- FDE_CSSPROPERTYVALUE_Visible,
- FDE_CSSPROPERTYVALUE_Filled,
- FDE_CSSPROPERTYVALUE_SwResize,
- FDE_CSSPROPERTYVALUE_NoRepeat,
- FDE_CSSPROPERTYVALUE_Default,
- FDE_CSSPROPERTYVALUE_Transparent,
- FDE_CSSPROPERTYVALUE_Ridge,
- FDE_CSSPROPERTYVALUE_Right,
- FDE_CSSPROPERTYVALUE_HorizontalTb,
- FDE_CSSPROPERTYVALUE_DistributeLetter,
- FDE_CSSPROPERTYVALUE_DoubleCircle,
- FDE_CSSPROPERTYVALUE_Ruby,
- FDE_CSSPROPERTYVALUE_Collapse,
- FDE_CSSPROPERTYVALUE_Normal,
- FDE_CSSPROPERTYVALUE_Avoid,
- FDE_CSSPROPERTYVALUE_UpperRoman,
- FDE_CSSPROPERTYVALUE_Auto,
- FDE_CSSPROPERTYVALUE_Text,
- FDE_CSSPROPERTYVALUE_XSmall,
- FDE_CSSPROPERTYVALUE_Thin,
- FDE_CSSPROPERTYVALUE_Repeat,
- FDE_CSSPROPERTYVALUE_Small,
- FDE_CSSPROPERTYVALUE_NeResize,
- FDE_CSSPROPERTYVALUE_NoContent,
- FDE_CSSPROPERTYVALUE_Outside,
- FDE_CSSPROPERTYVALUE_EResize,
- FDE_CSSPROPERTYVALUE_TableRow,
- FDE_CSSPROPERTYVALUE_Bottom,
- FDE_CSSPROPERTYVALUE_Underline,
- FDE_CSSPROPERTYVALUE_CjkIdeographic,
- FDE_CSSPROPERTYVALUE_SeResize,
- FDE_CSSPROPERTYVALUE_Fixed,
- FDE_CSSPROPERTYVALUE_Double,
- FDE_CSSPROPERTYVALUE_Solid,
- FDE_CSSPROPERTYVALUE_RubyBaseGroup,
- FDE_CSSPROPERTYVALUE_OpenQuote,
- FDE_CSSPROPERTYVALUE_Lighter,
- FDE_CSSPROPERTYVALUE_LowerRoman,
- FDE_CSSPROPERTYVALUE_Strict,
- FDE_CSSPROPERTYVALUE_TableCaption,
- FDE_CSSPROPERTYVALUE_Oblique,
- FDE_CSSPROPERTYVALUE_Decimal,
- FDE_CSSPROPERTYVALUE_Loose,
- FDE_CSSPROPERTYVALUE_Hebrew,
- FDE_CSSPROPERTYVALUE_Hidden,
- FDE_CSSPROPERTYVALUE_Dashed,
- FDE_CSSPROPERTYVALUE_Embed,
- FDE_CSSPROPERTYVALUE_TableRowGroup,
- FDE_CSSPROPERTYVALUE_TableColumn,
- FDE_CSSPROPERTYVALUE_Static,
- FDE_CSSPROPERTYVALUE_Outset,
- FDE_CSSPROPERTYVALUE_DecimalLeadingZero,
- FDE_CSSPROPERTYVALUE_KeepWords,
- FDE_CSSPROPERTYVALUE_KatakanaIroha,
- FDE_CSSPROPERTYVALUE_Super,
- FDE_CSSPROPERTYVALUE_Center,
- FDE_CSSPROPERTYVALUE_TableHeaderGroup,
- FDE_CSSPROPERTYVALUE_Inside,
- FDE_CSSPROPERTYVALUE_XxLarge,
- FDE_CSSPROPERTYVALUE_Triangle,
- FDE_CSSPROPERTYVALUE_RubyTextGroup,
- FDE_CSSPROPERTYVALUE_Circle,
- FDE_CSSPROPERTYVALUE_Hiragana,
- FDE_CSSPROPERTYVALUE_RepeatX,
- FDE_CSSPROPERTYVALUE_RepeatY,
- FDE_CSSPROPERTYVALUE_Move,
- FDE_CSSPROPERTYVALUE_HiraganaIroha,
- FDE_CSSPROPERTYVALUE_RubyBase,
- FDE_CSSPROPERTYVALUE_Scroll,
- FDE_CSSPROPERTYVALUE_Smaller,
- FDE_CSSPROPERTYVALUE_TableFooterGroup,
- FDE_CSSPROPERTYVALUE_Baseline,
- FDE_CSSPROPERTYVALUE_Separate,
- FDE_CSSPROPERTYVALUE_Armenian,
- FDE_CSSPROPERTYVALUE_Open,
- FDE_CSSPROPERTYVALUE_Relative,
- FDE_CSSPROPERTYVALUE_Thick,
- FDE_CSSPROPERTYVALUE_Justify,
- FDE_CSSPROPERTYVALUE_Middle,
- FDE_CSSPROPERTYVALUE_Always,
- FDE_CSSPROPERTYVALUE_DistributeSpace,
- FDE_CSSPROPERTYVALUE_LineEdge,
- FDE_CSSPROPERTYVALUE_PreWrap,
- FDE_CSSPROPERTYVALUE_Medium,
- FDE_CSSPROPERTYVALUE_NResize,
- FDE_CSSPROPERTYVALUE_ListItem,
- FDE_CSSPROPERTYVALUE_Show,
- FDE_CSSPROPERTYVALUE_Currentcolor,
- FDE_CSSPROPERTYVALUE_NoCloseQuote,
- FDE_CSSPROPERTYVALUE_VerticalLr,
- FDE_CSSPROPERTYVALUE_VerticalRl,
- FDE_CSSPROPERTYVALUE_Pointer,
- FDE_CSSPROPERTYVALUE_XxSmall,
- FDE_CSSPROPERTYVALUE_Bold,
- FDE_CSSPROPERTYVALUE_Both,
- FDE_CSSPROPERTYVALUE_SmallCaps,
- FDE_CSSPROPERTYVALUE_Katakana,
- FDE_CSSPROPERTYVALUE_After,
- FDE_CSSPROPERTYVALUE_Horizontal,
- FDE_CSSPROPERTYVALUE_Dotted,
- FDE_CSSPROPERTYVALUE_Disc,
- FDE_CSSPROPERTYVALUE_Georgian,
- FDE_CSSPROPERTYVALUE_Inline,
- FDE_CSSPROPERTYVALUE_Overline,
- FDE_CSSPROPERTYVALUE_Wait,
- FDE_CSSPROPERTYVALUE_BreakAll,
- FDE_CSSPROPERTYVALUE_UpperAlpha,
- FDE_CSSPROPERTYVALUE_Capitalize,
- FDE_CSSPROPERTYVALUE_Nowrap,
- FDE_CSSPROPERTYVALUE_TextBottom,
- FDE_CSSPROPERTYVALUE_NoOpenQuote,
- FDE_CSSPROPERTYVALUE_Groove,
- FDE_CSSPROPERTYVALUE_Progress,
- FDE_CSSPROPERTYVALUE_Larger,
- FDE_CSSPROPERTYVALUE_CloseQuote,
- FDE_CSSPROPERTYVALUE_TableCell,
- FDE_CSSPROPERTYVALUE_PreLine,
- FDE_CSSPROPERTYVALUE_Absolute,
- FDE_CSSPROPERTYVALUE_InlineTable,
- FDE_CSSPROPERTYVALUE_BidiOverride,
- FDE_CSSPROPERTYVALUE_InlineBlock,
- FDE_CSSPROPERTYVALUE_Inset,
- FDE_CSSPROPERTYVALUE_Crosshair,
- FDE_CSSPROPERTYVALUE_UpperLatin,
- FDE_CSSPROPERTYVALUE_Help,
- FDE_CSSPROPERTYVALUE_Hide,
- FDE_CSSPROPERTYVALUE_Uppercase,
- FDE_CSSPROPERTYVALUE_SResize,
- FDE_CSSPROPERTYVALUE_Table,
- FDE_CSSPROPERTYVALUE_Blink,
- FDE_CSSPROPERTYVALUE_Block,
- FDE_CSSPROPERTYVALUE_Start,
- FDE_CSSPROPERTYVALUE_TableColumnGroup,
- FDE_CSSPROPERTYVALUE_Italic,
- FDE_CSSPROPERTYVALUE_LineThrough,
- FDE_CSSPROPERTYVALUE_KeepAll,
- FDE_CSSPROPERTYVALUE_LowerAlpha,
- FDE_CSSPROPERTYVALUE_RunIn,
- FDE_CSSPROPERTYVALUE_Square,
- FDE_CSSPROPERTYVALUE_XLarge,
- FDE_CSSPROPERTYVALUE_Large,
- FDE_CSSPROPERTYVALUE_Before,
- FDE_CSSPROPERTYVALUE_Left,
- FDE_CSSPROPERTYVALUE_TextTop,
- FDE_CSSPROPERTYVALUE_RubyText,
- FDE_CSSPROPERTYVALUE_NoDisplay,
- FDE_CSSPROPERTYVALUE_MAX
-};
-class IFDE_CSSValue {
- public:
- virtual ~IFDE_CSSValue() {}
- virtual FDE_CSSVALUETYPE GetType() const = 0;
-};
-class IFDE_CSSPrimitiveValue : public IFDE_CSSValue {
- public:
- virtual FDE_CSSVALUETYPE GetType() const {
- return FDE_CSSVALUETYPE_Primitive;
- }
- virtual FDE_CSSPRIMITIVETYPE GetPrimitiveType() const = 0;
- virtual FX_ARGB GetRGBColor() const = 0;
- virtual FX_FLOAT GetFloat() const = 0;
- virtual const FX_WCHAR* GetString(int32_t& iLength) const = 0;
- virtual FDE_CSSPROPERTYVALUE GetEnum() const = 0;
- virtual const FX_WCHAR* GetFuncName() const = 0;
- virtual int32_t CountArgs() const = 0;
- virtual IFDE_CSSValue* GetArgs(int32_t index) const = 0;
-};
-class IFDE_CSSValueList : public IFDE_CSSValue {
- public:
- virtual FDE_CSSVALUETYPE GetType() const { return FDE_CSSVALUETYPE_List; }
- virtual int32_t CountValues() const = 0;
- virtual IFDE_CSSValue* GetValue(int32_t index) const = 0;
-};
-enum FDE_CSSPROPERTY {
- FDE_CSSPROPERTY_WritingMode,
- FDE_CSSPROPERTY_ColumnRuleWidth,
- FDE_CSSPROPERTY_BorderLeft,
- FDE_CSSPROPERTY_ColumnRule,
- FDE_CSSPROPERTY_Height,
- FDE_CSSPROPERTY_CounterReset,
- FDE_CSSPROPERTY_Content,
- FDE_CSSPROPERTY_RubyPosition,
- FDE_CSSPROPERTY_BackgroundColor,
- FDE_CSSPROPERTY_Width,
- FDE_CSSPROPERTY_Src,
- FDE_CSSPROPERTY_Top,
- FDE_CSSPROPERTY_Margin,
- FDE_CSSPROPERTY_BorderColor,
- FDE_CSSPROPERTY_Widows,
- FDE_CSSPROPERTY_BorderBottomColor,
- FDE_CSSPROPERTY_TextIndent,
- FDE_CSSPROPERTY_Right,
- FDE_CSSPROPERTY_TextEmphasisStyle,
- FDE_CSSPROPERTY_PaddingLeft,
- FDE_CSSPROPERTY_ColumnWidth,
- FDE_CSSPROPERTY_MarginLeft,
- FDE_CSSPROPERTY_Border,
- FDE_CSSPROPERTY_BorderTop,
- FDE_CSSPROPERTY_RubyOverhang,
- FDE_CSSPROPERTY_PageBreakBefore,
- FDE_CSSPROPERTY_MaxHeight,
- FDE_CSSPROPERTY_MinWidth,
- FDE_CSSPROPERTY_BorderLeftColor,
- FDE_CSSPROPERTY_Bottom,
- FDE_CSSPROPERTY_Quotes,
- FDE_CSSPROPERTY_MaxWidth,
- FDE_CSSPROPERTY_PaddingRight,
- FDE_CSSPROPERTY_ListStyleImage,
- FDE_CSSPROPERTY_WhiteSpace,
- FDE_CSSPROPERTY_BorderBottom,
- FDE_CSSPROPERTY_ListStyleType,
- FDE_CSSPROPERTY_WordBreak,
- FDE_CSSPROPERTY_OverflowX,
- FDE_CSSPROPERTY_OverflowY,
- FDE_CSSPROPERTY_BorderTopColor,
- FDE_CSSPROPERTY_FontFamily,
- FDE_CSSPROPERTY_Cursor,
- FDE_CSSPROPERTY_RubyAlign,
- FDE_CSSPROPERTY_ColumnRuleColor,
- FDE_CSSPROPERTY_FontWeight,
- FDE_CSSPROPERTY_BorderRightStyle,
- FDE_CSSPROPERTY_MinHeight,
- FDE_CSSPROPERTY_Color,
- FDE_CSSPROPERTY_LetterSpacing,
- FDE_CSSPROPERTY_EmptyCells,
- FDE_CSSPROPERTY_TextAlign,
- FDE_CSSPROPERTY_RubySpan,
- FDE_CSSPROPERTY_Position,
- FDE_CSSPROPERTY_BorderStyle,
- FDE_CSSPROPERTY_BorderBottomStyle,
- FDE_CSSPROPERTY_BorderCollapse,
- FDE_CSSPROPERTY_ColumnCount,
- FDE_CSSPROPERTY_BorderRightWidth,
- FDE_CSSPROPERTY_UnicodeBidi,
- FDE_CSSPROPERTY_VerticalAlign,
- FDE_CSSPROPERTY_PaddingTop,
- FDE_CSSPROPERTY_Columns,
- FDE_CSSPROPERTY_Overflow,
- FDE_CSSPROPERTY_TableLayout,
- FDE_CSSPROPERTY_FontVariant,
- FDE_CSSPROPERTY_ListStyle,
- FDE_CSSPROPERTY_BackgroundPosition,
- FDE_CSSPROPERTY_BorderWidth,
- FDE_CSSPROPERTY_TextEmphasisColor,
- FDE_CSSPROPERTY_BorderLeftStyle,
- FDE_CSSPROPERTY_PageBreakInside,
- FDE_CSSPROPERTY_TextEmphasis,
- FDE_CSSPROPERTY_BorderBottomWidth,
- FDE_CSSPROPERTY_ColumnGap,
- FDE_CSSPROPERTY_Orphans,
- FDE_CSSPROPERTY_BorderRight,
- FDE_CSSPROPERTY_FontSize,
- FDE_CSSPROPERTY_PageBreakAfter,
- FDE_CSSPROPERTY_CaptionSide,
- FDE_CSSPROPERTY_BackgroundRepeat,
- FDE_CSSPROPERTY_BorderTopStyle,
- FDE_CSSPROPERTY_BorderSpacing,
- FDE_CSSPROPERTY_TextTransform,
- FDE_CSSPROPERTY_FontStyle,
- FDE_CSSPROPERTY_Font,
- FDE_CSSPROPERTY_LineHeight,
- FDE_CSSPROPERTY_MarginRight,
- FDE_CSSPROPERTY_Float,
- FDE_CSSPROPERTY_BorderLeftWidth,
- FDE_CSSPROPERTY_Display,
- FDE_CSSPROPERTY_Clear,
- FDE_CSSPROPERTY_ColumnRuleStyle,
- FDE_CSSPROPERTY_TextCombine,
- FDE_CSSPROPERTY_ListStylePosition,
- FDE_CSSPROPERTY_Visibility,
- FDE_CSSPROPERTY_PaddingBottom,
- FDE_CSSPROPERTY_BackgroundAttachment,
- FDE_CSSPROPERTY_BackgroundImage,
- FDE_CSSPROPERTY_LineBreak,
- FDE_CSSPROPERTY_Background,
- FDE_CSSPROPERTY_BorderTopWidth,
- FDE_CSSPROPERTY_WordSpacing,
- FDE_CSSPROPERTY_BorderRightColor,
- FDE_CSSPROPERTY_CounterIncrement,
- FDE_CSSPROPERTY_Left,
- FDE_CSSPROPERTY_TextDecoration,
- FDE_CSSPROPERTY_Padding,
- FDE_CSSPROPERTY_MarginBottom,
- FDE_CSSPROPERTY_MarginTop,
- FDE_CSSPROPERTY_Direction,
- FDE_CSSPROPERTY_MAX
-};
-class IFDE_CSSDeclaration {
- public:
- virtual ~IFDE_CSSDeclaration() {}
- virtual IFDE_CSSValue* GetProperty(FDE_CSSPROPERTY eProperty,
- FX_BOOL& bImportant) const = 0;
- virtual FX_POSITION GetStartPosition() const = 0;
- virtual void GetNextProperty(FX_POSITION& pos,
- FDE_CSSPROPERTY& eProperty,
- IFDE_CSSValue*& pValue,
- FX_BOOL& bImportant) const = 0;
- virtual FX_POSITION GetStartCustom() const = 0;
- virtual void GetNextCustom(FX_POSITION& pos,
- CFX_WideString& wsName,
- CFX_WideString& wsValue) const = 0;
-};
-typedef CFX_ArrayTemplate<IFDE_CSSDeclaration*> CFDE_CSSDeclarationArray;
-enum FDE_CSSPERSUDO {
- FDE_CSSPERSUDO_After,
- FDE_CSSPERSUDO_Before,
- FDE_CSSPERSUDO_NONE
-};
-enum FDE_CSSSELECTORTYPE {
- FDE_CSSSELECTORTYPE_Element,
- FDE_CSSSELECTORTYPE_Descendant,
- FDE_CSSSELECTORTYPE_Class,
- FDE_CSSSELECTORTYPE_Persudo,
- FDE_CSSSELECTORTYPE_ID,
-};
-class IFDE_CSSSelector {
- public:
- virtual ~IFDE_CSSSelector() {}
- virtual FDE_CSSSELECTORTYPE GetType() const = 0;
- virtual FX_DWORD GetNameHash() const = 0;
- virtual IFDE_CSSSelector* GetNextSelector() const = 0;
-};
-#define FDE_CSSMEDIATYPE_Braille 0x01
-#define FDE_CSSMEDIATYPE_Emboss 0x02
-#define FDE_CSSMEDIATYPE_Handheld 0x04
-#define FDE_CSSMEDIATYPE_Print 0x08
-#define FDE_CSSMEDIATYPE_Projection 0x10
-#define FDE_CSSMEDIATYPE_Screen 0x20
-#define FDE_CSSMEDIATYPE_TTY 0x40
-#define FDE_CSSMEDIATYPE_TV 0x80
-#define FDE_CSSMEDIATYPE_ALL 0xFF
-enum FDE_CSSRULETYPE {
- FDE_CSSRULETYPE_Unknown = 0,
- FDE_CSSRULETYPE_Style = 1,
- FDE_CSSRULETYPE_Media = 4,
- FDE_CSSRULETYPE_FontFace = 5,
-};
-class IFDE_CSSRule {
- public:
- virtual ~IFDE_CSSRule() {}
- virtual FDE_CSSRULETYPE GetType() const = 0;
-};
-typedef CFX_MassArrayTemplate<IFDE_CSSRule*> CFDE_CSSRuleArray;
-class IFDE_CSSStyleRule : public IFDE_CSSRule {
- public:
- virtual FDE_CSSRULETYPE GetType() const { return FDE_CSSRULETYPE_Style; }
- virtual int32_t CountSelectorLists() const = 0;
- virtual IFDE_CSSSelector* GetSelectorList(int32_t index) const = 0;
- virtual IFDE_CSSDeclaration* GetDeclaration() const = 0;
-};
-class IFDE_CSSMediaRule : public IFDE_CSSRule {
- public:
- virtual FDE_CSSRULETYPE GetType() const { return FDE_CSSRULETYPE_Media; }
- virtual FX_DWORD GetMediaList() const = 0;
- virtual int32_t CountRules() const = 0;
- virtual IFDE_CSSRule* GetRule(int32_t index) = 0;
-};
-class IFDE_CSSFontFaceRule : public IFDE_CSSRule {
- public:
- virtual FDE_CSSRULETYPE GetType() const { return FDE_CSSRULETYPE_FontFace; }
- virtual IFDE_CSSDeclaration* GetDeclaration() const = 0;
-};
-class IFDE_CSSStyleSheet : public IFX_Unknown {
- public:
- static IFDE_CSSStyleSheet* LoadHTMLStandardStyleSheet();
- static IFDE_CSSStyleSheet* LoadFromStream(
- const CFX_WideString& szUrl,
- IFX_Stream* pStream,
- FX_WORD wCodePage,
- FX_DWORD dwMediaList = FDE_CSSMEDIATYPE_ALL);
- static IFDE_CSSStyleSheet* LoadFromBuffer(
- const CFX_WideString& szUrl,
- const FX_WCHAR* pBuffer,
- int32_t iBufSize,
- FX_WORD wCodePage,
- FX_DWORD dwMediaList = FDE_CSSMEDIATYPE_ALL);
- virtual FX_BOOL GetUrl(CFX_WideString& szUrl) = 0;
- virtual FX_DWORD GetMediaList() const = 0;
- virtual FX_WORD GetCodePage() const = 0;
-
- virtual int32_t CountRules() const = 0;
- virtual IFDE_CSSRule* GetRule(int32_t index) = 0;
-};
-typedef CFX_ArrayTemplate<IFDE_CSSStyleSheet*> CFDE_CSSStyleSheetArray;
-#define FDE_CSSUSERSTYLESHEET (FX_BSTRC("#USERSHEET"))
-#define FDE_CSSUAGENTSTYLESHEET (FX_BSTRC("#AGENTSHEET"))
-class IFDE_CSSStyleSheetCache {
- public:
- static IFDE_CSSStyleSheetCache* Create();
- virtual ~IFDE_CSSStyleSheetCache() {}
- virtual void Release() = 0;
- virtual void SetMaxItems(int32_t iMaxCount = 5) = 0;
- virtual void AddStyleSheet(const CFX_ByteStringC& szKey,
- IFDE_CSSStyleSheet* pStyleSheet) = 0;
- virtual IFDE_CSSStyleSheet* GetStyleSheet(
- const CFX_ByteStringC& szKey) const = 0;
- virtual void RemoveStyleSheet(const CFX_ByteStringC& szKey) = 0;
-};
-enum FDE_CSSSYNTAXSTATUS {
- FDE_CSSSYNTAXSTATUS_Error,
- FDE_CSSSYNTAXSTATUS_EOS,
- FDE_CSSSYNTAXSTATUS_None,
- FDE_CSSSYNTAXSTATUS_Charset,
- FDE_CSSSYNTAXSTATUS_ImportRule,
- FDE_CSSSYNTAXSTATUS_ImportClose,
- FDE_CSSSYNTAXSTATUS_PageRule,
- FDE_CSSSYNTAXSTATUS_StyleRule,
- FDE_CSSSYNTAXSTATUS_FontFaceRule,
- FDE_CSSSYNTAXSTATUS_MediaRule,
- FDE_CSSSYNTAXSTATUS_MediaType,
- FDE_CSSSYNTAXSTATUS_URI,
- FDE_CSSSYNTAXSTATUS_Selector,
- FDE_CSSSYNTAXSTATUS_DeclOpen,
- FDE_CSSSYNTAXSTATUS_DeclClose,
- FDE_CSSSYNTAXSTATUS_PropertyName,
- FDE_CSSSYNTAXSTATUS_PropertyValue,
-};
-class IFDE_CSSSyntaxParser {
- public:
- static IFDE_CSSSyntaxParser* Create();
- virtual ~IFDE_CSSSyntaxParser() {}
- virtual void Release() = 0;
- virtual FX_BOOL Init(IFX_Stream* pStream,
- int32_t iCSSPlaneSize,
- int32_t iTextDataSize = 32,
- FX_BOOL bOnlyDeclaration = FALSE) = 0;
- virtual FX_BOOL Init(const FX_WCHAR* pBuffer,
- int32_t iBufferSize,
- int32_t iTextDatSize = 32,
- FX_BOOL bOnlyDeclaration = FALSE) = 0;
-
- virtual FDE_CSSSYNTAXSTATUS DoSyntaxParse() = 0;
- virtual const FX_WCHAR* GetCurrentString(int32_t& iLength) const = 0;
-};
-enum FDE_CSSLENGTHUNIT {
- FDE_CSSLENGTHUNIT_Auto,
- FDE_CSSLENGTHUNIT_None,
- FDE_CSSLENGTHUNIT_Normal,
- FDE_CSSLENGTHUNIT_Point,
- FDE_CSSLENGTHUNIT_Percent,
-};
-#define FDE_CSSUNITBITS (3)
-#define FDE_CSSUNITMASK ((1 << FDE_CSSUNITBITS) - 1)
-struct FDE_CSSLENGTH {
- FDE_CSSLENGTH& Set(FDE_CSSLENGTHUNIT eUnit) {
- m_iData = eUnit;
- return *this;
- }
- FDE_CSSLENGTH& Set(FDE_CSSLENGTHUNIT eUnit, FX_FLOAT fValue) {
- m_iData = ((intptr_t)(fValue * 1024.0f) << FDE_CSSUNITBITS) | eUnit;
- return *this;
- }
- FDE_CSSLENGTHUNIT GetUnit() const {
- return (FDE_CSSLENGTHUNIT)(m_iData & FDE_CSSUNITMASK);
- }
- FX_FLOAT GetValue() const { return (m_iData >> FDE_CSSUNITBITS) / 1024.0f; }
- FX_BOOL NonZero() const { return (m_iData >> FDE_CSSUNITBITS) != 0; }
-
- private:
- intptr_t m_iData;
-};
-struct FDE_CSSPOINT {
- FDE_CSSPOINT& Set(FDE_CSSLENGTHUNIT eUnit) {
- x.Set(eUnit);
- y.Set(eUnit);
- return *this;
- }
- FDE_CSSPOINT& Set(FDE_CSSLENGTHUNIT eUnit, FX_FLOAT fValue) {
- x.Set(eUnit, fValue);
- y.Set(eUnit, fValue);
- return *this;
- }
- FDE_CSSLENGTH x, y;
-};
-struct FDE_CSSSIZE {
- FDE_CSSSIZE& Set(FDE_CSSLENGTHUNIT eUnit) {
- cx.Set(eUnit);
- cy.Set(eUnit);
- return *this;
- }
- FDE_CSSSIZE& Set(FDE_CSSLENGTHUNIT eUnit, FX_FLOAT fValue) {
- cx.Set(eUnit, fValue);
- cy.Set(eUnit, fValue);
- return *this;
- }
- FDE_CSSLENGTH cx, cy;
-};
-struct FDE_CSSRECT {
- FDE_CSSRECT& Set(FDE_CSSLENGTHUNIT eUnit) {
- left.Set(eUnit);
- top.Set(eUnit);
- right.Set(eUnit);
- bottom.Set(eUnit);
- return *this;
- }
- FDE_CSSRECT& Set(FDE_CSSLENGTHUNIT eUnit, FX_FLOAT fValue) {
- left.Set(eUnit, fValue);
- top.Set(eUnit, fValue);
- right.Set(eUnit, fValue);
- bottom.Set(eUnit, fValue);
- return *this;
- }
-
- FDE_CSSLENGTH left, top, right, bottom;
-};
-enum FDE_CSSBKGATTACHMENT {
- FDE_CSSBKGATTACHMENT_Scroll,
- FDE_CSSBKGATTACHMENT_Fixed,
-};
-enum FDE_CSSBKGREPEAT {
- FDE_CSSBKGREPEAT_Repeat,
- FDE_CSSBKGREPEAT_RepeatX,
- FDE_CSSBKGREPEAT_RepeatY,
- FDE_CSSBKGREPEAT_NoRepeat,
-};
-enum FDE_CSSBORDERSTYLE {
- FDE_CSSBORDERSTYLE_None,
- FDE_CSSBORDERSTYLE_Hidden,
- FDE_CSSBORDERSTYLE_Dotted,
- FDE_CSSBORDERSTYLE_Dashed,
- FDE_CSSBORDERSTYLE_Solid,
- FDE_CSSBORDERSTYLE_Double,
- FDE_CSSBORDERSTYLE_Groove,
- FDE_CSSBORDERSTYLE_Ridge,
- FDE_CSSBORDERSTYLE_Inset,
- FDE_CSSBORDERSTYLE_outset,
-};
-enum FDE_CSSCLEAR {
- FDE_CSSCLEAR_None,
- FDE_CSSCLEAR_Left,
- FDE_CSSCLEAR_Right,
- FDE_CSSCLEAR_Both,
-};
-enum FDE_CSSDISPLAY {
- FDE_CSSDISPLAY_None,
- FDE_CSSDISPLAY_ListItem,
- FDE_CSSDISPLAY_RunIn,
- FDE_CSSDISPLAY_Block,
- FDE_CSSDISPLAY_Inline,
- FDE_CSSDISPLAY_InlineBlock,
- FDE_CSSDISPLAY_InlineTable,
- FDE_CSSDISPLAY_Table,
- FDE_CSSDISPLAY_TableRow,
- FDE_CSSDISPLAY_TableCell,
- FDE_CSSDISPLAY_TableCaption,
- FDE_CSSDISPLAY_TableColumn,
- FDE_CSSDISPLAY_TableRowGroup,
- FDE_CSSDISPLAY_TableColumnGroup,
- FDE_CSSDISPLAY_TableHeaderGroup,
- FDE_CSSDISPLAY_TableFooterGroup,
- FDE_CSSDISPLAY_Ruby,
- FDE_CSSDISPLAY_RubyBase,
- FDE_CSSDISPLAY_RubyText,
- FDE_CSSDISPLSY_RubyBaseGroup,
- FDE_CSSDISPLAY_RubyTextGroup,
-};
-enum FDE_CSSVISIBILITY {
- FDE_CSSVISIBILITY_Visible,
- FDE_CSSVISIBILITY_Hidden,
- FDE_CSSVISIBILITY_Collapse,
-};
-enum FDE_CSSFONTSTYLE {
- FDE_CSSFONTSTYLE_Normal,
- FDE_CSSFONTSTYLE_Italic,
-};
-enum FDE_CSSFLOAT {
- FDE_CSSFLOAT_None,
- FDE_CSSFLOAT_Left,
- FDE_CSSFLOAT_Right,
-};
-enum FDE_CSSWRITINGMODE {
- FDE_CSSWRITINGMODE_HorizontalTb,
- FDE_CSSWRITINGMODE_VerticalRl,
- FDE_CSSWRITINGMODE_VerticalLr,
-};
-enum FDE_CSSWORDBREAK {
- FDE_CSSWORDBREAK_Normal,
- FDE_CSSWORDBREAK_KeepAll,
- FDE_CSSWORDBREAK_BreakAll,
- FDE_CSSWORDBREAK_KeepWords,
-};
-enum FDE_CSSPAGEBREAK {
- FDE_CSSPAGEBREAK_Auto,
- FDE_CSSPAGEBREAK_Always,
- FDE_CSSPAGEBREAK_Avoid,
- FDE_CSSPAGEBREAK_Left,
- FDE_CSSPAGEBREAK_Right,
-};
-enum FDE_CSSOVERFLOW {
- FDE_CSSOVERFLOW_Visible,
- FDE_CSSOVERFLOW_Hidden,
- FDE_CSSOVERFLOW_Scroll,
- FDE_CSSOVERFLOW_Auto,
- FDE_CSSOVERFLOW_NoDisplay,
- FDE_CSSOVERFLOW_NoContent,
-};
-enum FDE_CSSLINEBREAK {
- FDE_CSSLINEBREAK_Auto,
- FDE_CSSLINEBREAK_Loose,
- FDE_CSSLINEBREAK_Normal,
- FDE_CSSLINEBREAK_Strict,
-};
-enum FDE_CSSTEXTEMPHASISFILL {
- FDE_CSSTEXTEMPHASISFILL_Filled,
- FDE_CSSTEXTEMPHASISFILL_Open,
-};
-enum FDE_CSSTEXTEMPHASISMARK {
- FDE_CSSTEXTEMPHASISMARK_None,
- FDE_CSSTEXTEMPHASISMARK_Auto,
- FDE_CSSTEXTEMPHASISMARK_Dot,
- FDE_CSSTEXTEMPHASISMARK_Circle,
- FDE_CSSTEXTEMPHASISMARK_DoubleCircle,
- FDE_CSSTEXTEMPHASISMARK_Triangle,
- FDE_CSSTEXTEMPHASISMARK_Sesame,
- FDE_CSSTEXTEMPHASISMARK_Custom,
-};
-enum FDE_CSSTEXTCOMBINE {
- FDE_CSSTEXTCOMBINE_Horizontal,
- FDE_CSSTEXTCOMBINE_None,
-};
-enum FDE_CSSCURSOR {
- FDE_CSSCURSOR_Auto,
- FDE_CSSCURSOR_Crosshair,
- FDE_CSSCURSOR_Default,
- FDE_CSSCURSOR_Pointer,
- FDE_CSSCURSOR_Move,
- FDE_CSSCURSOR_EResize,
- FDE_CSSCURSOR_NeResize,
- FDE_CSSCURSOR_NwResize,
- FDE_CSSCURSOR_NResize,
- FDE_CSSCURSOR_SeResize,
- FDE_CSSCURSOR_SwResize,
- FDE_CSSCURSOR_SResize,
- FDE_CSSCURSOR_WResize,
- FDE_CSSCURSOR_Text,
- FDE_CSSCURSOR_Wait,
- FDE_CSSCURSOR_Help,
- FDE_CSSCURSOR_Progress,
-};
-enum FDE_CSSPOSITION {
- FDE_CSSPOSITION_Static,
- FDE_CSSPOSITION_Relative,
- FDE_CSSPOSITION_Absolute,
- FDE_CSSPOSITION_Fixed,
-};
-enum FDE_CSSCAPTIONSIDE {
- FDE_CSSCAPTIONSIDE_Top,
- FDE_CSSCAPTIONSIDE_Bottom,
- FDE_CSSCAPTIONSIDE_Left,
- FDE_CSSCAPTIONSIDE_Right,
- FDE_CSSCAPTIONSIDE_Before,
- FDE_CSSCAPTIONSIDE_After,
-};
-enum FDE_CSSRUBYALIGN {
- FDE_CSSRUBYALIGN_Auto,
- FDE_CSSRUBYALIGN_Start,
- FDE_CSSRUBYALIGN_Left,
- FDE_CSSRUBYALIGN_Center,
- FDE_CSSRUBYALIGN_End,
- FDE_CSSRUBYALIGN_Right,
- FDE_CSSRUBYALIGN_DistributeLetter,
- FDE_CSSRUBYALIGN_DistributeSpace,
- FDE_CSSRUBYALIGN_LineEdge,
-};
-enum FDE_CSSRUBYOVERHANG {
- FDE_CSSRUBYOVERHANG_Auto,
- FDE_CSSRUBYOVERHANG_Start,
- FDE_CSSRUBYOVERHANG_End,
- FDE_CSSRUBYOVERHANG_None,
-};
-enum FDE_CSSRUBYPOSITION {
- FDE_CSSRUBYPOSITION_Before,
- FDE_CSSRUBYPOSITION_After,
- FDE_CSSRUBYPOSITION_Right,
- FDE_CSSRUBYPOSITION_Inline,
-};
-enum FDE_CSSRUBYSPAN {
- FDE_CSSRUBYSPAN_None,
- FDE_CSSRUBYSPAN_Attr,
-};
-enum FDE_CSSTEXTALIGN {
- FDE_CSSTEXTALIGN_Left,
- FDE_CSSTEXTALIGN_Right,
- FDE_CSSTEXTALIGN_Center,
- FDE_CSSTEXTALIGN_Justify,
- FDE_CSSTEXTALIGN_JustifyAll,
-};
-enum FDE_CSSVERTICALALIGN {
- FDE_CSSVERTICALALIGN_Baseline,
- FDE_CSSVERTICALALIGN_Sub,
- FDE_CSSVERTICALALIGN_Super,
- FDE_CSSVERTICALALIGN_Top,
- FDE_CSSVERTICALALIGN_TextTop,
- FDE_CSSVERTICALALIGN_Middle,
- FDE_CSSVERTICALALIGN_Bottom,
- FDE_CSSVERTICALALIGN_TextBottom,
- FDE_CSSVERTICALALIGN_Number,
-};
-enum FDE_CSSLISTSTYLETYPE {
- FDE_CSSLISTSTYLETYPE_Disc,
- FDE_CSSLISTSTYLETYPE_Circle,
- FDE_CSSLISTSTYLETYPE_Square,
- FDE_CSSLISTSTYLETYPE_Decimal,
- FDE_CSSLISTSTYLETYPE_DecimalLeadingZero,
- FDE_CSSLISTSTYLETYPE_LowerRoman,
- FDE_CSSLISTSTYLETYPE_UpperRoman,
- FDE_CSSLISTSTYLETYPE_LowerGreek,
- FDE_CSSLISTSTYLETYPE_LowerLatin,
- FDE_CSSLISTSTYLETYPE_UpperLatin,
- FDE_CSSLISTSTYLETYPE_Armenian,
- FDE_CSSLISTSTYLETYPE_Georgian,
- FDE_CSSLISTSTYLETYPE_LowerAlpha,
- FDE_CSSLISTSTYLETYPE_UpperAlpha,
- FDE_CSSLISTSTYLETYPE_None,
- FDE_CSSLISTSTYLETYPE_CjkIdeographic,
- FDE_CSSLISTSTYLETYPE_Hebrew,
- FDE_CSSLISTSTYLETYPE_Hiragana,
- FDE_CSSLISTSTYLETYPE_HiraganaIroha,
- FDE_CSSLISTSTYLETYPE_Katakana,
- FDE_CSSLISTSTYLETYPE_KatakanaIroha,
-};
-enum FDE_CSSLISTSTYLEPOSITION {
- FDE_CSSLISTSTYLEPOSITION_Outside,
- FDE_CSSLISTSTYLEPOSITION_Inside,
-};
-enum FDE_CSSWHITESPACE {
- FDE_CSSWHITESPACE_Normal,
- FDE_CSSWHITESPACE_Pre,
- FDE_CSSWHITESPACE_Nowrap,
- FDE_CSSWHITESPACE_PreWrap,
- FDE_CSSWHITESPACE_PreLine,
-};
-enum FDE_CSSFONTVARIANT {
- FDE_CSSFONTVARIANT_Normal,
- FDE_CSSFONTVARIANT_SmallCaps,
-};
-enum FDE_CSSTEXTTRANSFORM {
- FDE_CSSTEXTTRANSFORM_None,
- FDE_CSSTEXTTRANSFORM_Capitalize,
- FDE_CSSTEXTTRANSFORM_UpperCase,
- FDE_CSSTEXTTRANSFORM_LowerCase,
-};
-enum FDE_CSSTEXTDECORATION {
- FDE_CSSTEXTDECORATION_None = 0,
- FDE_CSSTEXTDECORATION_Underline = 1,
- FDE_CSSTEXTDECORATION_Overline = 2,
- FDE_CSSTEXTDECORATION_LineThrough = 4,
- FDE_CSSTEXTDECORATION_Blink = 8,
- FDE_CSSTEXTDECORATION_Double = 16,
-};
-class IFDE_CSSRubyStyle {
- public:
- virtual ~IFDE_CSSRubyStyle() {}
- virtual FDE_CSSRUBYALIGN GetRubyAlign() const = 0;
- virtual FDE_CSSRUBYOVERHANG GetRubyOverhang() const = 0;
- virtual FDE_CSSRUBYPOSITION GetRubyPosition() const = 0;
- virtual FDE_CSSRUBYSPAN GetRubySpanType() const = 0;
- virtual IFDE_CSSValue* GetRubySpanAttr() const = 0;
-};
-class IFDE_CSSMultiColumnStyle {
- public:
- virtual ~IFDE_CSSMultiColumnStyle() {}
- virtual const FDE_CSSLENGTH& GetColumnCount() const = 0;
- virtual const FDE_CSSLENGTH& GetColumnGap() const = 0;
- virtual FX_ARGB GetColumnRuleColor() const = 0;
- virtual FDE_CSSBORDERSTYLE GetColumnRuleStyle() const = 0;
- virtual const FDE_CSSLENGTH& GetColumnRuleWidth() const = 0;
- virtual const FDE_CSSLENGTH& GetColumnWidth() const = 0;
- virtual void SetColumnCount(const FDE_CSSLENGTH& columnCount) = 0;
- virtual void SetColumnGap(const FDE_CSSLENGTH& columnGap) = 0;
- virtual void SetColumnRuleColor(FX_ARGB dwColumnRuleColor) = 0;
- virtual void SetColumnRuleStyle(FDE_CSSBORDERSTYLE eColumnRuleStyle) = 0;
- virtual void SetColumnRuleWidth(const FDE_CSSLENGTH& columnRuleWidth) = 0;
- virtual void SetColumnWidth(const FDE_CSSLENGTH& columnWidth) = 0;
-};
-class IFDE_CSSGeneratedContentStyle {
- public:
- virtual ~IFDE_CSSGeneratedContentStyle() {}
- virtual int32_t CountCounters() = 0;
- virtual const FX_WCHAR* GetCounterIdentifier(int32_t index) = 0;
- virtual FX_BOOL GetCounterReset(int32_t index, int32_t& iValue) = 0;
- virtual FX_BOOL GetCounterIncrement(int32_t index, int32_t& iValue) = 0;
- virtual IFDE_CSSValueList* GetContent() const = 0;
- virtual int32_t CountQuotes() const = 0;
- virtual const FX_WCHAR* GetQuotes(int32_t index) const = 0;
-};
-class IFDE_CSSFontStyle {
- public:
- virtual ~IFDE_CSSFontStyle() {}
- virtual int32_t CountFontFamilies() const = 0;
- virtual const FX_WCHAR* GetFontFamily(int32_t index) const = 0;
- virtual FX_WORD GetFontWeight() const = 0;
- virtual FDE_CSSFONTVARIANT GetFontVariant() const = 0;
- virtual FDE_CSSFONTSTYLE GetFontStyle() const = 0;
- virtual FX_FLOAT GetFontSize() const = 0;
- virtual FX_ARGB GetColor() const = 0;
- virtual void SetFontWeight(FX_WORD wFontWeight) = 0;
- virtual void SetFontVariant(FDE_CSSFONTVARIANT eFontVariant) = 0;
- virtual void SetFontStyle(FDE_CSSFONTSTYLE eFontStyle) = 0;
- virtual void SetFontSize(FX_FLOAT fFontSize) = 0;
- virtual void SetColor(FX_ARGB dwFontColor) = 0;
-};
-class IFDE_CSSBoundaryStyle {
- public:
- virtual ~IFDE_CSSBoundaryStyle() {}
- virtual FX_ARGB GetBorderLeftColor() const = 0;
- virtual FX_ARGB GetBorderTopColor() const = 0;
- virtual FX_ARGB GetBorderRightColor() const = 0;
- virtual FX_ARGB GetBorderBottomColor() const = 0;
- virtual FDE_CSSBORDERSTYLE GetBorderLeftStyle() const = 0;
- virtual FDE_CSSBORDERSTYLE GetBorderTopStyle() const = 0;
- virtual FDE_CSSBORDERSTYLE GetBorderRightStyle() const = 0;
- virtual FDE_CSSBORDERSTYLE GetBorderBottomStyle() const = 0;
- virtual const FDE_CSSRECT* GetBorderWidth() const = 0;
- virtual const FDE_CSSRECT* GetMarginWidth() const = 0;
- virtual const FDE_CSSRECT* GetPaddingWidth() const = 0;
- virtual void SetBorderLeftColor(FX_ARGB dwBorderColor) = 0;
- virtual void SetBorderTopColor(FX_ARGB dwBorderColor) = 0;
- virtual void SetBorderRightColor(FX_ARGB dwBorderColor) = 0;
- virtual void SetBorderBottomColor(FX_ARGB dwBorderColor) = 0;
-
- virtual void SetBorderLeftStyle(FDE_CSSBORDERSTYLE eBorderStyle) = 0;
- virtual void SetBorderTopStyle(FDE_CSSBORDERSTYLE eBorderStyle) = 0;
- virtual void SetBorderRightStyle(FDE_CSSBORDERSTYLE eBorderStyle) = 0;
- virtual void SetBorderBottomStyle(FDE_CSSBORDERSTYLE eBorderStyle) = 0;
-
- virtual void SetBorderWidth(const FDE_CSSRECT& rect) = 0;
- virtual void SetMarginWidth(const FDE_CSSRECT& rect) = 0;
- virtual void SetPaddingWidth(const FDE_CSSRECT& rect) = 0;
-};
-class IFDE_CSSPositionStyle {
- public:
- virtual ~IFDE_CSSPositionStyle() {}
- virtual FDE_CSSDISPLAY GetDisplay() const = 0;
- virtual const FDE_CSSSIZE& GetBoxSize() const = 0;
- virtual const FDE_CSSSIZE& GetMinBoxSize() const = 0;
- virtual const FDE_CSSSIZE& GetMaxBoxSize() const = 0;
- virtual FDE_CSSFLOAT GetFloat() const = 0;
- virtual FDE_CSSCLEAR GetClear() const = 0;
- virtual FDE_CSSPOSITION GetPosition() const = 0;
- virtual FDE_CSSLENGTH GetTop() const = 0;
- virtual FDE_CSSLENGTH GetBottom() const = 0;
- virtual FDE_CSSLENGTH GetLeft() const = 0;
- virtual FDE_CSSLENGTH GetRight() const = 0;
- virtual void SetDisplay(FDE_CSSDISPLAY eDisplay) = 0;
- virtual void SetBoxSize(const FDE_CSSSIZE& boxSize) = 0;
- virtual void SetMinBoxSize(const FDE_CSSSIZE& minBoxSize) = 0;
- virtual void SetMaxBoxSize(const FDE_CSSSIZE& maxBoxSize) = 0;
- virtual void SetFloat(FDE_CSSFLOAT eFloat) = 0;
- virtual void SetClear(FDE_CSSCLEAR eClear) = 0;
-};
-class IFDE_CSSParagraphStyle {
- public:
- virtual ~IFDE_CSSParagraphStyle() {}
- virtual FX_FLOAT GetLineHeight() const = 0;
- virtual FDE_CSSWHITESPACE GetWhiteSpace() const = 0;
- virtual const FDE_CSSLENGTH& GetTextIndent() const = 0;
- virtual FDE_CSSTEXTALIGN GetTextAlign() const = 0;
- virtual FDE_CSSVERTICALALIGN GetVerticalAlign() const = 0;
- virtual FX_FLOAT GetNumberVerticalAlign() const = 0;
- virtual FDE_CSSTEXTTRANSFORM GetTextTransform() const = 0;
- virtual FX_DWORD GetTextDecoration() const = 0;
- virtual const FDE_CSSLENGTH& GetLetterSpacing() const = 0;
- virtual const FDE_CSSLENGTH& GetWordSpacing() const = 0;
- virtual FDE_CSSWRITINGMODE GetWritingMode() const = 0;
- virtual FDE_CSSWORDBREAK GetWordBreak() const = 0;
- virtual int32_t GetWidows() const = 0;
- virtual FX_ARGB GetTextEmphasisColor() const = 0;
- virtual FDE_CSSPAGEBREAK GetPageBreakBefore() const = 0;
- virtual FDE_CSSPAGEBREAK GetPageBreakAfter() const = 0;
- virtual FDE_CSSPAGEBREAK GetPageBreakInside() const = 0;
- virtual int32_t GetOrphans() const = 0;
- virtual FDE_CSSLINEBREAK GetLineBreak() const = 0;
- virtual FDE_CSSTEXTEMPHASISMARK GetTextEmphasisMark() const = 0;
- virtual FDE_CSSTEXTEMPHASISFILL GetTextEmphasisFill() const = 0;
- virtual const FX_WCHAR* GetTextEmphasisCustom() const = 0;
- virtual FDE_CSSTEXTCOMBINE GetTextCombineType() const = 0;
- virtual FX_BOOL HasTextCombineNumber() const = 0;
- virtual FX_FLOAT GetTextCombineNumber() const = 0;
- virtual void SetLineHeight(FX_FLOAT fLineHeight) = 0;
- virtual void SetWhiteSpace(FDE_CSSWHITESPACE eWhiteSpace) = 0;
- virtual void SetTextIndent(const FDE_CSSLENGTH& textIndent) = 0;
- virtual void SetTextAlign(FDE_CSSTEXTALIGN eTextAlign) = 0;
- virtual void SetVerticalAlign(FDE_CSSVERTICALALIGN eVerticalAlign) = 0;
- virtual void SetNumberVerticalAlign(FX_FLOAT fAlign) = 0;
- virtual void SetTextTransform(FDE_CSSTEXTTRANSFORM eTextTransform) = 0;
- virtual void SetTextDecoration(FX_DWORD dwTextDecoration) = 0;
- virtual void SetLetterSpacing(const FDE_CSSLENGTH& letterSpacing) = 0;
- virtual void SetWordSpacing(const FDE_CSSLENGTH& wordSpacing) = 0;
- virtual void SetWritingMode(FDE_CSSWRITINGMODE eWritingMode) = 0;
- virtual void SetWordBreak(FDE_CSSWORDBREAK eWordBreak) = 0;
- virtual void SetWidows(int32_t iWidows) = 0;
- virtual void SetTextEmphasisColor(FX_ARGB dwTextEmphasisColor) = 0;
- virtual void SetPageBreakBefore(FDE_CSSPAGEBREAK ePageBreakBefore) = 0;
- virtual void SetPageBreakAfter(FDE_CSSPAGEBREAK ePageBreakAfter) = 0;
- virtual void SetPageBreakInside(FDE_CSSPAGEBREAK ePageBreakInside) = 0;
- virtual void SetOrphans(int32_t iOrphans) = 0;
- virtual void SetLineBreak(FDE_CSSLINEBREAK eLineBreak) = 0;
-};
-class IFDE_CSSBackgroundStyle {
- public:
- virtual ~IFDE_CSSBackgroundStyle() {}
- virtual FX_ARGB GetBKGColor() const = 0;
- virtual const FX_WCHAR* GetBKGImage() const = 0;
- virtual FDE_CSSBKGREPEAT GetBKGRepeat() const = 0;
- virtual FDE_CSSBKGATTACHMENT GetBKGAttachment() const = 0;
- virtual const FDE_CSSPOINT& GetBKGPosition() const = 0;
- virtual void SetBKGColor(FX_ARGB dwBKGColor) = 0;
- virtual void SetBKGPosition(const FDE_CSSPOINT& bkgPosition) = 0;
-};
-class IFDE_CSSListStyle {
- public:
- virtual ~IFDE_CSSListStyle() {}
- virtual FDE_CSSLISTSTYLETYPE GetListStyleType() const = 0;
- virtual FDE_CSSLISTSTYLEPOSITION GetListStylePosition() const = 0;
- virtual const FX_WCHAR* GetListStyleImage() const = 0;
- virtual void SetListStyleType(FDE_CSSLISTSTYLETYPE eListStyleType) = 0;
- virtual void SetListStylePosition(
- FDE_CSSLISTSTYLEPOSITION eListStylePosition) = 0;
-};
-class IFDE_CSSTableStyle {
- public:
- virtual ~IFDE_CSSTableStyle() {}
- virtual FDE_CSSCAPTIONSIDE GetCaptionSide() const = 0;
-};
-class IFDE_CSSVisualStyle {
- public:
- virtual ~IFDE_CSSVisualStyle() {}
- virtual FDE_CSSVISIBILITY GetVisibility() const = 0;
- virtual FDE_CSSOVERFLOW GetOverflowX() const = 0;
- virtual FDE_CSSOVERFLOW GetOverflowY() const = 0;
- virtual void SetVisibility(FDE_CSSVISIBILITY eVisibility) = 0;
-};
-class IFDE_CSSComputedStyle : public IFX_Unknown {
- public:
- virtual void Reset() = 0;
- virtual IFDE_CSSFontStyle* GetFontStyles() const = 0;
- virtual IFDE_CSSBoundaryStyle* GetBoundaryStyles() const = 0;
- virtual IFDE_CSSPositionStyle* GetPositionStyles() const = 0;
- virtual IFDE_CSSParagraphStyle* GetParagraphStyles() const = 0;
- virtual IFDE_CSSBackgroundStyle* GetBackgroundStyles() const = 0;
- virtual IFDE_CSSVisualStyle* GetVisualStyles() const = 0;
- virtual IFDE_CSSListStyle* GetListStyles() const = 0;
- virtual IFDE_CSSMultiColumnStyle* GetMultiColumnStyle() const = 0;
- virtual IFDE_CSSTableStyle* GetTableStyle() const = 0;
- virtual IFDE_CSSGeneratedContentStyle* GetGeneratedContentStyle() const = 0;
- virtual IFDE_CSSRubyStyle* GetRubyStyle() const = 0;
- virtual FX_BOOL GetCustomStyle(const CFX_WideStringC& wsName,
- CFX_WideString& wsValue) const = 0;
-};
-enum FDE_CSSSTYLESHEETGROUP {
- FDE_CSSSTYLESHEETGROUP_UserAgent,
- FDE_CSSSTYLESHEETGROUP_User,
- FDE_CSSSTYLESHEETGROUP_Author,
- FDE_CSSSTYLESHEETGROUP_MAX,
-};
-enum FDE_CSSSTYLESHEETPRIORITY {
- FDE_CSSSTYLESHEETPRIORITY_High,
- FDE_CSSSTYLESHEETPRIORITY_Mid,
- FDE_CSSSTYLESHEETPRIORITY_Low,
- FDE_CSSSTYLESHEETPRIORITY_MAX,
-};
-class IFDE_CSSTagProvider {
- public:
- virtual ~IFDE_CSSTagProvider() {}
- virtual CFX_WideStringC GetTagName() = 0;
- virtual FX_POSITION GetFirstAttribute() = 0;
- virtual void GetNextAttribute(FX_POSITION& pos,
- CFX_WideStringC& wsAttr,
- CFX_WideStringC& wsValue) = 0;
-};
-class IFDE_CSSAccelerator {
- public:
- virtual ~IFDE_CSSAccelerator() {}
- virtual void OnEnterTag(IFDE_CSSTagProvider* pTag) = 0;
- virtual void OnLeaveTag(IFDE_CSSTagProvider* pTag) = 0;
-};
-class IFDE_CSSStyleSelector {
- public:
- static IFDE_CSSStyleSelector* Create();
- virtual ~IFDE_CSSStyleSelector() {}
- virtual void Release() = 0;
- virtual void SetFontMgr(IFX_FontMgr* pFontMgr) = 0;
- virtual void SetDefFontSize(FX_FLOAT fFontSize) = 0;
- virtual FX_BOOL SetStyleSheet(FDE_CSSSTYLESHEETGROUP eType,
- IFDE_CSSStyleSheet* pSheet) = 0;
- virtual FX_BOOL SetStyleSheets(FDE_CSSSTYLESHEETGROUP eType,
- const CFDE_CSSStyleSheetArray* pArray) = 0;
- virtual void SetStylePriority(FDE_CSSSTYLESHEETGROUP eType,
- FDE_CSSSTYLESHEETPRIORITY ePriority) = 0;
- virtual void UpdateStyleIndex(FX_DWORD dwMediaList) = 0;
- virtual IFDE_CSSAccelerator* InitAccelerator() = 0;
- virtual IFDE_CSSComputedStyle* CreateComputedStyle(
- IFDE_CSSComputedStyle* pParentStyle) = 0;
- virtual int32_t MatchDeclarations(
- IFDE_CSSTagProvider* pTag,
- CFDE_CSSDeclarationArray& matchedDecls,
- FDE_CSSPERSUDO ePersudoType = FDE_CSSPERSUDO_NONE) = 0;
- virtual void ComputeStyle(IFDE_CSSTagProvider* pTag,
- const IFDE_CSSDeclaration** ppDeclArray,
- int32_t iDeclCount,
- IFDE_CSSComputedStyle* pDestStyle) = 0;
-};
-#endif
+// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef _FDE_CSS +#define _FDE_CSS +class IFDE_HTMNotify; +class IFDE_CSSValue; +class IFDE_CSSPrimitiveValue; +class IFDE_CSSValueList; +class IFDE_CSSDeclaration; +class IFDE_CSSSelector; +class IFDE_CSSRule; +class IFDE_CSSStyleRule; +class IFDE_CSSMediaRule; +class IFDE_CSSFontFaceRule; +class IFDE_CSSStyleSheet; +class IFDE_CSSStyleSheetCache; +class IFDE_CSSSyntaxParser; +class IFDE_CSSRubyStyle; +class IFDE_CSSMultiColumnStyle; +class IFDE_CSSGeneratedContentStyle; +class IFDE_CSSFontStyle; +class IFDE_CSSBoundaryStyle; +class IFDE_CSSPositionStyle; +class IFDE_CSSParagraphStyle; +class IFDE_CSSBackgroundStyle; +class IFDE_CSSListStyle; +class IFDE_CSSTableStyle; +class IFDE_CSSVisualStyle; +class IFDE_CSSComputedStyle; +class IFDE_CSSTagProvider; +class IFDE_CSSAccelerator; +class IFDE_CSSStyleSelector; +class IFDE_CSSCounterContext; +class IFDE_CSSCounterManager; +class IFDE_CSSQuoteContext; +class IFDE_CSSContentContext; +class IFDE_CSSMultiColumnContext; +class IFDE_CSSFloatContext; +enum FDE_CSSVALUETYPE { + FDE_CSSVALUETYPE_Primitive = 1, + FDE_CSSVALUETYPE_List = 2, + FDE_CSSVALUETYPE_Shorthand, +}; +enum FDE_CSSPRIMITIVETYPE { + FDE_CSSPRIMITIVETYPE_Unknown = 0, + FDE_CSSPRIMITIVETYPE_Number = 1, + FDE_CSSPRIMITIVETYPE_Percent = 2, + FDE_CSSPRIMITIVETYPE_EMS = 3, + FDE_CSSPRIMITIVETYPE_EXS = 4, + FDE_CSSPRIMITIVETYPE_PX = 5, + FDE_CSSPRIMITIVETYPE_CM = 6, + FDE_CSSPRIMITIVETYPE_MM = 7, + FDE_CSSPRIMITIVETYPE_IN = 8, + FDE_CSSPRIMITIVETYPE_PT = 9, + FDE_CSSPRIMITIVETYPE_PC = 10, + FDE_CSSPRIMITIVETYPE_String = 19, + FDE_CSSPRIMITIVETYPE_URI = 20, + FDE_CSSPRIMITIVETYPE_RGB = 25, + FDE_CSSPRIMITIVETYPE_Enum, + FDE_CSSPRIMITIVETYPE_Function, +}; +enum FDE_CSSPROPERTYVALUE { + FDE_CSSPROPERTYVALUE_Bolder, + FDE_CSSPROPERTYVALUE_LowerLatin, + FDE_CSSPROPERTYVALUE_Lowercase, + FDE_CSSPROPERTYVALUE_LowerGreek, + FDE_CSSPROPERTYVALUE_Sesame, + FDE_CSSPROPERTYVALUE_None, + FDE_CSSPROPERTYVALUE_NwResize, + FDE_CSSPROPERTYVALUE_WResize, + FDE_CSSPROPERTYVALUE_Dot, + FDE_CSSPROPERTYVALUE_End, + FDE_CSSPROPERTYVALUE_Ltr, + FDE_CSSPROPERTYVALUE_Pre, + FDE_CSSPROPERTYVALUE_Rtl, + FDE_CSSPROPERTYVALUE_Sub, + FDE_CSSPROPERTYVALUE_Top, + FDE_CSSPROPERTYVALUE_Visible, + FDE_CSSPROPERTYVALUE_Filled, + FDE_CSSPROPERTYVALUE_SwResize, + FDE_CSSPROPERTYVALUE_NoRepeat, + FDE_CSSPROPERTYVALUE_Default, + FDE_CSSPROPERTYVALUE_Transparent, + FDE_CSSPROPERTYVALUE_Ridge, + FDE_CSSPROPERTYVALUE_Right, + FDE_CSSPROPERTYVALUE_HorizontalTb, + FDE_CSSPROPERTYVALUE_DistributeLetter, + FDE_CSSPROPERTYVALUE_DoubleCircle, + FDE_CSSPROPERTYVALUE_Ruby, + FDE_CSSPROPERTYVALUE_Collapse, + FDE_CSSPROPERTYVALUE_Normal, + FDE_CSSPROPERTYVALUE_Avoid, + FDE_CSSPROPERTYVALUE_UpperRoman, + FDE_CSSPROPERTYVALUE_Auto, + FDE_CSSPROPERTYVALUE_Text, + FDE_CSSPROPERTYVALUE_XSmall, + FDE_CSSPROPERTYVALUE_Thin, + FDE_CSSPROPERTYVALUE_Repeat, + FDE_CSSPROPERTYVALUE_Small, + FDE_CSSPROPERTYVALUE_NeResize, + FDE_CSSPROPERTYVALUE_NoContent, + FDE_CSSPROPERTYVALUE_Outside, + FDE_CSSPROPERTYVALUE_EResize, + FDE_CSSPROPERTYVALUE_TableRow, + FDE_CSSPROPERTYVALUE_Bottom, + FDE_CSSPROPERTYVALUE_Underline, + FDE_CSSPROPERTYVALUE_CjkIdeographic, + FDE_CSSPROPERTYVALUE_SeResize, + FDE_CSSPROPERTYVALUE_Fixed, + FDE_CSSPROPERTYVALUE_Double, + FDE_CSSPROPERTYVALUE_Solid, + FDE_CSSPROPERTYVALUE_RubyBaseGroup, + FDE_CSSPROPERTYVALUE_OpenQuote, + FDE_CSSPROPERTYVALUE_Lighter, + FDE_CSSPROPERTYVALUE_LowerRoman, + FDE_CSSPROPERTYVALUE_Strict, + FDE_CSSPROPERTYVALUE_TableCaption, + FDE_CSSPROPERTYVALUE_Oblique, + FDE_CSSPROPERTYVALUE_Decimal, + FDE_CSSPROPERTYVALUE_Loose, + FDE_CSSPROPERTYVALUE_Hebrew, + FDE_CSSPROPERTYVALUE_Hidden, + FDE_CSSPROPERTYVALUE_Dashed, + FDE_CSSPROPERTYVALUE_Embed, + FDE_CSSPROPERTYVALUE_TableRowGroup, + FDE_CSSPROPERTYVALUE_TableColumn, + FDE_CSSPROPERTYVALUE_Static, + FDE_CSSPROPERTYVALUE_Outset, + FDE_CSSPROPERTYVALUE_DecimalLeadingZero, + FDE_CSSPROPERTYVALUE_KeepWords, + FDE_CSSPROPERTYVALUE_KatakanaIroha, + FDE_CSSPROPERTYVALUE_Super, + FDE_CSSPROPERTYVALUE_Center, + FDE_CSSPROPERTYVALUE_TableHeaderGroup, + FDE_CSSPROPERTYVALUE_Inside, + FDE_CSSPROPERTYVALUE_XxLarge, + FDE_CSSPROPERTYVALUE_Triangle, + FDE_CSSPROPERTYVALUE_RubyTextGroup, + FDE_CSSPROPERTYVALUE_Circle, + FDE_CSSPROPERTYVALUE_Hiragana, + FDE_CSSPROPERTYVALUE_RepeatX, + FDE_CSSPROPERTYVALUE_RepeatY, + FDE_CSSPROPERTYVALUE_Move, + FDE_CSSPROPERTYVALUE_HiraganaIroha, + FDE_CSSPROPERTYVALUE_RubyBase, + FDE_CSSPROPERTYVALUE_Scroll, + FDE_CSSPROPERTYVALUE_Smaller, + FDE_CSSPROPERTYVALUE_TableFooterGroup, + FDE_CSSPROPERTYVALUE_Baseline, + FDE_CSSPROPERTYVALUE_Separate, + FDE_CSSPROPERTYVALUE_Armenian, + FDE_CSSPROPERTYVALUE_Open, + FDE_CSSPROPERTYVALUE_Relative, + FDE_CSSPROPERTYVALUE_Thick, + FDE_CSSPROPERTYVALUE_Justify, + FDE_CSSPROPERTYVALUE_Middle, + FDE_CSSPROPERTYVALUE_Always, + FDE_CSSPROPERTYVALUE_DistributeSpace, + FDE_CSSPROPERTYVALUE_LineEdge, + FDE_CSSPROPERTYVALUE_PreWrap, + FDE_CSSPROPERTYVALUE_Medium, + FDE_CSSPROPERTYVALUE_NResize, + FDE_CSSPROPERTYVALUE_ListItem, + FDE_CSSPROPERTYVALUE_Show, + FDE_CSSPROPERTYVALUE_Currentcolor, + FDE_CSSPROPERTYVALUE_NoCloseQuote, + FDE_CSSPROPERTYVALUE_VerticalLr, + FDE_CSSPROPERTYVALUE_VerticalRl, + FDE_CSSPROPERTYVALUE_Pointer, + FDE_CSSPROPERTYVALUE_XxSmall, + FDE_CSSPROPERTYVALUE_Bold, + FDE_CSSPROPERTYVALUE_Both, + FDE_CSSPROPERTYVALUE_SmallCaps, + FDE_CSSPROPERTYVALUE_Katakana, + FDE_CSSPROPERTYVALUE_After, + FDE_CSSPROPERTYVALUE_Horizontal, + FDE_CSSPROPERTYVALUE_Dotted, + FDE_CSSPROPERTYVALUE_Disc, + FDE_CSSPROPERTYVALUE_Georgian, + FDE_CSSPROPERTYVALUE_Inline, + FDE_CSSPROPERTYVALUE_Overline, + FDE_CSSPROPERTYVALUE_Wait, + FDE_CSSPROPERTYVALUE_BreakAll, + FDE_CSSPROPERTYVALUE_UpperAlpha, + FDE_CSSPROPERTYVALUE_Capitalize, + FDE_CSSPROPERTYVALUE_Nowrap, + FDE_CSSPROPERTYVALUE_TextBottom, + FDE_CSSPROPERTYVALUE_NoOpenQuote, + FDE_CSSPROPERTYVALUE_Groove, + FDE_CSSPROPERTYVALUE_Progress, + FDE_CSSPROPERTYVALUE_Larger, + FDE_CSSPROPERTYVALUE_CloseQuote, + FDE_CSSPROPERTYVALUE_TableCell, + FDE_CSSPROPERTYVALUE_PreLine, + FDE_CSSPROPERTYVALUE_Absolute, + FDE_CSSPROPERTYVALUE_InlineTable, + FDE_CSSPROPERTYVALUE_BidiOverride, + FDE_CSSPROPERTYVALUE_InlineBlock, + FDE_CSSPROPERTYVALUE_Inset, + FDE_CSSPROPERTYVALUE_Crosshair, + FDE_CSSPROPERTYVALUE_UpperLatin, + FDE_CSSPROPERTYVALUE_Help, + FDE_CSSPROPERTYVALUE_Hide, + FDE_CSSPROPERTYVALUE_Uppercase, + FDE_CSSPROPERTYVALUE_SResize, + FDE_CSSPROPERTYVALUE_Table, + FDE_CSSPROPERTYVALUE_Blink, + FDE_CSSPROPERTYVALUE_Block, + FDE_CSSPROPERTYVALUE_Start, + FDE_CSSPROPERTYVALUE_TableColumnGroup, + FDE_CSSPROPERTYVALUE_Italic, + FDE_CSSPROPERTYVALUE_LineThrough, + FDE_CSSPROPERTYVALUE_KeepAll, + FDE_CSSPROPERTYVALUE_LowerAlpha, + FDE_CSSPROPERTYVALUE_RunIn, + FDE_CSSPROPERTYVALUE_Square, + FDE_CSSPROPERTYVALUE_XLarge, + FDE_CSSPROPERTYVALUE_Large, + FDE_CSSPROPERTYVALUE_Before, + FDE_CSSPROPERTYVALUE_Left, + FDE_CSSPROPERTYVALUE_TextTop, + FDE_CSSPROPERTYVALUE_RubyText, + FDE_CSSPROPERTYVALUE_NoDisplay, + FDE_CSSPROPERTYVALUE_MAX +}; +class IFDE_CSSValue { + public: + virtual ~IFDE_CSSValue() {} + virtual FDE_CSSVALUETYPE GetType() const = 0; +}; +class IFDE_CSSPrimitiveValue : public IFDE_CSSValue { + public: + virtual FDE_CSSVALUETYPE GetType() const { + return FDE_CSSVALUETYPE_Primitive; + } + virtual FDE_CSSPRIMITIVETYPE GetPrimitiveType() const = 0; + virtual FX_ARGB GetRGBColor() const = 0; + virtual FX_FLOAT GetFloat() const = 0; + virtual const FX_WCHAR* GetString(int32_t& iLength) const = 0; + virtual FDE_CSSPROPERTYVALUE GetEnum() const = 0; + virtual const FX_WCHAR* GetFuncName() const = 0; + virtual int32_t CountArgs() const = 0; + virtual IFDE_CSSValue* GetArgs(int32_t index) const = 0; +}; +class IFDE_CSSValueList : public IFDE_CSSValue { + public: + virtual FDE_CSSVALUETYPE GetType() const { return FDE_CSSVALUETYPE_List; } + virtual int32_t CountValues() const = 0; + virtual IFDE_CSSValue* GetValue(int32_t index) const = 0; +}; +enum FDE_CSSPROPERTY { + FDE_CSSPROPERTY_WritingMode, + FDE_CSSPROPERTY_ColumnRuleWidth, + FDE_CSSPROPERTY_BorderLeft, + FDE_CSSPROPERTY_ColumnRule, + FDE_CSSPROPERTY_Height, + FDE_CSSPROPERTY_CounterReset, + FDE_CSSPROPERTY_Content, + FDE_CSSPROPERTY_RubyPosition, + FDE_CSSPROPERTY_BackgroundColor, + FDE_CSSPROPERTY_Width, + FDE_CSSPROPERTY_Src, + FDE_CSSPROPERTY_Top, + FDE_CSSPROPERTY_Margin, + FDE_CSSPROPERTY_BorderColor, + FDE_CSSPROPERTY_Widows, + FDE_CSSPROPERTY_BorderBottomColor, + FDE_CSSPROPERTY_TextIndent, + FDE_CSSPROPERTY_Right, + FDE_CSSPROPERTY_TextEmphasisStyle, + FDE_CSSPROPERTY_PaddingLeft, + FDE_CSSPROPERTY_ColumnWidth, + FDE_CSSPROPERTY_MarginLeft, + FDE_CSSPROPERTY_Border, + FDE_CSSPROPERTY_BorderTop, + FDE_CSSPROPERTY_RubyOverhang, + FDE_CSSPROPERTY_PageBreakBefore, + FDE_CSSPROPERTY_MaxHeight, + FDE_CSSPROPERTY_MinWidth, + FDE_CSSPROPERTY_BorderLeftColor, + FDE_CSSPROPERTY_Bottom, + FDE_CSSPROPERTY_Quotes, + FDE_CSSPROPERTY_MaxWidth, + FDE_CSSPROPERTY_PaddingRight, + FDE_CSSPROPERTY_ListStyleImage, + FDE_CSSPROPERTY_WhiteSpace, + FDE_CSSPROPERTY_BorderBottom, + FDE_CSSPROPERTY_ListStyleType, + FDE_CSSPROPERTY_WordBreak, + FDE_CSSPROPERTY_OverflowX, + FDE_CSSPROPERTY_OverflowY, + FDE_CSSPROPERTY_BorderTopColor, + FDE_CSSPROPERTY_FontFamily, + FDE_CSSPROPERTY_Cursor, + FDE_CSSPROPERTY_RubyAlign, + FDE_CSSPROPERTY_ColumnRuleColor, + FDE_CSSPROPERTY_FontWeight, + FDE_CSSPROPERTY_BorderRightStyle, + FDE_CSSPROPERTY_MinHeight, + FDE_CSSPROPERTY_Color, + FDE_CSSPROPERTY_LetterSpacing, + FDE_CSSPROPERTY_EmptyCells, + FDE_CSSPROPERTY_TextAlign, + FDE_CSSPROPERTY_RubySpan, + FDE_CSSPROPERTY_Position, + FDE_CSSPROPERTY_BorderStyle, + FDE_CSSPROPERTY_BorderBottomStyle, + FDE_CSSPROPERTY_BorderCollapse, + FDE_CSSPROPERTY_ColumnCount, + FDE_CSSPROPERTY_BorderRightWidth, + FDE_CSSPROPERTY_UnicodeBidi, + FDE_CSSPROPERTY_VerticalAlign, + FDE_CSSPROPERTY_PaddingTop, + FDE_CSSPROPERTY_Columns, + FDE_CSSPROPERTY_Overflow, + FDE_CSSPROPERTY_TableLayout, + FDE_CSSPROPERTY_FontVariant, + FDE_CSSPROPERTY_ListStyle, + FDE_CSSPROPERTY_BackgroundPosition, + FDE_CSSPROPERTY_BorderWidth, + FDE_CSSPROPERTY_TextEmphasisColor, + FDE_CSSPROPERTY_BorderLeftStyle, + FDE_CSSPROPERTY_PageBreakInside, + FDE_CSSPROPERTY_TextEmphasis, + FDE_CSSPROPERTY_BorderBottomWidth, + FDE_CSSPROPERTY_ColumnGap, + FDE_CSSPROPERTY_Orphans, + FDE_CSSPROPERTY_BorderRight, + FDE_CSSPROPERTY_FontSize, + FDE_CSSPROPERTY_PageBreakAfter, + FDE_CSSPROPERTY_CaptionSide, + FDE_CSSPROPERTY_BackgroundRepeat, + FDE_CSSPROPERTY_BorderTopStyle, + FDE_CSSPROPERTY_BorderSpacing, + FDE_CSSPROPERTY_TextTransform, + FDE_CSSPROPERTY_FontStyle, + FDE_CSSPROPERTY_Font, + FDE_CSSPROPERTY_LineHeight, + FDE_CSSPROPERTY_MarginRight, + FDE_CSSPROPERTY_Float, + FDE_CSSPROPERTY_BorderLeftWidth, + FDE_CSSPROPERTY_Display, + FDE_CSSPROPERTY_Clear, + FDE_CSSPROPERTY_ColumnRuleStyle, + FDE_CSSPROPERTY_TextCombine, + FDE_CSSPROPERTY_ListStylePosition, + FDE_CSSPROPERTY_Visibility, + FDE_CSSPROPERTY_PaddingBottom, + FDE_CSSPROPERTY_BackgroundAttachment, + FDE_CSSPROPERTY_BackgroundImage, + FDE_CSSPROPERTY_LineBreak, + FDE_CSSPROPERTY_Background, + FDE_CSSPROPERTY_BorderTopWidth, + FDE_CSSPROPERTY_WordSpacing, + FDE_CSSPROPERTY_BorderRightColor, + FDE_CSSPROPERTY_CounterIncrement, + FDE_CSSPROPERTY_Left, + FDE_CSSPROPERTY_TextDecoration, + FDE_CSSPROPERTY_Padding, + FDE_CSSPROPERTY_MarginBottom, + FDE_CSSPROPERTY_MarginTop, + FDE_CSSPROPERTY_Direction, + FDE_CSSPROPERTY_MAX +}; +class IFDE_CSSDeclaration { + public: + virtual ~IFDE_CSSDeclaration() {} + virtual IFDE_CSSValue* GetProperty(FDE_CSSPROPERTY eProperty, + FX_BOOL& bImportant) const = 0; + virtual FX_POSITION GetStartPosition() const = 0; + virtual void GetNextProperty(FX_POSITION& pos, + FDE_CSSPROPERTY& eProperty, + IFDE_CSSValue*& pValue, + FX_BOOL& bImportant) const = 0; + virtual FX_POSITION GetStartCustom() const = 0; + virtual void GetNextCustom(FX_POSITION& pos, + CFX_WideString& wsName, + CFX_WideString& wsValue) const = 0; +}; +typedef CFX_ArrayTemplate<IFDE_CSSDeclaration*> CFDE_CSSDeclarationArray; +enum FDE_CSSPERSUDO { + FDE_CSSPERSUDO_After, + FDE_CSSPERSUDO_Before, + FDE_CSSPERSUDO_NONE +}; +enum FDE_CSSSELECTORTYPE { + FDE_CSSSELECTORTYPE_Element, + FDE_CSSSELECTORTYPE_Descendant, + FDE_CSSSELECTORTYPE_Class, + FDE_CSSSELECTORTYPE_Persudo, + FDE_CSSSELECTORTYPE_ID, +}; +class IFDE_CSSSelector { + public: + virtual ~IFDE_CSSSelector() {} + virtual FDE_CSSSELECTORTYPE GetType() const = 0; + virtual FX_DWORD GetNameHash() const = 0; + virtual IFDE_CSSSelector* GetNextSelector() const = 0; +}; +#define FDE_CSSMEDIATYPE_Braille 0x01 +#define FDE_CSSMEDIATYPE_Emboss 0x02 +#define FDE_CSSMEDIATYPE_Handheld 0x04 +#define FDE_CSSMEDIATYPE_Print 0x08 +#define FDE_CSSMEDIATYPE_Projection 0x10 +#define FDE_CSSMEDIATYPE_Screen 0x20 +#define FDE_CSSMEDIATYPE_TTY 0x40 +#define FDE_CSSMEDIATYPE_TV 0x80 +#define FDE_CSSMEDIATYPE_ALL 0xFF +enum FDE_CSSRULETYPE { + FDE_CSSRULETYPE_Unknown = 0, + FDE_CSSRULETYPE_Style = 1, + FDE_CSSRULETYPE_Media = 4, + FDE_CSSRULETYPE_FontFace = 5, +}; +class IFDE_CSSRule { + public: + virtual ~IFDE_CSSRule() {} + virtual FDE_CSSRULETYPE GetType() const = 0; +}; +typedef CFX_MassArrayTemplate<IFDE_CSSRule*> CFDE_CSSRuleArray; +class IFDE_CSSStyleRule : public IFDE_CSSRule { + public: + virtual FDE_CSSRULETYPE GetType() const { return FDE_CSSRULETYPE_Style; } + virtual int32_t CountSelectorLists() const = 0; + virtual IFDE_CSSSelector* GetSelectorList(int32_t index) const = 0; + virtual IFDE_CSSDeclaration* GetDeclaration() const = 0; +}; +class IFDE_CSSMediaRule : public IFDE_CSSRule { + public: + virtual FDE_CSSRULETYPE GetType() const { return FDE_CSSRULETYPE_Media; } + virtual FX_DWORD GetMediaList() const = 0; + virtual int32_t CountRules() const = 0; + virtual IFDE_CSSRule* GetRule(int32_t index) = 0; +}; +class IFDE_CSSFontFaceRule : public IFDE_CSSRule { + public: + virtual FDE_CSSRULETYPE GetType() const { return FDE_CSSRULETYPE_FontFace; } + virtual IFDE_CSSDeclaration* GetDeclaration() const = 0; +}; +class IFDE_CSSStyleSheet : public IFX_Unknown { + public: + static IFDE_CSSStyleSheet* LoadHTMLStandardStyleSheet(); + static IFDE_CSSStyleSheet* LoadFromStream( + const CFX_WideString& szUrl, + IFX_Stream* pStream, + FX_WORD wCodePage, + FX_DWORD dwMediaList = FDE_CSSMEDIATYPE_ALL); + static IFDE_CSSStyleSheet* LoadFromBuffer( + const CFX_WideString& szUrl, + const FX_WCHAR* pBuffer, + int32_t iBufSize, + FX_WORD wCodePage, + FX_DWORD dwMediaList = FDE_CSSMEDIATYPE_ALL); + virtual FX_BOOL GetUrl(CFX_WideString& szUrl) = 0; + virtual FX_DWORD GetMediaList() const = 0; + virtual FX_WORD GetCodePage() const = 0; + + virtual int32_t CountRules() const = 0; + virtual IFDE_CSSRule* GetRule(int32_t index) = 0; +}; +typedef CFX_ArrayTemplate<IFDE_CSSStyleSheet*> CFDE_CSSStyleSheetArray; +#define FDE_CSSUSERSTYLESHEET (FX_BSTRC("#USERSHEET")) +#define FDE_CSSUAGENTSTYLESHEET (FX_BSTRC("#AGENTSHEET")) +class IFDE_CSSStyleSheetCache { + public: + static IFDE_CSSStyleSheetCache* Create(); + virtual ~IFDE_CSSStyleSheetCache() {} + virtual void Release() = 0; + virtual void SetMaxItems(int32_t iMaxCount = 5) = 0; + virtual void AddStyleSheet(const CFX_ByteStringC& szKey, + IFDE_CSSStyleSheet* pStyleSheet) = 0; + virtual IFDE_CSSStyleSheet* GetStyleSheet( + const CFX_ByteStringC& szKey) const = 0; + virtual void RemoveStyleSheet(const CFX_ByteStringC& szKey) = 0; +}; +enum FDE_CSSSYNTAXSTATUS { + FDE_CSSSYNTAXSTATUS_Error, + FDE_CSSSYNTAXSTATUS_EOS, + FDE_CSSSYNTAXSTATUS_None, + FDE_CSSSYNTAXSTATUS_Charset, + FDE_CSSSYNTAXSTATUS_ImportRule, + FDE_CSSSYNTAXSTATUS_ImportClose, + FDE_CSSSYNTAXSTATUS_PageRule, + FDE_CSSSYNTAXSTATUS_StyleRule, + FDE_CSSSYNTAXSTATUS_FontFaceRule, + FDE_CSSSYNTAXSTATUS_MediaRule, + FDE_CSSSYNTAXSTATUS_MediaType, + FDE_CSSSYNTAXSTATUS_URI, + FDE_CSSSYNTAXSTATUS_Selector, + FDE_CSSSYNTAXSTATUS_DeclOpen, + FDE_CSSSYNTAXSTATUS_DeclClose, + FDE_CSSSYNTAXSTATUS_PropertyName, + FDE_CSSSYNTAXSTATUS_PropertyValue, +}; +class IFDE_CSSSyntaxParser { + public: + static IFDE_CSSSyntaxParser* Create(); + virtual ~IFDE_CSSSyntaxParser() {} + virtual void Release() = 0; + virtual FX_BOOL Init(IFX_Stream* pStream, + int32_t iCSSPlaneSize, + int32_t iTextDataSize = 32, + FX_BOOL bOnlyDeclaration = FALSE) = 0; + virtual FX_BOOL Init(const FX_WCHAR* pBuffer, + int32_t iBufferSize, + int32_t iTextDatSize = 32, + FX_BOOL bOnlyDeclaration = FALSE) = 0; + + virtual FDE_CSSSYNTAXSTATUS DoSyntaxParse() = 0; + virtual const FX_WCHAR* GetCurrentString(int32_t& iLength) const = 0; +}; +enum FDE_CSSLENGTHUNIT { + FDE_CSSLENGTHUNIT_Auto, + FDE_CSSLENGTHUNIT_None, + FDE_CSSLENGTHUNIT_Normal, + FDE_CSSLENGTHUNIT_Point, + FDE_CSSLENGTHUNIT_Percent, +}; +#define FDE_CSSUNITBITS (3) +#define FDE_CSSUNITMASK ((1 << FDE_CSSUNITBITS) - 1) +struct FDE_CSSLENGTH { + FDE_CSSLENGTH& Set(FDE_CSSLENGTHUNIT eUnit) { + m_iData = eUnit; + return *this; + } + FDE_CSSLENGTH& Set(FDE_CSSLENGTHUNIT eUnit, FX_FLOAT fValue) { + m_iData = ((intptr_t)(fValue * 1024.0f) << FDE_CSSUNITBITS) | eUnit; + return *this; + } + FDE_CSSLENGTHUNIT GetUnit() const { + return (FDE_CSSLENGTHUNIT)(m_iData & FDE_CSSUNITMASK); + } + FX_FLOAT GetValue() const { return (m_iData >> FDE_CSSUNITBITS) / 1024.0f; } + FX_BOOL NonZero() const { return (m_iData >> FDE_CSSUNITBITS) != 0; } + + private: + intptr_t m_iData; +}; +struct FDE_CSSPOINT { + FDE_CSSPOINT& Set(FDE_CSSLENGTHUNIT eUnit) { + x.Set(eUnit); + y.Set(eUnit); + return *this; + } + FDE_CSSPOINT& Set(FDE_CSSLENGTHUNIT eUnit, FX_FLOAT fValue) { + x.Set(eUnit, fValue); + y.Set(eUnit, fValue); + return *this; + } + FDE_CSSLENGTH x, y; +}; +struct FDE_CSSSIZE { + FDE_CSSSIZE& Set(FDE_CSSLENGTHUNIT eUnit) { + cx.Set(eUnit); + cy.Set(eUnit); + return *this; + } + FDE_CSSSIZE& Set(FDE_CSSLENGTHUNIT eUnit, FX_FLOAT fValue) { + cx.Set(eUnit, fValue); + cy.Set(eUnit, fValue); + return *this; + } + FDE_CSSLENGTH cx, cy; +}; +struct FDE_CSSRECT { + FDE_CSSRECT& Set(FDE_CSSLENGTHUNIT eUnit) { + left.Set(eUnit); + top.Set(eUnit); + right.Set(eUnit); + bottom.Set(eUnit); + return *this; + } + FDE_CSSRECT& Set(FDE_CSSLENGTHUNIT eUnit, FX_FLOAT fValue) { + left.Set(eUnit, fValue); + top.Set(eUnit, fValue); + right.Set(eUnit, fValue); + bottom.Set(eUnit, fValue); + return *this; + } + + FDE_CSSLENGTH left, top, right, bottom; +}; +enum FDE_CSSBKGATTACHMENT { + FDE_CSSBKGATTACHMENT_Scroll, + FDE_CSSBKGATTACHMENT_Fixed, +}; +enum FDE_CSSBKGREPEAT { + FDE_CSSBKGREPEAT_Repeat, + FDE_CSSBKGREPEAT_RepeatX, + FDE_CSSBKGREPEAT_RepeatY, + FDE_CSSBKGREPEAT_NoRepeat, +}; +enum FDE_CSSBORDERSTYLE { + FDE_CSSBORDERSTYLE_None, + FDE_CSSBORDERSTYLE_Hidden, + FDE_CSSBORDERSTYLE_Dotted, + FDE_CSSBORDERSTYLE_Dashed, + FDE_CSSBORDERSTYLE_Solid, + FDE_CSSBORDERSTYLE_Double, + FDE_CSSBORDERSTYLE_Groove, + FDE_CSSBORDERSTYLE_Ridge, + FDE_CSSBORDERSTYLE_Inset, + FDE_CSSBORDERSTYLE_outset, +}; +enum FDE_CSSCLEAR { + FDE_CSSCLEAR_None, + FDE_CSSCLEAR_Left, + FDE_CSSCLEAR_Right, + FDE_CSSCLEAR_Both, +}; +enum FDE_CSSDISPLAY { + FDE_CSSDISPLAY_None, + FDE_CSSDISPLAY_ListItem, + FDE_CSSDISPLAY_RunIn, + FDE_CSSDISPLAY_Block, + FDE_CSSDISPLAY_Inline, + FDE_CSSDISPLAY_InlineBlock, + FDE_CSSDISPLAY_InlineTable, + FDE_CSSDISPLAY_Table, + FDE_CSSDISPLAY_TableRow, + FDE_CSSDISPLAY_TableCell, + FDE_CSSDISPLAY_TableCaption, + FDE_CSSDISPLAY_TableColumn, + FDE_CSSDISPLAY_TableRowGroup, + FDE_CSSDISPLAY_TableColumnGroup, + FDE_CSSDISPLAY_TableHeaderGroup, + FDE_CSSDISPLAY_TableFooterGroup, + FDE_CSSDISPLAY_Ruby, + FDE_CSSDISPLAY_RubyBase, + FDE_CSSDISPLAY_RubyText, + FDE_CSSDISPLSY_RubyBaseGroup, + FDE_CSSDISPLAY_RubyTextGroup, +}; +enum FDE_CSSVISIBILITY { + FDE_CSSVISIBILITY_Visible, + FDE_CSSVISIBILITY_Hidden, + FDE_CSSVISIBILITY_Collapse, +}; +enum FDE_CSSFONTSTYLE { + FDE_CSSFONTSTYLE_Normal, + FDE_CSSFONTSTYLE_Italic, +}; +enum FDE_CSSFLOAT { + FDE_CSSFLOAT_None, + FDE_CSSFLOAT_Left, + FDE_CSSFLOAT_Right, +}; +enum FDE_CSSWRITINGMODE { + FDE_CSSWRITINGMODE_HorizontalTb, + FDE_CSSWRITINGMODE_VerticalRl, + FDE_CSSWRITINGMODE_VerticalLr, +}; +enum FDE_CSSWORDBREAK { + FDE_CSSWORDBREAK_Normal, + FDE_CSSWORDBREAK_KeepAll, + FDE_CSSWORDBREAK_BreakAll, + FDE_CSSWORDBREAK_KeepWords, +}; +enum FDE_CSSPAGEBREAK { + FDE_CSSPAGEBREAK_Auto, + FDE_CSSPAGEBREAK_Always, + FDE_CSSPAGEBREAK_Avoid, + FDE_CSSPAGEBREAK_Left, + FDE_CSSPAGEBREAK_Right, +}; +enum FDE_CSSOVERFLOW { + FDE_CSSOVERFLOW_Visible, + FDE_CSSOVERFLOW_Hidden, + FDE_CSSOVERFLOW_Scroll, + FDE_CSSOVERFLOW_Auto, + FDE_CSSOVERFLOW_NoDisplay, + FDE_CSSOVERFLOW_NoContent, +}; +enum FDE_CSSLINEBREAK { + FDE_CSSLINEBREAK_Auto, + FDE_CSSLINEBREAK_Loose, + FDE_CSSLINEBREAK_Normal, + FDE_CSSLINEBREAK_Strict, +}; +enum FDE_CSSTEXTEMPHASISFILL { + FDE_CSSTEXTEMPHASISFILL_Filled, + FDE_CSSTEXTEMPHASISFILL_Open, +}; +enum FDE_CSSTEXTEMPHASISMARK { + FDE_CSSTEXTEMPHASISMARK_None, + FDE_CSSTEXTEMPHASISMARK_Auto, + FDE_CSSTEXTEMPHASISMARK_Dot, + FDE_CSSTEXTEMPHASISMARK_Circle, + FDE_CSSTEXTEMPHASISMARK_DoubleCircle, + FDE_CSSTEXTEMPHASISMARK_Triangle, + FDE_CSSTEXTEMPHASISMARK_Sesame, + FDE_CSSTEXTEMPHASISMARK_Custom, +}; +enum FDE_CSSTEXTCOMBINE { + FDE_CSSTEXTCOMBINE_Horizontal, + FDE_CSSTEXTCOMBINE_None, +}; +enum FDE_CSSCURSOR { + FDE_CSSCURSOR_Auto, + FDE_CSSCURSOR_Crosshair, + FDE_CSSCURSOR_Default, + FDE_CSSCURSOR_Pointer, + FDE_CSSCURSOR_Move, + FDE_CSSCURSOR_EResize, + FDE_CSSCURSOR_NeResize, + FDE_CSSCURSOR_NwResize, + FDE_CSSCURSOR_NResize, + FDE_CSSCURSOR_SeResize, + FDE_CSSCURSOR_SwResize, + FDE_CSSCURSOR_SResize, + FDE_CSSCURSOR_WResize, + FDE_CSSCURSOR_Text, + FDE_CSSCURSOR_Wait, + FDE_CSSCURSOR_Help, + FDE_CSSCURSOR_Progress, +}; +enum FDE_CSSPOSITION { + FDE_CSSPOSITION_Static, + FDE_CSSPOSITION_Relative, + FDE_CSSPOSITION_Absolute, + FDE_CSSPOSITION_Fixed, +}; +enum FDE_CSSCAPTIONSIDE { + FDE_CSSCAPTIONSIDE_Top, + FDE_CSSCAPTIONSIDE_Bottom, + FDE_CSSCAPTIONSIDE_Left, + FDE_CSSCAPTIONSIDE_Right, + FDE_CSSCAPTIONSIDE_Before, + FDE_CSSCAPTIONSIDE_After, +}; +enum FDE_CSSRUBYALIGN { + FDE_CSSRUBYALIGN_Auto, + FDE_CSSRUBYALIGN_Start, + FDE_CSSRUBYALIGN_Left, + FDE_CSSRUBYALIGN_Center, + FDE_CSSRUBYALIGN_End, + FDE_CSSRUBYALIGN_Right, + FDE_CSSRUBYALIGN_DistributeLetter, + FDE_CSSRUBYALIGN_DistributeSpace, + FDE_CSSRUBYALIGN_LineEdge, +}; +enum FDE_CSSRUBYOVERHANG { + FDE_CSSRUBYOVERHANG_Auto, + FDE_CSSRUBYOVERHANG_Start, + FDE_CSSRUBYOVERHANG_End, + FDE_CSSRUBYOVERHANG_None, +}; +enum FDE_CSSRUBYPOSITION { + FDE_CSSRUBYPOSITION_Before, + FDE_CSSRUBYPOSITION_After, + FDE_CSSRUBYPOSITION_Right, + FDE_CSSRUBYPOSITION_Inline, +}; +enum FDE_CSSRUBYSPAN { + FDE_CSSRUBYSPAN_None, + FDE_CSSRUBYSPAN_Attr, +}; +enum FDE_CSSTEXTALIGN { + FDE_CSSTEXTALIGN_Left, + FDE_CSSTEXTALIGN_Right, + FDE_CSSTEXTALIGN_Center, + FDE_CSSTEXTALIGN_Justify, + FDE_CSSTEXTALIGN_JustifyAll, +}; +enum FDE_CSSVERTICALALIGN { + FDE_CSSVERTICALALIGN_Baseline, + FDE_CSSVERTICALALIGN_Sub, + FDE_CSSVERTICALALIGN_Super, + FDE_CSSVERTICALALIGN_Top, + FDE_CSSVERTICALALIGN_TextTop, + FDE_CSSVERTICALALIGN_Middle, + FDE_CSSVERTICALALIGN_Bottom, + FDE_CSSVERTICALALIGN_TextBottom, + FDE_CSSVERTICALALIGN_Number, +}; +enum FDE_CSSLISTSTYLETYPE { + FDE_CSSLISTSTYLETYPE_Disc, + FDE_CSSLISTSTYLETYPE_Circle, + FDE_CSSLISTSTYLETYPE_Square, + FDE_CSSLISTSTYLETYPE_Decimal, + FDE_CSSLISTSTYLETYPE_DecimalLeadingZero, + FDE_CSSLISTSTYLETYPE_LowerRoman, + FDE_CSSLISTSTYLETYPE_UpperRoman, + FDE_CSSLISTSTYLETYPE_LowerGreek, + FDE_CSSLISTSTYLETYPE_LowerLatin, + FDE_CSSLISTSTYLETYPE_UpperLatin, + FDE_CSSLISTSTYLETYPE_Armenian, + FDE_CSSLISTSTYLETYPE_Georgian, + FDE_CSSLISTSTYLETYPE_LowerAlpha, + FDE_CSSLISTSTYLETYPE_UpperAlpha, + FDE_CSSLISTSTYLETYPE_None, + FDE_CSSLISTSTYLETYPE_CjkIdeographic, + FDE_CSSLISTSTYLETYPE_Hebrew, + FDE_CSSLISTSTYLETYPE_Hiragana, + FDE_CSSLISTSTYLETYPE_HiraganaIroha, + FDE_CSSLISTSTYLETYPE_Katakana, + FDE_CSSLISTSTYLETYPE_KatakanaIroha, +}; +enum FDE_CSSLISTSTYLEPOSITION { + FDE_CSSLISTSTYLEPOSITION_Outside, + FDE_CSSLISTSTYLEPOSITION_Inside, +}; +enum FDE_CSSWHITESPACE { + FDE_CSSWHITESPACE_Normal, + FDE_CSSWHITESPACE_Pre, + FDE_CSSWHITESPACE_Nowrap, + FDE_CSSWHITESPACE_PreWrap, + FDE_CSSWHITESPACE_PreLine, +}; +enum FDE_CSSFONTVARIANT { + FDE_CSSFONTVARIANT_Normal, + FDE_CSSFONTVARIANT_SmallCaps, +}; +enum FDE_CSSTEXTTRANSFORM { + FDE_CSSTEXTTRANSFORM_None, + FDE_CSSTEXTTRANSFORM_Capitalize, + FDE_CSSTEXTTRANSFORM_UpperCase, + FDE_CSSTEXTTRANSFORM_LowerCase, +}; +enum FDE_CSSTEXTDECORATION { + FDE_CSSTEXTDECORATION_None = 0, + FDE_CSSTEXTDECORATION_Underline = 1, + FDE_CSSTEXTDECORATION_Overline = 2, + FDE_CSSTEXTDECORATION_LineThrough = 4, + FDE_CSSTEXTDECORATION_Blink = 8, + FDE_CSSTEXTDECORATION_Double = 16, +}; +class IFDE_CSSRubyStyle { + public: + virtual ~IFDE_CSSRubyStyle() {} + virtual FDE_CSSRUBYALIGN GetRubyAlign() const = 0; + virtual FDE_CSSRUBYOVERHANG GetRubyOverhang() const = 0; + virtual FDE_CSSRUBYPOSITION GetRubyPosition() const = 0; + virtual FDE_CSSRUBYSPAN GetRubySpanType() const = 0; + virtual IFDE_CSSValue* GetRubySpanAttr() const = 0; +}; +class IFDE_CSSMultiColumnStyle { + public: + virtual ~IFDE_CSSMultiColumnStyle() {} + virtual const FDE_CSSLENGTH& GetColumnCount() const = 0; + virtual const FDE_CSSLENGTH& GetColumnGap() const = 0; + virtual FX_ARGB GetColumnRuleColor() const = 0; + virtual FDE_CSSBORDERSTYLE GetColumnRuleStyle() const = 0; + virtual const FDE_CSSLENGTH& GetColumnRuleWidth() const = 0; + virtual const FDE_CSSLENGTH& GetColumnWidth() const = 0; + virtual void SetColumnCount(const FDE_CSSLENGTH& columnCount) = 0; + virtual void SetColumnGap(const FDE_CSSLENGTH& columnGap) = 0; + virtual void SetColumnRuleColor(FX_ARGB dwColumnRuleColor) = 0; + virtual void SetColumnRuleStyle(FDE_CSSBORDERSTYLE eColumnRuleStyle) = 0; + virtual void SetColumnRuleWidth(const FDE_CSSLENGTH& columnRuleWidth) = 0; + virtual void SetColumnWidth(const FDE_CSSLENGTH& columnWidth) = 0; +}; +class IFDE_CSSGeneratedContentStyle { + public: + virtual ~IFDE_CSSGeneratedContentStyle() {} + virtual int32_t CountCounters() = 0; + virtual const FX_WCHAR* GetCounterIdentifier(int32_t index) = 0; + virtual FX_BOOL GetCounterReset(int32_t index, int32_t& iValue) = 0; + virtual FX_BOOL GetCounterIncrement(int32_t index, int32_t& iValue) = 0; + virtual IFDE_CSSValueList* GetContent() const = 0; + virtual int32_t CountQuotes() const = 0; + virtual const FX_WCHAR* GetQuotes(int32_t index) const = 0; +}; +class IFDE_CSSFontStyle { + public: + virtual ~IFDE_CSSFontStyle() {} + virtual int32_t CountFontFamilies() const = 0; + virtual const FX_WCHAR* GetFontFamily(int32_t index) const = 0; + virtual FX_WORD GetFontWeight() const = 0; + virtual FDE_CSSFONTVARIANT GetFontVariant() const = 0; + virtual FDE_CSSFONTSTYLE GetFontStyle() const = 0; + virtual FX_FLOAT GetFontSize() const = 0; + virtual FX_ARGB GetColor() const = 0; + virtual void SetFontWeight(FX_WORD wFontWeight) = 0; + virtual void SetFontVariant(FDE_CSSFONTVARIANT eFontVariant) = 0; + virtual void SetFontStyle(FDE_CSSFONTSTYLE eFontStyle) = 0; + virtual void SetFontSize(FX_FLOAT fFontSize) = 0; + virtual void SetColor(FX_ARGB dwFontColor) = 0; +}; +class IFDE_CSSBoundaryStyle { + public: + virtual ~IFDE_CSSBoundaryStyle() {} + virtual FX_ARGB GetBorderLeftColor() const = 0; + virtual FX_ARGB GetBorderTopColor() const = 0; + virtual FX_ARGB GetBorderRightColor() const = 0; + virtual FX_ARGB GetBorderBottomColor() const = 0; + virtual FDE_CSSBORDERSTYLE GetBorderLeftStyle() const = 0; + virtual FDE_CSSBORDERSTYLE GetBorderTopStyle() const = 0; + virtual FDE_CSSBORDERSTYLE GetBorderRightStyle() const = 0; + virtual FDE_CSSBORDERSTYLE GetBorderBottomStyle() const = 0; + virtual const FDE_CSSRECT* GetBorderWidth() const = 0; + virtual const FDE_CSSRECT* GetMarginWidth() const = 0; + virtual const FDE_CSSRECT* GetPaddingWidth() const = 0; + virtual void SetBorderLeftColor(FX_ARGB dwBorderColor) = 0; + virtual void SetBorderTopColor(FX_ARGB dwBorderColor) = 0; + virtual void SetBorderRightColor(FX_ARGB dwBorderColor) = 0; + virtual void SetBorderBottomColor(FX_ARGB dwBorderColor) = 0; + + virtual void SetBorderLeftStyle(FDE_CSSBORDERSTYLE eBorderStyle) = 0; + virtual void SetBorderTopStyle(FDE_CSSBORDERSTYLE eBorderStyle) = 0; + virtual void SetBorderRightStyle(FDE_CSSBORDERSTYLE eBorderStyle) = 0; + virtual void SetBorderBottomStyle(FDE_CSSBORDERSTYLE eBorderStyle) = 0; + + virtual void SetBorderWidth(const FDE_CSSRECT& rect) = 0; + virtual void SetMarginWidth(const FDE_CSSRECT& rect) = 0; + virtual void SetPaddingWidth(const FDE_CSSRECT& rect) = 0; +}; +class IFDE_CSSPositionStyle { + public: + virtual ~IFDE_CSSPositionStyle() {} + virtual FDE_CSSDISPLAY GetDisplay() const = 0; + virtual const FDE_CSSSIZE& GetBoxSize() const = 0; + virtual const FDE_CSSSIZE& GetMinBoxSize() const = 0; + virtual const FDE_CSSSIZE& GetMaxBoxSize() const = 0; + virtual FDE_CSSFLOAT GetFloat() const = 0; + virtual FDE_CSSCLEAR GetClear() const = 0; + virtual FDE_CSSPOSITION GetPosition() const = 0; + virtual FDE_CSSLENGTH GetTop() const = 0; + virtual FDE_CSSLENGTH GetBottom() const = 0; + virtual FDE_CSSLENGTH GetLeft() const = 0; + virtual FDE_CSSLENGTH GetRight() const = 0; + virtual void SetDisplay(FDE_CSSDISPLAY eDisplay) = 0; + virtual void SetBoxSize(const FDE_CSSSIZE& boxSize) = 0; + virtual void SetMinBoxSize(const FDE_CSSSIZE& minBoxSize) = 0; + virtual void SetMaxBoxSize(const FDE_CSSSIZE& maxBoxSize) = 0; + virtual void SetFloat(FDE_CSSFLOAT eFloat) = 0; + virtual void SetClear(FDE_CSSCLEAR eClear) = 0; +}; +class IFDE_CSSParagraphStyle { + public: + virtual ~IFDE_CSSParagraphStyle() {} + virtual FX_FLOAT GetLineHeight() const = 0; + virtual FDE_CSSWHITESPACE GetWhiteSpace() const = 0; + virtual const FDE_CSSLENGTH& GetTextIndent() const = 0; + virtual FDE_CSSTEXTALIGN GetTextAlign() const = 0; + virtual FDE_CSSVERTICALALIGN GetVerticalAlign() const = 0; + virtual FX_FLOAT GetNumberVerticalAlign() const = 0; + virtual FDE_CSSTEXTTRANSFORM GetTextTransform() const = 0; + virtual FX_DWORD GetTextDecoration() const = 0; + virtual const FDE_CSSLENGTH& GetLetterSpacing() const = 0; + virtual const FDE_CSSLENGTH& GetWordSpacing() const = 0; + virtual FDE_CSSWRITINGMODE GetWritingMode() const = 0; + virtual FDE_CSSWORDBREAK GetWordBreak() const = 0; + virtual int32_t GetWidows() const = 0; + virtual FX_ARGB GetTextEmphasisColor() const = 0; + virtual FDE_CSSPAGEBREAK GetPageBreakBefore() const = 0; + virtual FDE_CSSPAGEBREAK GetPageBreakAfter() const = 0; + virtual FDE_CSSPAGEBREAK GetPageBreakInside() const = 0; + virtual int32_t GetOrphans() const = 0; + virtual FDE_CSSLINEBREAK GetLineBreak() const = 0; + virtual FDE_CSSTEXTEMPHASISMARK GetTextEmphasisMark() const = 0; + virtual FDE_CSSTEXTEMPHASISFILL GetTextEmphasisFill() const = 0; + virtual const FX_WCHAR* GetTextEmphasisCustom() const = 0; + virtual FDE_CSSTEXTCOMBINE GetTextCombineType() const = 0; + virtual FX_BOOL HasTextCombineNumber() const = 0; + virtual FX_FLOAT GetTextCombineNumber() const = 0; + virtual void SetLineHeight(FX_FLOAT fLineHeight) = 0; + virtual void SetWhiteSpace(FDE_CSSWHITESPACE eWhiteSpace) = 0; + virtual void SetTextIndent(const FDE_CSSLENGTH& textIndent) = 0; + virtual void SetTextAlign(FDE_CSSTEXTALIGN eTextAlign) = 0; + virtual void SetVerticalAlign(FDE_CSSVERTICALALIGN eVerticalAlign) = 0; + virtual void SetNumberVerticalAlign(FX_FLOAT fAlign) = 0; + virtual void SetTextTransform(FDE_CSSTEXTTRANSFORM eTextTransform) = 0; + virtual void SetTextDecoration(FX_DWORD dwTextDecoration) = 0; + virtual void SetLetterSpacing(const FDE_CSSLENGTH& letterSpacing) = 0; + virtual void SetWordSpacing(const FDE_CSSLENGTH& wordSpacing) = 0; + virtual void SetWritingMode(FDE_CSSWRITINGMODE eWritingMode) = 0; + virtual void SetWordBreak(FDE_CSSWORDBREAK eWordBreak) = 0; + virtual void SetWidows(int32_t iWidows) = 0; + virtual void SetTextEmphasisColor(FX_ARGB dwTextEmphasisColor) = 0; + virtual void SetPageBreakBefore(FDE_CSSPAGEBREAK ePageBreakBefore) = 0; + virtual void SetPageBreakAfter(FDE_CSSPAGEBREAK ePageBreakAfter) = 0; + virtual void SetPageBreakInside(FDE_CSSPAGEBREAK ePageBreakInside) = 0; + virtual void SetOrphans(int32_t iOrphans) = 0; + virtual void SetLineBreak(FDE_CSSLINEBREAK eLineBreak) = 0; +}; +class IFDE_CSSBackgroundStyle { + public: + virtual ~IFDE_CSSBackgroundStyle() {} + virtual FX_ARGB GetBKGColor() const = 0; + virtual const FX_WCHAR* GetBKGImage() const = 0; + virtual FDE_CSSBKGREPEAT GetBKGRepeat() const = 0; + virtual FDE_CSSBKGATTACHMENT GetBKGAttachment() const = 0; + virtual const FDE_CSSPOINT& GetBKGPosition() const = 0; + virtual void SetBKGColor(FX_ARGB dwBKGColor) = 0; + virtual void SetBKGPosition(const FDE_CSSPOINT& bkgPosition) = 0; +}; +class IFDE_CSSListStyle { + public: + virtual ~IFDE_CSSListStyle() {} + virtual FDE_CSSLISTSTYLETYPE GetListStyleType() const = 0; + virtual FDE_CSSLISTSTYLEPOSITION GetListStylePosition() const = 0; + virtual const FX_WCHAR* GetListStyleImage() const = 0; + virtual void SetListStyleType(FDE_CSSLISTSTYLETYPE eListStyleType) = 0; + virtual void SetListStylePosition( + FDE_CSSLISTSTYLEPOSITION eListStylePosition) = 0; +}; +class IFDE_CSSTableStyle { + public: + virtual ~IFDE_CSSTableStyle() {} + virtual FDE_CSSCAPTIONSIDE GetCaptionSide() const = 0; +}; +class IFDE_CSSVisualStyle { + public: + virtual ~IFDE_CSSVisualStyle() {} + virtual FDE_CSSVISIBILITY GetVisibility() const = 0; + virtual FDE_CSSOVERFLOW GetOverflowX() const = 0; + virtual FDE_CSSOVERFLOW GetOverflowY() const = 0; + virtual void SetVisibility(FDE_CSSVISIBILITY eVisibility) = 0; +}; +class IFDE_CSSComputedStyle : public IFX_Unknown { + public: + virtual void Reset() = 0; + virtual IFDE_CSSFontStyle* GetFontStyles() const = 0; + virtual IFDE_CSSBoundaryStyle* GetBoundaryStyles() const = 0; + virtual IFDE_CSSPositionStyle* GetPositionStyles() const = 0; + virtual IFDE_CSSParagraphStyle* GetParagraphStyles() const = 0; + virtual IFDE_CSSBackgroundStyle* GetBackgroundStyles() const = 0; + virtual IFDE_CSSVisualStyle* GetVisualStyles() const = 0; + virtual IFDE_CSSListStyle* GetListStyles() const = 0; + virtual IFDE_CSSMultiColumnStyle* GetMultiColumnStyle() const = 0; + virtual IFDE_CSSTableStyle* GetTableStyle() const = 0; + virtual IFDE_CSSGeneratedContentStyle* GetGeneratedContentStyle() const = 0; + virtual IFDE_CSSRubyStyle* GetRubyStyle() const = 0; + virtual FX_BOOL GetCustomStyle(const CFX_WideStringC& wsName, + CFX_WideString& wsValue) const = 0; +}; +enum FDE_CSSSTYLESHEETGROUP { + FDE_CSSSTYLESHEETGROUP_UserAgent, + FDE_CSSSTYLESHEETGROUP_User, + FDE_CSSSTYLESHEETGROUP_Author, + FDE_CSSSTYLESHEETGROUP_MAX, +}; +enum FDE_CSSSTYLESHEETPRIORITY { + FDE_CSSSTYLESHEETPRIORITY_High, + FDE_CSSSTYLESHEETPRIORITY_Mid, + FDE_CSSSTYLESHEETPRIORITY_Low, + FDE_CSSSTYLESHEETPRIORITY_MAX, +}; +class IFDE_CSSTagProvider { + public: + virtual ~IFDE_CSSTagProvider() {} + virtual CFX_WideStringC GetTagName() = 0; + virtual FX_POSITION GetFirstAttribute() = 0; + virtual void GetNextAttribute(FX_POSITION& pos, + CFX_WideStringC& wsAttr, + CFX_WideStringC& wsValue) = 0; +}; +class IFDE_CSSAccelerator { + public: + virtual ~IFDE_CSSAccelerator() {} + virtual void OnEnterTag(IFDE_CSSTagProvider* pTag) = 0; + virtual void OnLeaveTag(IFDE_CSSTagProvider* pTag) = 0; +}; +class IFDE_CSSStyleSelector { + public: + static IFDE_CSSStyleSelector* Create(); + virtual ~IFDE_CSSStyleSelector() {} + virtual void Release() = 0; + virtual void SetFontMgr(IFX_FontMgr* pFontMgr) = 0; + virtual void SetDefFontSize(FX_FLOAT fFontSize) = 0; + virtual FX_BOOL SetStyleSheet(FDE_CSSSTYLESHEETGROUP eType, + IFDE_CSSStyleSheet* pSheet) = 0; + virtual FX_BOOL SetStyleSheets(FDE_CSSSTYLESHEETGROUP eType, + const CFDE_CSSStyleSheetArray* pArray) = 0; + virtual void SetStylePriority(FDE_CSSSTYLESHEETGROUP eType, + FDE_CSSSTYLESHEETPRIORITY ePriority) = 0; + virtual void UpdateStyleIndex(FX_DWORD dwMediaList) = 0; + virtual IFDE_CSSAccelerator* InitAccelerator() = 0; + virtual IFDE_CSSComputedStyle* CreateComputedStyle( + IFDE_CSSComputedStyle* pParentStyle) = 0; + virtual int32_t MatchDeclarations( + IFDE_CSSTagProvider* pTag, + CFDE_CSSDeclarationArray& matchedDecls, + FDE_CSSPERSUDO ePersudoType = FDE_CSSPERSUDO_NONE) = 0; + virtual void ComputeStyle(IFDE_CSSTagProvider* pTag, + const IFDE_CSSDeclaration** ppDeclArray, + int32_t iDeclCount, + IFDE_CSSComputedStyle* pDestStyle) = 0; +}; +#endif |