Re: canvas notes [zoom dependent container]



On 8/23/05, Arjan Molenaar <a molenaar yirdis nl> wrote:
> Quoting Alexander Larsson <alexl redhat com>:
> > On Mon, 2005-08-15 at 20:06 +0200, Soeren Sandmann wrote:
> >> Havoc Pennington <hp redhat com> writes:
> >>
> >> > So random thoughts.
> >>
> >> A few more random thoughts:
> >>
> >> - Zooming is more than just setting a transformation matrix because
> >>   the reason you want to zoom is to see more details. So somehow a
> >>   model needs to be aware of how much detail should be drawn.
> >>
> > Text is extra tricky here. Do you want zooming to show you more text, or
> > do you want it to make the font larger. Even if you choose to just make
> > the font larger the text object won't scale linearly with the
> > magnification, because of font hinting etc. I guess you could avoid this
> > by always rendering text unhinted, ...
> 
> You can not simply favour one over the other. I guess an application like
> Nautilus would benefit from the first option (show more text), while Dia (or
> Gaphor) would benefit from the second: ... 

When playing around with some zoomable canvas prototypes using cairo
earlier, I created a canvas container element that acted as a switch.
At one zoom level it was showing one set of children, and when zoomed
beyond a defined threshold it alternate children were shown.

This way of doing things allows a progressive revealing of the interface:

  Tiny icon ->
  Icon ->
  Icon with text ->
  Tiny icon with label as title with basic controls ->
  Tiny icon with label as title with basic controls and advanced controls ->
  All of the above with additional debug information ;-]

One further extension to make this more usable (apart from excessive
use) would be to allow defining transitions between the two sets of
children.

/pippin
-- 
«The future is already here. It's just not very evenly distributed»
                                                 -- William Gibson
http://pippin.gimp.org/                            http://ffii.org/



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]