aboutsummaryrefslogtreecommitdiff
path: root/src/objects.c
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2011-08-11 23:45:00 +0200
committerThomas White <taw@bitwiz.org.uk>2011-08-11 23:45:00 +0200
commit26fd0b6c2057bd73a65df380a6baa4ee2d67387c (patch)
treeeda6f1d4a081d4da355a5218f88c4f9b34621e41 /src/objects.c
parentaf7eb5322812b47a32ac3c246812fdc870163b6c (diff)
Use layout stuff
Diffstat (limited to 'src/objects.c')
-rw-r--r--src/objects.c33
1 files changed, 31 insertions, 2 deletions
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; j<p->slides[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; i<p->num_slides; i++ ) {
+
+ int j;
+ struct slide *s;
+
+ s = p->slides[i];
+
+ for ( j=0; j<p->slides[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);
}