From 26fd0b6c2057bd73a65df380a6baa4ee2d67387c Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 11 Aug 2011 23:45:00 +0200 Subject: Use layout stuff --- src/objects.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) (limited to 'src/objects.c') diff --git a/src/objects.c b/src/objects.c index a97b769..9c8ed41 100644 --- a/src/objects.c +++ b/src/objects.c @@ -44,7 +44,7 @@ static struct object *new_object(enum objtype t, struct layout_element *le) new->type = t; new->empty = 1; new->parent = NULL; - new->le = NULL; + new->le = le; return new; } @@ -243,6 +243,7 @@ void notify_style_update(struct presentation *p, struct text_style *ts) for ( j=0; jslides[i]->num_objects; j++ ) { if ( s->objects[j]->type != TEXT ) continue; + if ( s->objects[j]->style != ts ) continue; s->object_seq++; if ( p->view_slide == s ) changed = 1; @@ -252,7 +253,35 @@ void notify_style_update(struct presentation *p, struct text_style *ts) } - if ( changed ) notify_slide_changed(p); + if ( changed ) notify_slide_update(p); +} + + +void notify_layout_update(struct presentation *p, struct layout_element *le) +{ + int i; + int changed = 0; + + for ( i=0; inum_slides; i++ ) { + + int j; + struct slide *s; + + s = p->slides[i]; + + for ( j=0; jslides[i]->num_objects; j++ ) { + + if ( s->objects[j]->le != le ) continue; + + s->object_seq++; + if ( p->view_slide == s ) changed = 1; + break; + + } + + } + + if ( changed ) notify_slide_update(p); } -- cgit v1.2.3