$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: David Turner (dkturner_at_[hidden])
Date: 2004-03-04 02:40:42
Hi
Thorsten wrote:
> "David Turner" <dkturner_at_[hidden]> wrote in message
> news:30053.165.165.239.17.1078382983.squirrel_at_webmail.telkomsa.net...
> [snip]
>> The only real problem with "why not" is that gui widgets have shallow
>> copy
>> semantics.
>
> And why is that a problem?
Because it's surprising to the user (I think).
More to the point, there is a very real problem with creating popup
windows. Remember that the window acts as a factory for all other
widgets, including popup (child) windows. If I were to use the "why not"
syntax, I would have to pass in the owner window as the first parameter of
the constructor, as in:
window w;
button b(w, "Click here");
w.contain(b);
Now consider creating a popup window. The natural syntax is:
window w;
window p(w);
But now I've invoked the copy constructor of p, which isn't what I wanted.
The way to make it work properly is to force new windows to be
constructed with a title:
window w("Example Window");
window p(w, "Popup Window");
This is probably the "best" approach, but it still leaves some room for
user error.
Regards
David Turner