summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2015-05-03 16:58:35 +0000
committertavmjong-free <tavmjong@free.fr>2015-05-03 16:58:35 +0000
commita0ed5b5138836e368e409b9ced656f970b225b38 (patch)
tree330d36a8a4324fb73146c3e981acc2964abb4340 /src
parentfix crash when setting clip (diff)
downloadinkscape-a0ed5b5138836e368e409b9ced656f970b225b38.tar.gz
inkscape-a0ed5b5138836e368e409b9ced656f970b225b38.zip
First batch
(bzr r14095)
Diffstat (limited to 'src')
-rw-r--r--src/conditions.cpp4
-rw-r--r--src/display/canvas-grid.cpp3
-rw-r--r--src/libcroco/cr-statement.c1
-rw-r--r--src/live_effects/lpe-taperstroke.cpp4
-rw-r--r--src/style-enums.h137
-rw-r--r--src/style.cpp8
-rw-r--r--src/style.h18
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) */