diff options
author | bptato <nincsnevem662@gmail.com> | 2022-02-14 23:37:31 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2022-02-14 23:40:53 +0100 |
commit | 5098a7a162a4cd7a33ed724d9266ed850013e155 (patch) | |
tree | 785f5c548ed72f9408c9356db1858428639918ec /src/css | |
parent | 051d22b17e4c270f925376824a2307ab65ef5aa5 (diff) | |
download | chawan-5098a7a162a4cd7a33ed724d9266ed850013e155.tar.gz |
Incomplete background-color implementation
Has numerous flaws which will have to be corrected later.
Diffstat (limited to 'src/css')
-rw-r--r-- | src/css/values.nim | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/css/values.nim b/src/css/values.nim index 0659047d..a028f67d 100644 --- a/src/css/values.nim +++ b/src/css/values.nim @@ -29,7 +29,8 @@ type PROPERTY_HEIGHT, PROPERTY_LIST_STYLE_TYPE, PROPERTY_PADDING, PROPERTY_PADDING_TOP, PROPERTY_PADDING_LEFT, PROPERTY_PADDING_RIGHT, PROPERTY_PADDING_BOTTOM, PROPERTY_WORD_SPACING, PROPERTY_VERTICAL_ALIGN, - PROPERTY_LINE_HEIGHT, PROPERTY_TEXT_ALIGN, PROPERTY_LIST_STYLE_POSITION + PROPERTY_LINE_HEIGHT, PROPERTY_TEXT_ALIGN, PROPERTY_LIST_STYLE_POSITION, + PROPERTY_BACKGROUND_COLOR CSSValueType* = enum VALUE_NONE, VALUE_LENGTH, VALUE_COLOR, VALUE_CONTENT, VALUE_DISPLAY, @@ -90,7 +91,7 @@ type auto*: bool CSSColor* = object - rgba: RGBAColor + rgba*: RGBAColor termcolor: int CSSVerticalAlign* = object @@ -160,6 +161,7 @@ const PropertyNames = { "line-height": PROPERTY_LINE_HEIGHT, "text-align": PROPERTY_TEXT_ALIGN, "list-style-position": PROPERTY_LIST_STYLE_POSITION, + "background-color": PROPERTY_BACKGROUND_COLOR, }.toTable() const ValueTypes = [ @@ -191,13 +193,14 @@ const ValueTypes = [ PROPERTY_LINE_HEIGHT: VALUE_LENGTH, PROPERTY_TEXT_ALIGN: VALUE_TEXT_ALIGN, PROPERTY_LIST_STYLE_POSITION: VALUE_LIST_STYLE_POSITION, + PROPERTY_BACKGROUND_COLOR: VALUE_COLOR, ] const InheritedProperties = { PROPERTY_COLOR, PROPERTY_FONT_STYLE, PROPERTY_WHITE_SPACE, PROPERTY_FONT_WEIGHT, PROPERTY_TEXT_DECORATION, PROPERTY_WORD_BREAK, PROPERTY_LIST_STYLE_TYPE, PROPERTY_WORD_SPACING, PROPERTY_LINE_HEIGHT, - PROPERTY_TEXT_ALIGN, PROPERTY_LIST_STYLE_POSITION + PROPERTY_TEXT_ALIGN, PROPERTY_LIST_STYLE_POSITION, PROPERTY_BACKGROUND_COLOR } func getPropInheritedArray(): array[CSSPropertyType, bool] = @@ -306,7 +309,7 @@ func listMarker*(t: CSSListStyleType, i: int): string = of LIST_STYLE_TYPE_LOWER_ROMAN: return romanNumber_lower(i) & ". " of LIST_STYLE_TYPE_JAPANESE_INFORMAL: return japaneseNumber(i) & "、" -const Colors = { +const ColorsRGB = { "aliceblue": 0xf0f8ff, "antiquewhite": 0xfaebd7, "aqua": 0x00ffff, @@ -455,7 +458,13 @@ const Colors = { "yellow": 0xffff00, "yellowgreen": 0x9acd32, "rebeccapurple": 0x663399, -}.map((a) => (a[0], CSSColor(rgba: RGBAColor(a[1])))).toTable() +}.map((a) => (a[0], RGBColor(a[1]))).toTable() + +const Colors: Table[string, CSSColor] = ((func (): Table[string, CSSColor] = + for name, rgb in ColorsRGB: + result[name] = CSSColor(rgba: rgb) + result["transparent"] = CSSColor(rgba: rgba(0x00, 0x00, 0x00, 0x00)) +)()) const Units = { "%": UNIT_PERC, @@ -789,6 +798,8 @@ func getInitialColor(t: CSSPropertyType): CSSColor = case t of PROPERTY_COLOR: return Colors["white"] + of PROPERTY_BACKGROUND_COLOR: + return Colors["transparent"] else: return Colors["black"] |