Re: Can a treeview do this?



Gus Koppel wrote:
kadil wrote:
[...]
(1) the first child to be in the column next to the parent.
(2) subsequent children to be below the first child
(3) parent "cells" are to vertically span the child rows
(4) I need visible borders between the cells
(5) Just to be difficult, I want to code in csharp (mono and friends)
(6) Accommodate thousands of rows with responsive performance.

________________________________________________________
|  Function | Funct Failure    |  Failure Mode           |
--------------------------------------------------------
|to be able |slow leak         | worn washer             |
|control the|                  |-------------------------|
|rate of fl-|                  | damaged seat            |
|uid passing|------------------|-------------------------|
|thru the   |unable to control | seized                  |
|device     |flow at all       |-------------------------|
|           |                  | frozen                  |
|--------------------------------------------------------|
[...]
Only weak point in the GtkTable based concept may be your demand of much
content in the table. However, I'd say you should give it a try. I think
building such a structure of thousands of widgets is the main
performance bottleneck. Display and navigation within such a
GtkScrolledWindow isn't necessarily that slow since GTK+ 2.x should
contain some appropriate optimizations to handle this, I think.

To allocate multiple widgets for every single entry in a dataset
of over 1000 entries doesnt make sence to me, putting a huge
GtkTable into a scrolled window is one thing, and probably scrolls
fine (unless you're already swapping out...); having enough memory
to allocate all those widgets is another  (remember also that
GTK will not politely tell you that your dataset is too large...
it will call abort() in the OOM condition)

>>(3) parent "cells" are to vertically span the child rows

This is something that treeviews IFAICS dont do... I remember having
similar requirements (I wanted to put one bigger row with jpeg and
more information than other rows... only for some "highlighted" data,
and figured out a way I could do so with a custom cell-renderer), we
ended up exploring other avenues because we didnt have time to write
cell renderer implementations (it would've been doable and clean
though).

Maybe you could write a custom treeview implementation to use with
GtkTreeStore (seems you would only have to place your cells differently
than treeview does); but then... i dont know about doing that in Gtk#.

What I've seen a few apps do for this kind of situation, if I understand
the situation right; is they put one simplified treeview intended only
to display some row-data to select, and then put some complex GtkTable
below it filled with buttons, entries and labels, fill it with the
selected row data.

Cheers,
                        -Tristan




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