Re: Developing a GTK2 GUI
Dan Christiansen <[email protected]>
| Newsgroups | gmane.comp.video.mplayer.g2.devel |
|---|---|
| Message-ID | <[email protected]> |
On Sunday, August 3, 2003, at 10:37 AM, Charles Ezell wrote: > Gustavo writes: > >> Yes, I know that... win32 is the other way (coordinates-based) and I >> don't know Mac to tell... > > Don't know either. :) But it is probably coord based. I was also > thinking > about Qt (which I know next to nothing about). I am not a GUI developer, but maybe I can shed some light on how things work on Mac OS X: On Mac OS X, as you may have heard, there are two independent GUI APIs, commonly referred to as Cocoa and Carbon. Cocoa is an Objective-C API and comes from NeXT, and it's intended that GUIs aren't generated in code, but dynamically from UI files - it encourages complete separation between code and UI. Carbon is based on the old Mac OS APIs, and is C - but IMO ugly C. You usually write the GUI in code, but very few things are handled for you, and good Carbon GUIs are more rare than good Cocoa GUIs. Both are coordinate-based, but in Cocoa, you would usually design the elements in Interface Builder and if necessary use that in code. If anyone wants to write a native GUI for Mac OS X, I'd say they should use Cocoa, and try to keep it separate from the main MPlayer since there are lots of files you probably wouldn't want to know about. Cocoa and Objective-C are fairly difficult to describe since they are very different from everything else out there, but they work quite well in practise. One good thing about Objective-C, though, is that it isn't C++ ;) - Dan Christiansen