[Glade-devel] RE : fill_empty method (was Helping out)
- From: e98cuenc free fr (Joaquin Cuenca Abela)
- Subject: [Glade-devel] RE : fill_empty method (was Helping out)
- Date: Sat, 4 Oct 2003 22:49:09 +0200
Paolo wrote:
On Sat, 2003-10-04 at 13:29, Joaquin Cuenca Abela wrote:
I'm also done with glade-widget-class, so please commit any pending
changes.
Attached there is a patch which turns fill_empty (the
function which takes care of filling the containers with
placeholders) into a method of GladeWidgetClass, since a
generic function, like the one we have now, doesn't work for
every widget. I made the patch some time ago and today I
updated it to the current cvs, but before committing I'd like
to hear your opinions on some issues.
1) For most of the containers fill_empty would simply do
gtk_container_add
(GTK_CONTAINER(widget->widget),glade_placeholder_new ()); so
I'd like to know which is the preferred way to handle this
common case. Among others I can at least think of 3 ways:
- Every widget has its <FillEmptyFunction> (ugly)
- Have a gtkcontainer.xml which declares the common
<FillEmptyFunction> and widgets inheriting from it can
override the method if needed (I don't know how to do it in practice)
- Handle it in glade_widget_fill_empty() and only the widgets
which need something different have a not NULL fill_empty
method (this is what it is in the patch now)
I prefer the second option. The less knowledge we defer to the .xml
files the best.
You can let it like you've done, and I will change it to the second
option if you have problems implementing it.
Just let me know.
2) Somewhat related to the above. Some widgets (e.g.
GtkButton) are containers, but do not have to be filled with
placeholders, this can be handled in two way:
- adding more logic to glade_widget_fill_empty (like the current cvs
works)
- these widgets override the fill_empty method with the
ignore() function
Again, second option
3) With the attached patch applied [vh]box get wrong their
size (e.g 4 placeholders instead of 3). The bug can be
papered over be overriding the fill_empty method of [vh]box
with ignore(), but there seems to be something wrong in
glade_gtk_box_set_size... btw how do I set a gdb breakpoint
in glade_gtk_box_set_size now that it is in a shared library?
I didn't have any problem setting a breakpoint at
glade_gtk_box_set_size. What's gdb complaining about?
4) In the patch I only included glade_gtk_dialog_fill_empty
and glade_gtk_paned_fill_empty; of course also other widgets
need to override the method. With regard to GtkPaned, is it
possible to create a gtkpaned.xml, put the
<FillEmptyFunction> there and have GtkVPaned and GtkHPaned
automagically inherit it or should both gtkhpaned.xml and
gtkvpaned.xml be created?
Just gtkpaned.xml should be enough. Again, you should implement the
inheritability of FillEmptyFunction.
If you want to implement it yourself, take a look at
glade_widget_class_merge. It's probably just a matter of adding:
if (widget_class->fill_empty_function == NULL)
widget_class->fill_empty_function =
parent_class->fill_empty_function;
Cheers,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]