Re: Wrapping gtk2:buttons



2009/6/10 Grant McLean <grant mclean net nz>:
On Wed, 2009-06-10 at 15:07 +1000, Chris Debenham wrote:
I need to display 40 buttons in an area which may be resized and the
text in the buttons is dynamic.
As such I can't really determine ahead of time how many buttons will
fit on a row.
Is there any way to display a bunch of Gtk2::Button widgets and have
it wrap around to fit the available space?

I do mean this in a caring way, but that sounds like a *horrible* user
interface :-)

No worries, Normally I'd agree but it does make sense for this
particular use case.
It is to display a list of bible books as buttons - these buttons are
then replaced with buttons for the chapters, then verses.
It is used for quickly looking up verses (without having to type) See
http://www.adebenham.com/lyricue/screenshot.html for a screenshot
showing part of it


Someone else may have alternate suggestions, but I can think of a couple
of ways to achieve what you're asking for.

* the Gtk::TextView widget is normally used to display word-wrapped
Âtext but you can add widgets (like buttons) into the textview using
Âthe add_child_at_anchor() method

Ugly - but may work


* the Gtk::Layout can be used to position widgets at absolute
Âcoordinates, so by hooking into signals when the window is resized,
Âyou could adjust the position of the button widgets to reflow them
Âas required

This would get complicated/slow as it has to be done for up to 150
buttons (for chapters with lots of verses)


I think the Gtk::IconView widget does the kind of layout flowing you're
talking about, but I'm not sure it can be coerced into displaying
buttons.


I found a reference to how iconview implements CellLayout so a custom
CellRenderer should be possible - If I can control the sizing this is
probably the best way


I do wonder though whether that many options would be better implemented
as menus rather than buttons.

Normally yes - but not in this context


Good luck
Grant

Thanks for the pointers - now I just have to go and try them out :-)


_______________________________________________
gtk-perl-list mailing list
gtk-perl-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-perl-list




-- 

Dave Barry  - "Camping is nature's way of promoting the motel
business." - http://www.brainyquote.com/quotes/authors/d/dave_barry.html



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