Re: TODO list updates

On 13 Apr 2000, Havoc Pennington wrote:

[ ROX-Filer's collection widget ]

> This widget looks like a reasonable start; the icon list Ettore did
> for the really old gnome-fm sources, or the icon list in GtkExtra,
> might be good starts too.

Wow, feedback!

> What's needed: 
>   - define clearly the desired attributes of this widget. I think 
>     it should be a relatively small and simple widget, suitable
>     for a file selector, I'm not sure it needs to be all that 
>     elaborate or have much in the way of features. But it should 
>     be defined exactly what the goals are

Quite. In fact, I think some of the features you suggest could reasonably
by put in a sub-class. 

>   - some kind of demand-loading would be very nice, so that 
>     the list doesn't become super slow on large directories

The current widget delegates all the actual drawing, so demand-loading is
perfectly possible.

>   - write up a clean API, post it here, and go through iterative
>     revision of the API; justify the API in terms of the defined
>     goals. (note: should use gdk-pixbuf for the API, since it 
>     will be available)

The current API allows you to specify the size of an item and insert any
number of items into the collection (an item is just a pointer to some
user data). The widget will respond to scroll and expose events by working
out which items need redrawing and calling the appropriate callbacks.

It will also keep track of which items are selected (the callback must
show this somehow) and deal with mouse clicks, item drags and lasso box
drags. A cursor (black rectangle) can be drawn over an item, and there is
a 'wink' function which flashes a box around an item briefly.

There is currently no delete_item function (because the filer uses
mark-and-sweep instead) but that could be added. Sorting is supported; the
compar function must be passed in.

A 'target' feature allows you to trap the next click and process it
specially, bypassing the normal selection rules.

Some of these features might be considered unnecessary for a core widget.
There are lots of callbacks - this might affect language bindings?

>   - all the GUI behavior needs to be very nice; editing the 
>     text of the items, the item layout, behavior when text 
>     or icons are too big to fit in the grid, scrolling while 
>     selecting, etc. This took up a lot of Federico's time in 
>     gmc I think.

Scrolling while selecting works. Everything else is delegated and so not
an issue.

> Basically some consensus-building and lots of polishing/finishing work
> needs to go in to one of the existing icon list widgets.

Comments welcome,

Thomas Leonard
3rd year computer science
The ROX desktop (free/GPL) :

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