Unix-only for now, conditional compilation of XAP_Frame for other platforms. This requires some explanation:
As some of you know, the old frame inheritance hierarchy was a bit of a mess. We had XAP_Frame -> XAP_XXXFrame -> AP_XXXFrame (where XXX is Win32, Unix, Qnx) This resulted in plenty of duplicated code in AP_XXXFrame, because we couldn't properly place stuff that wasn't platform independant in an application independant AP_Frame class. The new code in CVS is the start of a new frame hierarchy. Now we have: XAP_Frame -> AP_Frame -> AP_XXXFrame and XAP_FrameHelper --> XAP_XXXFrameHelper -> AP_XXXFrameHelper XAP_Frame, AP_Frame, now provide platform independant interfaces and implementations of stuff "that frames should do" (show toolbars, create a document window, etc.) XAP_FrameHelper, XAP_XXXFrameHelper, AP_XXXFrameHelper: This is where the implementation of platform-dependant services (or the virtual declarations for them, in the case of XAP_FrameHelper) should go. The good news: This will ultimately result in less duplicated code (I haven't started placing platform-independant abi frame code into AP_Frame class, I will soon!) and better model-view-controller seperation (it should be somewhat easier to grok the frame code when this is all finished). The bad news: There is some ugly casting going on and there were times where I had to expose the XAP_FrameHelper class to stuff which I'd rather not expose it to (e.g.: ev_UnixToolbar needs access to the gtk toplevel widget, which is now in XAP_UnixFrameHelper). Overall, I think this is a win. I will continue to polish the XP and UNIX code to make it better. I will need help from platform maintainers to bring the Win32/QNX code to this new system. -- William Lachance <[EMAIL PROTECTED]>
