On Jul 3, 2008, at 6:19 PM, Jim Battle wrote:
It's beyond my expertise, but my assumption
about emulators was
always that the guts don't really change across (modern)
platforms - it's mainly the graphics layer that will be tightly
coupled to the OS.
The PCB layout software that I use (called, oddly enough,
"PCB")
runs on UNIX platforms with X11. Some time ago, DJ Delorie (of
DJGPP fame, also has a project featured on the front cover of this
month's Circuit Cellar Ink) did a huge amount of work to decouple
the innards of PCB from the GUI. He calls the result "HID" (Human
Interface Device) and it has been used to create instances of PCB
with a Motif GUI, a GTK+ GUI, and someone (Der Mouse, is he here?)
is even working on a raw X11 GUI.
That sort of abstraction is nontrivial to achieve, but it is
possible.
Have a look at Qt. Have a look at wxWidgets (which is what I use).
There is no need to write separate interfaces; in my experience,
98% of the code is the same across windows and osx (I haven't
attempted to get a linux port running)
Qt was discussed at great length and eventually dismissed, but I
don't recall exactly why. The main point of PCB's HID system wasn't
cross-platform portability, though, but GUI portability. Some people
wanted Motif, some people wanted GTK+, MacOS X runs either one
beautifully, and we don't give a crap about Windows...
I do agree that reengineering the model/view
abstraction after the
fact is a lot of work, but that error is easily avoided.
PCB has been around for a very long time...I believe it originally
got its start in Atari ST land eighteen years ago, and ported to X11
fourteen years ago. The need for that type of abstraction really
couldn't have been anticipated from the start. ;)
-Dave
--
Dave McGuire
Port Charlotte, FL