Commit fdc540a7 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

add the global 'default-script' and 'default-language' properties

parent fafe4ede
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -102,6 +102,14 @@ ReturnCode environment_set(Environment* env, const Expr* expr) {
    return expr_to_measure(args[1], &env->margins[3]);
  }

  if (expr_is_value(args[0], "text-script")) {
    return expr_to_string(args[1], &env->text_default_script);
  }

  if (expr_is_value(args[0], "text-language")) {
    return expr_to_string(args[1], &env->text_default_language);
  }

  if (expr_is_value(args[0], "margin")) {
    return expr_calln(args[1], {
      bind(&expr_to_measure, _1, &env->margins[0]),
+2 −0
Original line number Diff line number Diff line
@@ -37,6 +37,8 @@ struct Environment {
  Color background_color;
  Color foreground_color;
  Color text_color;
  std::string text_default_script;
  std::string text_default_language;
  std::array<Measure, 4> margins;
  ElementMap element_map;
};
+2 −0
Original line number Diff line number Diff line
@@ -118,6 +118,8 @@ int fviz_configure_file(
int fviz_render_to(fviz_t* ctx, void* backend) {
  auto layer = static_cast<Layer*>(backend);
  layer->font = ctx->env.font;
  layer->text_default_script = ctx->env.text_default_script;
  layer->text_default_language = ctx->env.text_default_language;

  LayoutInfo layout;
  layout.content_box = layout_margin_box(
+2 −0
Original line number Diff line number Diff line
@@ -48,6 +48,8 @@ struct Layer {
  double dpi;
  FontInfo font;
  Measure font_size;
  std::string text_default_script;
  std::string text_default_language;
  const std::function<Status (const layer_ops::Op&)> apply;
};

+10 −0
Original line number Diff line number Diff line
@@ -36,6 +36,16 @@ Status drawTextLabel(
  span.font = style.font;
  span.font_size = style.font_size;
  span.span_id = 0;
  span.script = style.default_script;
  span.language = style.default_language;

  if (span.script.empty()) {
    span.script = layer->text_default_script;
  }

  if (span.language.empty()) {
    span.language = layer->text_default_language;
  }

  text::TextLine line;
  line.spans.push_back(span);
Loading