Forum: wxRuby Button height problem

7af070f1cb27230c1763d346faeae843?d=identicon&s=25 DeNigris Sean (Guest)
on 2010-03-07 12:39
(Received via mailing list)
Hi list,

I just started with wxruby and I ran into something - not sure if it's a
bug.

No matter what I set the buttons properties/options to, the height of
the button doesn't change.  Even when I set the text size to 24 pt. and
it doesn't fit in the button any more, the button stayed the same height
and the text runs off the top and bottom.

Thanks!

Sean DeNigris
06f6780c99d4a8dd71f2b474082ea9ce?d=identicon&s=25 Alex Fenton (Guest)
on 2010-03-08 14:56
(Received via mailing list)
Hi Sean

DeNigris Sean wrote:
> I just started with wxruby and I ran into something - not sure if it's a bug.
>
> No matter what I set the buttons properties/options to, the height of the button doesn't 
change.  Even when I set the text size to 24 pt. and it doesn't fit in the button any 
more, the button stayed the same height and the text runs off the top and bottom.

It's not a bug, it's a feature ;)  Compared to other cross-platform
toolkits, Wx puts the utmost importance on having the application look
and act exactly as would an app coded with each platform's native
frameworks.

Following this, a text button has an appearance, font face& size and
colours determined by the platform's UI standards and possibly the
user's own theme settings. Wx enforces this, and you deal with the
resulting variations in size by using flexible Sizer-based layouts.

So I'd reconsider first why you want to use a different size of button
since this will break UI guidelines from Windows, Apple and GNOME. Of
course, there could well be a good reason, and if so, you could look at
using Wx::BitmapButton (possibly drawing your own Bitmap with text go
into it), or buttons within a Wx::ToolBar, or using Wx::NativeRenderer
which will allow you to draw stock GUI items like button edges in native
style at arbitrary sizes

alex
7af070f1cb27230c1763d346faeae843?d=identicon&s=25 DeNigris Sean (Guest)
on 2010-03-08 19:58
(Received via mailing list)
> It's not a bug, it's a feature ;)  Compared to other cross-platform toolkits, Wx puts 
the utmost importance on having the application look and act exactly as would an app coded 
with each platform's native frameworks.
Aha!

> So I'd reconsider first why you want to use a different size of button since this will 
break UI guidelines from Windows, Apple and GNOME. Of course, there could well be a good 
reason, and if so, you could look at using Wx::BitmapButton (possibly drawing your own 
Bitmap with text go into it), or buttons within a Wx::ToolBar, or using Wx::NativeRenderer 
which will allow you to draw stock GUI items like button edges in native style at 
arbitrary sizes
I'll def look into these - the motivation was to have buttons with
really big text for older people using the app.

Thank you - that answer was perfect!  And so obvious now.  Are these
things (like which platforms do not honor which options) written down
somewhere, or do you just learn from experience?

Sean DeNigris
sean@clipperadams.com
06f6780c99d4a8dd71f2b474082ea9ce?d=identicon&s=25 Alex Fenton (Guest)
on 2010-03-09 01:31
(Received via mailing list)
On 08/03/2010 18:57, DeNigris Sean wrote:
>> So I'd reconsider first why you want to use a different size of button since this will 
break UI guidelines from Windows, Apple and GNOME. Of course, there could well be a good 
reason, and if so, you could look at using Wx::BitmapButton (possibly drawing your own 
Bitmap with text go into it), or buttons within a Wx::ToolBar, or using Wx::NativeRenderer 
which will allow you to draw stock GUI items like button edges in native style at 
arbitrary sizes
>>
> I'll def look into these - the motivation was to have buttons with really big text for 
older people using the app.
>

To me this is an important reason for Wx's emphasis on native widgets. A
user who needs big text will (or should) have set that in their desktop
settings. Similarly, users with other kinds of, say, visual or mobility
impairment will have set system preferences for colour schemes, or how
mouse moves and clicks are interpreted. By using the native application
frameworks to build the GUI the user's overall settings will be
honoured, without any extra effort on your part as a programmer. GUI
toolkits which employ lower-level calls to draw lines and text on the
screen, and handle raw input from devices might achieve good integration
at an aesthetic level (look'n'feel), but still not know how to adapt to
more specialised needs.

I should note that as of wx 2.8, extra support for assistive
technologies like was incomplete, and not available in wxRuby - but
common situations like larger text, high contrast etc should be dealt
with automatically.
> Are these things (like which platforms do not honor which options) written down 
somewhere, or do you just learn from experience?
>

AFAIK there isn't a single place this is all collated. Where there are
methods not supported at all on one platform or other, this should be
noted, and the wxWidgets wiki has a lot of notes on distinctive features
of different OS's. Prob more useful is to have a quick look at the UI
guideline documents from Apple, Microsoft and Gnome. Search for platform
+ HIG. They're different in style but have much good advice and thought
on what makes usable and attractive applications.

best
alex
This topic is locked and can not be replied to.