a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free * SPStyle enums: named public enums that correspond to SVG property values.
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free * Lauris Kaplinski <lauris@kaplinski.com>
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free * Jon A. Cruz <jon@joncruz.org>
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free * Copyright (C) 2010 Jon A. Cruz
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free * Copyright (C) 2001-2002 Lauris Kaplinski
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free * Copyright (C) 2001 Ximian, Inc.
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free * Released under GNU GPL, read the file 'COPYING' for more information
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free/* SPFontStyle */
11f343b8117dbf56931f537820c2749a8232fec2Liam P. White#include "display/canvas-bpath.h" // FIXME those enums belong here!
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free// Can select more than one
3478d2cd051e123df40b5dfef79f2cb254f26f6ftavmjong-free SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY = 2,
a2fb838ce7fab24ecaa573ed55c629287abee8catavmjong-free SP_CSS_FONT_VARIANT_LIGATURES_NORMAL = 9, // Special case
3478d2cd051e123df40b5dfef79f2cb254f26f6ftavmjong-free SP_CSS_FONT_VARIANT_LIGATURES_NODISCRETIONARY = 32,
3478d2cd051e123df40b5dfef79f2cb254f26f6ftavmjong-free SP_CSS_FONT_VARIANT_LIGATURES_NOHISTORICAL = 64,
3478d2cd051e123df40b5dfef79f2cb254f26f6ftavmjong-free SP_CSS_FONT_VARIANT_LIGATURES_NOCONTEXTUAL = 128
3478d2cd051e123df40b5dfef79f2cb254f26f6ftavmjong-free// Can select more than one (see spec)
e6721798d549e5544fed6db4d62f57f6269bd1d7tavmjong-free SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS = 2,
e6721798d549e5544fed6db4d62f57f6269bd1d7tavmjong-free SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS = 4,
e6721798d549e5544fed6db4d62f57f6269bd1d7tavmjong-free SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS = 16,
e6721798d549e5544fed6db4d62f57f6269bd1d7tavmjong-free SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS = 32,
e6721798d549e5544fed6db4d62f57f6269bd1d7tavmjong-free SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO = 128
d590d0a9f076dacec8443a16da0eb1787e58db23tavmjong-free// Quite complicated... (see spec)
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free SP_CSS_FONT_VARIANT_ALTERNATES_HISTORICAL_FORMS,
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free SP_CSS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT,
d590d0a9f076dacec8443a16da0eb1787e58db23tavmjong-free// Can select more than one (see spec)
d590d0a9f076dacec8443a16da0eb1787e58db23tavmjong-free SP_CSS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED = 16,
d590d0a9f076dacec8443a16da0eb1787e58db23tavmjong-free SP_CSS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL = 32,
d590d0a9f076dacec8443a16da0eb1787e58db23tavmjong-free SP_CSS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH = 64,
d590d0a9f076dacec8443a16da0eb1787e58db23tavmjong-free SP_CSS_FONT_VARIANT_EAST_ASIAN_PROPORTIONAL_WIDTH = 128,
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free // also <string> is allowed, but only within table calls
384c6c83704153db2dafe57621dab9dd11529d46tavmjong-free// CSS WRITING MODES 3
bbce7134b7a3c97ae054caed1778f2dd63c23216tavmjong-free// Not complete list
bbce7134b7a3c97ae054caed1778f2dd63c23216tavmjong-free SP_CSS_BASELINE_SIZE // Size of enum, keep last.
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free/// \todo more display types
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free/* Last two are CSS4 Image values... for the momement prefaced with -inkscape. */
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_stroke_linecap[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_stroke_linejoin[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_font_variant[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"small-caps", SP_CSS_FONT_VARIANT_SMALL_CAPS},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_font_weight[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_font_stretch[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"ultra-condensed", SP_CSS_FONT_STRETCH_ULTRA_CONDENSED},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"extra-condensed", SP_CSS_FONT_STRETCH_EXTRA_CONDENSED},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"semi-condensed", SP_CSS_FONT_STRETCH_SEMI_CONDENSED},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"semi-expanded", SP_CSS_FONT_STRETCH_SEMI_EXPANDED},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"extra-expanded", SP_CSS_FONT_STRETCH_EXTRA_EXPANDED},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"ultra-expanded", SP_CSS_FONT_STRETCH_ULTRA_EXPANDED},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-freestatic SPStyleEnum const enum_font_variant_ligatures[] = {
3478d2cd051e123df40b5dfef79f2cb254f26f6ftavmjong-free {"common-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_COMMON},
3478d2cd051e123df40b5dfef79f2cb254f26f6ftavmjong-free {"discretionary-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY},
3478d2cd051e123df40b5dfef79f2cb254f26f6ftavmjong-free {"historical-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL},
3478d2cd051e123df40b5dfef79f2cb254f26f6ftavmjong-free {"contextual", SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL},
a2fb838ce7fab24ecaa573ed55c629287abee8catavmjong-free {"normal", SP_CSS_FONT_VARIANT_LIGATURES_NORMAL},
3478d2cd051e123df40b5dfef79f2cb254f26f6ftavmjong-free {"no-common-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NOCOMMON},
3478d2cd051e123df40b5dfef79f2cb254f26f6ftavmjong-free {"no-discretionary-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NODISCRETIONARY},
3478d2cd051e123df40b5dfef79f2cb254f26f6ftavmjong-free {"no-historical-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NOHISTORICAL},
3478d2cd051e123df40b5dfef79f2cb254f26f6ftavmjong-free {"no-contextual", SP_CSS_FONT_VARIANT_LIGATURES_NOCONTEXTUAL},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-freestatic SPStyleEnum const enum_font_variant_position[] = {
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"normal", SP_CSS_FONT_VARIANT_POSITION_NORMAL},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"super", SP_CSS_FONT_VARIANT_POSITION_SUPER},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-freestatic SPStyleEnum const enum_font_variant_caps[] = {
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"small-caps", SP_CSS_FONT_VARIANT_CAPS_SMALL},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"all-small-caps", SP_CSS_FONT_VARIANT_CAPS_ALL_SMALL},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"petite-caps", SP_CSS_FONT_VARIANT_CAPS_PETITE},
a2fb838ce7fab24ecaa573ed55c629287abee8catavmjong-free {"all-petite-caps", SP_CSS_FONT_VARIANT_CAPS_ALL_PETITE},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"unicase", SP_CSS_FONT_VARIANT_CAPS_UNICASE},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"titling", SP_CSS_FONT_VARIANT_CAPS_TITLING},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-freestatic SPStyleEnum const enum_font_variant_numeric[] = {
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"normal", SP_CSS_FONT_VARIANT_NUMERIC_NORMAL},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"lining-nums", SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"oldstyle-nums", SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"proportional-nums", SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"tabular-nums", SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"diagonal-fractions", SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"stacked-fractions", SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"ordinal", SP_CSS_FONT_VARIANT_NUMERIC_ORDINAL},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"slashed-zero", SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-freestatic SPStyleEnum const enum_font_variant_alternates[] = {
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"normal", SP_CSS_FONT_VARIANT_ALTERNATES_NORMAL},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"historical-forms", SP_CSS_FONT_VARIANT_ALTERNATES_HISTORICAL_FORMS},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"stylistic", SP_CSS_FONT_VARIANT_ALTERNATES_STYLISTIC},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"styleset", SP_CSS_FONT_VARIANT_ALTERNATES_STYLESET},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"character_variant", SP_CSS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"swash", SP_CSS_FONT_VARIANT_ALTERNATES_SWASH},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"ornaments", SP_CSS_FONT_VARIANT_ALTERNATES_ORNAMENTS},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"annotation", SP_CSS_FONT_VARIANT_ALTERNATES_ANNOTATION},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-freestatic SPStyleEnum const enum_font_variant_east_asian[] = {
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"normal", SP_CSS_FONT_VARIANT_EAST_ASIAN_NORMAL},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"jis78", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS78},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"jis83", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS83},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"jis90", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS90},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"jis04", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS04},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"simplified", SP_CSS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"traditional", SP_CSS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"full-width", SP_CSS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"proportional-width", SP_CSS_FONT_VARIANT_EAST_ASIAN_PROPORTIONAL_WIDTH},
4050205e44667cd2b474e947e37bda8e2cf33da8tavmjong-free {"ruby", SP_CSS_FONT_VARIANT_EAST_ASIAN_RUBY},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_text_transform[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"capitalize", SP_CSS_TEXT_TRANSFORM_CAPITALIZE},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"uppercase", SP_CSS_TEXT_TRANSFORM_UPPERCASE},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"lowercase", SP_CSS_TEXT_TRANSFORM_LOWERCASE},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_text_anchor[] = {
e86f20347b7f40a33c9088a604a36dc5d5344025tavmjong-freestatic SPStyleEnum const enum_white_space[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_writing_mode[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free /* Note that using the same enumerator for lr as lr-tb means we write as lr-tb even if the
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free * input file said lr. We prefer writing lr-tb on the grounds that the spec says the initial
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free * value is lr-tb rather than lr.
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free * ECMA scripts may be surprised to find tb-rl in DOM if they set the attribute to rl, so
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free * sharing enumerators for different strings may be a bug (once we support ecma script).
384c6c83704153db2dafe57621dab9dd11529d46tavmjong-free // SVG 1.1 Deprecated but still must be supported in SVG 2.
384c6c83704153db2dafe57621dab9dd11529d46tavmjong-free // SVG 2 & CSS 3 Writing Modes
384c6c83704153db2dafe57621dab9dd11529d46tavmjong-free {"horizontal-tb", SP_CSS_WRITING_MODE_LR_TB}, // This is correct, 'direction' distinguishes between 'lr' and 'rl'.
384c6c83704153db2dafe57621dab9dd11529d46tavmjong-free// CSS WRITING MODES 3
384c6c83704153db2dafe57621dab9dd11529d46tavmjong-freestatic SPStyleEnum const enum_text_orientation[] = {
384c6c83704153db2dafe57621dab9dd11529d46tavmjong-free {"mixed", SP_CSS_TEXT_ORIENTATION_MIXED}, // Default
384c6c83704153db2dafe57621dab9dd11529d46tavmjong-free {"sideways", SP_CSS_TEXT_ORIENTATION_SIDEWAYS},
bbce7134b7a3c97ae054caed1778f2dd63c23216tavmjong-free {"mathematical", SP_CSS_BASELINE_MATHEMATICAL},
bbce7134b7a3c97ae054caed1778f2dd63c23216tavmjong-free {"text-before-edge", SP_CSS_BASELINE_TEXT_BEFORE_EDGE},
bbce7134b7a3c97ae054caed1778f2dd63c23216tavmjong-free {"text-after-edge", SP_CSS_BASELINE_TEXT_AFTER_EDGE},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_baseline_shift[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free// CSS Compositing and Blending Level 1
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"inline-table", SP_CSS_DISPLAY_INLINE_TABLE},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"table-row-group", SP_CSS_DISPLAY_TABLE_ROW_GROUP},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"table-header-group", SP_CSS_DISPLAY_TABLE_HEADER_GROUP},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"table-footer-group", SP_CSS_DISPLAY_TABLE_FOOTER_GROUP},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"table-column-group", SP_CSS_DISPLAY_TABLE_COLUMN_GROUP},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"table-column", SP_CSS_DISPLAY_TABLE_COLUMN},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"table-caption", SP_CSS_DISPLAY_TABLE_CAPTION},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_shape_rendering[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"optimizeSpeed", SP_CSS_SHAPE_RENDERING_OPTIMIZESPEED},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"crispEdges", SP_CSS_SHAPE_RENDERING_CRISPEDGES},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"geometricPrecision", SP_CSS_SHAPE_RENDERING_GEOMETRICPRECISION},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_color_rendering[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"optimizeSpeed", SP_CSS_COLOR_RENDERING_OPTIMIZESPEED},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"optimizeQuality", SP_CSS_COLOR_RENDERING_OPTIMIZEQUALITY},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_image_rendering[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"optimizeSpeed", SP_CSS_IMAGE_RENDERING_OPTIMIZESPEED},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"optimizeQuality", SP_CSS_IMAGE_RENDERING_OPTIMIZEQUALITY},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"-inkscape-crisp-edges", SP_CSS_IMAGE_RENDERING_CRISPEDGES},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"-inkscape-pixelated", SP_CSS_IMAGE_RENDERING_PIXELATED},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_text_rendering[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"optimizeSpeed", SP_CSS_TEXT_RENDERING_OPTIMIZESPEED},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"optimizeLegibility", SP_CSS_TEXT_RENDERING_OPTIMIZELEGIBILITY},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"geometricPrecision", SP_CSS_TEXT_RENDERING_GEOMETRICPRECISION},
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_enable_background[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-freestatic SPStyleEnum const enum_color_interpolation[] = {
302c2f134d7a0f8afeee1c1625d81386f06d34aftavmjong-free {"linearRGB", SP_CSS_COLOR_INTERPOLATION_LINEARRGB},
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free#endif // SEEN_SP_STYLE_ENUMS_H
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free Local Variables:
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free c-file-style:"stroustrup"
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free indent-tabs-mode:nil
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free fill-column:99
a2220686e6f3bc4aedd8140090696151d6cf1a00tavmjong-free// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :