im.pidgin.pidgin.2.1.0

Gabriel Schulhof nix at go-nix.ca
Tue May 29 20:03:47 EDT 2007


On Mon, 2007-05-28 at 18:21 -0400, Sadrul Habib Chowdhury wrote:
> Perhaps something like the following will work: (untested)
> 
> #ifdef USE_HILDON
> 
> #define gtk_box_pack_start(box, container, a, b, c) 	gtk_box_pack_start(box,  		_pidgin_make_container_scrollable(container, 			dialog), a, b, c)
> 
> #else
> 
> #define gtk_box_pack_start(box, container, a, b, c) 	gtk_box_pack_start(box, container, a, b, c)
> 
> #endif
I've tried it. Doesn't work, because you end up packing everything into
scrolled windows, which is bad. You have to be able to pick and choose
at coding time what to scrolled-windowize and what to leave as is.
Unfortunately, this means making modifications in all those places where
you need to pack something into a scrolled window.

Another problem becomes evident in the new/edit account window, as well
as the preferences window: When adding a notebook full of scrolled
windows to a vbox without specifying expand and fill, it will be too
short and narrow, because the scrolled windows do not request all the
room they need to display all the widgets inside. Thus, you need to add
the notebook with expand and fill, but only #ifdef USE_HILDON, and no
expand and no fill otherwise.

A third problem is the fact that you have to pass the toplevel container
to pidgin_make_container_scrollable, because, if it's a dialog, a hack
needs to be performed that sets the scrolled window's policies to
GTK_POLICY_NEVER and overrides the scrolled window's size request to
accomodate all widgets. If you leave the hack out, the dialog will be
too short and narrow to display all its widgets.

I'm afraid this might have to remain as it is. I really can't see a more
generic solution.



Gabriel




More information about the Devel mailing list