Past few days have been rather interesting - we'r getting close to finalizing the user interface design. I cannot disclose any design screenshots at this time, but we'v solved large amounts of problems, including dropping several rather tricky-to-implement, but as it turned out, un-necessary features from the design. It shouldn't take long now before I can jump to implementing this thing.
What I can say at this time though, is that basically we'll have a Launcher application (also previously mentioned some months ago in blog posts), that will launch the core as child process, and then bring up user interface as well as child process; which user interface is brought up is determined by command-line arguments. Since the Launcher will be run from a desktop icon, we can, for example, create different icons for different user interfaces, should there be need for this. The Launcher itself will take care of initial startup, splash-screen, but will have no visible windows once the GUI is launched. If the GUI is not launched directly from Launcher (background-mode, for example), the launcher can (optionally) display a tray icon. The launcher will also provide access to a console window of core output, along with an input box for entering commands (technically equivalent to current Hydranode Shell module, except this one would work over Core/GUI communication (hence much more powerful)).
Since the Launcher will have both Core and GUI running as sub-processes, it can monitor the process's state's, and re-start either of them should they crash - while we do not plan on having either of them crashing, in real-world, software still does crash sometimes, so it's nice to have some automated thing behind it, that can, for example, provide automatic bug-data collection for submitting to bugtracker's.
Madcat, ZzZz