Re: Converting Windows RC to NIBs (was Re: Creating and App menu from Scratch)
Re: Converting Windows RC to NIBs (was Re: Creating and App menu from Scratch)
- Subject: Re: Converting Windows RC to NIBs (was Re: Creating and App menu from Scratch)
- From: Jonathan Hess <email@hidden>
- Date: Mon, 28 Jul 2008 12:16:48 -0700
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 (email@hidden)
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:
This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden