Re: Proposal of a Bonobo::Zoomable interface



Martin Baulig <martin home-of-linux org> writes:

> Currently, there is no good zooming interface in Bonobo.
> I mean, there is this "set_zoom_level" signal on a BonoboView,
> but there is no way for a container application to
> 
> a) find out whether a component supports zooming
> b) ask the component for its current zoom factor
> c) ask the component about its zooming capabilities, for instance
>    if it has a minimum/maximum zoom factor, if it only supports
>    fixed zoom levels etc.
> 
> The Nautilus folks solved this problem with their Nautilus::Zoomable
> interface and I think it would be nice to have something similar to
> it in Bonobo:

I've been thinking about this and my conclusion is that a generic
zoomable interface is not very useful.

For reasons that I already exposed in a previous mail to Michael and
the list, BonoboView::set_zoom_level() is just broken for
document-type applications, i.e. embeddables.

But let's talk about controls, which are where you may want a zoomable
interface.

I don't think having a generic zoomable interface for controls would
be very useful.  You'll have something that is too generic and yet it
will not meet the needs of some application.

I think it is better if the control just exports the UI elements it
needs to allow the user to change zoom factors.  EOG or a 3D modeller
may want an SGI-like knob or dial thingy; a web browser may want a
little control to set the font size in points; the Nautilus icon view
may want a simple menu with "big/medium/small" settings.  A mapping
program may want to have two controls; one for the size of labels and
one for the scale of the map.

So you see that this cannot be made very generic.

If the toolbar is the proper place to put these app-specific UI
elements, then the Bonobo toolbar stuff should allow for little
child-defined controls to go there.  I don't recall if Michael's new
design allows for this, but I would assume so.

The discussion I had with Maciej about a zoomable interface may only
apply to EOG; at least that was the context I was thinking in.  Sorry
if it caused confusion.

  Federico




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