On Fri, 2009-08-14 at 03:07 +0200, Paweł Blokus wrote:
2009/8/12 Michael Drake <tlsa(a)netsurf-browser.org>:
> In article <4cca96250907250658h3423339dk837d2f3ddf004ee2(a)mail.gmail.com>,
> Pawe³ Blokus <pblokus(a)gmail.com> wrote:
>> Since the last progress report I have completed the hotlist and added
>> the sslcert window. I also removed all known bugs as well as
>> unintuitive tree behaviour.
> John-Mark has a look at the way treeviews work.
> Right now, the implementation details of frontend treeview widgets need to
> be exposed for all their clients to see.
> He suggests changing it so that the front end's treeview code creates an
> empty tree. This means that front end treeview widgets can be nicely
> Example: for cookies, you create a frontend treeview widget (which creates
> a core treeview with the treeview callback vtable), can then you pass the
> freshly created tree to cookies_initialise().
> This means that the frontend treeview implementation can be kept private.
OK, first I thought I understood everything. I've done what jmb told
me on IRC, the front end code creates empty core trees and passed them
Now I am not that sure anymore I know what is meant.Should I hide the
gtk_treeview_window struct and add a creator function which would take
most of its contents as parameters + getters for the necessary ones?
Also, what do you want to get passed to the tree core-users the front
end tree pointer or just the core one?
I can't think of a good reason why this API can't work:
struct nsgtk_treeview *nsgtk_treeview_create(void);
void nsgtk_treeview_destroy(struct nsgtk_treeview *tv);
struct tree *nsgtk_treeview_get_tree(struct nsgtk_treeview *tv);
GTKWidget *nsgtk_treeview_get_widget(struct nsgtk_treeview *tv);
Note that both the tree and the widget are owned by the nsgtk_treeview
object -- they should not be destroyed by anything else.