diff options
| author | Tavmjong Bah <tavmjong@free.fr> | 2015-05-03 16:58:35 +0000 |
|---|---|---|
| committer | tavmjong-free <tavmjong@free.fr> | 2015-05-03 16:58:35 +0000 |
| commit | a0ed5b5138836e368e409b9ced656f970b225b38 (patch) | |
| tree | 330d36a8a4324fb73146c3e981acc2964abb4340 /src | |
| parent | fix crash when setting clip (diff) | |
| download | inkscape-a0ed5b5138836e368e409b9ced656f970b225b38.tar.gz inkscape-a0ed5b5138836e368e409b9ced656f970b225b38.zip | |
First batch
(bzr r14095)
Diffstat (limited to 'src')
| -rw-r--r-- | src/conditions.cpp | 4 | ||||
| -rw-r--r-- | src/display/canvas-grid.cpp | 3 | ||||
| -rw-r--r-- | src/libcroco/cr-statement.c | 1 | ||||
| -rw-r--r-- | src/live_effects/lpe-taperstroke.cpp | 4 | ||||
| -rw-r--r-- | src/style-enums.h | 137 | ||||
| -rw-r--r-- | src/style.cpp | 8 | ||||
| -rw-r--r-- | src/style.h | 18 |
7 files changed, 171 insertions, 4 deletions
diff --git a/src/conditions.cpp b/src/conditions.cpp index 9b233a74f..39ab16ba8 100644 --- a/src/conditions.cpp +++ b/src/conditions.cpp @@ -77,7 +77,7 @@ static gchar *preprocessLanguageCode(gchar *lngcode) { static bool evaluateSystemLanguage(SPItem const *item, gchar const *value) { if ( NULL == value ) return true; - + std::cout << "evaluateSystemLanguage: " << value << std::endl; std::set<Glib::ustring> language_codes; gchar *str = NULL; gchar **strlist = g_strsplit( value, ",", 0); @@ -105,7 +105,7 @@ static bool evaluateSystemLanguage(SPItem const *item, gchar const *value) { SPDocument *document = item->document; Glib::ustring document_language = document->getLanguage(); - + std::cout << "language: |" << document_language << "|" << std::endl; if (document_language.size() == 0) return false; diff --git a/src/display/canvas-grid.cpp b/src/display/canvas-grid.cpp index 4eda9b194..8285f7e64 100644 --- a/src/display/canvas-grid.cpp +++ b/src/display/canvas-grid.cpp @@ -916,12 +916,14 @@ CanvasXYGrid::Render (SPCanvasBuf *buf) _empcolor = empcolor; } + std::cout << "CanvasXYGrid::Render: " << no_emp_when_zoomed_out << " " << empspacing << " " << _empcolor << " " << scaled << std::endl; cairo_save(buf->ct); cairo_translate(buf->ct, -buf->rect.left(), -buf->rect.top()); cairo_set_line_width(buf->ct, 1.0); cairo_set_line_cap(buf->ct, CAIRO_LINE_CAP_SQUARE); if (!render_dotted) { + // Render lines gint ylinenum; gdouble y; for (y = syg, ylinenum = ylinestart; y < buf->rect.bottom(); y += sw[Geom::Y], ylinenum++) { @@ -944,6 +946,7 @@ CanvasXYGrid::Render (SPCanvasBuf *buf) } } } else { + // Render dots gint ylinenum; gdouble y; for (y = syg, ylinenum = ylinestart; y < buf->rect.bottom(); y += sw[Geom::Y], ylinenum++) { diff --git a/src/libcroco/cr-statement.c b/src/libcroco/cr-statement.c index 4666f26ec..5fb2dd2fd 100644 --- a/src/libcroco/cr-statement.c +++ b/src/libcroco/cr-statement.c @@ -1678,6 +1678,7 @@ CRStatement * cr_statement_new_at_font_face_rule (CRStyleSheet * a_sheet, CRDeclaration * a_font_decls) { + printf("cr_statement_new_at_font_face_rule\n"); CRStatement *result = (CRStatement *)g_try_malloc (sizeof (CRStatement)); if (!result) { diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index 2c74af6d6..1888bc3f0 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -275,7 +275,7 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) pat_str << "M 1,0 C " << 1 - (double)smoothing << ",0 0,0.5 0,0.5 0,0.5 " << 1 - (double)smoothing << ",1 1,1"; pat_vec = sp_svg_read_pathv(pat_str.str().c_str()); - pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], -fabs(line_width))); + pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], fabs(line_width))); throwaway_path = Geom::path_from_piecewise(pwd2, LPE_CONVERSION_TOLERANCE)[0]; real_path.append(throwaway_path); @@ -304,7 +304,7 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) pat_vec = sp_svg_read_pathv(pat_str_1.str().c_str()); pwd2 = Piecewise<D2<SBasis> >(); - pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], -fabs(line_width))); + pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], fabs(line_width))); throwaway_path = Geom::path_from_piecewise(pwd2, LPE_CONVERSION_TOLERANCE)[0]; if (!Geom::are_near(real_path.finalPoint(), throwaway_path.initialPoint()) && real_path.size() >= 1) { diff --git a/src/style-enums.h b/src/style-enums.h index f52752018..f235b6699 100644 --- a/src/style-enums.h +++ b/src/style-enums.h @@ -72,6 +72,72 @@ enum SPCSSFontStretch { SP_CSS_FONT_STRETCH_WIDER }; +// Can select more than one +enum SPCSSFontVariantLigatures { + SP_CSS_FONT_VARIANT_LIGATURES_NORMAL, + SP_CSS_FONT_VARIANT_LIGATURES_NONE, + SP_CSS_FONT_VARIANT_LIGATURES_COMMON, + SP_CSS_FONT_VARIANT_LIGATURES_NO_COMMON, + SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY, + SP_CSS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY, + SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL, + SP_CSS_FONT_VARIANT_LIGATURES_NO_HISTORICAL, + SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL, + SP_CSS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL +}; + +enum SPCSSFontVariantPosition { + SP_CSS_FONT_VARIANT_POSITION_NORMAL, + SP_CSS_FONT_VARIANT_POSITION_SUB, + SP_CSS_FONT_VARIANT_POSITION_SUPER +}; + +enum SPCSSFontVariantCaps { + SP_CSS_FONT_VARIANT_CAPS_NORMAL, + SP_CSS_FONT_VARIANT_CAPS_SMALL, + SP_CSS_FONT_VARIANT_CAPS_ALL_SMALL, + SP_CSS_FONT_VARIANT_CAPS_PETITE, + SP_CSS_FONT_VARIANT_CAPS_ALL_PETITE, + SP_CSS_FONT_VARIANT_CAPS_UNICASE, + SP_CSS_FONT_VARIANT_CAPS_TITLING, +}; + +enum SPCSSFontVariantNumeric { + SP_CSS_FONT_VARIANT_NUMERIC_NORMAL, + SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS, + SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS, + SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS, + SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS, + SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS, + SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS, + SP_CSS_FONT_VARIANT_NUMERIC_ORDINAL, + SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO +}; + +enum SPCSSFontVariantAlternates { + SP_CSS_FONT_VARIANT_ALTERNATES_NORMAL, + SP_CSS_FONT_VARIANT_ALTERNATES_HISTORICAL_FORMS, + SP_CSS_FONT_VARIANT_ALTERNATES_STYLISTIC, + SP_CSS_FONT_VARIANT_ALTERNATES_STYLESET, + SP_CSS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT, + SP_CSS_FONT_VARIANT_ALTERNATES_SWASH, + SP_CSS_FONT_VARIANT_ALTERNATES_ORNAMENTS, + SP_CSS_FONT_VARIANT_ALTERNATES_ANNOTATION +}; + +enum SPCSSFontVariantEastAsian { + SP_CSS_FONT_VARIANT_EAST_ASIAN_NORMAL, + SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS78, + SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS83, + SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS90, + SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS04, + SP_CSS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED, + SP_CSS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL, + SP_CSS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH, + SP_CSS_FONT_VARIANT_EAST_ASIAN_PROPORTIONAL_WIDTH, + SP_CSS_FONT_VARIANT_EAST_ASIAN_RUBY +}; + enum SPCSSTextAlign { SP_CSS_TEXT_ALIGN_START, SP_CSS_TEXT_ALIGN_END, @@ -309,6 +375,77 @@ static SPStyleEnum const enum_font_stretch[] = { {NULL, -1} }; +static SPStyleEnum const enum_font_variant_ligatures[] = { + {"normal", SP_CSS_FONT_VARIANT_LIGATURES_NORMAL}, + {"none", SP_CSS_FONT_VARIANT_LIGATURES_NONE}, + {"common-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_COMMON}, + {"no-common-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NO_COMMON}, + {"discretionary-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY}, + {"no-discretionary-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY}, + {"historical-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL}, + {"nohistorical-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NO_HISTORICAL}, + {"contextual", SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL}, + {"no-contextual", SP_CSS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_position[] = { + {"normal", SP_CSS_FONT_VARIANT_POSITION_NORMAL}, + {"sub", SP_CSS_FONT_VARIANT_POSITION_SUB}, + {"super", SP_CSS_FONT_VARIANT_POSITION_SUPER}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_caps[] = { + {"normal", SP_CSS_FONT_VARIANT_CAPS_NORMAL}, + {"small-caps", SP_CSS_FONT_VARIANT_CAPS_SMALL}, + {"all-small-caps", SP_CSS_FONT_VARIANT_CAPS_ALL_SMALL}, + {"petite-caps", SP_CSS_FONT_VARIANT_CAPS_PETITE}, + {"all_petite-caps", SP_CSS_FONT_VARIANT_CAPS_ALL_PETITE}, + {"unicase", SP_CSS_FONT_VARIANT_CAPS_UNICASE}, + {"titling", SP_CSS_FONT_VARIANT_CAPS_TITLING}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_numeric[] = { + {"normal", SP_CSS_FONT_VARIANT_NUMERIC_NORMAL}, + {"lining-nums", SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS}, + {"oldstyle-nums", SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS}, + {"proportional-nums", SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS}, + {"tabular-nums", SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS}, + {"diagonal-fractions", SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS}, + {"stacked-fractions", SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS}, + {"ordinal", SP_CSS_FONT_VARIANT_NUMERIC_ORDINAL}, + {"slashed-zero", SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_alternates[] = { + {"normal", SP_CSS_FONT_VARIANT_ALTERNATES_NORMAL}, + {"historical-forms", SP_CSS_FONT_VARIANT_ALTERNATES_HISTORICAL_FORMS}, + {"stylistic", SP_CSS_FONT_VARIANT_ALTERNATES_STYLISTIC}, + {"styleset", SP_CSS_FONT_VARIANT_ALTERNATES_STYLESET}, + {"character_variant", SP_CSS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT}, + {"swash", SP_CSS_FONT_VARIANT_ALTERNATES_SWASH}, + {"ornaments", SP_CSS_FONT_VARIANT_ALTERNATES_ORNAMENTS}, + {"annotation", SP_CSS_FONT_VARIANT_ALTERNATES_ANNOTATION}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_east_asian[] = { + {"normal", SP_CSS_FONT_VARIANT_EAST_ASIAN_NORMAL}, + {"jis78", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS78}, + {"jis83", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS83}, + {"jis90", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS90}, + {"jis04", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS04}, + {"simplified", SP_CSS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED}, + {"traditional", SP_CSS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL}, + {"full-width", SP_CSS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH}, + {"proportional-width", SP_CSS_FONT_VARIANT_EAST_ASIAN_PROPORTIONAL_WIDTH}, + {"ruby", SP_CSS_FONT_VARIANT_EAST_ASIAN_RUBY}, + {NULL, -1} +}; + static SPStyleEnum const enum_text_align[] = { {"start", SP_CSS_TEXT_ALIGN_START}, {"end", SP_CSS_TEXT_ALIGN_END}, diff --git a/src/style.cpp b/src/style.cpp index b65bff53f..943a12f3b 100644 --- a/src/style.cpp +++ b/src/style.cpp @@ -118,6 +118,14 @@ SPStyle::SPStyle(SPDocument *document_in, SPObject *object_in) : font(), // SPIFont font_specification( "-inkscape-font-specification" ), // SPIString + // Font variants + font_variant_ligatures( "font-variant-ligatures", enum_font_variant_ligatures, SP_CSS_FONT_VARIANT_LIGATURES_NORMAL ), + font_variant_position( "font-variant-position", enum_font_variant_position, SP_CSS_FONT_VARIANT_POSITION_NORMAL ), + font_variant_caps( "font-variant-caps", enum_font_variant_caps, SP_CSS_FONT_VARIANT_CAPS_NORMAL ), + font_variant_numeric( "font-variant-numeric", enum_font_variant_numeric, SP_CSS_FONT_VARIANT_NUMERIC_NORMAL ), + font_variant_alternates("font-variant-alternates", enum_font_variant_alternates, SP_CSS_FONT_VARIANT_ALTERNATES_NORMAL ), + font_variant_east_asian("font-variant-east_asian", enum_font_variant_east_asian, SP_CSS_FONT_VARIANT_EAST_ASIAN_NORMAL ), + // Text related properties text_indent( "text-indent", 0.0 ), // SPILength text_align( "text-align", enum_text_align, SP_CSS_TEXT_ALIGN_START ), diff --git a/src/style.h b/src/style.h index ab34476b3..f52c14d89 100644 --- a/src/style.h +++ b/src/style.h @@ -111,6 +111,24 @@ public: /** Full font name, as font_factory::ConstructFontSpecification would give, for internal use. */ SPIString font_specification; + /* Font variants -------------------- */ + /** Font variant ligatures */ + SPIEnum font_variant_ligatures; + /** Font variant position (subscript/superscript) */ + SPIEnum font_variant_position; + /** Font variant caps (small caps) */ + SPIEnum font_variant_caps; + /** Font variant numeric (numerical formatting) */ + SPIEnum font_variant_numeric; + /** Font variant alternates (alternates/swatches) */ + SPIEnum font_variant_alternates; + /** Font variant East Asian */ + SPIEnum font_variant_east_asian; + /** Font variant shorthand (Redefines CSS 2.1 value) */ + // ? font_variant; + /** Font feature settings */ + // ? font_feature_settings; + /* Text ----------------------------- */ /** First line indent of paragraphs (css2 16.1) */ |
