Hi, On Sun, Aug 29, 2010 at 7:02 PM, Havoc Pennington <h...@pobox.com> wrote: > > - one approach: put padding stuff in the size_request / size_allocate > *wrappers* in the same way that size groups and set_size_request are > handled. all widgets just work without modifications, is the big plus > of this. >
Implementation-wise, I'm kind of leaning toward this, plus virtualizing "get the extra padding for request" and "remove the extra padding for allocation" and calling those virtual methods from the wrappers. So in this world, GtkSizeRequest, size_request, size_allocate are all unchanged. GtkWidget has "modify request" / "modify allocation" virtual functions. After size requesting the widget, those virtual functions might be called from _gtk_size_group_bump_requisition where we currently use aux_info->width,height. In fact, the aux_info forced size request could now be implemented inside gtkwidget.c by these vfuncs, so AuxInfo could be completely privatized. This would allow GtkWidget::padding-*, GtkWidget::h,valign, GtkMisc::scale,pad, and GtkContainer::border_width to all be implemented transparently (i.e. without subclasses having to do anything in their request/allocate methods). Making Misc and Container transparent would be incompatible changes (breaking subclasses) however, so maybe we don't want to do that. Havoc _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-devel-list