Boost logo

Boost :

From: Brian Ravnsgaard Riis (brian_at_[hidden])
Date: 2005-09-29 04:37:15

Andy Little wrote:
> Brian Riis wrote
>>I really don't think we want standard C++ to have a "builtin" GUI that
>>"simply works" on all systems.
> Sorry . have I misread this ?
> A C++ GUI that "simply works" is exactly what I want. Its got to be simple for
> beginning programmes to pick up, generic, have an intuitive model, and have a
> non-platform dependent interface.

I'm not contesting this. I'm contesting that it should produce identical
windows on all platforms.

>>That makes me think of the Java GUI,
>>which works on all systems with a VM, but unfortunately looks like a
>>Java app regardless.
> The builtin GUI is a major reason for Java's Success. And notice that it works
> on the internet where "platform" is not applicable. Personally I think the Java
> model is well worth looking at for ideas about a C++ GUI.

Well, "platform" *is* applicable to a Java program. The thing is,
though, that a JVM *is* the platform. Java really drags its platform
around with it.

> The Windows GUI behaves slightly different than
>>GNOME, and there are quite large differences to OSX from either.
> Thats interesting and useful stuff. Would it be possible to enumerate some of
> the differences? Personally I would like to have a uniform behaviour of a C++
> GUI across
> platforms if possible.

I wouldn't. If I am on a Windows box, I want the look-n-feel of a
program to be that of any other Windows program. The normal layout of a
window should apply, and the Windows shortcuts should work, e.g. being
able to start editing any textcontrol by pressing F2. On GNOME I would
expect an app to behave like other GNOME programs. OSX differs from the
other platforms in many ways, because Apple's Style Guide suggests
different layouts.

As a simple example, consider a message dialog box with a message the
user should consider and then choose Yes, No, or Cancel. On Windows the
three buttons would be centered and come in the order mentioned above.
On GNOME the buttons would be right-aligned and be ordered "No", "Yes",
and "Cancel". On OSX the "No" button would be left-aligned along the
message text, while "Cancel", and "Yes" - in that order - would be
right-aligned. And so far it's just layout issues.

My point is, basically, that the different platforms *feel* different,
and users will expect a program to feel like the platform they're on.
Java apps feel like Java apps all over. This is great for web-based
applications (my NetBanking wouldn't be right without it), but not so
great for desktop applications.

>>I don't think we want a GUI system where people will say, "Hey look at
>>this app; it's obviously written in C++, judging by the UI!"
> I think you are limiting the possibilities here. Maybe a C++ GUI should be 3D.
> Maybe we should default to a round window. You cant have true platform
> independence if by default you need to simulate a particular platforms look and
> feel. IOW then you cant have one default interface. Being able to put
> on a platform dependent skin is an often requested feature, but is trivial to
> achieve IMO. The number one feature is simplicity and ease of use which means
> platform independence... "simply works")

My point is that it shouldn't be a "skin". You can change the look that
way, but rarely the feel of an application.

> regards
> Andy Little

  /Brian Riis

Boost list run by bdawes at, gregod at, cpdaniel at, john at