Originally posted by KBAKEP
I'll just make some comments:
X-Windows on MS-Windows is not really a practical solution in that it is not free and easy
There's a native port for Windows (without any X-server).
I think I misscommunicated something here. My point was that the port to Windows has to be native because using X11 in not a viable option there. The existence of a native Windows version only supports my argument.
About drag-n-drop: there's a plan to implement it in platform independed form (by XML).
That is easier said than done. The problem is that the different platforms have different ideas of what can be dragged and dropped and even what the result of that process is. In one case you really can only copy text, in the other data of multiple types and then finally whole external program components. Using XML as a representation will never be able to bring these things into parity. Rather it is a solution to allow manipulations internal to your program to work via the lowest common denominator method of simple text. This will not allow me to grab a graph and drop it into TextEdit.app and have a PDF representation inserted. I'll just get some XML stuff that cannot be interpreted.
So, the main "virtual" GUI code can be modified (how?) to make porting in easier way.
The Virtual GUI code would have to be chucked since even the existence of such a beast does not bode well for real portability. What you need is an abstract model of the data and how it is manipulated. Then the different GUI front ends would need to be created to best provide the user access to that model.
As an example if you were looking at the action of deleting a file. On the mac you provide that functionality via a metaphor of dragging the file to the trash. There is no trash under X11 so you would provide a menu option or dialog box to accomplish the same task. Any virtual GUI assumptions about how this should be done would be wrong on one of the platforms and violate the expectations of the user.
I'll ask in another manner: "Is it possible to make some changes to the main code? Will it be closer to MacOS X GUI?"
Yes of course it would help to rewrite and restructure things to be more Mac friendly. But the important question is how hard would it be and what would one gain. My point is that it is hard to do the mechanical port and the results would be the same as just running it under X11 on the Mac. There is no gain there.
Now if you want to justify the port by doing a good job, something that takes advantage of all the goodness that is OSX, then that will be very very hard.
Portable software is a very tricky thing to write well when you are working with user interaction. The case where the GUI and the application have evolved together on one platform and then are to be ported is particularly difficult because there has usually been no effort to consider these facets of the application separately.
Really my point is that the current X11 solution we have right now is good. To go beyond that will require a significant amount of effort and be inherently non-portable back to the rest of the application.
This all comes back to my original question of
why you wanted to do this. If you want to create a new OSX implementation to leverage the cool stuff in Cocoa then throw the old GUI away and start from first principles. If it is just to get Aqua buttons in the GUI then really it isn't worth the effort.
-Eric