/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsISupports.idl" interface nsIUTF8StringEnumerator; interface nsIURI; /* nsIGnomeVFSMimeApp holds information about an application that is looked up with nsIGnomeVFSService::GetAppForMimeType. */ [scriptable, uuid(66009894-9877-405b-9321-bf30420e34e6)] interface nsIGnomeVFSMimeApp : nsISupports { const long EXPECTS_URIS = 0; const long EXPECTS_PATHS = 1; const long EXPECTS_URIS_FOR_NON_FILES = 2; readonly attribute AUTF8String id; readonly attribute AUTF8String name; readonly attribute AUTF8String command; readonly attribute boolean canOpenMultipleFiles; readonly attribute long expectsURIs; // see constants above readonly attribute nsIUTF8StringEnumerator supportedURISchemes; readonly attribute boolean requiresTerminal; void launch(in AUTF8String uri); }; /* * The VFS service makes use of a registry for information. * * The MIME registry holds information about MIME types, such as which * extensions map to a given MIME type. The MIME registry also stores the * id of the application selected to handle each MIME type. */ [scriptable, uuid(d1ac73a6-2ceb-4164-8142-215afe7fe8a6)] interface nsIGnomeVFSService : nsISupports { /*** MIME registry methods ***/ /* Obtain the MIME type registered for an extension. The extension should not include a leading dot. */ AUTF8String getMimeTypeFromExtension(in AUTF8String extension); /* Obtain the preferred application for opening a given MIME type */ nsIGnomeVFSMimeApp getAppForMimeType(in AUTF8String mimeType); /* Obtain a description for the given MIME type */ AUTF8String getDescriptionForMimeType(in AUTF8String mimeType); /*** Misc. methods ***/ /* Open the given URI in the default application */ void showURI(in nsIURI uri); [noscript] void showURIForInput(in ACString uri); }; %{C++ #define NS_GNOMEVFSSERVICE_CONTRACTID "@mozilla.org/gnome-vfs-service;1" %}