From 913b71bb8be9b40da9c0f0cd21016c784a56dc18 Mon Sep 17 00:00:00 2001 From: Peter Fog Date: Sat, 20 Mar 2021 00:29:22 +0100 Subject: VSE: Add bold and italic option for text strip Bold and italic fonts can be switched quickly by presing corresponding button. Reviewed By: ISS Differential Revision: https://developer.blender.org/D10542 --- release/scripts/startup/bl_ui/space_sequencer.py | 9 +++++++-- source/blender/makesdna/DNA_sequence_types.h | 2 ++ source/blender/makesrna/intern/rna_sequencer.c | 10 ++++++++++ source/blender/sequencer/intern/effects.c | 8 ++++++++ 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py index a4c2ed68a91..f7abbeca0b1 100644 --- a/release/scripts/startup/bl_ui/space_sequencer.py +++ b/release/scripts/startup/bl_ui/space_sequencer.py @@ -1271,7 +1271,13 @@ class SEQUENCER_PT_effect_text_style(SequencerButtonsPanel, Panel): layout = self.layout layout.use_property_split = True col = layout.column() - col.template_ID(strip, "font", open="font.open", unlink="font.unlink") + + row = col.row(align=True) + row.use_property_decorate = False + row.template_ID(strip, "font", open="font.open", unlink="font.unlink") + row.prop(strip, "use_bold", text="", icon="BOLD") + row.prop(strip, "use_italic", text="", icon="ITALIC") + col.prop(strip, "font_size") col.prop(strip, "color") @@ -1294,7 +1300,6 @@ class SEQUENCER_PT_effect_text_style(SequencerButtonsPanel, Panel): row.prop_decorator(strip, "box_color") row = layout.row(align=True, heading="Box Margin") - row.use_property_decorate = False sub = row.row(align=True) sub.prop(strip, "box_margin") sub.active = strip.use_box and (not strip.mute) diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index ef14a5c52d4..4211c913a0c 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -354,6 +354,8 @@ typedef struct TextVars { enum { SEQ_TEXT_SHADOW = (1 << 0), SEQ_TEXT_BOX = (1 << 1), + SEQ_TEXT_BOLD = (1 << 2), + SEQ_TEXT_ITALIC = (1 << 3), }; /* TextVars.align */ diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 01b083dc3c8..54ac7860108 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -2932,6 +2932,16 @@ static void rna_def_text(StructRNA *srna) RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_TEXT_BOX); RNA_def_property_ui_text(prop, "Shadow", "Display colored box behind text"); RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_invalidate_raw_update"); + + prop = RNA_def_property(srna, "use_bold", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_TEXT_BOLD); + RNA_def_property_ui_text(prop, "Bold", "Display text as bold"); + RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_invalidate_raw_update"); + + prop = RNA_def_property(srna, "use_italic", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_TEXT_ITALIC); + RNA_def_property_ui_text(prop, "Italic", "Display text as italic"); + RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_invalidate_raw_update"); } static void rna_def_color_mix(StructRNA *srna) diff --git a/source/blender/sequencer/intern/effects.c b/source/blender/sequencer/intern/effects.c index fc8a5c62744..017c2ec8ec5 100644 --- a/source/blender/sequencer/intern/effects.c +++ b/source/blender/sequencer/intern/effects.c @@ -3938,6 +3938,14 @@ static ImBuf *do_text_effect(const SeqRenderData *context, proxy_size_comp = SEQ_rendersize_to_scale_factor(context->preview_render_size); } + BLF_disable(font, BLF_ITALIC | BLF_BOLD); + if (data->flag & SEQ_TEXT_BOLD) { + BLF_enable(font, BLF_BOLD); + } + if (data->flag & SEQ_TEXT_ITALIC) { + BLF_enable(font, BLF_ITALIC); + } + /* set before return */ BLF_size(font, proxy_size_comp * data->text_size, 72); -- cgit v1.2.3