On Jul 16, 2008, at 3:38 AM, Uli Kusterer wrote:

On 14.07.2008, at 14:53, Bill Royds wrote:
Are there any good tools for porting Application menus and forms from other windowing systems (such as MS Windows or X or even Carbon) to Cocoa nibs? I have a number of applications that I would like to port, but redesigning the form or menu layout completely seems to be rather pointless. I am quite willing to rewrite all the code that interacts with the forms or menus, but I am not a graphic designer so form layout is better left to experts who have already done it. All I really want is a tool that will put objects without any connections or code on a form or menu by parsing a MS .RC file, for example

Being able to do this would lead to an large increase in the number of Macintosh applications available.


I'm not aware of an existing tool, though I've said in other similar threads (some on Carbon-Dev) that it should be possible to write code that does this, as long as the source format is known. Xcode 3 has the XML-based XIB format. You could create a few simple test files, see what XML it generates for the various objects, see how the sizes of these objects differ from their Windows counterparts*, and then write code that reads the RC files and outputs the text needed for an XIB.

Rather than attempting to write out a XIB file*, it would be far better to write an IBPlugin, that adds a menu item to the main menu, and then uses API from InterfaceBuilderKit.framework's IBDocument class to construct an Interface Builder document from a RC file. This abstracts you away from XIB files.

*XIB files are readable, and you can make sense of them. The structure of the XML isn't too complicated. However, the contents described by the XML structure are complicated. They're generated using a custom NSCoder. The XML is the output of the various NSCoding implementations that were used to create the file, and they're private to the classes that implemented them.

The IBPlugin route is the way to go -
Jon Hess




(Ignore the huge blob of binary data at the bottom of the XIB, that's just a binary, runnable version of the stuff above it)

*) Note that that is actually the hard part -- control sizes may differ so substantially, that it may be impossible to do a 1-on-1 translation of your UI automatically without making it look horrible. You may need a graphics designer with a good eye for layout to determine how these rects correspond. IMHO, most times you'll have to manually fix up things anyway, so you might as well go and recreate the UI and let IB's snap-to-guidelines do the job of initial layout.

Cheers,
-- Uli Kusterer
"The Witnesses of TeachText are everywhere..."
http://www.zathras.de





_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/jhess%40apple.com

This email sent to [EMAIL PROTECTED]

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to