[comp.windows.interviews] multiple views on a Picture

haber@CS.WISC.EDU (Eben Merriam Haber) (05/10/91)

I have an interface, implemented in IV3.0 beta.

I have a graphic block, with a picture inside it.  I'd like to have multiple
views on this picture, so I created another graphic block pointing to the
same picture,

Two things: how can I get changes in one view appear automatically in the
other?  

The other thing: more serious - any zooming or panning of one graphic block
affects the other - when one zooms in, the other does as well (though it needs
to be redrawn to show this).  How can I get the two distinct graphic blocks 
to work independently on a single picture.

Thanks yet again...

Eben M Haber
haber@micah.cs.wisc.edu

doron@mobydick.leis.bellcore.com (Doron Shalmon) (05/14/91)

In article <9105091904.AA01839@micah.cs.wisc.edu>, haber@CS.WISC.EDU (Eben Merriam Haber) writes:
|> 
|> I have an interface, implemented in IV3.0 beta.

I came up against the same problems.  I am running 2.6.

|> 
|> I have a graphic block, with a picture inside it.  I'd like to have multiple
|> views on this picture, so I created another graphic block pointing to the
|> same picture,

My scenario is very similar.  I have a graphic block with a picture in it.
Then I have my own version of a Slider, with the background of the Slider
being a duplicate of the picture (except miniaturized).  The idea is for
the user to get a better idea of what they're viewing in the graphic block.
Anyway, my slider points to the same picture as the graphic block.

|> 
|> Two things: how can I get changes in one view appear automatically in the
|> other?  

What we need is something like the subject mechanism that will notify all
interested graphic blocks when their graphics have been changed.  Is there
such a thing for the graphics library?

|> 
|> The other thing: more serious - any zooming or panning of one graphic block
|> affects the other - when one zooms in, the other does as well (though it needs
|> to be redrawn to show this).  How can I get the two distinct graphic blocks 
|> to work independently on a single picture.

The zooming and panning shows up in both graphic blocks because these
changes to the perspective actually cause the graphic objects to be scaled
and translated (or at least your toplevel graphic object -- but the
transformations are cumulative).  The way *I* got around this was to
make a copy of the toplevel graphics transformer just before doing any
transformation.  As soon as I do the transform and redraw, I restore
the transformer to it's previous state so the other graphic block will
draw it as it was.  I know this is real kludgy and would love to hear a
better solution.

|> 
|> Thanks yet again...
|> 
|> Eben M Haber
|> haber@micah.cs.wisc.edu


===========================================================================
                               Doron Shalmon
           Bellcore -- Network Planning and Distribution Systems
                  Internet:  doron@yogi.leis.bellcore.com
                      UUCP:  ...!bellcore!yogi!doron

    "All opinions expressed are mine, and do not necessarily represent
      those of my employer, Bell Communications Research (Bellcore)"