|
From: | Fred Kiefer |
Subject: | Re: GNUstep and the desktop |
Date: | Wed, 04 Feb 2004 23:41:11 +0100 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030821 |
Alexander Malmberg wrote:
And, more practically: The interface will, at first, be the "desktop parts" of OPENSTEP/OpenStep. Working through -gui to implement desktop bundle loading and clean "plugging in" will show which parts, and this will be clearly documented. It would include large parts of NSWorkspace, parts of NSApplication, and NSSound. Extensions will likely be necessary, but not until things have stabilized. As a guideline, I'd say that an extension should be implemented in two desktop bundles and used in two apps before it's "formalized" in GNUstep-gui's interface. There'll be a bunch of work necessary in -gui. Mostly rearranging the -gui so that a bundle can cleanly plug in an implementation (ie. turning some classes into class clusters, or adding "internal" classes for desktop bundles to override and using them in the public classes). This will also involve moving some code out of -gui (eg. gsnd; some (most?) existing desktop environments already have some sound system).
I can almost fully support your practical proposals, which are not to far away from GNUsteps current implementation:
NSWorkspace already delegates most of its operations to a well defined interface for a workspace application. Still there a few more methods that need implementation and are best left to an external application. NSSound is rather similar, it interfaces with a sound deamon, all we have to do, is to move this deamon out of GUI to a separate module. But we will still need to provide this deamon in the future. As for NSApplication, I am not sure which interfaces you are refering to. The only methods, that spring to my mind are unhideAllApplications: and hideOtherApplications:, both of which could be implemented via the service provider and its connection to all other GNUstep applications.
[Prev in Thread] | Current Thread | [Next in Thread] |