From 516191143294dce6f373819422b9672dc630dca1 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sun, 28 Apr 2019 22:24:34 +0200 Subject: Use geometry from stylesheet for items other than TEXT and IMAGE --- libstorycode/slide_render_cairo.c | 12 +++++++++--- src/stylesheet_editor.c | 25 +++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/libstorycode/slide_render_cairo.c b/libstorycode/slide_render_cairo.c index 1c1a4f9..76184c4 100644 --- a/libstorycode/slide_render_cairo.c +++ b/libstorycode/slide_render_cairo.c @@ -105,10 +105,16 @@ static void render_text(SlideItem *item, cairo_t *cr, PangoContext *pc, PangoFontDescription *fontdesc; PangoAlignment palignment; size_t sel_s, sel_e; + struct frame_geom geom; - x = lcalc(item->geom.x, parent_w); - y = lcalc(item->geom.y, parent_h); - w = lcalc(item->geom.w, parent_w); + if ( (item->type == SLIDE_ITEM_TEXT) || (item->type == SLIDE_ITEM_IMAGE) ) { + geom = item->geom; + } else { + stylesheet_get_geometry(ss, stn, &geom); + } + x = lcalc(geom.x, parent_w); + y = lcalc(geom.y, parent_h); + w = lcalc(geom.w, parent_w); if ( stylesheet_get_padding(ss, stn, pad) ) return; pad_l = lcalc(pad[0], parent_w); diff --git a/src/stylesheet_editor.c b/src/stylesheet_editor.c index ac97796..374004b 100644 --- a/src/stylesheet_editor.c +++ b/src/stylesheet_editor.c @@ -294,6 +294,23 @@ static void set_padding_sensitive(StylesheetEditor *se, gboolean val) } +static void set_paraspace_sensitive(StylesheetEditor *se, gboolean val) +{ + gtk_widget_set_sensitive(se->paraspace_l, val); + gtk_widget_set_sensitive(se->paraspace_r, val); + gtk_widget_set_sensitive(se->paraspace_t, val); + gtk_widget_set_sensitive(se->paraspace_b, val); +} + + +static void set_font_fgcol_align_sensitive(StylesheetEditor *se, gboolean val) +{ + gtk_widget_set_sensitive(se->font, val); + gtk_widget_set_sensitive(se->fgcol, val); + gtk_widget_set_sensitive(se->alignment, val); +} + + static void set_values_from_presentation(StylesheetEditor *se) { set_geom_from_ss(se->priv->stylesheet, se->priv->style_name, @@ -314,6 +331,8 @@ static void set_values_from_presentation(StylesheetEditor *se) set_geom_sensitive(se, TRUE); set_bg_sensitive(se, TRUE); set_padding_sensitive(se, TRUE); + set_font_fgcol_align_sensitive(se, TRUE); + set_paraspace_sensitive(se, TRUE); if ( strncmp(se->priv->style_name, "NARRATIVE", 9) == 0 ) { set_geom_sensitive(se, FALSE); if ( se->priv->style_name[9] == '.' ) { @@ -338,9 +357,15 @@ static void set_values_from_presentation(StylesheetEditor *se) gtk_widget_set_sensitive(se->w, TRUE); gtk_widget_set_sensitive(se->h, TRUE); set_padding_sensitive(se, FALSE); + set_font_fgcol_align_sensitive(se, FALSE); + set_paraspace_sensitive(se, FALSE); } } + + if ( strcmp(se->priv->style_name, "SLIDE.TEXT") == 0 ) { + set_geom_sensitive(se, FALSE); + } } -- cgit v1.2.3