JTK wrote:
> And am I mistaken, or has nobody yet come up with a passable explanation
> as to why the file save dialogs have been singled out as 'native is OK',
> while virtually nothing else is, eg tree controls?
The cross-platform widget set is used when an identical interface is
required across operating systems. File selection dialogs can _not_ be
identical across operating systems, because each OS has different file
semantics. For example, the Unix filesystem is single-rooted, whereas
Win32 has a root for each physical or mapped drive, and needs interfaces
to access virtual locations such as the "Network Neighbourhood" and "My
Computer".
Each OS would need its own, custom save dialog anyway, so it would be
unfeasable to write a cross-platform replacement.
In addition, the interface for a file save dialog is really, really
simple. You tell it where to start and what sort of files you're looking
for, and then it gives you back a filename. Since the interface is
simple, the effort required to plug a new dialog in is small.
The interface to a tree control is far more complex. It's not just
"here's a list of things in the tree, display them". It's "how do I
notify the tree when this branch, and only this branch has changed?"
"How do I make it so that when someone right-clicks (or option-clicks)
on a node of type foo, they get this particular context-sensitive menu?"
"What's the interface for dragging and dropping something onto a node of
the tree?" The way these things are handled vary wildly between
platforms, and make porting a total nightmare.
Charles Miller