SplashScreen and NSApplicationAWT (original) (raw)

Mike Swingler swingler at apple.com
Wed Nov 30 09:19:19 PST 2011


I think that the simplest design going forward is it kick off a small command line helper process that links against nothing but AppKit, and embeds an Info.plist in it's binary that contains an LSUIElement=true property (so LaunchServices won't inflate a Dock icon for it when it starts).

Regards, Mike Swingler Apple Inc.

On Nov 23, 2011, at 10:30 AM, Phil Race wrote:

I suspect you'll have to do something like #1.

Previous advice on another topic is not to rely on X11. Sounds like a hybrid monster in any case. My gut is that this is something to steer well clear of. Is it possible for an app to start a cocoa event loop for splashscreen, then exit that when AWT is ready to launch .. and start up the real one ? I'm afraid the answer here will probably be no .. and its probably impossible to do whilst keeping the splashscreen visible, but its worth asking. -phil. On 11/23/2011 8:11 AM, Anthony Petrov wrote: Hello,

Another issue with the splash screen is that it needs to display a window on the screen. For this purpose the Cocoa event loop must be started, and as such an NSApp instance be initialized. And this instance is a singleton in Cocoa. I see that there's already a custom NSApplication descendant present (the NSApplicationAWT), and we can't create and initialize it at the time of splash screen showing since the AWT dynamic library isn't loaded yet. I see two options to resolve this: 1. Move the NSApplciationAWT code into the Java launcher code. Either the splash screen code, or AWT would trigger the creation of an application instance. This approach, however, might require a lot of refactoring. 2. Use Xlib to display the splash screen. This must be the easiest solution, although it may appear a bit inconsistent to the end user (the X icon flashing in the dock, etc. - but perhaps there's a way to suppress that?) Also, I'm not sure if an Xlib-based app is able to actually initialize Cocoa later. Any thoughts on this? -- best regards, Anthony



More information about the macosx-port-dev mailing list