diff -r 000000000000 -r 6474c204b198 content/xul/document/public/nsIController.idl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/content/xul/document/public/nsIController.idl Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* 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" + +[scriptable, uuid(D5B61B82-1DA4-11d3-BF87-00105A1B0627)] +interface nsIController : nsISupports { + boolean isCommandEnabled(in string command); + boolean supportsCommand(in string command); + + void doCommand(in string command); + + void onEvent(in string eventName); +}; + + +/* + + Enhanced controller interface that allows for passing of parameters + to commands. + +*/ + +interface nsICommandParams; + +[scriptable, uuid(EBE55080-C8A9-11D5-A73C-DD620D6E04BC)] +interface nsICommandController : nsISupports +{ + + void getCommandStateWithParams( in string command, in nsICommandParams aCommandParams); + + void doCommandWithParams(in string command, in nsICommandParams aCommandParams); + +}; + + +/* + An API for registering commands in groups, to allow for + updating via nsIDOMWindow::UpdateCommands. +*/ +interface nsISimpleEnumerator; + +[scriptable, uuid(9F82C404-1C7B-11D5-A73C-ECA43CA836FC)] +interface nsIControllerCommandGroup : nsISupports +{ + + void addCommandToGroup(in string aCommand, in string aGroup); + void removeCommandFromGroup(in string aCommand, in string aGroup); + + boolean isCommandInGroup(in string aCommand, in string aGroup); + + /* + We should expose some methods that allow for enumeration. + */ + nsISimpleEnumerator getGroupsEnumerator(); + + nsISimpleEnumerator getEnumeratorForGroup(in string aGroup); + +}; +