ftp.nice.ch/pub/next/connectivity/www/omniweb2bundles/services.NIHS.b.tar.gz#/services.omni

Omni.dictionary
 
README
 
services
 

README

Customizing the Services Menu Processor
---------------------------------------

The services menu bundle has no built-in knowledge of News or Alexandra.
It is easy to modify it to invoke other external applications. Two things
are necessary for OmniWeb to invoke an external application for a
particular URL:

   1. The ServicesMenuProcessor must be registered as being able to
      interpret that kind of URL.

   2. There must be a default indicating the Services Menu item to
      invoke.

Part 1 is handled by the "converts" list in the Omni.dictionary. The processor
should specify an "input" type of "url/scheme", where scheme is the 
relevant URL scheme, and an "output" type of "omni/source".

Part 2 is handled by the "defaultsDictionary". For a given "scheme", the
processor will look for a default named ServiceForScheme. The default
value indicates a Services menu item to invoke.

The pasteboard passed to the service contains the URL as an ASCII string.

For example, the following Omni.dictionary will cause OmniWeb to invoke
Yftp to process FTP URLs, instead of handling them internally (assuming you
have Yftp installed, etc.):

{
    OmniProcessor = {
	OmniServicesMenuProcessor = {
	    converts = ({
		input = "url/news";
		output = "omni/source";
	    }, {
		input = "url/ftp";
		output = "omni/source";
		cost = 0.5;
	    });
	};
    };

    OmniPreferenceController = {
	OmniServicesMenuPreferences = {
	    defaultsDictionary = {
		ServiceForNews = "Alexandra/Open URL";
		ServiceForFtp = "Yftp/Get";
	    };
	};
    };
}

Notes:
  - The data returned from the service, if any, is discarded.
  - Even if a default value is specified in the defaults database,
    it must be mentioned in the bundle's defaultsDictionary for OmniWeb's
    defaults machinery to read it.
  - The services specified in the defaultsDictionary can be overridden on
    a per-user basis by NEXTSTEP defaults, e.g.
       dwrite OmniWeb ServiceForNews "SpiffyNews/Open"

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.