[Glade-devel] I'm back.



Hi!

Paolo wrote: 

On Tue, 2003-06-24 at 04:39, Archit Baweja wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hey guys

Well with school over for the summers, I've got time on my 
hands. So 
how about some thing to work on. Anything lacking in glade3 
that might 
need attention?


Great to have you working on glade3 again!

Some of the things that come to my mind are:

[snip]

3 - handle the placeholder tag properly: IMHO this is biggest 
problem right now. I think I have understood the problem but 
fixing it requires quite a bit of changes and I haven't come 
to a working solution. Explanation of what I found follows 
for those who want to give it a shot (note however that maybe 
I'm totally wrong...) The problem is that we don't have 
placeholders in our main tree structure (the one made of 
GladeWidget->parent and
GladeWidget->children) so when we save a file to xml we don't generate
the <placeholder> tags. This screws various things, first of 
all the compatibility with glade-2, but also other things: 
for example try to create a window, add a vbox to it, add a 
button to the second slot of the vbox, save the file and 
exit... now reopen glade-3 and open that
file: the button will be at the wrong place.
The best solution IMHO is to make GladePlaceholder a 
GladeWidget and include it in the tree structure instead of 

I don't quite agree.  GladePlaceholder is a GtkWidget, so if you want to
also make GladePlaceholder a GladeWidget, then GladeWidget should also
be GtkWidget, and that doesn't makes sense.

making it a special case. But how? The more radical solution 
would be to make GladeWidget a GObject instead of a simple 
structure, but I'm not sure that it makes sense. In this case 
GladePlaceholder would be a subclass of GladeWidget. Another 
approach (the one I tried, without finishing it) is to make 
glade_placeholder_new return a GladeWidget, something like:

What I was thinking is instead to just change the logic of
glade_widget_write.
Right now, it looks on the list of childrens of the GladeWidget.
Instead, look at the list of children of the GtkWidget with
gtk_container_get_children (only if it's a container), and then for each
children, we have 3 possibilities:

1) it's a widget with an associated GladeWidget
2) it's a placeholder
3) neither of these

In case 1, we just keep with the current logic (redoing
glade_widget_write, etc.), in case 2, we print the <placeholder/>, and
in case 3, we just ignore the widget.

I've coded it & committed.  The only that I'm lacking is printing the
packing properties of the placeholder, I will do it tomorrow if nobody
beats me.  Btw, we should also not print a property if it's equal to the
default value, as right now we're quite verbose.

Cheers,






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