Fixed issues with stacking styles and duplicate/empty styles
This commit is contained in:
parent
ee887c82dd
commit
fe936b6c25
3 changed files with 68 additions and 28 deletions
|
|
@ -12,7 +12,23 @@
|
|||
DrawTextBox::DrawTextBox():
|
||||
textBox(std::make_shared<RichTextBox>()),
|
||||
cursor(std::make_shared<RichTextBox::Cursor>())
|
||||
{}
|
||||
{
|
||||
skia::textlayout::TextStyle tStyle;
|
||||
tStyle.setFontFamilies({SkString{"Roboto"}});
|
||||
tStyle.setFontSize(16.0f);
|
||||
tStyle.setForegroundPaint(SkPaint{SkColor4f{0.0f, 1.0f, 1.0f, 1.0f}});
|
||||
textBox->set_initial_text_style(tStyle);
|
||||
|
||||
auto boldMod = std::make_shared<WeightTextStyleModifier>();
|
||||
boldMod->set_weight(SkFontStyle::kNormal_Weight);
|
||||
textBox->set_initial_text_style_modifier(boldMod);
|
||||
auto italicMod = std::make_shared<SlantTextStyleModifier>();
|
||||
italicMod->set_slant(SkFontStyle::Slant::kUpright_Slant);
|
||||
textBox->set_initial_text_style_modifier(italicMod);
|
||||
auto colorMod = std::make_shared<ColorTextStyleModifier>();
|
||||
colorMod->color = {1.0f, 1.0f, 1.0f, 1.0f};
|
||||
textBox->set_initial_text_style_modifier(colorMod);
|
||||
}
|
||||
|
||||
DrawComponentType DrawTextBox::get_type() const {
|
||||
return DRAWCOMPONENT_TEXTBOX;
|
||||
|
|
@ -54,20 +70,6 @@ void DrawTextBox::update_from_delayed_ptr(const std::shared_ptr<DrawComponent>&
|
|||
void DrawTextBox::init_text_box(DrawingProgram& drawP) {
|
||||
textBox->set_font_collection(drawP.world.main.fonts.collection); // Getting a segfault relating to the paragraph cache means that the font collection hasn't been set yet
|
||||
textBox->set_width(d.p2.x() - d.p1.x());
|
||||
skia::textlayout::TextStyle tStyle;
|
||||
tStyle.setFontFamilies({SkString{"Roboto"}});
|
||||
tStyle.setFontSize(16.0f);
|
||||
textBox->set_initial_text_style(tStyle);
|
||||
|
||||
auto boldMod = std::make_shared<WeightTextStyleModifier>();
|
||||
boldMod->set_weight(SkFontStyle::kNormal_Weight);
|
||||
textBox->set_initial_text_style_modifier(boldMod);
|
||||
auto italicMod = std::make_shared<SlantTextStyleModifier>();
|
||||
italicMod->set_slant(SkFontStyle::Slant::kUpright_Slant);
|
||||
textBox->set_initial_text_style_modifier(italicMod);
|
||||
auto colorMod = std::make_shared<ColorTextStyleModifier>();
|
||||
colorMod->color = {1.0f, 1.0f, 1.0f, 1.0f};
|
||||
textBox->set_initial_text_style_modifier(colorMod);
|
||||
}
|
||||
|
||||
void DrawTextBox::draw(SkCanvas* canvas, const DrawData& drawData) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue