aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.me.uk>2019-04-28 22:24:34 +0200
committerThomas White <taw@bitwiz.me.uk>2019-04-28 22:24:34 +0200
commit516191143294dce6f373819422b9672dc630dca1 (patch)
treed131478df05771e161bd60b551ded12427713d94
parentd5741922971cf9dbb72346e6a43aae75b23dfea0 (diff)
Use geometry from stylesheet for items other than TEXT and IMAGE
-rw-r--r--libstorycode/slide_render_cairo.c12
-rw-r--r--src/stylesheet_editor.c25
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);
+ }
}